Click here to load reader

Codage Manchester

  • View
    5.037

  • Download
    4

Embed Size (px)

Text of Codage Manchester

Universit des Sciences et Techniques de Lille

Rapport de mini projet :Initialisation au langage VHDL par tude dun metteur Manchester

Ralis par : Bouras Farid BekangbaGracia

Supervis par : Bourzgui

Sommaire

1. Introduction 2. Transmissions numriques et codage Manchester 3. Prparation : Etude de lmetteur 4. Le codeur 5. Le gnrateur pseudo-alatoire 6. Le diviseur 7. Synthse par macro-fonctions simulation de lEmetteur 8. Synthse en VHDL et simulation de lEmetteur 8.1. Diviseur de frquence 8.2. Gnrateur pseudo-alatoire 8.3. Codeur 8.4. Ensemble metteur

1. Introduction

Lvolution des circuits intgrs numriques, en particuliers les circuits programmables (CPLD, FPGA), conduit le concepteur raliser des systmes de plus en plus complexe. Notre mini projet a pour but de nous familiariser avec le langage VHDL par ltude dun metteur Manchester. Nous allons segmenter notre travail en quatre(4) grandes parties : prsentation du problme et justification de lutilisation du code Manchester fonctions implanter. synthse de lmetteur. reprendre la synthse en langage VHDL.

2. Transmissions numriques et codage Manchester

La transmission numrique consiste faire transiter les informations sur le support physique de communication sous forme de signaux numriques. Ainsi, des donnes analogiques devront pralablement tre numrises avant dtre transmises. Toutefois, les informations numriques ne peuvent pas circuler sous forme de 0 et de 1 directement, il sagit donc de les coder sous forme dun signal possdant deux tats, par exemple : -deux niveaux de tension par rapport la masse -la diffrence de tension entre deux fils -la prsence/absence de courant dans un fil Pour que la transmission soit optimale, il est ncessaire que le signal soit cod de faon faciliter la transmission sur le support physique. Il existe pour cela diffrents systmes de codage pouvant se classer en deux catgories : -le codage deux niveaux : le signal peut prendre uniquement une valeur strictement ngative ou strictement positive. -le codage trois niveaux : le signal peut prendre une valeur strictement ngative, nulle ou strictement positive. Le codage NRZ Le codage NRZ (non Return to zro) est le premier systme de codage, car le plus simple. Il consiste transformer les 0 en X et les 1 en +X, de cette faon on a un codage bipolaire dans lequel le signal nest jamais nul. Par consquent, le rcepteur peut dterminer la prsence ou non dun signal.

Il note aussi un codage NRZI qui est sensiblement diffrent du codage NRZ. Avec ce codage, lorsque le bit est 1, le signal change dtat aprs le top dhorloge. Lorsque le bit est 0, le signal ne subit aucun changement dtat. Le codage NRZI possdes de nombreux avantages, dont : -la dtection de la prsence ou non du signal -la ncessit dun faible courant de transmission du signal Par contre, il possde un dfaut : la prsence dun courant continu lors dune suite de 0, gnant la synchronisation entre metteur et rcepteur. Le codage Manchester

Le codage Manchester, galement appel codage biphas introduit une transition au milieu de chaque intervalle. Il consiste en fait faire un OU exclusif (XOR) entre le signal et le signal dhorloge, ce qui se traduit par un front montant lorsque le bit est 0, un front descendant dans le cas contraire. Lutilisation de ce codage supprime alors la composante continue.

3. Prparation : tude de lmetteur

oscillateur de rfrence

diviseur

horloge d'mission

gnrateur pseudo-alatoire

donnes NRZ codeur CPLD circuit d'interface (codage antipolaire, filtrage, amplification) sortie manchester

ligne

Nous avons ci-dessus le schma synoptique de lmetteur. Le signal dhorloge dmission par une division par 16 de la frquence est obtenu partir dun signal carr issu dun oscillateur quartz servant de rfrence temporelle stable. Dans notre cas de figure, nous ne disposons pas dun systme numrique ayant rellement des donnes transmettre, aussi nous le simulerons par un gnrateur pseudo-alatoire. Ce type de gnrateur permet de gnrer partir de lhorloge dmission une squence code NRZ. Cette dernire permettra de tester la fois lmetteur et le rcepteur avec un signal plus proche de la ralit quune suite de niveaux identiques ou quune alternance de 1 et de 0. A partir de ce signal et de lhorloge dmission, le codeur ralise la translation du code NRZ vers le code Manchester. Le circuit dinterface (non tudi) permet ensuite dattaquer la ligne.

4. Le codeur NRZ H MAN

En observant le chronogramme ci-dessus, on remarque que lentre H est recopie quand lentre du signal NRZ est 0 . Par contre on a linverse de H en sortie quand le signal NRZ gal 1 .

NRZ =0MAN =H

NRZ =1 MAN = H MAN = NRZ H + NRZ HOn reconnait ainsi la fonction ou exclusif

MAN = NRZ HAinsi la sortie MAN ne dpend pas dun tat prcdent, on a donc une fonction combinatoire. 5. Le gnrateur pseudo-alatoire Le gnrateur pseudo-alatoire gnre une suite priodique de (2 -1) bits cods NRZ partir de N bascules D montes en registre dcalage. Lon remarque que plus on augmente le nombre de bascules plus la suite numrique parat alatoire Lentr du registre dcalage est une combinaison par un ou exclusif (complment ou non) de la sortie du registre et dune ou plusieurs bascules intermdiaires dont le rang dpend de N.N

