Dans les transmissions
numériques par par infra-rouge,
télécommandes par exemple, on utilise souvent un
code d’émission, dit code ligne tel que chaque bit
émis est transmis sur deux périodes de
l’horloge. On se propose ici de réaliser un codeur
qui transforme des données binaires
d’entrée, din, qui arrivent à raison
d’un bit toutes les deux périodes
d’horloge, en un code ligne, sligne, qui est construit de la
façon suivante :
si din = '0' : sligne = '0' pendant une période
d’horloge
puis sligne = '1' pendant une période d’horloge.
si din = '1' : sligne = '0' pendant deux périodes
d’horloge
ou sligne = '1' pendant deux périodes d’horloge,
en alternance.
L’alternance signifie que le
niveau correspondant à un '1' logique pour din change
d’une fois à l’autre, que les '1'
successifs soient ou non séparés par des '0'. Le
chronogramme ci-dessous donne un exemple de transmission.
Le codeur qui transforme din en sligne reçoit en
entrée l’horloge et din. Il fournit en sortie
sligne, retardée d’une période
d’horloge, car le plus simple est de concevoir une machine de
MOORE.
A
combien d’états internes correspond
l’émission d’un bit ?
Pourquoi
les états correspondant à
l’émission des codes pour des valeurs din =
‘1’ successives ne peuvent ils pas être
toujours les mêmes ? (évident)
Pourquoi
les états correspondant à
l’émission des codes pour din =
‘0’ ne peuvent ils pas être toujours les
mêmes ? (question plus difficile)
Déduire
de l’analyse précédente le nombre
d’états que doit posséder le codeur.
Proposer
une ébauche de diagramme de transitions. On nommera les
états par des noms, par exemple pzero0 et pzero1 pour
l’émission d’un zéro, dans
l’un des cas analysée au point c. A ce niveau on
représentera les transitions importantes, mais pas
forcément toutes les transitions possibles.
Le
codeur peut, en début d’émission, ne
pas être synchronisé correctement.
Compléter le diagramme précédent pour
garantir qu’il se synchronise aussi vite qu’il peut
le faire.
Choisir
un codage intelligent pour les états.
Proposer
une solution VHDL au problème.
Proposer
une solution pour le décodeur.