Compréhension du UART

Intéressé ?

R&S®Essentials | Fondamentaux de l'oscilloscope numérique et des sondes

Compréhension du UART

Qu'est ce que le UART ?

L'UART correspond à récepteur /émetteur asynchrone universelet définit un protocole, ou un ensemble de règles, dédié à l'échange de données série entre deux appareils. L'UART est très simple et utilise uniquement deux câbles entre l'émetteur et le récepteur pour émettre et recevoir dans les deux sens. Les deux terminaisons ont également une connexion de mise à la terre. La communication en UART peut être simplex(les données sont envoyées dans une seule direction), half-duplex(chaque côté parle mais un seul à la fois), ou full-duplex(les deux côtés peuvent émettre simultanément). Les données UART sont émises sous la forme de trames. Le format et le contenu de ces trames sont brièvement décrits et expliqués.

Les données UART sont émises sous la forme de trames

Où est utilisé l'UART ?

L'UART a été l'un des tout premiers protocoles série. Les ports série une fois omniprésents sont quasiment toujours basés sur l'UART, et les appareil utilisant des interfaces RS-232, des modems externes, etc. sont des exemples classiques où est utilisé l'UART.
Ces dernières années, la popularité de l'UART a diminué : des protocoles tels que SPI et I2C ont remplacé l'UART dans les puces et les composants. Au lieu de communiquer avec un port série, la plupart des ordinateurs et périphériques modernes utilisent dorénavant des technologies telles que l'Ethernet et l'USB. Cependant, l'UART est toujours utilisé pour des applications faible débit et faible vitesse, car il est très simple, économique et facile à mettre en œuvre.

Durée et synchronisation des protocoles UART

L'un des gros avantages de l'UART est qu'il est asynchrone – l'émetteur et le récepteur ne partage pas un signal d'horloge commun. Bien que cela simplifie grandement le protocole, il place certaines exigences sur l'émetteur et le récepteur. Puisqu'ils ne partagent pas d'horloge, les deux extrémités doivent émettre à la même vitesse prédéfinie, afin d'avoir la même durée de bit. Les taux de baud UART les plus couramment utilisés aujourd'hui sont 4800, 9600, 19,2K, 57,6K et 115,2K. En plus d'avoir le même taux de baud, les deux extrémités de la connexion UART doivent également utiliser la même structure et paramètres de trame. Le meilleur moyen de comprendre cela est de regarder une trame UART.

Format de trame UART

Les trames UART contiennent des bits de départ et d'arrêt, des bits de données et un bit de parité optionnel, qui sera expliqué par la suite.

Comme avec la plupart des systèmes numériques, un niveau de tension “haut” est utilisé pour indiquer un “1” logique et un niveau de tension “bas” est utilisé pour indiquer une “0” logique. Puisque le protocole UART ne définit pas des tensions ou des gammes de tensions spécifiques pour ces niveaux, parfois le niveau haut est également appelé “marque” alors que le niveau bas est appelé “espace”. A noter que dans l'état d'inactivité (où aucune donnée n'est émise),la ligne est maintenue au niveau haut. Cela permet la détection facile d'une ligne ou d'un émetteur endommagé.

Bits de départ et d'arrêt

Puisque l'UART est asynchrone, l'émetteur doit signaler que les bits de données arrivent. Cela est réalisé en utilisant le bit de départ. Le bit de départ est une transition de l'état d'inactivité à un état bas, et immédiatement suivi par les bits de données utilisateur.
Après que les bits de données soient terminés, le bit d'arrêt indique la fin des données utilisateur. Le bit d'arrêt est une transition de retour à l'état haut ou à l'état d'inactivité ou restant à l'état haut pour une durée de bit supplémentaire. Un second bit d'arrêt (optionnel) peut être configuré, généralement pour donner le temps au récepteur d'être prêt pour la prochaine trame, mais cela n'est pas une pratique commune.

Bits de données

Les bits de données sont des données utilisateur ou des bits “pratiques” et viennent immédiatement après le bit de départ. Il peut y avoir de 5 à 9 bits de données utilisateur, bien que 7 ou 8 bits soient les plus courants. Ces bits de données sont généralement émis avec le bit le moins significatif en premier.

Exemple :
Si nous voulons envoyer la lettre capitale “S” dans 7 bits ASCII, la séquence de bit est 1 0 1 0 0 1 1. Nous inversons d'abord l'ordre des bits pour les placer dans l'ordre de bit le moins significatif, qui est 1 1 0 0 1 0 1, avant de les envoyer. Après que le dernier bit de données soit envoyé, le bit d'arrêt est utilisé pour terminer la trame et la ligne retourne à l'état d'inactivité.

  • 7 bits ASCII ‘S’ (0x52) = 1 0 1 0 0 1 1
  • Ordre LSB = 1 1 0 0 1 0 1

Bits de départ et d'arrêt

Bits de données

Bit de parité

Une trame UART peut également contenir un bit de parité optionnel pouvant être utilisé pour la détection d'erreur. Ce bit est inséré entre la fin des bits de données et le bit d'arrêt. La valeur du bit de parité dépend du type de parité utilisé (paire ou impaire) :

  • En parité paire, ce bit est réglé de manière à ce que le nombre total de 1s dans la trame sera pair.
  • En parité impaire, ce bit est réglé de manière à ce que le nombre total de 1s dans la trame sera impair.

Exemple :
La capitale “S” (1 0 1 0 0 1 1) contient un total de trois zéros et 4 uns. Si on utilise la parité paire, le bit de parité est zéro car il y a déjà un nombre pair de uns. Si on utilise la parité impaire, alors le bit de parité doit être un afin de permettre à la trame d'avoir un nombre pair de 1.
Le bit de parité peut uniquement détecter un bit simple retourné. S'il y a plus d'un bit retourné, il n'y a aucun moyen de le détecter de manière fiable en utilisant un seul bit de parité.

Exemple de bit de parité

Compréhension du UART

Regardez notre vidéo "Compréhension du UART" pour en savoir plus

Cette vidéo explique la vue d'ensemble technique du protocole série UART (universal asynchronous receiver/transmitter), incluant une description de la structure de la trame et la signification de chaque bit de la trame.

Conclusion

  • L'UART représente un émetteur / récepteur asynchrone universel, c'est un protocole simple à deux câbles dédié à l'échange de données série.
  • Asynchrone signifie aucun partage d'horloge, donc pour que l'UART fonctionne, le même bit ou taux de baud doit être configuré des deux côtés de la connexion.
  • Les bits de départ et d'arrêt sont utilisés pour indiquer où commencent et se terminent les bits de données, ou pour “la trame” de données.
  • Un bit de parité optionnel peut être utilisé pour détecter des erreurs sur un seul bit.
  • L'UART est un protocole de données série encore largement utilisé mais a été remplacé dans certaines applications par des technologies telles que SPI, I2C, USB et Ethernet ces dernières années.

Vous avez des questions à propos de l'UART ou d'autres protocoles série ? Nos experts vous aiderons.