UART

De Wiki I2C
Aller à : navigation, rechercher

Présentation

Lorsqu'on utilise une communication série en robotique, la plus répandue est UART (Universal Asynchronous Receiver Transmitter) ou USART (Universal Synchronous and Asynchronous Receiver Transmitter).

C'est un protocole plutôt simple puisqu'il utilise 2 lignes : une pour l'émission TX(transmitter) et une pour la réception(receiver). Lorsqu'on souhaite l'utiliser avec un port COM ou USB sur un PC, on doit utiliser un convertisseur.

Trame

Une trame UART est constituée des bits suivants :

  • bit de start toujours à 0 : il sert à la synchronisation du récepteur
  • données : la taille peut varier (généralement entre 5 et 9 bits)
  • optionnellement, un bit de parité paire ou impaire
  • bit de stop toujours à 1 (la durée peut varier entre 1, 1,5 et 2 temps bit)

Au repos, le niveau logique est le 1.

Niveaux de tension

Ce protocole respecte les niveaux TTL, soit un niveau bas à 0V et un niveau haut à +5V

Vitesse de transmission

Pour faciliter la communication entre les composants, la vitesse de transmission est normalisée et doit être un multiple de 9600 bauds, un baud représentant 1 bit par seconde.

Communication

Lorsqu'on souhaite faire communiquer 2 composants, ils doivent être configurés de manière identique : même vitesse, même nombre de bits de données, présence d'un bit de parité ou non, nombre de bits de stop.

Il faut également que les niveaux logiques soient équivalents. Si vous utilisez un composant avec un niveau logique haut à 3V et un autre à 5V, ce dernier risque d'endommager le premier. Pour cela, on peut utiliser des composants dédiés (MAX232, ...) ou faire un montage à la main à base de résistance.

Implémentations

Arduino

Nucléo

Sources