Les bases de la communication UART

L’UART ou Universal Asynchronous Receiver Transmitter est un matériel dédié associé à la communication série. Le matériel pour UART peut être un circuit intégré sur le microcontrôleur ou un circuit intégré dédié. Cela contraste avec SPI ou I2C, qui ne sont que des protocoles de communication.

UART est l’une des techniques de communication série les plus simples et les plus utilisées. Aujourd’hui, UART est utilisé dans de nombreuses applications comme les récepteurs GPS, les modules Bluetooth, les modems GSM et GPRS, les systèmes de communication sans fil, les applications basées sur la RFID, etc.

Si vous vous souvenez des anciens systèmes informatiques, les périphériques comme la souris, l’imprimante et le modem sont connectés à l’aide d’un lourd connecteur à l’arrière. Tous ces périphériques communiquaient à l’aide de l’UART.

Même si l’USB a remplacé tous les types de normes de communication sur les ordinateurs et autres périphériques, l’UART est toujours utilisé dans les applications mentionnées ci-dessus.

Presque tous les microcontrôleurs ont un matériel UART dédié intégré à leur architecture. La principale raison de l’intégration du matériel UART dans les microcontrôleurs est qu’il s’agit d’une communication série et qu’elle ne nécessite que deux fils pour communiquer.

Avant d’aller plus loin dans l’explication de l’UART, de son fonctionnement et des étapes impliquées dans la transmission et la réception des données, nous allons essayer de récapituler quelques informations sur la communication série et une petite comparaison entre les communications série et parallèle.

Outline

Brève note sur la communication parallèle et série

Le transfert de données numériques d’un dispositif à un autre peut être réalisé de deux manières : Le transfert de données en parallèle et le transfert de données en série. Dans le transfert de données parallèle, tous les bits sont transférés de la source à la destination en une seule fois.

Ceci est possible car le transfert de données parallèle utilise plusieurs voies ou fils entre l’émetteur et le récepteur afin de transférer les données.

Les méthodes de transfert de données parallèles sont plus rapides et coûteuses car elles nécessitent plus de matériel et beaucoup de fils. Les imprimantes d’antan sont le meilleur exemple de communication parallèle externe. D’autres exemples sont la RAM, le PCI, etc.

Avec les progrès de la technologie des circuits intégrés, les circuits intégrés numériques deviennent plus petits et plus rapides et, par conséquent, les taux de transfert dans la communication parallèle avec plusieurs voies ont atteint un goulot d’étranglement.

La communication série, quant à elle, transfère les données bit par bit en utilisant une seule ligne ou un seul fil. Pour une communication bidirectionnelle entre l’émetteur et le récepteur, nous n’avons besoin que de deux fils pour réussir le transfert de données en série.

Puisque la communication en série nécessite moins de circuits et de fils, le coût de mise en œuvre est moindre. Par conséquent, l’utilisation de la communication série dans les circuits complexes pourrait être plus pratique que la communication parallèle.


Mais le seul souci avec les transferts de données en série est la vitesse. Comme le transfert de données s’effectue sur une seule ligne, la vitesse de transfert en communication série est inférieure à celle de la communication parallèle. De nos jours, la vitesse du transfert de données en série n’est pas un souci car les progrès technologiques ont permis d’obtenir des vitesses de transfert plus rapides.

Introduction à la communication UART

L’UART ou émetteur-récepteur asynchrone universel est un dispositif de communication en série qui effectue une conversion de données parallèle – à – série du côté de l’émetteur et série – à – parallèle du côté du récepteur. Il est universel car les paramètres comme la vitesse de transfert, la vitesse des données, etc. sont configurables.

Comme mentionné dans la section d’introduction, l’UART est un matériel qui agit comme un pont entre le processeur et le protocole ou le port de communication série. L’image suivante montre brièvement cette interface. La communication série peut être n’importe quoi comme USB, RS – 232, etc.


La lettre ‘A’ dans UART signifie Asynchrone c’est-à-dire qu’il n’y a pas de signal d’horloge pour synchroniser ou valider les données transmises par l’émetteur et reçues par le récepteur (Asynchronous Serial Communication).

Ceci s’oppose à la communication série synchrone, qui utilise un signal d’horloge partagé entre l’émetteur et le récepteur afin de « Synchroniser » les données entre eux.

S’il n’y a pas d’horloge (ou tout autre signal de synchronisation) entre l’émetteur et le récepteur, alors comment le récepteur sait-il quand lire les données ?

Dans UART, l’émetteur et le récepteur doivent s’accorder au préalable sur les paramètres de synchronisation. Aussi, UART utilise des bits spéciaux au début et à la fin de chaque mot de données pour synchroniser l’émetteur et le récepteur. Plus d’informations sur ces bits spéciaux dans les sections ultérieures.

Dans la communication série basée sur UART, l’émetteur et le récepteur communiquent de la manière suivante. L’UART sur le dispositif émetteur, c’est-à-dire l’UART de transmission, reçoit des données parallèles de l’UC (microprocesseur ou microcontrôleur) et les convertit en données série.

Ces données série sont transmises à l’UART sur le dispositif récepteur, c’est-à-dire l’UART de réception. L’UART de réception, à la réception des données série, les reconvertit en données parallèles et les donne à l’UC.

Connexion de base de l'UART

La broche de l’UART d’émission, qui transmet les données série, est appelée TX et la broche de l’UART de réception, qui reçoit les données série, est appelée RX.

Puisque l’UART implique une conversion de données parallèle – vers – série et série – vers – parallèle, les registres à décalage sont une partie essentielle du matériel de l’UART (deux registres à décalage pour être précis : Registre à décalage de l’émetteur et Registre à décalage du récepteur).

Comment fonctionne l’UART ?

Dans la communication série UART, les données sont transmises de manière asynchrone, c’est-à-dire qu’il n’y a pas d’horloge ou d’autre signal de synchronisation impliqué entre l’émetteur et le récepteur. Au lieu d’un signal d’horloge, UART utilise certains bits spéciaux appelés bits de démarrage et d’arrêt.

Ces bits sont ajoutés au paquet de données réel au début et à la fin respectivement. Ces bits supplémentaires permettent à l’UART récepteur d’identifier les données réelles.

L’image ci-dessus montre une connexion UART typique. L’UART émetteur reçoit des données du dispositif de contrôle par le biais du bus de données. Le dispositif de contrôle peut être n’importe quoi comme une unité centrale d’un microprocesseur ou un microcontrôleur, une unité de mémoire comme une RAM ou une ROM, etc. Les données reçues par l’UART émetteur depuis le bus de données sont des données parallèles.

À ces données, l’UART ajoute des bits de début, de parité et d’arrêt afin de les convertir en un paquet de données. Le paquet de données est ensuite converti de parallèle en série à l’aide d’un registre à décalage et est transmis bit – par – bit à partir de la broche TX.

L’UART de réception reçoit ces données série sur la broche RX et détecte les données réelles en identifiant les bits de début et d’arrêt. Le bit de parité est utilisé pour vérifier l’intégrité des données.

Après avoir séparé les bits de début, de parité et d’arrêt du paquet de données, les données sont converties en données parallèles à l’aide d’un registre à décalage. Ces données parallèles sont envoyées au contrôleur à l’extrémité de réception par le biais d’un bus de données.

Structure du paquet ou de la trame de données

Les données dans la communication série UART sont organisées en blocs appelés paquets ou trames. La structure d’un paquet de données UART typique ou le cadrage standard des données est présenté dans l’image suivante.

Voyons chaque pièce de la trame.

Bit de départ : Le bit de départ est un bit de synchronisation qui est ajouté avant les données réelles. Le bit de départ marque le début du paquet de données. Habituellement, une ligne de données inactive, c’est-à-dire lorsque la ligne de transmission de données ne transmet aucune donnée, est maintenue à un niveau de tension élevé (1).

Afin de commencer le transfert de données, l’UART émetteur tire la ligne de données du niveau de tension élevé au niveau de tension bas (de 1 à 0). L’UART récepteur détecte ce passage du niveau haut au niveau bas sur la ligne de données et commence à lire les données réelles. Habituellement, il n’y a qu’un seul bit de départ.

Bit d’arrêt : Le bit d’arrêt, comme son nom l’indique, marque la fin du paquet de données. Il a généralement une longueur de deux bits, mais souvent un seul bit est utilisé. Afin de mettre fin à la transmission, l’UART maintient la ligne de données à haute tension (1).

Bit de parité : La parité permet au récepteur de vérifier si les données reçues sont correctes ou non. La parité est un système de contrôle d’erreur de bas niveau et existe en deux variétés : Parité paire et Parité impaire. Le bit de parité est facultatif et il n’est en fait pas si largement utilisé.

Bits de données : Les bits de données sont les données réelles transmises de l’émetteur au récepteur. La longueur de la trame de données peut être comprise entre 5 et 9 (9 bits si la parité n’est pas utilisée et seulement 8 bits si la parité est utilisée). Habituellement, le LSB est le premier bit de données à transmettre (sauf indication contraire).

Règles de l’UART

Comme mentionné précédemment, il n’y a pas de signal d’horloge dans l’UART et l’émetteur et le récepteur doivent s’entendre sur certaines règles de communication série pour un transfert de données sans erreur. Ces règles comprennent :

  • Bits de synchronisation (bits de départ et d’arrêt)
  • Bit de parité
  • Bits de données et
  • Taux de baud

Nous avons vu les bits de synchronisation, le bit de parité et les bits de données. Un autre paramètre important est le débit en bauds.

Débit en bauds : La vitesse à laquelle les données sont transmises est mentionnée à l’aide du Baud Rate. L’UART émetteur et l’UART récepteur doivent s’accorder sur le Baud Rate pour une transmission de données réussie.

Le Baud Rate est mesuré en bits par seconde. Certains des débits en bauds standard sont 4800 bps, 9600 bps, 19200 bps, 115200 bps, etc. Parmi celles-ci, la vitesse de transmission de 9600 bps est la plus couramment utilisée.

Voyons un exemple de trame de données où deux blocs de données c’est-à-dire 00101101 et 11010011 doivent être transmis. Le format de la trame est 9600 8N1 c’est-à-dire 9600 bps avec 8 bits de données, pas de parité et 1 bit d’arrêt. Dans cet exemple, nous n’avons pas utilisé le bit de parité.

Avantages de l’UART

  • Ne nécessite que deux fils pour la transmission de données en duplex intégral (en dehors des lignes d’alimentation).
  • Nul besoin d’horloge ou de tout autre signal de synchronisation.
  • Le bit de parité garantit que le contrôle d’erreur de base est intégré dans la trame du paquet de données.

Inconvénients de l’UART

  • La taille des données dans la trame est limitée.
  • La vitesse de transfert des données est moindre par rapport à la communication parallèle.
  • L’émetteur et le récepteur doivent convenir des règles de transmission et la vitesse de transmission appropriée doit être sélectionnée.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *