Circuits Logiques ELE1300 Objectifs Introduction au code de Gray
Transcription
Circuits Logiques ELE1300 Objectifs Introduction au code de Gray
Objectifs • Connaître Circuits Logiques ELE1300 des formes d’encodage de l’information en binaire Le concept de distance entre des mots binaires • Être capable de Codes et contrôle des erreurs Passer d’un format d’encodage à un autre Coder, détecter et corriger des erreurs de transmission JP David Circuits logiques - JP David 9 avril 2013 Introduction au code de Gray 2 Le code de Gray (CAS IDÉAL) v2(t) 0 0 0 0 1 1 1 1 v1(t) 0 0 1 1 0 0 1 1 v0(t) 0 1 0 1 0 1 0 1 Nombre observé : 000 001 010 011 100 101 110 111 t v2(t) t v1(t) t (CAS RÉEL) v2(t) v1(t) v0(t) Nombre observé : v0(t) 0 0 0 0 0 1 0 1 0 000 001 010 011 9 avril 2013 0 1 1 1 0 1 0 1 0 1 0 011 100 101 110 101 Circuits logiques - JP David 0 0 0 1 1 1 1 t 0 0 1 1 1 1 0 0 t 0 1 1 000 001 011 0 0 1 1 010 110 111 101 0 1 1 111 0 1 1 111 Nombre observé : t 100 t t t 111 3 9 avril 2013 Circuits logiques - JP David 4 Décimal Codé Binaire (BCD) Construction du code de Gray Il est possible de construire la séquence du code de Gray de façon itérative jusqu’au nombre de bits désiré. Début Itération 1 résultat précédent des 0 00 01 11 10 0 1 Itération 2 résultat précédent des 0 0 00 0 01 0 11 0 10 1 10 1 11 1 01 1 00 mirroir des 1 mirroir … • Quand on veut afficher la valeur 13h27 (par exemple sur un four à micro-ondes), il faut afficher 4 chiffres décimaux. On peut alors utiliser un codage binaire pour chaque chiffre plutôt que pour le nombre lui-même. • 1327 = 1|3|2|7 = 0001 | 0011 | 0010 | 0111 • On utilise donc 4 bits pour coder la valeur de chaque chiffre des 1 Circuits logiques - JP David 9 avril 2013 5 Circuits logiques - JP David 9 avril 2013 Le texte (codage ASCII) D’où viennent les erreurs ? L\H 0 1 2 3 4 5 6 0 NUL DLE SP 0 @ 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 7 B VT ESC + ; K [ k { C FF FS , < L \ l | D CR GS − = M ] m } E SO RS . > N ^ n ~ F SI US / ? O _ o DEL Illustration de la problématique : f {v(t)} + BRUIT v(t) ÉMETTEUR CANAL RÉCEPTEUR DISTORSION BRUIT COUPURES BITS ÉMIS 1 0 1 0 0 1 Circuits logiques - JP David 0 1 0 0 v(t) t f {v(t)} + BRUIT BITS REÇUS t 1 0 1 0 1 1 ERREUR 9 avril 2013 6 7 9 avril 2013 Circuits logiques - JP David 0 0 0 0 ERREUR 8 La distance Hamming Exemple : le bit de parité • Définition : bn Nombre d’inversion de bits entre 2 mots : • Exemple : A = 11100000 et B = 10100011 • A XOR B = 01000011, soit une distance de 3 Le bit p est tel que : ou ou le nombre de bits 0 est impair 9 9 avril 2013 Circuits logiques - JP David Aucune détection d’erreur possible 10 Exemple : le bit de parité (suite) 110 111 100 000 BITS ÉMIS : 1100 1111 1001 0000 BITS REÇUS : 1110 1111 0101 0001 INFORMATION À TRANSMETTRE : Distance minimale observée : 1 bit codage le plus utilisé le nombre de bits 1 est impair Exemple : le bit de parité (suite) 0000 0011 0101 0110 1001 1010 1100 1111 bit de parité (ou d’imparité) ou Circuits logiques - JP David 000 001 010 011 100 101 110 111 p le nombre de bits 0 est pair • Soit 8 combinaisons licites/16 et la distance de Hamming minimale entre deux mots vaut 2 MOT DE CODE b1 le nombre de bits 1 est pair Pour des mots de 3 bits, on peut ajouter un bit de parité : NOMBRE BINAIRE b2 n bits d’information • Le principe de la détection d’erreur consiste à augmenter artificiellement la distance entre 2 quelconques mots de données en ajoutant des bits supplémentaires 9 avril 2013 bn −1 b3 Distance minimale observée : 2 bits Une erreur dans un mot de code est détectable. PARITÉ NON VÉRIFIÉE L’ERREUR EST DÉTECTÉE PARITÉ VÉRIFIÉE Capacité de détection : 1 erreur par mot de code PARITÉ VÉRIFIÉE LES ERREURS NE SONT PAS DÉTECTÉES PARITÉ NON VÉRIFIÉE L’ERREUR EST DÉTECTÉE 9 avril 2013 Circuits logiques - JP David 11 9 avril 2013 Circuits logiques - JP David 12 La correction d’erreurs La parité orthogonale • Pour détecter des changements sur n bits, il faut une distance de Hamming de n+1 entre tous les mots licites. • Pour détecter et corriger des changements sur n bits, il faut une distance de Hamming de 2n+1 entre tous les mots licites. Ex, n=5, D=11 Si un mot subit 5 inversions de bit, il sera à une distance 5 du mot d’origine et minimum 6 de tous les autres. On peut donc le retrouver en cherchant le seul et unique mot donc la distance est inférieure ou égale à 5. Circuits logiques - JP David 9 avril 2013 13 INFORMATION : BITS ÉMIS : 9 avril 2013 La parité orthogonale (suite) BITS ÉMIS : 1100 1111 1001 0000 1010 BITS REÇUS : 1100 1011 1001 0000 1010 L’ERREUR EST CORRIGIBLE 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 111 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1100 1111 100 000 1001 0000 1010 Circuits logiques - JP David 14 Le code de Hamming • Soit un mot de N bits numérotés b0..bN-1 • On crée un nouveau mot de N+P bits numérotés H0..HN+P-1 • Hx est un bit de parité pour x = 2j (1,2,4 …) • Hi est un bit de donnée bk sinon. • Soit B(i), l’expression binaire de i Vérification : 1 1 0 110 PARITÉ NON VÉRIFIÉE Hi participe au codage de parité de Hx si et seulement si B(i) a un ‘1’ commun avec B(x) PARITÉ NON VÉRIFIÉE 9 avril 2013 Circuits logiques - JP David 15 9 avril 2013 Circuits logiques - JP David 16 Le code de Hamming (suite) A Le code de Hamming (suite) A B Parité A Parité B b1 b2 b3 Parité A =? b0 En parité paire, le nombre de ‘1’ doit être pair. Parité A = 0 C Circuits logiques - JP David 17 ? ? 1 ? 0 0 1 ? 0 0 1 1 1 1 0 ? 1 1 0 0 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 • Le bit 4 se code en binaire : 00100, il sert donc à calculer la parité de :00101 (5), 00110 (6), 00111 (7),01100 (12), 01101 (13), 01110 (14), 01111 (15),10100 (20), 10101 (21) Circuits logiques - JP David 0 C Circuits logiques - JP David 18 Le code de Hamming (suite) • Encoder le nombre : 1001001111 0110 01 9 avril 2013 1 Parité C =? 9 avril 2013 Le code de Hamming (suite) Parité B =? 0 1 Parité C 9 avril 2013 B 19 0 1 0 0 0 0 1 2 0 0 0 1 0 1 3 0 0 0 1 1 4 0 0 1 0 0 0 5 0 0 1 0 1 0 6 0 0 1 1 0 1 7 0 0 1 1 1 8 0 1 0 0 0 0 9 0 1 0 0 1 0 10 0 1 0 1 0 1 11 0 1 0 1 1 1 12 0 1 1 0 0 1 13 0 1 1 0 1 1 14 0 1 1 1 0 0 15 0 1 1 1 1 16 1 0 0 0 0 1 17 1 0 0 0 1 1 18 1 0 0 1 0 0 19 1 0 0 1 1 0 20 1 0 1 0 0 1 21 1 0 1 0 1 0 1 0 0 0 0 1 1 2 0 0 0 1 0 1 3 0 0 0 1 1 4 0 0 1 0 0 0 5 0 0 1 0 1 0 6 0 0 1 1 0 1 7 0 0 1 1 1 8 0 1 0 0 0 0 9 0 1 0 0 1 0 10 0 1 0 1 0 1 11 0 1 0 1 1 1 12 0 1 1 0 0 1 13 0 1 1 0 1 1 14 0 1 1 1 0 0 15 0 1 1 1 1 16 1 0 0 0 0 1 17 1 0 0 0 1 1 18 1 0 0 1 0 0 19 1 0 0 1 1 0 20 1 0 1 0 0 1 21 1 0 1 0 1 0 1 0 0 0 0 1 1 2 0 0 0 1 0 1 3 0 0 0 1 1 1 4 0 0 1 0 0 0 5 0 0 1 0 1 0 6 0 0 1 1 0 1 7 0 0 1 1 1 8 0 1 0 0 0 0 9 0 1 0 0 1 0 10 0 1 0 1 0 1 11 0 1 0 1 1 1 12 0 1 1 0 0 1 13 0 1 1 0 1 1 14 0 1 1 1 0 0 15 0 1 1 1 1 16 1 0 0 0 0 1 17 1 0 0 0 1 1 18 1 0 0 1 0 0 19 1 0 0 1 1 0 20 1 0 1 0 0 1 21 1 0 1 0 1 0 1 0 0 0 0 1 1 2 0 0 0 1 0 1 3 0 0 0 1 1 1 4 0 0 1 0 0 0 5 0 0 1 0 1 0 6 0 0 1 1 0 1 7 0 0 1 1 1 0 8 0 1 0 0 0 0 9 0 1 0 0 1 0 10 0 1 0 1 0 1 11 0 1 0 1 1 1 12 0 1 1 0 0 1 13 0 1 1 0 1 1 14 0 1 1 1 0 0 15 0 1 1 1 1 16 1 0 0 0 0 1 17 1 0 0 0 1 1 18 1 0 0 1 0 0 19 1 0 0 1 1 0 20 1 0 1 0 0 1 21 1 0 1 0 1 0 1 0 0 0 0 1 1 2 0 0 0 1 0 1 3 0 0 0 1 1 1 4 0 0 1 0 0 0 5 0 0 1 0 1 0 6 0 0 1 1 0 1 7 0 0 1 1 1 0 8 0 1 0 0 0 0 9 0 1 0 0 1 0 10 0 1 0 1 0 1 11 0 1 0 1 1 1 12 0 1 1 0 0 1 13 0 1 1 0 1 1 14 0 1 1 1 0 0 15 0 1 1 1 1 1 16 1 0 0 0 0 1 17 1 0 0 0 1 1 18 1 0 0 1 0 0 19 1 0 0 1 1 0 20 1 0 1 0 0 1 21 1 0 1 0 1 9 avril 2013 Circuits logiques - JP David 20