Rapport Projet VHDL Master EAPS     Le sujet : Alarme   Etudiant : Sa

Rapport Projet VHDL Master EAPS     Le sujet : Alarme   Etudiant : Saoud Mouloud  Encadreurs :L. OYHENART & J. TOMAS 2011-2012     1) Introduction  2) Spécification du projet 2.1) Cahier de charge  2.2) Démarche 3) Architecture générale du projet  3.1) Explication de l’architecture choisie  4) Les techniques de programmation 4.1) états statique  4.2) état Dynamique 5) Tests et interprétation 6) Conclusion Annexes         4) Les techniques de programmation : Dans cette partie on va expliquer la manière qu’on programmer le composant principal ; digit0_1_2_3 ; Pour ce composant on a exploité une forme d’une machine à état finis à six états distincts qui sont (attente, etatD, etatS, etatS1, étatS2, etatS3), pour faire le pilotage de la fonction de déclenchement de la l’arme, chargement des valeurs et l’initialisation des variables des quatre digits. *attente : c’est l’état initial ; *etatD : c’est l’état dynamique (démarrage de la l’arme) ; *etatS : c’est l’état statique (chargement des valeurs de digit 0). *etatS1 : c’est l’état statique (chargement des valeurs de digit 1). *etatS2 : c’est l’état statique (chargement des valeurs de digit 2). *etatS3 : c’est l’état statique (chargement des valeurs de digit 3). Machine des états finis (FSM): Figure III.1 : machine d’états finis du déroulement du digit0_1_2_3. Avec cond0 qui est équivalente à cond1 et à cond2 et à cond3 et à cond5: (btnu=’1’ ou vd=’1’ & vd1=’1’ & vd2=’1’ & vd3=’1’ & btnl=’1’) et (h_1_5Hz (front montant))   cond6 qui est équivalente à cond7 et à cond8 et à cond11: btnr=’1’ et h_1_5Hz (front montant); cond10 qui est équivalente à cond9 et à cond12 : btnl=’1’ et h_1_5Hz (front montant). cond13 qui est équivalente à cond14 et à cond15 et à cond16 : btnri=’1’ et h_1_5Hz (front montant). Interprétation : Comme on peut constater sur cet organigramme qu’à chaque appui sur l’un des boutons poussoir avec un front montant d’horloge on aura un changement d’état avec le passage de l’état attente vers l’état statique (etatS) qui est franchissable (sans conditions). Donc on peut constater que cette machine à état finis réalise le rôle d’un le rôle d’un pilote, qui a pour rôle d’associer à chaque état une fonction sera (initialisation des variables, déclenchement de la l’arme, chargement des valeurs de digit0, digit1, digit2 et digit3) Figure III.2 Schéma synoptique expliquant le rôle de contrôleur (pilote). Comme on va définir des machines à états finis aussi à chaque état des trois états (etatD, etatS et etatS1, etatS2, etatS3), qui réalisent l’incrémentation et la décrémentation des compteurs. D’ou la réalisation des fonctions de chargement des valeurs et la fonction de déclenchement (activation) de la l’arme.   4.1) états statiques : étatS : etatS1 : Fig. III.3 Machine d’état fini d’incrémentation Fig. III.4 Machine d’état fini d’incrémentation de digits 0 de digits 1 étatS2 : etatS3 :  Fig. III.3 Machine d’état fini d’incrémentation Fig. III.4 Machine d’état fini d’incrémentation de digits 2 de digits 3 Avec cond0 qui est équivalente à la cond1 et cond2 qui est: btnd =’1’ et h_1_5Hz (sur front montant).  Pour ces quatre (FSM) elles présentent comme sorties les valeurs de digit0 et digit1 et digit2 et digit3 en étatS, etatS1, etatS2 et etatS3.   4.2) état dynamique (etatD) :  Fig. III.5 Machine d’état fini de décrémentation Fig. III.6 Machine d’état fini d’incrémentation de digits 0 de digits 1   • Pour la FSM de digit0 : cond0 et équivalente à cond1: h_1_5Hz (front montant). Cond2 : s20 ou s30 et h_1_5Hz (front montant). Cond3 : s2=0 et s3=0 et h_1_5Hz (front montant). • Pour la FSM de digit1 : cond0 est équivalente à cond1 : S (digit0) =modulo et h_1_5Hz (front montant). Cond2 : S (digit0) =modulo et s20 ou s30 et h_1_5Hz (front montant). Cond3 : S (digit0) =modulo et s2=0 ou s3=0 et h_1_5Hz (front montant).  Pour ces deux (FSM) elles présentent comme sorties les valeurs de digit0 et digit1 et k2 pour le premier digit ; en étatD.    Fig. III.7 Machine d’état fini de décrémentation Fig. III.8 Machine d’état fini de décrémentation  de digit 2. de digit 3. • Pour la FSM de digit 2 : Avec cond0 est équivalente à cond1 :Sortie1 (digit1)=modulo et h_1_5Hz (front montant). Cond2 : S1 (digit1)=modulo et S3 (digit3)  0. Cond3 : Sortie1 (digit1)=modulo et Sortie3 (digit3)= 0. • Pour la FSM de digit3 : Avec cond0 est équivalente à cond1 : Sortie (digit2) =0 et h_1_5Hz (front montant). Pour ces deux (FSM) :  La première elle présente comme sortie les valeurs digit3 en étatD.  La deuxième elle présente comme sorties les valeurs digit2 et le flag k2 en étatD. *Enfin la FSM globale (pilote) présente comme sorties :  En état attente : sortie1, sortie2, sortie3, sortie4, K2.  En etatS & En etatS1 & En etatS2 & En etatS3: sortie, sortie1, sortie2, sortie3.  En etatD : sortie1, sortie2, sortie3, sortie4, K2.   5) Tests et interprétation :  En premier lieu j’ai testé les différents passages entre les différents états en appuyant sur les boutons poussoirs et j’ai un résultat positif dont les différents passages entre les différents états ca bien marché comme aussi les points DP ont clignoté à chaque état statique.  Pour l’étape du déclenchement et l’arrêt de la l’arme j’ai chargé plusieurs valeurs qui présentent au système une sensibilité d’avoir un défaut comme le déclenchement de la l’arme à partir :  Du 00 :10 minute => et s’a décrémenter jusqu'à l’écoulement de la valeur du temps et l’affichage du mot « FINI » avec défilement.  Du 01 :00 minute => et s’a décrémenter jusqu'à l’écoulement de la valeur du temps et l’affichage du mot « FINI » avec défilement.  10 :00 minute => et s’a décrémenter jusqu'à l’écoulement de la valeur du temps et l’affichage du mot « FINI » avec défilement. Comme aussi j’ai testé plusieurs valeurs intermédiaires et j’ai testé ce système pour une valeur de 70 :00 minute (comme valeurs maximal) est il a donné un résultat positif.   6) Conclusion : Le sujet ma beaucoup intéressé car à l’aide de ce projet j’ai pu réaliser une alarme sur un support matériel (la carte FPGA) et d’affronter les différents problèmes à un système séquentiels. J’ai apporté une grande attention à la conception des blocs fonctionnels sur papier .ainsi à l’établissement de la structure du programme et les faire adapter sur la carte FPGA mise en œuvre. Ainsi que l’utilisation des machines d’état fini et surtout celle conçue pour le pilotage des fonctions (d’initialisation de déclenchement et de chargement), ma permis de simplifier énormément la structure et l’architecture du programme. Comme aussi j’ai apporté un composant (bloc) supplémentaire qui aura pour rôle d’indiquer dans quelle états notre système il est, afin d’éviter les anomalies qui peuvent se produit avec l’appui (lentement ou rapidement) sur l’un des boutons poussoirs. Et j’ai exploité le bouton poussoir supplémentaire sur la carte FPGA pour passer d’un digit à l’autre ou bien d’un état à l’autre (en statique) dans les deux sens, afin du gagner du temps en chargeant les valeurs des digits, dans le même cadre j’ai fait un programmer un signal d’horloge variable 5Hz pour les différents états statique et 1Hz (période 1 seconde) pour l’état dynamique . J’ai été surpris de voir la vitesse avec la quelle ce projet a pu prendre forme, comparé par exemple au temps qu’il faudrait pour réaliser le même projet à base de la programmation de microprocesseur.    Annexe : 1. « VHDL - Logique programmable (Partie 7 Les machines d’état) » ENSISA. 2. « ELP304/203 : ELECTRONIQUE NUMERIQUE (Logique séquentielle Techniques d’intégration) ». 3. « Modes de représentation et analyses des systèmes séquentiels. » Ecole polytechnique Fédérale de Lausanne.    1) Introduction : L’objectif de ce projet est de concevoir avec le Xilink_ISE un programme VHDL et l’implémenter sur la carte FPGA nexys3_spartan6 (100MHz), en exploitant l’afficheur 7 segments et les boutons poussoirs. Ce programme va définir un système qui fait la décrémentation d’une valeur initial de temps chargé sur les quatre digits et qui affiche le mot FINI à la fin (quand la valeur de temps chargée est écoulée). 2) Spécification du projet : 2.1) Cahier de charge : *L’afficheur 7 segments permettra de visualiser le temps s’écouler et le temps imparti. *La saisie de chaque digit de temps se fait par appuis successifs sur BTND. *Le choix de digit à saisir se fait par le bouton BTNR. *Lorsque le temps imparti sera écoulé, l’afficheur devra afficher le message FINI. *Le bouton BTNU permettra d’initialiser le système. *Le bouton BTNL permettra de déclencher la l’arme.  Figure I.1 : Schéma synoptique de fonctionnement du projet 2.2) Démarche : Pour la réalisation de ce projet on va choisir en premier lieu un structure qui sera cohérente avec le projet, en uploads/Industriel/ rapport-de-projet-alarme-fpga-vhdl.pdf

  • 47
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager