You are on page 1of 4

Twitt - Partager

Code Gray
Le code Gray est frquemment utilis dans les capteurs angulaires ou de positionnement, mais aussi lorsque l'on dsire une progression numrique binaire sans parasite transitoire. Le code Gray sert galement dans les tableaux de Karnaugh utiliss lors de la conception de circuits logiques.

Code binaire rflchi ou code Gray


Le code Gray est un code construit de telle faon qu'a partir du chiffre 0 chaque nombre conscutif diffre du prcdent immdiat d'un seul digit. En l'exprimant autrement nous pouvons galement dire que l'on change un seul bit la fois quand un nombre est augment d'une unit. De plus, on opre de telle manire que le digit de transformation soit d'un poids faible. Si une erreur survient lors d'une transformation d'un nombre un autre elle est ainsi minimise.

Construction du code Gray


Commenons par un exemple simple et tablissons le code gray pour les 4 premiers chiffres dcimaux 0 3. Deux bits suffisent et les combinaison en binaire BCD sont les suivantes : Nous remarquons que pour aller du nombre (1)10 (2)10 nous changeons les deux bits la fois pour passer de (01)2 (10)2. En code Gray, pour passer d'une ligne la suivante, on inverse un seul bit de telle manire qu'il soit le bit le plus droite possible conduisant un nouveau nombre.

Ce qui donne les combinaisons suivantes :

Construction par la mthode du code binaire rflchi ou code REFLEX


Le nom code binaire rflchi vient d'une autre mthode de construction. Elle est plus pratique ou plus visuelle quand au choix du bit inverser lors du passage d'un nombre au suivant. On tabli un code de dpart: zro est cod 0 et un est cod 1 (1). Puis, chaque fois qu'on a besoin d'un bit supplmentaire (2), on symtrise les nombres dj obtenus (comme une rflexion dans un miroir)(3) et on rajoute un 1 au dbut des nouveaux nombres (4) et un zro sur les anciens.

Ci-dessous nous recommenons l'exprience pour les nombres (0)10 (7)10.

Rgle de formation du code Gray partir du binaire pur


Soit un nombre N en binaire pur, pour obtenir son quivalent n en binaire rflchi, il suffit d'effectuer l'opration suivante : Exemple : soit N = 0111, nous avons 2N = 1110 (pour multiplier par 2 on effectue un dcalage de la droite vers la gauche). On effectue maintenant l'opration OU Exclusif de N et 2N : Puis nous divisons par 2 le rsultat soit 1001 / 2 = 0100 (pour

diviser par 2 on effectue un dcalage de la gauche vers la droite). Nous avons alors : pour N = 0111 en binaire pur correspond n = 0100 en code Gray.

Convertisseur de code binaire en code gray


La construction du code Gray pour les nombres de 0 15 est reprsente par le tableau suivant : Etablissons un diagramme de Karnaugh pour G1, G2, G3, G4 partir de B1, B2, B3 et B4. Nous pouvons maintenant tablir les quations de G1 G4 : Nous pouvons remarquer que le passage du binaire pur au code Gray se fait en effectuant une opration OU Exclusif. Le circuit du transcodeur est trs simple. En dsignant par Bn (B1 = LSB) un bit quelconque en code binaire pur et par Gn le bit recherch en code Gray, nous avons alors : A partir de cette formule, il est tout fait possible de concevoir sans difficult le circuit reprsent ci-dessous.

Convertisseur de code gray en code binaire


Pour la conversion du code Gray en code binaire la relation suivante s'apparente l'quation vue pour le convertisseur inverse. L encore les fonctions OU Exclusif sont de mise pour la ralisation du circuit de transcodage. Les circuit reprsents ci-dessus peuvent tre tendus au nombre de bit ncessaires ou souhaits.

Le code Gray en pratique


Ce code est surtout utilis pour des capteurs de positions absolue , par exemple sur des rgles optiques ou un codeur angulaire solidaire d'un arbre. En effet, si on utilise le code binaire pur, pendant le passage de la position cinq (101)2 six (110)2 (changement simultan de 2 bits) il y a un risque de passage transitoire par quatre (100)2 ou sept (111)2, ce que le code Gray vite. On remarquera que le passage du maximum (quinze sur 4 bits) zro se fait galement en ne modifiant qu'un seul bit. Ceci permet par exemple d'encoder un angle, comme la direction d'une girouette ou la position d'un axe sur une machine automatique ou un robot. Pour la construction d'un codeur angulaire solidaire d'un axe il faut de prfrence tablir des ensembles de position angulaire multiples d'une puissance de 2 (2, 4, 8, 16, 32...) si l'on veut que le changement du nombre le plus lev du groupe vers le nombre le plus faible se fasse avec un seul bit. Pour une girouette huit position (0=Nord, 1=Nord-Est, 2=Est, ... 7=Nord-Ouest) le passage de Nord-Ouest Nord se fait galement sans problme en ne changeant qu'un seul bit. Exemple de roue codeuse Gray : Nous avons 16 positions angulaires dtectes en 4 bits. La lecture s'effectue par 4 cellules photosensibles.

You might also like