GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que l'UART (récepteur/émetteur asynchrone universel)

Audience cible

Cet article suppose que le lecteur possède une compréhension de base des appareils électroniques, des circuits et de la terminologie.

Présentation

Dans le monde des communications d'appareils embarqués, il existe une petite poignée de protocoles qui sont utilisés pour de nombreuses applications différentes. Il arrive souvent que des protocoles plus courants couramment utilisés pour les opérations quotidiennes, tels que FTP et TCP, ne fonctionnent pas avec de petits appareils embarqués ou ne conviennent pas (souvent en raison des besoins en énergie ou en espace). C'est dans des cas comme ceux-ci que des normes de communication plus basiques, "jusqu'au bout des doigts" telles que l'UART sont très utiles.

Qu'est-ce que l'UART ?

Image Exar16550onItronixPCB par l'utilisateur Wikipedia Myself248 / Sous licence CC BY-SA 3.0

UART (Universal Asynchronous Receiver/Transmitter) est un petit appareil de communication efficace, similaire à I2C. L'UART est le plus souvent installé dans un élément matériel, intégré dans un CI (circuit intégré), qui traduit les données communiquées entre les formes série et parallèle. En d'autres termes, un appareil UART prend un flux de bits de données (le plus souvent conçu pour une communication parallèle), le convertit en bits de données série pour la transmission sur un seul fil ou bus, puis le transmet. À l'autre extrémité du câble, un autre appareil UART reçoit les bits série et les reconvertit en paquets de données parallèles. La partie "universelle" du nom fait référence à la configurabilité du format des données et des vitesses auxquelles elles sont transmises/reçues.
.
UART est l'un des plus anciens dispositifs de communication utilisés par les ordinateurs, datant ses origines remontent aux années 1960 lorsqu'il était utilisé pour connecter des ordinateurs à des claviers de téléscripteurs, ou "télétypes". Dans les années 1970, c'était le protocole utilisé pour lire et écrire des données sur des cassettes, et plus tard, il a été utilisé pour communiquer avec des modems pendant les premiers jours d'accès à distance des services BBS (Bulletin Board System) et Internet. Il a depuis été supplanté par des appareils plus complexes qui utilisent des protocoles tels que TCP et IP, mais sa conception est toujours utile avec les appareils embarqués.
.

Comment les UART communiquent

Comme mentionné ci-dessus, UART fonctionne en traduisant entre la communication parallèle et la communication série. Pourquoi faire cela, puisque la communication parallèle est tellement plus rapide ? Bien que la communication parallèle soit plus rapide, elle est également beaucoup plus coûteuse en termes de puissance et de support de transmission. Vous pouvez envoyer le même lot de données en bits série séquentiels, un par un, sur un seul fil, plutôt qu'en bits parallèles synchronisés, simultanément, sur un tas de fils. Si votre application manque d'espace, par exemple, il peut être beaucoup plus logique de n'utiliser qu'un seul fil. Pour cette raison, les appareils UART sont très pratiques dans les situations à faible consommation d'énergie et discrètes, telles que les systèmes embarqués.
.
Alors, comment cela fonctionne-t-il exactement ? L'avantage de la transmission asynchrone est que les données peuvent être transmises sans que l'expéditeur et le destinataire n'aient à partager un signal d'horloge, un signal qui peut occuper un espace de données précieux. Au lieu de cela, la synchronisation est convenue à l'avance entre les deux unités, et des bits spéciaux sont ajoutés à chaque paquet de données - chaque «mot». Les UART utilisent ces bits pour se synchroniser les uns avec les autres. Lorsque l'émetteur se prépare à envoyer un mot, il ajoute un bit START spécial au début du paquet. Ce bit avertit le récepteur qu'un paquet de données arrive et synchronise l'horloge interne du récepteur avec celle de l'émetteur. (Normalement, pour les autres appairages émetteur/récepteur, il suffit de synchroniser les horloges des deux appareils qu'ils s'accordent sur une vitesse de transmission en bits par seconde, ou "baud".)
.
Après le Bit START, l'émetteur envoie le mot. La plupart des systèmes UART utilisent des longueurs de mot de cinq à dix bits. La transmission de bits se produit sur une heure d'horloge cohérente, et le récepteur synchronisé dans le temps regarde le bus exactement à mi-chemin d'un temps « d'envoi » désigné pour déterminer si un 1 ou un 0 est envoyé (si le bus est HIGH, un « 1 » est envoyé ; sinon, c'est un '0'). Enfin, l'émetteur envoie un bit de parité (si le système a été configuré de cette façon) et un bit END. Ensuite, il commence un autre mot avec un autre bit START, et le processus continue. Le récepteur, quant à lui, rejette les bits START et STOP, utilise le bit de parité si nécessaire, enregistre le mot et continue à écouter pour plus de données. Si le circuit est une configuration duplex (communication bidirectionnelle), le même processus peut se répéter dans la direction opposée. Dans certains systèmes UART, les fils ne sont même pas nécessaires ; Les appareils infrarouges (IR) et Bluetooth sont souvent configurés pour transmettre et recevoir via le schéma de signalisation UART.

Petite anecdote historique :Lorsque rien n'est transmis, la ligne est maintenue HAUTE par les deux appareils, plutôt que BASSE (non alimentée). Cette convention est un vestige de l'époque où les lignes télégraphiques étaient maintenues hautes afin que chaque utilisateur final puisse dire que la ligne était ininterrompu.

.

Les utilisations des UART persistent

Les appareils UART existent depuis longtemps et se sont avérés toujours utiles, même aux côtés d'appareils capables de communications plus rapides et de vitesses de transfert gigabit rendues possibles aujourd'hui avec des serveurs d'hébergement VPS rapides et l'hébergement de serveurs gérés.
.
La plupart des microcontrôleurs modernes contiennent un dispositif UART ; les circuits intégrés simples peuvent contenir un, deux ou même 8 UART sur une seule puce (ces deux dernières conceptions sont appelées DUART et OCTART, respectivement). L'Arduino - l'IDE de microcontrôleur amateur populaire - a une interface UART intégrée sur chacune de ses cartes, même la plus petite d'entre elles. Le Raspberry Pi, un autre appareil amateur populaire, peut également s'interfacer avec des appareils UART. Pour tous ceux qui souhaitent travailler avec de petits appareils embarqués, c'est un appareil digne d'apprendre à utiliser.

.


Linux
  1. Qu'est-ce qu'une base de données relationnelle ?

  2. Qu'est-ce que les modèles de développement Web sans état et avec état

  3. Base de données NoSQL distribuée Elasticsearch - Qu'est-ce que c'est et devriez-vous l'utiliser ?

  4. Quelle est la différence entre événementiel et asynchrone ? Entre epoll et AIO ?

  5. Dans quel répertoire dois-je déployer les applications Rails ?

Qu'est-ce qu'une base de données OLTP ?

Qu'est-ce que la dénormalisation de la base de données ?

Qu'est-ce qu'une base de données ?

Qu'est-ce qu'une base de données distribuée et à quoi servent les systèmes de données distribués ?

Quelle est la différence entre DMA et les E/S mappées en mémoire ?

Quel est le moyen le plus simple de visualiser les données de stdout sous forme de graphique ?