Articles

Communication sérielle

Posted on
Contributeurs : jimblom

Favorisé Favorite 88

Partager

Utiliser cette URL pour partager:

UARTs

La dernière pièce de ce puzzle série est de trouver quelque chose pour à la fois créer les paquets série et contrôler ces lignes matérielles physiques. Entrez dans l’UART.

Un récepteur/émetteur asynchrone universel (UART) est un bloc de circuit responsable de la mise en œuvre de la communication série. Essentiellement, l’UART agit comme un intermédiaire entre les interfaces parallèles et série. À une extrémité de l’UART se trouve un bus d’environ huit lignes de données (plus quelques broches de contrôle), à l’autre se trouvent les deux fils série – RX et TX.

UART simplifié
Interface UART super-simplifiée. Parallèle d’un côté, série de l’autre.

Les UART existent en tant que circuits intégrés autonomes, mais on les trouve plus souvent à l’intérieur des microcontrôleurs. Vous devrez vérifier la fiche technique de votre microcontrôleur pour voir s’il possède des UART. Certains n’en ont pas, d’autres en ont un, d’autres encore en ont plusieurs. Par exemple, l’Arduino Uno – basé sur le « vieux fidèle » ATmega328 – n’a qu’un seul UART, tandis que l’Arduino Mega – construit sur un ATmega2560 – a un énorme quatre UART.

Comme le R et le T de l’acronyme l’indiquent, les UART sont responsables à la fois de l’émission et de la réception des données série. Du côté de la transmission, un UART doit créer le paquet de données – en y ajoutant des bits de synchronisation et de parité – et envoyer ce paquet sur la ligne TX avec un timing précis (selon le débit en bauds défini). Du côté de la réception, l’UART doit échantillonner la ligne RX à des cadences conformes au débit en bauds prévu, prélever les bits de synchronisation et recracher les données.

UART Interne
Schéma fonctionnel de l’UART interne (avec l’aimable autorisation de la fiche technique Exar ST16C550)

Les UART plus avancés peuvent jeter leurs données reçues dans un tampon, où elles peuvent rester jusqu’à ce que le microcontrôleur vienne les chercher. Les UART libèrent généralement leurs données tamponnées sur la base du principe du premier entré, premier sorti (FIFO). Les tampons peuvent être aussi petits que quelques bits, ou aussi grands que des milliers d’octets.

Les UART logiciels

Si un microcontrôleur n’a pas d’UART (ou n’en a pas assez), l’interface série peut être bit-bangée – directement contrôlée par le processeur. C’est l’approche adoptée par les bibliothèques Arduino comme SoftwareSerial. Le bit-banging est gourmand en processeur, et n’est généralement pas aussi précis qu’un UART, mais il fonctionne à la rigueur !

Partager

Utiliser cette URL pour partager :

.

Laisser un commentaire

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