UART : Interface série asynchrone universelle
Aujourd’hui on va voir en détail le fonctionnement et les caractéristiques du UART (Universal Asynchronous Receiver-Transmitter), une interface série très répandue dans l’électronique embarquée. Cette interface permet la communication entre microcontrôleurs, capteurs, modules ou ordinateurs via des échanges de données asynchrones, simples et fiables.
Qu’est-ce que l’UART ?
L’UART est un circuit matériel qui gère la transmission et la réception de données série asynchrones. Contrairement à une communication synchrone, où un signal d’horloge est partagé, l’UART transmet les bits un par un avec une configuration préalable des paramètres comme la vitesse (baud rate), la parité, le nombre de bits de données et les bits de stop.
Cette interface est présente dans de nombreux microcontrôleurs, cartes de développement et modules, car elle est simple à implémenter et nécessite peu de fils : généralement une ligne pour la transmission (TX) et une autre pour la réception (RX).
Fonctionnement de l’UART
- Transmission asynchrone : les données sont envoyées sans horloge commune, chaque octet est encadré par un bit de start et un ou plusieurs bits de stop.
- Trame UART : une trame standard comprend :

Paramètres essentiels
- Vitesse de transmission (baud rate) : nombre de bits transmis par seconde. Des valeurs classiques sont 9600, 19200, 115200 bps.
- Bits de données : taille des données, souvent 8 bits.
- Parité : utilisée ou non pour la vérification d’erreurs.
- Bits de stop : un ou deux bits pour marquer la fin du paquet.
La bonne synchronisation des paramètres entre l’émetteur et le récepteur est cruciale. Une erreur dans le baud rate ou la configuration peut entraîner la perte de données.
Transmission et réception
- Transmission : quand l’UART transmet un octet, il commence par envoyer le bit de start (0), suivi des bits de données du moins significatif au plus significatif, puis le bit de parité si configuré, et enfin les bits de stop (1).
- Réception : le récepteur surveille la ligne pour détecter le bit de start. Ensuite, il lit les bits à intervalles réguliers correspondant au baud rate configuré, reconstitue les bits de données, vérifie la parité si activée, puis valide la trame via le ou les bits de stop.
Avantages et limites
- Avantages : simplicité d’implémentation, peu de lignes nécessaires, compatible avec beaucoup de périphériques.
- Limites : pas d’horloge commune, donc sensible aux erreurs de synchronisation, vitesse limitée comparée à des protocoles synchrones (SPI, I2C), absence de gestion de flux intrinsèque (peut être complétée par RTS/CTS).
Exemple simplifié de trame UART 8N1 à 9600 bps
Supposons la transmission d’un caractère ASCII ‘A’ (0x41, en binaire 01000001) avec 8 bits de données, pas de parité, 1 bit de stop :
- Bit de start : 0
- Bits de données : 1 0 0 0 0 0 1 0 (transmis LSB en premier)
- Bit de stop : 1
Le flux électrique sera donc : 0 - 1 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 1
Cette simplicité fait de l’UART un choix de communication incontournable pour les échanges basiques entre systèmes embarqués et périphériques.
Pour continuer à approfondir, n’hésitez pas à découvrir comment fonctionne le protocole SPI, un autre standard de communication série mais synchrone cette fois-ci, souvent comparé à l’UART.