Home >Industry dynamics>Industry dynamics
Guide technique : calcul du débit en bauds UART et format de trame de données

Introduction : Pourquoi l'UART est important

  • 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.

Explication du format de trame de données UART

  1. 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]

  2. 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).

Calcul du débit en bauds UART

  1. Notions de base sur le débit en bauds

    • Symboles par seconde (1 baud = 1 symbole/s). Relation avec le débit binaire :

      Bit Rate=Baud Rate×Total Bits per Frame\text{Débit binaire} = \text{Débit en bauds} \fois \text{Nombre total de bits par image} Débit binaire = Débit en bauds × Nombre total de bits par image
  2. Formule de prétartreur

    • Équation clé :

      Baud Rate=System Clock FrequencyPrescaler×16\text{Débit en bauds} = \frac{\text{Fréquence d'horloge système}}{\text{Préscaleur} \fois 16} Débit en bauds = Préscaleur × 16 Fréquence d'horloge système
    • Exemple : pour une horloge de 16 MHz et un débit en bauds cible de 9 600 :

      Prescaler=16,000,0009600×16104.17(rounded to 104)\text{Préscaleur} = \frac{16 000 000}{9 600 \times 16} \approx 104,17 \quad (\text{arrondi à 104}) Préscaleur = 9 600 × 1 616 000 000 ≈ 104,17 (arrondi à 104)
  3. 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 %.

Exemple pratique : configuration UART STM32

  1. Configuration matérielle

    • Affectez les broches GPIO au mode UART et activez les horloges périphériques.

  2. 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 :

    • image.png
  3. Validation

    • Transmettez les données de test et vérifiez les formes d'onde à l'aide d'un analyseur logique.

Problèmes courants et solutions

  1. 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).

  2. 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.

  3. 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.

Points clés à retenir

  • 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.


Recommend