◦ Systèmes logiques - TD n 1 : Détection d'erreurs lors du codage de l'information Pour contrôler la position et la vitesse de chariots de manutention, de machines d'usinage, de bras de robots, etc., on utilise souvent des codeurs optiques rotatifs, xés à l'extrémité de l'axe de transmission de mouvement (comme illustré sur la Figure 1). On distingue deux types de codeurs : les codeurs incrémentaux et les codeurs absolus. Le codeur absolu donne, sur un tour, un code qui est l'image de la position angulaire réelle du mobile à contrôler et donc, par rapport au codeur incrémental, il a l'avantage d'être insensible aux coupures de tension. Figure 1 Mise en ÷uvre d'un codeur rotatif Ce codeur optoélectronique comporte un disque muni, selon les modèles, de fentes ou bien de surfaces mates et rééchissantes disposées sur plusieurs pistes concentriques (six à treize le plus souvent). Chaque piste est équipée d'un capteur optique dont la variable de sortie est binaire (bit de poids faible sur la périphérie et bit de poids fort vers le centre). La technique permet actuellement de fabriquer des disques comportant plus de vingt pistes voire plus pour des applications très particulières. On comprend aisément que plus le nombre de pistes est important, plus la résolution du codeur est élevée et donc plus il est précis. Le disque représenté sur la Figure 2 est muni de onze pistes et les onze capteurs optiques, immobiles, sont disposés en ligne selon un rayon du disque tournant, dans le boîtier noir ayant la forme d'un secteur angulaire. 1 Résolution et précision du codeur Question 1 : Pour un disque muni de n pistes, et donc de n capteurs, exprimer le nombre R des diérentes combinaisons possibles des n variables logiques de sortie (R est en fait la résolution du codeur). Faire ensuite l'application numérique pour n = 11. 1 Figure 2 Disque à 11 pistes d'un codeur rotatif Question 2 : Donner, en fonction de n, la précision P en degrés de l'information fournie par le codeur. Calculer P pour n = 11. 2 Codage de l'information Pour une étude simpliée, on va s'intéresser à un disque muni de 4 pistes et donc de 4 capteurs. Le modèle présenté sur la Figure 3 est en code binaire naturel : ce code a l'avantage d'être directement utilisable dans des calculs arithmétiques et de comparaisons, mais il présente le grave inconvénient d'avoir, pour certaines positions angulaires, plusieurs bits qui changent d'état en même temps, ce qui peut produire des ambiguïtés à la lecture si, par exemple, les capteurs ne sont pas parfaitement alignés. Pour cette raison, on préférera donc souvent utiliser le code Gray ou code binaire rééchi. Figure 3 Disque à 4 pistes Question 3 : Compléter la table de correspondance fournie ci-après entre la position angulaire (en base 10) et le code Gray. 3 Transcodage de l'information Pour transmettre cette information de position angulaire en toute sécurité, on va la coder ensuite selon le code de Hamming [7,4,3]. Ce code permettra au récepteur de détecter une erreur éventuelle et de la corriger. On va donc chercher à synthétiser un transcodeur Gray - Hamming [7,4,3]. Le code 2 Position angulaire 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A3 0 0 0 0 Code Gray A2 A1 0 0 0 0 0 1 0 1 A0 0 1 1 0 Code Hamming [7,4,3] C6 C5 C4 C3 C2 C1 C0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 Bit de parité PI 0 1 1 0 Hamming [7,4,3] porte ce nom car il comporte 7 bits dont 4 bis de données et 3 bits de vérication : le transcodeur aura donc 4 entrées (A3, A2, A1, A0) et 7 sorties (C6, C5, C4, C3, C2, C1, C0). Question 4 : Compléter la table de correspondance entre le code Gray et le code Hamming [7,4,3] sachant que l'on retrouve le code binaire naturel pour les quatre bits forts (C6, C5, C4, C3) et que C2 = A3 ⊕ A1, que C1 = A3 ⊕ A2 ⊕ A0 et que C0 = A3 ⊕ A1 ⊕ A0. Pour plus de sécurité encore, on va utiliser en plus un bit de parité impaire noté PI. Sa valeur est 1 quand le nombre de bits à 1 du code Hamming [7,4,3] est impair. Elle vaut 0 dans le cas contraire. Le transcodeur aura donc maintenant 4 entrées (A3, A2, A1, A0) et 8 sorties (C6, C5, C4, C3, C2, C1, C0, PI). Ce code complété permettra au récepteur de détecter deux erreurs éventuelles et d'en corriger une. Question 5 : Compléter la table en donnant les valeurs du bit de parité impaire . À titre de vérication, on peut observer que chaque colonne du tableau présente autant de 0 que de 1. Question 6 : Construire le tableau de Karnaugh correspondant à la sortie du transcodeur PI en fonction de ses entrées (A3, A2, A1, A0). Donner ensuite l'expression de la fonction PI(A3, A2, A1, A0) en n'utilisant qu'une seule opération logique. Question 7 : Tracer le logigramme complet du transcodeur en n'utilisant que sept cellules OU exclusif : on reliera ses variables d'entrée (A3, A2, A1, A0) à ses variables de sortie (C6, C5, C4, C3, C2, C1, C0, PI). 3 4 Détection d'erreurs Le système de détection d'erreurs a pour entrée le mot (C6, C5, C4, C3 ; C2, C1, C0 ; PI). Question 8 : En s'intéressant à la variable Ep = C6 ⊕ C5 ⊕ C4 ⊕ C3 ⊕ C2 ⊕ C1 ⊕ C0, expliquer comment on détecte une seule erreur grâce au bit de parité impaire PI. Question 9 : Comparer la variable E0 = C6 ⊕ C5 ⊕ C3 avec C0, puis E1 = C5 ⊕ C4 ⊕ C3 avec C1 et E2 = C6 ⊕ C5 ⊕ C4 avec C2. Que valent E0, E1 et E2 si, par exemple, le bit d'entrée C2 est erroné ? Que valent E0, E1 et E2 si, par exemple, le bit d'entrée C6 est erroné ? Expliquer alors comment on peut détecter une seule erreur et la corriger (détailler les huit cas possibles). Question 10 : Trouver l'erreur et corriger le mot reçu (0,1,0,1 ;0,1,0 ;0) grâce à ce dispositif. Par quelle valeur du bit de parité ce mot (0,1,0,1 ;0,1,0 ; ?) doit-il être accompagné pour que le système de détection d'erreurs en détecte deux ? 4