log4

Copyright
© 2000-2015 LHERBAUDIERE


7 pages à l'impression
Hit-Parade version initiale 2000
AVERTISSEMENT dernière mise à jour
18 mars 2013

cliquez sur le mot avertissement pour connaitre une info essentielle avant de lire ce module et n'hésitez pas à cliquer en bas de page sur l'icone sommaire du site ça vous ouvrira d'autres perspectives

systèmes de numération, codage et décodage

systèmes de numération une révision de l'école primaire
système combinatoire universel une somme de mintermes
codeurs 2n entrées n sorties
décodeurs l'inverse
transcodeurs pour piloter l"afficheur
comparateur une fonction très utilisée
une collection d'icônes pour visiter tout le site

systèmes de numération
Avant d'introduire les notions de codage et décodage nous rappelons le principe des systèmes de numération et les procédures pour passer d'une base dans une autre.
427 en système décimal c'est égal à 4.102 + 2.101 + 7.100,
c'est à dire que dans un système de base donnée un nombre s'écrit

N(B) = anBn + an-1Bn-1 + ...+ a1B1 + a0B0

avec les coeficients an entiers et compris entre 0 et B-1. Et on écrira le nombre an....a1a0
système binaire
En base 2 on aura environ 3 fois plus de chiffres qu'en base 10 pour exprimer la même quantité.

Par ex : 99 (en base 10) = 64 + 32 + 2 +1 soit 26 + 25 +0.24 + 0.23 + 0.22 + 21 +20 = 1100011 en base deux

Un nombre fractionnaire va s'exprimer par N = an2n +...+ a020 + a-12-1 + a-22-2 +...+a-n2-n

par ex 27.25 = 16 + 8 + 2 + 1 + (1/4) or 1/4 = 1.2-2 d'où 11011,01

Remarque pratique : déplacer une virgule d'un cran vers la droite revient à multiplier le nombre par la base, et inversement la déplacer vers la gauche correspond à une division par la base. Cela sera évidemment exploité dans les composants numériques.
Transcodage
C'est le processus de passage d'une base dans une autre

ex: 1227(10) = 2313(8) La procédure consiste à diviser le nombre décimal par 8, le reste de la division donne le coefficient a0, et on recommence jusqu'à obtenir un résultat inférieur (ou au plus égal) à B-1.

Pour la détermination de la partie fractionnaire, quand il y en a une, on procède de manière symétrique, on multiplie par la base, la partie entière donne le premier coefficient, et on recommence jusqu'à épuisement.
Ainsi 0.25 en base deux va donner .25x2 =0.5 soit partie entière 0 donc le coefficient a-1 = 0, ensuite 0.5x2=1 donc le coefficient a-2 vaut 1 et le reste fractionnaire est maintenant nul. Donc la conversion est terminée et le résultat est donc 0,01.
système BCD (décimal codé binaire)
Il s'agit du système employé dans les calculatrices de bureau par exemple, et exploité par nombre d'afficheurs, chaque chiffre d'un nombre décimal va être codé séparément en binaire ce qui donne par exemple

328(10) =
0011 0010 1000
  3 2 8
Passage binaire/décimal/octal/hexadécimal
357(10)équivaut à 000101100101 en binaire
soit 545(8) 101 100 101
  5 4 5
ou 165(16) 0001 0110 0101
  1 6 5

On voit aisément la méthode pour passer en octal à partir du binaire il suffit de grouper les chiffres binaires par groupes de 3 (à partir de la droite) et de transcrire, ce qui est immédiat, les nombres obtenus en leur équivalent décimal. La méthode est semblable pour l'hexadécimal mais en regroupant par paquets de 4 chiffres.

La conséquence de cette remarque est immédiate, lorsqu'on va manipuler des nombres binaires importants on préférera, pour éviter les erreurs de transcription, manipuler leurs équivalents hexadécimaux : il est clair qu'il est plus sûr d'écrire 165 que 000101100101.
Rappelons enfin qu'en hexadécimal les symboles pour représenter les nombres de 10 à 15 sont les 6 premières lettres de l'alphabet A correspond à 10, etc, jusqu'à F qui équivaut au nombre décimal 15.


système combinatoire universel
Quelques définitions. On appelle minterme de 2 variables a et b un monôme de type ab, ab, ab ou ab.(avec l'habituelle convention typographique d'écrire en rouge les variables surlignées). Pour 2 variables on aura 22 mintermes et 2n pour n variables.

Un démultiplexeur sera un système qui réalise les 2n mintermes de n variables.

