Ich kenne 9600, 19200, 38400, 57600, 115200 und 1,8432 MBaud, aber keine anderen. Warum werden diese Werte verwendet, und verdoppelt sie sich einfach jedes Mal, oder ist etwas Komplexeres im Gange (zum Beispiel ist 38400-fach nicht 115200 Baud?)
Der Grund, warum ich diese Frage stelle, ist, dass ich etwas entwerfe, das mit einer Vielzahl unterschiedlicher Baudraten interagieren muss. Es wird in 9600 initialisiert und dann auf eine bestimmte Baudrate umgeschaltet. Ich kann jedoch keine willkürlichen Raten unterstützen, da der von mir verwendete dsPIC33F keine willkürlichen Raten unterstützt, da er auf einen 16-Bit-BRG-Abwärtszähler beschränkt ist. In dieser Hinsicht ist es vielen anderen Prozessoren ähnlich.
Antworten:
Es begann vor langer, langer Zeit mit Teletypen - ich glaube 75 Baud. Dann hat es sich seitdem größtenteils verdoppelt, mit ein paar gebrochenen (x1,5) Vielfachen, zum Beispiel 28.800, bei denen es Einschränkungen für die Telefonleitungsmodem-Technologie gab, die es nicht zuließen, dass sie sich verdoppelt.
Standardkristallwerte stammen aus diesen frühen Baudraten, und ihre Verfügbarkeit bestimmt zukünftige Raten. Z.B,
Andere gängige Standards sind 31.250 (MIDI) und 250K (DMX), beide werden wahrscheinlich als nette Vielfache von 'runden' Takten wie 1MHz usw. ausgewählt.
quelle
RealTerm, ein Freeware-Windows-Terminalprogramm, listet diese UART-Raten in seinem Baud-Menü auf:
110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
Dies sind jedoch tatsächlich Bits pro Sekunde (bps), nicht Baud - siehe unten.
110 Baud wurden von 8-Level-Teletypen wie dem ASR-33 verwendet. Mir ist nicht bekannt, wo 150 Baud verwendet wurden, aber es ist eine Verdoppelung von 75 Baud, die üblicherweise (zusammen mit 60 Baud) für 5-Level-TTYs verwendet wird.
300 bps waren der Standard für die ersten weit verbreiteten Telefonmodems in den 1960er Jahren. Gleichzeitig wurde eine Anzahl von Terminals mit 30 Zeichen pro Sekunde angezeigt.
Oberhalb von 300 Bit / s / 300 Baud, bei denen eine einfache Frequenzumtastung (FSK) verwendet wurde, stimmen die Werte für Bit / s und Baud (Symbole oder Töne pro Sekunde) nicht überein. Beispielsweise wird ein 1200-Bit / s-Modem tatsächlich mit 600 Baud und ein 4800-Bit / s-Modem mit 1600 Baud ausgeführt. Weitere Informationen finden Sie in der Tabelle unter Bandbreiten in diesem Artikel . Der Unterschied besteht darin, dass zusätzlich zur Verwendung einer bestimmten Anzahl von Tonimpulsen pro Sekunde eine Phasenumtastung und andere Verfahren verwendet werden, um zusätzliche Bandbreite aus derselben Baudrate zu extrahieren, um immer höhere Bps zu erzielen. (Ein 56K-Modem läuft also eigentlich nur mit 8000 Baud.)
Wie Sie sehen, begann die Liste der UART-Raten im Wesentlichen bei 75 und verdoppelte sich kontinuierlich (Überspringen von 600), bis sie auf 38400 stieg, wo sie mit 1,5 multipliziert wurde, um 57600 zu erhalten. 56 KBit / s ist die Grenze für eine analoge Telefonleitung. Die höheren Raten ab 115200 (erneut Verdopplung ab 57600) werden für festverdrahtete Verbindungen verwendet.
Wie von mikeselectricstuff erwähnt, wurden 14400 und 28800 Bit / s als 1,5 x 9600 und 1,5 x 19200 eingeführt, wenn die Modemgeschwindigkeiten zu diesem Zeitpunkt nicht mehr verdoppelt werden konnten, aber selten mehr verwendet werden.
quelle
zip(*serial.Serial('COM10').getSupportedBaudrates())
, antwortet es:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Lange Zeit war es üblich, Submultiplikatoren von 115.200 für die Kommunikation zu verwenden - entweder Zweierpotential-Submultiplikatoren von 38.400 oder 57.600 oder 115.200. Die meiste PC-Hardware unterstützt diese Raten. Einige PC-Hardware unterstützen 230.400 oder 460.800. Beachten Sie, dass viele Embedded-Controller Datenraten bevorzugen, die ein Vielfaches ihrer eigenen Taktraten sind, und einige USB-zu-Seriell-Chips jedes ganzzahlige Submultiple von 3.000.000 Bit / s unterstützen können, sodass Geschwindigkeiten wie 1.000.000 Bit / s oder 1.500.000 Bit / s wahrscheinlich häufiger werden Geräte zum Anschluss an PCs über USB-Chips.
Übrigens, eine weitere erwähnenswerte Rate: 31.250 Bit / s ist die Rate, die für Standard-MIDI verwendet wird.
quelle
Der ursprüngliche IBM PC hatte einen 8250 UART. Dies erforderte einen Takt von 1,8432 MHz und dividierte diesen durch eine ganze Zahl, um seinen internen Takt zu erzeugen, und dieser Takt läuft mit 16 Zyklen zum Bit.
Mit der Einstellung 1 im Divisor-Register erhalten Sie 115.200, mit 2 57.600, mit 3 38.400, mit 6 19.200 usw.
Ihre beste Wette ist die Verwendung einer Uhr, die mit dem DSPIC mit einem Vielfachen von 1,8432 MHz läuft.
quelle