Logique booléenne


redbox.gif (41 octets)

 

Nous allons franchir un grand pas aujourd'hui car nous allons découvrir la logique digitale. Qu'on le veuille ou non aujourd'hui, la majorité de l'électronique que nous utilisons au quotidien est digitale et nos émetteurs récepteurs, ultimes refuges de l'analogique sont déjà contrôlés par des microprocesseurs et sont tous dotés de traitement numérique de la chaîne BF.

Nous parlions jusqu'à présent d'électronique analogique, nous allons parler désormais d'électronique numérique. Quelle est la différence ?

On pourrait prétendre que l'électronique digitale est contre nature puisque toutes les grandeurs physiques de notre monde sont analogiques. On entend par analogique qu'elles sont continues, elles varient dans le temps mais sans discontinuité. Pour prendre un exemple parlant, la température au cours d'une journée évolue graduellement. Quand le soleil se lève la température augmente, de manière continue, on ne passe pas de 12°C à 25°C en une µs. Dans l'électronique numérique, en revanche ceci ne sera pas possible, nous ne pourrons manipuler que des signaux qui prennent deux valeurs finies et bien connues. Ces valeurs symboliseront des états, comme l'état haut ou l'état bas, la porte ouverte ou fermée, le jour ou la nuit. Il y aura une forte discontinuité en ces deux valeurs.

Petit retour sur la numération :

Depuis votre plus tendre enfance vous êtes habitué à compter en base 10. Naturellement vous trouvez cela extraordinairement pratique et vous vous en accommodez très bien. Le principe est simple, on   dispose de 10 symboles (0,1,2,3,4,5,6,7,8,9), si l'on dépasse le 9, il suffit de rajouter un 1 devant le chiffre précédent, ceci nous indique une dizaine supplémentaire.
 
Le seul "petit" problème c'est que dans nos systèmes logiques basés sur l'électricité, nous ne disposons pas de 10 symboles mais de deux, la présence ou l'absence de tension que l'on symbolise par 1 ou 0.
Nous allons donc être contraints de changer notre principe de numérotation et de compter non plus en base 10 mais en base 2.

Principe de la numération binaire :

25 24 23 22 21 20
32 16 8 4 2 1
Vous avez dans le tableau ci-dessus la correspondance  entre les puissance de 2 et leurs valeurs en base 10. Le tableau s'arrête à 25, il n'y a naturellement pas de limite.
Supposons que nous ayons la valeur suivante en base 2: 101001, quelle est sa valeur en base 10 ?

25 24 23 22 21 20
1 0 1 0 0 1
32   8     1

Nous reprenons notre tableau et posons la valeur en binaire
Quand il y a une valeur "0", l'équivalent décimal est ignoré, quand on trouve une valeur "1", l'équivalent décimal est pris en compte. Il ne rester plus qu'à additionner les valeurs décimales. Dans notre exemple : 101001 en base 2 =   41 en base 10.

Conversion de décimal vers binaire :

Cette fois nous partons d'un nombre en base 10 que nous voulons convertir en binaire.
Nous allons utiliser la méthode des divisions successives.


Principe
  • On divise le nombre A en base 10 par 2
  • on fait en sorte que le reste soit 0 ou 1
  • on divise le résultat obtenu de nouveau par 2
  • et l'on poursuit ainsi jusqu'au moment ou le dernier reste = 0 ou 1

Exemple :
soit le nombre  78  en base 10 à transformer en base 2, on pose :
Le résultat est 1001110.

Notez bien qu'il faut prendre en compte le dernier résultat (en l'occurrence dans cet exemple  le résultat de la dernière division) et que pour afficher le résultat, on remonte de la dernière division vers la première.
à diviser par 2 Résultat Reste
78 2 39 0
39 2 19 1
19 2 9 1
9 2 4 1
4 2 2 0
2 2 1 0
       

Numération hexadécimale :

Incontournable, le code hexadécimal comporte 16 symbole qui sont
F E D C B A 9 8 7 6 5 4 3 2 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


Ci-dessus l'équivalence hexa/décimal. Nous sommes donc en base 16.
reprenons l'exemple de 78 que nous voulons convertir en base 16.

Le résultat est 4E
(14 = E)
à diviser par 16 Résultat Reste
78 16 4 14

La logique booléenne :

Mieux qu'une longue et fastidieuse explication, reportons nous à un exemple

boo1.gif (1406 octets)

Voici un schéma assez simple. Il représente un ampoule électrique alimentée par une batterie par l'intermédiaire d'un contact k.
Ce contact peut être soit ouvert, soit fermé, on dira qu'il prend pour valeur 0 (ouvert) ou 1 (fermé) .
Sans être devin, il est évident que si k=1 l'ampoule éclaire et si k = 0, l'ampoule ne brille pas. On peut en déduire un tableau qui va synthétiser cela et nous donner l'état de la sortie en fonction de l'état de l'entrée. Il s'appellera table de vérité.
k est la variable, 0 si ouvert et 1 si fermé
S sera l'état de l'ampoule, 1 si elle éclaire, 0 si elle n'éclaire pas.
C'est un exemple volontairement simpliste.
Variable k Sortie
0 0
1 1

Les opérations et opérateurs logiques:

L'électronique moderne met à notre disposition des composants permettant d'effectuer des opérations booléennes. Ces composants se présentent sous la forme de circuits intégrés contenant plusieurs opérateurs logiques. Nous verrons dans une autre section les particularités technologiques de ces composants, en attendant pensez que nous utilisons des circuits dits "TTL" alimentés en 5V continu.  Quand nous appliquons des tensions aux entrées, nous le faisons à travers des résistances, ceci n'est pas répété à chaque fois de manière à ne pas alourdir l'exposé.  Passons en revue les éléments de base.

