|
Le système binaire
L'électronique
moderne a très souvent recours au système binaire,
et parfois à ses variantes, le code BCD et le système
hexadécimal. Un
microcontrôleur ou un microprocesseur,
par exemple, ne connaissent que des "0" et des
"1"...
Le système
binaire utilise la base 2, tandis que notre bon vieux système décimal de tous les jours utilise la base 10 (puisque
nous avons dix doigts!). La base 2 ne comporte que deux
"chiffres", ou signes, 0 et 1, tandis que la base 10 en
comporte dix, de 0 à 9.
Un chiffre
binaire (un 0 ou un 1) s'appelle un bit (de
l'anglais BInary digiT).
Un groupe de huit bits (par exemple: 01100010) s'appelle un octet (byte, en anglais).
Ainsi, le
nombre 2, en décimal, devient 10 en binaire; 8 en décimal
devient 1000 en binaire, 15 en décimal s'écrit 1111 en
binaire.
Chaque signe binaire, on vient de le dire, est un bit:
pour traduire 15 (décimal) en binaire, il faut donc, au minimum,
quatre bits. Si on dispose de huit bits, 15 (décimal),
s'écrira: 00001111. Ces huit bits forment un octet.
| DEC |
BIN |
BCD |
HEX |
| 0 |
0 |
0000 0000 |
0 |
| 1 |
1 |
0000 0001 |
1 |
| 2 |
10 |
0000 0010 |
2 |
| 3 |
11 |
0000 0011 |
3 |
| 4 |
100 |
0000 0100 |
4 |
| 5 |
101 |
0000 0101 |
5 |
| 6 |
110 |
0000 0110 |
6 |
| 7 |
111 |
0000 0111 |
7 |
| 8 |
1000 |
0000 1000 |
8 |
| 9 |
1001 |
0000 1001 |
9 |
| 10 |
1010 |
0001 0000 |
A |
| 11 |
1011 |
0001 0001 |
B |
| 12 |
1100 |
0001 0010 |
C |
| 13 |
1101 |
0001 0011 |
D |
| 14 |
1110 |
0001 0100 |
E |
| 15 |
1111 |
0001 0101
|
F |
| 16 |
10000 |
0001 0110 |
10 |
| 20 |
10100 |
0010 0000 |
14 |
| 30 |
11110 |
0011 0000 |
1E |
| 32 |
100000 |
0011 0010 |
20 |
|
 |
 |
Table
de conversion décimal (DEC), binaire (BIN), BCD,
hexadécimal
(HEX) pour quelques nombres et, à droite, méthodes de
conversion. Pour convertir "à la main" un nombre
décimal en binaire, on peut choisir la méthode des
divisions
successsives par 2 ou celle, peut-être plus
élégante, par
addition des puissances de 2.
Le bit le plus
à droite dans un nombre binaire est appelé bit
de poids
le plus faible (least significant bit, ou LSB,
en anglais). Le bit le plus à gauche est le bit de
poids
le plus fort (most significant bit, en
anglais). A chaque bit correspond en effet une puissance de 2.
Pour un nombre binaire sur quatre bits, par exemple 1111, le bit
de poids le plus faible correspond à 2 puissance 0, et le bit de
poids le plus fort à 2 puissance 3. Pour un nombre binaire sur n
bits, le bit de poids le plus fort vaut 2 puissance (n-1). On
retrouve ainsi l'équivalent décimal en additionnant la
valeur
de chaque bit en puissance de 2.
A noter qu'une
erreur sur le bit de poids le plus faible sera moins grave qu'une
erreur sur un autre bit, et a fortiori sur le bit de poids le
plus fort. Prenons le nombre binaire 1111 qui se traduit, en
décimal, par 15. Supposons une erreur sur le LSB: on aura 1110
à la place de 1111, soit 14 au lieu de 15. Si l'erreur
concernait le bit de poids le plus fort, on aurait alors 0111, soit 8
au lieu de 15. Cette notion d'erreur sur le bit de poids le plus faible
devient intéressante lorsqu'il s'agit de traduire un signal
analogique en un signal numérique. Plus le nombre de bits est
important, meilleure est la précision.

