WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Synthèse et validation des équipements et des procédures de test sur les instruments de bord des avions : modèle B737 NG

( Télécharger le fichier original )
par Aymen MSATRA
Institut de la maintenance aéronautique de Bordeaux - Génie aeronautique specialité motoriste 2014
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

CHAPITRE 5.

IMPLéMENTATION DU

CODE EN VHDL ET TEST

DE L'INSTRUMENT

Chapitre 5. Implémentation du code en VHDL
et test de l'instrument.

5.1 Introduction

Dans la phase de réalisation, on a définit le protocole RS232 suivant afin d'assurer la communication entre la carte SPARTAN-3 et l'ordinateur. :

Ø Un bit de start

Ø Longueur des mots à transmettre : 8 bits

Ø Un bit de stop

La première partie consiste à réaliser ce protocole contenant à la fois les modules d'émission, de réception et la variation de vitesse de communication. Puis, on a simulé le fonctionnement de chaque partie.

5.2 Configuration de la carte SPARTAN-3

La figure ci-dessous représente la connexion entre la carte SPARTAN-3 et l'ordinateur à travers le câble RS232. La liaison entre l'instrument et la carte d'acquisition est assurée par les connecteurs extérieurs du SPARTAN-3.

Figure 5-1 : Câblage des diverses composantes.

Avant l'implémentation du programme, on doit configurer les broches entrées/sorties de la carte SPARTAN-3 comme suit [3]:

Tableau 5-1 : Affectation des broches.

5.3 La communication entre PC et SPARTAN-3

L'objectif de cette partie est de réaliser une liaison série entre la carte SPARTAN-3 et PC, également appelée UART (Universal Asynchronous Receiver/Transmitter), cette liaison série est capable d'envoyer une donnée bit par bit sur un bus. Elle est composée de 5 modules principaux : Ø Module top.

Ø Module Gen_UART_Clk.

Ø Module émission.

Ø Module réception.

converter.

Ø Module baud_

5.3.1 Le module top

Le module top gère tous les autres modules. Il assure la synchronisation entre les différentes

parties. Il est composé de 4 entrées (Clk, reset, Baud et Rx) et une sortie (Tx) comme l'indique la

figure 5-2. La description détaillée de chaque module sera développée par la suite.

Ce Module fait appel aux autres modules comme suit :

S_BAUD : baud_converter port map (clk,reset,baud,divisor);

S_CLK : Gen_UART_Clk port map (clk,reset,divisor,clk_user);

S_TX : emission port map(clk_user, reset,rx_data, begin_tx, tx, end_tx);

S_RX : reception port map(clk,reset,rx_data, rx, end_rx,divisor);

Figure 5-3 : Le module Gen_UART_Clk.

Figure 5-2 : Module du TOP.

5.3.2 Module Gen_UART_Clk

L'horloge de la carte est de 50Mhz alors, pour transmettre une trame de donnée a une vitesse de 9600bauds (bits par secondes) par exemple, chaque bit prendra 104ìs pour être transmit. La période de l'horloge est donc de 20ns, ce qui implique qu'il faut 5200tops d'horloge pour transmettre un bit. On utilise pour cela un compteur comme la montre la figure 5.3.

Figure 5-5: Module Baud_converter.

if clk = '1' and clk'event then

count <= count + 1;

if (count = DIV_16MEG-1) then

clk_user <= not clk_user;

count <= (others =>'0');

end if;

end if;

La figure ci-dessous représente la simulation de ce module :

Figure 5-4 Simulation du module Gen_UART_Clk. 5.3.3 Module baud_converter

Dans notre cas la vitesse de transmission est variable, d'où un module de conversion est nécessaire pour élargir la plage de la vitesse de transmission qui aura la possibilité de varier de 1200 jusqu'à 115200bauds. Pour cela nous allons utiliser un module appelé baud_converter, qui reçoit comme entrée le signal d'horloge Clk, reset et le choix de la vitesse de transmission par l'entrée baud (La figure 5.5)

end if; end if;

case baud is

when "0000" => Divisor<= CONV_STD_LOGIC_VECTOR(217,32); --115.200 when "0001" => Divisor <= CONV_STD_LOGIC_VECTOR(434,32); --57.600 when "0010" => Divisor <= CONV_STD_LOGIC_VECTOR(651,32); --38.400

when "0011" => Divisor <= CONV_STD_LOGIC_VECTOR(1302,32); -- 19.200

when "0100"=> Divisor <= CONV_STD_LOGIC_VECTOR(2500,32); 9.600-when "0101" => Divisor <= CONV_STD_LOGIC_VECTOR(5208,32); -- 4.800 when "0110" => Divisor <= CONV_STD_LOGIC_VECTOR(10416,32); --2.400 when "0111" => Divisor <= CONV_STD_LOGIC_VECTOR(20833,32);--1.200 when others => Divisor <= (others=> '0');

end case;

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Les esprits médiocres condamnent d'ordinaire tout ce qui passe leur portée"   François de la Rochefoucauld