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 2 n 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.

Code, codage et transcodeur

Embed Size (px)

Citation preview

Page 1: Code, codage et transcodeur

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.

Page 2: Code, codage et transcodeur

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

Page 3: Code, codage et transcodeur

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

Page 4: Code, codage et transcodeur

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é.

Page 5: Code, codage et transcodeur

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)

Page 6: Code, codage et transcodeur

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

Page 7: Code, codage et transcodeur

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.

Page 8: Code, codage et transcodeur

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

 

 

Page 9: Code, codage et transcodeur

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

Page 10: Code, codage et transcodeur

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, blancSOH Start of heading : début d'entêteSTX Start of text : début de texteETX End of text : fin de texteEOT End of transmission : fin de transmissionENQ Enquiry : demande - ex : identification du destinataire - ACK Acknowledge : accusé de réceptionBEL Bell : sonnerieBS Backspace : arrière de 1 caractèreHT TAB : Tabulation horizontaleLF Line Feed : saut de ligne VT Vertical tabulation : tabulation verticaleFF Form feed : page suivanteCR Carriage return : retour à la ligneSO Shift out : code suivant hors standardSI Shift in : retour aux codes standardDLE Data link escape : caract. suiv. changent de significationDC1 Device control 1 : DC2 Device control 2 : DC3 Device control 3 : DC4 Device control 4 : NAK Negative acknowledgement : réponse négativeSYN Synchronous idle : caractère de synchronisation

Page 11: Code, codage et transcodeur

ETB End of transmission block : fin de bloc de transmission CAN Cancel : annulation EM End of medium : fin du support SUB Substitute : substitutESC Escape : caractère d'échappementFS File separator : séparateur de fichierGS Group separator : séparateur de groupe RS Record separator : séparateur d'enregistrementUS Unit separator : séparateur d'enregistrementSP Space : espaceDEL 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 :