La
logique booléenne
L'idée de base de ce
système, dont les fondements théoriques furent
élaborés au
siècle dernier par le mathématicien anglais George Boole, est la suivante: l'absence de tension
correspond à un état bas, noté
0, tandis que
la présence de tension correspond à un état
haut,
noté 1.
Par analogie, on pourrait
dire: l'interrupteur est ouvert (0) ou il est fermé (1). Toute
l'électronique numérique, y compris l'informatique,
repose sur
ce système, qu'on pourrait difficilement rendre plus simple...
L'illustration ci-dessous
montre comment les niveaux logiques hauts et bas, 1 et 0, peuvent
être assimilés à la fermeture et à
l'ouverture d'un
interrupteur. Le schéma, à gauche, est celui d'une banale
lampe
de poche: on trouve une pile de 4,5 V, un interrupteur et une
ampoule d'éclairage. Lorsque l'on ferme l'interrupteur,
l'ampoule s'allume; on a un niveau logique 1. Si on ouvre
l'interrupteur, l'ampoule s'éteint, ce qui correspond à
un
niveau logique 0.

Le principe, on
le voit, est d'une simplicité désarmante... Formalisons
un peu
tout cela: si nous n'avons qu'une seule entrée (désignée par la lettre A) et une seule sortie (désignée S), et si nous pouvons écrire une table
de
vérité comme ci-dessus, alors nous sommes en
présence
d'une fonction logique OUI.
Considérons
les deux schémas ci-dessous. Sur
celui de gauche, on a un interrupteur ouvert au repos (c'est sa
position "normale"); sur celui de droite, on a monté
un interrupteur fermé au repos. Simulons mentalement le
fonctionnement de ces deux circuits et résumons les
résultats
sous forme de tableau, nous obtenons ceci:

Nous venons de
mettre en évidence les deux fonctions logiques les plus simples: la fonction OUI et la fonction NON, l'une étant l'inverse de l'autre.
 |
On symbolise
les fonctions OUI et NON par des triangles comportant une seule
entrée (du côté gauche) et une sortie (du
côté de la pointe du triangle). Remarquez le petit cercle,
sur le symbole de la fonction NON: il est toujours associé,
ainsi que nous le verrons plus loin, à un NON logique, donc
à un inverseur. |
Au passage,
signalons que dans la pratique, c'est-à-dire dans les circuits
intégrés, un niveau haut correspond à une tension
égale ou supérieure aux deux tiers environ de la tension
d'alimentation (Vcc); un niveau bas correspond à une tension
égale ou inférieure au tiers environ de la tension
d'alimentation. Par ailleurs, la transition d'un niveau haut à
un niveau bas ou vice-versa n'est jamais instantanée: elle est
affectée par un temps de montée et un temps de descente.

Mine de rien, nous avons
fait le tour des notions les plus fondamentales de la logique
booléenne! Voyons maintenant comment on réalise des
fonctions
logiques un peu plus complexes.

Fonctions
logiques
Nous avons simulé les
fonctions logiques OUI et NON à l'aide d'un seul interrupteur.
Toutefois, il faut bien avouer que ces fonctions, certes utiles,
demeurent d'un intérêt limité... Si nous avons
recours à des
montages à deux interrupteurs, nous pouvons
réaliser des fonctions sans doute plus intéressantes.
 |
Voici pour
commencer un schéma avec deux interrupteurs montés en
série. L'ampoule d'éclairage a été
remplacée par une diode électroluminescente (DEL) et sa
résistance de limitation de courant. On voit bien que la DEL ne
s'allumera que dans le seul cas où les deux interrupteurs A et B sont fermés simultanément. Ce montage simule la
fonction logique ET (en anglais: AND). |
 |
