UART
Pour communiquer avec des périphériques externes au microcontrôleur, on peut utiliser un périphérique UART (Universal Asynchronous Receiver/Transmitter). l’UART, aussi appelé “port série”, permet une connexion “point à point” entre deux appareils (par exemple le microcontrôleur et la console de votre PC) :
La broche TX
(transmitter) du contrôleur est connectée à la broche RX
(receiver) du périphérique et
la broche TX
du périphérique est connectée à la broche RX
du contrôleur. Il suffit de juste ces
deux signaux pour que les deux appareils puissent communiquer.
La communication est asynchrone, c’est-à-dire qu’il n’y a pas de signal dédié (clock) pour cadencer la communication. Les deux appareils doivent donc se mettre d’accord sur une vitesse de transmission. Cette vitesse est exprimée en baud et correspond à un nombre de bits par seconde. De nos jours, la vitesse de transmission est souvent de 115200 bauds, mais les premiers modems communiquaient avec les PC à 300 bauds.
Comme il y a un canal d’émission et un canal de réception, l’UART permet une communication “full-duplex”.
En plus de la vitesse de transmission, les deux appareils doivent se mettre d’accord sur les points suivants :
- Le nombre de bits par mot (7 ou 8)
- Le type de parité (paire, impaire, ou pas de parité)
- Le nombre de bits de stop (1 ou 2)
La notation 8-N-1
est souvent utilisée pour dire “8 bits de données, sans parité, 1 bit de stop”.
De nos jours, en plus de la console, l’UART est utilisé pour communiquer avec des Modems (LTE, GSM, etc.) ou des récepteurs GPS. l’UART est aussi utilisé par des bus de terrains de type Modbus ou Profibus. Couplé avec un le standard RS-422 la communication peut se faire sur des distances de plus de 1000 mètres.
Pour plus d’information, consultez la page Wikipedia.
Si vous avez besoin d’utiliser l’UART avec Mbed OS consultez la documentation de l’API correspondante.
Exercice
Exercice UART/1
À quoi sert la “parité” dans les paramètres de communication avec un UART ?
Solution
La communication série n’est pas toujours très fiable et il arrive parfois que des bits soient mal reçus. La parité permet de détecter si un bit a été modifié pendant la transmission.
-
En 1980, un tel modem coûtait 185$. Avec l’inflation ça correspond à environ CHF 600 en 2022. ↩