Certains disent que UART est du matériel, d'autres disent que UART est l'un des protocoles de communication série.
Certains disent que UART est du matériel, d'autres disent que UART est l'un des protocoles de communication série.
Vos deux premiers liens sont tout simplement faux. Un UART est un élément matériel qui peut implémenter un certain nombre de protocoles différents qui sont utilisés pour encadrer des flux de données asynchrones. Le U est un acronyme pour "Universal", et bien qu'il soit effectivement correct, il n'y a aucune raison pour laquelle un protocole ne pourrait pas être utilisé qui confond la population actuelle des UART - autre que le fait que cela n'en vaut pas la peine.
Les différents protocoles traités utilisent des nombres de bits différents pour détecter les conditions de démarrage et d'arrêt, la présence ou l'absence d'un bit de parité (et sa polarité), et la longueur des données de trame. En règle générale, vous pouvez spécifier 5,6,7 ou 8 bits de données par image. Si quelqu'un insistait pour que ses données soient formatées dans des trames de 4 bits, aucune puce UART existante ne serait en mesure de les gérer.
C'est en partie une question de définition. Merriam-Webster, par exemple, définit le protocole (pour ce contexte) comme
un ensemble de conventions régissant le traitement et en particulier le formatage des données dans un système de communication électronique
Notez que l'implémentation matérielle ne fait pas partie de la définition.
En fait, c'est les deux.UA signifie Universal Asynchronous qui gère la transmission série asynchrone.RT signifie récepteur / émetteur qui sont clairement des termes matériels.
L'UART est à la fois le matériel qui implémente le protocole (UART).La partie matérielle est principalement appelée «périphérique» ou périphérique UART.
Cependant, le protocole UART peut également être implémenté par logiciel uniquement (en utilisant 2 broches GPIO pour la réception et la transmission).La plupart du temps, cela consomme considérablement la puissance du processeur (en fonction de la vitesse de communication).
Parce que la communication série est si largement utilisée, la plupart des micro-contrôleurs ont au moins un périphérique UART matériel pour permettre la plupart des manipulations effectuées par le matériel (comme la mise en mémoire tampon, la division des octets en bits et l'envoi / réception, l'ajout de bits de démarrage / d'arrêt, labit de parité etc.).
UART (Universal Asynchronous Reciever / Transmitter) se réfère le plus correctement à un bloc fonctionnel (normalement matériel mais parfois logiciel) pour transmettre et recevoir des données série asynchrones qui peuvent être configurées pour une sélection de différents débits en bauds, comptages de bits, parité, etc.
Mais malgré le "universel" dans le nom, la flexibilité est encore assez limitée et le format de base en grande partie fixe. Il y a un "bit de début" lorsque la ligne s'éloigne de l'état de repos pour indiquer le début d'un "octet", un nombre (généralement 7 ou 8) de bits de données, éventuellement un bit de parité puis un ou deux "bits d'arrêt" avec la ligne de retour à l'état inactif pour garantir que chaque octet commence par une transition hors de l'état inactif.
Les gens ont besoin d'un nom pour cette famille d'encodages, ils pourraient simplement utiliser le terme "série asynchrone", mais c'est un peu trop approximatif. Il existe de nombreux encodages série asynchrones qui sont très différents de ceux qui peuvent être gérés par un UART. Donc, pour le meilleur ou pour le pire, cette méthode d'encodage est appelée "UART série" ou simplement "UART". Le codage est essentiellement nommé d'après le matériel utilisé pour l'implémenter.
UART / USART est en effet du matériel. En fait, avant même de commencer la discussion sur la terminologie, voici un exemple populaire des années 80: UART 8250, qui est
"... un circuit intégré conçu pour implémenter l'interface pour les communications série".
Si vous parcourez la terminologie, vous verrez des éléments matériels référencés. Par exemple dans la présentation Microchip 'Utilisation de l'USART en mode asynchrone ', vous remarquerez quelque chose comme l'horloge, les broches, le duplex et l'interface mentionnés:
USART est l'acronyme de Universal Synchronous Asynchronous Receiver Transmitter. Il est parfois appelé Serial Communications Interface ou SCI. L'opération synchrone utilise une ligne clock et data alors qu'il n'y a pas d'horloge séparée accompagnant les données pour la transmission asynchrone. Comme il n'y a pas d'horloge signal en fonctionnement asynchrone, une broche peut être utilisée pour la transmission et une autre broche peuvent être utilisées pour la réception. La transmission et la réception peut se produire en même temps - c'est ce qu'on appelle l'opération full duplex. La transmission et la réception peuvent être activées indépendamment. Cependant, lorsque l'serial port est activé, l'USART contrôlera les deux broches et l'une ne peut pas être utilisée pour E / S à usage général lorsque l'autre est utilisé pour la transmission ou la réception.
Regardons maintenant le document TI 'Interface Circuits for TIA / EIA-232-F':
En regardant l'interface DB9 un pas en arrière dans le système numérique, il y a, dans la plupart des cas, un récepteur / émetteur asynchrone universel (UART) ou élément de communication asynchrone (ACE). L'ACE fournit le conversion parallèle-série et les bits start / stop nécessaires, bit de parité génération et vérification de la transmission de données sans erreur.
Pour citer des exemples de Prototypage FPGA par Verilog: Xilinx Spartan-3 Version:
Un récepteur et émetteur asynchrone universel (UART) est un circuit qui envoie des données parallèles via serial line. Les UART sont fréquemment utilisés en conjonction avec la norme RS-232 EIA (Electronic Industries Alliance), qui spécifie les caractéristiques électriques, mécaniques, fonctionnelles et procédurales de deux équipements de communication de données.
Et un peu plus loin:
Un UART comprend un émetteur et un récepteur. L'émetteur est essentiellement un registre spécial shift
Il en va de même pour la description sur Wikipédia, elle répertorie essentiellement les éléments matériels que l'interface UART devrait avoir.
Où l'aspect logiciel entre-t-il en jeu? Cela est géré par le protocole série asynchrone lui-même. Le livre 'Programming 16-Bit PIC Microcontrollers in C: Learning to Fly the PIC 24' fournit une très belle introduction au chapitre 8: dans l'aviation, vous avez un protocole précis sur comment et ce qui doit être dit, qui parle premier et deuxième, etc., et c'est la même chose pour la communication série. Le logiciel contrôlera le matériel fourni par UART pour transmettre - envoyer le bit de démarrage, les données, puis le bit d'arrêt - et quand écouter.
Le point important à noter est que UART n'a pas besoin d'être lié au connecteur DB-9 - UART n'est pas DB-9. Vous avez de nos jours Raspberry Pi, Arduino et de nombreux autres systèmes embarqués qui n'utilisent que 4 lignes de fils. Parfois, il y a des convertisseurs USB vers RS-232. Par exemple, j'ai travaillé avec la carte PICDEM PIC18 qui peut utiliser DB-9 ou USB pour la communication série. Les données série peuvent également être envoyées via des lignes Ethernet.
Il s'agit d'un matériel qui - comme son nom l'indique - comprend un émetteur physique et un récepteur physique.Ce n'est pas et ne peut pas être un protocole car un protocole est un système de règles (qui n'est évidemment pas une entité physique).