Vous êtes sur la page 1sur 56

lavenir de lembarqu

bas sur un expos de, et une interview avec,


Joe Jensen, Director Embedded Intel Architecture
Aprs un expos public de prs dune heure sur les
objectifs et la stratgie dIntel en ce qui concerne les
systmes embarqus ou enfouis (embedded), Mr Joe
Jensen dIntel a bien voulu nous accorder une interview exclusive qui prit la forme dun expos plus spcifiquement centr sur les vues dIntel quant la globalisation dInternet, monologue suivi de rponses
substanties aux quelques questions poses par la
rdaction de ce magazine.
Commenons par prendre le temps de
relever les points les plus importants de
lexpos de Joe Jensen. Lexplosion du
Web, car cest bien de cela quil sagit (cf. le
graphique de la figure 1), est un phnomne irrversible. Si voici 2 ans, le dpartement Embedded dIntel ne faisait que
10% de son chiffre daffaire dans ce
domaine, Joe Jensen pronostique un bon
50% dans les 2 ans venir. Le moto dIntel pour lan 2002 est : 1 billion connected
people, 1 trillion connected dollars . Nous
savons donc quoi nous en tenir.
Paralllement, on constate un basculement du matriel vers le logiciel. Si
voici quelques annes le rapport de
temps requis par chacune des tapes
Matriel-Logiciel dun dveloppement
tait encore, respectivement, de 9
contre 1, il a bascul aujourdhui dans
la proposition inverse de 1 contre 9.
Le leitmotiv des fabricants est de nos
jours, le raccourcissement des temps de
dveloppement. Sil fallait un
concept, voici moins dun lustre, 9 mois
(voire plus) de validation auxquels
sajoutaient 9 mois de mise en production, on cherche, aujourdhui, abaisser ces dlais 2 fois 3 mois seulement.
Les fabricants doivent, pour survivre,
concentrer leur attention rduire les
dlais de fabrication, lobjectif tant
darriver aux 6 mois, sachant que la
dure de vie de la plupart des appareils
entrant en question pour recevoir de
llectronique embarque nest plus
gure, actuellement, que de 5 ans. Cela
a une implication importante. En effet,
vu le peu de temps disponible, les fabricants ne veulent plus faire de matriel,
ils prfrent se concentrer sur le logiciel,
cest--dire ladaptation de leur savoir

14

avec lcologie, mais avec lconomie.


Passons maintenant linterview. Son
sujet principal tait, daprs Joe Jensen,
lannonce de 3 nouveauts, importantes aux yeux dIntel :

Figure 1. Lvolution du
nombre de systmes
connects au Web est
quasi-exponentielle.

faire, de leur application, sur une plateforme matrielle existante.


Les applications de lembarqu sont
innombrables, allant des feux de circulation aux magntrons en passant par
les tlphones, les TV setbox, les cartesmre de systmes industriels. On peut
ainsi affirmer aujourdhui que lembarqu nest pas un march, mais un
groupe dapplications.
Lun des domaines majeurs de la mise
en oeuvre de puissance embarque est
le domestique. Verrons-nous bientt
des rfrigrateurs lecteur de code
barre intgr qui enregistrerons la sortie dun produit et en assurerons un
rapprovisionnement automatique.
Lorsque la machine laver dtectera la
fin du paquet de lessive elle se mettra
en contact avec lpicier du coin pour
commander une recharge dAriel ou
autre Omo.
On en arrive mme parler dcosystme Internet, cet co nayant rien voir

lIACP
(Intel Applied Computing Platform)
Intel est heureux dannoncer la participation de pas moins de 10 nouveaux
partenaires, fabricants au nombre desquels on compte Nokia, Alcatel, Siemens, pour nen citer que quelquesuns, qui optent dutiliser les noyaux
proposs par Intel et se contentent de
crer le firmware.
Avec la globalisation dInternet, les
frontires entre entreprises svaporent.
Comme le dit Intel There is One Enterprise and its Global. There is One Network
and its the Internet . Cette globalisation
dInternet met, pratiquement, du
mme coup, hors-jeu les nombreux
Intranet tablis dans les limites dune
socit. Les socits ne disposant pas
dn Intranet peuvent se hausser au
niveau des autres en mettant profit
les tonnantes capacits proposes par
lInternet. Mme les personnels dIntel
communiquent avec leur quartier
gnral par Internet, voire des techniques plus modernes dont nous
navons pas encore la moindre ide en
Europe, le rseau Intranet de leur
socit tant quasiment intgr dans la
toile daraigne mondiale.
On connat, en lectronique applique, outre le fameux The number of
transistors on an integrated circuit
doubles every 18 months , une seconde
loi, celle de Metcalf qui dit : The
value of a network increases by the square
Elektor

1/2000

of the number of its nodes .


Quelles sont les consquences de cette
globalisation pour lembarqu ?
Il faut penser de plus en plus en termes
de connectivit au Net, de hautes performances, de systmes de traitement
rapides et surtout dappareils conus
pour des applications ddies.
Intel se tourne plus spcifiquement
vers le PC industriel, une application
but bien dfini rgnant au coeur dun
central conomique, connect aux PC
et serveurs dune socit, en vue de
fournir en temps quasi-rel toutes les
informations requises par les preneurs
de dcision (management). Ce PC
industriel doit saisir et transmettre en
temps rel toutes les donnes capitales
concernant les liaisons, le rendement,
les situations de stocks etc... Un tel PC
industriel peut fort bien prendre la
forme dun SBC (Single Board Computer) dot dune interface industrie standard, PC-104, CompactPCI ou autre...
Les fabricants ne veulent plus dvelopper de matriel en raison du temps mis
valider un concept (6 mois plus dun
an), ni non plus, en raison des time to
market de plus en plus courts requis
pour rester dans la course, perdre leur
temps (time is money), au dveloppement et la validation dun produit.
La seconde annonce concerne :

lIntel AC SFL, (Intel


Applied Computing System Firmware Library
V1.0.)
Il sagit dune collection
de primitives logicielles
utiliser comme fondation lors du dveloppement de firmware de
pointe embarqu. Elle
a t optimise pour
tre utilise avec les
microprocesseurs et chipsets dIntel et fournit un
set de fonctions pour
une initialisation au
niveau du composant
tant en ce qui concerne le
processeur que la mmoire et
le chipset. Il ne sagit pas dun BIOS et
ne comporte pas de services pour des
systmes reposant sur un programme
travaillant par interruptions.
Un point important : SFL est gratuit
pour le client. On pourra le tlcharger
du site Internet dIntel voire le demander sur CD-ROM par carte denregistrement.
Cette bibliothque de firmware est prvue pour travailler avec les produits
dIntel suivants : le Pentium II, le
Celeron, la mmoire SDRAM et son
chipset, le 440BX AGPset.

LEntry-level Communications
Appliance Reference Design
Il sagit l dun concept comportant les
composants essentiels pour lobtention
des performances et fonctionnalits
requises pour les appareils de communication de base (entry level). Le but de
ce dveloppement est de permettre
un client potentiel de se concentrer sur
le march en disposant ds le dpart
dun module complet modifiable aisment pour rpondre ses besoins sans
quil nait modifier le coeur du microprocesseur ni adapter le concept du
chipset, tout cela en vue de permettre
une rduction du temps de dveloppement (time-to-market).
Le concept de rfrence utilise les composants suivants :
Un processeur Celeron 300A dIntel,
Le Chipset 440BX dIntel, ce qui sousentend 2xEIDE, 2 ports USB, un BIOS
de 2 Moctets Flash,
2 circuits 82559, composants dinterfaage Ethernet 10/100,
et de la mmoire Flash (dIntel bien
entendu), et tout cela sur une platine de
8,50 x 5,12 sur laquelle il est galement
prvu de la place pour 32 Moctets de
mmoire en barrette SODIMM et pour
lalimentation.

Les projets dIntel


au niveau du matriel ?
Il nest pas exclu que lon ait apparition,
un jour ou lautre, dune version
embarque du Xeon.
Intel travaille une carte-mre universelle qui pourrait recevoir tous les processeurs (ceux dIntel bien entendu)
allant du Cleron 300 MHz au Pentium
III 700, voire 800 MHz le jour o il sortira, ce qui ne devrait plus tre trs loin
puisque Intel vient tout juste dannoncer son Pentium III fabriqu en technologie 0,18 m et travaillant jusqu
733 MHz.
Notons au passage quIntel vient dintroduire une nouvelle famille de cartesmres baptise les Intel Desktop
Boards, la premire dentre elles tant
le SU810 Desktop Board, rien de moins.
Il suffirait de dfinir les diffrentes tensions requises par le noyau (core) et de
paramtrer le reste, par la mise en
place ici et l, de lun ou lautre cavalier.

Notons lapparition des premires units


centrales
CompactPCI

Pentium III (Ziatech). Elles doivent


quiper les commutateurs tlcoms
dATM aux USA.
La troisime annonce concerne :
Elektor

1/2000

Investing in Inovation
Pour illustrer ce dont il parlait, et symboliser ce qui nous attend dans les prochaines annes, Joe Jensen nous parla
de BlackBerry, un petit appareil portable dune dizaine de centimtres de
long sur 6 de large et 2 dpaisseur
(figure 2), une sorte de pager utilisant
un rseau radio sans fil spcialement
conu cet effet pour rester en communication permanente avec lensemble des autres systmes connects
ce rseau spcifique.

Figure 2. BlackBerry est-il le prcurseur de ce qui nous attend tous


dans les annes qui viennent ?
Lavenir nous le dira.
Il ne fonctionne (mal)heureusement (?)
par encore en Europe.
Cet appareil est un systme de communication bidirectionnel par radio permettant deffectuer les oprations les
plus classiques (actuellement) envoyer
un E-mail, lire son courrier lectronique;
il est fait par RIM (Research In Motion),
une socit amricaine.
Cest daprs Joe Jensen, lexempletype dune application dune architecture embarque ne comportant gure
plus quun microprocesseur 386 dIntel, 2 Moctets de mmoire Flash, un
bloc HF pour lmission et la rception.
Il permet de recevoir son courrier lectronique et, par le biais de son minuscule clavier, dy rpondre, laborieusement peut-tre, mais dy rpondre
quasi-instantanment ds lors que lon
se trouve dans une zone couverte par
le systme radio requis, (parties les plus
peuples des USA et les villes les plus
importantes du Canada).
Comme le montrent les quelques
points abords lavenir est nos portes
et cest nous de voir comment nous
le modlerons.
Terminons par une parole clbre de
Robert Noyce : Dont be encumbered by
history, go out and do something wonderful (ne restez pas esclave du pass,
sortez de la grisaille et crez quelque
(000033)
chose de merveilleux).
Adresses Internet intressantes :
http://developer.intel.com/,
le Developers Site
http://developer.intel.com/plateforms/appli
ed/comm/index.htm, la page daccueil
de la CACP (Communications Applied
Computimg Plateforms).
Texte : Guy Raedersdorf

15

MICROPROCESSEURS

mono-carte 537-Lite (I)


module faible cot microcontrleur
puissant et fiabilit amliore
Siemens appelle tendrement son 80C537,
un driv du 8051,
son lphant 8 bits.
Aprs vous avoir propos, voici quelque
temps dj, un systme dvaluation et
dexprimentation
sous la forme de la
mono-carte 80C537
(juin 1997), Elektor
sest mis en tte de
vous proposer un
module-noyau faible
cot reprenant ce
mme microcontrleur; il pourra, tre utilis, trs flexiblement
pour de nombreuses
applications petites et
moyennes en tant que
systme voluable; il
peut, en outre, se targuer dune trs
grande fiabilit de
fonctionnement.

projet : Prof. Dr. B. vom Berg


et Peter Groppe

16

Un coup doeil, aussi furtif quil soit,


la fiche de caractristiques du microcontrleur 80C537, aura vite fait de
nous convaincre que nous nous trouvons en prsence dun composant aux
talents multiples : 1 convertisseur analogique/numrique 8 (voire 10) bits
dot de pas moins de 12 entres, 3 temporisateurs/compteurs dots dune
possibilit de comparaison/capture,

une unit de coprocesseur mathmatique, un chien de garde embarqu


(watchdog), 7 ports dentres/sorties
numriques bidirectionnels, 2 interfaces srielles full duplex, 14 sources
dinterruption, un mode dconomie
dnergie et une ribambelle dautres
caractristiques intressantes. Si vous
voulez en savoir plus au sujet de ce
contrleur combien intressant, nous

Caractristiques techniques
microcontrleur 80C537, frquence de fonctionnement commutable entre
12 et 16 MHz).
Fiabilit accrue par la prsence du surveillant de microcontrleur MAX807.
32 Koctets dEPROM, 32 Koctets de RAM, avec possibilit dextension
externe vers 64 Koctets pour chaque type de mmoire.
mmoire RAM sauvegarde par pile.
Prsence de 4 adresses CS utilisables librement (dont lune pour LCD si
ncessaire)
Interface srielle 0 : aux normes RS-232
Interface srielle 1 : au choix aux normes RS-232 ou TTL.
Interface permettant une connexion directe dun affichage LCD disposant
de 1 x 16 4 x 20 caractres, rglage de luminosit.
Se laisse programmer dans tous les langages que connat le 8051 (fichier
INTEL-Hex) ou par mots-cl (token) Basic52
Alimentation : 5 V, 75 mA ( 12 MHz), 80 mA ( 16 MHz),
valeurs hors affichage LCD.

Elektor

1/2000

K6

5V

VOUT
VBATT

5V

CW

P1
4k7

PFI
PFO
RESET

D6
11

13
12

14

K4
D4
10

12

LCD

D7
D5
D3
D1

A0

C16

5V

C8

C1

IC4
74HCT573

EN

11
ALE

A0

14

13

12

D3

D2

D1

D0

PSEN

RO
49

82

A1

15

69

A2

1D

A3
10

17
3

4
D6

D5

52

50

RESET

A5
18

ALE

D4

D0

A6
D7

54

53

D2
55

D1

D3
56
57

D4
D5
58

41

59

42

D6

43

D7
A8

44

A9

45

A10
A11

46

D0

A12

D1
D2

A13

11

100n

D0
D1
13
D3

AN5

AN3

AN1

A15

AN2

17

18

AN5

14

15

16

AN6

78

13

79

C2

84

5V

38
VCC

100n

VCC

JP4

11

P1.2

P1.1

P1.0

VAREF

PSEN

RO

OWE

RESET
P1.4

P1.6

P1.5
P0.0

ALE

P1.3

IC1

P0.1
P0.2
P0.3
P0.4
P0.5
P0.6

P3.1
P3.2
P3.3
P3.4

P3.6

P3.5

P3.7

P6.1

P6.0

P5.7

P5.6

P5.5

P5.4

P5.3

P5.2

P5.1

P5.0

P4.7

P4.6

P4.5

P4.4

P4.3

P4.2

P4.1

P4.0

P2.0

P0.7

P3.0

P1.7

80C537

P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7

P7.0
P7.1
P7.2
P7.3
P7.4
P7.5
P7.6
P7.7
P8.0
P8.1
P8.2

P6.2
P6.3

P6.5

P8.3

P6.6

P6.4
AGND

22p

C10

83

37

60

VSS VSS VSS

PE/SWD

X2

P6.7
X1

X2
16MHz

X1
12MHz

40

39

EA

JP7

51

12

81

80

AN8

AN11

AN10

AN9

AN7

AN4

AN3

19

20

48

47

D4

AN7

A14

15

D6

D5

18
D7

17

19

AN10

AN1

16

12

19

C7

16

28

IC2
D2
D3
D4
D5
D6
D7

CS
20

AGND

14

27C256

EPROM

VPP

A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
OE
22

AN0

A4

2
AN0

12

10

K3

AN2

AN8

14

11

16

AN11

13

AN4

AN9

JP3

15

AN6

A7

JP13

JP12

A0

5V

10

A0

A0

A2

10

A3

A2

A1

A3

A5
4

A5
A6

5
A6
3

A4

4
A7

24

A7

A9
21

A9
A10
23

25

24
A10
A11

A8

21
A11

26

23

A13

A13
27

A12

26
A14

GAL1

PROM

READ

JP11

A14

A12

A8

A4

A1

100n

13

GAL3
CS1

CS0

16
17

CS2
LCD

RD

15 GAL3

14 GAL1

RAM

25

10
16V

A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14

27

WE

62256

RAM

IC7

D0
D1
D2

D1
13
D3

D7

D2
15
16
D4
D5
D6
D7

CS

28

D6

D3

17

D0

D2

D5

D4

11

D0

D4

VOUT

D3
D5
18
19

20

14

LCD
12 GAL2

5V

F0
F1
F2
F3
F4

18
19

C9
22p

36

INT5

INT4

INT3

67

68

P53

P52

P51

P50

P47

P46

P45

P44

P43

P42

P41

P40

73

P65

P64

P63

D2

1N4148

35

VAREFF

34

INT6

RAM

33

INT2

PFO

66

P54

74

P66

S2

WDRAM

32

T2EX

65

P55

CS2

31

PFI

RXD0

CLKO

21

TXD0

30

22

INT0

T2

23

T0

INT1

29

24

T1

25
26

64

RD

63

P56

WR

62

P57

RXD0

27

61

P60

28

70

TXD1

75

JP5

MR

5V

INT0

RXD1

TXD0

3
11
9
12

10

5V

JP22

C11

C15

JP6

7
11
12
6
10
4
2
1

C1
10
16V

T2IN
C2+

C2

5V
C6
100n

LOW LINE

IC6

CE OUT
CE IN
MR

OUT

RESET
RESET
BATT

BATT OK

16

VBATT

RESET

RESET

VOUT

3V

14

D1

BT1

R1

10
16V

13
15

C6

C4

100n

5V

16

14
8
13
7

15

C12

100n

C13

R1IN

T1OUT

R2IN

C14

T2OUT

K2

JP21

V-

BATT ON

MAX807

WDO
WDI
PFO
PFI

20

IC5

V+

10

IC4

MAX232

R2OUT

R1OUT

T1IN

C1

C1+

C11, C13 ... C15 = 1 / 16V

71 RXD1

76

P67

72 TXD1

77

INT1
5

1k

RESET

D2
D6

ALE

D1
D7

A7
A6
A5

22

OE

C3

20

IC3

100n

I0
I1
I2
I3

GAL
16V8

F5
F6
F7

GAL2

A15

A4
A3

1
2
3
4
5

I4
I5
I6
I7

10

PROM

A2
A1
A0
A15
A14
A13
A12

A15
A14
A13
A12
A11

6
7
8
9

I8
I9

PSEN

A1
11

WR

D0

RD
RO
WR
PSEN

READ

INT4

INT3

INT6

INT5

INT2

T2EX

CLKO

T2

T1

INT0

INT1

T0

P46

P47

VAREFF

P45

P44

P43

P42

P41

P40

P67

P66

P65

P63

P64

P60

P50

P51

P52

P53

P54

P55

P56

K1

P57

K7

990054 - 11

microcontrleur de la famille 8051 la


petite diffrence prs quil est possible,
par le biais du cavalier JP7, dopter
pour lune des 2 frquences de cadencement disponibles, 12 ou 16 MHz.
Les ports dE/S numriques
sont directement accessibles par le biais
de lembase K7. Les entres ne comportent pas dlectronique de protection, les sorties nont pas dlectronique
de commande (driver).
Les ports dentres analogiques

puissance du module. Toutes les lignes


importantes du microcontrleur ont
t reportes sur des embases, voire
drives vers des borniers o lutilisateur pourra sen servir au gr de ses
besoins pour dventuelles extensions.
Le matriel constituant la carte et dont
on trouve le schma en figure 1, le laisse
subdiviser en blocs fonctionnels dont les
plus importants sont les suivants :
Llectronique du microcontrleur qui
est en fait lapplication de base dun

LE MATRIEL
La mono-carte 537-Lite constitue,
avec le SAB80C537 qui rgne en son
centre, un module microcontrleur
faible cot utilisable toutes les sauces.
Il pourra tre enfich, comme un circuit intgr monstrueux, au coeur
mme de lapplication dont il doit
assurer le pilotage. Lencadr numrant les caractristiques techniques permet de se faire une petite ide de la

Figure 1. Le SAB80C537 est un excellent microcontrleur mritant


de trner au coeur dune carte extrmement puissante.

vous renvoyons la bibliographie donne la fin du second article.

A11
A10
A9
A8
PSEN
WR
RD
CS0
CS1
CS2

S1

WDRAM

17

1/2000

Elektor

K5

5V

D1
K5 K6

C5

JP4
K7

S2

Figure 2. Cette platine relativement


compacte pourra tre monte comme
un gros circuit intgr directement
sur le montage dapplication.

R1
K3

BT1
IC6
C1
JP6

18

K4

D2

JP5
C8

C16

JP3

990054-1

C7

IC2

IC4

IC1

C2

JP7

P1

X1
X2

C10

IC7

C12 C13

C6

C3
K1

K2

JP21
JP22

C9
C15

IC5

JP12
JP11

JP13

IC3

S1

Le 80C537 possde 12 entres analogiques multiplexes (0 5 V, rsolution


de 8 (voire de 10) bits) qui sont regroupes sur lembase K3. Il faudra penser
ajouter, si ncessaire, llectronique
de protection et de filtrage externe
requise. Les cavaliers JP3 et JP4 permettent de dfinir le niveau de rfrence des broches de la tension analogique, de la masse et de la tension de
rfrence positive.
Les interfaces srielles
Le 80C537 dispose de 2 interfaces
srielles, SS0 et SS1, dont les lignes ont
t prolonges jusquaux embases SubD K1 et K2. SS0 travaille des niveaux
V24 fixes (niveaux RS-232 fournis par
ladaptateur de niveau MAX232); il est
possible, au niveau de SS1, de paramtrer, par la mise en place de JP21 et
JP22, la norme de fonctionnement, V24
ou TTL, de cette seconde interface
srielle.
Les bancs de mmoire
La connexion des circuits de mmoire
(32 Koctets dEPROM, IC2 et 32 Koctets
de RAM, IC7) respecte lapproche classique du 8051, savoir par le biais des
ports 0 et 2 du contrleur et du verrou
dadresses 74573, IC4.
La logique de dcodage
Llectronique de codage et de dcodage des signaux de commande prend
la forme dune GAL 16V8, IC3, ce qui
permet au montage de gagner en
compacit.
Laffichage LCD
Il est prvu de pouvoir connecter directement lembase K4 un affichage
cristaux liquides (LCD) alphanumrique si tant est quil dispose dun
contrleur HD44780 de Hitachi ou tout
autre type compatible, ce qui est le cas
de prs de 80% des affichages. Il est
donc possible, de connecter et de piloter un affichage comportant entre
1 ligne de 16 caractres et 4 lignes de
20 caractres. Lajustable P1 sert rgler
la luminosit de laffichage LCD.
Circuit de surveillance de microcontrleur, MAX807
La scurit de fonctionnement remarquable de cette mono-carte est due
lutilisation dun circuit intgr spcialis, le MAX807. Ce composant remplit,
dans un systme microcontrleur,
7 fonctions de surveillance, de signalisation et dalarme :
Gnration automatique dun signal
POR (Power On Reset = de remise
zro la mise sous tension)
Remise zro manuelle par action
sur une touche
Fonction de chien de garde (watchdog)
Protection de ligne de validation de
circuit (CS = Chip Select) en cas de

C4

C11
C14

disparition de la tension systme


Suivi de la tension systme
Suivi de la tension dalimentation
Connexion possible dune pile de sauvegarde avec gestion de son nergie.
Les pages Infocarte publies ailleurs
dans ce magazine vous proposent des
informations additionnelles concernant ce composant.

RALISATION

ET MISE
EN FONCTION AISES
Il faudra, lors de limplantation des
composants sur la platine dont on
retrouve le dessin des pistes et la sri-

graphie de limplantation des composants en figure 2, respecter les rgles de


base classiques : commencer par les
composants les plus petits, pour passer
aux plus encombrants ensuite, utiliser
des supports de qualit pour tous les
circuits intgrs, et procder une vrification critique de la platine une fois
les soudures termines. La pile de sauvegarde ne sera mise en place quaprs
que lon se soit assur du bon fonctionnement de la carte.
IC4 et IC7 appellent une remarque vu
que ces 2 composants sont, pour des
raisons dconomie de place, monts

Liste des composants


Rsistances :
R1 = 1 k
P1 = 4k7
Condensateurs :
C1,C12,C16 = 10 F/16 V vertical
C2 C8 = 100 nF cramique
C9,C10 = 22 pF cramique
C11,C13 C15 = 1 F/16 V vertical
Semi-conducteurs :
D1 = LED 3 mm rouge haut
rendement
D2 = 1N4148
IC1 = SAB 80C537-16-N (Siemens)
IC2 = 27C256 (programme EPS
996510-1)
IC3 = GAL 16V8 (programme EPS
996515-1)
IC4 = 74HCT573
IC5 = MAX232 (Maxim)
IC6 = MAX807 NCPE (Maxim)
IC7 = RAM 62256 (70 ns)

Divers :
K1,K2 = embase sub-D en querre
9 contacts encartable
K3 = embase droite 2 ranges de
8 contacts avec jecteurs
K4 = embase droite 2 ranges de
7 contacts avec jecteurs
K5,K7 = embase autoscable SIL
mle 1 range de 35 contacts
K6 = embase autoscable SIL mle
4 contacts
JP3,JP4,JP6 = embase mle
autoscable 2 contacts + cavalier
JP5,JP7,JP11 JP13,JP21,JP22 =
embase mle autoscable
3 contacts + cavalier
X1 = quartz 12 MHz
X2 = quartz 16 MHz
S1 = embase autoscable
3 contacts destine la connexion
de linverseur unipolaire
S2 = bouton-poussoir unipolaire
BT1 = pile au lithium 3 V de 20 mm
de diamtre + porte-pile

Elektor

1/2000

broche 9). Lalimentation doit tre de


5 V exactement; attention une inversion de sa polarit aux consquences
dramatiques. La consommation de
courant ne doit pas dpasser 80 mA.
Aprs avoir coup lalimentation on
connecte linterface SS0 (K1) de la carte
un port COM libre du PC. On pourra
fabriquer soi-mme le cble requis en
respectant le brochage suivant :

990054-1
(C) ELEKTOR

K1 de la mono-carte
Sub-D 9
TxD 2
RxD 3
GND 5

PC (AT)
Sub-D 9
RxD 2
TxD 3
GND 5

Il faudra, si lon envisage de connecter


la mono-carte un PC de type XT,
intervertir les contacts RxD et TxD et se
rappeler que la masse se trouve la
broche 7 de lembase Sub-D
25 contacts du PC (XT).
K1 de la mono-carte
Sub-D 9
TxD 2
RxD 3
GND 5

en gigogne . Ces 2 circuits intgrs


tant monts sur support, il faudra surlever la RAM IC7 par la mise en place
dune range de contacts hauts voire la
superposition dun second support
24 broches dont on aura supprim la
barrette transversale.
Aprs un dernier contrle, une fois les
composants mis en place, on optera,
aprs avoir implant lEPROM moniteur, IC2, pour un paramtrage, par le
biais des cavaliers, forant la monocarte en mode de fonctionnement n2,
Program Download.
Mettre les cavaliers PP11, JP12 et JP13
Elektor

1/2000

