Séance 4 : Affichage du signal acquis sur écran VGA Affichage du

Option Architecture et traitement des signaux – 2016
Pr. Olivier ROMAIN
1
Séance
Séance 4
4
:
: Affichage du signal acquis sur écran VGA
Affichage du signal acquis sur écran VGA
L’objectif de cette séance est d’afficher sur un écran VGA les valeurs acquises du capteur
OPT101 et de déterminer la fréquence cardiaque.
Pour afficher sur un écran avec une résolution VGA (640 colonnes par 480 lignes), plusieurs
signaux de synchronisation doivent être générés. Une synchronisation colonne active – HS – à
chaque changement de ligne, c’est à dire, après avoir parcouru les 640 colonnes, et, une
synchronisation verticale – VS – active lorsque les 480 lignes sont parcourues, au changement
de chaque image. L’affichage sur un écran VGA est réalisé via le balayage d’un spot
lumineux sur l’écran.
Figure 1 : principe d'affichage d'une image sur un écran au format VGA
Les valeurs des temps de synchronisation et d’affichage sont données dans la table ci-
dessous.
Figure 2 : Timing
Option Architecture et traitement des signaux – 2016
Pr. Olivier ROMAIN
2
Figure 3 : Table timing
Ces valeurs correspondent à un signal de synchronisation, qui a la même forme pour la
synchronisation horizontale et verticale.
Afficher une image sur l’écran nécessite de mémoriser 640*480 valeurs sur 24 bits (Rouge
sur 8 bits, Vert sur 8 bits et Bleu sur 8 bits). La capacité mémoire embarqué dans le Cyclone3
de la DE1 ne le permet pas. Deux solutions, soit utiliser une mémoire SRAM externe, soit
mémoriser uniquement une valeur par ligne. En comparant la valeur mémorisée à la position
du spot lumineux parcourant les colonnes, on peut alors allumer uniquement la colonne
correspondant à la valeur mémorisée. On obtient alors un point lumineux par ligne. En
tournant l’écran de 90° à gauche, on peut alors afficher une courbe point par point. Pour cela,
uniquement une mémoire de 480 mots suffit.
Cette mémoire sera du type DPRAM (Dual Port RAM) car le processeur Nios2 doit y
mémoriser les valeurs acquises au cours du temps, et le contrôleur VGA doit pouvoir lire la
valeur correspondant à la ligne en cours.
Le synopsis ci-dessous résume les étages de cette séance.
Figure 4. Synopsis séance 4
Option Architecture et traitement des signaux – 2016
Pr. Olivier ROMAIN
3
I. IP DPRAM mémorisation des valeurs acquises
Les valeurs acquises par le Nios2 seront enregistrées dans une mémoire DPRAM. Cette
mémoire sera un périphérique spécifique du processeur adressable directement par rapport à
son adresse. Pour cela, la mémoire DPRAM doit être connectée au bus système du processeur,
le bus Avalon. Le processeur pourra alors accéder en écriture à la mémoire via les signaux
data, wraddress, wren, wrclock, etc.
La DPRAM est une mémoire qui permet d’être lue par un périphérique extérieur tout en étant
écrite par un second, sans conflit. Les signaux rdaddress, rden, rdlcock, etc… sont les signaux
générés par le périphérique qui souhaite accéder en lecture aux éléments de la mémoire.
Figure 5. DPRAM synopsis
Travail à réaliser
1.1 Lire le datasheet ALTERA sur la DPRAM afin de comprendre le fonctionnement de la
DPRAM.
1.2 Déterminer les signaux nécessaires à la lecture d’un élément de la mémoire par le
contrôleur VGA.
1.2.1 Quelle sera la valeur de rdclock ?
1.2.2 Comment doit être positionner rden ?
1.2.3 Comment doit être générer rdaddress ?
1.3 L’IP DPRAM vous est fournie. Télécharger le fichier olivieromain.free.fr/dpram.zip
1.4 Lancer Quartus et Qsys.
1.5 Utiliser le datasheet IP_Component.pdf afin de vous guider pour intégrer l’IP_DPRAM
à votre design Nios2.
1.6 Renommer votre IP en RAM_VGA.
Figure 6. IP_DRAM sous Qsys
1.7 Faites contrôler par l’enseignant.
1.8 Générer le design et compiler sous Quartus. Votre design sous Quartus doit ressembler à
la figure ci-dessous.
Option Architecture et traitement des signaux – 2016
Pr. Olivier ROMAIN
4
Figure 7. Nios2 avec la DPRAM intégrée
1.9 Consigner dans votre CR les différents développements.
II. Développement SW sous Qsys
La mémoire DPRAM est contrôlée par le Nios2 en écriture et par le contrôleur VGA en
lecture. Dans cette partie, vous allez écrire un programme en C permettant d’écrire les valeurs
dans la mémoire.
Travail à réaliser
1.10 Pourquoi le bus d’adresse de la mémoire est de 9 bits ?
1.10.1 Quelles sont les adresses possibles à partir de l’adresse de base de l’IP RAM_VGA ?
1.10.2 Donner les min et le max en hexadécimal.
1.10.3 Consigner dans votre rapport.
1.11 Lancer Eclipse sous Quartus et reprendre le projet de la séance 3.
1.12 Avec le clique droit de la souris, dans la fenêtre « Project Explorer », cliquer sur votre
projet_BSP, menu Nios2, Generate BSP. Votre design ayant été modifié sous Qsys vous
devez remettre à jour les drivers de votre Nios2. Ces drivers permettront d’accéder aux
périphériques comme la mémoire DPRAM.
1.13 Modifier le programme pour enregistrer après chaque acquisition la valeur dans la
mémoire.
1.14 Faites contrôler par l’enseignant.
1.15 Consigner votre programme dans le compte-rendu.
Option Architecture et traitement des signaux – 2016
Pr. Olivier ROMAIN
5
III. Contrôleur VGA : affichage de la courbe
Cette partie est consacrée au développement du contrôleur VGA en VHDL et à la vérification
de la séquence acquise et enregistrée dans la DPRAM. L’objectif est que le contrôleur VGA
puisse accéder en lecture à la mémoire, récupèrer la valeur enregistrée, la comparer à la
position du spot lumineux (ligne par ligne) et afficher en blanc le pixel correspondant (valeur
enregistrée = position du spot).
Travail à réaliser
1.16 Reprendre le contrôleur VGA que vous avez développé dans l’UE FPGA.
1.17 Ajouter deux signaux dans l’entité (voir ci-dessous). Le signal data_in est la donnée
enregistrée sur 32 bits dans la mémoire et l’adresse DPRAM correspond à l’adresse de
la case mémoire à laquelle vous voulez accéder.
data_in : in std_logic_vector(31 downto 0);
adresse_DPRAM : out std_logic_vector(9 downto 0) ;
1.18 Modifier le code VHDL pour gérer ces deux signaux en fonction de la position du spot
lumineux dans l’écran.
1.19 Consigner les développements VHDL dans votre CR
1.20 Faites contrôler par l’enseignant.
1.21 Compiler et programmer la carte FPGA
1.22 Sous Eclipe, avec le clique droit de la souris, dans la fenêtre « Project Explorer »,
cliquer sur votre projet_BSP, menu Nios2, Generate BSP. Votre design ayant été
modifié sous Qsys vous devez remettre à jour les drivers de votre Nios2.
1.23 Reprenez votre code afin d’afficher une droite de type y=x avec y la position de la
colonne et x le numéro de la ligne. Sur la première ligne, la colonne 1 est allumée, sur la
deuxième ligne, la colonne 2 est allumée, etc…
1.24 Consigner les développements dans votre CR.
1.25 Faites contrôler par l’enseignant.
1.26 Modifier votre code C afin d’afficher le signal cardiaque.
1.26.1 Déterminer la fréquence d’acquisition / à la fréquence d’affichage du VGA afin
d’avoir plusieurs période sur l’écran.
1.26.2 Régler la période d’échantillonnage
1.27 Consigner les développements dans votre CR
1.28 Faites vérifier par l’enseignant.
1.29 Modifier votre code C afin d’enregistrer dans un fichier les signaux cardiaques.
1.30 Consigner les développements dans le compte-rendu.
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !