Welche Standard-UART-Raten gibt es?

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 Vierfach nicht 115200 Baud?)

Der Grund, warum ich diese Frage stelle, ist, dass ich bin Entwerfen von etwas, das möglicherweise mit einer Vielzahl unterschiedlicher Baudraten interagieren muss. Es wird in 9600 initialisiert und dann zu einer bestimmten Baudrate umgeschaltet. Ich kann jedoch keine beliebigen Raten unterstützen, da der von mir verwendete dsPIC33F keine beliebigen Raten unterstützt Es ist auf einen 16-Bit-BRG-Abwärtszähler beschränkt. In dieser Hinsicht ist es vielen anderen Prozessoren ähnlich.

Kommentare

  • In der Praxis ist ein 16-Bit-Zähler plus Pre / Post-Skalierer mehr als ausreichend um “ nahe genug “ an beliebige Baudraten zu bringen. UART serial kann leichte Fehlpaarungen der Baudrate tolerieren.
  • Die uart startet in der Mitte des START-Bits und muss nach der Serialisierung von 7-10 Bits in der Mitte des STOP-Bits bleiben. Dies führt zu einer minimalen Taktgenauigkeit von etwa 2-3%, vorzugsweise besser für Rauschen, Jitter und Abweichungen im Quellfrequenz …

Antwort

Es begann vor langer, langer Zeit mit Teletypen – ich denke 75 Baud Dann hat es sich seitdem größtenteils verdoppelt, mit ein paar gebrochenen (x1,5) Vielfachen, zum Beispiel 28.800, wo es Einschränkungen bei der Telefonleitungsmodemtechnologie gab, die es nicht ganz erlaubten, sie zu verdoppeln.

Standardkristallwerte stammten aus diesen frühen Baudraten und ihrer Verfügbarkeit y diktiert zukünftige Raten. Beispiel:

\ $ \ begin {align} {7.3728 \, \ mathrm {MHz} \ over 16} & = 460.800 \; \ text {baud} \\\\ {7.3728 \, \ mathrm {MHz} \ over 64} & = 115.200 \, \ text {baud}. \ end {align} \ $

Die meisten UARTS verwenden eine Uhr mit \ $ 2 ^ n \ mal 16 \ $ der Baudrate. Moderne Teile (z. B. NXP LPC) haben gebrochene Teiler, um durch Verwendung nicht-binärer Vielfacher einen größeren Bereich zu erhalten.

Andere gängige Standards sind 31.250 (MIDI) und 250K (DMX), die beide wahrscheinlich als nette Vielfache ausgewählt werden von „runden“ Uhren wie 1 MHz usw.

Kommentare

  • Ich denke ‚ nicht an gebrochene Teiler dienen dazu, nicht standardmäßige Bitraten zu erhalten, sondern eher standardmäßige Bitraten von nicht standardmäßigen MCU-Taktfrequenzen.
  • Ich habe zwei Jahre alte Teletypen von 1926 im College (1976) renoviert und ja, sie liefen mit etwa 75 Baud. Sie wurden als Baudot-Teletypen bezeichnet. An 110 VAC angeschlossen und ein Motor lieferte das Timing mit elektrischer Verbindung zwischen ihnen. Ich habe sie in Benzin getaucht, um sie zu reinigen. (Gib mir eine Pause – ich war 18. Aber es hat funktioniert!) Strg-G läutete eine ehrliche Glocke. Leider erinnere ich mich ‚ nicht einmal daran, an wen ich sie verschenkt habe. 🙁 Also, ja, Sie ‚ d tippen auf der mechanischen Tastatur, es würde Ihre Tastenanschläge mechanisch serialisieren und einen Kontakt herstellen und unterbrechen, den die andere Seite liest.
  • Yay, the Roaring ‚ 20 ‚ s! Welche Qualitätstechnologie hält 50 Jahre und landet in John Silva ‚ s Schuppen in Hayward, Kalifornien.
  • @DougNull Entschuldigung für die Beule – Frage für 115200 Bit / s. Sie haben also den IC-Takt (7,3728 MHz) genommen und durch was geteilt ? Wie sind Sie zu 64 gekommen?

Antwort

