Académique Documents
Professionnel Documents
Culture Documents
LOGIQUE D’AUTOMATISME
MANUEL DE FORMATION
Cours EXP-MN-SI080
Révision 0.1
Formation Exploitation
Instrumentation
Logique d’Automatisme
INSTRUMENTATION
LOGIQUE D’AUTOMATISME
SOMMAIRE
1. OBJECTIFS .....................................................................................................................6
2. LES SYSTEMES DE NUMERATION ET LES CODES....................................................7
2.1. REPRESENTATION DES NOMBRES ......................................................................8
2.2. CONVERSION BINAIRE - DECIMAL........................................................................9
2.3. CONVERSION DECIMAL - BINAIRE........................................................................9
2.3.1. Conversion de la partie entière..........................................................................9
2.3.2. Conversion de la partie fractionnaire ...............................................................10
2.4. SYSTEME DE NUMERATION OCTAL ...................................................................11
2.4.1. Conversion Octal – Décimal ............................................................................11
2.4.2. Conversion Décimal – Octal ............................................................................12
2.4.3. Conversion Octal – Binaire..............................................................................12
2.4.4. Conversion Binaire – Octal..............................................................................13
2.5. SYSTEME DE NUMERATION HEXADECIMAL......................................................14
2.5.1. Conversion Hexadécimal – Décimal................................................................15
2.5.2. Conversion Décimal – Hexadécimal................................................................15
2.5.3. Conversion Hexadécimal – Binaire .................................................................16
2.5.4. Conversion Binaire – Hexadécimal .................................................................16
2.5.5. Comptage Hexadécimal ..................................................................................17
2.5.6. Utilité du système Hexadécimal ......................................................................17
2.6. LE CODE BCD ........................................................................................................18
2.6.1. Comparaison entre code BCD et nombre binaire............................................19
2.7. LE CODE GRAY OU BINAIRE REFLECHI .............................................................20
2.8. RECAPITULATIF DES DIFFERENTS CODES .......................................................22
2.9. LES CODES ALPHANUMERIQUES.......................................................................23
2.9.1. Le code ASCII .................................................................................................23
3. ARITHMETIQUE BINAIRE ............................................................................................26
3.1. REPRESENTATION DES NOMBRES ENTIERS POSITIFS ..................................26
3.2. ADDITION BINAIRE................................................................................................26
3.3. REPRESENTATION DES NOMBRES ENTIERS SIGNES .....................................28
3.3.1. Notation en complément à 1............................................................................29
3.3.2. Notation en complément à 2............................................................................29
3.3.3. Étude de nombre binaires signés en complément à 2.....................................30
4. LA LOGIQUE COMBINATOIRE ....................................................................................32
4.1. DEFINITIONS .........................................................................................................32
4.1.1. Les états logiques ...........................................................................................32
4.1.2. Logique positive et logique négative ...............................................................32
4.1.3. Les variables logiques .....................................................................................33
4.1.4. Les fonctions logiques .....................................................................................33
4.2. FONCTIONS LOGIQUES A UNE ET DEUX VARIABLES ......................................35
4.2.1. Fonctions d’une variable..................................................................................35
4.2.2. Fonctions de deux variables............................................................................35
4.3. TABLE DE VERITE .................................................................................................36
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 2 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
1. OBJECTIFS
Le but de ce cours est de permettre à un futur instrumentiste de connaître bases de
logique en automatismes sur un site industriel à dominance pétrolière.
Avoir une connaissance sur la logique combinatoire qui est impérative pour la
programmation de PLC et DCS.
Le système décimal est aussi important en raison de son utilisation universelle pour
représenter les grandeurs du monde courant.
De ce fait, il faudra parfois convertir des valeurs décimales en valeurs binaires avant de
pouvoir les traiter dans un circuit numérique.
Exemple : Lorsque vous composez un nombre décimal sur votre calculatrice (ou sur le
clavier de votre ordinateur), les circuits internes convertissent ce nombre décimal en une
valeur binaire.
De même, il y aura des situations où des valeurs binaires données par un circuit
numérique devront être converties en valeurs décimales pour qu’on puisse les lire.
Nous connaissons les systèmes binaire et décimal, étudions maintenant deux autres
systèmes de numération très répandus dans les circuits numériques. Il s’agit des
systèmes de numération octale (base de 8) et hexadécimal (base de 16) qui servent
tous les deux au même but, soit celui de constituer un outil efficace pour représenter de
gros nombres binaires.
Exemple :
En base 16, nous avons besoin de 16 symboles, nous utiliserons les 10 chiffres
plus les lettres de A à F soit : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Remarque :
Il faut remarquer que le choix de symboles chiffres facilite grandement les choses, cette
facilité découlant de notre grande habitude du système décimal (10 symboles).
Le poids d’un chiffre dépend de sa position dans le nombre. Nous parlons de numération
de position soit :
Remarque : La formule ci-dessus donne N dans la base dont laquelle on effectue les
opérations (ici la base B). Pour nous, ce sera généralement la base de 10.
Un chiffre est nommé ‘bit’ (contraction de binary digit). Le bit associé au poids le plus
faible de la base est le LSB (Least Signification Bit), celui associé au poids le plus fort est
le MSB (Most Signification Bit)
1 1 0 1 1 Binaire
1.24 + 1.23 + 0.22 + 1.21 + 1.20
16 + 8 + 0 + 2 + 1 = 2710 Décimal
1 0 1 1 0 1 0 1 Binaire
1.27 + 0.26 + 1.25 + 1.24 + 0.23 + 1.22 + 0.21 + 1.20
128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 18110 Décimal
Vous remarquez que la méthode consiste à trouver les poids (les puissances de 2) pour
chaque position du nombre où il y a 1, puis à additionner le tout.
Remarquez aussi que le bit de poids le plus fort a un poids de 27 même s’il s’agit du
huitième bit ; il en est ainsi parce que le bit de poids le plus faible est le premier bit et que
son poids est toujours 20.
La méthode qui convient le mieux aux petits nombres est une démarche qui est basée
sur la numération de position en binaire. Le nombre décimal est simplement exprimé
comme une somme de puissances de 2, puis on inscrit des 1 et des 0 vis-à-vis des
positions binaires appropriées.
Voici un exemple :
4510 = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20 = 1 0 1 1 0 12
Notons qu’il y a un 0 vis-à-vis des positions 21 et 24, puisque ces positions ne sont pas
utilisées pour trouver la somme en question. Il s’agit d’une méthode par essais successifs
(tâtonnement).
Cette méthode convient mieux aux grands nombres décimaux ; il s’agit de répéter la
division par 2.
Cette méthode de conversion est illustrée ci-après pour le nombre 2510. Nous utilisons des
divisions répétitives par 2 du nombre décimal à convertir. A chaque division nous
obtenons un quotient et un reste.
Il est important de noter que le nombre binaire résultant s’obtient en écrivant le premier
reste à la position du bit de poids le plus faible (LSB) et le dernier reste à la position du bit
de poids le plus fort (MSB).
Exemple :
2510 = 1 1 0 0 12
Cette méthode de conversion est illustrée ci-après pour le nombre 0,37510. Nous utilisons
des multiplications successives par 2 du nombre décimal à convertir. A chaque
multiplication nous obtenons une partie entière et un reste.
Il est important de noter que le nombre binaire résultant s’obtient en écrivant le premier
chiffre à la position du bit de poids le plus fort (MSB).
Exemple :
Le système de numération octal a comme base huit, ce qui signifie qu’il prend huit
symboles possibles, soit 0, 1, 2, 3, 4, 5, 6 et 7. Ainsi, chaque chiffre dans un nombre octal
a une valeur comprise entre 0 et 7.
…. . ….
83 82 81 80 8-1 8-2 8-3
On convertit un nombre octal en son équivalent en multipliant chaque chiffre octal par son
poids positionnel.
Exemple :
. . .
3728 = 3 (8²) + 7 (81) + 2 (80)
. . .
= 3 64 + 7 8 + 2 1
= 25010
Il est possible de convertir un nombre décimal entier en son équivalent octal en employant
la méthode de la répétition de divisions, la même qu’on a utilisée pour la conversion
décimal binaire, mais cette fois ci en divisant par 8 plutôt que par 2.
Exemple :
266 / 8 = 33 Reste 2
33 / 8 = 4 Reste 1
4/8 = 0 Reste 4
26610 = 4128
Notez que le premier reste devient le chiffre de poids le plus faible du nombre octal et que
le dernier reste devient le chiffre de poids le plus fort.
Si on utilise une calculatrice pour faire les divisions, on aura comme résultat un nombre
avec une partie fractionnaire plutôt qu’un reste.
On calcule toutefois le reste en multipliant la fraction décimale par 8. Par exemple, avec la
calculatrice, la réponse de la division 266 / 8, est 33,25.
Le principal avantage du système de numération octal réside dans la facilité avec laquelle
il est possible de passer d’un nombre octal à un nombre binaire.
Vous voyez dans le tableau ci-dessous les huit symboles octaux exprimés en binaire.
Chiffre octal 0 1 2 3 4 5 6 7
Equivalent binaire 000 001 010 011 100 101 110 111
Au moyen de ce tableau, tout nombre octal est converti par la transformation de chacun
des chiffres. Par exemple, la conversion de 4728 va comme suit :
4 7 2
100 111 010
La conversion d’un nombre binaire en un nombre octal est tout simplement l’inverse de la
marche à suivre précédente.
Il suffit de faire avec le nombre binaire des groupes de trois bits en partant du chiffre de
poids le plus faible, puis de convertir ces triplets en partant du chiffre de poids le plus
faible, puis de convertir enfin ces triplets en leur équivalent octal (voir tableau 1 ‘Les
symboles octaux exprimés en binaire’).
Parfois, il arrivera que le nombre binaire ne forme pas un nombre juste de groupe de trois.
Dans ce cas, on pourra ajouter un ou deux zéros à gauche du bit de poids le plus fort pour
former le dernier triplet (si on lit de droite à gauche).
Notez l’ajout d’un zéro à gauche du bit de poids le plus fort pour obtenir un nombre juste
de triplets.
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 13 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
Le tableau ci-après expose les rapports entres les systèmes hexadécimal, décimal et
binaire. Vous remarquerez que chaque chiffre hexadécimal a comme équivalent binaire un
groupe de 4 bits.
Un nombre hexadécimal peut être converti en son équivalent décimal en exploitant le fait
qu’à chaque position d’un chiffre hexadécimal est attribué un poids ; dans ce cas-ci le
nombre 16 élevé à une certaine puissance.
Exemple :
Vous vous rappelez peut-être que pour la conversion décimale binaire nous avons eu
recours à la répétition de divisions par 2, que pour la conversion décimale octale, à la
répétition de division par 8.
Vous remarquerez comment les restes des divisions deviennent les chiffres du nombre
hexadécimal ; de plus, comment les restes supérieurs à 9 sont exprimés au moyen des
lettres de A à F.
Exemple :
423 / 16 = 26 Reste 7
26 / 16 = 1 Reste 10
1 / 16 = 0 Reste 1
42310 = 1A716
Exemple :
9F216 = 9 F 2
= 1001 1111 0010
= 1001111100102
Cette conversion est tout simplement l’inverse de la précédente. Le nombre binaire est
divisé en groupes de quatre bits, puis on substitue à chaque groupe son chiffre
hexadécimal équivalent. Au besoin, on ajoute des zéros à gauche pour obtenir un dernier
groupe de 4 bits.
Exemple :
Pour passer d’un nombre hexadécimal à son équivalent binaire, il faut connaître la suite
des nombres binaires de quatre bits (0000 à 1111) ainsi que le nombre correspondant en
hexadécimal.
Dès que cette correspondance devient un réflexe automatique, les conversions se font
rapidement sans calculs. C’est ce qui explique pourquoi le système hexadécimal est si
pratique pour représenter de grands nombres binaires.
Lorsque l’on compte selon le système hexadécimal, la valeur dans la position du nombre
croît par pas de 1 depuis 0 jusqu’à F.
Quand le chiffre dans une position est F, le chiffre suivant dans cette position est 0 et le
chiffre immédiatement à gauche est augmenté de 1. C’est ce qu’on voit dans les suites de
nombres hexadécimaux suivantes :
1ère suite de nombres : 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41, 42
2ème suite de nombres : 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700
La facilité avec laquelle se font les conversions entre les systèmes binaire et hexadécimal
explique pourquoi le système hexadécimal est devenu une façon abrégée d’exprimer de
grands nombres binaires. Dans un ordinateur, il n’est pas rare de retrouver des nombres
binaires jusqu’à 64 bits de longueur.
Ces nombres binaires, comme nous le verrons, ne sont pas toujours des valeurs
numériques, mais peuvent correspondre à un certain code représentant des
renseignements non numériques. Dans un ordinateur, un nombre binaire peut être :
Un vrai nombre,
Un code d’instruction,
Quand vous allez devoir travailler avec beaucoup de nombres binaires très longs, il est
plus judicieux et plus rapide d’écrire ces nombres en hexadécimal plutôt qu’en binaire.
Toutefois, ne perdez pas de vue que les circuits et les systèmes numériques fonctionnent
exclusivement en binaire et que c’est par pur souci de commodité pour les opérateurs
qu’on emploie la notation hexadécimale.
L’action de faire correspondre à des nombres, des lettres ou des mots un groupe spécial
de symboles s’appelle codage et le groupe de symboles un code.
Un des codes que vous connaissez peut être le mieux est le code Morse dans lequel on
utilise une série de points et de traits pour représenter les lettres de l’alphabet.
Nous avons vu que tout nombre décimal pouvait être converti en son équivalent binaire. Il
est possible de considérer le groupe de 0 et de 1 du nombre binaire comme un code qui
représente le nombre décimal.
Quand on fait correspondre à un nombre décimal son équivalent binaire, on dit qu’on fait
un codage binaire pur.
Les circuits numériques fonctionnent avec des nombres binaires exprimés sous une forme
ou un autre durant leurs opérations internes, malgré que le monde extérieur soit un monde
décimal. Cela implique qu’il faut effectuer fréquemment des conversions entre les
systèmes binaire et décimal.
Nous savons que pour les grands nombres, les conversions de ce genre peuvent être
longues et laborieuses. C’est la raison pour laquelle on utilise dans certaines situations un
codage des nombres décimaux qui combine certaines caractéristiques du système binaire
et du système décimal.
Le BCD s’appelle en français Code Décimal codé Binaire (CDB). Si on représente chaque
chiffre d’un nombre décimal par son équivalent binaire, on obtient le code dit décimal codé
binaire (abrégé dans le reste du texte par BCD).
Comme le plus élevé des chiffres décimaux est 9, il faut donc 4 bits pour coder les
chiffres.
Exemple :
Nous prenons le nombre décimal 874 et en changeant chaque chiffre pour son équivalent
binaire, cela nous donne :
8 7 4 Décimal
1000 0111 0100 BCD
De nouveau, on voit que chaque chiffre a été converti en son équivalent binaire pur.
Notez qu’on fait toujours correspondre 4 bits à chaque chiffre.
Le code BCD établit donc une correspondance entre chaque chiffre d’un nombre décimal
et un nombre binaire de 4 bits.
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 18 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
Évidemment, seuls les groupes binaires 0000 à 1001 sont utilisés. Le code BCD ne fait
pas usage des groupes 1010, 1011, 1100, 1101, 1110 et 1111.
Autrement dit, seuls les dix des 16 combinaisons des 4 bits sont utilisés. Si l’une des
combinaisons « inadmissibles » apparaît dans une machine utilisant le code BCD, c’est
généralement le signe qu’une erreur s’est produite.
Il importe de bien réaliser que le code BCD n’est pas un autre système de numération
comme les systèmes octal, décimal ou hexadécimal. En fait, ce code est le système
décimal dont on a converti les chiffres en leur équivalent binaire. En outre, il faut bien
comprendre qu’un nombre BCD n’est pas un nombre binaire pur. Quand on code selon le
système binaire pur, on prend le nombre décimal dans son intégralité et on le convertit en
binaire, sans le fractionner.
Quand on code en BCD, c’est chaque chiffre individuel qui est remplacé par son
équivalent binaire.
Exemple :
Nous prenons le nombre 137 et trouvons son nombre binaire pur puis son équivalent
BCD :
Le code BCD nécessite 12 bits pour représenter 137 tandis que le nombre binaire pur n’a
besoin que de 8 bits. Il faut plus de bits en BCD qu’en binaire pur pour représenter les
nombres décimaux de plus d’un chiffre.
Comme vous le savez, il en est ainsi parce que le code BCD n’utilise pas toutes les
combinaisons possibles de groupes de 4 bits ; c’est un code peu efficace.
Le principal avantage du code BCD provient de la facilité relative avec laquelle on passe
de ce code à un nombre décimal, et vice versa. Il ne faut retenir que les groupes de 4 bits
des chiffres 0 à 9.
C’est un avantage non négligeable du point de vue du matériel, puisque dans un système
numérique que sont des circuits logiques qui ont la charge d’effectuer ces conversions.
Il s’agit d’un code construit de telle manière que le passage d’une valeur à la suivante ne
nécessite que la modification d’un seul bit. On dit que deux valeurs ne diffèrent que d’un
seul bit sont adjacentes.
Binaire Binaire
Décimal
naturel Réfléchi
0000 0 0000
0001 1 0001
0010 2 0011
0011 3 0010
0100 4 0110
0101 5 0111
0110 6 0101
0111 7 0100
1000 8 1100
1001 9 1101
1010 10 1111
1011 11 1110
1100 12 1010
1101 13 1011
1110 14 1001
1111 15 1000
On constate dans le tableau ci-dessus que deux valeurs adjacentes ne sont pas
nécessairement côte à côte mais sont toujours symétriques par rapport à un des axes.
Mais aussi le code Gray sert souvent dans des situations ou d’autres codes, comme le
code binaire, peuvent produire des résultats erronés au moment des transitions entraînant
le changement de plusieurs bits dans le code.
Par exemple dans le code binaire naturel lorsque l’on passe de la valeur 0111 à la valeur
1000, les 4 bits changent en même temps. Or au niveau d’un dispositif réel cette situation
est quasi impossible. Il y aura donc plusieurs états transitoires qui vont être générés.
Exemple :
0111→1111→1011→1001→1000
Ces codes sont utilisés pour la réalisation de capteurs de position angulaire servant dans
des asservissements. Ces capteurs peuvent être composés d’une source lumineuse et
d’un disque sur lequel on a gravé un motif tel que des cellules photosensibles reproduisent
directement la combinaison désirée.
Binaire Binaire
Décimal Octal Hexadécimal
naturel Réfléchi
0000 00 00 0 0000
0001 01 01 1 0001
0010 02 02 2 0011
0011 03 03 3 0010
0100 04 04 4 0110
0101 05 05 5 0111
0110 06 06 6 0101
0111 07 07 7 0100
1000 08 10 8 1100
1001 09 11 9 1101
1010 10 12 A 1111
1011 11 13 B 1110
1100 12 14 C 1010
1101 13 15 D 1011
1110 14 16 E 1001
1111 15 17 F 1000
Un ordinateur ne serait pas d’une grande utilité s’il était capable de traiter l’information non
numérique. Je veux dire par là qu’un ordinateur doit reconnaître des codes correspondant
à des nombres, des lettres, des signes de ponctuation et des caractères spéciaux.
On peut conclure qu’un code alphanumérique reproduit tous les caractères et les diverses
fonctions que l’on retrouve sur un clavier standard d’un ordinateur.
Le code alphanumérique le plus connu et répandu est bien sûr le code ASCII (American
Standard Code for Information Interchange), on le retrouve dans la majorité des micro-
ordinateurs et des téléphones portables, etc.…
Le code ASCII (prononcé « aski ») standard est un code sur 7 bits, on peut donc
représenter grâce à lui 27 = 128 éléments codés. C’est amplement suffisant pour
reproduire toutes les lettres courantes d’un clavier et les fonctions de contrôle comme
(RETOUR) et (INTERLIGNE).
0..3 0 1 2 3 4 5 6 7
0 NUL DLE Space 0 Nat P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 ‘’ 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB ‘ 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K Nat k Nat
C FF FS , < L Nat l Nat
D CR GS - = M Nat m Nat
E SO RS . > N ^ n ~
F SI US / ? O _ o DEL
Un défaut majeur du code ASCII, pour une utilisation en Europe est l’absence de
caractères accentués. Certains constructeurs de matériel informatique ont modifié le code
ASCII, en remplaçant certains caractères peu utilisés par les caractères accentués.
IBM a préféré ajouter un huitième bit au code ASCII, les caractères accentués
correspondant alors à des codes supérieurs à 128 ; le code IBM, qui est utilisé dans toute
la gamme des ordinateurs PC et compatibles, permet également de représenter des petits
dessins, quelques lettres grecques et des caractères semi graphiques (barres horizontales
et verticales, …).
3. ARITHMETIQUE BINAIRE
Les diverses opérations arithmétiques qui interviennent dans les ordinateurs et les
calculatrices portent sur des nombres exprimés en notation binaire. En tant que telle,
l’arithmétique numérique peut être un sujet très complexe, particulièrement si nous
voulons comprendre toutes les méthodes de calcul et la théorie sur laquelle elle s’appuie.
Dans ce chapitre, nous allons concentrer nos efforts sur les principes de bases qui nous
permettent de comprendre comment les ordinateurs réalisent les opérations arithmétiques
de base. Nous traiterons uniquement la représentation des nombres entiers.
Les ordinateurs travaillent en base 2 (binaire). Nous devrons donc représenter nos
nombres décimaux en binaire.
Nous utiliserons pour les nombres entiers positifs leur représentation équivalente en
binaire. Les ordinateurs ayant des dimensions physiques finies, un nombre de bits
(variables logiques) maximum seront admissible en fonction de la machine, ce qui nous
limitera dans la grandeur des nombres.
Dans le cas d’une représentation sur 8 bits, nous pouvons représenter 256 valeurs soit les
nombres de 0 à 255.
De 0 à 2N-1.
376
+ 431
= 807
On commence par additionner les chiffres du rang de poids faible, ce qui donne 7. Les
chiffres du deuxième rang sont ensuite additionnés, ce qui donne une somme de 10, soit 0
plus un report de 1 sur le troisième rang. Pour le troisième rang, la somme des deux
chiffres plus le report de 1 donne 8.
Les mêmes règles s’appliquent à l’addition binaire. Cependant, il n’y a que quatre cas, qui
peuvent survenir lorsqu’on additionne deux chiffres binaires et cela quel que soit le rang.
0+0 = 0
1+0 = 1
1+1 = 10 = 0 + report de 1 sur le rang de gauche
1+1+1 = 11 = 1 + report de 1 sur le rang de gauche
Le dernier cas ne se produit que lorsque, pour un certain rang, on additionne deux 1 plus
un report de 1 provenant du rang de droite.
Il n’est pas nécessaire d’étudier des additions ayant plus de deux nombres binaires, parce
que dans tous les systèmes numériques les circuits qui additionnent ne traitent pas plus
de deux nombres à additionner, on trouve la somme des deux premiers puis on additionne
cette somme au troisième nombre, et ainsi de suite.
L’addition est l’opération arithmétique la plus importante dans les systèmes numériques.
Les opérations de soustraction, de multiplication et de division effectués par les
ordinateurs ne sont essentiellement que des variantes de l’opération d’addition.
Nous devons définir une convention pour représenter le signe en binaire. La plupart des
ordinateurs traient aussi bien les nombres négatifs que les nombres positifs.
La première solution consiste à ajouter un bit au nombre. Celui-ci est appelé bit de signe.
La convention la plus simple consiste à attribuer au signe positif l’état 0 et au signe négatif
l’état 1. Nous appelons cette convention comme étant une représentation signe grandeur.
On utilise le bit de signe pour indiquer si le nombre binaire mémorisé est positif ou négatif.
Exemple :
A6 A5 A4 A3 A2 A1 A0
0 1 1 0 1 0 0 = + 5210
Bit de signe Grandeur = 5210
A6 A5 A4 A3 A2 A1 A0
1 1 1 0 1 0 0 = - 5210
Bit de signe Grandeur = 5210
Les nombres reproduits sur l’exemple ci-dessus sont formés d’un signe de bit et de six bits
de grandeurs. Ces derniers correspondent à l’équivalent binaire exact de la valeur
décimale présentée.
Bien que la notation signe grandeur soit directe, les ordinateurs et les calculatrices n’y ont
généralement pas recours, en raison de la complexité pour réaliser des opérations
arithmétiques avec cette notation. On utilise plutôt dans ces machines, pour représenter
les nombres binaires signés, la notation en complément à 2.
Exemple :
Le complément à 1 d’un nombre est donc l’inversion de chaque bit à l’aide de la fonction
logique NON.
Le complément à 2 est très largement utilisé car c’est la représentation naturelle des
nombres négatifs. Si nous faisons la soustraction 2-3 nous obtenons immédiatement -1
représenté en complément à 2.
Nous allons voir que ‘1111’ est la représentation du nombre -1 sur 4 bits.
Exemple :
Le complément à 2 d’un nombre est donc l’inversion de chaque bit à l’aide de la fonction
logique NON, puis l’addition de 1.
Voici la valeur du nombre -1 sur 4 bits. Nous commençons par exprimer le nombre 1 sur 4
bits puis nous appliquons la règle de calcul du complément à 2.
Si le nombre est positif, sa grandeur est la grandeur binaire exacte et son bit de signe est
un 0 devant le bit de poids le plus fort. C’est ce qu’on peut voir sur l’exemple cité
précédemment pour + 4510.
Exemple :
0 1 0 1 1 0 1 = +4510
Bit de signe Grandeur exacte
1 0 1 0 0 1 1 = -4510
Bit de signe Complément à 2
La notation en complément à 2 est employée pour exprimer les nombres binaires signés
parce que, comme nous le verrons, on parvient grâce à elle à soustraire en effectuant en
réalité une addition.
Cela est non négligeable dans le cas des ordinateurs, puisque avec les mêmes circuits,
nous parvenons à soustraire et à additionner.
Dans de nombreuses situations, le nombre de bits est fixé par la longueur des registres
qui contiennent les nombres binaires, d’où la nécessité d’ajouter des 0 pour avoir le
nombre de bits requis.
Exemple :
+2 = 00010
11101 Complément à 1
+ 1 Ajouter 1
= 11110 Le complément à 2 du chiffre -2 sur 5 bits
4. LA LOGIQUE COMBINATOIRE
4.1. DEFINITIONS
Les variables booléennes servent souvent à représenter un état d’un système. Nous
pouvons dire qu’une lampe est soit allumée, soit éteinte.
Nous traduirons cela en indiquant que la lampe est soit à 1 (pour allumée) ou soit à 0
(pour éteinte). Ceci est la même chose avec un interrupteur qui est soit ouvert (0) ou soit
fermé (1).
Ainsi les valeurs booléennes 0 et 1 ne représentent pas des nombres réels mais plutôt
l’état logique d’une variable. Dans le domaine de la logique numérique, on utilise d’autres
expressions qui sont synonymes de 0 et 1.
Faux Vrai
Arrêt Marche
Bas Haut
Non Oui
Ouvert Fermé
Par convention lorsque le niveau actif 1 est supérieur au niveau 0 on dit qu’on utilise la
convention logique positive, dans le cas contraire, on dit que l’on utilise la convention
logique négative.
Exemple :
Soit une variable binaire représentée par une tension pouvant prendre deux valeurs (0V,
+5V) il est possible de définir les niveaux logique comme l’indique les tableaux ci-dessous.
0V Bas 0
+5 V Haut 1
0V Haut 1
+5 V Bas 0
Une variable logique est une grandeur qui ne peut prendre que les deux états logiques. Ils
s’excluent mutuellement.
Une fonction logique est une variable logique dont la valeur dépend d’autres variables.
L’algèbre de Boole est un outil qui permet d’exprimer les effets qu’ont les divers circuits
numériques sur les variables logiques et de les manipuler en vue de déterminer la
meilleure façon de matérialiser une certaine fonction logique.
Parce qu’il n’y a que deux valeurs possibles, l’algèbre booléenne ne se manipule plus
aisément que l’algèbre ordinaire.
Le fait que les variables d’entrées aient un nombre de valeurs possibles fini implique
l’existence d’un nombre fini de fonctions pour un nombre donné de variables.
Nous allons commencer par étudier les fonctions logiques possibles avec une variable
puis avec deux variables.
L’étude de ces deux cas nous permet de découvrir tous les opérateurs de base de
l’algèbre de Boole donc des systèmes logiques.
Une variable, comme nous avons vu tout à l’heure, à deux états logiques (0 et 1), nous
obtenons ainsi 4 fonctions possibles avec cette unique variable (22).
Dans le cas de deux variables, nous avons 4 combinaisons possibles. Nous obtenons
ainsi 16 fonctions possibles avec ces deux variables (24).
De nombreux circuits logiques possèdent plusieurs entrées mais seulement une sortie.
Une table de vérité nous fait connaître la réaction d’un circuit logique (sa valeur de sortie)
aux diverses combinaisons de niveaux logiques appliqués aux entrées.
B A X
0 0 ?
0 1 ?
1 0 ?
1 1 ?
C B A X
0 0 0 ?
0 0 1 ?
0 1 0 ?
0 1 1 ?
1 0 0 ?
1 0 1 ?
1 1 0 ?
1 1 1 ?
D C B A X
0 0 0 0 ?
0 0 0 1 ?
0 0 1 0 ?
0 0 1 1 ?
0 1 0 0 ?
0 1 0 1 ?
0 1 1 0 ?
0 1 1 1 ?
1 0 0 0 ?
1 0 0 1 ?
1 0 1 0 ?
1 0 1 1 ?
1 1 0 0 ?
1 1 0 1 ?
1 1 1 0 ?
1 1 1 1 ?
Dans chacune de ces tables, toutes les combinaisons possibles de 0 et de 1 pour les
entrées (D, C, B, A) apparaissent à gauche, tandis que le niveau logique résultant de la
sortie X, est donné à droite. Pour le moment, il n’y a que des « ? » dans ces colonnes, car
les valeurs de sortie sont différentes pour chaque circuit.
Remarque :
Notez que dans la table de vérité à deux entrées il y a quatre lignes, que dans celle à trois
entrées il y a huit lignes et que dans la table à quatre entrées, il y en a seize.
Vous avez bien compris que pour une table de N entrées, il y a 2N lignes. De plus, vous
remarquez sans doute que la succession des combinaisons correspond à la suite du
comptage binaire, de sorte que la détermination de toutes les combinaisons est directe et
qu’on ne peut pas en oublier.
X=A+B
Dans cette équation, le signe + indique un OU logique. La fonction de sortie est active si A
OU B est actif. Le fonctionnement de cet opérateur est défini par la table de vérité
suivante :
A B X=A+B
0 0 0
0 1 1
1 0 1
1 1 1
Une porte OU à deux entrées est un circuit dont la sortie est active si l’une ou l’autre des
entrées est actives.
De manière générale, la fonction de sortie d’une porte OU à n entrées est active (niveau 1)
si une seule entrée est active (niveau logique 1). La fonction de sortie est inactive (niveau
logique 0) si toutes les entrées sont inactives (niveau logique 0).
Dans cette expression, le signe (.) signifie l’opération booléenne ET, dont les règles
d’opération sont données dans la table de vérité ci-dessous :
A B X=A.B
0 0 0
0 1 0
1 0 0
1 1 1
D’après cette table, vous pouvez facilement déduire que la fonction logique ET correspond
à la multiplication en binaire. Quand A ou B est 0, le produit est nul ; quand A et B sont à
1, leur produit est 1. Il nous est donc possible d’affirmer que dans l’opération ET la
réponse est 1 si seulement si toutes les entrées sont à 1, et qu’elle est 0 dans tous les
autres cas.
La figure ci-dessus nous fait voir la porte ET à deux entrées. La sortie de cette porte est
égal au ET logique des deux entrées, c'est-à-dire X = A. B
Exprimée autrement, la porte ET est un circuit logique qui active sa sortie (niveau logique
1) seulement quand lorsque toutes ses entrées sont actives (1). Dans tous les autres cas,
la sortie de la porte ET est inactive (niveau logique 0).
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 39 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
De manière générale, la fonction de sortie d’une porte ET à n entrées est active (niveau
logique 1) uniquement lorsque toutes les entrées sont actives (niveau logique 1).
La sortie d’une porte ET est inactive (niveau logique 0) si une seule des entrées est
inactive (niveau logique 0).
X=A
!A = A
A X=A
0 1
1 0
On peut voir sur la figure suivante le symbole d’un circuit NON, appelé plus couramment
inverseur. Un tel circuit n’a toujours qu’une entrée, et sa sortie prend le niveau logique
opposé du niveau logique de l’entrée.
En technique numérique, on retrouve très souvent deux autres types de portes logiques :
la porte NON-OU (NOR) et la porte NON-ET (NAND).
On peut voir sur la figure ci-dessus le symbole de la porte NON OU à deux entrées. Vous
constaterez que c’est le symbole d’une porte OU sauf qu’il y a un petit rond à la pointe. Ce
petit rond correspond à une opération d’inversion. Ainsi, la porte NON-OU a un
fonctionnement analogue à une porte OU suivie d’un INVERSEUR.
La table de vérité que nous allons voir ci après nous apprend que la sortie d’une porte
NON-OU est exactement l’inverse de celle d’une porte OU pour toutes les combinaisons
des entrées.
A B X = A+ B
0 0 1
0 1 0
1 0 0
1 1 0
De manière générale, la fonction de sortie d’une porte NON-OU à n entrées est active
(niveau logique 1) uniquement lorsque toutes les entrées sont inactives (niveau logique
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 41 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
0). La sortie d’une porte NON-OU est inactive (niveau logique 0) si une seule des entrées
est active (niveau logique 1).
Par le théorème de DE MORGAN, nous pouvons montrer que la porte NOR est équivalent
à:
W = A+ B = A×B
Vous voyez que c’est le symbole de la porte ET sauf qu’il y a un petit rond à la pointe.
Encore une fois, ce petit rond correspond à une opération d’inversion. Ainsi, la porte NON-
ET a un fonctionnement analogue à une porte ET suivie d’un INVERSEUR.
A B X = A× B
0 0 1
0 1 1
1 0 1
1 1 0
La table de vérité montrée ci-dessus nous apprend que la sortie d’une porte NON-ET est
exactement l’inverse de celle d’une porte ET pour toutes les combinaisons des entrées.
De manière générale, la fonction de sortie d’une porte NON-ET à n entrées est active
(niveau logique 1) si une seule des entrées est inactive (niveau logique 0). La sortie d’une
porte NON-ET est inactive (niveau logique 0) uniquement lorsque toutes les entrées sont
actives (niveau logique 1).
Par le théorème de DE MORGAN nous pouvons montrer que la porte NAND est
équivalent à :
X = A× B = A + B
Deux circuits logiques spéciaux qui interviennent souvent dans les systèmes numériques :
le circuit OU exclusif et le circuit NON-OU exclusif.
La sortie d’une porte OU exclusif est au niveau haut seulement lorsque les deux entrées
sont à des niveaux logiques différents. Une porte OU exclusif n’a toujours que deux
entrées. On veut dire par là qu’il n’existe pas de portes OU exclusif à trois ou quatre
entrées.
A B X = A⊕ B
0 0 0
0 1 1
1 0 1
1 1 0
A B X = A⊕ B
0 0 1
0 1 0
1 0 0
1 1 1
De manière générale, la fonction de sortie d’une porte NON-OU exclusive indique l’égalité
entre les deux signaux d’entrées. La sortie est active (niveau logique 1) si l’état logique
des entrées est identique. Le fonctionnement de cette porte correspond à un comparateur
à un bit.
L’opérateur NON-OU exclusif a une propriété particulière. L’inversion de sortie peut être
reportée sur l’une ou l’autre des entrées, soit :
A⊕ B = A ⊕ B = A⊕ B
es
OUI (YES)
00
s=e
11
NON (NO) es
01
s=e 10
abs
ET (AND)
000
010
s=a.b
100
111
abs
OU (OR)
000
011
s=a+b
101
111
abs
NON ET (NAND)
001
011
s = a×b 101
110
abs
NON OU (NOR)
001
010
s = a+b 100
110
abs
OU exclusif (EXOR)
000
011
s = a⊕b
101
110
abs
NON OU exclusif
(EXNOR) 001
010
s = a⊕b 100
111
Tout circuit logique, quelle que soit sa complexité, peut être décrit au moyens des
opérations booléennes déjà décrites parce que la porte ET, la porte OU et la porte NON
sont les circuits constitutifs élémentaires des systèmes numériques.
Exemple :
Figure 8: Exemple de constitution d’un circuit avec une porte ET et une porte OU
Cette combinaison est une entrée de porte OU dont l’autre entrée est le signal C.
Cette dernière porte a pour effet d’additionner logiquement ses entrées, ce qui donne
comme expression de sortie : X = A. B + C (Cette dernière équation aurait bien pu s’écrire
aussi X = C + A. B, puisque l’ordre des termes dans une fonction OU n’a pas
d’importance).
Il est convenu que dans une expression contenant des opérateurs ET et OU, ce sont les
opérateurs ET qui sont appliqués en premier, sauf s’il y a des parenthèses ; dans ce cas, il
faut évaluer toute chose avant l’expression entre parenthèses.
Cette règle déterminant l’ordre des opérations est la même que celle en vigueur dans
l’algèbre courante.
Figure 9: Exemple de circuit logique dont l’expression de la sortie est entre parenthèses
Vous remarquez que l’emploi des parenthèses permettent d’indiquer que l’opérateur OU
s’applique d’abord sur A et B.
Sans les parenthèses, notre interprétation serait erronée, car X = A + B . C signifie que A
est réuni dans une porte OU avec le produit B .C
Chaque fois qu’un INVERSEUR se trouve dans le schéma d’un circuit logique, son
équation est simplement l’expression de son entrée surmontée d’un trait.
Exemples :
Sur cet exemple, l’entrée A passe par un INVERSEUR dont la sortie est A . Cette sortie
de l’inverseur est réunie dans une porte OU avec B, de sorte que l’équation de sortie de
cette porte est égale à A + B
Sur cette exemple, la sortie de la porte OU égale A + B, sortie qui vient alimenter un
INVERSEUR. La sortie X de ce dernier devient donc ( A + B) , puisque toute l’expression
est inversée.
Si l’opération d’un circuit est définie par une expression booléenne, il est possible de
tracer directement un diagramme logique à partir de cette expression.
Par exemple, si on a besoin d’un circuit tel que X = ABC, on sait immédiatement qu’il nous
faut une porte ET à trois entrées. Le raisonnement qui nous a servi pour ces cas simples
peut être étendu à des circuits plus complexes.
Exemple :
Chaque entrée de la porte OU est un produit logique, ce qu’il signifie qu’il a fallu 3 portes
ET alimentées par les entrées appropriées pour produire ces termes.
Nous pouvons donc en déduire facilement le circuit logique que nous devons réaliser.
Figure 12: Exemple de construction d’un circuit logique à partir d’une expression
booléenne
Nous avons vu comment l’algèbre de Boole peut servir à analyser un circuit logique et à
exprimer ce dernier sous forme mathématique. Nous allons commencer par les deux
postulats qui régissent l’algèbre de BOOLE.
5.9.1. Postulats
A× A = 0
Ces deux postulats traduisent le fait que l’inverse d’une variable ne peut jamais prendre la
même valeur que la variable.
Nous apprendrons ultérieurement qu’un manquement à ces postulats est possible lors de
régimes transitoires dans les circuits.
Le théorème de Boole est une règle qui permet de simplifier les expressions logiques et,
par la même occasion, les circuits logiques.
Selon les théorèmes suivants, X est une variable logique prenant soit la valeur 0, soit la
valeur 1 :
X ×0 = 0
X ×1 = 1
X×X = X
X×X =0
X +0 = X
X +1 = X
X+X =X
X + X =1
Avant de vous présenter les autres théorèmes de Boole, nous tenons à mentionner que
dans les théorèmes ci-dessus, la variable X peut correspondre à une expression
renfermant plus d’une variable.
Par exemple, si nous avons AB( AB), nous pouvons affirmer, en posant X = AB et d’après
le théorème, que l’équation est égale à 0.
Théorème n°1 : X + Y = Y + X
Théorème n°2 : X . Y = Y . X
Théorème n°3 : X + ( Y + Z ) = (X + Y) + Z = X + Y + Z
Théorème n°5 : X ( Y + Z ) = XY + XZ
Théorème n°6 : ( W + X ) . (Y + Z ) = WY + XY + WZ + XZ
Théorème n°7 : X + XY = X
Théorème n°8 : X + XY = X + Y
Les théorèmes 5 et 6 font voir que la multiplication logique est distributive par rapport à
l’addition logique, c'est-à-dire que l’on veut développer une expression en la multipliant
terme à terme, tout comme dans l’algèbre ordinaire. Ce théorème démontre également
que l’on peut mettre en facteur une expression. On veut dire par là que si nous avons une
somme de termes, chacun renfermant une variable commune, il est possible de mettre
cette variable en facteur, comme on le fait en algèbre ordinaire.
Tous ces théorèmes sont d’une grande utilité pour simplifier une expression logique, c'est-
à-dire pour obtenir une expression comptant moins de termes. L’expression simplifiée
Deux des plus importants théorèmes de l’algèbre booléenne nous ont été légué par le
mathématicien De Morgan. Les théorèmes de De Morgan se révèlent d’une grande utilité
pour simplifier des expressions comprenant des sommes ou des produits de variables
complémentés.
1er théorème : ( X + Y ) = X × Y
2ème théorème : ( X × Y ) = X + Y
De même, le 2ème théorème stipule que le produit logique complémenté de deux variables
est égal à la somme logique des compléments de ces deux variables est égal à la somme
logique des compléments de ces deux variables
Bien que ces théorèmes aient été formulés pour les variables simples X et Y, ils
demeurent aussi vrais pour les cas où X et Y sont des expressions comprenant plusieurs
variables.
( AB + C ) = ( AB ) × C
Le résultat trouvé peut être simplifié une autre fois, car on y retrouve encore un produit
logique complémenté. En vertu du 2ème théorème, il vient :
AB × C = ( A + B) × C
AB × C = AC + BC
On peut qualifier ces circuits logiques de combinatoires du fait qu’à tout moment le niveau
logique recueilli en sortie ne dépend que de la combinaison des niveaux logiques
appliqués aux entrées.
Dans ce chapitre, nous allons donc voir les circuits combinatoires. D’abord nous poussons
plus en avant la simplification (minimisation) des circuits. Pour cela, nous utiliserons deux
méthodes :
Les méthodes de simplification et de conception des circuits logiques que nous allons voir
exigent que l’on exprime les équations logiques sous la forme d’une somme de produits,
dont voici quelques exemples :
ABC + ABC
AB + A BC + C D + D
A B + CD + EF + GK
Chacune des ces trois expressions d’une somme de produits est formée d’au moins deux
termes d’un produit logique (terme ET) mis en relation avec l’opérateur OU.
Chaque terme ET comprend une ou plusieurs variables exprimées sous sa forme normale
ou sa forme complémentée.
Par exemple, dans la somme de produits ABC + A BC , le premier produit logique est
constitué des variables A,B et C non complémentées, tandis que le second produit
comprend la variable B non complémentées et les variables A et C complémentées. Notez
que dans une somme de produits, le signe de complémentation ne peut pas surmonter
plus d’une variable d’un terme (par ex. on ne peut pas voir ABC ).
Dès que l’on dispose de l’expression d’un circuit logique, il peut être possible de minimiser
pour obtenir une équation comptant moins de termes ou moins de variables par terme.
Cette nouvelle équation peut alors servir de modèle pour construire un circuit entièrement
équivalent au circuit original mais qui requiert moins de portes.
Nous avons simplifié le premier circuit, étant donné qu’ils produisent les mêmes décisions
logiques. Il va sans dire que le circuit le plus simple est préférable puisqu’il compte moins
de portes ; il est aussi moins encombrant et moins coûteux à produire.
Dans les chapitres suivants, nous verrons deux façons différentes de simplifier des circuits
logiques. Une première façon est fondée sur l’application des théorèmes de l’algèbre
booléenne ; cette façon, comme nous le verrons, dépend énormément de l’instinct et de
l’expérience.
L’autre façon (les tables de Karnaugh), au contraire, suit une démarche systématique,
semblable à une recette de cuisine.
Les théorèmes de l’algèbre booléen étudiés au chapitre précédent peuvent nous être d’un
grand secours pour simplifier l’expression d’un circuit logique. Malheureusement, il n’est
pas toujours facile de savoir quels théorèmes il faut invoquer pour obtenir le résultat
minimal. D’ailleurs, rien ne nous dit que l’expression simplifiée est la forme minimale et
qu’il n’y a pas d’autres simplifications possibles.
Exemple :
Z = ABC + AB ( A C )
Z = ABC + AB A + AB C : Distribution du ET
Z = ABC + AB + AB C
Z = AC (1) + AB
Z = AC + AB
Fréquemment, le cahier des charges d’un circuit logique à concevoir est donné sous forme
textuel (exemple : une analyse fonctionnelle). Cette forme n’est pas utilisable pour
déterminer l’équation d’un circuit. La table de vérité permet de spécifier le fonctionnement
du circuit.
Cette première phrase correspond à la conception du circuit. Les étapes suivantes nous
permettrons de déterminer le schéma logique. Il s’agit alors des étapes de réinitialisation.
La première étape de conception sera vue lors des exercices. Nous allons donné ici toutes
les étapes de réalisations permettant de passer de la table de vérité au schéma logique du
circuit.
La table de vérité spécifie pour chaque combinaison des entrées le niveau logique de la
sortie. Nous pouvons ensuite déterminer l’expression booléenne du circuit à partir de cette
table de vérité.
Voici la procédure générale qui aboutit à l’expression de la sortie à partir d’une table de
vérité :
Pour chaque cas de la table qui donne 1 en sortie, on écrit le produit logique (terme
ET) qui lui correspond.
On doit retrouver toutes les variables d’entrée dans chaque terme ET soit sous
forme directe soit sous forme complémentée. Dans un cas particulier, si la variable
est 0, alors son symbole est complémenté dans le terme ET correspondant,
La table de vérité nous permet d’établir l’expression de la sortie sous la forme d’une
somme de produits. Dès lors il est possible de construire le circuit au moyen de portes ET,
OU et NON. Il faut une porte ET pour chaque produit logique et une porte OU dont les
entrées sont les sorties des portes ET.
Exemple :
N° C B A X Equation minterme
0 0 0 0 0
1 0 0 1 0
2 0 1 0 1 CB A
3 0 1 1 1 C BA
4 1 0 0 0
5 1 0 1 0
6 1 1 0 0
7 1 1 1 1 CBA
On voit dans cet exemple qu’il y a trois combinaisons qui produisent une valeur 1 pour la
sortie X. Les termes ET pour chacun de ces combinaisons figurent à droite de la table de
vérité. Nous parlerons de l’équation d’un minterme.
X = C BA + C BA + CBA
Nous pouvons écrire cette expression logique sous une forme compacte en indiquant
uniquement le numéro des mintermes à 1, soit :
X = ∑ 2,3,7
Nous avons maintenant une équation logique non simplifiée. La première solution est
d’utiliser l’algèbre de Boole pour rechercher l’expression la plus simple. Cela nécessite
beaucoup d’expérience et de pratique. Il existe une méthode graphique efficace : le
tableau de Karnaugh.
Bien que les tables de Karnaugh soient applicables à des problèmes ayant un nombre
quelconque de variables d’entrées, en pratique, ils ne sont plus d’une grande utilité quand
le nombre de variable est supérieur à 6.
En plus, dans cette section de cours, nous n’allons pas aborder de problèmes ayant plus
de quatre entrées.
Les cas de circuits ayant cinq et six entrées sont des problèmes d’envergure. Au-delà, il
est préférable de résoudre les tables de Karnaugh avec un programme informatique.
La table de Karnaugh, tout comme la table de vérité, un instrument qui met en évidence la
correspondance entre les entrées logiques et la sortie recherchée.
La figure ci-dessous nous fait voir trois exemples de tableau de Karnaugh pour deux, trois
et quatre variables, ainsi que les tables de vérité correspondantes.
B A X
0 0 1 BA B
0 1 0 A 0 1
1 0 0 0 1 0
1 1 1 BA 1 0 1
Figure 14: Exemple d’une table de vérité avec son tableau de Karnaugh associé
La table de vérité donne la valeur de la sortie X (figure de gauche), par contre, la tbale de
Karnaugh organise l’information de manière différente. A chaque ligne de la table de vérité
correspond une cellule de la table de Karnaugh.
Mais les cellules dans la table de Karnaugh ne sont pas dans le même ordre.
B A X
0 0 1 BA B
0 1 0 A 0 1
1 0 0 0 1 0
1 1 1 BA 1 0 1
Étant donné que pour cette ligne X vaut 1, on inscrit 1 dans cette cellule. De même ; on
associe à la ligne B A = 1 1 la cellule qui a les coordonnées B = 1 et A = 1. Comme X vaut
1 dans ce cas on retrouve 1 dans celle-ci.
La construction de la table de Karnaugh garanti qu’il n’y a qu’une seule variable qui
change entre deux cases voisines.
Exemple :
Dans la table ci-dessous, nous allons voir le cas de la case située au croisement de C B =
1 1 et A = 0 qui correspond au minterme = CBA
C B A X CB
0 0 0 1 CBA A 00 01 11 10
0 0 1 1 C BA 0 CBA CB A CB A CBA
0 1 0 1 CB A 1 C BA C BA CBA C BA
0 1 1 0
1 0 0 0 CB
1 0 1 0 A 00 01 11 10
1 1 0 1 CB A 0 1 1 1 0
1 1 1 0 1 1 0 0 0
Nous voyons donc une autre propriété du tableau de Karnaugh, chaque case à
autant de cases adjacentes qu’il y a de variables.
6.5.2. Réunion
Il est possible de simplifier l’expression de sortie X en combinant selon des règles précises
les cellules de la table de Karnaugh qui contiennent des 1. On donne à ce processus de
combinaison le nom de réunion.
CB
A 00 01 11 10
0 0 1 0 0
1 0 1 0 0
Ces deux termes peuvent être réunis (combinés), ce qui a pour résultat d’éliminer la
variable A.
D’où l’équation : C BA + C BA = C B × ( A + A) = C B × 1 = C B
DC
BA 00 01 11 10
00 0 0 0 0 CB
01 0 0 0 0 A 00 01 11 10
11 1 1 1 1 0 0 0 1 1
10 0 0 0 0 1 0 0 1 1
a) X = BA b) X = C
DC DC
BA 00 01 11 10 BA 00 01 11 10
00 0 0 0 0 00 1 0 0 1
01 0 1 1 0 01 0 0 0 0
11 0 1 1 0 11 0 0 0 0
10 0 0 0 0 10 1 0 0 1
c) X = CA d) X = C A
Il peut arriver qu’une table de Karnaugh contienne quatre 1 qui soient adjacents. La figure
ci-dessus regroupe plusieurs exemples de quartets.
En a), les quatre 1 sont voisins horizontalement, alors qu’en b), il le sont verticalement.
La table en c) renferme quatre 1 arrangés en carré qui sont considérés adjacents les uns
aux autres. Les quatre 1 de d) sont aussi adjacents, parce que, comme nous l’avons déjà
dit, dans une table de Karnaugh les lignes du haut et du bas et les colonnes de droite et
gauche considérées comme adjacentes.
Quand on réunit huit 1 adjacents, on dit qu’on réunit un octet de 1 adjacents. On peut voir
sur la figure ci-dessous deux exemples de réunion d’octets. La réunion d’un octet dans
une table de Karnaugh à quatre variables donne lieu à l’élimination de trois variables.
DC DC
BA 00 01 11 10 BA 00 01 11 10
00 0 0 0 0 00 1 0 0 1
01 1 1 1 1 01 1 0 0 1
11 1 1 1 1 11 1 0 0 1
10 0 0 0 0 10 1 0 0 1
a) X = A b) X = C
Il est clair que plus une réunion regroupe de 1, plus le nombre de variables éliminées est
grand. Plus précisément encore, une réunion de deux 1 provoque l’élimination d’une
variable, une réunion de quatre 1, l’élimination de deux variables et une réunion de huit 1,
l’élimination de trois variables et ainsi de suite.
La réunion de 2n 1 permet de simplifier n variables. Voici les étapes à suivre pour simplifier
une expression booléenne en recourant à la méthode des tables de Karnaugh :
Dessinez la table de Karnaugh et placez des 1 dans les carrés correspondant aux
lignes de la table de vérité dont la sortie est 1. Mettez des 0 dans les autres carrés,
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 62 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
Étudiez la table de Karnaugh et repérez les groupes possibles. Trouvez les plus
grands,
Commencez ensuite par encercler les 1, dit isolés, qui ne font parties que d’un seul
groupe. Cela signifie que pour ces 1, il n’existe qu’une seule possibilité de
groupement,
Continuez ensuite à prendre les groupes les plus grands qui incluse des 1 (au
minimum un seul) qui ne font pas partie d’un autre groupe,
Vous devez prendre tous les 1 de la table de Karnaugh. Il est possible d’utiliser
plusieurs fois le même 1,
Effectuez des OU logique entre tous les termes résultant des réunions.
Certains circuits logiques peuvent être conçus pour certaines combinaisons d’entrée ne
correspondent aucun état logique particulier pour la sortie. La principale raison est souvent
que ces combinaisons d’entrées ne doivent jamais survenir. En d’autres mots, il y a
certaines combinaisons d’entrée pour lesquels il nous importe peu que la sortie soit
HAUTE ou BASSE.
Exemple :
CB
C B A Z A 00 01 11 10
0 0 0 0 0 0 0 1 X
0 0 1 0 1 0 0 1 1
0 1 0 0 Z=A
0 1 1 X
1 0 0 X CB
1 0 1 1 A 00 01 11 10
1 0 0 1 0 0 0 1 1
1 0 1 1 1 0 0 1 1
Dans cette table aucun état de la sortie Z ne figure pour les combinaisons C B A = 100 et
C B A = 0 1 1. Au contraire, on a mis un X. Ce X signifie une condition indifférente.
Il s’agira de décomposer notre problème. Nous devrons être capable d’identifier des sous
fonctions.
Nous avons alors besoin d’étudier les principales fonctions standards combinatoires. Ces
fonctions sont nommées aussi fonctions MSI pour ‘ Médium Scale Intégration’. Il s’agit de
fonction plus complexe que les simples portes logiques.
Ces fonctions ont été très rapidement intégrées dans des circuits de famille TTL ou
CMOS. Celles-ci présentaient l’avantage d’être moins onéreuse sous la forme d’un circuit
électronique. Les fonctions les plus couramment utilisées ont été intégrées.
Le multiplexage (MUX)
Le décodage (X/Y)
L’encodeur de priorité
Le comparateur (COMP)
6.7. LE MULTIPLEXEUR
Un multiplexeur est un système combinatoire qui met sa sortie unique la valeur d’une de
ses 2n entrées de données, le numéro de l’entrée sélectionnée étant fourni sur les n
entrées de commande.
Nous donnons la table de vérité d’un multiplexeur 2 vers 1 (2 to 1), son schéma logique et
les symbole CEI de cette fonction :
TDV compacte
Sel Sortie
0 In0
1 In1
Figure 19: Le multiplexeur, sa table de vérité, son schéma logique et son symbole
Remarquez que nous avons 4 multiplexeurs avec le même bloc de commande dans le
circuit standard (74ALS157). Les multiplexeurs sont symbolisés par les rectangles
superposés, le premier est marqué MUX.
Le bloc de commande se marque par un rectangle ayant des encoches qui coiffe 4 blocs.
Une entrée EN (ENable) supplémentaire apparaît. La sortie des multiplexeurs n’est active
que si l’entrée EN = 1, ce qui revient à dire que la borne 15 est au niveau bas.
Dans le bloc de multiplexage, l’entrée marquée 1 indique que la sortie prend la valeur de B
sir l’entrée de sélection G1, borne 1, prend la valeur 1 (niveau haut). L’entrée A sera prise
en compte pour G1 = 0. Les chiffres entre parenthèses indiquent les numéros des bornes
du circuit.
6.8. LE DECODEUR
Un décodeur permet d’identifier quelle combinaison est active. Il comporte une entrée de n
bits à décoder (sélection), une entrée de validation (enable), et 2n sorties. La sortie dont le
numéro correspond à la valeur codée donnée en entrée, elle sera active si l’enable est
actif. Toutes les autres sorties sont inactives. Le décodeur n’a qu’une seule sortie active à
la fois.
Dans le cas où l’entrée de validation est inactive toutes les sorties sont alors inactives.
Nous remarquons que les décodeurs ont fréquemment des sorties actives basses.
Ce décodeur dispose d’autre part d’un signal d’activation (enable). Lorsque celui-ci est
inactif (état logique 1, actif bas), toutes les sorties sont inactives (état 0). Lorsque le signal
d’autorisation (enable) est actif, la sortie correspondante au code de la sélection est
active.
EN Sel1 Sel0 Y3 Y2 Y1 Y0
0 X X 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
Voici un décodeur avec 3 bits de sélection, il permet de décoder les 8 combinaisons d’un
vecteur 3 bits.
Dans le circuit ALS138, l’activation des sorties dépend de EN, qui est le résultat ET entre
les entrées ( G1, G 2 A, G 2 B ).
EN = G1 × G 2 A × G 2 B
6.9. LE COMPARATEUR
La figure a) ci-dessous nous donne le symbole CEI d’un comparateur d’égalité avec
l’entrée ‘=’ pour la chaînage.
La figure b) nous donne le symbole CEI d’un comparateur 4 bits modulaire avec les trois
sorties ‘<’, ‘=’, ‘>’.
Nous commençons par les bits de poids faible. Cette décomposition nécessite moins de
matériel. Par contre, le temps de propagation à travers le comparateur complet est plus
important.
Prenons le cas simple d'une perceuse d'établi, en logique combinatoire pour que la
broche tourne il faut que l'opérateur maintient le bouton "rotation broche" enfoncé sinon
la broche s'arrête de tourner, par conséquent il ne pourra plus à la fois maintenir la pièce
à percer et descendre le foret pour effectuer le perçage.
Pour éviter cette situation il suffirait que la machine "se souvienne" que le bouton
rotation broche a été actionné donc que la machine possède la fonction mémoire.
Une logique qui sera basée sur l'utilisation de la fonction mémoire ainsi introduite sera
appelé logique séquentielle.
On suppose d'autre part que le temps qui sépare deux changements d'état consécutifs
de R et de S est plus grand que le temps de réponse global de la mémoire.
Un circuit séquentiel est dans un état stable quand tous les éléments constitutifs de ce
circuit sont eux mêmes dans un état stable. Ce dernier sera caractérisé par la parfaite
connaissance:
Nous noterons; par la suite, un état stable par une lettre ou un numéro (arbitraire)
entouré d'un cercle.
Les schémas que nous cherchons à établir, vont être matérialisés par des éléments
technologiques. Or il est naturel de penser que ces éléments ont un temps de réponse
non nul; c'est à dire qu'entre le moment où ils reçoivent un état excitateur et le moment
où ils prennent le nouvel état correspondant, il s'écoule un temps t appelé temps de
réponse.
Pendant ce temps t le circuit n'est plus dans un état stable puisqu'il est en train
d'évoluer: on dit qu'il est dans un état transitoire. On les notera, par la suite par une
lettre ou un numéro non entouré, cette fois, qui caractérise l'état stable vers lequel
l'évolution s'effectue.
les phases stables possibles sont numérotées à leur tour, chaque numéro étant
entouré d'un cercle.
des liaisons, joignant ces différentes phases, indiquent les transitions possibles
d'une phase stable vers l'autre. Le sens de la transition est indiqué par une flèche,
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 73 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
On inscrit:
On lui donne une forme qui fait apparaître au mieux les symétries possibles. Le
diagramme des états stables de notre problème sera donc le suivant:
Il s'agit en fait d'une table de même présentation que les tables de Karnaugh. On la
construit de la façon suivante:
Le nombre de colonne est égal au nombre de combinaisons que l'on peut réaliser
avec les variables indépendantes d'entrée dont on dispose (variables primaires).
Le nombre de ligne est égal au nombre de phase stables auquel le problème posé
conduit.
Chaque phase stable est inscrite dans l'ordre chronologique d'apparition, dans la
colonne correspondant à la combinaison des variables primaires d'entrée qui lui a
donné naissance.
Chaque phase instable (transitoire) précédant chaque phase stable est inscrite
dans la même colonne que la phase qui la suit, dans la ligne précédente.
RS
00 01 11 10 Q
c 2 - 4 0
3 d 5 ou 6 - 1
e 2 - 4 1
1 - 5 ou 6 f 0
- 2 g 4 0
- 2 h 4 1
Dans cette matrice primitive nous pouvons voir Que pour la combinaison R S = 0 0 la
sortie Q peut être soit égale à 1(ligne 3) soit égale à 0 (ligne 0).
Pour différencier ces deux lignes les seules variables d'entrée R et S sont insuffisantes, il
faut pour cela introduire une variable secondaire (ou variable interne).
Contracter une matrice primitive revient à fusionner les lignes de cette dernière afin
d'obtenir une matrice réduite, le nombre de ligne de la matrice réduite déterminant le
nombre de variables secondaires à utiliser.
On ne pourra fusionner deux lignes que si ces dernières ne possèdent pas d'état stable
dans la même colonne.
Le codage des variables secondaires est fait en prenant pour valeur des états instables de
Q la même valeur que celle de l'état stable correspondant.
R S Qn Commentaires
0 0 Qn-1 Etat mémoire
0 1 1 Mise à 1 (S = Set)
1 0 0 Remise à 0 (R = Reset
1 1 -
En s'interdisant l'utilisation de cette combinaison pour les entrées R et S, nous avons une
table d'implication unique pour les mémoires RS.
De plus cette combinaison peut poser des problèmes si nous essayons de passer
directement de cette dernière à la combinaison R S = 0 0, nous aboutissons alors à un
fonctionnement aléatoire de la mémoire.
En effet il est alors impossible de savoir l'état de la sortie Q (Q peut égale à 1 ou à 0) car
deux variables ne peuvent changer simultanément d'état, il y en aura toujours une qui
changera d'état avant l'autre, mais laquelle?
Remarque :
Compte tenu de leurs inconvénients les mémoires RS ne sont pas commercialisées, toute
fois on trouve des mémoires RS le plus souvent appelées "verrou", l'application la plus
courante de cette mémoire étant le circuit anti-rebond.
R S Q1n Q2n
0 0 - -
0 1 0 1
1 0 1 0
1 1 Q1n-1 Q2n-1
Exemple:
Pour la commande d'organes ayant une constante de temps assez élevée, ces
rebondissement ne nuisent pas au fonctionnement (relais, lampes, etc.); par contre, les
circuits intégrés réagissent en quelques nanosecondes. Tout se passe donc, avec les
rebondissements, comme si l'on agissait plusieurs fois sur le capteur au lieu d'une. Il est
donc nécessaire d'utiliser un dispositif permettant de supprimer ces rebondissements.
7.7.1. Logigramme
La colonne tn précisant l'état de Q juste après le front de commande de l'horloge T (ou H),
nous avons comme table d'implication pour la mémoire RS synchronisée:
tn-1 tn
T (ou H) R S Qn
0 φ φ Qn-1
0 0 Qn-1
0 1 1
1 0 0
1 1 -
Pour T = 1: les entrées sont sensibles aux parasites mais comme elles doivent être
sensibles aux signaux de commande cette situation est inévitable.
7.8.1. Logigramme
tn-1 tn
T (ou H) D Qn
0 φ Qn-1
0 0
1 1
8. LES BASCULES
La mémorisation des informations est une opération indispensable dans tous les systèmes
de traitement (appareil de mesure, ordinateur ...) mais ne suffit pas On veut, en outre
compter (des impulsions), recopier au rythme d'une horloge (des niveaux 1 et 0),
transmettre en série sur un fil (et à des instants bien connus) des informations stockées en
parallèle d'une façon permanente dans une mémoire.
Dans tous les cas il faut une horloge périodique et une seule information par période pour
que le récepteur les reconnaisse sans ambiguïté. Or quand l'horloge vaut 1, les mémoires
RST (ou RSH) et DT (ou D latch) sont sensibles aux parasites qui peuvent provoquer une
modification de l'information transmise.
Pour parer à cet inconvénient, la solution est d'ouvrir l'entrée de la mémoire émettrice
pendant une durée juste suffisante pour qu'elle saisisse l'information à transmettre
pendant la période d'horloge suivante et de la fermer pendant le reste de la période. On
aboutit à trois solutions dont les circuits sont nommés bascules:
Faire un circuit transmetteur sensible non aux niveaux 1 de T mais à ses fronts
(montants ou descendants mais pas aux deux types),
La structure "maître esclave" est obtenue en plaçant en cascade dans un même circuit,
deux mémoires identiques comme le montre la figure ci-dessous (par exemple avec des
mémoires RST):
8.1.2. Fonctionnement
Pour T = 0 rien ne change en sortie de l'ensemble en effet la mémoire "maître" est isolée
de ses entrées par conséquent les sorties Qm et QM ne peuvent pas prendre une autre
valeur; tandis que la mémoire "esclave" bien qu'active (T = 0 -* T2 = 1) ne voit pas ses
entrées changer d'état.
Lorsque T 1 la mémoire "esclave" se trouve isolée de ses entrées de ce fait Q reste égale
à 0; par contre la mémoire "maître" devenant active enregistre les variations de R et de S
entraînant Qm = 1 et Qm = 0. Cet état reste stable tant que T = 1 et que les entrées R et S
ne changent pas d'état.
Nous avons vu que les mémoires RST ou DT sont ouvertes aux parasites tant que le
signal T est à 1 et pendant cette durée toute variation des entrées fait changer l'état des
sorties.
Le mode fonctionnement "maître esclave" améliore un peu la situation car tout parasite
survenant aux entrées lorsque T est à 1, ne fait pas changer la sortie mais il est enregistré
dans la mémoire "maître" et apparaît à la sortie dès que T passe à O.
Donc, plus la durée pendant laquelle on a T 1, est grande, plus le risque de recevoir des
parasites est grand.
Aussi a-t-on pensé à réduire le plus possible cette durée et comme la durée la plus courte
est celle d'un front, on arrive à la solution des bascules fonctionnant sur les fronts
(montants ou descendants) de l'horloge T.
La bascule enregistre l'information présente sur ses entrées au moment du front actif de
l'horloge puis elle s'auto bloque, sa sortie affiche l'information mémorisée.
La mémoire "maître" a un système d'auto blocage qui permet son fonctionnement sur les
fronts actifs (montants) de l'horloge, la mémoire "esclave", verrouillée quand T = 1 recopie
l'état de la mémoire quand T = O.
Elle peut être soit verrouillée lorsque T = 1 et ouverte lorsque T = 0 (cas des bascules
commercialisées), soit une bascule à fonctionnement sur front descendant qui recopie
l'état du "maître" au moment de ce front descendant (pas commercialisée actuellement).
On appelle compteur par n un système qui sous l'action de signaux d'entrée (horloge) peut
occuper successivement n états stables différents.
Pour obtenir la fonction comptage (compteur par deux) il suffit de câbler les entrées de
sorte que S=Q et R–Q.
8.2.2. Bascule D
REMARQUE:
8.2.3. La bascule JK
La bascule RST "maître esclave" permet de réaliser la fonction comptage, dès lors cette
bascule ne peut remplir aucune autre fonction puisque dans cette configuration elle ne
possède plus d'entrées disponibles.
En modifiant le circuit d'entrée on peut avoir de nouveau des entrées accessibles, tout en
conservant la fonction comptage, on obtient alors une nouvelle bascule appelée bascule
JK.
Bien que la bascule JK soit dérivée de la bascule RST "maître esclave", elle n'est pas
nécessairement "maître esclave", en effet la bascule JK est commercialisée en
fonctionnement "maître esclave" mais aussi en fonctionnement sur front (montant ou
descendant) et en fonctionnement "data look out".
Le mode de fonctionnement ne change rien à l'effet des entrées J et K sur les sorties Q et
Q, seul l'instant où le résultat apparaît diffère.
Par conséquent nous pouvons donner une table d'implication unique convenant aux
différents types de bascule JK.
L'information présente dans la dernière bascule d'un tel registre est toujours accessible
physiquement. C'est la sortie du registre à décalage.
Entrée série : l’information est présentée bit à bit à l'entrée de la première bascule
pour y être introduite à chaque impulsion d'horloge. Simultanément l'état logique de
celui-ci est transmis à la bascule suivante. Ce mode permet entre autre la
réalisation de la ligne à retard numérique. Ce type de registre à décalage est dit à
entrée et sortie série.
Entrée parallèle : l’information de n bits est introduite d'un seul coup dans le
registre à décalage qui est nécessairement composé de n étages. On a pour cela
accès à l'entrée de chaque bascule constituant le registre. Généralement une
porte d'inhibition permettra le transfert et assura l'isolement nécessaire entre le
registre et l'extérieur une fois le transfert assuré. Le registre est dit à entrée
parallèle et sortie série. Ce type de registre est utilisé dans la transformation
parallèle série. On peut enfin concevoir une sortie parallèle; il suffit pour cela que
les sorties des bascules du registre soient accessibles.
D'une entrée "donnée série" qui introduit l'information bit après bit dans la
première bascule.
Enfin, la sortie du registre qui est la dernière bascule, un accès aux sorties des
bascules intermédiaires étant également possible pour assurer une sortie parallèle.
On appelle compteur par N (ou modulo N) un système ayant N états stables pouvant
passer de l'un à l'autre sous l'influence d'impulsions appliquées à son entrée.
Un compteur est qualifié de synchrone ou d'asynchrone suivant que les basculements des
divers étages le constituant sont rigoureusement synchrones ou non du signal d'horloge
de commande, dans le premier cas tous les basculements sont simultanés, dans un
deuxième cas les étages interviennent l'un après l'autre en cascade.
Ils sont constitués de bascules montées en diviseur par deux (fonction comptage), placées
en série de façon que le signal de sortie de l'une pilote l'entrée de la suivante.
Remarque :
Si les bascules utilisées sont des bascules agissant un front montant alors la sortie
Q de la bascule de rang n-1 sera reliée à l'entrée T (ou H) de la bascule de rang n.
Dans le cas de bascules agissant sur des fronts descendant ou des bascules
"maître esclave" la sortie Q de la bascule de rang n-1 sera reliée à l'entrée T (ou H)
de la bascule de rang n
Un compteur à cycle incomplet doit "sauter" tous les états non voulus ceux-ci peuvent être
consécutifs par exemple 10, 11, ..., 15 pour un compteur décimal (réalisation d'une décade
en BCD) ou disjoints pour les générateurs de signaux.
L'état 10 (état transitoire) bien que fugitif existe ce qui nécessitera des précautions lors de
l'exploitation des états du compteur.
BA
DC 00 01 11 10
00 1 1 1 1
01 1 1 1 1
11 X X X X
10 1 1 X 0
F = BD
REMARQUE:
Les durées des actions de RAZ et de RAU sont assez dispersées; dès qu'une bascule a
changé d'état avant les autres, le signal de sortie du décodeur de RAZ et de RAU change
d'état et n'agit plus sur les autres bascules qui n'ont pas encore changé d'état, aussi est-il
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 95 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
Inconvénients
Prenons le cas d'un compteur asynchrone quatre bits (compteur par 16), nous
pouvons dresser le chronogramme de chaque cas de transition. Par exemple la
figure ci dessous montre les différents états par les lesquels va passer le compteur
pour basculer de la position 0111 à 1000.
Nous avons supposé pour cela que chaque bascule a le même temps de réponse
tr.
Un premier exemple est le décodage d'adresse qui utilisant des circuits rapides
ferait correspondre à chaque intermédiaire des décodages parasites.
Avantages
La rapidité
On peut penser que la vitesse de fonctionnement n'est limitée que par la fréquence
maximale que peut recevoir la première bascule.
Mais cet avantage est limité par le temps de stabilisation du compteur si l'on doit
exploiter tout ou partie de ses états.
Dans un compteur (ou un décompteur) synchrone, les bascules, qui doivent changer
d'état, le font au même instant sous la commande d'un front actif d'une impulsion
d'horloge.
Ils restent à exprimer en fonction de ces signaux les commandes D ou JK des bascules.
J K Qn
0 0 Qn −1
0 1 0
1 0 1
1 1 Q n −1
Qn Qn+1 J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
Pour ce faire on complète une table d'implication (table ci-après) en inscrivant devant
chaque état, la valeur que doivent prendre les entrées J et K pour obtenir l'état suivant.
N° D C B A JA KA JB KB JC KC JD KD
0 0 0 0 0 1 X 0 X 0 X 0 X
1 0 0 0 1 X 1 1 X 0 X 0 X
2 0 0 1 0 1 X X 0 0 X 0 X
3 0 0 1 1 X 1 X 1 1 X 0 X
4 0 1 0 0 1 X 0 X X 0 0 X
5 0 1 0 1 X 1 1 X X 0 0 X
6 0 1 1 0 1 X X 0 X 0 0 X
7 0 1 1 1 X 1 X 1 X 1 1 X
8 1 0 0 0 1 X 0 X 0 X X 0
9 1 0 0 1 X 1 1 X 0 X X 0
10 1 0 1 0 1 X X 0 0 X X 0
11 1 0 1 1 X 1 X 1 1 X X 0
12 1 1 0 0 1 X 0 X X 0 X 0
13 1 1 0 1 X 1 1 X X 0 X 0
14 1 1 1 0 1 X X 0 X 0 X 0
15 1 1 1 1 X 1 X 1 X 1 X 1
Pour déterminer les équations des circuits combinatoires nécessaires, les Ji et Ki de la table
ci-dessus sont ensuite reportés dans des tables de Karnaugh :
Exemple : construction d'un compteur par dix en utilisant comme code le BCD 8421.
Il suffit de modifier les circuits de bouclage sur les Ji et Ki pour que le montage recycle à la
dixième impulsion. Le tableau précédent est inchangé jusqu'à la neuvième impulsion mais
les Ji et Ki de la ligne N° 9 doivent voir une valeur différente.
N° D C B A JA KA JB KB JC KC JD KD
0 0 0 0 0 1 X 0 X 0 X 0 X
1 0 0 0 1 X 1 1 X 0 X 0 X
2 0 0 1 0 1 X X 0 0 X 0 X
3 0 0 1 1 X 1 X 1 1 X 0 X
4 0 1 0 0 1 X 0 X X 0 0 X
5 0 1 0 1 X 1 1 X X 0 0 X
6 0 1 1 0 1 X X 0 X 0 0 X
7 0 1 1 1 X 1 X 1 X 1 1 X
8 1 0 0 0 1 X 0 X 0 X X 0
9 1 0 0 1 X 1 0 X 0 X X 1
10 1 0 1 0 1 X X 0 0 X X 0
11 1 0 1 1 X 1 X 1 1 X X 0
12 1 1 0 0 1 X 0 X X 0 X 0
13 1 1 0 1 X 1 1 X X 0 X 0
14 1 1 1 0 1 X X 0 X 0 X 0
15 1 1 1 1 X 1 X 1 X 1 X 1
Les états de 10 à 15 sont maintenant inutilisés, mais si par suite d'une impulsion parasite
un de ces états se trouvait réalisé, il serait nécessaire que le système reprenne au bout de
quelques impulsions son fonctionnement normal ce qui sera par exemple obtenu si les Ji
et Ki valent alors tous 1, ou encore prennent les mêmes valeurs que dans le compteur à
cycle complet ce qui assure un retour à zéro quand l'état 15 a été dépassé.
En adoptant cette seconde solution les tables de Karnaugh précédentes ont seulement
leur case 9 modifiée. D'autre part en comparant la ligne 9 à l'ancienne, on voit que seuls
sont changés les valeurs de JB et KD. Ce qui nous donne comme nouvelles équations pour
JB et KD:
J B = AC + AD et K D = ABC + ABC
Remarque:
En mettant systématiquement des indifférents (X) dans toutes les cases inutilisées (de 10
à 15) on obtient un système plus simple (ceci est possible car les états de 10 à 15 ne sont
plus utilisés) :
Figure 62: Tables de Karnaugh pour compteur synchrone à cycle incomplet simplifié
Mais alors il faut vérifier qu'à partir des états anormaux (de 10 à 15) on rejoint bien les
états permis.
N° D C B A JA KA JB KB JC KC JD KD
10 1 0 1 0 1 1 0 0 0 0 0 0
Une impulsion n’agira que sur A et tombe à :
11 1 0 1 1 1 1 0 1 1 1 0 1
L’impulsion suivante donne :
4 0 1 0 0 Qui est un état normal
À partir de 12
12 1 1 0 0 1 1 0 0 0 0 0 0
L’impulsion suivante agit sur A seule, soit :
13 1 1 0 1 1 1 0 1 0 0 0 1
A partir de cet état on tombe à :
4 0 1 0 0 Qui est un état normal
À partir de 14 :
14 1 1 1 1 1 1 0 0 0 0 0 0
Donne :
15 1 1 1 1 1 1 0 1 1 1 1 1
0 0 0 0 0 État 0
A mise en série par le mode asynchrone seul ou à mise en série par les modes
asynchrone ou synchrone.
74 190 DCB
Asynchrone ou
synchrone
74 191 0, 1, …, 15
Asynchrone Oui
74 193 0, 1, …, 15
Asynchrone
74 192 DCB
74 161
0, 1, …, 15
74 163
Non
74160
DCB
74162
Synchrone Synchrone
74 168 DCB
Oui
74 169 0, 1, …, 15
Les quatre bascules maîtres esclaves sont déclenchées par un flanc ascendant sur une
des entrées d'horloge. Dans ces compteurs, il n'y a pas de commande du sens de
comptage (ou de décomptage) ce sens est déterminé par l'entrée "COUNT UP" (ou
"COUNT DOWN") qui reçoit l'horloge, l'autre entrée devant être à 1. Ces compteurs sont
entièrement programmables, ce qui signifie que chaque sortie peut être mise à un niveau
logique quelconque en présentant les données sur les entrées de programmation (entrées
de chargement A, B, C, D).
Dans ces deux compteurs les informations présentes sur les entrées de chargement (A, B,
C, D) sont transférées sur les sorties QA, QB, QC, QD lorsque la commande de
chargement (LOAD) est au niveau bas (0), cette action étant indépendante de l'horloge et
de l'état antérieur du compteur : ce chargement est asynchrone. Cette propriété permet
d'utiliser ces compteurs comme diviseurs modulo N en modifiant simplement le cycle de
comptage à l'aide des entrées de programmation.
L'entrée de remise à zéro (CLEAR) est active sur un niveau haut (1); elle est
indépendante des états de l'entrée LOAD et des entrées d'horloge pour compter (COUNT
UP) ou pour décompter (COUNT DOWN) : cette entrée CLEAR est asynchrone et
prioritaire sur l'entrée LOAD.
Les symboles logiques des compteurs 74193 et 74192 sont donnés sur la figure ci-
dessous :
Ces compteurs ont été étudiés pour pouvoir être juxtaposés sans le recours à une logique
extérieur.
De même, la sortie "CARRY" fournit une impulsion, dont la durée est égale à un cycle
d'horloge sur l'entrée de comptage, lorsque le compteur est en dépassement positif. La
juxtaposition des circuits se fait facilement en reliant les sorties "BORROW" et "CARRY"
aux entrées "COUNT DOWN"et "COUNT UP" du compteur suivant (de poids
immédiatement supérieur).
Remarque:
Ce mode opératoire élimine les états transitoires de comptage sur les sorties inhérentes
aux compteurs asynchrones (horloge transmise d'une bascule à l'autre).
Les quatre bascules maîtres esclaves sont déclenchées par un flanc ascendant sur
l'entrée d'horloge (CLOCK); si l'entrée de validation ( ENABLE ) est au niveau bas. Si
l'entrée de validation ( ENABLE ) est au niveau haut le comptage est arrêté.
Lorsqu'elle est au niveau logique bas le compteur et lorsqu'elle est niveau logique haut, il
décompte.
Ces compteurs sont entièrement programmables, ce qui signifie que les sorties peuvent
être positionnées à un niveau logique quelconque en forçant l'entrée de chargement
LOAD au niveau logique bas et en appliquant les données sur les entrées de
programmation (A, B, C, D).
Ces données seront recopiées sur les sorties indépendamment de l'état de l'entrée
d'horloge, ce chargement est asynchrone. Cette propriété permet d'utiliser ces compteurs
comme diviseurs modulo N en modifiant simplement le cycle de comptage à l'aide des
entrées de programmation.
Les symboles logiques des compteurs 74190 et 74191 sont donnés sur la figure ci-
dessous :
Pour en faciliter l'extension, ces compteurs disposent de deux sorties, une sortie de
"propagation de l'horloge" ( RIPPLECLOCK ) et une sortie "comptage maximum/minimum"
(Max / Min).
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 112 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
Cette dernière fournit une impulsion d'environ un cycle complet d'horloge, lorsque le
compteur est en dépassement dans un sens ou dans l'autre. La sortie "comptage
maximum/minimum" permet une anticipation nécessaire au fonctionnement à
grande vitesse.
La mise en série asynchrone: chaque sortie RIPPLECLOCK d'un compteur est reliée à
l'entrée d'horloge du compteur suivant; cette sortie RIPPLECLOCK n'est validée que
lorsque l'entrée de commande DOWN / UP est au niveau bas (0) et que l'horloge est au
niveau bas (0) ; donc l'entrée de commande DOWN / UP ne doit pas varier lorsque
l'horloge est au niveau bas; elle ne doit pas non plus varier tant que l'impulsion à compter
ne s'est pas propagée jusqu'au dernier étage.
Le fonctionnement synchrone vient du fait que toutes les bascules sont déclenchées
simultanément et qu'ainsi, les sorties changent de niveau logique en même temps en
accord avec les entrées de validation (ENABLE T et ENABLE P) et de la logique interne.
Ces compteurs sont entièrement programmables, ce qui signifie que les sorties peuvent
être positionnées à des niveaux logiques quelconques.
Comme la programmation est synchrone, le fait d'imposer un niveau bas sur l'entrée de
chargement ( LOAD ) inhibe le compteur et après la transition positive de l'horloge
suivante, les données présentes sur les entrées de programmation (A, B, C, D) sont
recopiées sur les sorties, indépendamment des niveaux logiques des entrées de
validations (ENABLE T et ENABLE P) ce chargement est donc synchrone.
La transition positive sur l'entrée de chargement ( LOAD ) des circuits 74160 et 74163 doit
intervenir lorsque l'entrée de l'horloge est au niveau logique bas avec les entrées de
validation (ENABLE T et ENABLE P) au niveau logique haut. Cette restriction ne
s'applique pas aux circuits 74 LS 160A, 74 LS 161 A, 74 LS 162A et 74 LS 163A.
La remise à zéro des circuits 74160, 74161, 74LS 160A et 74LS 161 A est asynchrone et
un niveau logique bas appliqué sur l'entrée CLEAR positionne les sorties des quatre
bascules au niveau logique bas indépendamment des niveaux logiques de l'horloge, de
l'entrée de chargement ou des entrées de validations, la remise à zéro est prioritaire.
La remise à zéro des circuits 74162, 74163, 74LS 162A et 74LS 163A est synchrone et un
niveau logique bas sur l'entrée CLEAR positionne les sorties des quatre bascules au
niveau logique bas après le flanc ascendant suivant de l'horloge, indépendamment des
niveaux logiques des entrées de validation.
Le flanc ascendant sur l'entrée de remise à zéro ( CLEAR ) des circuits 74162 et 74163 doit
intervenir lorsque l'entrée de l'horloge est au niveau logique bas avec les entrées de
validation et de chargement au niveau logique haut.
Cette impulsion, qui signale un dépassement de comptage sur le compteur, peut servir à
valider les différents étages successifs. Les transitions négatives sur les entrées de
validation (ENABLE T et ENABLE P) des circuits 74160 et 74163 ne doivent intervenir que
lorsque l'horloge est au niveau logique haut. Cette restriction ne s'applique pas aux circuits
74LS 160A et 74LS 163A. Ceux ci possèdent un circuit d'horloge totalement indépendant.
Les modifications de niveaux logiques intervenant sur les entrées de commande (ENABLE
T; ENABLE P et CLEAR) et qui modifieraient le fonctionnement, n'ont aucun effet pendant
le flanc actif du signal de l'horloge.
La mise en série des compteurs peut être faite d'une manière entièrement synchrone sans
composants extérieurs grâce aux circuits logiques internes qui crée le signal RIPPLE
CARRY. L'autorisation du comptage est donnée par le ET: ENABLE T. ENABLE P.
Remarque:
Une sortie RIPPLE CARRY ne doit pas être utilisée pour commander un circuit logique
asynchrone car cette sortie peut donner des impulsions parasites dues aux différences
entre les temps de propagation des bascules A., B, C, D.
On charge le compteur à la valeur 16 - N chaque fois que la sortie RIPPLE CARRY passe
à 1 (compteur dans l'état 15 =1111) figure 10.8. On peut étendre ce montage à plusieurs
circuits.
On décode les informations de sortie pour que l'état N commande la remise à zéro
(CLEAR) synchrone du compteur; l'état N étant détecté; la remise à zéro a lieu à l'impulsion
d'horloge suivante; donc le compteur a N+1 état.
Dès que le compteur arrive dans l'état N2, celui-ci est décodé et commande le chargement
de l'état N1 lors de l'impulsion d'horloge suivante. La figure ci-dessous montre un
compteur comptant de 7 à 12. Ce montage peut être étendu à n étage.
10.1. GÉNÉRALITÉS
Une mémoire est un dispositif capable d’emmagasiner puis de restituer une information.
Le bus d’adresse
Le bus de données
Les informations sont délivrées sur le bus de données. Le bus de données peut
être bidirectionnel si on peut lire et écrire dans la mémoire ou unidirectionnel si
on ne peut que la lire.
Le bus de contrôle
1 octet = 8 bits
210 octets = 1024 octets = 1 ko (kilo octet)
220 octets = 1024 ko = 1 Mo (Mégo octet)
230 octets = 1024 Mo = 1 Go (Giga octet)
Conclusion :
10.1.2. Organisation
Une mémoire est constituée de données (ou mots) de 8, 16,32 ou 64 bits, voir plus.
On dit qu’une mémoire est organisée par exemple de 256 mots de 16 bits.
L’accès séquentiel : Les informations sont repérées par leur position dans une file
d’éléments, c’est l’ordre d’enregistrement qui est conservé (exemple : les bandes
magnétiques).
10.1.4. Rapidité
Le temps d’accès (Tacc) est le temps qui s’écoule entre l’instant ou l’adresse est
positionnée et le moment où la donnée est disponible.
L'architecture interne, c'est à dire la structure d'un boîtier de mémoire morte est très
complexe, et il n'est pas dispensable d'en connaître tous les détails. Cependant il peut être
instructif d'étudier un schéma simplifié de l'architecture interne comme celui de la figure ci-
dessous.
Une matrice de registre (R): la matrice de registre est l'ensemble des éléments qui
mémorisent réellement les données dans la mémoire morte. Chaque registre est
formé d'un certain nombre de cellules mémoires égal à la longueur du mot.
Dans le cas présent, chaque registre contient un mot de 8 bits. Les registres sont agencés
selon une matrice carrée comme il est courant dans les puces des mémoires à semi-
conducteurs. Il est possible d'indiquer la position de chaque registre en donnant sa rangée
et sa colonne.
Les 8 sorties de données de chaque registre sont connectées à un bus interne qui "court"
dans tout le circuit.
Chaque registre possède deux entrées de validation E, qui doivent toutes les deux être au
niveau haut pour que la donnée se trouvant dans le registre adressé soit placée sur le
bus.
Un registre tampon de sortie: le registre qui est validé par les entrées d'adresse
place sa donnée sur le bus de donnée. Cette donnée vient alimenter des tampons
de sortie qui la communiqueront aux sorties de données externes si CS est au
niveau haut. Si CS est au niveau bas, les tampons de sortie sont dans leur état
haute impédance, et les sorties de données sont dans l'état "flottant".
Vue de l'extérieur une mémoire "morte" sera considérée comme un circuit comportant:
p sorties de donnée
Sa taille ou capacité: elle est toujours une puissance de 2 (11c, 2k, 4k, 8k, 16k
octets), 1 k octets =1024 octets (0 à 1023), elle détermine nombre de registres
contenus dans la mémoire, et par conséquent la largeur du bus d'adresse (A_bus).
Le temps d'accès en nano secondes (temps mis pour lire ou écrire une donnée
suivant le type de mémoire).
Dans ce type de mémoire "morte", l'écriture des données dans les emplacements
mémoires (programmation) est effectuée par le fabricant suivant les spécifications du
client. On utilise le négatif d'une épreuve photographique, appelé masque, pour établir les
interconnexions électriques dans la puce.
Ces mémoires ne différents des précédentes que par le fait qu'elles soient programmables
par l'utilisateur. Il faut noter que comme pour les MROM, elles ne sont ni effaçables ni
programmables.
Manuel de Formation EXP-MN-SI080-FR
Dernière Révision: 14/11/2008 Page 130 de 140
Formation Exploitation
Instrumentation
Logique d’Automatisme
Une EPROM peut être programmée par un utilisateur, mais en outre il est possible de
l'effacer et de la reprogrammer aussi souvent qu'il le désire.
Pour effacer une EPROM il suffit de l'exposer à une lumière ultraviolette qui pénètre à
travers une fenêtre sur la puce pendant une durée de 30 minutes environ.
La différence avec une EPROM réside dans la façon où sont effacées les données par
l'application d'un signal ce qui a pour avantage être plus rapide d'une part et d'autre part
on peut sélectionner les informations à effacer et ceci peut se faire soit sur une console de
programmation soit directement par l'application dans laquelle la mémoire est implantée.
Elle est programmé par le constructeur à la fabrication. Elle est utilisé pour les
grandes séries par les industriels
Cest une ROM que l’utilisateur peut programmer une seule fois.
Elle dispose au dessus de son boîtier une fenêtre qui permet d’exposer la puce aux
UV pendant 10 à 20 min. On peut la reprogrammer plusieurs fois
Le principe de fonctionnement fait que les données sont un peu moins en sûreté que
dans une ROM ou une EPROM. Si la fenêtre n’est pas obstruée après la
programmation ou encore si la température ambiante est élevée, un effacement
spontané de un ou plusieurs bit peut se produire
Une mémoire "vive" est une mémoire dans laquelle on peut écrire ou lire des données, et
c'est pour cette raison qu'elle est différente d'une mémoire "morte".
La figure ci-dessous montre l'architecture simplifiée d'une mémoire "vive". Dans le but
d'avoir le moins de broches possibles sur un boîtier de circuit intégré, les fabricants
combinent souvent les fonctions d’entrée et de sortie de données sur les broches
d’entrées/sorties (E/S). L’entrée L / E commande la fonction des broches E / S.
Vue de l'extérieur une mémoire "vive" sera considérée comme un circuit comportant:
Sa taille ou capacité
Le temps d'accès
Les mémoires vives statiques sont des mémoires qui conservent les données tant que la
puce est sous tension. Les cellules de ces mémoires sont essentiellement des bascules qui
demeurent dans un état donné (emmagasinage d'un bit) indéfiniment tant que le circuit
demeure alimenté.
La grande différence entre les mémoires vives statiques et les mémoires vives dynamiques
réside dans le fait que les cellules mémoires dynamiques ne retiennent leurs données que
pendant un temps limité de façon caractéristique 2ms après lequel les données à l'intervalle
de temps réguliers pour que la mémoire conserve les données.
Par contre elles ont l'avantage de dissiper très peu de puissance et d'être très
économiques, conséquence directe de la simplicité de la cellule.
Dans un système micro-informatisé toutes les mémoires sont "montées" en parallèle sur
les différents bus. Par conséquent lorsqu'une adresse est véhiculée sur le bus d'adresses
(A_bus) toutes les interfaces ainsi que toutes les mémoires vont recevoir cette adresse.
Seulement un seul boîtier n'est concerné, il faut donc créer un circuit de sélection de
boîtier qui suivant l'adresse émise ne valide qu'une seule mémoire à la fois.
Pour créer les signaux de commande (CS), il faut élaborer un circuit combinatoire appelé
décodeur d'adresses. Pour simplifier la réalisation de ce circuit on utilise des
décodeurs/démultiplexeurs (décodeur 1 parmi n). L'intérêt étant que les
décodeurs/démultiplexeurs sont commercialisés sous la forme de circuits intégrés prêts à
l'emploi.
Le problème se ramène donc à déterminer les fils du bus d'adresses qui devront être
connectés aux différentes entrées du décodeur/démultiplexeur, ainsi que les sorties du
décodeur/démultiplexeur qui devront être utilisées pour sélectionner le boîtier désiré.
Pour illustrer la méthode de recherche de la création des CS nous allons prendre deux
exemples.
Exemple 1:
Pour créer les CS, on recherche sur chaque composant l'ensemble des bits du bus
d'adresse qui doivent rester inchangé quel que soit la case mémoire visée dans la
mémoire considérée.
Adresse Adresse
Mémoire A15 A14 A13 A12
de base haute
ROM $1000 $1FFF 0 0 0 1
RAM $2000 $3FFF 0 0 1 X
Exemple 2 :
M1: 4K x 8 en $1000
M2: 4K x 8 en $2000
M3: 16K x 8 en $8000
M4: 16K x 8 en $0000
Tableau des bits invariables sur le bus d'adresses pour chaque mémoire :
Adresse Adresse
Mémoire A15 A14 A13 A12
de base haute
M1 $1000 $1FFF 0 0 0 1
M2 $2000 $2FFF 0 0 1 0
M3 $8000 $BFFF 1 0 X X
M4 $C000 $FFFF 1 1 X X
Il n'y a pas de bit invariable pour la sélection des mémoires, il faut donc prendre un
décodeur/démultiplexeur 4 vers 16 (ou 1 parmi 16).