Protocole UART
Trame UART, génération du baud rate, suréchantillonnage et points d'implémentation VHDL.
Qu'est-ce que UART ?
UART (Universal Asynchronous Receiver/Transmitter) est un protocole série asynchrone : contrairement à SPI et I2C, il n'y a pas de signal d'horloge partagé entre émetteur et récepteur. La synchronisation se fait par un débit de communication prédéfini appelé baud rate (bits par seconde).
Ses caractéristiques principales :
- Asynchrone : pas d'horloge partagée
- Full-duplex : TX et RX sont des lignes indépendantes
- Point à point : 2 dispositifs uniquement (pas de bus multi-esclaves)
- Baud rate : les deux parties doivent être configurées au même débit
Signaux UART
| Signal | Description |
|---|---|
| TX | Transmission - données envoyées |
| RX | Réception - données reçues |
| GND | Masse commune (obligatoire) |
À l'état de repos, la ligne TX est au niveau haut (logique '1', appelé "mark").
Trame UART
Une trame UART standard (8N1 - 8 bits données, pas de parité, 1 bit stop) :

- Bit de Start : niveau bas pendant 1 période de bit - signale le début de la trame
- Bits de données : 5 à 9 bits, LSB en premier (convention standard)
- Bit de parité (optionnel) : paire, impaire ou aucune
- Bit(s) de Stop : niveau haut pendant 1 ou 2 périodes de bit - fin de trame
Baud Rate et diviseur d'horloge
Le baud rate détermine la durée d'un bit : T_bit = 1 / baud_rate
| Baud Rate | T_bit |
|---|---|
| 9600 bps | 104,2 µs |
| 115200 bps | 8,68 µs |
| 1 Mbps | 1 µs |
Pour générer le baud rate à partir d'une horloge système, on calcule un diviseur :