RealTerm, ein Freeware-Windows-Terminalprogramm, listet diese UART-Raten auf in seinem Baud-Menü:

110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600

Dies sind jedoch tatsächlich Bits pro Sekunde (bps), kein Baud – siehe unten.

110 Baud wurden von 8-Level-Teletypen wie dem ASR-33 verwendet. Ich weiß nicht, wo 150 Baud verwendet wurden, aber es ist eine Verdoppelung von 75 Baud, gewöhnlich wir (zusammen mit 60 Baud) für 5-Level-TTYs.

300 Bit / s war der Standard für die ersten weit verbreiteten Telefonmodems in den 1960er Jahren. Eine Anzahl von Terminals mit 30 Zeichen pro Sekunde wurde gleichzeitig angezeigt.

Oberhalb von 300 Bit / s / 300 Baud, bei denen eine einfache Frequenzumtastung (FSK) verwendet wurde, wurden die Zahlen für Bit / s und Baud (Symbole oder Töne pro Sekunde) angegeben ) sind nicht das Gleiche. Beispielsweise läuft ein 1200-Bit / s-Modem tatsächlich mit 600 Baud und ein 4800-Bit / s-Modem mit 1600 Baud. 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 die Phasenumtastung und andere Methoden verwendet werden, um zusätzliche Bandbreite aus demselben Baud zu extrahieren Rate, um immer höhere bps zu bekommen. (Ein 56K-Modem läuft also tatsächlich nur mit 8000 Baud.)

Wie Sie sehen können, begann die Liste der UART-Raten im Wesentlichen bei 75 und verdoppelte sich kontinuierlich (übersprang 600), bis sie auf 38400 stieg wurde mit 1,5 multipliziert, um 57600 zu erhalten.56K bps ist die Grenze für eine analoge Telefonleitung. Die höheren Raten ab 115200 (erneut verdoppelt ab 57600) werden für fest verdrahtete 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 Modemgeschwindigkeit nicht erreicht werden konnte „t zu der Zeit nicht verdoppelt werden, werden aber selten mehr verwendet.

Kommentare

  • Nicht umständlich zu sein, aber das Programm kann nur welche Geschwindigkeiten unterstützen die Hardware erlaubt. Es kann sein, dass es nicht einmal die Mühe macht, nach den Standardgeschwindigkeiten zu fragen und sie einfach aufzulisten. Wenn ich meine Hardware zip(*serial.Serial('COM10').getSupportedBaudrates()) frage, antwortet sie: (50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
  • 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 lag bei 1200 Bit / s.
  • Ich ‚ habe auch 62,5 kbaud gesehen. Tatsächlich hängt es auch von Ihrer Hauptuhr ab, Sie können berechnen, welche Baudraten zu einem ausreichend niedrigen Fehler führen.

Antwort

Lange Zeit war es üblich, Submultiplikatoren von 115.200 für die Kommunikation zu verwenden – entweder Zweierpotenz-Submultiplikatoren von 38.400 oder 57.600 oder 115.200. Die meisten PC-Hardware unterstützt diese Raten. Einige PC-Hardware unterstützt 230.400 oder 460.800. Beachten Sie, dass viele eingebettete Controller Datenraten mögen, die ein Vielfaches ihrer eigenen Taktraten sind, und einige USB-zu-Seriell-Chips ein beliebiges ganzzahliges Submultiplikator 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 Anschließen an PCs über USB-Chips.

Übrigens, eine weitere erwähnenswerte Rate: 31.250 bps ist die Rate, die für Standard-MIDI verwendet wird.

Antwort

Der ursprüngliche IBM PC hatte einen 8250 UART. Dies dauerte einen 1,8432-MHz-Takt und teilte diesen durch eine ganze Zahl, um seinen internen Takt zu erzeugen, und dieser Takt läuft mit 16 Zyklen zum Bit.

Wenn Sie 1 im Divisor-Register einstellen, erhalten Sie 115.200, 2 57.600, 3 erhält 38.400, 6 erhält 19.200 usw.

Am besten verwenden Sie einen Takt, der mit dem DSPIC mit einem Vielfachen von 1,8432 MHz läuft.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.