Sunteți pe pagina 1din 11

Code, codage et transcodeur

Définitions

Le codage est l'opération qui transforme une information (écriture décimal, position angulaire,
vitesse...) en écriture binaire dans un code de notre choix.
Un code est un est un langage composé de différents symboles ou mots.
Un mot est un ensemble de caractères numériques ou alphanumériques.
Le transcodage est le passage d'un code à un autre.

Code binaire pur

Ce code correspond au système de numération binaire et fait référence au code binaire naturel.
Les caractères sont des bits.
Les mots sont formés par une association ou combinaison de bits et avec n bits nous pouvons
former au maximum 2n mots.

Principe de base des transcodeurs

Les transcodeurs sont des circuits qui convertissent les différents codes entre eux. D'une manière
générale, nous pouvons définir le transcodage comme étant la représentation d'un élément de
l'ensemble A par un ou plusieurs éléments pris dans un ensemble B d'éléments. Le rapport
entre les deux quantités est déterminé par une règle de correspondance.

La représentation numérique la plus connue et la plus répandue en technique numérique est le code
binaire. Pour une meilleur lisibilité, le code binaire peut être reproduit en code octal (chaque triplet
de chiffres binaire est écris en nombre décimal). Parmi les autres codes nous citerons : les nombres
BCD (nombres décimaux codés en binaire), le code Aiken, le code plus 3, le code Gray, le code 1
parmi 10...

Chaque code présente deux attributs caractéristiques : la longueur m et le nombre de mot de code
n possible.

Pour le code BCD, par exemple, la longueur est m=4 et le nombre de mots de code (mots utiles)
N=10.
Il faut prendre en considération la différence entre un code complet et un code incomplet. Le code
complet contient tous les mots de code binaire ou combinaisons possibles. Par contre, le code
incomplet n'utilise qu'une partie des combinaisons possibles.
Le code BCD fait donc partie du groupe des codes incomplets étant donné qu'il n'utilise que 10 mots
de code binaire possibles sur 16.

Selon leur mode de fonctionnement les transcodeurs sont subdivisés en décodeurs et en codeurs.
Les décodeurs convertissent un code d'entrée de longueur m en code de sortie de 1 parmi n.
Pour les lignes d'entrée codées en binaire, il y a 2m = n mots de code possibles et donc n lignes de
sortie.
Sur le circuit de décodage illustré ci-dessus, la sortie active délivre un niveau logique 1, toutes les
autres sorties étant de niveau logique 0.
Si nous souhaitons avoir une sortie active à l'état bas, il suffit de remplacer les quatre portes ET par
des portes NON ET (nand).

Les codeurs convertissent un code d'entrée 1 parmi n en un code de sortie de longueur m. Pour n
lignes d'entrée, il y a m lignes de sortie pour un signal codé en binaire.

Code binaire naturel

Ce code peut s'établir selon deux méthodes.

La première consiste à l'affectation d'une valeur de poids croissant à chaque colonne.


Pour chaque puissance de 2, nous épuisons en colonne toutes les combinaisons dans l'ordre
croissant décimal, puis nous passons en ligne à la puissance de 2 immédiatement supérieure. Nous
effectuons alors toujours dans le même ordre toutes les combinaisons jusqu'à épuisement...

Une autre méthode consiste à établir une périodicité.


Chaque colonne correspond à une alternance de bits bien établie. Ainsi, en partant de la colonne de
poids faible (ou LSB = Low Significant Bit) à la colone de poids fort (ou MSB = Most Significant Bit)
nous avons une périodicité de 2, 4, 8, 16, 32... bits.

Attention à ne pas confondre périodicité et puissance de 2 !


Pour la colonne de périodicité de 21 (soit 2) nous avons une puissance de 2 égale à 20 soit un poids
binaire de 1
Pour la colonne de périodicité de 22 (soit une périodicité de 4) correspond une puissance de 2 égale
à 21 soit un poids binaire de 2 ...

Codes décimaux codés binaires (BCD)

La façon la plus simple de représenter les 10 chiffres décimaux par 4 variables binaires est de
prendre les 10 premières combinaisons des 4 variables du système binaire naturel.

Si nous affectons les poids 1, 2, 4, 8 à ces 4 variables, nous obtenons le tableau de correspondance
suivant :

Le fait d'affecter des poids aux variables binaires nous conduit à appeler le code obtenu "code
pondéré".
Ainsi le nombre le nombre 7 est représenté par la combinaison 0111 (7 = 0 + 4 + 2 + 1).
Le code 8421 (appelé aussi code 1248) est le plus simple des codes pondérés à 4 bits.
Voici quelques exemples de nombres représenté par le code 8421 :

Remarques :

Un code est dit «pondérés» quand il existe des nombres qui indiquent le poids des chiffres binaires.
En multipliant ces nombres par les chiffres binaires correspondants, on obtient l'équivalence
décimale.

Tous les autres codes dans lesquels on ne peut repérer le poids des chiffres binaires sont appelés
«non pondérés». Ils sont élaborés sur une base à développement mathématique complexe ou plus
simplement sont caractérisés par des tables faites spécialement.
Différents codes ont été imaginés, ayant diverses propriétés logiques et arithmétiques. Le choix de
l'un ou de l'autre type de code dépend exclusivement des applications auxquelles il est destiné.
Code Gray
Le code Gray est fréquemment utilisé dans les capteurs angulaires ou de positionnement, mais
aussi lorsque l'on désire une progression numérique binaire sans parasite transitoire.
Le code Gray sert également dans les tableaux de Karnaugh utilisés lors de la conception de
circuits logiques.

