Protocoles de communications sérielles - Deuxième partie : UART

Mark Harris
|  Créé: Avril 14, 2021
Protocoles de communications sérielles - UART

Dans cet article, nous examinerons le populaire périphérique UART. Ce n'est pas un protocole de communication, mais plutôt le circuit physique utilisé dans les microcontrôleurs ou les circuits intégrés autonomes pour transmettre et recevoir des données sérielles. Il soutient la série d'articles que nous avons produite pour examiner certains des différents types de protocoles de communication série disponibles.

Les communications sérielles sont le mécanisme parfait pour transmettre des informations entre des dispositifs tels que les microcontrôleurs, les périphériques producteurs de données et d'autres appareils intelligents. Nous espérons que vous trouverez cette ressource inestimable la prochaine fois que votre conception nécessitera d'incorporer un bus de communication série. L'UART est également communément appelé le port série sur un dispositif. Cependant, cela peut souvent être confondu avec un autre type de port série, qui utilise le connecteur de style DB9 et utilise RS-232 comme protocole matériel. Il n'est pas rare d'avoir un UART connecté à un émetteur-récepteur RS-232 pour un périphérique UART sur un microcontrôleur et un dispositif basé sur RS-232 pour communiquer l'un avec l'autre.

UART signifie Émetteur-Récepteur Asynchrone Universel. Ce système de communication nécessite deux broches, en dehors de la masse. L'une est étiquetée TX, pour l'émetteur, et l'autre RX, pour le récepteur. L'apparition du mot asynchrone dans le nom signifie qu'il ne nécessite pas de signal d'horloge. Comme il n'a pas d'horloge, les dispositifs émetteur et récepteur doivent utiliser le même débit en bauds.

Le débit en bauds (Bd) est une unité de mesure du taux de transmission. Ce paramètre détermine la vitesse de communication sur le canal de données de l'émetteur et du récepteur. Le débit en bauds peut être représenté en bits par seconde pour simplifier. Ainsi, un débit de 1000 Bd signifie que la vitesse de communication est de 1000 bits par seconde, ou que la durée d'un bit est de 1/1000 seconde ou 1 milliseconde. Les débits en bauds ont des préfixes métriques standards tels que kBd (kilobaud), MBd (mégabaud) ou GBd (Gigabaud). Le débit en bauds inclut les parties non liées aux données d'un message, telles que les bits de début et de fin, ce qui signifie que le taux de transmission des informations utiles envoyées de l'émetteur au récepteur sera légèrement inférieur.

Certains des débits en bauds UART prédéfinis les plus populaires incluent :

  • 110 Baud
  • 300 Baud
  • 1200 Baud
  • 4800 Baud
  • 9600 Baud
  • 19200 Baud
  • 38400 Baud
  • 115200 Baud

Parfois, le taux de baud des deux dispositifs communiquant peut être ajusté, tandis que parfois, l'un des dispositifs aura un taux de baud fixe nécessitant que l'autre change pour correspondre.

Ainsi, pour connecter les deux dispositifs en utilisant les UARTs, la broche émettrice TX doit être connectée à la broche réceptrice RX :

UART

Câblage UART de base avec TX, RX et masse

Dans certaines configurations, vous aurez des broches RX et TX sur les deux dispositifs, vous permettant d'envoyer des commandes d'un microcontrôleur à un circuit intégré dédié et de recevoir des ordres ou des informations dans l'autre sens. Cela s'appelle une connexion duplex. Il existe également des applications où le retour d'information du second dispositif n'est pas nécessaire. Par conséquent, les communications ne sont nécessaires que dans une direction ; donc, seule une ligne de transmission TX vers RX est nécessaire. Cela s'appelle une connexion simplex.

UART

Le dispositif émetteur devra envoyer un bit de départ pour initier les communications de ce dispositif vers le dispositif récepteur. Ce bit informe le dispositif récepteur que les communications ont commencé.

UART

Le dispositif UART envoie un bit de départ (commençant les communications)

Les bits de données sont ensuite envoyés sous forme de flux de huit bits, représentant les données réelles, où le bit le plus significatif (MSB) est étiqueté D7, et le bit le moins significatif (LSB) est étiqueté D0.

UART

Le premier dispositif dans la communication UART envoie les bits de données après le premier bit de départ.

Et à la fin de ces bits de données, l'émetteur envoie alors un bit de stop, qui indique que c'est la fin du message, et place le bus UART dans son mode inactif.

UART

UART

Le premier dispositif dans la communication UART envoie un bit de stop après les bits de données.

Nous pouvons voir dans ce cas ; le message UART complet consistera en 10 bits. En mode inactif, le bus UART est tiré vers le haut, il envoie un bit de départ qui est bas, et après cela viennent 8 bits de données, puis suivi par le bit de stop. Le bit de stop n'est pas limité à être juste un bit ; il peut venir dans diverses configurations, en fonction de la vitesse de la communication. Cette configuration signifie que l'ensemble de bits du message change constamment le niveau de tension du signal du bus de bas à haut au moins une fois :

Sampling Points

Exemple de paquet de communication série UART

Le bit le plus significatif D7 peut également être utilisé comme bit de parité. Ce bit fournit un mécanisme de vérification d'erreur rudimentaire qui apparaît dans les plus petits blocs des communications. Le bit de parité peut être utilisé pour s'assurer que le nombre total de bits hauts ou de uns est soit impair, soit pair, selon le codage. Pour une vérification de parité paire, si les bits de données D0 à D6 sont définis, ils consistent en un nombre pair de bits hauts, alors le bit de parité est mis à 0 (bas). Inversement, si cet ensemble de bits a un nombre impair de bits hauts, alors le bit de parité est mis à 1 (haut). Cela garantit que le nombre total de bits hauts dans le message sera pair. Dans le cas d'une vérification de parité impaire, alors si les bits de données D0 à D6 sont définis de telle manière qu'ils consistent en un nombre pair de bits hauts, le bit de parité est mis à 1 (haut). Inversement, si cet ensemble de bits a un nombre impair de bits hauts, alors le bit de parité est mis à 0 (bas). Cela garantit que le nombre total de bits hauts dans le message sera impair.

Ainsi, en utilisant le bit de parité, les erreurs peuvent être détectées en vérifiant les bits définis. Supposons que le nombre total de bits, y compris le bit de parité, définis à l'état haut soit incorrect. Dans ce cas, le bit de parité a permis au récepteur de détecter une erreur pendant la transmission. Cependant, ce type de protection contre les erreurs ne peut pas corriger l'erreur, seulement signaler qu'une erreur s'est produite car il n'y a aucun moyen de déterminer quel bit dans l'ensemble global de bits est incorrect. Il peut seulement détecter si un bit est dans l'état incorrect ; toute erreur affectant plusieurs bits peut ne pas être détectée si la parité globale s'avère être correcte.

Si l'erreur de parité est détectée, alors le message entier doit être jeté et retransmis depuis le début. En cas de niveaux élevés d'interférences ou de bruit, cela pourrait prendre un temps significatif pour réussir une transmission ; cependant, cela aide à prévenir les erreurs de message.

En plus de cela, les côtés récepteur et émetteur des communications UART doivent utiliser exactement le même taux de baud, longueur de caractère, mécanisme de parité et configuration de bit d'arrêt pour une communication réussie.

Il existe également une variante de l'UART, qui est appelée un USART. C'est un Émetteur-Récepteur Universel Synchrone Asynchrone. Il peut agir à la fois comme un canal asynchrone (tout comme l'UART) et un canal synchrone lorsque les données sont horodatées. L'horloge peut être récupérée à partir des données elles-mêmes ou envoyée comme un signal externe séparé.

Lors de l'utilisation d'un USART en mode synchrone, aucun bit de départ et d'arrêt n'est requis. Cela permet aux communications d'utiliser un débit de données plus élevé en fonctionnement synchrone car les temporisations des bits ont la référence d'horloge. Par conséquent, plus de bits peuvent être utilisés pour les données au lieu d'être utilisés pour les bits de départ/arrêt.

 

UART

Exemple de communication USART

UART

USART

L'UART nécessite uniquement un signal de données

Le mode synchrone USART nécessite à la fois des données et une horloge.

Dans l'UART, les données n'ont pas besoin d'être transmises à un taux fixe.

Dans le mode synchrone USART, les données sont transmises à un taux fixe.

Dans l'UART, les données sont habituellement transmises un octet à la fois.

Dans l'USART, les données synchrones sont typiquement transmises sous forme de blocs de données.

Dans l'UART, la vitesse de transfert de données est définie autour de valeurs spécifiques telles que 4800, 9600, 38400 bps, etc.

Dans l'USART, le mode synchrone permet d'obtenir un DTR (débit de transfert de données) plus élevé que pour le mode asynchrone si tous les autres facteurs restent constants.

La vitesse de l'UART est limitée à environ 115200 bps.

L'USART peut atteindre des débits supérieurs à 115 kbps.

Communications en duplex intégral : les données peuvent être envoyées dans les deux directions simultanément.

Communications en demi-duplex : les données ne peuvent être envoyées que dans une direction à la fois.

L'objectif principal de l'UART et de l'USART est de convertir les données parallèles sur les lignes de bus du PC en données sérielles qui peuvent être transmises à l'aide de pilotes de ligne sur un bus conforme à une norme de protocole de communications sérielles telle que RS-232 ou RS-485. Un convertisseur sera nécessaire pour faire l'interface entre l'UART/USART et le bus externe. Cela permet alors que les données soient lues par un dispositif similaire sans que les deux aient besoin d'utiliser précisément le même format de données sérielles. Tant que la transmission entre les deux se fait selon un protocole standard communément supporté, la mise en œuvre des communications sérielles au sein de chaque dispositif peut être spécifique à ce dispositif.

Bien que l'UART ait été largement supplanté par l'USB sur le marché informatique, ils sont encore largement utilisés pour les communications série dans les dispositifs à faible coût.

Résumé

Cet article a examiné certaines des caractéristiques populaires des dispositifs UART et discuté de certains de ses avantages et détails d'implémentation. Dans le prochain article, Protocoles de Communications Série - Partie Trois : RS-232, nous examinerons certains des protocoles de communication série disponibles. Vous avez manqué quelque chose ? Découvrez l'introduction aux Protocoles de Communication Série.

Les outils de conception dans Altium Designer® contiennent tout ce dont vous avez besoin pour suivre la nouvelle technologie. Parlez-nous aujourd'hui et découvrez comment nous pouvons améliorer votre prochaine conception de PCB.

A propos de l'auteur

A propos de l'auteur

Mark Harris est un ingénieur qui nous apporte plus de 12 ans d'expérience diversifiée dans l'industrie électronique, allant des contrats dans l'aérospatiale et la défense jusqu’au lancement de produits startup, dispositifs de loisirs en passant par une multitude d’autres accessoires. Avant de s'installer au Royaume-Uni, Mark était employé par l'un des plus grands organismes de recherche au Canada. Chaque jour, il travaillait sur un projet ou un défi différent impliquant l'électronique, la mécanique et les logiciels. Il est responsable de la publication de Celestial Database Library, la plus vaste bibliothèque de composants en base de données open source pour Altium Designer. Mark a une affinité particulière avec les équipements et les logiciels open source, la résolution de problèmes et les innovations appliquées à ce type de projets et leurs défis quotidiens. L'électronique est une passion ; suivre la transformation d’une idée en réalité, et interagir avec le monde est une source de plaisir sans fin.
Vous pouvez contacter Mark directement : mark@originalcircuit.com

Ressources associées

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.