Welche Standard-UART-Tarife gibt es?

33

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.

Thomas O.
quelle
In der Praxis ist ein 16-Bit-Zähler plus Pre / Post-Skalierer mehr als ausreichend, um einer beliebigen Baudrate "nahe genug" zu kommen. UART serial kann geringfügige Baudraten-Fehlanpassungen tolerieren.
Peter Green
Der UART beginnt in der Mitte des START-Bits und muss nach der Serialisierung von 7-10 Bits in der Nähe der Mitte des STOP-Bits bleiben. Das macht eine minimale Taktgenauigkeit von ca. 2-3% besser, um mit Rauschen, Jitter, Abweichungen in der
Quellfrequenz umzugehen

Antworten:

36

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,

7.3728MHz16=460,800Baud7.3728MHz64=115,200Baud.

2n×16

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.

mikeselectricstuff
quelle
4
Ich glaube nicht, dass Bruchteiler dazu dienen, nicht standardmäßige Bitraten zu erhalten, sondern Standardbitraten von nicht standardmäßigen MCU-Taktfrequenzen.
Johan.A
3
Ich habe zwei Jahr 1926-Teletypen renoviert, damals am College (1976), und ja, sie haben ungefähr 75 Baud erreicht. Sie wurden als Baudot-Teletypen bezeichnet. Wird an 110 VAC angeschlossen und ein Motor liefert die Zeitsteuerung mit elektrischer Verbindung zwischen ihnen. Ich habe sie in Benzin getaucht, um sie zu reinigen. (Geben Sie mir eine Pause - ich war 18 Jahre alt. Aber es hat funktioniert!) Strg-G klingelte ehrlich gesagt bei der anderen. Leider erinnere ich mich nicht einmal, an wen ich sie verschenkt habe. :-( Also, ja, Sie würden auf der mechanischen Tastatur tippen, es würde Ihre Tastenanschläge mechanisch serialisieren und einen Kontakt herstellen und trennen, den die andere Seite las.
Doug Null
Ja, die wilden 20er! Welche Qualitätstechnologie soll 50 Jahre halten und in John Silvas Schuppen in Hayward, Kalifornien, landen?
Doug Null
32

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.

Tcrosley
quelle
7
Nicht umständlich zu sein, aber das Programm kann nur unterstützen, welche Geschwindigkeiten die Hardware zulässt. Es kann nicht einmal die Mühe machen zu fragen und nur die Standardgeschwindigkeiten aufzulisten. Nach meiner Hardware fragend zip(*serial.Serial('COM10').getSupportedBaudrates()), antwortet es:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Nick T
2
Ich habe in den achtziger Jahren einen 600-Bit / s-Halbduplex-Akustikkoppler verwendet. 75 bit / s wurden im deutschen BTX-System lange Zeit in Upload-Richtung verwendet, der Download erfolgte mit 1200 bit / s.
Starblue
2
Ich habe auch 62,5 kBaud gesehen. Tatsächlich hängt es auch von Ihrer Hauptuhr ab, welche Baudraten zu einem ausreichend geringen Fehler führen.
vsz
5

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.

Superkatze
quelle
4

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.

Jasen
quelle