Bienvenue sur ElectroWeb

Ajouter ce site à vos

Electronique
Electronique (2/2)

 

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
conversion BIN -> DEC
conversion DEC -> BIN

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.

Retour

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.

Niveaux logiques

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:

Fonctions logiques OUI et NON

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.

Retour

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.

Fonction ET (AND) 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).
Fonction OU (OR) 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)
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)
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)
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)
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-EXCLUSIF (EXOR)
Fonction OU-EX (EXOR)
Entrée A Entrée B Sortie
0 0 0
0 1 1
1 0 1
1 1 0
fonction NON-OU EXCLUSIF (EXNOR)
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.

fonction ET fonction OU

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.

fonction NON-OU 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:

combinaison de portes logiques

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!

Retour

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...

Retour

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.

bascule monostable

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.

Retour

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):

bascule bistable et symbole

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.

bascule bistable à entrée d'horloge

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...

Retour

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.

Retour

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é...

Retour

 

La bannière publicitaire