Remarque : toute fonction logique est la somme de plusieurs mintermes (ou constituée d'un seul parfois), ce qu'on a appelé la forme canonique de la fonction.
Un système combinatoire universel, ou multiplexeur à n variables [data selector en anglais] est un système qui réalise la fonction universelle de n variables. Par exemple, dans le cas de deux variables a et b, cette fonction s'exprime selon l'équation ci-dessous :

Z[a, b; K0 K1 K2 K3] = K0.a.b + K1.a.b + K2.a.b + K3.a.b

A partir du démultiplexeur précédent on peut imaginer un tel système dans lequel K0, K1, K2, K3 sont des variables auxiliaires, ou plutôt des paramètres (valant 0 ou 1 évidemment).


Pour obtenir par exemple Z = a.b + a.b il suffit de faire K0 = K3 = 1, K1 = K2 = 0


codeurs
On peut donc réaliser des circuits dits de codage comportant 2n entrées et n sorties binaires. Ainsi par exemple le 74148 possède 8 entrées d'information décimale qu'il va coder en binaire


Si G1 est au niveau haut les entrées n'ont aucun effet, toutes les sorties sont au niveau haut (y compris GS et GS)
Si G1 est bas et que toutes les entrées sont à 1 alors toutes les sorties sont à 1 sauf GS
Ensuite le fonctionnement est le suivant : pour G1 = 0 sera prise en compte l'entrée au niveau bas de rang le plus élevé, ainsi soit la configuration suivante :

G1 0 1 2 3 4 5 6 7   Y2 Y1 Y0 GS GS
0 X X X 0 1 1 1 1 1 0 0 0 1

Le niveau 0 en 3 donne les sorties Y0 et Y1 actives (niveau bas) quelles que soient les valeurs des entrées 0, 1 et 2.

Pour avoir une correspondance binaire traditionnel (donc 011 correspondant à3) il suffit de rajouter un NAND sur chaque sortie. On peut ainsi aisément faire un codeur BCD (entrées actives au niveau bas mais sorties au niveau haut)


Notons que le 74147 est directement un codeur décimal-BCD mais dont les entrées et sorties sont actives au niveau bas et qui ne possède pas d'entrée de validation G1.


décodeur : n entrées 2n sorties
Pour chaque combinaison d'entrée une seule sortie est validée. Notons qu'il existe des décodeurs possédant une borne G1 de validation d'entrée, certains fournissent en sortie à la fois le niveau haut et bas (sur 2 séries de bornes).

Les décodeurs sont utilisés :
Par exemple, soit la fonction f = xyzt + xyzt + xyzt + xyzt + xyzt, chacun des termes de la fonction peut être obtenu avec un décodeur où

x = 20 soit xyzt = 15
y = 21 xyzt = 12
z = 22 etc..
t = 23  

d'où le câblage avec un décodeur par 16


Notons l'existence d'un décodeur BCD-décimal (4 entrées et seulement 10 sorties) : le circuit 7442 (sortie active niveau bas, entrée niveau haut)


transcodeur
Une application particulière des décodeurs est l'affichage très classique à 7 segments. Il s'agit de passer du BCD au mode 7 segments dont le schéma de principe est le suivant. Ici on prendra l'exemple du circuit TIL 302 dans lequel l'allumage d'un segment (diode électroluminescente) est obtenu en reliant la cathode correspondante au zéro.


Soit la table de vérité dans laquelle on ne s'intéresse qu'aux dix chiffres habituels. Parconvention on dira a=1 si a est allumé.

chiffre U3 U2 U1 U0   a b c d e f g
0 0 0 0 0   1 1 1 1 1 1  
1       1     1 1        
2     1     1 1   1 1   1
3     1 1   1 1 1 1     1
4   1         1 1     1 1
5   1   1   1   1 1   1 1
6   1 1         1 1 1 1 1
7   1 1 1   1 1 1        
8 1         1 1 1 1 1 1 1
9 1     1   1 1 1     1 1

On va exploiter le diagramme de Karnaugh pour expliciter les fonctions associées à chacune des électrodes. Prenons a pour commencer


Sur ce diagramme on a figuré en rouge le chiffre correspondant à chaque case, ainsi la case 4 en bas à gauche correspond bien à U0U1U2U3 comme l'indique la ligne 4 de la table de vérité. Les cases comportant un X sont celles correspondant au décodage des chiffres supérieurs à 9 qui ne nous intéressent pas ici. Ces cases seront donc indifféremment mises à 1 ou 0 selon le besoin de simplification. Les cases à 1 correspondent aux 1 de la colonne a dans la table de vérité.

La remarque importante est qu'une diode sera allumée si l'on met sa cathode à zéro. Ce sont donc les états 0, et non 1 comme habituellement, qui vont nous intéresser ici et on va calculer non pas a mais a. Sur le tableau de Karnaugh ci-dessus on voit donc que l'on dispose d'un 0 en haut isolé ce qui nous donne donc U0U1U2U3 et en bas à gauche on a deux 0 juxtaposés avec deux cases indifférentes ce qui conduit à une simplification par U1U3 il reste donc U2U0.

On adoptera la même démarche pour l'ensemble des autres électrodes et au final on aboutit à la série d'équations suivante :

a = U0U1U2U3 + U0U2

b = U0U1U2 + U0U1U2

c = U0U1U2

d = U0U1U2 + U0U1U2 + U0U1U2

e = U0 + U1U2

f = U0U1 + U1U2 + U0U2U3

g = U1U2U3 + U0U1U2

D'où le schéma du décodeur dont le type est le 7447 qui comporte en outre 3 entrées de validation et de test dont la combinaison permet soit un affichage normal, soit l'extinction de tous les segments, soit leur allumage (test)


Comparateur
C'est un circuit lui aussi fréquemment employé et dont la fonction est de comparer 2 nombres binaires. Nous donnons ici le principe dans le cas de comparaison de deux nombres a et b d'un seul bit.

a b a > b a = b a < b
0 0 0 1 0
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0
    f = a b f = a ou exclusif b
f = a b

D'où on tire le logigramme qui est très simple.

Il existe un circuit intégré permettant la comparaison non de bits mais directement de mots de 4 bits. Lorsqu'on voudra comparer des mots de plus de 4 bits on placera deux comparateurs en cascade en reliant les sorties du premier aux entrées du second sur lequel on entrera les poids fort des mots A et B.



Hit-Parade pour changer de module