Nous avons
maintenant affaire à deux interrupteurs montés en
parallèle. Pour que la DEL s'allume, il suffit que l'un ou l'autre des deux interrupteurs soit
fermé. Ce montage simule la fonction logique OU (en anglais: OR). On observera que les interrupteurs
sont de type "ouvert au repos". S'ils étaient de type
"fermés au repos", on simulerait alors une fonction NON-OU, qui
est l'inverse de la fonction OU. |
Le principe d'une porte
logique (gate, en anglais) peut se résumer
comme suit: deux entrées, une sortie. Suivant
le niveau logique appliqué aux entrées
(niveau
0 ou 1, ou encore état bas, état haut), la sortie sera
à 0 ou
à 1 (basse ou haute). En somme, on pourrait dire que la porte
est ouverte ou fermée (mais jamais entr'ouverte...)
Ajoutons qu'un niveau 1 est
l'inverse d'un niveau 0; on dit aussi que 0 est le complément de 1, et vice-versa. Lorsqu'on parle de sorties complémentaires,
on veut dire que si telle sortie est à 1, l'autre sera, à
cet instant, à 0.
Chacune des entrées de la
porte peut être assimilée à un interrupteur:
suivant le type
de ces interrupteurs (ouverts ou fermés au repos) et le montage
particulier de ces interrupteurs (en série, en
parallèle...),
on réalise telle ou telle fonction logique. Il
existe, en logique booléenne, six fonctions (ou
opérations) de
base:
| Fonction |
Condition |
| ET (AND) |
la sortie S est
à 1 si les deux entrées A et B sont simultanément
à 1 |
| OU (OR) |
la sortie S est
à 1 si au moins une des deux entrées A ou B est à 1 |
| NON-ET
(NAND) |
la sortie S est
à 0 si les deux entrées A et B sont simultanément
à 1. C'est donc l'inverse de la fonction ET |
| NON-OU
(NOR) |
la sortie S est
à 1 si les deux entrées A et B sont simultanément
à 0. C'est donc l'inverse de la fonction OU |
| OU-EXCLUSIF
(EXOR) |
la sortie S est
à 1 si une seule des deux entrées A ou B est à 1 |
| NON-OU-EXCLUSIF
(EXNOR) |
la sortie S est
à 1 si les deux entrées A ou B sont soit à 0, soit
à 1 simultanément |
A ces six fonctions, il
convient de rajouter les deux fonctions OUI et NON, que nous avons vues plus haut.
A titre documentaire, on
écrit les opérations booléennes à l'aide
d'une notation particulière, par exemple s = a . b
(opération ET) ou s = a + b (opération OU). Nous
n'insisterons pas, car les équations booléennes peuvent
rapidement devenir très pénibles!
La table
de vérité d'une fonction résume les
quatre cas de
figure pouvant se présenter.
 |
| Fonction
ET (AND) |
| Entrée A |
Entrée B |
Sortie |
| 0 |
0 |
0 |
| 0 |
1 |
0 |
| 1 |
0 |
0 |
| 1 |
1 |
1 |
|
 |
| Fonction
NON-ET (NAND) |
| Entrée A |
Entrée B |
Sortie |
| 0 |
0 |
1 |
| 0 |
1 |
1 |
| 1 |
0 |
1 |
| 1 |
1 |
0 |
|
 |
| Fonction
OU (OR) |
| Entrée A |
Entrée B |
Sortie |
| 0 |
0 |
0 |
| 0 |
1 |
1 |
| 1 |
0 |
1 |
| 1 |
1 |
1 |
|
 |
| Fonction
NON-OU (NOR) |
| Entrée A |
Entrée B |
Sortie |
| 0 |
0 |
1 |
| 0 |
1 |
0 |
| 1 |
0 |
0 |
| 1 |
1 |
0 |
|
 |
| Fonction
OU-EX (EXOR) |
| Entrée A |
Entrée B |
Sortie |
| 0 |
0 |
0 |
| 0 |
1 |
1 |
| 1 |
0 |
1 |
| 1 |
1 |
0 |
|
 |
| NON-OU
EX (EXNOR) |
| Entrée A |
Entrée B |
Sortie |
| 0 |
0 |
1 |
| 0 |
1 |
0 |
| 1 |
0 |
0 |
| 1 |
1 |
1 |
|
Tables
de vérité. Pour chacune des portes, les entrées
sont notées A
et B, la sortie, S. Les états logiques sont notés 0 et 1.
Les
symboles couramment utilisés sont donnés à gauche.
La fonction
NON-ET (NAND) est dite universelle, en ce sens qu'elle permet
d'obtenir, par combinaisons, les cinq autres fonctions. Voici
deux exemples.
Cela ne vous
parait pas évident? Prenons le premier exemple et
écrivons sa
table de vérité:
| 1ère
porte NON-ET |
2ème
porte NON-ET |
| A |
B |
S |
A |
B |
S |
| 0 |
0 |
1 |
1 |
1 |
0 |
| 0 |
1 |
1 |
1 |
1 |
0 |
| 1 |
0 |
1 |
1 |
1 |
0 |
| 1 |
1 |
0 |
0 |
0 |
1 |
Cette table de
vérité correspond bien à celle d'une porte ET! A
titre
d'exercice, écrivez la table de vérité du
deuxième exemple
ci-dessus et vérifiez que vous trouvez bien celle d'une porte
OU... Mais non, ce n'est pas compliqué! Allez, voici la
solution:
| A |
B |
S1 = A |
S2 = B |
S |
| 0 |
0 |
1 |
1 |
0 |
| 0 |
1 |
1 |
0 |
1 |
| 1 |
0 |
0 |
1 |
1 |
| 1 |
1 |
0 |
0 |
1 |
L'intitulé
"S1 = A" signifie que, conformément au schéma, la
sortie de la 1ère porte est égale à
l'entrée A de la 3ème
porte, et bien entendu, la sortie de la 2ème porte est
égale à
l'entrée B de la 3ème porte.
 |
Que se
passe-t-il si on rajoute une quatrième porte NON-ET au montage
précédent, comme sur le schéma de gauche? Eh bien,
on l'inverse et on obtient une porte NON-OU! Ce n'est pas un tour de
passe-passe, c'est de la logique booléenne! |
Pour finir,
associons diverses portes, comme ci-dessous:

Vous
remarquerez que nous employons cette fois les symboles
"européens"... Saurez-vous écrire la table de
vérité de ce montage? Cliquez ici pour vérifier votre réponse!

Logique
séquentielle
Les portes logiques peuvent
se combiner, on vient de le voir, de multiples manières. On
parle de logique combinatoire. La sortie d'une
combinaison de portes, à l'instant t, dépend
uniquement de l'état sur les entrées à ce
même instant t.
Avec la logique dite séquentielle,
nous allons découvrir des montages de portes logiques dans
lesquels l'état de la sortie dépend d'un état
antérieur d'une
ou de plusieurs entrées. Ces montages peuvent être
regroupés
sous la bannière des bascules.
Qu'est-ce
qu'une bascule?
Une bascule est un montage
de portes logiques comportant une ou plusieurs entrées, et une
ou plusieurs sorties. L'état de la sortie dépend non
seulement
du niveau (haut ou bas) présent sur chacune des entrées,
mais
aussi du niveau précédent. La bascule fait donc
intervenir la
notion de temps, puisque son état à
l'instant t peut être différent de l'état à l'instant t'.
Il existe trois grandes
"familles" de bascules:
- la bascule monostable,
qui ne possède qu'un seul état stable et qui est surtout
utilisée pour créer une temporisation,
- la bascule bistable,
qui comporte deux états stables, et qui est par exemple utile
pour compter ou mémoriser des évènements,
- la bascule astable,
aussi appelée multivibrateur, qui ne
possède pas d'état stable: elle produit un signal
périodique et on peut l'assimiler à un oscillateur,
puisqu'elle passe d'elle-même d'un état à l'autre.
Tout ceci peut paraître
assez obscur, mais quelques exemples concrets vont vite
éclaircir les choses...

Bascules
monostables
La bascule monostable (one
shot, en anglais, c'est-à-dire "un seul coup")
est au repos dans son état stable, mais une action sur son
entrée peut la faire basculer, pendant une durée t, sur
son
état dit "quasi stable".
On peut réaliser un
monostable très facilement à l'aide de deux portes NON-OU
(NOR), une résistance et un condensateur, comme ci-dessous. Vous
aurez nul doute reconnu que la résistance et le condensateur
forment une cellule RC.

Analysons ce petit montage.
Au repos, l'entrée notée E1 est à l'état
bas ("0"
logique), les entrées E3 et E4 sont reliées à Vcc
via R, donc
forcées à "1"; nous pouvons écrire:
| E1 |
E2 |
S1 |
E3 |
E4 |
S2 |
| 0 |
0 |
1 |
1 |
1 |
0 |
Conclusion: E1 à
l'état
bas, S2 à l'état bas, il ne se passe rien, le montage est
on ne
peut plus stable...
Attention, c'est maintenant
que les choses se corsent!
Appliquons un bref signal
positif (niveau haut) sur l'entrée E1. On obtient illico un "0" logique sur S1. Simultanément, les entrées E3
et E4 passent à "0" et la sortie S2 bascule à
"1".
Dès cet instant, le
condensateur C commence de se charger à travers la
résistance
R, ce qui n'est pas un processus instantané, mais lié
à une
durée (la constante de temps, qui est le produit de R et C). Par
ailleurs, le niveau logique "1" présent sur la sortie
S2 est aussitôt "renvoyé" sur E2, d'où une sortie
S1
forcément à "0", quel que soit l'état de E1.
Pendant ce temps, le
condensateur continue de se charger... Lorsque la tension aux
bornes de C dépasse une certaine valeur (environ la
moitié de
Vcc), on a à nouveau des "1" sur E3 et E4, donc la
sortie S2 re-bascule à l'état bas. De plus, le niveau
logique
"0" présent sur S2 est transféré sur E2: on
retrouve
la situation initiale, stable.
Dans l'hypothèse où
E1
serait resté ou revenu à "1" pendant la
temporisation, un nouveau cycle recommence...
En résumé, ce
montage
fonctionne en monostable en vertu, d'une part de la liaison S2-E2
et, d'autre part, de la présence de la cellule RC.

Bascules
bistables
Nous ne nous attarderons pas
sur les bascules bistables, car il en existe plusieurs variantes
et nous en reparlerons plus loin. Essayons toutefois d'en
comprendre le principe général de fonctionnement.
Une bascule bistable (flip-flop,
en anglais), ou bascule RS pour RESET/SET, possède deux
états stables et complémentaires, qu'elle peut
conserver tant qu'elle demeure sous tension. La sortie change
d'état sous l'action d'un signal d'entrée, puis conserve
cet état. Elle est alors verrouillée (c'est
pourquoi
en anglais on la désigne aussi par le mot latch,
verrou).
Les entrées s'appellent SET
et RESET; les sorties sont le plus souvent notées Q et Q barre
(ou NOT Q): lorsque l'une est haute, l'autre est basse,
et vice-versa.
Voici un schéma "de
base" qui s'articule autour de deux portes NON-ET (NAND):

On remarque d'emblée le
couplage croisé de ces deux portes NON-ET, qui est
caractéristique de la bascule bistable. On observe
également
qu'une entrée de chacune des portes est forcée à
l'état haut
par une résistance (pull-up resistor, en anglais), mais
qu'un bouton-poussoir permet de relier cette entrée à la
masse
(0 V). Ces deux entrées sont désignées SET et
RESET. Quant aux
sorties Q et NOT-Q, elles sont ici reliées à des DEL de
visualisation.
Comment fonctionne cette
bascule?
Un appui sur l'entrée SET
provoque un état haut ("1" logique) sur la sortie Q,
donc un état bas ("0" logique) sur NOT-Q. La sortie Q
demeure haute (elle est verrouillée) tant que l'entrée
RESET
n'est pas activée. On peut donc dire qu'elle mémorise cet état. Un appui sur l'entrée RESET provoque un
état bas
("0" logique) sur la sortie Q, donc un état haut
("1" logique) sur NOT-Q.
Signalons toutefois une
restriction: il est interdit d'actionner simultanément SET et
RESET!
Résumons tout ceci dans une
table de vérité, où Q est l'état
antérieur de Q':
| Q |
SET |
RESET |
Q' |
| 0 |
0 |
0 |
0 |
| 0 |
0 |
1 |
0 |
| 0 |
1 |
0 |
1 |
| 0 |
1 |
1 |
interdit |
| 1 |
0 |
0 |
1 |
| 1 |
0 |
1 |
0 |
| 1 |
1 |
0 |
1 |
| 1 |
1 |
1 |
interdit |
On observera que la sortie Q
étant à "0", seule une action sur SET peut la faire
basculer sur "1"; une action sur RESET restera sans
effet. Inversement, la sortie Q étant à "1", seule
une action sur RESET peut la faire basculer sur "0";
une action sur SET restera sans effet.
La
bascule RS à entrée d'horloge (clocked
flip-flop)
Cette évolution de la
bascule RS est dotée d'une commande d'horloge (H, ou CLOCK),
qui autorise ou pas un changement d'état de la sortie,
indépendamment des niveaux présents sur les
entrées S et R.

Quand l'entrée CLOCK est
haute, la bascule se comporte comme une RS "normale".
En revanche, quand CLOCK est basse, les entrées SET et RESET
sont neutralisées; on dit que CLOCK est prioritaire (overriding,
en anglais). En ce cas, la bascule mémorise le dernier
état.
Cette bascule est dite synchrone,
du fait que les changements sur sa sortie sont contrôlés
par un
signal d'horloge. Le signal d'horloge permet donc d'exercer un
contrôle automatique sur la bascule. La mémorisation a
lieu à
un instant précis, et, de plus, cette validation élimine
tout
changement d'état parasite ou non désiré sur Set
ou Reset.
La
bascule D (Data) et la bascule JK (Joker/King)
La bascule D (pour data, données) et la bascule JK (joker/king, soit valet/roi) sont des variantes des
bascules bistables vues ci-dessus. Il en existe d'ailleurs
plusieurs versions (latch, edge-triggered...).
Très succintement, la
bascule type D transfère le niveau logique de l'entrée
DATA sur
la sortie Q (sur front montant ou descendant du signal d'horloge
CLOCK, s'il s'agit d'une bascule edge-triggered).
Quant à la bascule JK, on
résumera l'essentiel en disant que la sortie Q passe à 1
quand
l'entrée J est à 1; que la sortie Q passe à 0
quand l'entrée
K est à 1; que Q bascule sur front d'horloge si J et K sont
à
1; enfin, que Q ne change pas d'état si J et K sont à 0.
Nous en resterons là pour
le moment, car tout cela (y compris les bascules astables) sera
étudié plus loin...

Les
compteurs
Notre rapide tour d'horizon
des applications de la logique séquentielle serait très
incomplet si nous ne disions quelques mots des compteurs (counters, en anglais). Ces circuits sont en effet
construits à l'aide de bascules bistables (types D et JK,
notamment).
Un compteur est un circuit
qui, comme son nom l'indique de manière très explicite,
est
destiné à compter, c'est-à-dire à
dénombrer des évènements
qui se manifestent sous la forme d'impulsions. Ces impulsions
sont présentées sur l'entrée d'horloge (CLOCK) du
compteur et
celui-ci fournit le résultat du comptage sur ses sorties.
Le résultat peut-être
donné dans le système décimal (de 0 à 9),
en binaire, ou encore en code BCD.
Un compteur possède en
général plusieurs autres entrées ou sorties: une
entrée RAZ
de remise à zéro (parfois désignée CLR pour clear,
ou MR pour master reset, etc...), une entrée CE (clock
enable), pour autoriser ou interrompre le comptage, une
sortie carry out pour chaîner plusieurs compteurs
(montage en cascade)...
Ajoutons que les compteurs
peuvent parfois compter (sens croissant, UP) ou décompter (sens
décroissant, DOWN); cette possibilité est offerte par une
entrée UP/DOWN.

Quelques
petites remarques en guise de
conclusion
Les notions vues jusqu'à
présent peuvent sans doute paraître incomplètes et
disparates.
En effet, nous nous sommes volontairement limités au strict
"minimum vital", d'où un tri très sélectif...
Nous verrons plus loin, lors
de l'étude des composants, que ceux-ci remplissent de
manière
spécifique plusieurs fonctions essentielles en
électronique: amplification, commutation, comptage, division, mémorisation, etc...
L'amplification et la
commutation sont deux fonctions fondamentales assurées par le
transistor et certains circuits intégrés linéaires
(qui
"intègrent" des transistors).
Le comptage ou la
mémorisation d'évènements, la division de
fréquence, etc.,
sont des fonctions logiques, assurées par des circuits
intégrés appartenant à la grande famille des
circuits dits
"logiques".
Si vous avez assimilé ce
qui précède, l'étude des composants ne devrait pas
soulever de
grosse difficulté...

|