Beruflich Dokumente
Kultur Dokumente
Page
1 / 23
Nombre d’annexes : 4
Projet VHDL
Régis FOUQUET
Olivier VAUDELIN
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 2
SOMMAIRE
1. OBJECTIFS DU PROJET 3
2. CARACTERISTIQUES DU SIGNAL 3
2.1. L'ÉMETTEUR 3
2.2. LE SIGNAL HORAIRE 4
2.3. LES INFORMATIONS CONTENUES DANS LE SIGNAL HORAIRE 4
2.4. LE RÉCEPTEUR 6
3. ANALYSE FONCTIONNELLE 7
3.1. SCHEMA BLOCS 7
4. DESCRIPTIONS FONCTIONNELLES 8
4.1. LES HORLOGES DE SYNCHRONISATION 8
4.1.1. Pour la synchronisation du signal DCF 8
4.1.1.1. Le code VHDL de la division de fréquence 8
4.1.1.2. La simulation de la division de fréquence 9
4.1.1.3. Synchronisation par bascule D et H= 1Khz 9
4.1.1.4. La simulation de la bascule D de synchro 10
4.2. BLOC DE DETECTION DE DEBUT DE TRAME 11
4.2.1. Code VHDL de la détection de début de trame 11
4.2.2. La Simulation de la détection de début de trame 12
4.3. SELECTION DE LA TRAME MINUTES ET HEURES 13
4.3.1. Code VHDL du compteur par 21 13
4.3.2. Que donne la simulation 14
4.4. LE BLOC DE CONVERSION 14
4.4.1. Code VHDL du signal CONV 15
4.4.2. Les simulations des fonctions CPT150 et CONVERT 16
4.5. LA DE-SERIALISATION DE LA TRAME 17
4.5.1. Code VHDL de la fonction DECALAGE 17
4.5.2. Simulations de la fonction 18
4.6. LE DECODAGE DE L’AFFICHAGE 19
4.6.1. Les données d’entrée, adresses 19
4.6.2. Le contenu de la memoire, le décodage BCD- 7 segments 20
4.6.3. Simulation du décodage Mémoire 20
5. INTEGRATION DES BLOCS 21
6. PROGRAMMATION ET ESSAIS 22
6.1. SCHEMA D’INSTALLATION 22
6.2. ESSAI DE DETECTION 23
7. CONCLUSION 23
ANNEXES
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 3
1. OBJECTIFS DU PROJET
La réception des signaux horaires DCF77 est le seul moyen en Europe d'obtenir une
heure précise, de manière fiable, avec un récepteur simple et peu cher. (La réception de
signaux horaires provenant d'un satellite GPS est plus difficile à mettre en oeuvre).
Le but de ce projet est de détecter, décoder et afficher en VHDL l’heure absolue émise
par l’émetteur situé en Allemagne. Le décodeur sera intégré dans un FPGA 20K70 de
chez Altera, installé sur un kit pédagogique muni de 4 afficheurs 7 segments
2. CARACTERISTIQUES DU SIGNAL
2.1. L'ÉMETTEUR
La porteuse a une fréquence très stable, de 77,5 kHz (d'où le nom 'DCF77') et dérive de
l'horloge atomique. Les faibles fluctuations de cette fréquence sont principalement dues
à la propagation des grandes ondes dans l'atmosphère. Son écart relatif par rapport à la
fréquence de 77,5 kHz est en moyenne sur, 100 jours, de moins de 2.10E-13. Par
conséquent, elle peut être utilisée pour la synchronisation d'oscillateurs nécessitant une
grande précision.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 4
Le signal horaire DCF77 est composé d'une fréquence porteuse très stable de 77,5
kHz, modulée en amplitude par les signaux horaires codés en BCD (binary coded
digital).
L'onde porteuse est modulée par des impulsions, au rythme d'une par seconde. Ces
impulsions ce traduisent chaque seconde par une diminution de 25% de l'amplitude du
signal reçu. La durée d'une impulsion, détermine le niveau du bit reçu, à savoir qu'une
impulsion de 100 ms représente un bit à 0 et qu'une impulsion de 200 ms représente un
bit à 1.
Les informations horaires sont émises par trame d'une minute. Chaque trame est
divisée en soixante secondes, chacune d'entre elles débutant par le front de l'impulsion.
Il faut noter que, pour la 59ème seconde, il n'y a pas d'impulsion afin de permettre au
décodeur de repérer le début d'une trame. Ainsi, l'impulsion suivante détermine le début
de la trame suivante. Toute absence d'impulsion plus grande que 999 ms doit donc être
considérée comme le début d'une nouvelle trame.
Voici, sous forme schématique, la signification des 59 bits reçus durant une minute :
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 5
CET correspond à l'heure d'hiver, et CEST correspond à l'heure d'été. Il s'agit de l'heure
légale de la plupart des pays d'Europe.
• 19 (A2) : Indique qu'une seconde va être supprimée pour corriger les irrégularités de la rotation de
la terre.
• 20 (S) : Bit de début de codage des informations horaires (toujours à 1).
• 21 - 27 : Minutes codées en BCD, bit de poids faible en premier.
N° bit 21 22 23 24 25 26 27
Valeur 1 2 4 8 10 20 40
• 50 - 57 : Année (sur deux chiffres) codées en BCD, bit de poids faible en premier.
N° bit 50 51 52 53 54 55 56 57
Valeur 1 2 4 8 10 20 40 80
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 6
Pour mieux fixer les idées, voici l'exemple du codage des bits 21 à 28 de la trame émise
pendant la minute 34. Ils codent donc les informations de la minute suivante, à savoir la
minute 35.
2.4. LE RÉCEPTEUR
Le signal horaire DCF77 parvient sous forme de grandes ondes, à une fréquence de
77,5 kHz, sur une antenne puis est démodulé par un récepteur accordé sur cette
fréquence. On obtient à la sortie de ce récepteur un signal logique, correspondant aux
impulsions de 100 et 200 ms émises. C’est ce signal que nous allons par un décodeur
en VHDL afin d'obtenir les informations de minutes et d’heure.
VHDL
Les modules sans décodeur produisent à partir du signal grandes ondes reçu, des
impulsions de 100 ou 200 ms. Ces signaux doivent ensuite être traités par un décodeur
adéquat (EPLD ou FPGA, ...).
Le module BN641138
Ce module récepteur DCF77 possède sa propre antenne en
ferrite. Il peut alimenté entre 1,2 et 15V, consomme environ 3
mA. La sortie se fait sur un bornier, et on a le choix entre une
sortie normale et une sortie inversée (Sortie collecteur NPN
ouvert).
Il est disponible entre autres chez Conrad et Selectronic à un
prix d'environ 12 euros.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 7
3. ANALYSE FONCTIONNELLE
SYNCHRO
SIGNAL DCF
CLK
1 CONVERSION
KHz DETECTION SERIE - //
DEBUT DE
TRAME 4 RAM
FPGA
CLK
25
MHz SELECTION
CONVERSION
DE LA TRAME
IMPULSIONS
MINUTES &
en LOGIQUE
HEURES
Signal DCF
Légende Syncro Trame
Bus //
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 8
4. DESCRIPTIONS FONCTIONNELLES
L’horloge d’entrée du circuit programmable de type Flex10K que nous utilisons sur le Kit
de programmation est de 25,175MHz.
Cette sortie 1KHz va nous permettre pour le bloc suivant de synchroniser la trame DCF
de fréquence 1Hz, afin de rendre notre application de décodage et d’affichage
synchrone. C’est le rôle du bloc DIVFREQ.
library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;
ENTITY divfreq IS
PORT (
ck : IN STD_LOGIC;
reset : IN STD_LOGIC;
div: OUT STD_LOGIC
);
END divfreq;
END numero1;
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 9
Comme le montre le relevé de simulation ci-dessus, nous obtenons bien une fréquence
de sortie de 50Hz, divisée par 10 par rapport à l’entrée.
Afin de rendre cette application syncrhone, le signal d’entrée DCF est synchronisé sur
l’horloge 1Khz, à l’aide d’une bascule D. Ce blos est nommé BASCULE D.
-- Bascule D,
-- Mise en Forme du Signal , Syncro signal DCF avec h = 1Khz
library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;
ENTITY basculed IS
PORT (
d : IN STD_LOGIC;
h : IN STD_LOGIC;
raz : IN STD_LOGIC;
q : OUT STD_LOGIC
);
END basculed;
VHDL
page 10
BEGIN
if raz='0' then q<='0';
elsif h'event and h='1' then q<=d;
end If;
END PROCESS;
END archi1;
Nous avons sur l’entrée signal (trame DCF d’entrée) , représenté la sortie le signal DCF
synchro avec l’horloge CLOCK de 1KHz.
En faisant un zoom sur les fronts de ‘Signal’ et ‘DCF’, nous observons que sur le front
montant de CLOCK, DCF recopie SIGNAL.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 11
Le but de ce bloc « DEBTRAME » est de détecter le bit 59, celui-ci est dit manquant car
il ne correspond ni à un niveau ‘1’ ni à un niveau ‘0’
Pour réaliser une telle fonction, il faut calculer le temps qui sépare chaque état du signal
DCF, celle-ci se nomme debtrame.vhd, si le temps dépasse 900ms, c’est que le bit 59
est détecté, par mesure de sécurité nous décidons de temporiser à 1200ms
-- Compteur 1200ms
-- Detection du début de trame => Q= 1
library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;
ENTITY debtrame IS
PORT (
H: IN STD_LOGIC;
DCF: IN STD_LOGIC;
RAZ: IN STD_LOGIC;
S: BUFFER INTEGER RANGE 0 TO 1500;
Q: OUT STD_LOGIC
);
END debtrame;
VHDL
page 12
IF (DCF='0') then
S <= S + 1;
END PROCESS;
END archi;
1200ms
Dès lors il va donc être possible de détecter le début de trame minutes et heure par un
simple comptage.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 13
Pour cela le bloc « COMPTE21 », permet de sélectionner la trame série à partir du bit
21 et donc comme l’indique la table en Annexe B de lire les poids des minutes puis ceux
des heures.
Le niveau de sortie de cette fonction passe à 1 dès que le bit 21 est détecté et repasse
à 0 à la détection de la fin de trame des heures, nous utiliserons cette fonction, sur front
descendant, plus tard afin de mémoriser le décodage par ROM.
-- Compteur 21 pulses
-- Detection du début de trame minutes => Q= 1
library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;
ENTITY compte21 IS
PORT (
H: IN STD_LOGIC; -- Signal DCF
RAZ: IN STD_LOGIC;
S: BUFFER INTEGER RANGE 0 TO 59;
Q: OUT STD_LOGIC
);
END compte21;
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 14
Remarque :
A noter que à la place du Else Q<=’0’, il est possible pour réitérer la mesure toute les
minutes de mettre à la place :
ElsIF (S=37) THEN Q<='0'; S<=-21;
Avec S: BUFFER INTEGER RANGE -22 TO 59; dans les déclarations.
Pour réaliser cela, nous avons choisis de la réaliser en deux étapes : 1 compter le
temps que reste le niveau haut du signal DCF, et ensuite la fonction CONVERT est
synchrone avec le signal DCF et permet de comparer à t=150ms, sur son front
descendant, le niveau du signal DCF. fonctionne alors de la manière suivante :
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 15
library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;
ENTITY convert IS
PORT (
H: IN STD_LOGIC; -- Horloge 1Khz
RAZ: IN STD_LOGIC;
DCF: IN STD_LOGIC; -- Signal à mesurer
N: BUFFER INTEGER RANGE 0 TO 1000;
Q: OUT STD_LOGIC -- Signal de sortie
);
END convert;
PROCESS(DCF)
BEGIN
IF RAZ='0' THEN Q<='0';
ELSIF (DCF'EVENT AND DCF='0') THEN
IF N > 150 THEN Q <='1';
ELSE Q <= '0';
END IF;
END IF;
END PROCESS;
END archi;
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 16
Le signal CPT150 est l’ancien signal de syncro remplacé tout simplement par le signal
DCF
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 17
En entrée le signal CONV, la syncronisation s’effectue sur le front montant de DCF pour
DCfF= 1
ENTITY decalage IS
PORT (
h : IN STD_LOGIC;
e : IN STD_LOGIC;
clr : IN STD_LOGIC;
s : BUFFER STD_LOGIC_VECTOR (13 DOWNTO 0)
);
END decalage;
END IF;
END PROCESS;
END archi1;
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 18
Sur une vue plus globale de la simulation, le décalage complet de la trame série,
pendant la durée fixée par CPT21.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 19
Les bits du port de sortie S13 correspondent aux informations minutes et heures que
nous allons pouvoir décoder à l’aide du composant LPM_ROM.
Remarque : le bit S(7) est le bit de parité des minutes, n’est pas utilisé
Chaque partie du signal S est dirigée vers les mémoires RAM du FPGA, ou par
décodage d’adresse il est possible de générer 4 fois 7 signaux de commande des
afficheurs.
Le contenu des mémoires est identique pour le décodage des unités, différent pour les
dizaines de minutes et les dizaines d’heures.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 20
Les différents fichiers aux extensions MIF sont garant du contenu des Mémoires
utilisées :
ADDRESS_RADIX=DEC; ADDRESS_RADIX=DEC;
ADDRESS_RADIX=DEC;
DATA_RADIX=BIN; DATA_RADIX=BIN;
DATA_RADIX=BIN;
CONTENT CONTENT
BEGIN CONTENT BEGIN
0: 0000001; BEGIN 0: 0000001;
1: 1001111; 0: 0000001; 1: 1001111;
2: 0010010; 1: 1001111; 2: 0010010;
3: 0000110; 2: 0010010;
4: 1001100; 3: 0000110; END;
5: 0100100; 4: 1001100;
6: 0100000; 5: 0100100;
7: 0001111;
END;
8: 0000000;
9: 0000100;
END;
Nous validons avec ce système que les valeurs obtenues au moment ou CPT21
repasse à 0 correspondent bien au décodage de minutes et de heures contenues dans
la trame DCF, pour le suivi des états lors de la simulation, le graphique ci-dessus à été
pris avec /DCF comme synchronisation mémoire.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 21
Sous MaxPlus+2, nous utilisons l’interface graphique afin d’intégrer les différents blocs.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 22
6. PROGRAMMATION ET ESSAIS
PC
Boitier
DCF
Il est nécessaire d’alimenter le kit de développement Altera avec une tension de 7V,
bien faire attention à la limitation de courant de l’alimentation.
Le boîtier de réception DCF est également à alimenter en +5,1V, le signal de sortie est
à connecter sur la carte Afficheurs reliée au kit de développement par un câble en
nappe.
Il permet également de valider les signaux simulés, en les faisant ressortir sur les
broches du connecteur C du kit de développement.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL
page 23
Les premiers essais ont été effectués le vendredi 4 juillet, après trois séances de 4h et
quelques simulations. Après avoir réalisé le schéma d’installation de la page
précedente, et chargé le programme dans le FPGA. Les premiers affichages semblent
ne pas correspondre, cela provient d’un signal de réception très perturbé, par les
moniteurs l’entourant. Cela nous amène à réitérer la manipulation sur une autre table.
Dans un premier temps, les résultats affichés s’incrémentent, mais n’affichent pas
l’heure exacte sur les afficheurs, cela provient du bloc Compte21, qui sélectionnait la
trame des minutes et des heures avec une pulsation de retard.( cf page 13 de ce
document)
Dès lors la première mesure d’heure s’affiche correctement à condition que le moniteur
soit également bien coupe pour éviter les perturbations du recepeteur DCF.
La seconde mesure est erronée, cela provient également de la fonction Compte21, qui
décale d’un coup de plus le signal d’acquisition de la trame. Par conséquent, nous
effectuons la modification suivante (code en page 14):
ElsIF (S=37) THEN Q<='0'; S<=-21;
est remplacé par
ElsIF (S=36) THEN Q<='0'; S<=-21;
7. CONCLUSION
Après avoir effectué les modifications qui s’imposaient, afin de bien décoder et afficher
l’heure : le système fonctionne correctement, quelques légères perturbations, viennent
perturber de temps en temps l’affichage.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL Annexe
A
ANNEXE A
Sujet du Projet
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL Annexe
C
ANNEXE B
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL Annexe
C
ANNEXE C
Fichiers de Simulation
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
VHDL
PROJET
Sur cette simulation de 2mn, nous observons que c’est le signal cpt21 qui permet la synchronisation de la
conversion série - parallèle
C
Annexe
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
VHDL
PROJET
Premier zoom sur cette simulation générale entre 23s et 52s , nous observons que pendant la conversion série –
parallèle, l’ancienne valeur mesurée reste affichée jusqu’au moment ou cpt21 passe à ‘0’l
C
Annexe
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
VHDL
PROJET
Second zoom sur cette simulation générale entre 40s et 46s , cela permet de vérifier que les valeurs //
correspondent bien à la trame série, et que le résultat en sortie des mémoire correspond bien aux heures et aux
minutes que nous souhaitons afficher
C
Annexe
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET
VHDL Annexe
E
ANNEXE E
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître