Systèmes logiques - TD n 1 : Détection d`erreurs lors du codage de l

publicité
◦
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
Téléchargement