Baudraten-Kodierung

Häufig wird zur Kodierung der Baudrate ein WORD (2 Byte) oder DWORD (4 Byte) benutzt, aber die Speicherplatzverschwendung ist offensichtlich.

Nach eingehender Untersuchung der gängigen Baudraten kommt man zu folgender Primfaktorzerlegung:

5k * 3m * 2n

mit
Passt also bequem in ein Byte, mit der Aufteilung:

Das höherwertige Nibble ergibt also eine Art Basis oder Mantisse, das niederwertige legt die Anzahl der Linksschiebeoperationen (Verdopplungen), einen binären Exponenten fest.

Beispielkodes

Kode (hex)Baudrate2^3^5^Anwendung
0025002Minimum
14120041serielle Mäuse, CLIP, Uralt-Modems
1524005viele Uni-T-Multimeter
1796007viele Mikrocontroller-Projekte
2614,4k62Modems
2728,8k7
29115,2k9Maximum für Standard-PC mit UART 8250, 16450 oder 16550
2A230,4k10-
4131250106MIDI
3A691,2k1032µε optoNCDT 2200 und USB-Umsetzer
44250k406DMX, CAN Low-Speed
461M6CAN High-Speed
551,5M51Profibus bei Siemens-Simodrive-Motorsteuerungen
5812M8Profibus-Maximum
Alle 128 Baudraten

Aus der Reihe tanzende Baudraten

Die Silabs-Chips SI2102 und SI2103 listen die folgenden Baudraten, die nicht in das oben genannte Schema passen:

Kode (hex)Baudrate2^3^5^
854000503
87160007
89640009
8B25600011
A957600092

Tabellarische Sonder-Baudraten

Diese lege ich kurzerhand wie folgt fest:

Kode (hex)Baudrate2^3^5^7^11^
C111010101
C410k40400
C5100k50500