SEm/labore/06 uart
Line 2: | Line 2: | ||
= UART-Peripheriebaustein für AMBA-Bus = | = UART-Peripheriebaustein für AMBA-Bus = | ||
+ | |||
+ | == 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]). | ||
+ | |||
+ | 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 <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 === | ||
+ | |||
+ | Les registres accédés en écriture par le microprocesseur sont: | ||
+ | : adresse 00: registre de donnée, contient 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 | ||
+ | |||
+ | Les registres accédés en lecture sont: | ||
+ | : adresse 00: registre des donnée, contient la valeur reçue sur 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 === | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | Dessinez le diagramme-bloc du périphérique AHB-Lite <code>ahbUart</code>. | ||
+ | }} | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | En se basant sur ce diagramme-bloc, écrivez le code VHDL du périphérique <code>ahbUart</code>. | ||
+ | }} | ||
+ | |||
+ | == Vérification == | ||
+ | |||
+ | {{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>. | ||
+ | }} | ||
Revision as of 14:57, 17 April 2015
|
UART-Peripheriebaustein für AMBA-Bus
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 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
Les registres accédés en lecture sont:
- adresse 00: registre des donnée, contient la valeur reçue sur 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
Vérification
Navigation
05 GPIO-Peripheriebaustein
Anleitung auf Deutsch
07 Kurvenzeichnungsperipheriebaustein