en position 2/3
Placer JP21 et JP22 en position 1/2
Implanter les cavaliers JP3 et JP4
Ne pas implanter ni JP5 ni JP6
Le cavalier JP7 est mis en position 1/2
(frquence dhorloge de 12 MHz)
Linverseur S1 est mis en position
Load RAM (vers la masse).
Il est temps dappliquer la tension
dalimentation. Il est recommand, lors
des essais, de ne pas brancher lalimentation
directement
sur
lembase K6, mais dalimenter la carte
par le biais de lembase sub-D K2
(masse la broche 5 et +5 V la

PC (XT)
Sub-D 25
RxD 3
TxD 2
GND 7

On peut remettre la mono-carte sous


tension. On place ensuite la disquette
EPS976008-1 dans le lecteur A et on
lance le programme term.exe dans une
fentre DOS. On fera, au premier lancement, term 1 pour indiquer que lon
utilise le port COM1, ou encore term 2
dans le cas du port COM2. Aprs
apparition du message de copyright on
verra safficher un menu 4 points se
terminant par un caractre #.
Une action sur la touche de RAZ de la
mono-carte se traduit par lapparition
de lentte
TFH-80C537er-Monitor
La liaison entre le PC et la mono-carte
tant tablie, on peut partant tlcharger le premier programme. Il faut,
avant de procder au tlchargement
dun nouveau programme, effectuer
une RAZ de la mono-carte. Cette RAZ
fait repasser au dbut dun programme
dj charg, son lancement se faisant
par une instruction g0.
On appuie sur la touche F2 (Input
from file) pour le tlchargement dun
programme, entre le nom p1.hex
comme nom de fichier et lance la commande par un RETURN .
On voit alors dfiler quelques colonnes
de chiffres sur lcran; il sagit du
fichier INTEL-Hex du programme
p1.hex. Lapparition dun unique #
marque la fin du tlchargement du
programme.
Aprs une instruction g0 suivie dun
RETURN le programme dmarre
ladresse 0. S1 se trouve alors en position Load RAM.
(990054-I)
Texte : Rolf Gerstendorf
Technique : Hans Bonekamp

19

MICROPROCESSEURS

cours de programmation

BASIC Stamp (5)


5e partie : Remote Rover
Vin

20

Servo

P15

VDD

10k

VSS
Vin
P3

3300F

Servo

Nous allons, ce moisci, voir comment faire


rpondre le vhicule
BoE-Bot aux instructions qui lui sont donnes par le biais
dune tlcommande
infrarouge.

10k

VDD
rcepteur IR

P0

par Al Williams
100n

VSS

Figure 20.Llectronique du
Remote Rover. Elle ne comporte quun seul capteur IR
(Panasonic type 4602).

Savez-vous combien de tlcommandes vous possdez. Si vous me ressemblez, leur nombre est ahurissant.
La quasi-totalit des appareils grand
public semblent ne pas pouvoir se passer de leur tlcommande propre. Si
vous avez le malheur de dmolir ou
dgarer la tlcommande fournie
dorigine avec un appareil, il va vous
falloir en acheter une nouvelle, puis
une autre, aucune dentre elles ntant
en fait en mesure de commander
infailliblement lappareil en question.
Nous avons vu, le mois dernier, comment doter votre BoE-Bot dun dispositif de dtection dobstacle par infrarouge (IR). Il existe une plthore de
composants IR pour la simple et bonne
raison que les tlcommandes utilisent
pour la plupart lIR pour lenvoi de
commandes vers lappareil concern.

20

Aussi, avons-nous pens, pourquoi ne


pourrions nous pas apprendre
notre BoE-Bot capter des instructions
mises par une tlcommande ? Si
vous tiez en mesure de communiquer
distance avec votre robot vous pourriez lui ordonner de faire ce que vous
voulez sans avoir quitter votre fauteuil ! Ce faisant, vous dcouvrirez galement comment le Basic Stamp
mesure les impulsions et traite les
tableaux (arrays).

DTAILS
Llectronique requise est, comme le
montre le schma de la figure 20, trs
simple. Il sagit, peu de choses prs,
du mme circuit que celui utilis dans
larticle du mois dernier, ceci prs
quil ne requiert quun seul capteur IR
et ne comporte pas de LED. Les LED se

990050 - 5 - 11

trouvent dans la tlcommande. Il


devrait tre possible, aprs quelques
essais, dutiliser pratiquement nimporte quelle tlcommande. ai, quant
moi, opt pour une tlcommande
Sony pour la simple raison que son
protocole SIRCS (Serial Infra Red Control
Signal; baptis occasionnellement
Control S) est parfaitement document
sur Internet. Si vous ne possdez pas
de tlcommande Sony, achetez une
tlcommande universelle bon march
et programmez-l pour la commande
dun tlviseur Sony. Il existe un certain
nombre de protocoles courants utiliss
par les tlcommandes (jetez un coup
doeil ladresse : www.hut.fi/Misc/
Electronics/docs/ir/ircodes.html
pour vous faire une ide). La plupart
dentre elles utilisent une forme ou une
autre de MLI (Modulation en Largeur
Elektor

1/2000

dImpulsion = PWM pour Pulse Width


Modulation en anglais). Dans le cas du
protocole Sony, la tlcommande met
un bit de dbut (start) souvent connu
sous la dnomination dimpulsion
AGC, dune longueur relativement
importante (suprieure 2 ms). Cela
permet au rcepteur de se synchroniser et dajuster sa CAG (Commande
Automatique de Gain, do le AGC
mentionn plus haut); cet ajustement
se fait lintrieur du module du dtecteur IR.
Aprs le bit de dbut, la tlcommande
met une srie dimpulsions. Une
impulsion de 600 s reprsente un 0,
une impulsion de 1 200 s reprsentant
elle un 1. 2 impulsions successives sont
spares par un intervalle de 600 s. Vu
linfluence que diffrents facteurs peuvent exercer sur cette chronologie, il ne
faut pas la prendre au pied de la lettre.

tion utilise toujours, en interne, un


temporisateur (timer) 16 bits, de sorte
que le choix dune variable dun octet
ne change en rien la dure dcoulement de la priode du temporisateur
(timeout). Il va nous falloir, avec le capteur IR, mesurer des impulsions dune
largeur suprieure 2 ms, ce qui
explique que tous les programmes lists dans cet article utilisent une
variable dun mot de large.
Si lon suppose que le capteur IR se
trouve connect la broche 0, il est
extrmement facile de mesurer la largeur dune impulsion IR :

MESURES DIMPULSIONS
Le Stamp est en mesure de lire des largeurs dimpulsion (par le biais de son
instruction PULSIN). PULSIN requiert
3 arguments. Le premier spcifie la
broche utiliser pour la mesure de limpulsion. Le Basic Stamp fait de ladite
broche, si elle ne lest pas dj, une
entre. Largument suivant indique
linstruction sil lui faut dtecter une
transition bas/haut (1) ou haut/bas (0).
Le dernier argument est une variable
de la taille dun mot (word-sized) qui
contient la dure de limpulsion (si tant
est quelle en ait une). Le Basic Stamp
utilise une base de temps de 2 s; dans
ces conditions si la variable contient le
nombre 100, limpulsion aura une largeur de 200 s. Linstruction steint
au bout de 131 ms. En labsence dimpulsion au cours de cette dure linstruction met la variable 0. La taille
dimpulsion maximale que lon puisse
mesurer est en effet de 65 353 x 2 s,
do les 131 ms.
Linstruction PULSIN ne prend dimpulsion en compte que si elle dtecte le
flanc prvu. Supposons que nous voulions dterminer la dure dune action
sur un bouton-poussoir. Le bouton
applique un 0 la broche dentre tant
quil est activ. Si on lance lexcution
de PULSIN aprs le passage zro
du bouton on naura jamais mesure de
quelque impulsion que ce soit. Il faut
excuter PULSIN avant larrive du
flanc de limpulsion. Pour peu que lon
y rflchisse, cela semble vident
puisque cela vite que PULSIN ne
fournisse des rsultats errons. Linstruction mesure chaque fois une
impulsion complte.
On pourra utiliser une variable dun
octet de large (byte-wide) si les impulsions mesurer ne dpassent jamais
510 s. Sil devait alors se faire que la
largeur dimpulsion dpasse cette
valeur, le rsultat fourni sera faux sans
quil ny ait davertissement. Linstruc-

On pourra essayer ce programme


simple pour vrifier que lon dtecte
des largeurs diffrentes en fonction des
touches de la tlcommande que lon
actionne. Comme on ne lit pas encore
chacun des bits, les rsultats obtenus
nont pas encore de signification. La
tlcommande Sony met 12 bits de
donnes (13 au total si lon tient
compte du bit de dbut). Les 7 premiers bits reprsentent le code de fonction (le bit de poids faible en premier),
les 5 bits suivants constitue le code
didentification (ID) dun appareil. Vu
que seules les touches de fonction nous
intressent, nous pouvons ignorer le
code didentification.
On pourrait, en principe, lire le mot de
la faon suivante :

Elektor

1/2000

IRREAD:
PULSIN 0,0,W1
IF W1=0 THEN IRREAD
pas dimpulsion
DEBUG ?W1
GOTO IRREAD

IRREAD:
B0=0
lecture de loctet
B1=1
masquage de bit
PULSIN 0,0,W5
IF W5<1200 then IRREAD
ce nest pas un bit de dbut
FOR B2 = 1 to 7
PULSIN 0,0,W5
IF W5<400 THEN READZERO
B0=B0+B1
positionner 1 bit
READZERO:
B1=B1*2 supprimer masquage
NEXT

Joli morceau de code, nest-ce pas, mais


il ne marche pas. Le principe est, quant
lui, sain. La premire PULSIN lit le bit
de dbut et rejette tout bit ne possdant pas la longueur correcte. Le code
entre ensuite dans une boucle, lisant
successivement tous les bits et plaant
dans B0 le bit correspondant lorsque la
longueur de limpulsion est suprieure
800 s, longueur largement suprieure aux 600 s dun 0; vu quun 1 a
une dure nominale de 1 200 s, aucun
dentre eux ne devrait avoir une dure
aussi courte que 800 s.

Le seul problme avec ce code est que


lintervalle entre les bits nest que de
600 s. Cela ne laisse pas tellement de
temps au Stamp pour rcuprer aprs
lecture de la dernire impulsion. Le
Basic Stamp requiert un minimum de
470 s pour excuter une instruction IF
(la dure moyenne dexcution dune
instruction est de quelque 330 s certaines plus, dautres moins).
Mme les instructions les plus rapides
ncessitent plus de 100 s. La prsence
dinstructions entre les diffrentes excutions de la routine PULSIN, le Basic
Stamp rate lun ou lautre bit.
Lune des options ouvertes consisterait
passer un Basic Stamp IISX, beaucoup plus rapide quun Basic Stamp
standard. Il est cependant possible,
avec une programmation astucieuse,
de faire en sorte quun Stamp II lise les
impulsions IR cette vitesse.

LA SOLUTION
Il nous faut, pour rsoudre ce problme, rduire les instructions intercales entre les instructions PULSIN. En
fait, il faudrait, pour garantir un fonctionnement correct, liminer les instructions intercales entre les instructions PULSIN. Comment faire ? Se
rsoudre stocker les rsultats bruts
fournis par PULSIN pour les traiter
ultrieurement lorsque lon dispose de
plus de temps de traitement.
Le problme se pose de savoir o lon
stocke ces dures brutes ? On pourrait,
bien entendu, envisager dutiliser des
variables, mais il nous faut un minimum de 8 variables-mot (une pour le
bit de dbut, 7 autres pour les bits de
donnes). Cela pourrait se traduire par
du code on ne peut plus laid. Vous
aurez peut-tre pens, si vous avez
lhabitude de travailler avec dautres
langages de programmation, stocker
les comptages dans un tableau. Bonne
ide, dautant plus que le Basic Stamp
sait travailler avec des tableaux.
TABLEAUX
Un tableau est une technique de
regroupement des variables similaires
en utilisant un nom de variable commun, un nombre-index servant diffrencier une variable de lautre. Supposons que nous voulions travailler avec
des nombres impairs. On pourrait
crire :
oddnums var byte(5)
oddnums(0) = 1
oddnums(1) = 3
oddnums(2) = 5
oddnums(3) = 7
oddnums(4) = 9

La variable oddnums(2) rfre au troisime nombre impair (on se souviendra que lindex dmarre 0). Si lon
rserve 5 lments, lindex utilisera les
chiffres 0 4. Si lon utilise un chiffre

21

Listage 8. Le programme du Remote Rover.


Remote Rover par Al Williams
irsense con 0
irinput var in0
irthreshold con 450
irstartlow con 1100
irstarthi con 1300

value var byte

pulsout left_servo,center-speed
pulsout right_servo,center-speed
pause 20
next
goto top
right:
for i=1 to delay
pulsout left_servo,center+speed
pulsout right_servo,center+speed
pause 20
next
goto top

rsultat

raw var word(7)


start var word
dummy var word

right_servo con 3 moteur de servo droit


left_servo con 15 moteur de servo gauche
delay var byte
dure de cycle du moteur
center con 750
speed var word
i var byte

delay=10
speed=100

top:
gosub read_ir
if value=1 then
if value=3 then
if value=5 then
if value=7 then
goto top

forward
left
right
back

forward:
for i=1 to delay*2
pulsout left_servo,center-speed
pulsout right_servo,center+speed
pause 20
next
goto top
back:
for i=1 to delay
pulsout left_servo,center+speed
pulsout right_servo,center-speed
pause 20
next
goto top
left:
for i=1 to delay

diffrent de ces 5, on crit dans de la


mmoire utilise, le cas chant, par
une autre partie de son programme.
Cette technique est pratique car elle
permet de travailler avec des tableaux
imbriqus dans des boucles. On pourrait, pour crire tous les nombres
impairs, crire, par exemple, le code
suivant :

read_ir:
Le problme est ici lexistence dun trou de
quelque 500 us entre les bits de sorte que le
Stamp risque de rater quelque bits moins que
lon ne lise la totalit en une seule passe.
Il nest, partant, pas possible de procder
cette lecture lintrieur dune boucle ni
mme de tester le bit de dbut tant que lon
nen a pas termin.
if irinput=0 then noir Dj au milieu dune
impulsion, autant la sauter
pulsin irsense,0,start
pulsin irsense,0,raw(0)
pulsin irsense,0,raw(1)
pulsin irsense,0,raw(2)
pulsin irsense,0,raw(3)
pulsin irsense,0,raw(4)
pulsin irsense,0,raw(5)
pulsin irsense,0,raw(6)
Pourquoi ne pas les faire sortir
pulsin irsense,0,dummy
pulsin irsense,0,dummy
pulsin irsense,0,dummy
pulsin irsense,0,dummy
pulsin irsense,0,dummy
vrifier bon bit de dbut
if (start<irstartlow) or (start>irstarthi)
then noir
value=0
for dummy=6 to 0
value=value*2
if raw(dummy)<irthreshold then ir0
value=value+1
ir0:
next
return
noir:
value=-1
return

donnent pas de mmoire supplmentaire, ils nous permettent tout simplement de mieux utiliser la mmoire
disponible.

I var byte
for I = 0 to 4
Debug ?oddnums(I)
next

LECTURE
DUN SIGNAL IR
Une lecture avec succs du flux de
donnes IR requiert une srie de
13 instructions PULSIN (ou encore 8 si
on dcide dignorer les bits additionnels). Il nous suffit de stocker 8 de ces
comptages. Voici quoi votre code
devrait ressembler :

Il nous faut bien entendu respecter


les limites du Basic Stamp au niveau
de la mmoire. Les tableaux ne nous

irsense con 0
irstartlow con 1100 largeur
minimale du bit de dbut

22

irstarthi con 1300 largeur


maximale du bit de dbut
raw var word(7)
dummy var word
start var word
read_ir:
pulsin irsense,0,start lecture du bit de dbut potentiel
pulsin irsense,0,raw(0)
pulsin irsense,0,raw(1)
pulsin irsense,0,raw(2)
pulsin irsense,0,raw(3)
pulsin irsense,0,raw(4)
pulsin irsense,0,raw(5)
pulsin irsense,0,raw(6)
pulsin irsense,0,dummy
ID composant ignorer
Elektor

1/2000

pulsin irsense,0,dummy
ID composant ignorer
pulsin irsense,0,dummy
ID composant ignorer
pulsin irsense,0,dummy
ID composant ignorer
pulsin irsense,0,dummy
ID composant ignorer

Internet

Il ne vous reste plus qu traiter les


donnes brutes. Il se peut que le premier bit pris en compte par le code ne
soit pas le bit de dbut, un simple test
nous vite une lecture dun paquet de
donnes en plein milieu :
if
start<irstartlow
start>irstarthi then noir

or

Il nest malheureusement pas possible


de pratiquer ce test juste aprs la lecture du bit de dbut, il nous faut lire
lensemble du paquet et dcider
ensuite sil est ou non valide.
La tche suivante est de convertir la
donne brute en un nombre binaire.
ce niveau, la vitesse nest pas critique :
value var byte
value=0
for dummy=6 to 0
value=value * 2
if raw(dummy)<irthreshold
then ir0
value = value +1
ir0:
next
return

Ce code ne fait rien de plus quexaminer chaque valeur (dans lordre


inverse). Si la valeur brute dpasse le
seuil, le code incrmente (ajoute 1) le
rsultat. En tout tat de cause, le code
multiple la valeur par 2 (un dcalage
gauche) chaque fois que lon se
trouve dans la boucle. Le Stamp
connat un oprateur dcalage
gauche (shift left) ce qui permet de remplacer linstruction de multiplication
par :
value = value << 1

Il est possible maintenant de lire facilement les touches de la tlcommande.


Les touches tant rptitives vous ne
manquerez pas de vouloir en tenir
compte dans votre programme.

REMOTE ROVER
Arm de ces routines pour le capteur
IR, il reste doter votre robot dune
tlcommande. Tout ce quil vous faut
savoir cest la correspondance entre
les touches de la tlcommande et les
valeurs mises, ce qui se laisse facilement dduire en faisant appel la
routine ir_read et en utilisant debug
pour limpression la variable reprsentant la valeur.
Dans le cas de la tlcommande Sony,
Elektor

1/2000

http://www.parallaxinc.com BASIC Stamp Manual Version 1.9, BASIC Stamp DOS et Windows Editor, exemples de programmes. Sources ation examples. Sources de distribution
internationale.
http://www.stampsinclass.com documentation BoE-Bot, Robotics curriculum, BoE-Bot
formats de dessin *.dxf and *.dwg, groupe de discussion pour lutilisation du BASIC Stamp
dans lducation.
chucks@turbonet.com crateur du BoE-Bot et auteur de cette srie drticles. Assistance
technique.
kgracey@parallaxinc.com co-auteur de cet article. Assistance technique et questions
concernant le programme d ducation.
http://www.selectronic.fr distributeur du BASIC Stamp de Parallax en France

la touche 1 retournait un 0, la
touche 2 un 1, et ainsi de suite. Lauteur a choisi le 2 comme commande
de marche avant, le 8 comme commande de dplacement vers larrire,
les touches 4 et 6 correspondant
une rotation vers la gauche et la
droite respectivement. Si lon voit les
positions de ces touches, ce choix est
presque naturel.
Il nest pas trs difficile de procder au
test dune touche donne et denvoyer
les instructions correctes aux servos (
limage des autres commandes de
dplacement dcrites dans les articles
prcdents). Le listage 8 vous donne le
code complet du Remote Rover.
Lauteur rencontra cependant une limitation. Aprs stre amus quelque
temps avec le code du Remote Rover, il
imagina obtenir un mouvement vers
lavant du robot lors dune action sur la
touche 2 , mouvement devant se
poursuivre jusqu lentre dune nouvelle commande ou une action sur la
touche 5 . Les choses tournrent au
problme.
Il est trs facile de positionner un indicateur (flag) pour signaler un mouvement vers lavant. Le problme auquel
on se trouve cependant confront est
quil faut, lorsque lon essaie de lire le
signal IR mis par la tlcommande,
attendre que chaque instruction PULSIN se soit coule compltement
avant que le programme ne retourne
dans la boucle principale. Avec 13 instructions auxquelles il faut 131 ms pour
scouler compltement cela se traduit
par prs de 2 s de temps mort entre
2 instructions de mouvement successives. Do un mouvement relativement saccad du robot. Ce phnomne
est moins brutal avec lapproche originelle, vu que les codes rptitifs mis
par la tlcommande terminent les instructions PULSIN sans que celles-ci
naient scouler totalement.
Il est bien videmment possible damliorer les choses quelque peu en ne prenant pas en compte les codes didentification (ID) des composants. Cette
solution diminue le nombre de
priodes devant scouler, mais prsente linconvnient daugmenter le
nombre de fois que votre robot ratera le
bit de dbut et aura partant se resynchroniser avec la tlcommande. Tous

comptes faits, le code resta ce quil tait.


Autre moyen daccrotre lefficacit :
tester le capteur avant dinterroger le
bit de dbut. Si le capteur rpond par
un 0, cest que lon se trouve au milieu
dun paquet (de donnes) et que partant il nexiste aucune possibilit de
lire, alors pourquoi se faire du soucis ?
Le code donn dans le listage 8 procde ce test.

VOLUTIONS

FUTURES
Il existe mille et une modifications
simples faire au programme du listage 8. On pourrait, par exemple, imaginer de programmer les boutons de
volume et de canal en vue de modifier
les variables de vitesse et de dlai.
Essayez-vous y.
Une fois que vous savez lire les codes
de la tlcommande vous pourrez
doter votre robot de toutes sortes de
fonctions plus sophistiques. Il serait,
par exemple, trs simple de faire en
sorte que certaines touches spcifies
produisent une srie prdfinie de pas.
Avec un rien dnergie additionnelle
on pourrait imaginer dutiliser la tlcommande pour programmer une
squence, la stocker en EEPROM, pour
la rappeler ultrieurement ( limage
dune macro). On pourra, une fois saisi
le protocole de la tlcommande,
envoyer au robot une srie de commandes destines au pilotage de votre
tlviseur, mettre le robot dans une
autre pice et lui faire mettre les instructions prvues une fois quil se
trouve en face du tlviseur. On pourrait mme envisager dutiliser ces techniques pour permettre 2 robots de
communiquer lun avec lautre sur des
faibles distances.
Bien que les impulsions craches
par la tlcommande IR soient trs
rapides, le Basic Stamp peut fort bien
les traiter condition que le programme ait t crit correctement.
Linstruction PULSIN permettait une
mesure simple et prcise des impulsions. Bien quils ne soient pas indispensables, les tableaux simplifient normment la tche. Avec un rien dingniosit, il ny a pratiquement pas de
limite ce que le Basic Stamp peut faire.
(990050-5)

Texte : J. Buiting
Technique : L. Lemmens

23

AUDIO, VIDO & MUSIQUE

audio-DAC 2000
3e partie : quelques aspects pratiques
Ceux dentre nos lecteurs
qui ont lu avec attention les
2 premiers articles consacrs au sujet connaissent tout du fonctionnement de notre nouveau
convertisseur N/A haut de
gamme. Les seuls aspects
sur lesquels il nous faut
encore attirer lattention
concernent la ralisation
pratique. Ce sera l le
thme majeur de ce troisime et dernier article.

Il nous faut, cependant, ajouter une


remarque lintroduction ci-dessus, vu
quil reste un sous-ensemble du montage dont nous navons pas encore
parl, savoir lalimentation.
Nous avions signal, dans le second
article, que les circuits intgrs des
convertisseurs N/A taient aliments
en + et 5 V, tensions drives, par le
biais des rgulateurs IC13 et IC14, de la
tension principale de 12 V destine
lalimentation de la partie analogique
du circuit. Comme il est important de
rduire au strict minimum les lignes
dalimentation vers les convertisseurs,
lesdits rgulateurs ont trouv directement place sur la platine des CNA .
Nous avons besoin, pour lalimentation
de la partie du rcepteur et du reste de
llectronique prsente sur la platine
des CNA, dune tension asymtrique
de +5 V et dune tension symtrique
de 12 V. Sa gnration se fait par lintermdiaire de rgulateurs de tension
classiques (IC15 IC17) qui, associs
aux composants connexes quils
requirent, trouvent place sur un cir-

26

cuit imprim distinct. On retrouve, en


figure 5, le schma de lalimentation;
on voit immdiatement que lalimentation numrique +5 V est totalement
spare de la tension symtrique de
12 V requise par llectronique analogique. Les masses des 2 alimentations
sont interconnectes, sur la platine des
CNA, entre le filtre numrique et les
CNA (au niveau de JP3 donc). Comme
on le voit, lalimentation ne se rsume
pas uniquement quelques rgulateurs intgrs mais requiert galement
la prsence de quelques ponts de
redressement et lun ou lautre condensateur. On trouve, coinces entre le
pont de redressement et les condensateurs de lissage, les rsistances darrt,
R55, R56 et R8, destines limiter le
courant de charge et partant liminer
encore mieux dventuels parasites.
Les borniers K11 et K13 se voient
connects aux transformateurs de lalimentation, un 15 V/4 VA et un
8 V/4 VA respectivement.
Nous vous laissons le choix du modle,
la liste des composants donnant un

certain nombre de type de transformateurs utilisables. Nous avons dvelopp


une platine spcifiquement destine
ce montage vous permettant lutilisation diffrents types de transformateurs, circuit imprim sur lequel viennent galement se monter les 2 filtres
secteur, les porte-fusibles et les borniers
de connexion. Nous avons consacr un
article distinct ce projet, article publi
ailleurs dans ce magazine.

LES PLATINES
Comme vous lont appris les articles
prcdents, laudio-DAC 2000 se subdivise en 3 sous-ensembles : le rcepteur,
la conversion N/A et lalimentation. Le
rcepteur est associ une mini-platine
dindication sur laquelle se trouve une
paire dafficheurs 7 segments LED
servant visualiser la frquence
dchantillonnage. Le dessin de circuit
imprim (double face) reprsent en
figure 6 se compose ainsi en fait de
4 platines distinctes que lon pourra
aisment sparer de par la prsence de
lignes de fracture fraises, opration
Elektor

1/2000

Elektor

1/2000

K13

C89

C86

IC17
7805

R58

8V

B1

15

5V

R57

K12

3k9

laquelle on procdera avant de passer


ltape de la mise en place des composants et de leur soudure. Cette sparation se fera en douceur. Si vous avez
des doutes quant aux risques que sousentend cette opration, rien ne vous
interdit de saisir une scie lame et dentition fines.
Il faudra, mais pourquoi le rptonsnous donc chaque article ?, lors de la
ralisation, respecter la liste des composants et la srigraphie de leur
implantation. Attention lorientation
des circuits intgrs et la polarit des
condensateurs lectrochimiques, toute
erreur ce niveau peut avoir des
consquences catastrophiques.
On soudera de prfrence tous les
interrupteurs DIP directement sur la
platine, exception faite de S2 si tant est
que lon envisage, ultrieurement,
dutiliser une commande par processeur. On utilisera alors un support
8 broches de bonne qualit (contacts
tulipe) dans lesquels on soudera les
conducteurs requis.
Toutes les connexions ayant trait lalimentation prennent la forme de borniers encartables, ce qui facilite le
cblage voire, le cas chant, un ventuel dpannage. Le +5 V du numrique est appliqu la platine des
CNA, la platine du rcepteur recevant
son alimentation par le biais de la liaison entre K5 et K3. La diode D4 prsente sur la platine des CNA protge,
dans une certaine mesure, llectronique contre une surtension au niveau
de lalimentation.
En ce qui concerne la connexion de la
mini-platine de laffichage, le cble en
nappe 10 conducteurs y est fix par le
biais dun connecteur encartable.
Lautre extrmit du cble plat est
dote dun connecteur 2 ranges de
5 contacts. Attention la longueur du
cble en nappe. Les 2 afficheurs sont
souds directement sur la platine.
Du ct de la platine du rcepteur, IC1,
le CS8414, est lui aussi soud directement sur la platine. Attention aux
dcharges lectrostatiques qui risqueraient dendommager ce composant.
IC4 et IC5 pourront prendre place sur
un support. Il est recommand, pour
une meilleure protection contre les
parasites, de souder loscillateur
quartz, IC3, lui aussi sur la platine (il se
trouvera ainsi plus prs du plan de
masse).
Il est recommand, lorsque lon passe
au montage des composants sur la platine des CNA, de commencer par la
soudure du DF1704 (figure 7), composant miniature sil en est. Ce circuit
intgr CMS est un 28 broches en botier SSOP, ce qui implique que les
broches se trouvent 0,65 mm seulement lune de lautre ! Cette opration
exige un soin extrme, une panne trs
fine, voire lutilisation dune loupe
pour vrifier la qualit des soudures et

C85

C87

C88

1000 100n
25V

D7

4x 22n

B80C1500

C84

C83

C82

10
63V

100n

POWER

K11
C81

C78

IC15

15V

7812

R55

B2

33

15V

12V
C76

C72

C70

1000 100n
40V

10
63V

100n

C77

C73

C71

10
63V

100n

C74

K10

C79

C80

4x 22n

B80C1500
C75

1000 100n
40V
R56

12V

33

7912
IC16

990059 - 3 - 16

Figure 5. Schma de lalimentation. Au niveau de


labsence de court-cirla platine, lalimentation numrique de +5 V et
cuit entre broches. On
lalimentation 12 V analogique sont parfaitement
pourra utiliser de la
spares lune de lautre.
tresse dessouder pour
enlever un excdent de
teurs oprationnels IC9 et IC11 respecsoudure en veillant viter toute surtivement. Les relais eux aussi sont souchauffe du circuit intgr, ce que lon
ds directement sur la platine. Nouobtient en lui laissant le temps de
bliez pas non plus de monter les ponts
refroidir de temps autre.
de cblage JP2 et JP3; on optera,
Une fois que lon est sr que IC6 est
comme il sagit de liaisons fixes, pour
soud correctement, on pourra passer
un conducteur de section plus imporau montage des 2 CNA, IC7 et IC8. Le
tante. Terminons par un dtail qui a
PCM1704 tant propos sous la forme
son importance. Il est recommand,
dun botier CMS 20 broches standard
pour une meilleure diaphonie (spara(SOIC), sa mise en place est relativetion des canaux) aux frquences lement aise. Les amplificateurs opraves, de blinder la section gauche du
tionnels IC9 IC12 pourront, de prffiltre analogique par rapport sa secrence, tre monts sur supports (de
tion droite. On disposera, pour ce faire,
bonne qualit).
une languette de tle de 86 mm de
Les condensateurs faisant partie du
long et de 13 mm (au minimum) de
filtre analogique, C27 C38, sont des
haut entre Re2 et IC12. Cette tle ira
EMZ 1%; de forme carre radiale,
ainsi du bord de la platine jusquau
leurs broches se trouvent diamtraleniveau de linterrupteur DIP S4; la sriment opposes. De par leur pas de
graphie marque lendroit de placement
7,1 mm, il ny a pas dempchement
sous la forme dune ligne pointille.
physique les remplacer par des
On enlvera un peu de vernis sur la
condensateurs MKT, mais il faudra se
platine laide dun outil acr au
rappeler quune tolrance trop imporniveau des extrmits de la plaquette
tante se traduit par une courbe de filde manire assurer un bon contact
trage et un comportement en phase
lectrique entre elle et la surface de
moins bons. Les condensateurs EMZ
cuivre qui fait office de masse prsente
sont dots dun repre (une ligne) qui
sur le dessus de la platine. Nous avons
indique laquelle de ses broches est reli
constat, lors de nos mesures, une
la couche dilectrique extrieure.
amlioration de la diaphonie de
Veillez, lors du montage, ce que soit
quelque 12 dB 20 kHz due la mise
bien cette cette broche qui soit relie
en place de cette languette de blindage.
la masse ou la sortie dun amplificateur oprationnel. Ceci augmente lin MISE EN BOTE
sensibilit du filtre analogique aux
Une fois termine la ralisation, dans
parasites. Il en va de mme en ce qui
les rgles de lart, des diffrentes placoncerne les condensateurs axiaux C25
tines et la vrification de labsence deret C26; on fera en sorte que lanneau
reurs de placement et de soudure faite,
soit du ct des sorties des amplifica-

27

OUT1

K10

C80

C75

5V

H4
H8

C1 C2 JP1
R1

R3

IC1

R2

C3

K1

IC2

R4

IC3
IC4

C4

L1

C9

C14
C15

L4

IC5

+5V

K2

H10

R19
R23
R24
R18
R21
R22
R20

LD2

LD1

R16
R12
R17
R11
R13
R14
R15

H11

H12

H15

K4

K5

OUT3

H9

S3-1 OW0
-2 OW1
-3 IW0
-4 IW1
-5 I2S
-6 SF0
-7 SF1
-8 SRO

H5

K3
H6

990059-1

L2

C8

C5
R8
R9
R10
R7

C44
C42

C40

C41 C39

S3

L3
C6

C7

R5

C13

C22
C19

IC8

IC6
S2 L

C82

OUT2

C20

(MD)
(MC)
(ML) H
H

12V

R6

20bit
INVL
INVR

D4
H16

M2
M1

C18
JP3

C60

MODE
CKO
LRIP

R58

H7

C51

0
K8

S1 1 C11
M3
M0

S4

C16

C83
C84
R57

D7

C43

D6
C21
D5

R52
R51

IC7

C17

C79

C86

C12

R36

R33
R26

C26

R25

C50

IC11

C45

C58

C77
C85 IC17

C88

C89

C37

C36

R30

C33

R27

C30

C27
C25

C46
C47

IC9

C23

R54
R53

C65
C63
C62
C64
+5V

C59

C71

IC16

IC13

C73

R56
B1

R38

R37

C34

H1

C69
IC14
C61 C24

C87

K11

K9 C67

C10

R35

C38

C35
C31

R34

C28

R31

R28

-12V 0 +12V

C68

R29

C29

JP2
C66

9V

H3

R41

R32

R39
R50

15V

K13

IC12
C32 C49

IC10

RE3

RE2

C57

C56
C55
R46

C53 C52

R42

R40

T2

R47

C48

R48
R49

K12

12V

C70
C72

C81

H14
OUT5

C74 IC15

R55

H2
OUT4

D3

R45
R44
R43
D1

C54

K7

K6

D2

H13

T1

RE1

C78

15V

C76

B2

Figure 6. Des lignes de fracture permettent la sparation des 4 platines double face
trous mtalliss que requiert cette ralisation. La srigraphie de limplantation des composants a t reproduite ici 85% de sa taille relle.

Liste des composants


Rsistances :
R1 = 75
R2 = 220
R3 = 470
R4,R50 = 47
R5 = rseau SIL de 4 10 k
R6 = 10 k
R7 R10 = 22
R11 R24 = 820
R25,R26 = 2k49/1%
R27,R30,R33,R36 = 3k57/1%
R28,R34 = 4k12/1%
R29,R35 = 3k92/1%
R31,R37 = 3k65/1%
R32,R38 = 3k32/1%
R39,R41,R45,R49 = 1 M
R40,R42 = 100
R43,R44,R47,R48 = 150 k
R46 = 10
R51,R53 = 249 / 1%
R52,R54 = 750 /1%
R55,R56 = 33
R57 = 3k9
R58 = 15
Condensateurs :
C1,C2 = 10 nF cramique
C3 = 68 nF
C4,C6,C10,C16,C62 C65,C72,C73,
C83 = 10 F/63 V radial
C5,C7 = 47 nF cramique
C8,C9,C11,C12,C15,C17,C46 C53,
C59 C61,C66,C67,C70,C71,C74,
C75,C82,C84 = 100 nF cramique
C13,C14,C23,C24,C44,C45,
C54 = 47 F/25 V radial

28

C18 C21,C39 C42 = 4F7/63 V


radial
C22,C43,C58,C68,C69 = 100 F/25 V
radial
C25,C26 = 47 pF 1 axial (EMZ )
C27,C33 = 2nF2/1% 1 (EMZ )
C28,C34 = 4nF7/1% 1 (EMZ )
C29,C35 = 330 pF/1% 1 (EMZ)
C30,C36 = 1 nF/1% 1 (EMZ)
C31,C37 = 1nF5/1% 1 (EMZ)
C32,C38 = 270 pF/1% 1 (EMZ)
C55 = 220 F/25 V radial
C56 = 1 F/63 V radial
C57 = 470 F/25 V radial
C76,C77 = 1 000 F/40 V radial
C78 C81,C86 C89 = 22 nF cr.
C85 = 1 000 F/25 V radial
1

polystyrne/polypropylne

Selfs :
L1 L4 = 47 H
Semi-conducteurs :
D1 = 1N4001
D2,D3 = 1N4148
D4 D6 = diode zener 5V6/1W3
D7 = LED haut rendement rouge
LD1,LD2 = HDN1075O (Siemens)
T1,T2 = BC517
IC1 = CS8414-CS (Crystal Semiconductor)
IC2 = TORX173 (Toshiba)
IC3 = 6,144 MHz SG531P (Seiko Epson)
IC4 = 74HCT32
IC5 = GAL22V10B-25LP
(programme, EPS996530-1)
IC6 = DF1704E (Burr-Brown)
IC7,IC8 = PCM1704U (Burr-Brown)

IC9 IC12 = OPA627AP (Burr-Brown)


IC13 = LM317 (TO220)
IC14 = LM337 (TO220)
IC15 = 7812
IC16 = 7912
IC17 = 7805
Divers :
JP1 = embase autoscable mle
2 contacts + cavalier
JP2,JP3 = pont de cblage *
K1,K6,K7 = embase Cinch encartable
(Monacor T-709G par exemple)
K2 = embase encartable mle
2 ranges de 5 contacts
K4 = embase encartable mle
2 ranges de 5 contacts (pour cble
plat)
K3,K5 = embase mle encartable
2 ranges de 8 contacts
K8,K12,K13 = bornier encartable
2 contacts au pas de 5 mm
K9 K11 = bornier encartable
3 contacts au pas de 5 mm
S1,S2,S4 = quadruple interrupteur DIP
S3 = octuple interrupteur DIP
B1,B2 = B80C1500 vertical
Re1 Re3 = relais V23042-A2003B101, 12 V/600 (Siemens)
transfo dalimentation : 2x15 V/4 VA
(tel que, par exemple, Block FLD4/15,
Hahn BVUI 3020165, Monacor FTR-415),
et 2x8 (ou 9) V/4 VA (tel que, par
exemple, Block FLD4/8, Hahn BVUI
3020161, Monacor FTR-49 cf. platine du
transformateur ailleurs dans ce numro)

* cf. texte

Elektor

1/2000

990059-1
(C) ELEKTOR

Elektor

1/2000

29

Figure 7. Le montage
du DF1704, IC6,
requiert une main trs
ferme et un matriel
adquat.

on pourra en
envisager linterconnexion
pour raliser
notre audioDAC 2000 quil
faudra bien entendu habiller. La solution optimale consiste utiliser un coffret en mtal qui aura de prfrence les
dimensions et laspect du reste des lments de la chane audio o il doit
trouver place. Nous avons utilis, pour
notre prototype, un coffret du type
UC251/SW de Monacor. Ses dimensions, 435 mm de large, 44 mm de haut
seulement et 230 mm de profondeur
sont classiques dans le monde de laudio. Il sagit, comme lillustre la
figure 8, dun coffret relativement compact qui offre cependant suffisamment
de place pour le placement des diffrentes platines. La disposition adopte
ici est lune des plus favorables que lon
puisse envisager, aussi conseillonsnous ceux qui envisageraient de raliser ce montage dadopter la disposition suivante : la platine des CNA dans
un coin, celle du rcepteur juste ct,
la platine de lalimentation juste
devant et le transformateur dalimentation dans le coin oppos. Nous avons
utilis une platine pour transformateur
spciale, dcrite, nous lavons dit plus
haut, dans un article distinct prsent
ailleurs dans ce mme numro.
Les seuls lments monts sur la face
avant sont linterrupteur secteur et laffichage visualisant la frquence
dchantillonnage. On peut galement
y positionner la LED de tension dalimentation D7, mais cela na rien dimpratif vu que les afficheurs LD1 et
LD2 servent, implicitement, de dispositif signalant la prsence de la tension
dalimentation (marche/arrt).
La figure 8 montre clairement le
cblage des diffrents lments quil
va falloir raliser. numrons, pour
viter tout oubli, les interconnexions
effectuer :

30

il part, de K2 de la platine du rcepteur, un cble plat 10 conducteurs


qui arrive sur lembase K4 situe sur le
dos de la platine daffichage.
un cble en nappe 16 conducteurs
va de K5 de la platine des CNA
lembase K3 de la platine du rcepteur. Cette liaison fait galement
office de lignes dalimentation de la
platine du rcepteur. Vrifiez bien la
position de la broche 1 lors de la
connexion !
2 conducteurs partent de K12 de la
platine dalimentation (5 V) pour
arriver K8 de la platine des CNA.
3 conducteurs vont du bornier K10
de la platine dalimentation (12 V)
lembase K9 de la platine des CNA.

EN

GUISE DE
CONCLUSION
Juger lcoute de la qualit dun

convertisseur A/N nest pas une sincure. Il ne faut pas sattendre dcouvrir des diffrences dramatiques
comme cela peut tre le cas lors dune
coute comparative denceintes. Les
amliorations par rapport aux audioDAC ayant eu prcdemment lhonneur des colonnes dElektor sont
chercher au niveau de nuances trs
subtiles. Nous avons trouv que notre
dernier-n, laudio-DAC 2000, fournissait un son sensiblement meilleur que
toutes les versions existantes dont nous
disposions encore, le plus impressionnant tant sa nettet et la finesse de
limage stto. Nous vous renvoyons,
pour un jugement plus mesur , aux
rsultats de mesure donns en encadr
ci-aprs. Permettez-nous quelques
remarques dordre gnral : la largeur
de la bande passante aux frquences
dchantillonnage de 32, 44,1 et 48 kHz,
est exactement gale la moiti de la
frquence dchantillonnage vu quaux
dites frquences la bande passante du
filtre analogique est plus grande que
celle du filtre numrique (dont la raideur de pente est trs importante). Aux
frquences de 88,2 et 96 kHz, la bande
passante dpend du filtre analogique.
La distorsion harmonique totale +
bruit (THD + N pour Total Harmonic
Distorsion + Noise) une frquence
dchantillonnage de 96 kHz a t
mesure une bande passante de
22 kHz, vu qu une frquence
dchantillonnage plus faible le filtre de
sortie analogique prsente une bande
passante de 26 kHz. Il est plus facile,
dans ces conditions, deffectuer une
comparaison entre les 3 mesures.
(990059-3)
Texte: Sjef van Rooij
Technique: Ton Giesberts

Figure 8. Un coup doeil au coeur de notre prototype. On constate que le coffret que nous avons
utilis permet une disposition facile des diffrents
composants de cette ralisation.

Elektor

1/2000

Caractristiques techniques :

+3
-0

1 entre coaxiale + 1 entre optique


travaille toutes les frquences dchantillonnage comprises entre 32 et 96 kHz
visualisation de la frquence dchantillonnage par 2 chiffres
octuple surchantillonnage (8x)
filtre numrique 24 bits
a
convertisseurs N/A 24 bits
dsaccentuation numrique
filtre de sortie analogique du 3me ordre commutable
tensions dalimentation spares pour les parties numrique et analogique

-3
-6
-9

-12
-15
-18
-21

[dBr]

-24
-27
-30
-33
-36
-39
-42
-45
-48
-51

Spcifications

-54
-57

Les mesures ont t effectues avec le paramtrage suivant


des interrupteurs DIP.
1
2
3
4

S1
off
of
off
on

S2
1
2
3
4

on
off
off
off

S3
1 on
2 on
3 on
4 off
5 on
6 off
7 off
8 off

1
2
3
4

10

20

50

100

200

500

1k

2k

5k

10k

20k

50k

[Hz]

100k

200k

990059 - 3 - A.eps

0.5

0.2

0.1

0.05

[%]
0.02

0.01

0.005

0.002

0.001

20

50

100

200

500

1k

2k

5k

[Hz]

10k

20k

990059 - 3 - B.eps

Linarit CD
Linarit CD - Rsultats calculs
+1.4
+1.2
+1
+0.8

S4
off
off
off
N.C.

ERREUR DE LINARIT [dB]

tension dentre nominale de lentre coaxiale :


0,5 Vcc/75
tension de sortie nominale :
2,1 Veff
Plage de frquences (3 dB) :
0 fs/2 (fs = 32/44,1/48kHz)
0 42 kHz (fs = 88,2/96 kHz)
amplitude 20 kHz :
0,94 dB (fs = 44,1/48 kHz)
0,66 dB (fs = 88,2/96 kHz)
bande passante des filtres analogiques :
26 kHz
(Butterworth pour fs = 32/44,1/48 kHz)
42 kHz (Bessel pour fs = 88,2/96 kHz)
Impdance de sortie :
100
Rapport signal/bruit :
> 114 dBA
THD+N (1 kHz, B = 80 kHz) :
0,0016 % (44,1 kHz/16 bits)
0,001 % (48 kHz/24 bits)
0,0008 % (96 kHz/24 bit, B= 22 kHz)
Distorsion dintermodulation (IMD) (60 Hz/7 kHz, 0 dB) :
0,0035 %
Drive en linarit : < 0,5 dB/90 dB (daprs fiche de caractristiques)
0,2 dB/110 dB (mesure)
Diaphonie (1 kHz):
> 115 dB
Plage de dynamique :
> 100 dB

+0.6
+0.4
+0.2
+0
-0.2
-0.4
-0.6
-0.8
-1
-1.2
-1.4
-110

-100

-90

-80

-70

-60

-50

-40

-30

-20

-10

+0

990059 - 3 - C.eps

Amplitude absolue CD [dBFS]

+0
-10
-20
-30
-40

Courbes de mesure
Nous vous proposons, pour que vous ayez le maximum dinformations, en plus
dun bulletin chiffr, quelques courbes de mesure de laudio-DAC 2000 commentes.
La courbe a montre la rponse en frquence des filtres analogiques de sortie.
Leur mesure se fait par lapplication dun courant au niveau des convertisseurs
courant/tension, ce qui implique galement une prise en compte du filtrage
effectu par les condensateurs C25 et C26.
La courbe b montre le THD+N pleine modulation. Cette mesure a t faite
dans une situation pratique, par le biais dun CD de test (16 bits/44,1 kHz). La
croissance de la distorsion au-del de 3 kHz est tonnamment faible, ce facteur restant infrieur 0,005 % jusqu plus de 20 kHz. Aux frquences audio leves, la vitesse des CNA joue bien entendu un rle certain.
La courbe c illustre la linarit des CNA. Pas de remarque faire. Le balayage
en amplitude a t fait laide de signaux de test de 400 Hz activation (dither);
en labsence dactivation, il ne serait pas possible deffectuer des mesures
16 bits jusqu 110 dB.
La courbe d montre la diaphonie entre les canaux partir de 40 Hz. En-de
de cette valeur on ne mesure que du bruit de fond. La diaphonie est excellente,
elle est toujours, dans les 2 cas, suprieure 88 dB et ce mme 20 kHz. Ces
valeurs ont t releves blindage entre les canaux en place (cf. texte).
La courbe e montre, pour finir, le spectre de frquences 1 kHz pleine modulation et une frquence dchantillonnage de 48 kHz/24 bits. Comme on le
voit, toutes les harmoniques se trouvent bien en-de de 100 dB.

Elektor

1/2000

-50
-60
-70

[dB]
-80
-90
-100
-110
-120
-130
-140
-150

40

50

100

200

500

1k

2k

5k

[Hz]

10k

20k

990059 - 3 - D.eps

+0
-10
-20
-30
-40
-50
-60
-70

[dBr]
-80
-90
-100
-110
-120
-130
-140
-150
20

50

100

200

500

1k

2k

[Hz]

31

5k

10k

20k

50k

990059 - 3 - E.eps

90k

MICROPROCESSEURS

pratique du bus CAN


en BASIC 537

Celui qui, pour la


premire fois, est
aux prises avec
un bus CAN
dsire avant tout
assister une
transmission
russie. Nempche, il faut au
pralable que
deux systmes
microcontrleur
soient connects
correctement au contrleur CAN, quun bus dchange de donnes ait
t cbl et que deux logiciels aient pu entrer en relation. Quand enfin
les donnes circulent sur le bus, la suite est un jeu denfant. Cet article
na dautre ambition que de faciliter autant que faire se peut les premiers
pas de lutilisateur.

Burkhard Kainka

32

Linterface pour bus CAN prsente


dans le magazine Elektor de
novembre 99, on peut sans difficult la
faire travailler en BASIC 537, une version amliore et spcialement adapte
au 82C537 du clbre BASIC MCS51
dIntel, familier la plupart de nos lecteurs. Ce langage et son interprteur
ont t conus lorigine pour le
microcontrleur 8052AH-BASIC, lequel
nest dailleurs plus fabriqu actuellement, mais ils poursuivent nanmoins
leur carrire grce une version en
ROM externe destine dautres
contrleurs de la famille 80xx. ce
sujet, vous pouvez utilement vous
reporter aux articles sur lautomate-

gigogne 80C32-BASIC parus dans Elektor de fvrier et mars 1998. Les nouvelles variantes du BASIC pour les
microcontrleurs 80C535 et 80C537,
nous y reviendrons trs prochainement, dailleurs. Une platine unique
lusage du microcontrleur 80C537 a
dj t prsente dans le magazine de
juin 97 sous lappellation de monocarte. Mais plus spcifiquement pour
les applications pratiques en relation
avec linterface pour le bus CAN, nous
vous proposons ici une mono-carte
537 Lite , encore plus compacte et
moins chre que la prcdente, telle
que vous lavez aperue en photographie dans len-tte du prsent article.
Elektor

1/2000

MATRIEL
K5
PFI
Pour assurer une liaison aise entre la
PFO
mono-carte 537 Lite quipe de
RESET
lEPROM porteuse du BASIC 537 et la
5V
RESET
platine dinterface CAN, nous avons
K3
ALE
dessin un adaptateur sur circuit
D7
1
2
imprim. Vous en trouverez le schma
D6
3
4 WR
D5
5
6 RD
la figure 1, tandis que la morphologie
D4
7
8 CS2
des pistes et lorganisation de limD3
9
10
plantation des composants se trouvent
D2
11
12
la figure 2. La photo vous le fait
D1
13
14
dcouvrir, la platine du 537 se branche
D0
15
16
directement sur ladaptateur, rsolvant
A7
A6
ainsi la question du cblage. Lautre liaiA5
son, celle avec la carte dinterface CAN,
A4
sera ralise simplement laide dun
A3
cble en nappe, comme la photo en
A2
dbut darticle le laissait prsager.
A1
Reste trouver une solution expditive
A0
A15
pour lalimenter. cet effet, un rgulaA14
teur de +5 V, flanqu dune diode de
A13
protection contre linversion de polaA12
rit lentre de la platine dadaptaA11
tion, assure en mme temps lalimenA10
A9
tation des deux autres cartes. Il ny a
A8
qu connecter K2 un module secteur
PSEN
bon march un courant de 300 mA
WR
sera plus que suffisant dont la tension
RD
de sortie continue non stabilise slve
CS0
entre 9 et 12 V. Si lon dispose dj dun
CS1
CS2
5 V stabilis dans les environs, on peut
laisser de ct IC1, D1, C1 et C2, il suffit alors de relier cette
source aux bornes corFigure 1. Le schma de la
respondantes de K1
platine dadaptation destine
En guise densur ladaptateur.
faciliter la liaison entre la
tranement,
Par raison dconomie,
mono-carte 537 Lite et linterface de bus CAN.
dmarrons avec
la platine de ladaptaun systme simteur est nettement
plifi, une transmoins
spacieuse
mission de donnes entre deux
(encore) que celle du 537 laquelle elle
ensembles quips du 80C537. Lenvise branche. Si lon divise en deux la
ronnement indispensable y sera recr
platine de ladaptateur suivant la ligne
par le logiciel. Le dbit est fix
reprsente en srigraphie, puis quon
20 kbit/s. Les messages sont transmis
fixe les deux sections bonne distance
sans bit RTR, il ny aura donc pas de
sur un chssis, une tle daluminium
demande de rponse. Les deux
par exemple, il sera bien facile dy
ensembles doivent remplir les tches
appliquer la mono-carte 537 Lite .
suivantes.
Cest dessein que le signal dinterLensemble 1 expdie sans cesse des
ruption INT2 est reli par fil entre la
messages portant lidentit 300 et dans
broche 12 de K3 et la broche 32 de K6.
lesquels on a insr huit octets. Les
Pour vous en convaincre, observez la
donnes proviennent des huit prephoto de la carte 537 avec les deux
miers canaux du convertisseur A/N. Il
sections disjointes de ladaptateur. Chay a donc en permanence des mesures
cune de ces parties est pourvue en
effectues sur huit entres analogiques
consquence de points de connexion et
et le ou les autres ensembles connects
dailleurs on voit bien sur la srigraphie
au bus peuvent recevoir et utiliser ces
de la figure 2 un pont de cblage desdonnes.
sin cet endroit.
Lensemble 2 rceptionne toutes les
LA COMMANDE EN
donnes qui circulent sur le bus et les
rpercute vers le PC, travers linterBASIC
Il nous suffit, pour commander la carte
face RS232. On dispose ainsi dun
dinterface CAN, dun programme
superviseur simple du CAN, apte
dont lunique tche consiste dialoobserver le trafic dans son ensemble.
guer avec une pile de registres du
La figure 3 nous expose cet assemblage
contrleur CAN, situs dans un
sous forme de bloc-diagramme. Les
domaine qui commence ladresse
liaisons entre ensembles ne rclament
F000H. Pour accder aux adresses dans
pas de cble spcial. Lors des premires
les domaines de RAM externe et des
expriences sur le banc de laboratoire, l
priphriques, le BASIC 537 fait appel
o les distances sont toujours inf loprateur XBY.
rieures au mtre, un bout de cble

K6

Elektor

1/2000

INT4

5V

INT3
INT6

K4

INT5

VOUT

INT2

VBATT

T2EX
CLKO
T2
T1

ALE

T0

INT2

INT1

RESET

INT0
VAREFF
P47
P46
P45
P44
P43

K1

P42
P41

+5V

P40
P67
P66
P65
P63

IC1

P64

D1

1N4001

5V

7805

P60
P50

K2

P51

+9V

P52
C1

C2

C3

C4

10
16V

100n

10
16V

100n

P53
P54
P55
P56
P57

990066 - 4 - 14

deux conducteurs suffit relier les


bornes 4 et 8 de la prise CAN aux
homologues de lautre ensemble. Sur
daussi courtes distances, on ne
remarque dailleurs aucune diffrence si
les terminaisons sont boucles ou non
sur leur impdance caractristique.

LE LOGICIEL
DMISSION ET LE TEST
Le listage 1 reprend le programme
dmission destin au contrleur 1. Le
systme 80537 interpelle le contrleur
CAN SJA 1000 ladresse 0F000H. Cest
la ligne 95 qui fixe ladresse de dpart
(BA=0F000H). Sur un autre systme, il
ny aurait donc qu changer la valeur
attribue BA. La squence dinitialisation, nous lavons dcrite dans larticle sur le matriel CAN. Aux lignes
110 et 200 sopre la vrification de la
programmation des registres. Le logiciel patiente ici jusqu ce quil soit certain que tous les bits de ces registres se
trouvent dans ltat souhait. Sil ne
dtecte pas lautre contrleur sur le bus
ou sil nobtient pas de rponse comme
prvu, le programme reste coinc ici.
En cas de russite, on peut lire les rapports suivants :
Reset OK
Init OK
Il ne reste plus alors qu raliser linitialisation jusqu la ligne 200. Une premire vrification consiste observer le
signal rectangulaire prsent au point

33

H5

K5

K4

K6

H6

Liste des composants

K3

000020-1

Condensateurs :
C1,C3 = 10 F/16 V (vertical)
C2,C4 = 100 nF (cramique)
Semi-conducteurs :
D1 = 1N4001
IC1 = 7805
Divers :
K1,K2 =bornier encartable
2 contacts au pas de 5 mm
K3 = embase HE-10 2 ranges de
8 contacts
K4 = embase autoscable
1 range de 4 contacts
K5, K6 = embase autoscable droite
1 range de 35 contacts

K1
C4
IC1

1-020000

ROTKELE )C(

000020-1

(C) ELEKTOR

C1
C2

D1

C3

H7

K2

H8

Figure 2. Le trac des pistes et


limplantation des composants
de ladaptateur.
de mesure de la platine du contrleur.
Alors quavant linitialisation on apercevait une frquence de 8 MHz, on ne
doit plus y trouver, prsent, que
2 MHz. Si cest effectivement le cas, on
peut dj se dire que le contrleur est
convenablement pilot.
En avant pour le chargement du programme complet et le dmarrage. cet
instant, llectronicien confirm aura
naturellement lenvie de prendre loscilloscope et dexaminer les donnes.
Avant que ne soit obtenue la liaison

avec un autre ensemble, on dtecte


dj un signal sur les conducteurs de
donnes. la suite dune mise zro
matrielle et sans initialisation, on peut
mesurer sur chacun des fils un niveau
de repos voisin de 2,5 V. Une fois le
programme dmission dmarr, on
reconnat les donnes sous la forme de
signaux rectangulaires dune amplitude de 1 V. Les tats les plus brefs
durent 50 s, do la conclusion que le
dbit de 20 kbit/s est respect. Pourtant,
on saperoit que le transfert rptitif

Figure 3. Diagramme fonctionnel de la liaison par bus CAN


entre deux systmes 80C357
programms en BASIC.

de donnes est interrompu par de


brves pauses de 2 ms, au lieu dassister au passage de courts paquets de
donnes. Pas de panique, cest le comportement normal du contrleur aussi
longtemps quil na pas salu de collgue sur le bus. Mais voil, il ne suffit
pas de raccorder au cble un second
contrleur, encore faut-il linitialiser. Le
signal dattente de la station mettrice
la recherche dun partenaire se poursuit mme lorsque le programme en
BASIC est interrompu.

LE LOGICIEL DE
RCEPTION
Le moment est donc venu de nous
intresser au logiciel de rception, pour
un systme compos de deux
ensembles, tel quil est consign dans
le listage 2. Nous pouvons y relever
34

Elektor

1/2000

que linitialisation ne diffre pas de


celle dun ensemble metteur. Aussitt
quelle est termine, la mention Init
OK apparat lcran et lensemble
metteur entame son fonctionnement
normal. Ds maintenant, nous pouvons observer de petits groupes de
donnes, dune longueur d peu prs
5 ms, dambuler sur le bus. Enfin, le
bus CAN opre de la manire prvue,
des paquets de donnes scoulent,
peu importe que quelquun les lise ou
pas.
Entrons dans le logiciel de rception
proprement dit, la ligne 500, o il
espre tre averti de larrive dun
message, par lintermdiaire du bit 0
du registre dtat du contrleur. Ds
quun bloc de donnes est arriv, le
logiciel peut obtenir la lecture dun

Programme dmission CAN1.BAS (Listage 1)


90
95
100
110
111
120
130
140
150
160
170
180
190
200
201
500
501
510
520
530
540
550
560
570
580
1000
1010
1020
1030
1040
1050

REM Init CAN Controller


BA=0F000H
XBY(BA+00H)=01H : REM Reset Mode
IF (XBY(BA+00H).AND.1)<>1 THEN GOTO 110
PRINT Reset OK
XBY(BA+1FH)=43H : REM CDR, 2 MHz
XBY(BA+04H)=0 : REM ACR
XBY(BA+05H)=0FFH : REM AMR, Acceptance Mask, all
XBY(BA+06H)=53H : REM BTR0, 20 Kbit/s*
XBY(BA+07H)=2FH : REM BTR1
XBY(BA+08H)=1AH : REM OCR;
XBY(BA+01H)=0EH : REM CMR, end sleep mode
XBY(BA+00H)=0 : REM CR, end reset mode
IF (XBY(BA+00H).AND.1)>0 THEN GOTO 200
PRINT init ok
REM ************* Main Loop ***************
REM Send 8 Bytes of AD-Data in message 300
FOR N=0 TO 7
XBY(BA+0CH+N)=AD(N) : REM fill TB1..TB8
NEXT N
ID=300 : REM Message Identifier
DFL=8 : REM 8 Bytes
GOSUB 1000 : REM Send Massage
FOR T=1 TO 1000 : NEXT T
GOTO 500
REM ************* Send CAN Telegram *************
IF (XBY(BA+02H).AND.4)=0 THEN GOTO 1010 : REM SR
XBY(BA+0AH)=INT(ID/8) : REM IDT1
XBY(BA+0BH)=(ID-8*INT(ID/8))*32+DFL : REM IDT2
XBY(BA+01H)=0DH : REM CMR, start transmission
RETURN

Programme de rception CAN2.BAS (Listage 2)

total de 10 octets de la part du contrleur. Les deux premiers renferment


lidentit, laquelle est, la ligne 570,
reconstruite partir de ces deux octets
et affiche. Comme on sy attendait,
cest bien lidentit 300, celle que nous
avions insre dans le logiciel dmission.
Les donnes utiles sont extraites par
une boucle et affiches lors de lexcution de la ligne 610. On y trouve en
permanence les valeurs de mesure des
huit entres analogiques du premier
ensemble. La figure 4 vous montre,
dans une fentre du terminal, les donnes reues.

ENFIN TROIS EN BUS


vrai dire, tout ce que nous avons fait
jusqu prsent, nous aurions trs bien
pu le raliser par simple interface
Elektor

1/2000

90
95
100
110
111
120
130
140
150
160
170
180
190
200
201
500
510
520
530
540
550
560
570
580
590
600
610
620
630
640

REM Init CAN Controller


BA=0F000H
XBY(BA+00 H)=01H : REM Reset Mode
IF (XBY(BA+00H).AND.1)<>1 THEN GOTO 110
PRINT Reset OK
XBY(BA+1FH)=43H : REM CDR, 2 MHz
XBY(BA+04H)=0 : REM ACR
XBY(BA+05H)=0FFH : REM AMR, Acceptance Mask, all
XBY(BA+06H)=53H : REM BTR0, 20 Kbit/s*
XBY(BA+07H)=2FH : REM BTR1
XBY(BA+08H)=1AH : REM OCR;
XBY(BA+01H)=0EH : REM CMR, end sleep mode
XBY(BA+00H)=0 : REM CR, end reset mode
IF (XBY(BA+00H).AND.1)>0 THEN GOTO 200
PRINT Init OK
REM ******* Receiver Main Loop *************
SR=XBY(BA+02H) : REM Status Register
REM Error Detection and Clear Data Overrun
if (SR .AND. 2) = 2 then XBY(BA+01H)=8: :Goto 510
REM Get Receive Status
if (SR .AND. 1) =0 then goto 510
REM Read received message
ID=XBY(BA+14H)*8+INT(XBY(BA+15H)/32) : PRINT ID
DFL=XBY(BA+15H).AND.15 : rem
Data Length
RTR=(XBY(0FE15H).AND.16)/16 : REM RTR not used
FOR N=0 To 7
PRINT N ,XBY(BA+16H+N)
NEXT N
XBY(BA+01H)=0CH : REM Release Receive Buffer
GOTO 510

35

Programme dmission/rception CAN3.BAS sans initialisation (Listage 3)


500
505
510
520
530
550
560
570
580
590
600
610
620
630
640

REM ************ Main Loop ***************


REM ************ Receiver ****************
SR=XBY(BA+02H) : REM Status Register
REM Error Detection and Clear Data Overrun
IF (SR.AND.2)=2 THEN XBY(BA+01H)=8 : GOTO 510
IF (SR.AND.1)=0 THEN GOTO 510
REM Read received message
ID=XBY(BA+14H)*8+INT(XBY(BA+15H)/32): Print ID
DFL=XBY(BA+15H).AND.15 : REM
Data Length
RTR=(XBY(0FE15H).AND.16)/16 : REM RTR not used
IF ID<>300 THEN GOTO 660
PORT=0
IF XBY(BA+16H+0)>100 THEN PORT=PORT+1
IF XBY(BA+16H+1)>100 THEN PORT=PORT+2
IF XBY(BA+16H+2)>100 THEN PORT=PORT+4

650 WRSFR 0E8H,PORT : REM Port 4 Output


660 XBY(BA+01H)=0CH : REM Release Receive Buffer
800 REM ******** Send AD-Data ***********
810 FOR N=0 TO 7
820 XBY(BA+0CH+N)=AD(N) : REM fill TB1..TB8
830 NEXT N
840 ID=500 : REM Message Identifier
850 DFL=8 : REM 8 Bytes
860 GOSUB 1000 : REM Send Message
870 FOR T=1 TO 1000 : NEXT T
880 GOTO 500
1000 REM ******* Send CAN Telegram *************
1010 IF (XBY(BA+02H).AND.4)=0 THEN GOTO 1010 : REM SR
1020 XBY(BA+0AH)=INT(ID/8) : REM IDT1
1030 XBY(BA+0BH)=(ID-8*INT(ID/8))*32+DFL : REM IDT2
1040 XBY(BA+01H)=0DH : REM CMR, Start Transmission
1050 RETURN

Figure 4. Dans la fentre


du terminal sous
BASIC 537, les donnes
rceptionnes.

RS 232. L o le bus CAN dploie son


savoir-faire, cest quand il parvient
runir plus de deux participants. Loccasion pour nous de faire intervenir un
troisime larron. Exactement ce que se
propose de faire le logiciel CAN3.BAS,
repris, sans la squence dinitialisation,
dans le listage 3.
Il rceptionne tous les messages, mais
ne traite que ceux porteurs de lidentit
300. Les trois premires valeurs de
mesure transmises y sont compares
des limites dfinies et ont pour effet de
modifier, en cas de dpassement, les
niveaux de trois broches du port P4.
Aprs avoir trait les informations, il
rpond encore par un autre message,
identifi 500, qui entrane une nouvelle
sance de mesure des canaux A/N et la
transmission des rsultats. Quand le
troisime systme est connect au bus,
le deuxime fournit galement au terminal les informations vhicules sous
lidentit 500, comme on le voit sur la
figure 5.
990066-4
Texte: Ernst Krempelsauer
Technique: Hans Bonekamp

Rfrence.
Les trois listages dont nous avons discut
au cours de cet article sont disponibles en
tlchargement sur le site Elektor
(www.elektor.presse.fr).

Figure 5. Aprs rception,


les messages identifis
300 et 500.

36

Elektor

1/2000

lectronique en ligne
faites votre radio cristal
retour aux origines
Tous ceux qui ont un
minimum de connaissances en lectronique
savent de quoi il retourne
lorsque lon parle de
radio cristal : le premier
modle de rcepteur et
le plus simple qui soit, ne
comportant rien de plus
quune diode (le cristal),
une antenne, une bobine
et un couteur. On
trouve, sur Internet, de
nombreux exemples de
rcepteurs cristal, certains dentre eux accompagns de descriptions
exhaustives et de photos
fort aguichantes.

Il est tout fait normal, dans notre


socit haute technologie hypermoderne, de trouver, dans de nombreux appareils, une lectronique complexe. Et pourtant, tout prendre,
llectronique nexiste en fait que
depuis peu. Nombre damateurs
dlectronique se souviendront sans
doute, avec un rien de nostalgie, leurs
premires expriences dlectronique,
la ralisation dun rcepteur simple
dont le seul lment actif tait une
diode.
Les nombreux sites traitant du sujet
radio cristal nous donnent penser quil ne sagit pas uniquement de
nostalgie.
Un tour sur Internet nous permet de
dcouvrir diffrentes ralisations de
radios cristal simples. Lorigine en est
souvent des tablissements scolaires,
mais nombre damateurs proposent
galement une information fort intressante. Quelques adresses :
Building a basic AM broadcast crystal
set
(www.midnightscience.com/project.html)
Elektor

1/2000

Crystal Radio
(www.ccsd.k12.nv.us/schools/cashman/
CrystalRadio.html)
Crystal radio project
(www.datasync.com/~ignatz/electro/
crystal/crystal.htm).
La complexit des projets est variable
elle aussi. Le vrai rcepteur cristal ne
comporte, en tant qulment actif, rien
de plus quune diode au germanium,
mais nous avons galement trouv des
ralisations complexes utilisant des
transistors voire des circuits intgrs.
En voici 3 exemples :
High power crystal set
(http://hibp.ecse.rpi.edu/~john/xtal.html)
a convertible crystal radio
(www.glynn.k12.ga.us/~opool/XTAL/
radio.htm)
short wave radio project
(www.datasync.com/~ignatz/electro/receive/
receive.htm)
Nous trouvons, chez Radio Winkles,
ladresse :
(www.antiqueradio.org/econmain.htm)
lexemple dune description claire de la
ralisation dun rcepteur O.C. cristal
baptis EconOceanic . Il permet la
rception des O.M. et de la plupart des
O.C. comprises entre 1,7 et 17 MHz.
Si vous voulez en savoir plus au sujet
des diffrents concepts pouvant tre

mis en oeuvre pour la ralisation de


rcepteurs cristal, nous vous renvoyons la page
Crystal set design . Cela commence
par un simple dtecteur diode et se
termine avec un projet double
rseau. Ladresse ? :
(www.webex.net/~skywaves/xtalset102/
xtalset102.htm)
On trouve galement un certain
nombre de clubs damateurs de radio
cristal sur Internet. Rendez-vous chez
Xtal Set Society
(www.midnightscience.com/) et
au Crystal Set radio club
(http://clubs.yahoo.com/clubs/
thecrystalsetradioclub),
ces 2 clubs ne sintressant qu la ralisation et lexprimentation de rcepteurs radio simples.
Al Klase, un lectronicien professionnel nous propose sur son site quelques
montages faits main fort attrayants.
Apprciez les schmas et les photos !
(www.webex.net/~skywaves/HP002/
HP-002.htm)
On trouve galement chez Scotts
Crystal Radios, ladresse :
(http://members.aol.com/scottswim/)
une belle collection de postes cristal
anciens pour ne pas dire antiques.
(005005)

53

CIRCUITS HF, RADIO

antenne-cadre
pour rcepteur mondial
En rception
ondes courtes, rien
de tel quune antenne
filaire longue, mais
tout un chacun na
pas ncessairement
la place pour en installer une. Alors, lantenne active dcrite
ici offre une solution
de rechange remarquable. Elle est
simple construire,
fournit dexcellentes
prestations et en
plus, elle est trs
bon march.

projet: G. Baars

54

Celui qui dcide dutiliser son rcepteur portatif ondes courtes pour
couter les missions internationales
ailleurs quen vacances sapercevra vite
des limites de lantenne tlescopique.
Le rendement dun fouet court est trs
restreint et dautre part, la maison, les
parasites sont lgion. Sintresse-t-on
quelque peu la rception longue
distance, il faut rechercher une voie
plus srieuse.
Mais laquelle ? Il y a tellement de livres
qui regorgent de techniques de captage et lon dnombre une telle diversit dantennes. Pour sy retrouver
dans cette fort, balisons les sentiers au
dpart des qualits que lon attend
dune telle antenne.
Tout dabord, une antenne ondes
courtes ou pour les missions internationales se doit de possder une largeur de bande suffisante, question de

couvrir avec un rendement convenable la totalit de la gamme, soit de


3 MHz 30 MHz, environ. Cest alors
indiscutablement la bonne vieille
antenne long fil de cuivre qui reprsente encore la formule la plus simple.
Il existe bien de nombreuses alternatives adquates, mais leur mise en
uvre est singulirement plus complique. Ce qui les caractrise toutes, cest
quelles sont assez volumineuses et
donc particulirement destines une
installation extrieure. Que faire si la
place manque ? Se contenter du brin
tlescopique ? Peut-tre existe-t-il
dautres procds abordables.

P E U T- O N
LENCADRER ?
lintrieur, un choix intressant, cest
lantenne-cadre. Certains, lvocation
du ce type de capteur, penseront
Elektor

1/2000

BF494

Elektor

1/2000

5V8

T2

BF451
BF494

BF451
T3

2V1

BF494
C3

1V3

100n
R4
220

R3
560

000005 - 11

lautre, nous avons pu comparer ses


prestations avec une antenne filaire
conventionnelle. Sur lensemble du
domaine, les deux antennes ont fourni
des rsultats comparables, mesures
effectues au S-mtre (indicateur de
force de rception). En comparaison,
lantenne fouet nous a sembl tirer
trop court , gnralement au tiers des
dflexions du S-mtre dans les autres
configurations.
(000005)
Rdacteur : J. van Rooij
la technique : K. Walraven

Figure 2. Et qui prtendra


quun petit montage comme
celui-ci se montrerait pigeur lors de la ralisation ?

+9V
C4

R1

H3

C1

H4

0
T1

T3

C3

T2
C2

R4

R3

ROTKELE )C(
H1

H6

K1
1-500000
R2

000005-1
H5

R2

K1

H2

Condensateurs :
C1,C2 = 2nF2 cr. au pas de 5 mm
C3 = 100 nF cr. au pas de 5 mm
C4 = 100 nF cr. au pas de 7,5 mm

000005-1

CONSTRUCTION
La partie active de lantenne cadre
peut se monter sur une platine, dont la
figure 2 dtaille la disposition des
pistes et des composants. Elle nest pas
disponible chez Publitronic Service, il
faudra donc la graver personnellement, mais vu le petit nombre de composants, elle ne devrait poser de pige
personne.
Le bobinage, lui aussi, reste la simplicit mme. lentour dun cadre dun
mtre sur 1,5 m, en gros, garni dun
clou chaque angle, on bobine deux
quatre spires de fil de cblage isol. Le

100n

(C) ELEKTOR

LA

Rsistances :
R1,R2 = 82 k
R3 = 560
R4 = 220

10mA

C4
T1

82k

9V
R1

82k

immdiatement quil sagit l dun


objet qui na plus sa place quau
muse. Or, si lantenne-cadre a rendu
0V
bien des services aux pionniers de la
C1
TSF, elle na rien perdu de ses attraits.
Au contraire, sa forme et ses qualits la
2n2
destinent tout spcialement lusage
6V3
domestique. Quelques clous suffiront
4V9
la fixer, un chambranle de fentre
C2
par exemple ; elle ne prend que fort
peu de place et demeure presque invi2n2
sible. Elle prsente en outre lavantage
0V
estimable de ntre sensible qu la
composante magntique du champ de
lmetteur, ce qui permet de frapper
dostracisme tout le fatras des perturbations lectriques. Voil
pourquoi on parlait dj aux
Figure 1. Qui oserait dire
temps hroques (1928) de
que le schma de lancadre antiparasite.
tenne cadre active nest
pas simple ?
ACTIVE
Du point de vue de la surface effective, lantenne prsente ici
diamtre du conducteur nest pas spsapparente un modle filaire de loncialement critique. Le support du fil,
gueur moyenne, quivalente 10 ou
le cadre proprement dit, ne peut vi15 m de fil. Cependant, du fait quelle
demment pas tre mtallique, sous
est enroule et place lintrieur, ses
peine dchec garanti. Notre protocaractristiques sont diffrentes et son
type mesurait 82 133 cm et donnait
rendement lgrement moindre.
des rsultats probants avec trois
Ce sont prcisment les raisons qui
spires. Lamplificateur, nous lavons
conduisent la rendre active , en
log dans une petite bote fixe la
dautres termes, la doter dun prbase du cadre. Comme le montage ne
amplificateur embarqu. Mais cest
consomme quune dizaine de milaussi loccasion rve daccorder son
liampres, une pile de 9 V suffira
impdance au standard du cble
amplement. Bien sr, il est loisible
coaxial 75 .
chacun dy substituer une alimentaPareil amplificateur na nul besoin
tion secteur stabilise, condition, on
dtre horriblement compliqu, comme
le devine, quelle soit convenablement
en tmoigne le schma de la figure 1.
dparasite.
On dcouvre ainsi que lantenne cadre
est relie aux entres dun amplificaR S U LTAT S
teur diffrentiel composants discrets,
Pour une antenne, un essai pratique en
bas sur le clbre transistor radiofrdit beaucoup plus long quune kyrielle
quence BF494 et son complmentaire
de chiffres. Aux fins de tests, nous
PNP, le BF451. Cet tage diffrentiel
lavons donc branche au rcepteur
apporte peu prs un gain de 10 et
dondes courtes publi en janvier 1999.
jouit dune bande passante dun bon
Grce la possibilit offerte de com30 MHz, si bien que tout le spectre des
muter instantanment de lune
ondes courtes sen trouve couvert.
Le transistor T3 travaille en tampon
adaptateur dimpdance. Le signal
dantenne amplifi sort via C3 sur le
connecteur K1 et peut immdiatement
Liste des composants
attaquer un cble coaxial destination
du rcepteur.

Semi-conducteurs :
T1,T3 = BF494
T2 = BF451 (BF450)
Divers :
K1 = embase tulipe ou BNC
10 15 mtres de fil de montage

55

DOMESTIQUE

horloge
Tour du Rhin Mod 2
avec une platine lesthtique indniable
Lhorloge Tour du
Rhin dcrite le millnaire dernier, en
1998 plus exactement, tait une
reproduction miniaturise pilote par
DCF de la fameuse
horloge monumentale se trouvant sur
les bords du Rhin
Dusseldorf. Lauteur,
aiguillonn par les
nombreuses ractions positives suscites par son projet, a
dcid de se rattaquer au programme
en vue de le doter de
nouvelles fonctionnalits. Nous avons,
quant nous, redessin la platine en lui
donnant une esthtique trs proche de
la tour dans sa version originale.

projet : Dieter de Mlder

56

Raliser son propre projet donne


encore plus de plaisir lorsque le rsultat obtenu est exclusif. Ceux dentre
nos lecteurs qui se sont attaqu, voici
plus de 2 ans, lhorloge Tour du
Rhin (modle 1) lauront sans aucun
doute constat eux-mmes.
Toute personne se trouvant confronte pour la premire fois une horloge de ce genre ne manquera pas de
se demander comment elle marche.

Lhorloge intgre dans la Tour du Rhin


prend la forme dune srie de points
lumineux disposs pour constituer une
ligne verticale. Nous avons, pour visualiser lheure, remplac les 39 ampoules
dorigine par autant de LED jaunes. On
retrouve, sur le croquis de la figure 1,
les contours de la Tour du Rhin. Les
9 LED infrieures reprsentent les units de secondes (0 9).
Les 5 LED places au-dessus de celles
Elektor

1/2000

des secondes visualisent les dizaines de


secondes. Le codage des minutes (units et dizaines) et des heures (units)
reprend la mme formule. Il reste,
pour finir, 2 LED servant indiquer
chacune une dizaine dheures. Un examen du croquis de la figure 1 et le principe devrait tre vident. 23:59:59
toutes les LED sont allumes, une
seconde plus tard, 00:00:00, toutes les
LED sont teintes. Un nouveau cycle
de 24 heures recommence.
On constate, par rapport la premire
version de cette horloge, les adjonctions
suivantes : outres les 4 luminaires donnant les 4 points cardinaux (N, E, S et O),
nous avons galement mont la balise
lumineuse au sommet de la tour de
sorte que notre modle rduit reproduit
le plus fidlement possible loriginal.
Nous avons, outres ces modifications
cosmtiques, dot le programme de
nouvelles fonctions. Il nest plus indispensable maintenant, bien que cela soit
plus simple et plus prcis, de faire
appel un rcepteur DCF. Cette horloge peut donner lheure exacte sans
rception de signal horaire, mais cela
ne manquera pas, moyen terme, de
se traduire par une certaine drive par
rapport lheure relle.
Il nous a fallu, pour pouvoir nous passer du rcepteur DCF, ajouter quelques
touches qui serviront la mise
lheure de lhorloge. On se souviendra
que le signal horaire donne galement
le jour de la semaine (que lon pourra,
maintenant, entrer par le biais des
touches). Lhorloge disposant de cette
information additionnelle, on pourra
galement sen servir en tant que rveil
(qui tiendra compte du jour de la
semaine, ce que ne font pas les radiorveils courants). Le montage comporte, bien entendu, un rsonateur servant produire le signal du rveil.
Il nous a fallu, pour implmenter
toutes ces fonctions, utiliser un processeur disposant dune capacit de
mmoire plus importante. Cest l le
prix payer pour les toutes ces fonctions additionnelles.

COMMENT LES
O C T E T S A L L U M E N TILS LES AMPOULES ?
La figure 2 donne le schma de notre
horloge LED. Une grande partie du
schma est identique celui de la premire version dcrite en mai 1998. Le
type de microcontrleur utilis est rest
le mme, ni la circuiterie de commande
des LED ni lalimentation nont
chang. Ce quil y a de neuf est le circuit de commande du rsonateur
pizo. On pourra utiliser ici, avec le
dimensionnement choisi, nimporte
quel rsonateur travaillant une tension continue de 5 V et ne consommant pas plus de 50 mA. Les 3 boutons-poussoirs attaquent des entres
du processeur non utilises sur la preElektor

1/2000

mire version de ce projet. Les LED


supplmentaires sont venues sintercaler dans la matrice aux emplacements
non utiliss prcdemment.
nouveau il est possible, par le biais
de JP1, dimplanter une LED additionnelle servant signaler la prsence de
la tension dalimentation. R4 et R5 permettent de sessayer dautres dispositifs daffichage. Normalement, ces
3 rsistances ne sont pas ncessaires, de
sorte que lon pourra, dans la majorit
des cas, ne pas implanter R4, R5 ni R7
(la rsistance prise en amont de JP1).
Est-il bien ncessaire de prciser que
bien que le matriel soit trs proche de
celui constituant la premire version de
cette horloge, le logiciel programm
dans le microcontrleur a beaucoup
volu lui. Il vous faudra donc, pour
disposer des nouvelles fonctions, utiliser un nouveau microcontrleur programm. Rien ninterdit non plus de
dcider de nutiliser que le nouveau
circuit imprim, sachant quil ne sera
pas ncessaire, dans ce cas-l, dimplanter les nouvelles LED .

clairage du restaurant
Heures: dizaines

Heures: units

clairage de la tour (rouge)


Minutes: dizaines

LA

RALISATION
Nous vous proposons, en figure 3, le
dessin des pistes. On constate au premier coup doeil que nous sommes
loin dun lay-out classique. Si la
forme de la platine est spciale, ses
dimensions le sont aussi. Ceci explique
que nous ayons d rduire sa taille
55% de la taille relle. Il vous faudra
donc, si vous voulez raliser votre
propre platine, procder un agrandissement 182% de ce dessin. Il vous
est possible, si vous avez accs Internet, de chercher, sur le site dElektor
(http://www.elektor.presse.fr) le dessin
des pistes lchelle 1 (sous la forme
dun document .pdf).
Laffaire est plus simple si vous achetez
la platine toute faite, vu quelle possde
dj la forme de la Tour du Rhin. Si
vous gravez votre propre platine il
vous faudra lui donner la forme
requise laide dune scie lame fine.
On pourra envisager de doter, avant la
mise en place des composants, le ct
composants de la platine dune fine
(et jolie) couche de peinture en vitant
de boucher les orifices devant recevoir
les composants.
Le pied de la tour comporte une paire
de platines sparables du reste. La platine infrieure est celle du clavier; juste
au-dessus nous avons celle du processeur charg du pilotage de lensemble.
vous de choisir si vous voulez effectuer cette double (voire simple) sparation ou garder la tour dune seule
pice, ce choix ayant bien videmment
des consquences sur la ralisation
finale du montage.
Il va falloir, vu que les 3 platines sont
isoles lectriquement lune de lautre,
procder leur interconnexion.
On commencera par la mise en place

Minutes: units

clairage de la tour (rouge)


Secondes: dizaines

Secondes: units

980035 - 11

Figure 1. On voit sur ce croquis


le principe sur lequel repose
laffichage de lheure de la Tour
du Rhin de Dsseldorf.

des ponts de cblage et des picots


requis. On prvoira, de prfrence,
pour IC1 et IC2, des supports pour C.I.
Attention, lors de limplantation des
nombreuses LED que comporte ce
montage, bien en respecter la polarit. Une erreur est vite faite.

57

5V
C5
R1

100n

47k

47
63V

R2

1
19

2
SEGA

RST

P10/IN+

IC1
6

5V

INT0/P32

P12

INT1/P33

P13

T0/P34

P14

T1/P35

P15
P16

220

R3

89C2051

RXD/P30
11

P37

TXD/P31
X0

R6
10

10k

DCF77

P17

12

12

13

11

14

13

15

14

16

10

17

18

19

ID0

SEGB

ID1

SEGC

IC2

ID2

SEGD

ID3

SEGE

ID4

SEGF

ID5

SEGG

ID6

7218A

ID7

DP
DIG1
DIG2

P11/IN

X1

WR

DIG3

MODE

DIG4

X1

DIG5

DIG6
DIG7
DIG8

C7

C4
47p

C3
47p

27

SEGA 3

SEGC 4

SEGG 5

25

SEGE 6

SEGD 7

24

SEGB 8

26

SEGF

DP

10

15

DIG3 11

16

DIG1 12

23

DIG6 13

20

DIG2 14

17

DIG7 15

22

DIG5 16

21

DIG4 17

18

DIG8 18
19

C2
28

20
R5

4...22p

100n

12MHz

K1

100n

20
1

5V

IC3

D49

1N4001

R4
R

C1

47k

C6

5V

7805

5V

R7

D41

D39

D30

D25

D16

D11

D2

D42

D40

D31

D26

D17

D12

D3

D43

D51

D32

D27

D18

D13

D4

D44

D52

D33

D28

D19

D14

D5

D45

D53

D34

D29

D20

D15

D6

D46

D54

D35

D21

D7

D47

D55

D36

D22

D8

D37

D23

D9

D38

D24

D10

JP1
C8

C9

1000
25V

10
63V

F'

G'
S1

H'
S2

S3

K2
1
2

WECK
ON/OFF
(D50)

WECK
OUT
(D56)

DCF
IMPULSE
(D1)

D'

A'

B'
D50

E'

D1

1k8

R8

C'

SEGA

SEGC

SEGG

SEGE

SEGD

SEGB

SEGF

10

DP

11 DIG3
12 DIG1

T1

R10

13 DIG6

4k7

K'

14 DIG2

D48

15 DIG7

BC557B
1k

R9

16 DIG5
Bz1

17 DIG4
18 DIG8

D56

19
20

D'
D'
990076 - 11

Une fois que lon en a termin avec


limplantation des composants il faudra, interconnecter les platines laide
de quelques fils de liaison et dun morceau de cble plat et cela que lon ait
choisi de sparer les platines ou de les
garder dune pice. On reliera le
point A au point A, B B et cela jusqu K K.
Il faut ensuite relier les embases K1 et
K2 laide dun morceau de cble en
nappe 20 conducteurs. Le rcepteur
DCF optionnel sera branch aux
picots PC1 PC3. La CPU tant une

58

Figure 2. Llectronique. Il nest pas difficile, condition davoir lu le premier


article, de reprer les similitudes entre la
version 2 de lhorloge de la Tour du Rhin
et sa version originale dil y a 2 ans.

source indiscutable
de parasites qui pourraient influer de
faon nfaste le fonctionnement de lhorloge DCF, il faudra veiller disposer le
rcepteur quelque 20 30 cm de la
CPU. On utilisera un petit morceau de
cble blind pour effectuer la liaison
entre le rcepteur et les picots en
question.
Lalimentation fait appel un adaptateur secteur pouvant fournir un courant de lordre de 250 mA une ten-

sion continue comprise entre 8 et 12 V.


Une fois les connexions des diffrentes
platines effectues, on pourra enficher
ladaptateur dans une prise secteur.
Si lon utilise un module DCF et que la
rception du signal horaire est correcte,
on devrait voir la LED D50 clignoter au
rythme des secondes. Ceci est galement vrai pour certaines des balises. En
Elektor

1/2000

D51

BZ1

S1

D50

F A B

T1

R8
R10
R9

D56

G
S2

H
D1

S3

D55

D54

D53

D47

D48

D52

D46

D40
D39

Platine reproduite
55%
de sa taille relle.

D38
D37
D36
D35
D34
D33
D32
D31

D44

D30

D45

D29
D28
D27
D26
D25

D24

Figure 3. Ce nest peut-tre pas la


platine la plus grande que nous
vous ayons jamais propose, mais
sans doute celle pouvant se targuer
dtre la plus esthtique.

D23
D22
D21
D20
D19
D18
D17
D16

D43

Elektor

1/2000

D42

D41
D15
D14
D13
D12
D11

D10
D9
D8
D7
D6
D5
D4
D3
D2

1-670099

(C) Segment

IC3

990076-1
C8

tnemgeS )C(

JP1

R7

++

D49

K2

E
C9

IC2

C6
R4
R5

R1
R2
R6

K1

990076-1

R3

C5

IC1
K
F G C H
C7
H4

C1
C4

cas de rception correcte (confirme


par le clignotement rgulier de D50),
lhorloge devrait, au bout de 2 3 mn,
afficher lheure exacte.
Il faudra, en labsence de module DCF,
procder une mise lheure
manuelle et dmarrer le mode sans
DCF . Pour ce faire, il faut appuyer sur
la touche S3 linstant de lapplication
de la tension dalimentation. On verra
alors lclairage du restaurant sallumer,
toutes les autres LED restant teintes.
Aprs avoir relch S3 on pourra sattaquer la mise lheure. S1 sert
entrer les heures, chaque action sur
cette touche se traduisant par une
incrmentation du compteur des
heures. On passe ensuite S2 pour
entrer les minutes. Attention, le passage par 60 du compteur des minutes
se traduit par une incrmentation du
compteur des heures.
S3 sert entrer le jour de la semaine.
Cette touche remplit une double fonction. Une action rapide (entre 0,1 et 1 s)
entre le jour de la semaine. Chaque

H1

X1 C3

C2

59

nouvelle action dune dure comprise


entre ces 2 valeurs incrmente le compteur de jour. Lors de lentre du jour de
la semaine, la premire LED des
secondes reprsente le lundi, la
seconde le mardi et ainsi de suite. Une
fois le dimanche pass (7 LED allumes) on repasse, logiquement, au
lundi (1 LED allume).
Une fois lhorloge mise lheure, on
pourra la dmarrer par une action sur
S3. Une action prolonge (dune dure
suprieure 1 s) dmarre lhorloge
une minute ronde. On actionnera partant S3 lors de la 59me seconde
dune minute de faon ce que lhorloge dmarre exactement la minute
ronde suivante.
Au bout de quelques remises lheure
vous verrez que ce processus est tonnamment logique. Les utilisateurs dun
module DCF nont pas se casser la
tte pour la remise lheure de leur
horloge vu que celle-ci se fait automatiquement !

ENTRE DE LHEURE
DE RVEIL
On pourra, une fois que lhorloge est
remise lheure et quelle marche,
entrer lheure de rveil. Tout au long de
cette opration, lhorloge reste
lheure. Le module DCF est cependant,
lui, mis hors-circuit pendant ce rglage.
Ceci na pas de consquence sachant
que lhorloge dispose dun quartz qui
lui fournit un signal dhorloge relativement prcis (nombre dhorloges DCF
alimentes par piles, conomisent de
lnergie en ne procdant, chaque jour,
qu quelques synchronisations seulement sur le signal DCF. Ceci suffit
garantir une prcision de lhorloge plus
quacceptable).
Il faudra, pour entrer lheure de rveil,
commencer par appuyer sur S3. Toutes
les LED steignent alors voire donnent
la dernire heure de rveil (avec le jour
de la semaine) choisie prcdemment.
Chacune des 3 touches remplit alors
une double fonction en fonction de la
dure de laction : action brve (moins
de 0,6 s) ou action longue (dure suprieure 0,6 s). Lheure de rveil se dfinit sous la forme dun nombre dheure
et dun nombre de minutes.
Voici les fonctions attribues aux
touches :
Action brve sur S1 : incrmentation
des heures
Action brve sur S2 : incrmentation
des minutes
Action brve sur S3 : incrmentation
du jour de la semaine
Action longue sur S1 : rveil on/off
Action longue sur S2 : programmation
du jour de la semaine

60

Action longue sur S3 : retour laffichage de lheure


Chaque action sur S1, se traduit par
une incrmentation de lheure de
rveil. S2 sert, de faon similaire,
entrer les minutes de lheure de rveil,
la touche S3 servant quant elle,
entrer le jour de rveil. Aprs une premire action sur S3, on verra clignoter la
LED correspondant au lundi. Il faudra,
si le rveil ne doit se dclencher, par
exemple, que le lundi, appuyer sur S2
aussi longtemps que ncessaire pour
que la LED de jour de la semaine qui
clignote reste allume fixement. Si lon
peut programmer plusieurs jours dans
la semaine on incrmentera le compteur de jours de la semaine par le biais
de S3 et on activera chacun de ces jours
par le biais de S2. Lors dun passage du
dimanche au lundi, tous les jours de la
semaine programms sont effacs; il
faudra partant procder une nouvelle
slection des jours.
La dernire position prise par le curseur reste mmorise aprs le passage
en mode horloge . Il est possible
ainsi,
ultrieurement,
dajouter
dautres jours au programme de rveil.
Pour terminer, une action prolonge
sur S1 active la fonction de rveil. La
LED intgre dans cette touche sallume. Il reste actionner S3 suffisamment longtemps pour repasser en
mode horloge . Cette touche servira
galement faire taire le rveil sil lui
prenait lenvie de se manifester (ce qui
est dailleurs une raction normale de
la part dun rveil).
La sortie de rveil est en fait une sortie
logique attaquant un transistor de
commutation auquel est connect un
rsonateur CC. On peut galement
envisager de lui faire piloter un gnrateur de signaux acoustiques, un
relais, voire tout autre dispositif lectronique. Il peut savrer ncessaire,
dans certains cas, de prendre un tampon cette sortie. Comme vous le
constatez, nous avons choisi de vous

Liste des composants


Rsistances :
R1,R2 = 47 k
R3 = 220
R4,R5,R7 = cf. texte
R6 =10 k
R8 = 1k8
R9 = 1 k
R10 = 4k7
Condensateurs :
C1 = 47F/63 V radial
C2 = ajustable 4 22 pF
C3,C4 = 47 pF
C5,C6,C7 = 100 nF
C8 = 1 000 F/25 V
C9 = 10 F/25 V radial
Semi-conducteurs :
D1,D46,D47,D48 = LED haut
rendement verte
D2 D40,D56 = LED haut
rendement jaune
D41 D45,D50 D55 = LED haut
rendement rouge
D49 = 1N4001
T1 = BC557B
IC1 = AT89C2051-12PC (programm
EPS996519-1)
IC2 = ICM7218A IJI (Intersil = Harris)
IC3 = 7805
Divers :
JP1 = embase mle autoscable
3 contacts + cavalier
K1,K2 = embase HE-10 2 ranges
de 10 contacts
morceau de cble 20 conducteurs
dot de 2 connecteurs DIP
20 broches
S1,S2,S3 = touche Digitast avec LED
X1 = quartz 12 MHz
Bz1 = rsonateur tension continue
5 ou 6 V
radiateur pour IC3 (15 K/W, ICK35
par exemple)
Optionnel : module DCF (Conrad 64
11 38-55)

permettre de donner libre-cours


votre imagination.
(990076-1)
texte : Hans Steeman
technique : Karel Walraven

Lhorloge de la Tour du Rhin


sur Internet
Les amateurs de la Tour du Rhin et de lhorloge quelle abrite peuvent trouver sur Internet nombre dinformations intressantes la concernant. On trouve,
sur le site :
http://www.duesseldorf.de/tourist/download/index.html,
un conomiseur dcran (version pour Windows) bas sur la Tour du Rhin .
Il existe galement un site consacr au thme horloges ladresse :
http://www.hsp.de/~wiegels/programm/uhren.htm.
Ce site met bien entendu disposition lun ou lautre programme dmulation
de la Tour du Rhin .
Vous pourrez, si vous voulez en savoir plus au sujet de la Rheinturm ellemme, faire un tour au site Hohe Trme sis ladresse :
http://www.hsp.de/~wiegels/tuerme/hoch.htm
o vous apprendrez tout des caractristiques de cette tour et de bien dautres.

Elektor

1/2000

LLECTRONIQUE EN PRATIQUE

les dcharges statiques


une suite de faits choquants
Sil est un phnomne que
les composants lectroniques matrisent mal,
cest bien celui des
dcharges statiques. Il
vaut partant mieux faire
attention et en tenir
compte. Nous vous
proposons ci-aprs
quelques trucs &
astuces pratiques, et
verrons pourquoi il vaut
mieux que les lphants ne reniflent pas
trop de la
trompe du ct
de circuits
intgrs.
Les charges statiques sont un phnomne encore mal connu, tout comme
cela fut le cas des premiers trains (
vapeur) il y a plus dun sicle. Nombre
de scientifiques dalors taient persuads que le corps humain se dsintgrerait de lui-mme une vitesse suprieure 100 km/h. Nous savons depuis
lors que cela nest pas le cas. Le facteur
important nest pas la vitesse mais sa
variation (lacclration). Rouler
100 km/h dans une voiture ne pose
plus, de nos jours, le moindre problme, mais si lon percute un mur
cette mme vitesse, la vitesse passe, en
quelques fractions de seconde, de 100
0 km/h et cest bien l le problme
auquel on se trouve alors confront.
Il en va de mme pour llectricit. Il
vous est sans doute dj arriv de vous
charger dlectricit statique en caressant un chat ou en marchant sur une
surface plastique (moquette ou lino).
La charge se fait progressivement et
partant est imperceptible. Ce nest que
lorsque lon touche une poigne de

62

porte ou une personne au potentiel


diffrent que lon se rend compte de
lexistence dune charge statique qui ne
manque pas, littralement, de faire des
tincelles. La variation de charge se traduit par un choc, plus surprenant que
douloureux dailleurs. Ce que nous ressentons nest pas la diffrence de
potentiel mais le minuscule courant de
dcharge qui se met alors passer. Plus
lintensit de ce courant est leve, plus
la douleur ressentie est forte. Notons
quil est possible de rduire le courant
de dcharge en empoignant une rsistance de 10 ou de 100 k et de sen servir comme paratonnerre . Avec ce
petit truc on ne ressent plus rien, bien
que la diffrence de potentiel disparaisse (encore que cette galisation se
fasse plus lentement).

COMPOSANTS

FRAGILES
Les composants lectroniques sont
encore plus sensibles aux (d)charges
statiques que ne le sont les tres
humains. Certains dentre eux sont fra-

giles au point dtre irrmdiablement


endommags lors dune galisation de
potentiels.
Nous savons depuis que le niveau de
la tension na pas dimportance que
lon applique 1 000 volts ou plus un
composant, si tant est que ce mme
niveau de tension rgne dans son
environnement immdiat et que partant il ny ait pas de diffrence de
potentiel. En cas de diffrence de tension, cela peut avoir pour consquence, au coeur du composant, un
endommagement de lisolation (en cas
de dpassement de la tension de disruption) voire la circulation dun courant ayant pour effet dannuler les diffrences de charge. Ce courant peut
lui aussi dtruire le composant.
Une fois que lon sait tout cela on peut
se doter dun code de conduite pour
une manipulation en toute scurit des
composants lectroniques. Le principe
primordial est donc, avant dentrer en
contact avec un composant, de toujours faire en sorte quil ny ait pas de
Elektor

1/2000

diffrence de potentiel entre soi et le


composant.
Un exemple : vous venez dacheter de
nouveaux modules de mmoire pour
votre PC et vous voulez les y monter.
La pochette dans laquelle se trouve les
modules peut avoir un potentiel quelconque. Lintrieur de cette pochette
est faite de matriau conducteur de
sorte quil ne peut pas y avoir de diffrence de potentiel entre les modules
eux-mmes et les modules et la
pochette : les circuits intgrs sont parfaitement labri. Mais, en ce qui vous
concerne, vous pouvez prsenter un
potentiel quelconque par rapport la
pochette. Il va donc falloir faire en sorte
que la diffrence de tension entre
vous-mme et la pochette disparaisse.
Si vous navez pas crainte dun (petit)
choc, il suffit tout simplement de
prendre la pochette (pas son contenu)
en main. Ceci fait, vous pouvez sortir
les modules de leur pochette sans leur
faire courir le moindre risque. Nayez
crainte alors de toucher les modules,
au contraire, car vous annulez alors
toute diffrence de potentiel ayant pu
se crer depuis. Rptons-le, il est prfrable de prendre alors les modules en
main plutt que par le biais dune
pince (plate) isole.
La mise des modules dans le PC
constitue ltape suivante. De son
ct, le PC peut prsenter un potentiel
quelconque par rapport au vtre. Touchez, pour cette raison, de lautre
main, pas celle dans laquelle vous
tenez les modules de mmoire, le coffret du PC un endroit conducteur,
une vis non peinte par exemple. Ce
contact peut se traduire par un petit
choc mais ce faisant, vous venez dannuler toute diffrence de tension entre
les modules et le PC. Maintenez le
contact avec le PC dune main et enfichez les modules de lautre.

LA DIFFRENCE ENTRE
UN TRE HUMAIN ET
UN LPHANT
Que peut supporter un circuit intgr ?
Prenons, comme exemple, les familles
logiques modernes. Les fabricants se
sont rendu compte que leurs clients
taient moins rigoureux quils ne le
pensaient. En dpit des avertissements
aux couleurs les plus chatoyantes,
nombre de composants taient endommags vu quon les empoignait sans la
moindre prcaution. Ceci explique
quils aient dot leurs produits de protections leur permettant de supporter
sans
dommage
la
dcharge
moyenne dun corps humain.
Sachez, titre info, quun circuit
logique de la famille HC(T) peut supporter des tensions jusqu 2 000 volts
(!). On peut admettre que le corps

humain possde une capacit de


lordre de 100 150 pF par rapport
son environnement. Cette capacit se
dcharge lors du contact avec le composant. Si un lphant, dont la capacit est notablement plus leve vu
son corps plus massif, le prenait en
trompe ce circuit intgr ne manquerait pas de trpasser illico-presto.
De mme, si votre potentiel dpasse
les 2 000 V, le circuit intgr serait
endommag. La pratique nous a
appris que lon peut fort bien travailler
dans les conditions actuelles. Les courants entrant en jeu lors de la dcharge
mritent dtre pris en compte vu que
lon parle de quelques centaines de
mA sur une dure de quelques millisecondes (s).
(990064)

MISE

LA TERRE ?
Et quen est-il de la terre ? Ne vaudrait-il pas mieux de commencer par
mettre les modules en contact avec la
terre ? La terre ne prsente-t-elle pas
un potentiel nul ? Il ny a pas le
moindre risque nest-ce pas ! Examinons la situation :
De mme que vous pouvez parfaitement vous sentir laide au sommet de
la Tour Eiffel (tant que vous ne sautez
ou nen tombez pas), un composant
na que faire de se trouver un potentiel stable nul (celui de la terre) ou de
nimporte quelle autre valeur (leve).
Si le potentiel de la terre ne prsente
ne fait pas la moindre importance, il
nen est pas moins trs pratique. Tant
que le PC se trouve au dpart au
potentiel de la terre et que cela est galement le cas des modules, on est
assur, sans avoir le mesurer, dune
absence de diffrence de potentiel et,
partant, de danger latent.
Elektor

1/2000

63

MICROPROCESSEURS

port dE/S 8 bits


commander par linterface I 2C
Le lecteur assidu
dElektor y dcouvre,
intervalle plus ou
moins rgulier, la description de lune ou
lautre interface dEntres/Sorties (E/S).
Chacun de ces montages possde cependant ses spcificits
qui le rendent plus ou
moins unique. Le prsent port dE/S 8 bits
est dot de 8 sorties
tamponnes, possde
8 entres niveau
TTL et communique
avec le PC par le biais
de la fameuse interface I2C. Il est en
outre remarquable
par sa compacit.

projet : H. Bhling

64

Le choix de linterface I2C prsente des


avantages indniables. La communication se fait par le biais dune interface compacte se rsumant 2 fils. Il
sagit dune interface fiable, relativement rapide et parfaitement documente. Il existe en outre, pour ladite
interface, de nombreux composants
dE/S au prix trs abordable. Comme
on le constate, de nombreux avantages, mais connat-elle aussi ses inconvnients cette interface ? Elle nen a,
en fait quun seul. Le systme de commande, quil sagisse dun ordinateur
ou dun microcontrleur, se doit de
possder une interface I2C.
Nous avons dcrit, par le pass, un
certain nombre dinterfaces pour PC
parfaitement adaptes cette tche, la
dernire layant t dans le numro de
mars de cette anne. Il sagit en loccurrence dune interface I2C venant se
brancher sur le port imprimante.
Ladite interface est supporte par des
DDL auxquels on pourra faire appel
en environnement Windows. Il nous
arrive galement, de temps autre, de
nous intresser des systmes
microcontrleur disposant dune interface de ce type.
Il ny a plus la moindre raison de ne

pas vous attaquer au prsent montage.


Il est possible, pour des applications
lourdes , de connecter un maximum
de 16 modules en parallle ce qui se traduit, pour lutilisateur, par la mise disposition de pas moins de 128 lignes
dE/S bidirectionnelles.

CIRCUITS INTGRS
EN TOUT ET POUR TOUT
La figure 1 vous donne le schma du
montage. Le coeur de ce projet est un
PCF8574(A), un circuit intgr de lcurie Philips que nous avons utilis dans
plusieurs montages dcrits dans Elektor (cf. lencadr).
Llectronique situe sur la gauche de
ce composant constitue linterface I2C
proprement dite. La communication
avec le monde extrieur peut se faire
de 2 faons, soit par une embase DIN
miniature soit par le biais dun double
bornier encartable vis. On trouve, au
niveau de lembase mini-DIN, les
2 signaux de commande SCL (Serial
CLock = horloge srielle) et SDA
(Serial DAta = donnes srielles) ainsi
que la tension dalimentation et le
potentiel de la masse. Le dernier
contact de cette embase est utilis par
la ligne dinterruption optionnelle
Elektor

1/2000

5V

2
1

330

100n

10

100 16V

A0

A1

P0
P1

IC1

A2

P2
P3

13

INT

D2

D3

D4

D5

D6

1k5

R10

D7

D8

SCL

14

SDA

15

INT

P4

4
5
6
7
9

PCF
10
8574 P5

SCL

P6

SDA

P7

11
12

SCL

IC3

IC2
5V
K2

R9
1k5

R8
1k5

R7
1k5

1k5

R6

K4

R1

INT

R5

16

SDA

R4

100n
D1

330

R2

C2

IC2

K1
3

C1

C3

1k5

R3

20

1k5

5V

1k5

5V

5V
K3

JP1

JP2

JP3

10

K5

+VS

18

18

17

17

16

16

15

15

14

14

13

13

12

12

11

11
VEE

9
1
19

ULN2803

&
EN

74HCT540

Figure 1. Llectronique
de protection (diodes
sables par le biais de
du port dE/S 8 bits
dites de roue libre)
cavaliers. La combipilot par le biais dune
que comporte IC3.
naison de 2 adresses
interface I2C.
Les cavaliers JP1 JP3
de base et de 8 combipermettent
de
naisons de bits se tra(re)dfinir ladresse de base du
duisent par un total de 16 adresses difPCF8574(A). Si lon utilise, pour IC1, un
frentes, ce qui explique que lon
PCF8574 (sans le suffixe (A)) ladresse
puisse connecter, un bus I2C, un
maximum de 16 modules. Ces 3 bits
de base sera $0100xxx (40HEX). Si au
contraire on a opt pour un
sont en fait suivis dun dernier bit qui
PCF8574(A),
cette
sert lui dterminer la
adresse de base sera
direction des donnes
Figure 2. Dessin des
$0111xxx (70HEX). Les
(lecture ou criture).
pistes et srigraphie de
3 x de ladresse de
Passons maintenant
la platine dveloppe
base sont dfinisla partie droite du
lintention de cette ralisation.
schma. IC1 dispose
de 8 sorties bidirectionnelles (P0 P7).
R10
C3
K5
Chacune de ces lignes dE/S est dote
D8
dune rsistance de forage au niveau

(INT = INTerrupt) du bus I2C.


Cest au cas o lon utiliserait une combinaison de plusieurs de ces interfaces
que le second mode de connexion propos prend tout son intrt. Le brochage des borniers K2 et K3 est tel quil
est possible dinterconnecter aisment
les interfaces par le biais de faibles longueurs de conducteurs. limage de
lembase min-DIN, les borniers mettent
a disposition, outre les signaux I2C,
galement la tension dalimentation et
le potentiel de la masse. On y trouve
aussi, nous y reviendrons plus tard, la
ligne de cathode commune des diodes

K3

994077-1

IC2

D7
IC3

IC1

994077 - 11

D6

Liste des composants

D5
R1
R2 C1
C2

JP3
JP2

D3
D2

K1
K2 ROTKELE )C(

Rsistances :
R1,R2 = 330
R3 R10 = 1k5

D4

JP1

R3

D1 1-770499

K4

Condensateurs :
C1 = 100 F/16 V radial
C2,C3 = 100 nF
Semi-conducteurs :
D1 D8 = LED haut rendement
IC1 = PCF8574P ou PCF8574AP
IC2 = 74HCT540
IC3 = ULN2803

994077-1

(C) ELEKTOR

Divers :
JP1 JP3 = embase autoscable
mle 1 range de 3 contacts
K1 = embase mini DIN 6 contacts
encartable
K2 K5 = bornier encartable
8 contacts au pas de 5 mm

Elektor

1/2000

65

Le PCF8574 sous
la loupe

Les ports de sortie ont une puissance suffisante pour attaquer


directement une LED. On se rfrera au croquis de la figure 3
pour voir comment procder. Un port ne peut fournir que
100 A au maximum et ne peut commuter la masse quun
courant de 25 mA au plus.
Ce composant est dot dune possibilit de gnrer une interruption. Lorsquun port est dfini comme tant une entre,
chaque changement de niveau (flanc montant ou descendant)
gnrera une interruption. Linterruption est leve ds que disparat ltat qui la gnr (le port a retrouv sa valeur dorigine) ou aprs une opration de lecture ou dcriture du port
par le biais de linterface I2C.
La figure 3 donne la structure interne du PCF8574(A). Une
remise zro matrielle (Reset) fait passer au niveau haut les
sorties de tous ports. Elles se trouvent ainsi dans ltat requis
pour tre galement utilises en entre.
Les figures 4a et 4b montrent les signaux placs sur le
bus I2C pour obtenir le transfert de donnes, dans un sens
ou dans lautre vers et depuis le microcontrleur.

Le PCF8574(A) est un circuit intgr CMOS pouvant tre utiliser pour doter des microcontrleurs de fonctions dE/S additionnelles au travers dun bus I2C. Ce composant intgre un
port quasi-bidirectionnel et une interface I2C. Le terme de
quasi-bidirectionnel dsigne un port combinant entre et sortie. Ce port peut servir dentre condition davoir t mis,
auparavant, au niveau haut. Le logiciel doit, partant appliquer
un 1 logique la dite sortie. Une fois que la sortie se trouve
au niveau haut elle peut tre utilise pour la prise en compte
de niveaux logiques prsents sur la ligne de port. On peut
ainsi savoir, si lon procde, laide dune instruction de lecture, la lecture de la sortie, quel niveau se trouve lentre.
Il faut, pour faire passer au niveau bas ( 0 ) un port dfini en
entre, drainer un courant externe de 100 A au moins vers
la masse.

PCF8574

Figure 3. Structure interne du


PCF8574(A). Ce circuit intgr
a t dvelopp spcifiquement pour la ralisation dE/S
numriques par le biais dune
interface I2C.

INTERRUPT
LOGIC

INT 13
A0

A1

A2

SCL 14
SDA 15

LP FILTER

I/O
PORTS
I 2C-BUS
CONTROL

INPUT
FILTER

SHIFT
REGISTER

8 BIT
"1"

P0

P1

P2

P3

P4

10 P5
"0"

11 P6
8x

Figure 4. Chronodiagramme
des oprations de lecture et
dcriture en direction du
PCF8574(A).

12 P7

WRITE pulse
READ pulse

VDD 16
VSS

POWER-ON
RESET

994077 - 12

SCL

slave address (PCF8574)

SDA

A2

A1

data to port

A0

start condition

data to port

DATA 1

DATA 2

R/W acknowledge
from slave

acknowledge
from slave

acknowledge
from slave

WRITE
TO PORT

DATA OUT
FROM PORT

DATA 1 VALID
t pv

DATA 2 VALID
t pv
994077 - 13a

slave address (PCF8574)

SDA

start condition

A2

A1

data from port

A0

R/W

data from port

DATA 1

DATA 4

acknowledge
from slave

acknowledge
from slave

stop
condition

READ
FROM PORT

DATA
INTO PORT

DATA 2
t ph

DATA 3

DATA 4

t ps

INT
t iv

t ir

t ir
994077 - 13b

66

Elektor

1/2000

haut (pull up) et dune LED prise en


srie. Si lune des broches dE/S est
dfinie comme tant une sortie, la LED
correspondante visualise linverse du
niveau de sortie : ainsi, si la sortie se
trouve au niveau bas la LED correspondante est allume; linverse, si elle
est haute, la LED sera teinte. Il nest
pas ncessaire, de par la prsence de la
rsistance de forage au niveau haut,
de mettre une entre non utilise un
potentiel quelconque.
Une broche dE/S peut galement servir de sortie et cest l trs prcisment la
raison de la prsence de IC2 et de IC3.
IC2 est ce que lon appelle un circuit de
commande de bus (bus-driver); il intgre
8 tampons inverseurs qui travaillent
niveau TTL. Ils servent lattaque du
circuit de commande de puissance
(power driver), IC3, un ULN2803. Ce circuit intgre 8 tages de commande
transistor dots dune sortie collecteur
ouvert. Notons que toutes les sorties
sont dotes dune diode de roue libre
dont les cathodes sont relies la ligne
commune allant la broche 10 de IC3.
Ces circuits de commande spciaux de
la famille ULN conviennent parfaitement la commande (mise en et horscircuit) de charges ohmiques et inductives faibles (50 V/50 mA au maximum).
Cela signifie quil est possible dactiver
directement des ampoules de faible

AIDES

puissance et des relais. Il ne faudra pas


oublier de connecter la masse de lalimentation servant aux charges aux
bornes de masse de K2 ou K3 (contacts
1 et 8). La borne 1 du connecteur est
identifie, tant sur le schma que sur la
srigraphie de la platine, par une
marque biseaute. La mise en oeuvre
de diode de roue libre est indispensable
si lon doit commuter des charges
inductives. Il faudra, dans ce cas-l,
relier les cathodes des diodes de roue
libre intgres dans IC3 la tension
dalimentation utilise. Il faudra alors
galement amener ladite tension dalimentation la broche 7 de K2 ou K3.

LA

RALISATION :
PLUS DE CONNECTEURS
QUE DE CIRCUITS
INTGRS
La ralisation de ce montage sans la
moindre chausse-trappe ne devrait pas
poser de problme. Nous avons dvelopp son intention une platine
simple face dont la figure 2 donne la
srigraphie de limplantation des composants et le dessin des pistes. Llectronique se trouve au centre, entoure
des connecteurs, mini-DIN et borniers,
servant la mettre en contact avec le
monde extrieur. Les borniers vis
garantissent un contact lectrique trs
fiable. De par leur positionnement cte

L A R A L I S AT I O N

Elektor ne fait pas la vente de composants. Ceux-ci sont normalement trouver chez
un revendeur de composants. Il nous a cependant sembl ncessaire, suite de nombreuses lettres, de rsumer sur cette demi-page les informations cruciales pour la lecture et la comprhension des articles publis dans Elektor. Nous utilisons, pour l'indication des valeurs de composants, les prfixes (classiques) suivants :
a (atto) = 10-18
E (exa) = 1018
P (peta) = 1015
f (femto) = 10-15
T (tera) = 1012
p (pico) = 10-12
G (giga)= 109
n (nano) = 10-9
M (mega) = 106
(micro) = 10-6
k (kilo) = 103
m (milli) = 10-3
h (hecto) = 102
c (centi) = 10-2
da (deca) = 101
d (deci) = 10-1
Dans certains schmas et dans la liste des composants nous prfrons utiliser, contrairement aux recommandations IEC et BS, le prfixe + symbole comme caractre dlimiteur en remplacement de la virgule. 2 exemples :
3k9 = 3,9 k
4F7 = 4,7 F
Sauf mention contraire, la tolrance des rsistances est 5% et leur wattage 1/3
1/2 watt. La tension de service des condensateurs est de 50 V.
Lors de la mise en place des composants on commencera en rgle gnrale par l'implantation des composants passifs de la taille la plus faible, c'est--dire les ponts de
cblage, les rsistances et les petits condensateurs; on passera ensuite aux supports
pour circuits intgrs, aux relais, aux condensateurs de forte capacit tels que les lectrolytiques et aux connecteurs et autres embases. Les semi-conducteurs vulnrable et
les circuits intgrs fragiles seront monts en dernier.
Le soudage. On utilisera un fer souder d'une puissance de 15 30 W dot d'une
pointe fine et de la soudure me de rsine (60/40). On enfiche les connexions du
composant concern dans les orifices prvus cette intention, on les replie lgrement, on les coupe la bonne longueur et on procde leur soudure; on attend de 1
2 secondes jusqu' ce que l'alliage tain/plomb devienne liquide et vienne souder relier
la connexion au mtal de l'orifice. On peut alors enlever le fer souder. Attention viter de surchauffer le composant en particulier les circuits intgrs et les semi-conducteurs. S'il faut dsouder un composant on utilisera de prfrence un fer dessouder
pompe aspirante ou un appareil spcialement prvu cet effet.
Le dpannage. Si le circuit ne fonctionne pas correctement, il faudra comparer soigneusement les composants mis en place sur la platine avec la srigraphie de l'im-

Elektor

1/2000

cte, ces 2 borniers devront tre monts dos dos . Une solution plus lgante consiste implanter 2 borniers
de hauteurs diffrentes qui pourront
alors tre orients dans la mme direction sans interfrer lun avec lautre; ils
sont malheureusement difficiles dnicher.
Une fois que lon en a termin avec les
soudures et que lon a vrifi son montage tant au niveau des soudures qu
celui des composants et de leur positionnement, on pourra le mettre
contribution. Il reste dfinir, par le
biais des cavaliers, ladresse convenable, connecter la carte une interface convenable pour disposer dune
carte dE/S numrique oprationnelle.
De par ses dimensions, la platine
pourra tre implante dans un coffret
standard qui pourra tre cliqu sur un
rail DIN.
Est-il ncessaire de prciser que linterface a besoin, pour fonctionner, dun
rien de logiciel. En rgle gnrale, linterface I2C utilise devrait tre pilote
laide dun programme pilote (driver)
permettant lmission de donnes vers
une adresse donne ainsi que la lecture
de donnes disponibles une certaine
adresse. Cette fonction est ncessaire et
suffisante pour obtenir, avec la prsente carte, le fonctionnement souhait.
(994077)

plantation des composants et vrifier leurs caractristiques l'aide de la liste des composants. Tous les composants se trouvent-ils leur place (celle prvue sur la srigraphie)? Les polarits des composants en ayant une a-t-elle bien t respecte. N'avezvous pas fait d'erreur dans le branchement des lignes d'alimentation ? Toutes les soudures faites sont-elles saines ? N'avez-vous pas oubli de pont de cblage ? Si le
schma de la ralisation en cause comporte des valeurs de mesure, les lments
mesurs sur le circuit imprim correspondent-ils ces valeurs on peut accepter une
drive de 10% des dites valeurs.

La valeur d'une rsistance est indique l'aide d'un code de couleurs qui dfini comme
suit :

couleur
noir
marron
rouge
orange
jaune
vert
bleu
violet
gris
blanc
or
argent
rien

1er chiffre
-1
2
3
4
5
6
7
8
9
----

2me chiffre
0
1
2
3
4
5
6
7
8
9
----

facteur multiplicateur
-x101
x102
x103
x104
x105
x106
---x10-1
x10-2
--

tolrance
-1%
2%
--0,5%
----5%
10%
20%

Exemples :
marron-rouge-marron-or = 120 , 5%
jaune-violet-orange-marron = 47 k, 1%
Il arrive que nous ayons publier des corrections ventuelles concernant l'une ou
l'autre ralisation, ce que nous faisons dans les plus brefs dlais dans l'un des magazines publis ultrieurement. On notera que la rubrique le coin du lecteur contient
de temps autre des commentaires ou/et des informations additionnelles concernant des montages publis dans un numro prcdent.

67

ALIMENTATIONS

platine
spciale-transfos
pour laudio-DAC 2000 (et autres ralisations)
La mini-platine universelle
dcrite dans le prsent article met
disposition la
place requise par
une paire de petits
transformateurs
dalimentation,
2 filtres secteur et une
paire de porte-fusibles.
Elle pourra constituer
une aide pratique indniable lors de la ralisation
de nombre de montages.
Les lecteurs fidles dElektor ne seront
gure tonns de nous entendre affirmer que de moins en moins de projets
dcrits dans ce magazine comportent
un transformateur mont directement
sur la platine. Pourquoi donc ? Pour
des aspects de scurit tout dabord.
Travailler avec la tension du secteur
demande la prise de certaines prcautions et un montage non soign peut se
traduire par la prsence, des endroits
o on ne lattend pas, de la tension du
secteur. Ceci explique que nous utilisions, autant que faire se peut, des
adaptateurs secteurs autonomes.
Mme si la tension requise ne peut pas
tre fournie par un bloc secteur standard, nous prfrons, si possible, ne
pas monter le transformateur sur la
platine du montage concern. Nous
avons 2 raisons pour ce choix. La premire est un cot sensiblement plus
important de la platine, vu laugmentation de la taille de cette dernire que
cette approche implique, dautant plus
que nombre dentre nos lecteurs prfrent rsoudre eux-mmes le problme
du transformateur. La seconde raison
est quil est toujours souhaitable de placer un transformateur dalimentation
le plus loin possible de la partie du

68

montage charge
du traitement du signal, ceci
en vue dviter tout problme de bruit
ou dinterfrences.

TRANSFORMATEURS
On se trouve alors confront au problme de fixation du transformateur. Il
se veut malheureusement que dans la
plupart des cas les transformateurs
proposs nexistent quen version
moul et partant sans la moindre
possibilit de les fixer.
Cest en vue de trouver une solution
lgante ce problme de fixation que
nous avons conu une platine spciale-transfos . Elle a, comme premire
utilisation, laudio-DAC 2000 (auquel ce
numro consacre un nouvel article),
mais nous sommes certains que cette
platine trouvera preneur pour nombre
dautres applications.
limage de nombre de ralisations
modernes, laudio-DAC 2000 requiert
2 tensions dalimentation, une tension
asymtrique de +5 V et une tension
symtrique de 12 V. Les tensions
fournir par le transformateur sont de
ce fait de 8 (voire 9) et de 15 V respectivement. En vue de rendre la platine la plus universelle possible nous

avons choisi, en tant que source de la


premire tension, un transformateur de
2 x 8 (voire 9) volts dont un seul des
enroulements secondaires est utilis. Le second enroulement
pourra servir autre chose.
Le schma de la figure 1
montre que nous avons profit de loccasion pour monter
sur la platine, outre les 2 transformateurs, galement une
paire de filtres secteur, L1/C2
et L2/C3, ainsi quun
condensateur de dparasitage additionnel, C1.
Vu dautre part que tous
les transformateurs ne
sont pas protgs
contre les courts-circuits, nous avons
prvu en outre une paire de
porte-fusibles (avec fusible).
La figure 2 vous propose le dessin des
pistes et la srigraphie de limplantation des composants. La platine a t
dessine pour des transformateurs
mouls plats de 4 VA fournis par de
nombreuses socits, telles que Block,
Hahn, Monacor et autres Myrra. Le
premier de ces fabricants utilise un brochage diffrent mais la platine est prvue pour les 2 variantes. La liste des
composants donne les modles convenant laudio-DAC 2000.
Signalons, lintention de ceux qui
voudraient utiliser cette platine pour
une autre application, que Block et
Monacor disposent dune version 6 VA,
Hahn propose des versions 3, 10 et
16 VA. Ces types diffrent au niveau de
leur hauteur, mais leur largeur reste
constante ainsi que le brochage des
contacts. Il existe bien entendu dautres
marques, Myrra entre autres, qui doivent avoir des transformateurs pouvant prendre place sur cette platine.
Quelques aspects pratiques en guise de
conclusion. La valeur de fusible de
32 mA propose concerne les transformateurs 4 VA non protgs contre les
courts-circuits de Hahn et Monacor. Il
faudra, en cas dutilisation de transformateurs de puissance plus importante,
adapter en consquence ladite valeur.
Attention, lors du montage de la plaElektor

1/2000

Figure 1. On trouve sur la platine,


outre les 2 transformateurs, galement une paire de filtres secteur
et 2 porte-fusibles (avec leur
fusible sentend).

F1
Tr1

K2

32mA T
B82721-K2401-N21
C2

L1

X2 100n
275V

K1

C1

K3

X2 100n
275V

Tr2

L2
C3

B82721-K2401-N21

* zie tekst
* see text

K4

X2 100n
275V

F2

* siehe Text
* voir texte

32mA T

ROTKELE )C(

32mA/T

*
000001 - 11

TR1

1-100000
H1

tine, au respect des rgles de scurit.


Les porte-fusibles, qui vhiculent la
tension du secteur se trouvant sur le
bord de la platine, il faudra disposer
cette dernire 6 mm au minimum de
toute partie mtallique dun coffret
(pour une protection en classe 2). Il
faut en outre monter la platine sur des
entretoises de 10 mm de haut au minimum pour garantir une isolation suffisante entre les pistes vhiculant la tension du secteur et la masse.
Une dernire remarque pratique
concerne la tension de transfo requise
pour lalimentation 5 V de laudioDAC 2000. Si lon utilise non pas un 2 x
8 mais un 2 x 9 V, le rgulateur 7805,
IC17, voit sa dissipation augmenter
sensiblement, aussi faudra-t-il envisager de le doter dun petit radiateur.

C2
K2

H2

~
0

(000001)

~
C1

L1

K1

~
F2

OUT2

Figure 2. Le dessin de la platine


est celui requis par des transformateurs mouls de 4 VA, mais il
est galement possible dy monter
dautres types de transformateurs.

H5

K3

L2

K4

~
~

Liste des composants


C3

000001-1

Selfs :
L1,L2 = 2 x 27 mH/0,4 A tel que, par
exemple, Siemens B82721-K2401-N21

Divers :
K1 = bornier encartable 2 contacts
au pas de 7,5 mm
K2 = bornier encartable 3 contacts
au pas de 5 mm
K3,K4 = bornier encartable
2 contacts au pas de 5 mm
F1,F2 = fusible 32 mAT, avec portefusible encartable
Tr1 = transformateur moul 2 x
15 V/4 VA, tel que, par exemple,
Block FLD4/15, Hahn BV UI 302
0165, Monacor FTR-415 *
Tr2 = transformateur moul 2 x 8 (ou
9)V/4 VA, tel que, par exemple, Block
FLD4/8 ou FLD4/9, Hahn BV UI 302
0161, Monacor FTR-49
*) Les sries de Hahn et Monacor ne sont
pas protges contre les courts-circuits,
ceux de Block le sont elles.
(C) ELEKTOR

000001-1

Elektor

1/2000

69

H3

Condensateurs :
C1 C3 = 100 nF/275 VAC X2, au
pas de 15 mm

H4

32mA/T

TR2

(pour laudio-DAC 2000)

OUT3

F1

OUT1

Texte : Sjef van Rooij


Technique : Ton Giesberts

Elektor

DF1704

DF1704

Circuits intgrs
Fonction spciale, Audio

Circuits intgrs
Fonction spciale, Audio

INFOCARTE

1/2000

DF1704
Filtre dinterpolation numrique Soundplus
Stro, 24 bits, 96 kHz octuple surchantillonnage

Commandes de mode matriel

1/2000

Dnomination

Numro de broche

RESV

13

Rserv et partant non utilise

LRIP

12

Polarit LRCIN
LRIP = H: LRCIN= H = Canal Gauche, LRCIN= L = Canal Droit
LRIP = L: LRCIN= L = Canal Gauche, LRCIN = H = Canal Droit

CKO

11

CLKO Frquence de sortie


CKO = H: Frequence CLKO = XTI/2
CKO = L: Frequence CLKO = XTI

MUTE

15

Commande de silencieux progressif : H = Mute Off, L = Mute On

I2S
IW0
IW1

3
4
5

Commande de format des donnes dentre

Fabricant
Burr-Brown, P.O.
Box 11400, Tucson, AZ 85734,
U.S.A.
Tl. (520) 746-1111, Fax (520) 889-1510.
Internet: http://www.burr-brown.com/

Description

Caractristiques techniques :
FILTRE NUMRIQUE DESTIN A ETRE ASSOCI AU
PCM1704, UN AUDIO DAC 24 BITS
FILTRE A HAUTES-PERFORMANCES
Attnuation de la bande darrt : 115 dB
Ondulation dans la bande passante : 0,000 05 dB
INTERFACE AUDIO :
Formats dentre des donnes : Standard,
justifi gauche et I2S
Longueur du mot dentre : 16, 20, ou 24 bits
Longueur du mot de sortie : 16, 18, 20, ou 24 bits
Frquence dchantillonnage : 32 96 kHz
HORLOGE-SYSTEME :
256 fS , 384 fS, 512 fS , 768 fS
OSCILLATEUR A QUARTZ EMBARQU
FONCTIONS PROGRAMMABLES :
Modes de commande par matriel et par logiciel
Rponse de filtrage raide ou volution lente
Silencieux progressif
Dsaccentuation numrique
Attnuation numrique Gauche/Droite indpendante
NE REQUIERT QUUNE TENSION DALIMENTATION
DE +5V
BOITIER MINIATURE SSOP A 28 BROCHES

I2S IW1 IW0 FORMAT D'ENTRE


L L
L 16 bits, Standard, MSB en premier, justification droite
L L
H 20 bits, Standard, MSB en premier, justification droite
L H
L 24 bits, Standard, MSB en premier, justification droite
L H
H 24 bits, MSB en premier, justification gauche
H L
L 16-bits, I2S
H L
H 24-bits, I2S
SRO

27

Progressivit du filtre : H = lente, L = raide

OW0
OW1

19
20

Commande de longueur de mot en entre

71

OW1
L
L
H
H
17
18

Slection du taux dchantillonnage pour la dsaccentuation numrique


SF1
L
L
H
H

DEM

16

FORMAT DE SORTIE
16 bits, MSB en premier
18 bits, MSB en premier
20 bits, MSB en premier
24 bits, MSB en premier

SF0
L
H
L
H

TAUX D'CHANTILLONNAGE
44,1 kHz
Rserv, non utilis
48 kHz
32 kHz

1/2000

professionnelles haut de gamme. Le DS1704 travaille


24 bits, 96 kHz et dispose de fonctions programmables par lutilisateur, dont la rponse de filtrage, la
dsaccentuation, lattnuation et les formats dentre
et de sortie.
Le DF1704 est le compagnon idal du PCM1704 de
Burr-Brown, un convertisseur numrique/analogique
24 bits. Cette combinaison permet la ralisation de
systmes et sous-ensembles audio de trs haut
niveau.

Brochage.

Exemple dapplication
Audio-DAC 2000, Elektor n 257, 258 et 259,
novembre 1999 janvier 2000.

Dsaccentuation numrique : H = On, L = Off

Description
Le DF1704 est un filtre dinterpolation numrique stro hautes-performances avec octuple surchantillonnage conu pour les applications grand public et

(Dans les tableaux, H = High, Haut, L = Low, Bas).

SF0
SF1

OW0
L
H
L
H

INFOCARTE

Structure interne du DF1704.

DF1704

Circuits intgrs
Fonction spciale, Audio

Circuits intgrs
Fonction spciale, Audio

FONCTION
Slection du format
des donnes dentre

LOGICIEL
(MODE = H)
O

Slection de la longueur
du mot dentre

Slection de la longueur
du mot de sortie

O
O
O

RAZ par dfaut


(Mode Logieciel)
Format Standard
16 bits
16 bits

Broche

Nom

E/S

DIN

IN

Description
Entre de donnes audio srielles (3)

BCKIN

IN

Entre dhorloge de bit pour donnes audio srielles (3)

I2S

IN

Slection du format des donnes dentre (2, 4)

IW0

IN

Slection de mot de donne audio dentre (2, 4)

IW1

IN

Slection de mot de donne audio dentre (2, 4)

XTI

IN

Entre oscillateur/entre dhorloge externe

XTO

OUT Sortie oscillateur

VSS

CLKO

OUT Sortie dhorloge-systme tamponne

Masse numrique

10

MODE

IN

Slection du mode de commande (H : logiciel, L : matriel) (1)

11

MD/CKO

IN

Slection de la frquence de lhorloge de sortie/de lentre des


donnes de commande (1, 5)

Slection de la polarit de
LRCIN

Gauche/Droite = H/L

Dsaccentuation numrique

OFF

OFF

Attnuation numrique

0dB, G/D Indpendants

12

MC/LRIP

IN

Taux dchantillonnage de la
fonction de dsaccentuation

Slection de la polarit de LRCK/horloge des


donnes de commande (1, 5)

44,1 kHz

13

ML/RESV

IN

Verrou de donnes de commande/rserv(1, 5)

Slection de lvolution
du filtre

Slection filtrage raide

14

RST

IN

Lorsque cette broche se trouve au niveau BAS,


le filtre est forc en mode de RAZ. (1)

Slection de la
frquence de sortie

15

MUTE

IN

Commande du silencieux (1, 4)

Identique B la sortie XTI

16

DEM

IN

Commande de la dsaccentuation (2, 4)

17

SF0

IN

Choix du taux dchantillonnage de la dsaccentuation (2, 4)

18

SF1

IN

Choix du taux dchantillonnage de la dsaccentuation (2, 4)

19

OW0

IN

Slection du format et du mot de donne audio de sortie (2, 4)

20

OW1

IN

Slection du format et du mot de donne audio de sortie (2, 4)

21

NC

Non connect

22

VDD

Alimentation numrique, +5V

23

DOR

OUT Rch, Sortie de donnes audio srielles

24

DOL

OUT Lch, Sortie de donnes audio srielles

25

WCKO

OUT Horloge de mot pour la sortie audio srielle

26

BCKO

OUT Horloge de bit pour la sortie audio srielle

27

SRO

IN

Slection de la rponse du filtre (2, 4)

28

LRCIN

IN

Entre dhorloge G/D (fS) pour les donnes audio srielles (3)

Silencieux logiciel

Lgende : O = Programmable par lutilisateur, X = Non disponible

Les broches I2S, IW0, et IW1 servent B la slection


du format des donnes audio dentre et de la longueur de mot.
Les broches OW0 et OW1 servent la slection de la
longueur du mot de donne de sortie.
La broche DEM sert B valider et inhiber la fonction de
dsaccentuation numrique. Seuls les taux dchantillonnage de 32, 44,1 et 48 kHz peuvent subir une
dsaccentuation.

Les broches SF0 et SF1 servent la slection du


taux dchantillonnage de la fonction de dsaccentuation.
La broche SRO sert la slection de la rponse du
filtre qui peut tre soit raide (sharp), soit progressive
(slow roll-off).
La broche MUTE sert la validation ou linhibition de
la fonction de silencieux progressif (soft mute).
La broche CKO sert la slection de la frquence
prsente la broche LKO, soit XTI soit XTI/2.
La broche LRIP sert la slection de la polarit utilise pour lhorloge gauche/droite dentre, LRCIN.

NOTES: (1) Broches 10 15; entre B trigger de Schmitt avec rsistance de forage au niveau haut.
(2) Broches 3 5, 16 B 20, 27; entre trigger de Schmitt avec rsistance de forage au niveau bas.
(3) Broches 1, 2, 28; entre trigger de Schmitt
(4) Broches 3 5, 15 20, 27; ces broches sont invalides lorsque la broche MODE (10)

Pour terminer, la broche RESV nest pas mise


contribution dans le DF1704 actuel, elle est rserve
pour des fonctions potentielles ultrieures.

se trouve au niveau haut (H).


(5) Broches 11 13; ces broches remplissent des fonctions diffrentes en fonction de ltat H ou L
de la broche MODE (10).

Commande de mode par matriel


Si MODE = BAS, le DF1704 peut tre configur par
le biais dun certain nombre de broches programmables par lutilisateur. On trouvera, ci-aprs un
rsum succinct des fonctions de broches. Le
tableau fournit des informations additionnelles quant
au paramtrage des commandes de mode matriel.

1/2000

Brochage

Le tableau ci-dessus rsume les fonctions programmables par lutilisateur dans chacun des modes de
fonctionnement.
MATRIEL
(MODE = L)

INFOCARTE

Elektor

Fonctions programmables
Le DF1704 possde un certain nombre de fonctions
programmables, dont la plupart sont accessibles soit
par matriel (Hard) soit par logiciel (Soft).

1/2000

72

INFOCARTE

1/2000

DF1704

INFORMATIONS

le blindage
= un impratif croissant
comment obtenir de bons rsultats
laide de techniques simples
En lectro-technique, le blindage est le moyen permettant dempcher un
rayonnement lectromagntique
gnant de parasiter dautres
appareils. Cet
article a pour but
de montrer comment il est possible, avec des
moyens simples, de raliser
un blindage efficace autour de
circuits lectroniques.

Le blindage est aujourdhui, ne seraitce seulement quen raison des normes


de CEM (Compatibilit lectroMagntique) rcemment dictes, la pierre
dachoppement de tout lectronicien,
mme amateur. En raison de lvolution rapide du numrique dont les frquences ne cessent daugmenter, le
parasitage lectromagntique devient
un problme de plus en plus grave.
Ceci explique que lon ltat cest
nous pose des exigences de plus en
plus strictes lorsquil sagit du blindage,
celui des montages lectroniques en
particulier. Comme vous le savez sans
doute, il nest plus permis de mettre
sur le march des produits lectroniques et lectriques ne possdant pas
un blindage adquat.

LA SOURCE
La circulation dun courant alternatif
dans un conducteur ou la prsence
74

990077 - 11

Figure 1. On pourra raliser un transfert


blind peu de frais laide dune languette
mtallique, de fiches et de connecteurs. On
veillera une bonne conduction lectrique
entre les diffrents composants.

dun potentiel alternatif entre


2 conducteurs se traduit par la naissance dun rayonnement lectromagntique. Il est, partant, invitable de
constater lexistence de ce type de
rayonnement sur tout circuit lectronique.
Ce sont tout particulirement les
microprocesseurs qui travaillent des
frquences dhorloge de plusieurs
MHz et qui placent des signaux rectangulaires prsentant de telles frquences sur, par exemple, un bus systme, qui contribuent trs sensiblement la production de rayonnements
lectromagntiques. Sachant que ces
frquences de commutation leves
sont indispensables lexcution des
instructions requises, et que lon ne
saurait se passer de bus pour la transmission des signaux de la source vers
le destinataire, toute lectronique
numrique est, par dfinition, une

source de parasites. Une fois que lon


sest convaincu de cette vidence, il ne
reste quune solution : empaqueter le
circuit (ou du moins la partie qui
gnre les signaux parasites) le plus
efficacement possible dans un blindage
capable darrter le rayonnement. Il est
possible, en pratique, darriver , voire
mme de garantir, un bon rsultat
laide de moyens simples.

MET TONS LE PAQUET


Le problme de la CEM est aujourdhui, dans lindustrie lectro-technique, un phnomne dont il est tenu
compte. Ds le dbut mme de la
conception on prend des mesures destines minimiser la gnration de
rayonnement. On rduit la longueur
des pistes au strict ncessaire, on
groupe les composants critiques et on
dveloppe le botier en respectant des
normes parfaitement dfinies.
Elektor

1/2000

Lorsquil sagit de frquences infrieures 10 MHz, cest la circulation de


courants qui est la source principale de
problmes. Il faut, en cas dutilisation
de conducteurs pour relier les diffrents sous-ensembles dun systme,
utiliser alors du cble blind efficace. Il
est essentiel de relier le blindage du
cble au potentiel de terre du montage.
Il faudra doter le cble non blind dun
filtre adquat. On trouve dans le commerce des filtres spciaux et des
noyaux de ferrite conus cette intention. Un cble non blind ou introduisant un filtrage insuffisant se comporte
comme une antenne et ne fait quaggraver le problme. Lune des techniques simples permettant de doter un
botier dun point de transfert blind
consiste faire appel des connecteurs
mtalliques, des connecteurs de transfert et des fiches. On positionnera ces
matriaux de connexion sur une languette (strip) conductrice (en aluminium par exemple), en veillant ce que
cette plaquette soit bien mise la terre
(cf. figure 1). On pourra, dans le cas
dun botier en plastique, placer une
telle plaquette sur lextrieur du botier.

UN

BOTIER ADQUAT
Il ny a, pour les signaux de frquence
suprieure 10 MHz, quun seul
remde : empaqueter la source de
signal. Il suffit, dans le cas de signaux
de 40 MHz ou plus, dune fine couche
mtallique conductrice pour raliser un
blindage suffisant. On pourra utiliser
un botier recouvert lintrieur dune
couche conductrice ou dune fine
paisseur de mtal. Un botier hermtique en aluminium convient parfaitement. Autre option, utiliser lun ou

lautre plastique conducteur voire


empaqueter le circuit dans une housse
conductrice spcialement prvue cet
effet.
Il est important, pour un rsultat optimal, que tous les orifices percs dans le
botier, ceux destins au passage des
cbles blinds par exemple, soient parfaitement tanchifis pour empcher
tout passage de rayonnement.
Il existe du matriau de transfert spcial prenant la forme de languettes
lastiques dotes de matriau conducteur (cf. figure 2).
On utilisera, dans le cas dun refroidissement forc, lun ou lautre ventilateur
prvu cette intention et assurant un
blindage suffisant.
Les frquences trs faibles, 50 Hz ou
moins, exigent elles la prise de mesures
svres. Cela est principalement le cas
pour des applications militaires. Il nest
pas ncessaire, normalement, den
tenir compte.

BLINDAGE

PAR TLE
On obtient le meilleur rsultat si lon
place le blindage le plus prs possible
de la source. On disposera, si cela est
possible, un enclt mtallique autour
de la platine ou, sur la platine, des
composants source de rayonnement
(tant sur le dessous que le dessus de la
platine). Il est important de penser, lors
de la conception du blindage, se laisser, pour plus tard, une possibilit de
modification ou de dpannage. On
trouve, dans le commerce des enclos
couvercle cliquant qui apportent une
solution ce problme. Un circuit trs
compact pourra y trouver place en
entier, pour des projets plus grands on
sen servira pour le blindage dune par-

tie du montage, le microcontrleur et


sa mmoire RAM/ROM par exemple.
Le blindage mtallique pourra tre fix
par le biais de picots placs aux
endroits requis sur la platine et relis
la masse. La figure 3 donne un
exemple de ralisation pratique.
Il est galement possible, si ncessaire,
disoler des parties rayonnantes du circuit laide dune fine paisseur de tle
(cloisonner). Cette prcaution est primordiale lorsque lon risque une interfrence nfaste entre plusieurs parties
du circuit. Quelques exemples pratiques : cloisonnement entre la section
HF dun rcepteur et son circuit de
pilotage par microprocesseur.
Les niveaux dattnuation obtenir
dpendent des normes nationales et
internationales. Des organismes tels
que les CISPR, FCC et VDI ont traduit
ces normes sous la forme de rglementations et de fiches de normes. Il est
quasiment impossible pour un amateur de sassurer que son montage
rpond ces spcifications. Cependant,
si lon prend coeur les recommandations donnes tout au long de cet
article, on peut se persuader que lon a
fait son possible. Les professionnels
dmarreront toujours avec une
construction optimale pour ensuite,
dans un environnement conditionn,
procder des mesures pour voir
quelles mesures de blindage peuvent
tre supprimes tout en assurant, un
cot acceptable, le blindage requis par
les normes.
(990077)

Cet article est bas sur une brochure de


Holland Shielding Systems B.V. de
Dordrecht (NL).

990077 - 12

Figure 2. On pourra raliser un passage des


cbles laide dune languette conductrice lastique. Il est important dassurer une liaison lectrique entre le blindage du cble et le botier.

Elektor

1/2000

Figure 3. On pourra isoler certaines parties du


montage par le biais de cloisons et denclts
couvercle. On veillera relier le blindage la
masse, par le biais, par exemple, de picots euxmmes relis la masse.

75

Cet article explique comment crire des programmes en


assembleur PIC 16C84 en utilisant un compilateur crit pour
le systme Windows 95/98. Le compilateur PIC permet
dcrire des programmes dans un langage de haut niveau
et fournit le code assembleur ncessaire.
Le code peut tre modifi, assembl ou simul en utilisant
le logiciel (libre) Microchip MPLAB.

par Roger Thomas

compilateur pour PIC 16C84


avec optimisation de code
Dispositifs principaux du compilateur

pour le processeur PIC 16C84


manuel complet (56 pages) sur disque
trois exemples dcrits sur disque
syntaxe semblable Visual Basic et Pascal
compatible Windows 95/98, aucunes DLL requises
gnre un code assembleur pour le logiciel Microchip MPLAB (logiciel libre)
variables :
boolenne, octet, texte
oprations arithmtiques :
+, , /, *, mod
formats numriques :
dcimal, hexadcimal, binaire, caractre
fonctions boolennes :
=, >, <, >=, <=, <>
oprateurs boolens :
AND, OR, XOR
commandes du compilateur :
if...thenelse, select/case, whileloop, table,
read, write/read, EEPROM, procedure, directive, ASM directive, input, output,
alias, pin-name, RTTC, prescaler, wait, picfuse,
gestionnaire dquations
optimisateur de code
messages derreur
gestion des interruptions

Il est trs avantageux dutiliser un compilateur. Lcriture dun programme PIC


(anagramme dont la signification est
sujette discussion) laide dun vocabulaire proche de langlais est plus
facile que sa programmation directe
en langage assembleur. Le temps mis
pour crire et tester un logiciel est
gnralement beaucoup plus court
avec un langage compil, et en guise
de preuve le compilateur PIC Windows
lui-mme a t crit en utilisant un
compilateur.
Le compilateur PIC nest bas sur
aucun langage de haut niveau mais
comporte des lments de Pascal et
de Visual Basic. De plus, le compila-

X-2 - 1/2000

Elektor EXTRA

teur est souple et sadapte diffrentes syntaxes de programmation. Il


est crit pour lenvironnement
Windows, ce qui facilite lutilisation du
logiciel. Comme tous les codes PIC utiliss sont dfinis lintrieur du compilateur, aucune initialisation ou fichier
en-tte ne sont ncessaires.
Le compilateur produit un code assembleur directement depuis le programme source de haut niveau, permettant
au programmeur de ne pas se soucier
des ddales de la programmation
assembleur. Il peut aussi avoir une fonction ducative pour les apprentis programmeurs assembleur qui verront
comment des ordres de haut niveau,

faciles comprendre, sont traduits en


code assembleur PIC quivalent.
Les fichiers rsultants en code assembleur contiennent la fois le programme original de haut niveau (comment) et le code assembleur PIC prt
pour lassemblage (ou la simulation)
par le logiciel Microchip MPLAB version 4.12 ou suprieure. Disposer
simultanment des codes source et
assembleur facilite la mise au point du
programme. Programmer en langage
compil nempche pas de modifier
ou de complter le code assembleur
lorsquon utilise le logiciel MPLAB.
Celui-ci est disponible gratuitement sur
le site de Microchip : www.microchip.com.
Le cot (en terme de programmation)
de lutilisation dun code compil peut
tre la rduction de la vitesse dexcution, parce que le programme en
code machine nest peut-tre pas
aussi efficace quun programme crit
directement en langage assembleur.
Ce nest pas le cas avec ce compilateur PIC, qui produit dans la plupart
des circonstances le code le plus rapide possible. Il y a trs peu de surcharge de compilation dans le code
assembleur en termes de variables
supplmentaires requises ou de multiplication dinstructions assembleur. Le
seul code supplmentaire ajout
concerne les commandes boolennes
et arithmtiques. Larithmtique fonctionne soit en 8 bits (non sign) ou en
16 bits (non sign). Le compilateur a
besoin de plusieurs octets pour conserver les rsultats arithmtiques, qui sont
baptiss _STACxx dans le fichier assembleur rsultant.
Le compilateur traduit le programme

PC-PLUS

source en deux passes. La premire


cre une liste de dclarations de procdures parce quil peut rencontrer un
appel une procdure avant davoir
dtect la dclaration de celle-ci. Lors
de la seconde passe, les appels procdures sont affects aux dclarations
de procdures correspondantes.
La syntaxe du compilateur nest pas
sensible la typographie (majuscules/minuscules), mais le logiciel
MPLAB peut ltre, cest loption slectionne dans le fichier hexadcimal
projet. Pour cette raison, tous les noms
de procdures et de variables sont
rdigs en majuscules dans le fichier
de sortie assembleur.
Pour pouvoir utiliser le compilateur
avec nimporte quel microcontrleur
PIC, le compilateur nimpose aucune
restriction de code. La tche est laisse lassembleur MPLAB qui vrifie la
taille du programme et peut plus aisment produire une cartographie de
lutilisation de la mmoire et des
fichiers de rfrences croises.

Utilisation du compilateur
Utiliser un diteur de textes (comme
Notepad, WordPad ou lditeur de
MPLAB) pour crer le programme source de haut niveau ; sauvegarder le
fichier texte avec une extension .psf
(PIC Source File). Sassurer que le
fichier sauvegard est en mode texte
seulement et ne contient aucun texte
enchss renfermant de linformation.
linverse dun programme assembleur qui ncessite un colonnage trs
strict (tiquettes, mnmoniques, oprateurs, commentaires), un programme de haut niveau utilise librement
lespace pour indenter le programme.
Ces espacements nont aucune signification pour lexcution du programme et sont ignors par le compilateur.
Mais leur utilisation facilite la lecture et
la mise au point du programme.

Figure 1. La fentre du compilateur. Notez que les fonction des broches du PIC sont
visibles dans leur ensemble.

plus rcemment utilis. Lorsque le


compilateur est utilis pour la premire fois, le rpertoire choisi est celui
hbergeant le compilateur.
save (sauvegarde) aprs une compilation russie, sauvegardez le fichier
source assembleur (mme nom de
fichier mais avec une extension .asm)
en appuyant sur ce bouton. Le fichier
en question est sauvegard dans le

mme rpertoire que le fichier source. Le fichier de sortie assembleur


contient le code PIC supplmentaire
requis puisque le compilateur va
automatiquement y ajouter les routines de support.
error (erreur) ce bouton enregistre le
fichier derreurs dans le mme rpertoire que le fichier source. Le fichier a
le mme nom de fichier mais avec

Figure 2. Un autre exemple du compilateur PIC en action. Ici, un programme pilote de


feux de signalisation, est en cours dcriture. Notez les noms de procdure dans la
fentre en haut droite.

Utilisation de linterface
Le compilateur PIC Windows est trs
facile utiliser et, mis part le chargement et la sauvegarde des fichiers,
il socupe de tout !
Comme le montre la figure 1, la barre
des tches comporte un certain
nombre dicnes.
load (chargement) appuyez sur le
bouton load et une bote de dialogue rpertoire affiche tous les fichier
source (extensions .psf) du rpertoire,
slectionnez et chargez le fichier source adquat. Par dfaut, le compilateur va souvrir dans le rpertoire le

PC-PLUS

Elektor EXTRA

X-3 - 1/2000

ris. Le texte affich se dplace et rvle la procdure correspondante (figure 2).


La procdure principale du programme PIC est appele main (main =
principale). Lexcution du programme
dbute avec cette procdure, qui est
appele chaque dmarrage du
contrleur PIC. Le programme dapplication PIC boucle gnralement en
permanence une fois linitialisation ralise, en attente dvnements. Il est
extrmement rare quon utilitile un programme PIC pour une seule action.

5V

14

D1

R1
680

MCLR

RB0
RB1

18
17
1
2
3

RA0

RB2

IC1

RA1
RA2

RB3

PIC16C84

RB4

RA3

RB5

RA4

RB6
RB7

OSC1

6
7
8

vert
D2

R2
680

9
10
11
12

jaune
D3

R3
680

rouge

13

OSC2

16 X1

C1

15

C2
4MHz

33p

Optimisation
du code compil

33p
000012 - 13

Figure 3. Le matriel de dmonstration


des feux tricolores.

une extension .ser (source error =


erreur source). Il contient tous les messages derreur (avec le numro de
ligne dans le programme source) mais
pas de code source ou assembleur.
font (police) pour changer la police
ou la taille de la police du texte affich sur lcran, appuyez sur le bouton
font . Une bote de dialogue police
saffiche, dans laquelle vous pouvez
choisir la police et sa taille.
pins (broches) affiche les noms des
broches du PIC et les broches des
ports dentre ou de sortie avec leur
code couleur.
display (affichage) sur option, le
compilateur sarrte et affiche la bote
de dialogue messages lorsquil y a des
messages derreur de compilation
insrs dans le fichier de sortie assembleur (par dfaut, affichage du message derreur). Lors du premier passage, tout message derreur est affich
quelle que soit loption choisie.
source (source) permet de choisir si
les lignes source doivent tre insres
dans le fichier assembleur comme
commentaires (par dfaut, insertion
du code source). Les lignes source ne
contenant quun commentaire sont
toujours insres.
abort (arrt) arrte la compilation.
ct des huit boutons se trouve une
liste de tous les noms de procdure
utiliss dans le programme. Pour trouver et afficher une procdure particulire, slectionnez-la dans la liste (le
nom sera brivement surlign) en cliquant sur le bouton gauche de la sou-

X-4 - 1/2000

Elektor EXTRA

Aprs la compilation sans erreur dun


segment du programme source, loptimiseur contrle le programme assembleur pour chercher le code redondant. Ce code redondant prend
gnralement la forme dinitialisations
inutiles ou de validations des diverses
balises dtat PIC.
Par exemple, la procdure de sortie
dune partie de la gestion de feux de
trafic donnera ces rsultats :
(Extraits du code source original)
green = 0
; turn green off
yellow = 0
; turn yellow off
red = 1 ; turn on red
; code not optimised
; green = 0
; turn green off
MOVLW H00
BTFSS _STATUS,_Z
BSF PORTB,GREEN
BTFSC _STATUS,_Z
BCF PORTB,GREEN
; yellow = 0
; turn yellow off
MOVLW H00
BTFSS _STATUS,_Z
BSF PORTB,YELLOW
BTFSC _STATUS,_Z
BCF PORTB,YELLOW
; red = 1
; turn on red
MOVLW H01
BTFSS _STATUS,_Z
BSF
PORTB,RED
BTFSC _STATUS,_Z
BCF
PORTB,RED

Dans le code non optimis, le compilateur a calcul lquation aprs le


signe gal et affect le bit selon le
rsultat : zro ou un. Loptimiseur vrifie
le code et trouve quil garde une
valeur fixe puisque les rsultats ne
changent jamais ; il limine donc les
calculs intermdiaires :
; code optimised
; green = 0
; turn green off
BCF PORTB,GREEN

; yellow = 0
; turn yellow off
BCF PORTB,YELLOW
; red = 1
; turn on red
BSF PORTB,RED

Interruptions PIC
Lorsque se produit une interruption, le
compteur du programme est charg
avec ladresse de lemplacement 4,
qui contient le code sauvegardant
ltat du programme et appelle la
procdure de gestion de linterruption.
Une fois linterruption traite ( interrupt ), le programme PIC excute une
instruction retfie (return from interrupt = retour aprs interruption). Le
programme source na pas besoin de
rtablir lautorisation dinterruption,
lordre est dj donn automatiquement par linstruction retfie . La routine de gestion de linterruption doit
tre appele interrupt .
Lutilisation des interruptions rend un
programme PIC plus efficace, lautre
solution ayant t dinterroger en permanence les balises pour contrler si
un vnement particulier ne sest pas
produit.
Il existe quatre sources dinterruptions
que le gestionnaire dinterruptions du
PIC 16C84 doit traiter :
1. interruption externe sur la broche
RB0 ;
2. interruption lors de changement sur
les broches RB4-RB7 ;
3. dbordement du minuteur RTCC ;
4. affect la fin de lcriture dans
lEEPROM.
Linterruption fin de lcriture dans
lEEPROM est prise en compte par la
fonction crire dans lEEPROM
(writeEEPROM).
Pour valider les interruptions, utilisez la
commande irq_enable = true . La
source individuelle dinterruptions doit
tre slectionne avant de lancer
cette commande.
Pour invalider toutes les interruptions,
utilisez la commande irq_enable =
false . Cette commande agit globalement par lintermdiaire de la balise
GIE (Global Interrupt Enable = valider
globalement les interruptions), indpendamment de linterruption individuelle utilise.
La procdure de gestion des interruptions a besoin de quelques octets de
stockage intermdiaire, et la routine
de gestion de linterruption doit avoir
sa zone de stockage variable propre
car elle ne peut partager la mmoire
avec le reste du programme.
Comme linterruption peut arriver nimporte quand, il se peut quavec larithmtique 16 bits, elle se produise en
plein milieu dune procdure arithm-

PC-PLUS

tique. Lattribution dune variable de


16 bits une autre variable de 16 bits
ncessite de multiples instructions pour
dplacer la valeur de loctet infrieur,
puis de loctet suprieur. Si une interruption se produit au cours du processus, la variable peut conserver lancienne valeur de loctet infrieur et
accepter la nouvelle valeur de loctet
suprieur. Cest la raison pour laquelle
le compilateur nautorise pas le traitement des oprations arithmtiques
16 bits par la procdure de gestion
des interruptions.
Si une seule source dinterruptions a
t valide, il nest pas ncessaire de
contrler les balises de validation des
interruptions individuelles. Dune
manire gnrale, il est prfrable de
dfinir une procdure de gestion des
interruption la plus petite et la plus
rapide excuter possible, en utilisant
des quations simples. Notez quaucune autre procdure ne peut tre
appele depuis la procdure de gestion des interruptions.
Il est aussi prfrable de faire une
copie des variables utilises par le
gestionnaire dinterruptions et de travailler avec cette copie. Pointer sur
une variable que le gestionnaire dinterruptions utilise directement peut
aboutir des rsultats imprvisibles.
Par exemple, si la variable x est
modifie par le gestionnaire dinterruptions, le programme ci-dessous
peut ne pas donner les rsultats attendus. La valeur de x peut avoir t
modifie entre la premire et la
deuxime commande de comparaison, aucune instruction ne sera donc
excute.
var x : byte
procedure(main)
if x >=6 and x <= 10 then
;x = 4
begin
statement
end
;linterruption se produit maintenant

if x >= 0 and x <=5 then


;x changes to 6
begin
statement
end

Si une variable doit tre incrmente


ou dcrmente ou mise zro par le
programme de gestion de linterruption, utilisez les instructions inc(x) ou
dec(x) ou clr(x) qui se compilent en
une seule instruction assembleur.

Exemples de programmes

sation dun compilateur et pour rendre


plus claire la syntaxe du langage, le
fichier de documentation contient
quelques exemples de programmes
qui illustrent les diverses commandes
du compilateur. Ces programmes tant

prsents pour leur valeur didactique,


ils ne prsentent pas forcment la
meilleure programmation. Notez que
certaines des lignes de commentaires
ont t supprimes et le fichier assembleur nettoy pour la publication.

Listage 1. Feux de signalisation (1) Programme source


;
;

Traffic Lights 1
Written by Roger Thomas.

#compiler clock = 4000


; 4MHz clock
#ASM list p=16C84
#FUSE CP_OFF + PWRTE_ON + WDT_OFF + XT_OSC
var x : word
var y : byte

; create 16 bit variable


; create 8 bit variable

procedure(main)
alias(RB3,red)
alias(RB2,yellow)
alias(RB1,green)
output(red)
output(yellow)
output(green)
clr(red)
clr(yellow)
clr(green)
clr(x)
clr(y)

; rename port RB3 to red


; rename port RB2 to yellow
; rename port RB1 to green
; make red port pin output
; make yellow port pin output
; make green port pin output
; turn off red = 0
; turn off yellow = 0
; turn off green = 0
; initialise = 0
; initialise = 0

while true
inc(x)
;
if x = 1500 then
begin
inc(y)
;
clr(x)
;
end
else
begin
if (y >= 0) AND
begin
red = 1
;
yellow = 0 ;
green = 0
;
end

x = x + 1

y = y + 1
x = 0

(y<= 49) then


turn on red
turn off yellow
turn off green

if (y >= 50) AND (y<= 75) then


begin
red = 1
; turn on red
yellow = 1 ; turn on yellow
green = 0
; turn off green
end
if (y >= 76) AND (y<= 110) then
begin
red = 0
; turn off red
yellow = 0 ; turn off yellow
green = 1
; turn on green
end
if (y >= 111)
begin
red = 0
yellow = 1
green = 0
end

AND (y<= 130) then


; turn off red
; turn on yellow
; turn off green

if y = 131 then
begin
clr(x)
clr(y)
end
end
loop

Pour dmontrer les avantages de lutili-

PC-PLUS

Elektor EXTRA

X-5 - 1/2000

;
;
;
;
;
;
;
;
;
;

RA2
RA3
RA4
mclr
Vss
RB0
GREEN
YELLOW
RED

1
2
3
4
5
6
7
8
9

|
|
|
|
|
|
|
|
|

16C84
i
i
i
i
i
i
i
i
p
p
i
i
o
i
o
i
o
i

|
|
|
|
|
|
|
|
|

18
17
16
15
14
13
12
11
10

RA1
RA0
osc2
osc1
Vdd
RB7
RB6
RB5
RB4

_PCL
EQU H02
_STATUS EQU H03
_C EQU H00
_Z EQU H02
_RP0
EQU H05
PORTB EQU H06
_PCLATH EQU H0A
_INTCON EQU H0B
IRQ_ENABLE
EQU H07
_STACK0 EQU H0C
_STACK1 EQU H0D
_STACK2 EQU H0E
_STACK3 EQU H0F
_STACK4 EQU H10
_STACK5 EQU H11
_STACK6 EQU H12
_STACK7 EQU H13
_STACK8 EQU H14
_STACK9 EQU H15
X EQU H16
XH EQU H17
Y EQU H18
RED
EQU H03
YELLOW EQU H02
GREEN EQU H01
ORG 0
goto MAIN
;
;

Traffic Lights 1
Written by Roger Thomas.
list p=16C84
__config H3FF9

; var x : word
; var y : byte

; create 16 bit variable


; create 8 bit variable

MAIN
; alias(RB3,red)
; alias(RB2,yellow)
; alias(RB1,green)
; output(red)
BSF _STATUS,_RP0
BCF PORTB,RED
; output(yellow)
put
BCF PORTB,YELLOW
; output(green)
BCF PORTB,GREEN
; clr(red)
BCF _STATUS,_RP0
BCF PORTB,RED
; clr(yellow)
BCF PORTB,YELLOW
; clr(green)
BCF PORTB,GREEN
; clr(x)
CLRF X
CLRF XH
; clr(y)
CLRF Y
; while true
_WHILE0
;
inc(x)
INCF X,F

X-6 - 1/2000

;
;
;
;

rename port RB3


rename port RB2
rename port RB1
make red port

to red
to yellow
to green
pin output

; make yellow port pin out-

; make green port pin output


; turn off red = 0

; turn off yellow = 0


; turn off green = 0

; initialise = 0

; initialise = 0

; x = x + 1

Elektor EXTRA

BTFSC
_STATUS,_Z
INCF XH,F
;
if x = 1500 then
_IF1
MOVF X,W
MOVWF
_STACK0
MOVF XH,W
MOVWF
_STACK1
MOVLW
HFF
MOVWF
_STACK2
MOVLW
HDC
SUBWF
_STACK0,F
BTFSS
_STATUS,_Z
CLRF _STACK2
MOVLW
H05
SUBWF
_STACK1,F
BTFSS
_STATUS,_Z
CLRF _STACK2
MOVF _STACK2,W
MOVWF
_STACK0
MOVWF
_STACK1
BTFSC
_STATUS,_Z
GOTO _ELSE1
;
begin
;
inc(y)
; y = y + 1
INCF Y,F
;
clr(x)
; x = 0
CLRF X
CLRF XH
;
end
;
else
GOTO _END1
_ELSE1
;
begin
;
if (y >= 0) AND (y<= 49) then
_IF2
MOVF Y,W
MOVWF
_STACK0
MOVLW
H00
SUBWF
_STACK0,W
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
MOVWF
_STACK4
MOVF Y,W
SUBLW
H31
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
ANDWF
_STACK4,W
BTFSC
_STATUS,_Z
GOTO _ELSE2
;
begin
;
red = 1
; turn on red
BSF PORTB,RED
;
yellow = 0 ; turn off yellow
BCF PORTB,YELLOW
;
green = 0
; turn off green
BCF PORTB,GREEN
;
end
;
if (y >= 50) AND (y<= 75) then
_ELSE2
_IF3
MOVF Y,W
MOVWF
_STACK0
MOVLW
H32
SUBWF
_STACK0,W
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
MOVWF
_STACK4
MOVF Y,W
SUBLW
H4B
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
ANDWF
_STACK4,W
BTFSC
_STATUS,_Z
GOTO _ELSE3
;
begin

PC-PLUS

red = 1
; turn on red
PORTB,RED
;
yellow = 1 ; turn on yellow
BSF PORTB,YELLOW
;
green = 0
; turn off green
BCF PORTB,GREEN
;
end
BSF

;
if (y >= 76) AND (y<= 110) then
_ELSE3
_IF4
MOVF Y,W
MOVWF
_STACK0
MOVLW
H4C
SUBWF
_STACK0,W
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
MOVWF
_STACK4
MOVF Y,W
SUBLW
H6E
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
ANDWF
_STACK4,W
BTFSC
_STATUS,_Z
GOTO _ELSE4
;
begin
;
red = 0
; turn off red
BCF PORTB,RED
;
yellow = 0 ; turn off yellow
BCF PORTB,YELLOW
;
green = 1
; turn on green
BSF PORTB,GREEN
;
end
;
if (y >= 111) AND (y<= 130) then
_ELSE4
_IF5
MOVF Y,W
MOVWF
_STACK0
MOVLW
H6F
SUBWF
_STACK0,W
CLRW
BTFSC
_STATUS,_C

;
;
;
;
;

ADDLW
HFF
MOVWF
_STACK4
MOVF Y,W
SUBLW
H82
CLRW
BTFSC
_STATUS,_C
ADDLW
HFF
ANDWF
_STACK4,W
BTFSC
_STATUS,_Z
GOTO _ELSE5
begin
red = 0
; turn off red
BCF PORTB,RED
yellow = 1 ; turn on yellow
BSF PORTB,YELLOW
green = 0
; turn off green
BCF PORTB,GREEN
end

;
if y = 131 then
_ELSE5
_IF6
MOVF Y,W
SUBLW
H83
MOVLW
H00
BTFSC
_STATUS,_Z
ADDLW
HFF
ANDLW
HFF
BTFSC
_STATUS,_Z
GOTO _ELSE6
;
begin
;
clr(x)
CLRF X
CLRF XH
;
clr(y)
CLRF Y
;
end
;
end
_ELSE6
_END1
; loop
GOTO _WHILE0
END

Listage 2. Feux de signalisation (1) Programme assembleur

Toutes les tiquettes variables engendres par le compilateur sont prcdes dun signe soulign pour les
diffrencier des variables utilises
dans le programme source.
La mthode la plus simple pour mettre
en oeuvre une squence de feux de
signalisation serait dutiliser la commande wait (attente) aprs avoir
mis les diodes LED appropries en ou
hors service.
green = 0
yellow = 0
red = 1
wait(3000)

;
;
;
;

turn
turn
turn
wait

green off
yellow off
on red
for 3 seconds

Si votre intention est de construire le circuit prsent en figure 3, prenez


conscience des limites du logiciel PIC.
Lintensit de sortie maximum sur le port
B est de 100 mA, chaque broche dispose dune intensit maximum de sortie
de 20 mA. Il faut incorporer la rsistance de limitation dintensit approprie

(R) en srie avec la diode LED (dans


une plage de 470 1 k selon la
LED). Ici, la suggestion est de 680 .
Le programme exemple continuera
de sexcuter jusqu suppression de la
tension applique au processeur PIC.
Le code source du programme est
prsent dans le listage 1. La variable
x est incrmente chaque
boucle du programme. Aprs latteinte dun certain chiffre, celui-ci incrmente une variable y . Ceci est fait
pour ralentir le programme si la
variable x tait utilise directement, les feux basculeraient trop vite.
Les parenthses sparant les conditions y ne sont pas destines au
compilateur, mais la meilleure comprhension du programme. Le code
assembleur rsultant est prsent dans
le listage 2.
Le fichier de documentation comporte dautres exemples de programmes
: Traffic Lights (2) (feux de signalisation 2) et LCD Display Driver (pilote

daffichage de diode LCD). Le code


source et les listes de code assembleur se trouvent aussi dans le fichier
de documentation.

Description de la syntaxe et
des commandes
Une description complte de toutes
les commandes disponibles et de la
syntaxe demande par le compilateur
existe dans les 56 pages du fichier de
documentation. Ce fichier, sous la
forme dun document MS Word, se
trouve dans la disquette numro EPS996033-1 qui peut tre commande
auprs des adresses habituelles. La
disquette contient aussi les fichiers des
codes source (.psf) des exemples et,
bien sr, le compilateur lui-mme
(Compiler84.EXE). Le fichier readme.txt (lisezmoi.txt) dcrit linstallation
trs simple.
(000012)
Texte : Jan Buiting

PC-PLUS

Elektor EXTRA

X-7 - 1/2000

Cette platine exprimentale a t conue et ralise pour


servir daide au dveloppement pour tous ceux dentre nos
lecteurs qui aimeraient sessayer la conception de lune ou
lautre platine dextension devant se connecter au port
parallle de lun de leurs PC. Lauteur a mis le prototype de
cet montage contribution au cours de ses expriences
avec, entre autres cobayes, des CNA (convertisseur numrique/analogique) et des affichages cristaux liquides (LCD).
Technique et logiciel : Adrian Grace

exprimentateur LPT
porte ouverte sur le port parallle du PC
La platine, dont on retrouve le schma
en figure 1, se branche, par le biais
dun morceau de cble en nappe
25 conducteurs, sur lembase sub D
25 contacts qui constitue la sortie de
linterface parallle dun PC; elle comporte un connecteur de transition (cf.
les informations donnes dans le paragraphe La construction ). Llectronique se rsume en fait une triplette
de sous-ensembles un pour chacun
des registres savoir les registres de
donnes (DATA), dtat (STATUS) et de
commande (CONTROL), requis par un
port dimprimante parallle.

R5

Registre de donnes
Les 8 sorties du registre de donnes
attaquent 8 LED (D5 D12) au travers
de rsistances de limitation de courant
(R5 R12). Les LED utilises sont du type
5 x 2 mm et partant se blotissent merveille dans une grille classique au pas
de 2,54 mm (1/10).
Registre dtat
Le registre dtat comporte 5 entres
que lon simule par le biais dun quin-

X-8 - 1/2000

Elektor EXTRA

R6

D0

D6

D1

D7

D2

D8

D3

14

13

D9

D4

12

11

10

D10

D5

D11

D6

D12

D7

1k8
R9
1k8
R10
1k8
R11
R13

15

R14

17

16

1k8
R12

10k

18

1k8
R8

R15

19

10k

21

20

R18

22

1k8
R7

10k

23

R17

25

24

10k

26

10k

R4
1k8

R3
1k8

R2
1k8

1k8

R1

1k8

D2

CONTROL

D3

D4

ERROR

SELECT

PAPER OUT

BUSY

SELECT-IN

INITIALISE

AUTOFEED

STROBE
D1

ACKNOWLEDGE

DATA REGISTER

Les registres
Commenons par une courte description des registres. Le registre de donnes est un verrou de sortie 8 bits servant normalement au transfert des
donnes vers limprimante. Le registre
dtat comporte 5 entres lecture
seule; lordinateur sen sert pour monitorer ltat de limprimante au niveau
des messages derreur, etc. Le registre
de commande dispose lui de 4 sorties;
il sert normalement mettre en oeuvre
les fonctionnalits de limprimante.

D5

1k8

K1

10 9

S1

REGISTER

STATUS REGISTER

002002 - 11

Figure 1. Llectronique de la platine dexprimentation pour port LPT.

tuple interrupteur DIL. Les entres remplissent les fonctions suivantes :


D7
Busy

D6
Acknowledge

D5
Paper out

D4
Select

Les contacts du quintuple interrupteur


sont forces au niveau haut (pull-up)
par les biais des rsistances R13 R17;
il est possible den lire ltat si tant est
que la ligne SELECT IN, le bit D3, se
trouve au niveau logique haut. Ceci
permet une auto-alimentation du montage, ce qui signifie que lon peut se
passer dalimentation externe.

Registre de commande
Le registre de commande possde une
D3
Error

D2
Non utilis

D1
Non utilis

D0
Non utilis

largeur de 4 bits le quartet de poids


faible (low nibble). limage des sorties
du registre de donnes, chacune des
sorties du registre de commande
attaque, par le biais dune rsistance
de limitation de courant, une LED. On
utilisera le mme type de LED que prcdemment, mais dune couleur diffrente de prfrence. Voici les fonctions

PC-PLUS

R1
R2
R3
R4

D2
D3
D4

bit
bit
bit
bit
bit
bit
bit
bit

D5
D6
D7
D8
D9
D10
D11
D12

R13
R14
R15
R16
R17

0
1
2
3
4
5
6
7

1-200200

002002-1

ROTKELE )C(

(C) ELEKTOR

error
select
paper out
ack
busy

SW1

J1

LK1

LK

R5
R6
R7
R8
R9
R10
R11
R12

strobe
autofeed
initialise
select in

D1

Figure 2. Dessin, recto-verso, de la platine, propos par lauteur.


Liste des composants

de chacun des bits :


D7
D6
D5
Non utilis Non utilis Direction

stice du connecteur de transition K1 de


D4
IRQ

La LED D4 remplit une double fonction;


lorsquelle est alimente, elle fournit le
courant requis pour la lecture des
contacts du quintuple interrupteur
connects au registre dtat.
Le quartet de poids fort du registre de
commande comporte un certain
nombre de bits de commande qui ne
sont pas adresss dans le prsent
concept.

La construction
Les fichiers de dessin (format Ultiboard)
du circuit imprim dessin par lauteur
pour le prsent projet ont t mis sur
une disquette (ESS 006002-1) disponible auprs des adresses habituelles.
Limplantation des composants sur la
platine reprsent en figure 2 est la
porte de Monsieur-Tout-Le Monde. On
implantera la totalit des composants,
exception faite de J1. Attention ne
pas oublier le pont de cblage LK1. On
pourra ensuite doter le cble en
nappe du connecteur J2, aprs avoir
enlev le conducteur en excdent, il
nest pas possible en effet, sans forcer,
de glisser 26 conducteurs dans un
connecteur qui est prvu de nen comporter que 25 ! Le conducteur color,
qui identifie la broche 1, doit correspondre la broche 1 de J2.
Cest maintenant que les choses
deviennent intressantes. Placez la platine devant vous de manire ce que
J1 soit le plus loign possible de vous.
Disposez le cble plat sur le dessus du
montage de sorte que lextrmit du
cble multi-brin se trouve au-dessus de
J1. Lorientation de ce cble doit tre
telle que le conducteur repre soit sur
la droite. Pas de PB pour le moment ?
Glissez le cble en nappe dans linter-

D3
Select In

D2
Initialise

D1
Autofeed

D0
Strobe

manire ce que la ligne non occupe se trouve sur la droite et que le


cble soit en bute sur la gauche. Il est
temps dcraser J1 en veillant ce que
les contacts soient tablis correctement. On pourra utiliser, pour protger
les broches de J1, quelques chutes de
platine dexprimentation pastilles
montes en gigogne. Il reste ensuite
retourner le cble et fixer la barette
anti-arrachement. On pourra ensuite
monter J1 lendroit prvu sur la platine
et ly souder.

Le logiciel
Comme nous le disions plus haut, le
logiciel requis par ce projet est disponible sur disquette. Il a t crit en C et
tourne sous DOS. Le programme luimme (un fichier excutable) se prsente sous la forme dun menu. Le programme commence par interroger le
BIOS de lordinateur pour tablir
ladresse du port imprimante avant de
lafficher lcran. Dans ltat actuel
des choses, le programme ne sintresse quau premier port LPT1. Le menu
principal offre 3 options, une pour chacun des registres et une voie de sortie.
La premire option concerne le registre
dtat. Dans cette option, la ligne
SELECT IN est automatiquement active, permettant ainsi la lecture des
positions des contacts de linterrupteur.
Lcran affiche alors la valeur hexadcimale des contacts jusqu une nouvelle action sur une touche du clavier.
La seconde option est celle du registre
de donnes. Lors de sa slection, on
voit apparatre un second sous-menu
affichant la valeur actuelle du registre
de donnes. Le sous-menu permet
lutilisateur de dcaler les bits vers la

R1 R12 = 1k8/0W25
R13 R17 = 10 k/0W25
D1 D4 = LED 5 x 2 mm verte haut
rendement
D5 D12 = LED 5 x 2 mm rouge haut
rendement
SW1 = quintuple interrupteur DIL
J1 = connecteur de transisition
26 contacts barette anti-arrachement
J2 = connecteur Sub D mle
25 contacts
morceau de cble plat 26 conducteurs
coup la longueur requise et ramen
25 conducteurs lune des extrmits

gauche ou vers la droite ainsi quune


incrmentation ou dcrmentation des
valeurs du registre.
La valeur du registre est envoye vers
la sortie du port parallle de sorte que
les LED visualisent le pattern de bits.
La troisime option concerne elle le
registre de commande. Cette option ne
fait rien de plus que dilluminer de faon
cyclique lune des 4 LED associes au
registre de commande, jusqu une
nouvelle action sur une touche.
La disquette EPS006002-1 comporte le
code source dorigine ainsi que le
fichier objet intermdiaire et le fichier
excutable. Le code-source est bien
comment (en anglais) de sorte que
vous pourrez exprimenter loisir.
Nous vous recommandons instamment, si vous avez lintention de poursuivre et de procder vos propres
expriences en rapport avec le port
parallle, denvisager lachat dune
seconde carte (pour pas bien cher)
pour port LPT. Cela vous vitera dendommager le port parallle principal
qui est, bien souvent, intgr sur la
carte-mre. Rien de plus catastrophique que dendommanger votre
carte-mre, ce nest pas l le but de
nos expriences !
(002002-1)
Technique : Karel Walraven
Texte : Jan Buiting

PC-PLUS

Elektor EXTRA

X-9 - 1/2000

Lchange de donnes entre PC et imprimantes, numriseurs, tlcopieurs et modems, la communication entre ordinateur et tlphone,
tous deux portatifs : le cblage embrouill des appareils prcdant
linstallation laborieuse des pilotes est incontournable, mme de nos
jours. Il serait merveilleux que tous les appareils de traitement des
donnes utiliss aujourdhui puissent converser de faon autonome.
Plus de cblage, plus dinstallation. Cest enfin possible : avec la
communication des donnes courte distance, Bluetooth rend tout
cblage superflu et ouvre la voie de nouvelles applications.
par lingnieur diplm Gregor Kleine

Bluetooth

communication de

donnes 2,4 GHz sans cble dordinateur

sans entraves. Le cahier des charges


ne comporte pas moins de 1 500
pages. Le but principal du dveloppement de Bluetooth consiste raliser
des modules miniaturiss extrmement
peu coteux incorpors diffrents terminaux. Le prix bas sur la fabrication
en grande srie devrait se situer audessous de 5 dollars.

Frquences

Nokia Mobile Phones, Ericsson Mobile Communications, IBM, Intel


et Toshiba, conscientes de ce besoin,
ont fond en mai 1998 le groupe
intrt commun Bluetooth Special Interest Group (BSIG) [1,2] vou la dfinition dune liaison de communication
universelle entre appareils de traitement des donnes. Il ne sest agi au
dbut que de dfinir un mode de
communication de donnes entre un
tlphone mobile et des priphriques
vitant les inconvnients du cblage.
Dans une phase ultrieure, on a
tendu les applications la liaison sans

X-10 - 1/2000

Elektor EXTRA

fil entre un PC ou un ordinateur


mobile et ses priphriques, jusqu la
ralisation ad hoc de rseaux sans fil.
Le groupe intrt commun Bluetooth
(voir encadr) compte aujourdhui plus
de 1 000 entreprises. Tous les fabricants
dordinateurs connus et toutes les entreprises de tlcommunications sont bien
entendu reprsents, mais on y trouve
aussi les fabricants de voitures et les
entreprises dlectronique de divertissement. Le groupe BSIG a prsent en
automne 1999 le cahier des charges
temporaire 1.0 de Bluetooth. Chacun
peut y avoir accs sur Internet [2] afin
de permettre la mthode de transmission Bluetooth de se dvelopper

Les bandes ISM (Industrial, Scientific


& Medical) remplissent les conditions requises : mondiales et gratuites. Ces bandes de frquence
destines aux appareils de lindustrie, de la science et de la mdecine ne requirent pas de licence
et sont gratuites, mais leur puissance dmission est limite. Le
tableau 1 en fournit la liste complte.
Lutilisation des autres bandes ISM,
5,8 GHz, 24,250 GHz et 122,5 GHz nest
malheureusement pas encore technologiquement rentable.
Comme la prsence dutilisateurs des
bandes ISM qui ne dtiennent pas de
licence constitue une cause toujours
possible de perturbations, et comme
Bluetooth exige de surcrot un dbit
denviron 1 Mbit/s, il ne reste plus que
la bande 2,4 GHz(2 400 2 483 MHz).
Mais comme sa largeur est de 83 MHz,
elle offre assez de place de rserve
lorsquun four micro-ondes occupe
par exemple une frquence particulire. Laccs cette bande de frquence est mondial et seuls le Japon

PC-PLUS

(de 2,471 GHz 2,497 GHz), la France


et lEspagne imposent une bande
lgrement plus limite.
Pour venir bout des perturbations
dont la plupart se produisent une frquence fixe, Bluetooth fait appel un
processus dtalement du spectre
(spread spectrum) : des changements
de frquence rapides (jusqu 1 600
fois par seconde) pseudo-alatoires
fournissent un assez grand nombre de
frquences dpourvues de perturbations pour assurer sans erreur le dbit
dsir (figure 1). On nomme cette
mthode dite FHSS (Frequency Hopping Spread Spectrum), cest--dire
talement du spectre par bonds de
frquence . Bluetooth fait appel
79 frquences dans la gamme des frquences 2,402 GHz 2,480 GHz spares par un intervalle de 1 MHz. Conformment aux restrictions mentionnes
plus haut, il nexiste que 23 frquences
de saut en France, en Espagne et au
Japon.
Picorseaux et
rseaux de diffusion
Deux appareils quips de Bluetooth
entrent spontanment en contact lun
avec lautre par bonds de frquence.
Pour que le reste de lappareillage
Bluetooth proximit ne rende pas
toute liaison impossible en se servant
des mmes frquences, on drive la
suite des frquences utilises de
ladresse et de lhorloge de lappareil
qui prend linitiative de la liaison. Cette
appareil devient le matre du circuit de
transmission tandis que tous les autres
participants sont des esclaves qui se
synchronisent sur le matre.
Un canal peut tre utilis par
8 radios Bluetooth au maximum.
Ce rseau se nomme un picorseau (le Piconet de la figure 2).
Par canal, on veut dire que tous les
participants de ce picorseau se
servent de la mme suite de sauts,
donc de la mme suite de frquences. Comme une adresse
individuelle de 48 bits est attribue
de faon centralise chaque
appareil Bluetooth, les bonds de
frquence ne peuvent pas avoir
lieu dans deux canaux identiques.
La constitution automatique de picorseaux supplmentaires permet de se
servir de plus de 8 appareils Bluetooth
au mme endroit, par exemple dans
un bureau, sans risque dinterfrence
et ce avec un dbit lev.
Un metteur-rcepteur esclave intgr
dans un picorseau Bluetooth dtermin est interpell par le matre lors du
premier intervalle par voie multiplexe
dans le temps (TDM = Time Division

Piconet A
Piconet B

Collision (Slot inutilisable)

2,480 GHz

2,402 GHz

625 s

992041 - 11

Figure 1. Bonds de frquence.

Multiplexing) et peut rpondre lors de


lintervalle suivant. Lesclave peut participer un autre picorseau au cours

des autres intervalles. Pour ce faire, il


rgle son rcepteur sur la frquence
de saut momentane du second pico-

Tableau 1. Gammes de frquences ISM.


Gamme de frquences 1

Largeur de bande

Co-utilisateurs/remarques

26,957 MHz 27,283 MHz

0,326 MHz

Transmission CB, interphones de surveillance,

40,660 MHz 40,700 MHz

0,040 MHz

Faible largeur de bande

433,050 MHz 434,790 MHz

1,74 MHz

Radiophonie amateurs et professionnelle

868 MHz 870 MHz

2,00 MHz

Faiblement occupe mais trop troite

2,400 GHz 2,483 GHz

83,00 MHz

Four micro-ondes, majordome lectrique

1 Remarque : Autres bandes ISM 5,8 GHz, 24,250 GHz et 122,5 GHz

Piconet A

Slave
A2
Slave
A1

Master
A

Piconet B

Slave
B2

Slave
A3&B1
Slave
A5

Slave
A4
&
Master
C

Master
B
Slave
B4&C1

Slave
B3

Slave
C3
Slave
C2

Piconet C
992041 - 12

Figure 2. Picorseau et rseau de diffusion.

PC-PLUS

Elektor EXTRA

X-11 - 1/2000

a) Packet format

Access
Code

Packet
Header

Payload

72 bit

54 bit

0 ... 2745 bit

fi
b) Multi-Slot
packets

A H

fi +1
P

fi +2
A H

fi +3

fi +4
A H

fi +5

625 s

fi
A H

fi +3
P

fi +4
A H

fi +5

3x 625 s

fi
A H

fi +5
P

A H

5x 625 s

t
992041 - 13

Figure 3. Format des paquets et paquets plusieurs intervalles.

rseau et sy synchronise avec le


matre de ce rseau. Lensemble de
plusieurs rseaux de communication
Bluetooth se nomme rseau de diffusion (figure 2). Comme les esclaves
sont lis lhorloge du matre, la voie
multiplexe dans le temps empche
les collisions.
Bluetooth permet donc de former un
picorseau
comportant
jusqu
8 appareils. Le rseau de diffusion
parent peut inclure jusqu 10 picorseaux, ce qui signifie quil est possible
de disposer de systmes comportant
jusqu 80 appareils Bluetooth dans un
rayon de 10 mtres. Mme si un appareil de chacun des 10 picorseaux est
actif en voie multiplexe dans le
temps, le dbit de transmission ne diminue que denviron 10 % dans chaque
picorseau.

Modulation et protection
contre les erreurs
La porteuse sautante bande troite
de chaque canal est module par
dplacement de frquence gaussien
(GFSK = Gaussian Frequency Shift
Keying) et sa largeur de bande est
220 kHz (3 dB) pour une excursion de

frquence denviron 150 kHz. Ce procd de modulation trs simple a t


choisi pour pouvoir se servir de puces
mettrices-rceptrices aussi peu coteuses que possible. La puissance
dmission nominale de 1 mW (=
0 dBm) offre une porte normale dau
moins 10 mtres. Il existe des cas particuliers o il est permis datteindre une
intensit de champ plus leve laide
dune mission de puissance de
100 mW (= +20 dBm) sur la bande ISM
lorsquon se sert de la transmission par
dplacement de frquence ; on peut
atteindre alors une porte de
100 mtres. La puissance dmission du
module radio Bluetooth sadapte automatiquement dans certaines limites
au trajet de communication.
La protection contre les erreurs de
Bluetooth est aussi adaptive, ce qui
signifie en loccurrence que si la liaison
est trs bonne, la protection contre les
erreurs est sacrifie en faveur du dbit.
La correction derreur en aval, dite FEC,
(Forward Error Correction) deux
tages nintervient que lorsque la communication prouve des difficults. Elle
se fait bien entendu au dtriment du
dbit. Ce quoi vient sajouter hormis
pour les canaux vocaux un procd

Tableau 2. Dbits (liaison ACL)


FEC

Dbit symtrique

Dbit asymtrique

sans

2 x 172,8 kilobits/s

172,8 kBit/s + 172,8 kilobits/s

sans

2 x 384,0 kilobits/s

576,0 kBit/s + 86,4 kilobits/s

sans

2 x 432,6 kilobits/s

721,0 kBit/s + 57,6 kilobits/s

avec

2 x 108,8 kilobits/s

108,8 kBit/s + 108,8 kilobits/s

avec

2 x 256,0 kilobits/s

384,0 kBit/s + 54,4 kilobits/s

avec

2 x 286,7 kilobits/s

477,8 kBit/s + 36,3 kilobits/s

X-12 - 1/2000

Intervalles

Elektor EXTRA

appel ARQ (Automatic Retransmission


Query), en dautres termes une
demande automatique de retransmission. Ce moyen permet de demander
quun paquet soit retransmis. Len-tte
de chaque paquet est toujours protg
par une correction derreur en aval
(FEC) donc, mme si la correction FEC
a t dsactive, il est possible de
demander la retransmission dun
paquet par ARQ lorsque des perturbations apparaissent.
SCO et ACL
Le protocole de la bande de base de
Bluetooth est prvu pour deux
mthodes de transmission des donnes : point point et point multipoint.
La transmission point point est baptise SCO (Synchronous Connection
Oriented), cest--dire quelle est base
sur une liaison de type synchrone
commutation de circuit. Elle sert principalement la transmission vocale. La
liaison est symtrique en termes de
dbit dans les deux directions. La liaison en duplex intgral est tablie par
lutilisation de deux intervalles de temps
conscutifs correspondant aux deux
sens de transmission des donnes. La
transmission vocale est bien entendu
beaucoup plus sensible aux dlais que
le transfert des donnes, ce pourquoi
la demande de retransmission ARQ
nentre pas en ligne de compte. On fait
appel par contre au processus CVSD
(Continous Variable Slope Delta) de
codage de la parole qui se comporte
honorablement lors derreurs de bits en
se manifestant par un bruit de fond plus
lev. Le taux dchantillonnage de la
transmission vocale est celui de RNIS :
64 kilobits/s.
La transmission point multipoint est
asynchrone et ne dpend pas de la
liaison (commutation par paquets).
Dans le jargon de Bluetooth, il sagit
dune liaison ACL (Asynchronous
Connection ess). Ce mode de transmission permet au matre de sadresser
simultanment plusieurs esclaves.
Outre lenvoi dinformations plusieurs
esclaves, ce type de liaison est utilis
pour la transmission de paquets de
donnes un esclave spcifique. Pour
amliorer le dbit, un paquet peut utiliser plus dun intervalle de temps de
625 SYMBOOL 109 \f Symbol \s 9 s :
2 ou mme 3 (figure 3). On interrompt
en outre ltalement du spectre par
bonds de frquence et on conserve la
frquence momentane (fi) pour les
3 ou 5 intervalles. Il est alors possible
dutiliser les autres intervalles normalement rservs au changement de frquence pour la transmission des donnes. Pour resynchroniser, on rtablit la

PC-PLUS

Les modules de Bluetooth qui font partie dun picorseau sont en mode dattente et cherchent la prsence de
transmissions proximit toutes les
1,28 secondes. Il leur faut vrifier

Standby
typ
. 2s

h
tac

Not connected

De

Inquiry
6s

Page
Known Address

typ

. 0.

Unknown Address

Connecting

Transmit
Data

Connected

Active

ms
typ

.2

ms
.2

tats du picorseau

Status:

typ

suite de sauts la frquence initialement prvue pour le quatrime (fi+4) et


le cinquime intervalle (fi+5).
La transmission des donnes dun
esclave au matre ou un autre
esclave par lentremise du matre doit
tre autorise par celui-ci. La symtrie
du dbit dans les 2 sens des liaisons
ACL est commande par le matre. La
transmission asymtrique est limite
721 kilobits/s dans un sens et
57,6 kilobits/s dans le sens oppos. Ces
2 valeurs se rfrent la transmission
5 intervalles non protge par FEC. Il
va sans dire que le dbit diminue
lorsque les mcanismes de correction
FEC (Forward Error Correction) sont utiliss conjointement au processus ARQ
cit plus haut. Un FEC au taux de 2/3
est utilis. Dans le cas symtrique de
5 intervalles non protgs, on peut
obtenir au plus 432,6 kilobits/s dans les
2 sens. Le tableau 2 contient les autres
dbits pour la liaison ACL.
La transmission des donnes par les
2 types de liaison, ACL et SCO, fait
appel 16 types de paquets diffrents
dont quelques-uns assurent des fonctions de commande. Chaque paquet
comporte une zone didentification de
72 bits, le code daccs (Access
Code), drive de ladresse 48 bits du
matre et incluant une protection derreur FEC. Len-tte de 54 bits qui suit est
aussi protg par un FEC au taux de
1/3. Un paquet normal se termine par
2 745 bits utiles ou moins (figure 3). Les
paquets de 3 et 5 intervalles peuvent
transmettre un nombre proportionnellement plus lev de bits utiles.
Bluetooth peut aussi chiffrer la transmission. Lauthentification est base sur une
cl de 128 bits. Lutilisateur prcise sil
dsire que le chiffrement soit effectu
dans un sens ou dans les deux. Ce
paramtrage est mmoris. Il est donc
possible par exemple de spcifier
exactement avec quels appareils un
tlphone portatif peut communiquer.
Le contact avec son propre ordinateur
portatif ne subit par exemple aucune
restriction tandis que laccs celui
dun collgue sera refus.
Bluetooth peut offrir un canal de donnes ACL asynchrone ou jusqu
3 canaux SCL synchrones et galement un canal de donnes asynchrone avec un canal vocal parallle
de 64 kilobits/s.

Hold

Park
Sniff
Releases
Mac Address

Keeps
Mac Address

Low
Power
992041 - 14

Figure 4. Diagramme dtat dun module Bluetooth.

32 porteuses dveil parmi les


79 frquences. La France, lEspagne et
le Japon limitent les porteuses dveil
16 dun total de 23 frquences.
Un module Bluetooth qui ne communique pas encore nenvoie quun
appel par les porteuses dveil auquel
rpondent les autres radios Bluetooth
qui se trouvent proximit. Ltablissement initial de la liaison par les deux
appareils est suivi de celui dun picorseau dont lappelant sera le matre.
Son adresse dfinit la suite de sauts de
ce picorseau. Lesclave initial et les
appareils raccords par la suite ce
picorseau se synchronisent sur la frquence dhorloge du matre.
La figure 4 reproduit le diagramme
dtat dun module Bluetooth : il passe
du mode dattente (Standby) ltat
dinterrogation (Inquiry) lors de la
dtection dun second appareil et
une diffusion, puis une demande
dadresse. Une fois ladresse de lautre
module obtenue ou si elle tait dj
connue en mode dattente, lappareil
passe en mode dappel (Page Mode).
La liaison sera tablie (tat : Connected) au bout denviron 0,6 secondes
Tout est prt pour la transmission des
donnes (Transmit Data). Aprs
lchange de donnes, le module
Bluetooth peut retourner en mode dattente ou adopter lun des trois tats
faible consommation ci-dessous.
On a tout dabord un mode de maintien (Hold) au cours duquel lappareil
reste actif dans le picorseau. Lorsque
le temporisateur interne de lesclave
vient expiration, lesclave sannonce
brivement au matre avant de recom-

mencer le compte rebours. Un


esclave en mode de maintien peut
passer immdiatement la transmission des donnes. Le matre peut forcer
lesclave se mettre en mode de
maintien, mais lesclave peut aussi lui
en faire la demande.
En mode renifleur (Sniff), lesclave
est programm pour se mettre priodiquement lcoute du picorseau afin
de dterminer si ce dernier dsire lui
envoyer des donnes.
Le dernier mode faible consommation fait appel au parcage des
esclaves (Park). Dans ce cas, lesclave
se retire du picorseau et rend son
adresse MAC (Media Access Control,
0 7, ce qui correspond 8 appareils
par picorseau). Il ne fait alors plus
rien dautre que de se synchroniser
longs intervalles avec le matre de son
picorseau.

Applications intressantes
de Bluetooth
Bluetooth permet en premier lieu de
remplacer le cblage entre des ordinateurs, portatifs ou non, et les imprimantes, numriseurs (scanner) et
rseaux locaux LAN (Local Area Network) par une transmission sans fil. Le
clavier, la souris et la manette de jeu
ou la boule de commande ne doivent
donc plus ncessairement se trouver
dans la ligne visuelle de lordinateur.
Lordinateur et le tlphone portatif
ouvrent la voie dautres applications.
Il fallait jusquici penser envoyer le
courrier lectronique crit sur un ordinateur portatif bord dun avion aprs

PC-PLUS

Elektor EXTRA

X-13 - 1/2000

Loop
Filter

VCO
Tank

2.4-GHz
Antenna

RX
Balun

PD

RF IC

Antenna
Filter
TX
Balun

Control & Data

PA

Bluetooth Radio ASIC


992041 - 15

Figure 5. Diagramme fonctionnel dun module radio Bluetooth.

latterrissage. Plus maintenant. Ds que


le tlphone portatif est remis en
marche aprs la descente davion, lordinateur portatif sy connecte par lintermdiaire de Bluetooth et expdie le
courrier. La puissance dmission de
100 mW au plus du module radio Bluetooth permet de lutiliser aussi bord
dun avion.
Le cblage entre un dispositif mains
libres et un tlphone mobile est aussi
destin disparatre. Le tlphone
mobile se trouve dans la poche et est
connect sans fil au casque microtlphone du dispositif mains libres. Un tel
dispositif mains libres contribue aussi
la scurit des conducteurs de vhicules automobiles. On peut enfin quiper un ordinateur portatif de haut-parleurs et dun microphone. Bluetooth
permet au tlphone portatif qui se
trouve dans la mallette de recevoir
sans fil les signaux vocaux. Un seul
appareil, lordinateur portatif, transfert
la voix, les donnes et les graphiques.
La synchronisation automatique de lordinateur portatif avec lordinateur de

bureau et lassistant numrique personnel PDA (Personal Digital Assistant)


par Bluetooth est une ide digne dattention. Si les appareils sont proches
lun de lautre, ils peuvent changer
des dates dchance, du courrier
lectronique et des adresses pour que
tous soient galement jour. Il serait
mme possible de se servir du tlphone portatif et de Bluetooth pour
permettre une entreprise de mettre
jour ou de modifier automatiquement
la liste dchances dun technicien du
service extrieur. Les participants des
runions et entretiens y amneront
dornavant leur ordinateur portatif
quip dune interface Bluetooth et se
mettront spontanment en rseau. On
changera des graphiques, du texte
ou des donnes ou on actionnera les
appareils de projection, le tout sans fil.
Laccs sans fil Internet par Bluetooth
donnera une plus grande libert de
mouvement. Les pages Internet arriveront sans fil jusqu lordinateur portatif
par le tlphone portatif, le modem
local ou le rseau local de lentreprise.

2.4-GHz
Antenna

Baseband

Radio

Link
Manager

Link
Controller

RF Section

Host

CPU

992041 - 16

Figure 6. Diagramme fonctionnel dun module Bluetooth.

X-14 - 1/2000

Elektor EXTRA

Au bureau comme la maison, un tlphone portatif Bluetooth peut commuter


automatiquement du mode GSM au
mode DECT ds quil a tabli le contact
avec la station domestique de base du
tlphone sans fil. Un seul tlphone,
donc, pour toutes les communications.
Llectronique de divertissement nest
pas en reste de suggestions : Bluetooth
pourrait servir de liaison sans fil avec
une camra vido ou un appareil
photo. La camra transmet limage par
tlphone portatif au rseau de distribution ou lenregistre sans fil sur un ordinateur portatif. Il serait mme possible
denvoyer des cartes postales lectroniques sous forme dimages fixes au
tlphone portatif par un trajet Bluetooth, puis de l au destinataire. Bluetooth peut aussi remplacer la tlcommande dinstallations stro et de tlviseurs. Plus besoin de liaison visuelle,
contrairement la tlcommande
infra-rouges.

Premiers composants
Bluetooth
En collaboration avec Symbionics,
Ericsson a ralis un kit de dveloppement Bluetooth contenant une abondante documentation et un logiciel
dassistance la conception. Le processeur de la bande de base est fourni
par VLSI et provient de la famille Bluetooth VWS26000 [6]. Le module radio
(figure 5) est un hybride conu par la
firme Ericsson elle-mme (PBA 313) [4].
Philips Semiconductors offre aussi un kit
pour ralisateurs Bluetooth : le circuit
intgr spcial de la bande de base
est aussi un ASIC (Application Specific
Integrated Circuit) de VLSI. Le module
radio contient lmetteur-rcepteur
Bluetooth UAA-3558. Le kit comporte
deux cartes-filles Bluetooth identiques
permettant dtablir une premire liaison de communication. La figure 6
illustre la structure typique dun module
Bluetooth. Lentreprise Cambridge Silicon Radio [7] se consacre aux composants Bluetooth sur une seule puce
avec module radio intgr. Les ASIC
BlueCore01, BlueCore02 et BlueCore03 acquerront par tapes un
nombre croissant de fonctions dun
modem Bluetooth. Un module complet
devrait avoir la taille dun timbre-poste.
Pour complter le tableau, de nombreux fabricants de semi-conducteurs
tels que Temic, Philips et Motorola
offrent des C.I. metteurs-rcepteurs
2,4 GHz spcialement conus pour les
modules radio de Bluetooth. Tous les
modules Bluetooth doivent tre soumis
lhomologation du groupe SIG Bluetooth pour en assurer la compatibilit.

PC-PLUS

Les concurrents
de Bluetooth
Le concept de liaison hertzienne
courte distance illustr par Bluetooth a
suscit des concurrents. On se sert dj
depuis un certain temps de trajets parcourus par des infra-rouges selon le
procd IrDA (Infrared Data Association) pour transmettre des donnes
entre un PC et ses priphriques. Mais
les infrarouges ne peuvent fonctionner
qu vue et leur porte nest au mieux
que de quelques mtres pour un angle
douverture ne dpassant pas 60o.
Bluetooth peut littralement traverser les
murs. Pour une comparaison entre IrDA
et Bluetooth, voir [8]. Aux USA, plusieurs
entreprises ont t cres pour tablir
HomeRF [9], une norme similaire Bluetooth. Le protocole daccs sans fil partag (Shared Wireless Access Protocol,
autrement dit SWAP) labor par le
groupe de travail HRFWG (HomeRF
Working Group) permet dutiliser
127 appareils par rseau, porte

50 mtres. Il est intressant de constater quon retrouve quelques fondateurs


de Bluetooth parmi ceux du groupe
HRFWG : Ericsson, IBM et Intel y jouent
un rle dterminant, aux cts de
Compaq, Hewlett-Packard, Microsoft,
Motorola et Philips. Ce groupe ne
compte toutefois que quelques centaines dentreprises alors que le SIG
Bluetooth peut se targuer de compter
plus de 1 000 intresss. Il faut en outre
dbourser 500 $ de droits dinscription
pour avoir accs au cahier des
charges de HomeRF. La norme DECT
de tlphonie sans fil est aussi candidate pour les rseaux locaux sans fil.
Elle fonctionne dans un domaine de
frquence ddi de 1,8 GHz et sa porte est plus tendue (jusqu
500 mtres) en vertu de la puissance
dmission plus leve. DECT et Bluetooth atteignent le mme score dans la
transmission vocale sans fil et dans la
transmission des donnes faible dbit
(64 kilobits/s max.), mais Bluetooth peut

Le roi la dent bleue et ses amis


Le nom Bluetooth a t choisi en lhonneur du roi danois Harald Blaatand (en
franais : Harald la dent bleue, 910 986), qui a christianis et uni la plus grande partie de la Scandinavie. La figure (source : ROHDE&SCHWARZ), reprsentant
une pierre runique dcouverte dans sa capitale Jelling (Jylland central), indique
clairement quil fut un des premiers adeptes des communications sans fil entre
tlphone et ordinateur portable...
Le choix du nom se rapporte
bien entendu aux deux instigateurs principaux du systme,
Ericsson
Mobile
Communications (Sude) et
Nokia
Mobile
Phones
(Finlande) qui ont dfrich le
domaine des rseaux locaux
sans fil (Wireless LAN, Local
Area Network). Le nouveau
roi la dent bleu sest fait
entre-temps
beaucoup
damis, comme le montre
liste de membres du SIG
Bluetooth
ci-dessous
(extrait, liste intgrale en
[1]) :
AKG Acoustics, Alcatel,
Analog Devices, AMD,
Bang & Olufsen, Boeing,
Bosch, Casio, Compaq,
Dell, Fujitsu, Grundig,
Hagenuk,
HewlettPackard, ICO, LEGO,
LG
Electronics,
Logitech,
Lucent,
Mitsubishi, Motorola,
NCR,
National
Semiconductor,
Philips, Psion Computer, Qualcomm, Rohde & Schwarz,
Samsung, Sennheiser, Seiko Epson, Sharp, Siemens, TDK, Telia, Temic, Texas
Instruments, VLSI Technology, Volvo, 3Com.

Bibliographie et liens
[1]

www.bluetooth.com

[2]

www.bluetooth.net

[3]

www.zdnet.co.uk/news/

[4]

http://bluetooth.ericsson.se/

[5]

www.intel.com/mobile/bluetooth/

specials/1999/04/bluetooth/
default.asp
[6]

www.vlsi.com

[7]

www.cambridgesiliconradio.com/

[8]

Comparaison IrDA Bluetooth :


www.countersys.com/tech/
bluetooth.htm

[9]

HomeRF : www.homerf.org

[10] HomePNA : www.homepna.org


[11] ADSL Accs haute vitesse Internet,
ELEKTOR 10/99, p. 28 et suiv.
[12] www.bluetooth.rsd.de/ et
www.bluetooth-testing.com

atteindre 721 kilobits/s. Un consortium


gravitant autour de 3Com, IBM, Intel,
AMD, Compaq, Hewlett-Packard, Cisco
et Lucent pousse la mise en rseau
par lignes tlphoniques. La mthode
se dnomme HomePNA, cest--dire
Home Phoneline Networking Alliance
[10] et recevra certainement un
accueil particulirement favorable aux
tats-Unis o il est coutume dinstaller
une prise tlphonique dans chaque
pice. HomePNA fonctionne dans
le domaine de frquence qui suit celui
de ADSL (Asymmetric Digital Subscriber
Line, [11]), entre 6 et 10 MHz. On tente
aussi daccomplir une mise en rseau
domestique en ayant recours aux
divers procds de communication
par lentremise des lignes lectriques.
Un avantage : chaque pice est quipe de prises. Mais les fortes perturbations qui rgnent sur les lignes lectriques limitent fortement le dbit.

Perspectives davenir
Bluetooth semble en voie de simposer
rapidement et partout comme systme
de rseau local sans fil. Outre les applications denvergure de transmission des
donnes, il sera certainement utilis
dans llectronique de divertissement et
dans les vhicules automobiles. Maintenant que Ericsson et Nokia ont prsent des projets pilotes, on peut sattendre voir apparatre cette anne
de nombreuses applications de Bluetooth. Le salon CeBIT 2000 devrait nous
en apprendre davantage. Les premiers
systmes Bluetooth feront prochainement leur apparition sur le march.
(992041)

PC-PLUS

Elektor EXTRA

X-15 - 1/2000