Code binaire réfléchi ou code Gray

Le code Gray est un code construit de telle façon qu'a partir du chiffre 0 chaque nombre consécutif
diffère du précédent immédiat 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 opère de telle manière 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 minimisée.

Construction du code Gray

Commençons par un exemple simple et établissons le code gray pour les 4 premiers chiffres
décimaux 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 manière qu'il
soit le bit le plus à droite possible conduisant à un nouveau nombre.
Ce qui donne les combinaisons suivantes :

Construction par la méthode du code binaire réfléchi ou code REFLEX

Le nom code binaire réfléchi vient d'une autre méthode 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 départ: zéro est codé 0 et un est codé 1 (1).


Puis, à chaque fois qu'on a besoin d'un bit supplémentaire (2),
on symétrise les nombres déjà obtenus (comme une réflexion dans un miroir)(3)
et on rajoute un 1 au début des nouveaux nombres (4) et un zéro sur les anciens.

Ci-dessous nous recommençons l'expérience pour les nombres (0)10 à (7)10.

Règle de formation du code Gray à partir du binaire pur

Soit un nombre N en binaire pur, pour obtenir son équivalent n en binaire réfléchi, il suffit
d'effectuer l'opération suivante :

Exemple :
soit N = 0111,
nous avons 2N = 1110 (pour multiplier par 2 on effectue un décalage de la droite vers la gauche).
On effectue maintenant l'opération OU Exclusif de N et 2N :

Puis nous divisons par 2 le résultat soit 1001 / 2 = 0100 (pour diviser par 2 on effectue un décalage
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 représentée 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
opération OU Exclusif.
Le circuit du transcodeur est très simple. En désignant par Bn (B1 = LSB) un bit quelconque en code
binaire pur et par Gn le bit recherché en code Gray, nous avons alors :

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 réalisation du circuit de transcodage.

Le code Gray en pratique

Ce code est surtout utilisé pour des capteurs de positions absolue , par exemple sur des règles
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) à zéro 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 préférence é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 problème en ne changeant qu'un seul bit.

Exemple de roue codeuse Gray :

Nous avons 16 positions angulaires détectées en 4 bits. La lecture s'effectue par 4 cellules
photosensibles.

Codage des caractères


Les codes de caractères

Afin de pouvoir transmettre ou stocker tous les types de caractères alphanumériques ou autres, des
codes conventionnels ont été établis. Chaque caractère est associé à son équivalent en code
numérique. Il existe de nombreux codes et nous pouvons citer pour mémoire le code ASCII ,
l'EBCDIC, L'UNICODE, l'UTF8...

Le code ASCII

Avec l'avènement des machines de traitement de l'information (téléscripteur, telex, ordinateur...) le


code ASCII (American Standard Code for Information Interchange) est adopté comme standard dans
les années 60.
Le code ASCII de base représentait les caractères sur 7 bits (c'est-à-dire 128 caractères possibles,
de 0 à 127). Le huitième bit est un bit de parité.

Exemple :
En écrivant GRAY en ASCII nous obtenons :

Avec la parité paire le résultat est le suivant :

Parité

L'intérêt particulier des contrôles de parité est de vérifier qu'aucune erreur simple se produit lors du
transfert d'un mot d'une mémoire à une autre.

Table des codes de caractères ASCII

Exemple :
Y = 59 (hexadécimal)
Y = 101 1001

ACK = 06
Les codes 0 à 31 sont des caractères de contrôle car ils permettent de faire des actions telles que le
retour à la ligne (CR), un Bip sonore (BEL)...
les majuscules sont représentées par Les codes 65 à 90 et les minuscules par les codes 97 à 122.
En modifiant le 6ème bit nous passons de majuscules à minuscules, c'est-à-dire en ajoutant 32 au
code ASCII en base décimale.

Les codes de contrôle ASCII

NUL Null : pas de caractère, blanc


SOH Start of heading : début d'entête
STX Start of text : début de texte
ETX End of text : fin de texte
EOT End of transmission : fin de transmission
ENQ Enquiry : demande - ex : identification du destinataire -
ACK Acknowledge : accusé de réception
BEL Bell : sonnerie
BS Backspace : arrière de 1 caractère
HT TAB : Tabulation horizontale
LF Line Feed : saut de ligne
VT Vertical tabulation : tabulation verticale
FF Form feed : page suivante
CR Carriage return : retour à la ligne
SO Shift out : code suivant hors standard
SI Shift in : retour aux codes standard
DLE Data link escape : caract. suiv. changent de signification
DC1 Device control 1 :
DC2 Device control 2 :
DC3 Device control 3 :
DC4 Device control 4 :
NAK Negative acknowledgement : réponse négative
SYN Synchronous idle : caractère de synchronisation
ETB End of transmission block : fin de bloc de transmission
CAN Cancel : annulation
EM End of medium : fin du support
SUB Substitute : substitut
ESC Escape : caractère d'échappement
FS File separator : séparateur de fichier
GS Group separator : séparateur de groupe
RS Record separator : séparateur d'enregistrement
US Unit separator : séparateur d'enregistrement
SP Space : espace
DEL Delete : suppression

Maintenant nous utilisons le code ASCII étendu. Il permet le codage de caractères sur 8 bits, soit
256 caractères possibles. Exemple d'une table de code étendu :

S-ar putea să vă placă și