Porte INVERSEUR

booinv.gif (209 octets)

Si vous appliquez une tension de 5 V à l'entrée "e", la sortie basculera à 0V. Inversement, mettez l'entrée à la masse, la sortie basculera à +5V.
e Sortie
0 1
1 0

Porte ET ou AND

booand.gif (200 octets)

Nous avons deux entrées, notées e1 et e2 et une seule sortie. Pour vous faciliter la compréhension, imaginez un schéma avec une lampe et 2 interrupteurs placés en série. Quand l'un d'eux ou tous les deux sont ouverts, la lampe est éteinte. Il faut que les 2 interrupteurs soient fermés pour provoquer l'éclairage.
e1 e2 Sortie
0 0 0
1 0 0
0 1 0
1 1 1

Porte OU ou OR

booor.gif (209 octets)

Nous avons deux entrées, notées e1 et e2 et une seule sortie.  Dans ce cas les interrupteurs sont en parallèle. La lampe est éteinte uniquement quand les 2 interrupteurs sont ouverts
e1 e2 Sortie
0 0 0
1 0 1
0 1 1
1 1 1

Porte NON ET ou NAND (une des plus employées)

boonand.gif (213 octets)

C'est le complément du ET. Remarquez qu'en faisant suivre une porte ET par une porte INVERSEUR,, vous obtenez une NAND. Ceci se manifeste au niveau du symbole, c'est une porte ET suivie d'un rond en sortie.
e1 e2 Sortie
0 0 1
1 0 1
0 1 1
1 1 0

Porte NON OU ou NOR

boonor.gif (216 octets)

Confrontez la porte OR et NOR. Même remarque que pour la porte ET et NAND, tant au point de vue électrique que symbolique.
e1 e2 Sortie
0 0 1
1 0 0
0 1 0
1 1 0

Porte OU EXCLUSIF ou XOR

booxor.gif (215 octets)

La condition ici est d'avoir un 1 présent sur une entrée et un 0 sur l'autre pour obtenir un 1 en sortie. Le cas ou les deux entrées sont à 1 est rejeté et la sortie est à 0
e1 e2 Sortie
0 0 0
1 0 1
0 1 1
1 1 0

Porte NON OU EXCLUSIF ou XNOR

booxnor.gif (226 octets)

C'est une XOR complémentée.
e1 e2 Sortie
0 0 1
1 0 0
0 1 0
1 1 1

Examinons ce que cela donne sur un oscilloscope quelque peu idéalisé. Nous allons brancher nos trois voies sur les deux entrées et la sortie ce qui nous permettra d'observer les variations d'état de la sortie en fonction de l'état des entrées et du temps.

boo2.gif (2216 octets)

Le résultat vous apparaît ici. Si vous comparez aux tables de vérités des portes décrites ci-dessus, vous trouverez que ce chronogramme correspond à une porte OU EXCLUSIF.

Quelques éléments supplémentaires :

Nous allons  voir maintenant quelques propriétés des opérations logiques et les fondements de l'algèbre de Boole, ceci uniquement pour votre culture personnelle.

Propriétés du ET - également appelé PRODUIT logique et notée "."
A . 0 0
A . 1 A
A . A A
A . /A 0
Propriétés du OU - également appelé SOMME logique et notée "+"
A + 0 A
A + 1 1
A + A A
A + /A 1

Quelques théorèmes de l'algèbre de Boole:

Notation :
vous trouverez souvent une variable surmontée d'une barre (ce que j'ai traduit par /A dans le texte), il s'agit du complément de A. Si l'on se réfère à des contacts de relais par exemple, A signifiera contact NO (normalement ouvert) donc contact Travail, /A sera un contatc NC (normalement fermé - C pour closed) donc un contact repos.
A./A = 0
A + /A = 1
A + AB = A

boo3.gif (1409 octets)

A + /AB = A + B

boo4.gif (1437 octets)

A (B + C) = AB + AC

boo5.gif (1413 octets)

A (A + B) = A +AB = A

boo6.gif (1404 octets)

A + BC = (A + B) (A + C)
Universalité de l'opérateur NAND :

La nature fait bien les choses, nous allons voir qu'il est possible de réaliser n'importe quel opérateur logiQue exclusivement à partir de portes NAND.

INVERSEUR

Il suffit de connecter ensemble les deux entrées.

boo8.gif (1001 octets)

ET (NAND)

Un Et est un NAND complémenté, il suffit d'ajouter un inverseur supplémentaire pour revenir à l'état initial

boo7.gif (1116 octets)

OU (OR)

Pour 1 ou 0 sur les deux entrées, la porte OR fournit le complément du NAND.

boo9.gif (1312 octets)

NOR

Il suffit d'inverser la sortie en utilisant un NAND monté en inverseur.

boo10.gif (1419 octets)

Vous devez vous demander ce que nous pouvons bien faire de ces composants...
Grâce à eux, nous allons réaliser les oscillateurs, des systèmes testant des entrées et des sorties, du comptage, des échantillonnages, des transmissions numériques etc.
Fin de ce chapitre introduisant l'électronique digitale. Dans le prochain, nous nous intéresserons aux familles technologiques.


Retour vers la page d'accueil du traité
Retour vers la page d'accueil du site F6CRP

Conception-réalisation : Denis Auquebon F6CRP