Skip to content
RFrftools.io
Comms

Calculateur de débit en bauds et de chronométrage UART

Calculez la synchronisation des trames UART, le débit et le diviseur de registre USART BRR à partir du débit en bauds, du format des données et de la fréquence d'horloge du microcontrôleur. Identifiez les erreurs de débit pour une communication série fiable.

Loading calculator...

Formule

BRR=fclk16×B,Tbit=1B,Nframe=1+D+P+SBRR = \frac{f_{clk}}{16 \times B}, \quad T_{bit} = \frac{1}{B}, \quad N_{frame} = 1 + D + P + S

Référence: STM32 Reference Manual RM0008 §27.3.4; ST AN2908

BDébit en bauds cible (bps)
f_{clk}Fréquence d'horloge périphérique du microcontrôleur (Hz)
BRRDiviseur de registre de débit en bauds (entier)
T_{bit}Durée d'un bit (s)
N_{frame}Nombre total de bits par trame UART (bits)
DBits de données (bits)
PBits de parité (0 ou 1) (bits)
SBits d'arrêt (1 ou 2) (bits)

Comment ça marche

Ce calculateur détermine les valeurs du diviseur de débit UART et les erreurs de synchronisation pour une communication série fiable. Les ingénieurs embarqués, les développeurs IoT et les concepteurs de matériel l'utilisent pour configurer les UART des microcontrôleurs dans la tolérance d'horloge de 2 à 3 % requise par la plupart des récepteurs. Selon la norme UART (dérivée de RS-232/EIA-232), chaque trame contient un bit de début, 5 à 9 bits de données, une parité optionnelle et 1 à 2 bits d'arrêt. Un microcontrôleur 16 MHz ciblant 115 200 bauds génère une erreur de 0,16 % avec BRR = 8 (suréchantillonnage 16 fois), tandis que 9 600 bauds génère une erreur de 0,08 % avec BRR = 104. Des études montrent que les erreurs de débit supérieures à 3,5 % entraînent des échecs de cadrage des octets dans une image sur 10. Les débits standard (9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 bauds) sont définis pour minimiser les erreurs d'arrondi des diviseurs sur les fréquences cristallines courantes (8, 12, 16, 20 MHz). La période binaire à 115 200 bauds est de 8,68 microsecondes, ce qui nécessite une précision de synchronisation de 300 nanosecondes par bit pour une réception fiable des trames sur 10 bits.

Exemple Résolu

La conception d'un calculateur automobile nécessite une communication UART à 115200 bauds à l'aide d'une horloge système de 20 MHz avec un suréchantillonnage 16x. En suivant la formule du diviseur des implémentations UART standard : BRR = f_clk/(16 x bauds) = 20 000 000/(16 x 115200) = 10,85. En arrondissant à BRR=11, on obtient un nombre réel de bauds = 20 000 000/(16 x 11) = 113636 bauds. Erreur = |115200 - 113636|/115200 x 100 = 1,36 %, ce qui correspond au maximum de 2 % spécifié dans la plupart des fiches techniques des récepteurs UART. Structure de trame : 1 démarrage + 8 données + 1 arrêt = 10 bits au total, soit un débit de 11 364 octets/seconde. À titre de comparaison, l'utilisation d'un suréchantillonnage 8x (BRR = 22) permet d'atteindre 113 636 bauds avec une erreur identique de 1,36 % mais une immunité au bruit réduite.

Conseils Pratiques

  • Conformément à la note d'application AN4908 de ST Microelectronics, utilisez le BRR fractionnaire lorsqu'il est disponible pour obtenir une erreur inférieure à 0,5 % à n'importe quel débit en bauds standard
  • Pour les câbles logiques 3,3 V supérieurs à 2 mètres, limitez le débit en bauds à 115 200 afin de maintenir une marge de bruit de 400 mV conformément aux spécifications RS-232
  • Vérifiez la synchronisation à l'aide d'un oscilloscope : mesurez 10 bits consécutifs et confirmez la durée totale à moins de 2 % de la valeur attendue (86,8 µs à 115 200 bauds)

Erreurs Fréquentes

  • Utilisation d'un cristal avec une tolérance supérieure à 50 ppm, ce qui ajoute une erreur de 0,005 % à 25 °C mais peut dépasser 2 % d'erreur combinée à des températures extrêmes (-40 °C à +85 °C)
  • Sélection de débits en bauds non standard tels que 100 000 bauds, ce qui donne une erreur de 4,17 % sur les systèmes à 16 MHz contre 0,16 % pour 115 200 bauds
  • Ignorer le fait que les générateurs de débit fractionnaire (disponibles en STM32, LPC, etc.) réduisent l'erreur de 1,36 % à moins de 0,1 % à 115 200 bauds

Foire Aux Questions

Le 8-N-1 (8 bits de données, pas de parité, 1 bit d'arrêt) est utilisé dans 90 % des applications intégrées selon les enquêtes sectorielles. Cela donne une efficacité de 80 % (8 bits de données pour 10 bits au total) et c'est la valeur par défaut dans Arduino, Raspberry Pi et la plupart des frameworks de microcontrôleurs.
La parité ajoute 1 bit par trame (réduisant l'efficacité de 80 % à 72,7 % pour le 8-N-1 par rapport au 8-E-1) et détecte les erreurs sur un bit avec une fiabilité de 100 %, mais ne peut pas détecter les erreurs sur 2 bits. Conformément à la norme IEC 61162, les protocoles NMEA marins exigent une parité uniforme à 4800 bauds.
Trois facteurs dominent : la tolérance cristalline (20 à 100 ppm, avec une erreur de 0,002 à 0,01 %), l'arrondissement des diviseurs entiers (0 à 3 % selon le rapport horloge/bauds) et la dérive de température (les résonateurs céramiques dérivent de 0,5 % entre -40 °C et +85 °C contre 0,003 % pour les cristaux).
Oui, mais l'erreur augmente de manière significative. Un débit de 250 000 bauds sur 16 MHz génère 0 % d'erreur (diviseur exact), tandis que 100 000 bauds donnent une erreur de 6,25 % (BRR = 10 donne 100 000, mais les deux extrémités doivent correspondre). Les ponts USB-UART tels que le FTDI FT232R prennent en charge n'importe quel débit compris entre 183 et 3 000 000 bauds.
Les émetteurs-récepteurs UART standard prennent en charge jusqu'à 1 Mbaud sur des traces PCB inférieures à 10 cm. Le FTDI FT232H atteint 12 Mbaud. Au-delà de 3 Mbaud, utilisez la signalisation différentielle (le RS-485 prend en charge 10 Mbaud sur 15 mètres par TIA-485-A).

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

Calculateurs associés