Aprs ralisation du gnrateur pseudo-alatoire laide du logiciel Max +plus II 10.2 BASELINE en crons un fichier quon a appel gene_alea.gdf, nous avons pu faire une simulation (voir chronogramme ci-dessous) en tenant compte que toutes les bascules ont leur sortie 0 lorigine des temps.

On a bien une succession de niveau alatoire sur 15bits que lon a ensuite periodise, cest ainsi que lon peut parler de suite pseudo-alatoire. Le gnrateur pseudo-alatoire prsente un tat de sortie qui bloque le systme. En effet on fonctionne ici sur une logique inverse donc le NL1 correspond au niveau 0 . La sortie de la porte tant reboucle en entre du registre a dcalage, si toutes les sorties de bascules sont au NL1 alors ltat 0 sera recopi en entre du registre ainsi se forme une boucle de niveau 0 . Daprs le schma du gnrateur on ralise la fonction pseudo-alatoire grce une porte XNOR dont la table de vrit est la suivante : A 0 0 1 B 0 1 0 Q (XOR) 1 0 0 /Q (XNOR) 0 1 1

1 6. Le Diviseur

1

1

0

A laide du logiciel nous avons cre un fichier divlogiciel.gdf dont le schma est reprsent ci-dessous.

Ainsi nous avons effectu une simulation du diviseur 16 dont le chronogramme est reprsent ci-dessous :

Afin de pouvoir proposer un schma structurel, il est important de rappeler le fonctionnement de la bascule D.

Bascule D sur front montant

Table de vrit : D Ck 0 1 X 0 Qn+1 0 1 Qn 1 0n n+1

Cest une bascule qui a deux entres (entre D et lhorloge) et une sortie. A chaque front montant dhorloge, Q recopie lentre D. sa fonction est donc une mmoire puisque linformation en entre se retrouve en sortie aprs chaque coup dhorloge. Cette bascule peut raliser une division par 2 en rinjectant la sortie a lentre D. cest ainsi quon obtient le diviseur par 16 ci dessous en mettant 4bascules

Qen cascades.

7. Synthse par macro-fonctions et simulation de lmetteur Par le biais du logiciel MAX+plus les fonctions prcdemment cres sont implantes dans des composants qui nous permettent ainsi de simuler lensemble du montage.

On voit sur les chronogrammes des impulsions parasites qui sont dues un dcalage entre les donnes NRZ et lhorloge dmission. Ces impulsions parasites nont en gnrale aucune incidence sur un systme rel car elles seraient supprimes par les filtres de sortie. Dans notre simulation la solution propose pour ce problme consiste resynchroniser la sortie du codeur en utilisant un montage mmoire utilisant une bascule D (schma cidessous).

Simulation

Signal parasits Nous observons bien que le fait de resynchroniser la sortie du codeur avec un montage mmoire (bascule D) entrane bien une disparition des impulsions parasites.

8. Synthse en VHDL et simulation de lEmetteur. Lensemble metteur rcepteur va maintenant tre dcrit en langage VHDL, description partir de laquelle le logiciel tablira les liaisons entre les diffrentes portes et bascules lintrieur du CPLD. 8.1. Diviseur de frquence Nous avons cris un programme qui dcrit un diviseur de frquence permettant dobtenir en sortie deux signaux de frquence 8 fois et 16 fois plus faible que celle du signal dentre.

Programme :

Nous avons effectu une simulation du programme afin de vrifier son fonctionnement. Le chronogramme est reprsent ci-dessous.

Simulation

On a bien pour le signal S8 une priode 8 fois plus grande que le signal H Idem pour le signal S16 avec une priode 16 fois plus grande.

8.2 Gnrateur pseudo-aleatoire : Nous avons ralis ici un programme dcrivant un gnrateur 4 bascules

Simulation :

Le chronogramme de NRZ montre bien une squence alatoire e niveau logique recopie tout les 16 fronts dhorloge.

Ce programme peut tre dcris de plusieurs faons ici on remplace la boucle for par loprateur de concatnation & .

8.3 - Le codeur Le codeur est en fait une porte xor et nous avons dcris son fonctionnement grce a un programme VHDL

H

H

NRZ =0MAN =H

NRZ =1 MAN = H MAN = NRZ H + NRZ HLe chronogramme du signal MAN prsente des impulsions parasites appeles glitchs Pour supprimer les parasites on va utiliser une bascule D comme prcdemment dcrite mais par le programme VHDL ci dessous

Ce programme est utilis dans une macro fonction BASCULED1

8.4 Ensemble metteur : Aprs avoir dcri par VHDL touts les macro-fonctions de lmetteur nous les avons assembls pour donner le montage suivant.

Simulation :

Lmetteur Manchester est bien gnr par le montage. Sur les chronogrammes prcdent on peut vrifier sont fonctionnement et aussi les diffrente tapes de traitement du signal notamment le diviseur de frquence, le gnrateur alatoire, le codeur et enfin la suppression des glitchs.