Maîtriser l'UART : l'émetteur-récepteur asynchrone universel expliqué
L'UART, ou émetteur-récepteur asynchrone universel, reste le protocole matériel le plus largement adopté pour la communication point-à-point. Ce guide vous accompagne dans la configuration d'un UART, la compréhension de son format de paquet et l'implémentation de protocoles de trame sécurisés essentiels pendant le développement de produit.
Correctement configuré, un UART peut prendre en charge une variété de flux de données série ne nécessitant que deux fils. Ce câblage minimal réduit le coût et la complexité, rendant l'UART idéal pour les systèmes embarqués, microcontrôleurs et PC.
Nous couvrirons les fondamentaux de l'UART – transmission de paquet, format de trame standard et trames personnalisées qui ajoutent valeur en sécurité et conformité. L'article offre aussi des étapes pratiques pour interpréter les fiches techniques et configurer les périphériques UART.
À la fin, vous aurez une solide compréhension des standards UART et comment les exploiter pour améliorer les capacités de nouveaux produits.
« Le plus grand problème dans la communication est l'illusion qu'elle a eu lieu. »
— George Bernard Shaw
Les protocoles de communication structurent l'interaction entre appareils. Ils définissent un langage commun assurant l'échange fiable de données. Dans le monde embarqué, l'UART est le standard de facto pour la communication matérielle appareil-à-appareil.
Contrairement aux protocoles basés sur bus, l'UART ne nécessite qu'une ligne de transmission (Tx) et une ligne de réception (Rx), simplifiant la conception de carte et réduisant la consommation d'énergie.
Malgré sa popularité, de nombreuses implémentations négligent la conception de trame appropriée, ce qui peut compromettre la performance et la sécurité. Un protocole de trame bien défini est la clé d'un échange de données sans erreur et protégé.
La communication série asynchrone signifie pas de ligne d'horloge partagée ; au lieu de cela, l'émetteur et le récepteur s'appuient sur un baud rate assorti pour rester synchronisés.
Interface
Figure 1. Deux UART communiquant directement.
Chaque UART expose deux broches dédiées :
- Émetteur (Tx)
- Récepteur (Rx)
Figure 2. UART interfacé avec un bus de données.
Dans cet arrangement, l'UART émetteur convertit les données parallèles du bus en un flux de bits série sur sa ligne Tx. L'UART récepteur échantillonne ce flux, réassemblant les bits en données parallèles pour le bus local.
Les deux côtés doivent fonctionner au même baud rate – la vitesse en bits par seconde. Un désaccord peut entraîner des erreurs de trame ; les UART typiques tolèrent jusqu'à 10 % de déviation du baud rate.
Le Tableau 1 résume les attributs clés de l'UART.
Tableau 1. Résumé UART
| Fils | 2 |
|---|---|
| Baud Rates Supportés | 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1 000 000, 1 500 000 |
| Méthode de Transmission | Asynchrone |
| Maîtres Max | 1 |
| Esclaves Max | 1 |
Puisque l'UART est asynchrone, l'émetteur pilote un flux de bits basé sur sa propre horloge, tandis que le récepteur échantillonne les bits entrants en utilisant son horloge interne. Le bit de start, la trame de données, la parité optionnelle et les bits de stop définissent collectivement le paquet.
Transmission de données
Chaque paquet UART contient :
- Bit de Start : Une transition de haut vers bas signalant le début d'une trame.
- Trame de Données : 5-8 bits de charge utile, LSB en premier. Si la parité est utilisée, la trame peut être de 9 bits.
- Bit de Parité (optionnel) : Parité paire ou impaire pour détecter les erreurs à bit unique.
- Bits de Stop : Un à deux bits de niveau haut marquant la fin de la trame.
Figure 3. Structure de paquet UART.
Figure 4. Illustration du bit de start.
Figure 5. Exemple de trame de données.
Figure 6. Utilisation du bit de parité.
Figure 7. Illustration du bit de stop.
Flux de transmission
1. Entrée Parallèle : L'émetteur reçoit les données parallèles du bus.
Figure 8. Bus de données alimentant l'émetteur.
2. Assemblage de Trame : L'émetteur préfixe le bit de start, suffixe les bits de parité et de stop, formant un paquet complet.
Figure 9. Paquet UART à l'émetteur.
3. Transmission Série : Le paquet est envoyé bit par bit au baud rate configuré.
Figure 10. Transmission UART continue.
4. Réception : Le récepteur rejette les bits de cadrage et reconstrruit les données originales.
Figure 11. Paquet au récepteur.
5. Sortie Parallèle : Le récepteur convertit les données série en parallèle et les transmet au bus local.
Figure 12. Flux de données vers le bus récepteur.
Protocoles de Trame Personnalisés
Bien que la trame UART standard suffise pour de nombreux cas d'usage, ajouter une couche de trame personnalisée améliore la sécurité et assure que seuls les appareils prévus communiquent.
En intégrant des en-têtes uniques, des marqueurs de fin et un CRC, chaque appareil peut valider qu'un paquet provient d'une source de confiance. Cela est particulièrement précieux dans les environnements critiques pour la sécurité ou sécurisés.
La Figure 13 montre une trame personnalisée typique :
Figure 13. Exemple de protocole de trame UART.
La trame contient typiquement :
- En-tête 1 (0xAB) et En-tête 2 (0xCD) – identificateurs uniques.
- Commande (CMD) – spécifie l'action.
- Longueur Données (DL) – nombre d'octets de charge utile.
- Charge Utile (Data n) – les données réelles.
- Marqueur de Fin 1 (0xE1) et Marqueur de Fin 2 (0xE2) – marqueurs de fermeture.
- CRC – valeur de vérification d'erreur calculée des deux côtés.
Les deux côtés doivent utiliser des règles de cadrage identiques ; sinon, les paquets seront rejetés.
Étapes de Configuration UART
1. Consulter la fiche technique pour comprendre l'interface UART et les affectations de broches.
Figure 14. Extrait de fiche technique microcontrôleur.
2. Vérifier le map mémoire pour les registres UART et adresses.
Figure 15. Map mémoire microcontrôleur.
3. Définir les paramètres du port UART – bits de données, parité, bits de stop et mode de fonctionnement. Description exemple :
• 5-8 bits de données
• 1, 1½ ou 2 bits de stop
• Parité aucune, paire ou impaires
• Transfert full-duplex, DMA-activé, asynchrone
4. Calculer le baud rate en utilisant l'horloge périphérique (PCLK) et les registres de suréchantillonnage et diviseur du MCU. La formule générale est :
Baud rate = PCLK / ((M + N/2048) × 2OSR + 2 × DIV)
où :
OSR – taux de suréchantillonnage (0-3)
DIV – diviseur de baud rate (1-65535)
M – diviseur fractionnaire MSB (1-3)
N – diviseur fractionnaire LSB (0-2047)
Les tableaux d'exemple ci-dessous illustrent les réglages de baud rate pour PCLK 26 MHz et 16 MHz.
Tableau 2. Exemple de Baud Rate Basé sur PCLK 26 MHz
| Baud Rate | OSR | DIV | DIVM | DIVN |
|---|---|---|---|---|
| 9600 | 3 | 24 | 3 | 1078 |
| 115200 | 3 | 4 | 1 | 1563 |
Tableau 3. Exemple de Baud Rate Basé sur PCLK 16 MHz
| Baud Rate | OSR | DIV | DIVM | DIVN |
|---|---|---|---|---|
| 9600 | 3 | 17 | 3 | 1078 |
| 115200 | 3 | 2 | 2 | 348 |
5. Configurer les registres UART selon la fiche technique. Registres clés :
Tableau 4. Descriptions des Registres UART
| Nom | Description |
|---|---|
| UART_DIV | Diviseur de baud rate |
| UART_FIBR | Contrôle de baud rate fractionnaire |
| UART_LCR2 | Registre de contrôle de ligne (OSR, bits stop, parité) |
Une fois les registres programmés, l'UART peut transmettre et recevoir des données de manière fiable.
Pourquoi l'UART est Important
Comprendre l'UART est crucial pour les ingénieurs qui conçoivent des liaisons série robustes, à faible coût et à haut débit. La maîtrise du cadrage, du calcul de baud rate et de la configuration des registres assure l'intégrité des données et la fiabilité du système.
Cas d'Usage Courants
- Débogage – Messages de log pendant le développement firmware.
- Fabrication – Diagnostics temps réel et logs de traçabilité.
- Mises à Jour Over-the-Air – Livrer des changements firmware aux appareils embarqués.
- Vérification – Valider la fonctionnalité de l'appareil avant expédition.
Références
« Basics of UART Communication. » Electronics Hub, juillet 2017.
Campbell, Scott. « Basics of UART Communication. » Circuit Basics. Keim, Robert.
« Back to Basics: The Universal Asynchronous Receiver/Transmitter. » All About Circuits, décembre 2016.
« What Is UART Protocol? UART Communication Explained. » Arrow.
Embarqué
- Fabrication d'arbres experte : procédés de précision et solutions sur mesure
- Pourquoi la Culture Cloud Pilote le Succès Business : Guide Pratique
- Comment la maintenance prédictive booste l'efficacité et réduit les temps d'arrêt
- Fraiseuses 101 : guide complet sur leur fonction, composants et utilisations
- Maîtriser la ligne de coupe à longueur : concepts clés et applications
- Contraintes résiduelles dans les matériaux : Types, causes et applications pratiques
- Fonctionnement des amortisseurs : Amélioration de l'équilibre et du confort du véhicule
- Maîtriser l'Écoulement des Fluides : Types, Comportements et Applications
- Qu'est-ce qu'un accouplement ? Fonctions clés et applications dans les machines industrielles