SEm/laboratoires/06 uart

From FSI
(Difference between revisions)
Jump to: navigation, search
(Created page with "{{TOC right}} = Périphérique UART = == Introduction == Dans ce laboratoire, nous allons réaliser un périphérique très commun dans tous les systèmes à processeur: un po...")
 
(Registres)
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== Introduction ==
 
== Introduction ==
 
Dans ce laboratoire, nous allons réaliser un périphérique très commun dans tous les systèmes à processeur: un port série (Universal Asynchronous Receiver/Transmitter, [http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter UART]).
 
Dans ce laboratoire, nous allons réaliser un périphérique très commun dans tous les systèmes à processeur: un port série (Universal Asynchronous Receiver/Transmitter, [http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter UART]).
 +
 +
Ce laboratoire exerce la conception d'un circuit et demande une réflexion sur l'architecture du système.
  
 
== Conception ==
 
== Conception ==
  
 
Le périphérique met à disposition du processeur deux lignes série: une en émission et une en réception.
 
Le périphérique met à disposition du processeur deux lignes série: une en émission et une en réception.
 +
 +
La lecture des bits du mot série entrant doit se faire au plus près du milieu de ceux-ci.
 +
Le compteur qui détermine le moment de cette lecture doit donc être synchronisé au moins avec l'apparition du <code>start bit</code>.
 +
Par contre, le compteur qui pilote l'émission d'un mot série conserve une période fixe, indépendante du circuit de réception.
  
 
=== Registres ===
 
=== Registres ===
  
 
Les registres accédés en écriture par le microprocesseur sont:
 
Les registres accédés en écriture par le microprocesseur sont:
: adresse 00: registre des données, contient la valeur qui va être transmise selon le protocole RS&nbsp;232
+
: adresse 00: registre de donnée, contient dans les 8&nbsp;bits de poids faible la valeur qui va être transmise sur la ligne RS&nbsp;232
 
: adresse 01: registre de contrôle, pas utilisé pour le moment
 
: adresse 01: registre de contrôle, pas utilisé pour le moment
 
: adresse 02: registre de période, donne la vitesse de transmission, tant en émission qu'en réception
 
: adresse 02: registre de période, donne la vitesse de transmission, tant en émission qu'en réception
 +
Le registre de période donne le nombre de périodes d'horloge correspondant à la transmission d'un bit.
  
 
Les registres accédés en lecture sont:
 
Les registres accédés en lecture sont:
: adresse 00: registre des données, contient la valeur reçue selon le protocole RS&nbsp;232
+
: adresse 00: registre des donnée, contient dans les 8&nbsp;bits de poids faible la valeur reçue de la ligne RS&nbsp;232
: adresse 01: registre des statut:
+
: adresse 01: registre de statut:
 
:: bit 0: indique qu'un nouveau mot a été reçu et peut être lu par le microprocesseur
 
:: bit 0: indique qu'un nouveau mot a été reçu et peut être lu par le microprocesseur
:: bit 1: indique qu'un nouveau mot est en cours de réception
+
:: bit 1: indique qu'un mot est en cours de transmission et que le microprocesseur ne doit pas écrive de nouvelle valeur dans le registre de donnée
:: bit 2: indique qu'un mot est en cours de transmission et que le microprocesseur ne doit pas écrive de nouvelle valeur dans le registre des données
+
:: bit 2: indique qu'un nouveau mot est en cours de réception
  
 
=== Code VHDL ===
 
=== Code VHDL ===
Line 29: Line 36:
  
 
{{TaskBox|content=
 
{{TaskBox|content=
En se basant sur ce diagramme-bloc, écrivez le code VHDL du périphérique <code> ahbUart </code>.
+
En se basant sur ce diagramme-bloc, écrivez le code VHDL du périphérique <code>ahbUart</code>.
 
}}
 
}}
  
Line 35: Line 42:
  
 
{{TaskBox|content=
 
{{TaskBox|content=
A l'aide du banc de test à disposition, simulez le système et vérifiez le bon fonctionnement du périphérique <code> ahbUart </code>.
+
A l'aide du banc de test à disposition, simulez le système et vérifiez le bon fonctionnement du périphérique <code>ahbUart</code>.
 
}}
 
}}
 +
 +
{{navNamed
 +
|left=SEm/laboratoires/05_gpio|left_name=05 Périphérique GPIO pour bus AMBA
 +
|up=SEm/laboratoires|up_name=Travaux de laboratoire
 +
|right=SEm/laboratoires/07_beamer|right_name=07 Périphérique de dessin de courbes pour bus AMBA
 +
}}
 +
 +
[[Category:Bachelor]] [[Category:SEm]] [[Category:Français]]

Latest revision as of 09:49, 27 March 2017

Contents

Périphérique UART

Introduction

Dans ce laboratoire, nous allons réaliser un périphérique très commun dans tous les systèmes à processeur: un port série (Universal Asynchronous Receiver/Transmitter, UART).

Ce laboratoire exerce la conception d'un circuit et demande une réflexion sur l'architecture du système.

Conception

Le périphérique met à disposition du processeur deux lignes série: une en émission et une en réception.

La lecture des bits du mot série entrant doit se faire au plus près du milieu de ceux-ci. Le compteur qui détermine le moment de cette lecture doit donc être synchronisé au moins avec l'apparition du start bit. Par contre, le compteur qui pilote l'émission d'un mot série conserve une période fixe, indépendante du circuit de réception.

Registres

Les registres accédés en écriture par le microprocesseur sont:

adresse 00: registre de donnée, contient dans les 8 bits de poids faible la valeur qui va être transmise sur la ligne RS 232
adresse 01: registre de contrôle, pas utilisé pour le moment
adresse 02: registre de période, donne la vitesse de transmission, tant en émission qu'en réception

Le registre de période donne le nombre de périodes d'horloge correspondant à la transmission d'un bit.

Les registres accédés en lecture sont:

adresse 00: registre des donnée, contient dans les 8 bits de poids faible la valeur reçue de la ligne RS 232
adresse 01: registre de statut:
bit 0: indique qu'un nouveau mot a été reçu et peut être lu par le microprocesseur
bit 1: indique qu'un mot est en cours de transmission et que le microprocesseur ne doit pas écrive de nouvelle valeur dans le registre de donnée
bit 2: indique qu'un nouveau mot est en cours de réception

Code VHDL

View-pim-tasks.png

Dessinez le diagramme-bloc du périphérique AHB-Lite ahbUart.


View-pim-tasks.png

En se basant sur ce diagramme-bloc, écrivez le code VHDL du périphérique ahbUart.

Vérification

View-pim-tasks.png

A l'aide du banc de test à disposition, simulez le système et vérifiez le bon fonctionnement du périphérique ahbUart.


Navigation
Arrow left.gif 05 Périphérique GPIO pour bus AMBA Arrow up.gif Travaux de laboratoire 07 Périphérique de dessin de courbes pour bus AMBA Arrow right.gif

Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox