UART (Universal Asynchronous Receiver/Transmitter) est un protocole fondamental pour les systèmes embarqués et les appareils IoT.
Principaux défis : garantir des débits en bauds cohérents entre les appareils et interpréter les structures de trames de données.
Composants du cadre
Bit de démarrage (1 bit) : un signal basse tension marquant le début d'une trame de données.
Bits de données (5 à 9 bits) : la charge utile (généralement 8 bits = 1 octet).
Bit de parité (1 bit en option) : détection d'erreur via parité impaire/paire.
Bit d'arrêt (1 à 2 bits) : signal haute tension indiquant la fin d'une trame.
Schéma : [Bit de démarrage] [D0-D7] [Parité] [Bit d'arrêt]
Paramètres de configuration
Longueur des données (par exemple, 8 bits), mode de parité (aucun/impair/pair), bits d'arrêt (1 ou 2).
Notions de base sur le débit en bauds
Symboles par seconde (1 baud = 1 symbole/s). Relation avec le débit binaire :
Formule de prétartreur
Équation clé :
Exemple : pour une horloge de 16 MHz et un débit en bauds cible de 9 600 :
Tolérance d'erreur
Le préscaleur doit être un entier. Assurez-vous que l'erreur de débit en bauds réelle par rapport à théorique est inférieure à 2 %.
Configuration matérielle
Affectez les broches GPIO au mode UART et activez les horloges périphériques.
Configuration du registre
Définir le préscaler (registre BRR), les bits de données, la parité et les bits d'arrêt.
Extrait de code :

Validation
Transmettez les données de test et vérifiez les formes d'onde à l'aide d'un analyseur logique.
Corruption des données
Cause : débits en bauds ou formats de trame incompatibles.
Correction : vérifiez les valeurs du préscaler et les paramètres de trame (par exemple, 8N1).
Erreurs de parité
Cause : Bruit ou configuration de parité incorrecte.
Correction : activez les contrôles de parité ou ajoutez un filtrage du bruit matériel.
courte portée de communication
Cause : limitations de tension TTL/CMOS.
Correction : utilisez des convertisseurs de niveau RS-232/RS-485 pour la communication longue distance.
Formule : Débit en bauds = Horloge système / (Préscaler × 16).
Meilleures pratiques :
Utilisez des débits en bauds standard (par exemple, 9 600, 115 200) pour minimiser les erreurs.
Valider les configurations avec des analyseurs logiques.
Aides visuelles
Fig. 1 : Forme d'onde de la trame de données UART (annotation du bit de démarrage, des bits de données, des bits d'arrêt).
Fig. 2 : Exemple de calcul du préscaleur de registre STM32 BRR.
Tableau 1 : Valeurs de prédiviseur courantes pour les systèmes 16 MHz (9 600, 19 200, 115 200 bauds).
Ce guide fournit aux développeurs les connaissances nécessaires pour maîtriser la communication UART, dépanner efficacement et concevoir des systèmes embarqués robustes.