Différence entre UART et RS-232?


80

La plupart du temps, RS-232 et UART se rejoignent dans les théories de la communication série. Sont-ils les mêmes? De mes lectures, j'ai conclu que UART était une forme matérielle du protocole RS-232. Ai-je raison?


1
Les réponses ci-dessus ont permis de mieux comprendre les différences. Mais je voudrais ajouter à ces réponses un lien de National Instruments traitant de ce sujet en détail. Voici le lien: Concepts généraux de communication série RS-232, RS-422, RS-485
devangmotwani

Réponses:


80

Non, UART et RS-232 ne sont pas identiques.

UART est responsable de l'envoi et de la réception d'une séquence de bits. À la sortie d'un UART, ces bits sont généralement représentés par des tensions de niveau logique. Ces bits peuvent devenir RS-232, RS-422, RS-485, ou peut-être des spécifications propriétaires.

RS-232 spécifie les niveaux de tension . Notez que certains de ces niveaux de tension sont négatifs et qu'ils peuvent également atteindre ± 15V. Un écart de tension plus important rend RS-232 plus résistant aux interférences (bien que dans une certaine mesure).

Un microcontrôleur UART ne peut pas générer de tels niveaux de tension par lui-même. Cela se fait à l'aide d'un composant supplémentaire: le pilote de ligne RS-232. Le MAX232 est un exemple classique de pilote de ligne RS-232 . Si vous parcourez la fiche technique, vous remarquerez que ce circuit intégré a une pompe de charge qui génère ± 10V à partir de + 5V.

entrez la description de l'image ici ( source )


4
La définition RS-232 que j'ai lue ne parle pas d'une séquence de bits ou d'une synchronisation du tout. En fait, je n'ai jamais trouvé de norme officielle décrivant le protocole arythmique NRZ asynchrone.
Wouter van Ooijen

1
RS-232 ne spécifie pas de séquence de bits.
Slebetman

Apparemment, le développement du format de caractère UART a été tellement dominé par la compagnie de téléphone Bell qu’aucune variante n’a vu le jour. En conséquence, le format de bit début / donnée / parité / arrêt n’a jamais fait l’objet d’une norme indépendante. L’utilisation dans l’ensemble du secteur était tellement uniforme qu’aucune définition «officielle» n’était requise. Ce n’était pas le cas des liens physiques et le RS-232 a donc été développé.
WhatRoughBeast

3
Les formats de caractères UART sont antérieurs aux modems de Bell. C’était en matériel télétype (à huit bits avec parité) en ASCII, et Baudot auparavant.
Whit3rd

34

UART (ou USART) - Récepteur / émetteur asynchrone universel (synchrone)

Il s’agit essentiellement d’une interface de communication série. La partie "universelle" signifie qu’elle peut être configurée pour prendre en charge de nombreux protocoles série spécifiques différents. Le terme est générique et ne représente pas une norme spécifique. Au minimum, cela signifie qu’il dispose d’ TXune RXligne et d’une ligne qui envoie un flux de données série et reçoit un flux de données série.

RS-232 - Norme définissant les signaux entre deux périphériques, définissant les noms des signaux, leur objectif, les niveaux de tension, les connecteurs et les broches.

Il s’agit d’une norme d’interface spécifique permettant l’interopérabilité des équipements. Bien que deux matériels puissent avoir des UART, vous ne savez pas qu'ils se connecteront sans dommage ou ne communiqueront pas correctement, à moins que vous sachiez qu'ils ont les mêmes normes de brochage et de tension, ou qu'ils incluent un convertisseur ou un câble spécialement câblé spécifique à l'interconnexion des réseaux. ces deux dispositifs spécifiques. Pour éviter d'avoir besoin de convertisseurs ou de câbles spéciaux, les fabricants peuvent choisir de suivre la norme RS-232. Vous savez alors qu'un câble standard RS-232 reliera les deux.

Cependant, ni l'UART, ni la norme RS-232 ne définissent ce qui est envoyé sur les lignes TXet RX. Généralement, lorsque les gens utilisent RS-232, ils utilisent un simple codage NRZ à 8 bits avec un bit de début et un bit d’arrêt. La plupart des équipements actuellement fabriqués utilisent cet encodage, mais ce n'est pas obligatoire. Vous pouvez trouver des équipements plus anciens comportant des bits de parité ou utilisant 7 ou 9 bits. L'UART peut être configuré pour prendre en charge ces différents protocoles sur ses lignes TXet RX.

Les UART n'interfèrent généralement pas directement avec RS-232. Vous devrez convertir la sortie de l'UART au standard +/- 12V requis par RS-232. Une interface RS-232 complète implique généralement à la fois un convertisseur de niveau UART et un convertisseur de niveau RS-232. En outre, la norme RS-232 comprend la définition de plusieurs autres broches de signalisation en plus TXet RX, que vous devrez peut - être utiliser en fonction de l'équipement dont vous avez besoin pour vous connecter. Ceux-ci devront également être convertis de niveau et votre UART pourra, ou non, prendre en charge ces signaux. Si ce n'est pas le cas, vous devrez les contrôler directement avec votre logiciel / micrologiciel.

Ainsi, même si un UART peut vous aider à implémenter une interface RS-232, ce n'est pas une interface RS-232 elle-même.


Câble standard RS-232? Il n'y a pas une telle chose. Dans mon sac d’équipement, je transporte une douzaine d’adaptateurs pour RS-232. RS-232 spécifie un connecteur DB-25, mais j’ai vu les connecteurs DD-9, RJ45, DIN8 et autres, et autre que le raccordement d’un modem à un PC, je n’ai jamais pu utiliser de câble COTS pour un projet RS232. Heureusement, 90% du temps qu'un couple d'adaptateurs fera avec un câble personnalisé, ils sont faciles à fabriquer.
Hildred

Pour mémoire, je pense que le «S» dans USART signifie «synchrone», pas «série». Voir ici . Les USART sont des "installations" sur les anciennes puces UART qui permettent également des modes de communication synchrones.
Lorenzo Donati

14

L'UART permet de convertir les données parallèles des lignes de bus PC en données série pour la transmission via des pilotes de ligne vers des périphériques RS-232, RS-422 et RS-485 . La broche d’horloge de la puce UART est alimentée par une source d’horloge programmable. La vitesse d'horloge est déterminée par la configuration du débit en bauds que l'appareil utilisera. La vitesse d'horloge est 16 X le débit en bauds. Placer une sonde d'oscilloscope sur la broche d'horloge d'une puce UART et déterminer la fréquence, puis diviser par 16, est un moyen de déterminer un débit en bauds inconnu.


5
+1 pour "convertir des données parallèles en données série", aucune autre réponse ne le mentionne ici.
TisteAndii
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.