Quali sono le tariffe UART standard?


33

Conosco 9600, 19200, 38400, 57600, 115200 e 1.8432 Mbaud, ma nessun altro. Perché vengono utilizzati questi valori, e raddoppia semplicemente ogni volta o c'è qualcosa di più complesso in corso (ad esempio, 38400 quadruplicato non è 115200 baud?)

Il motivo per cui faccio questa domanda è che sto progettando qualcosa che potrebbe dover interagire con una varietà di baud rate diversi. Si inizializzerà nel 9600, quindi passerà a una velocità di trasmissione specifica. Ma non posso supportare i tassi arbitrari perché il dsPIC33F che sto usando non supporta i tassi arbitrari in quanto è limitato a un down counter BRG a 16 bit. È simile a questo proposito a molti altri processori.


In pratica, un contatore a 16 bit più scaler pre / post è più che sufficiente per ottenere "abbastanza vicino" a baud rate arbitrari. Il serial UART può tollerare lievi discrepanze di baud rate.
Peter Green,

L'uart inizia nel mezzo del bit START e deve rimanere vicino al centro del bit STOP dopo aver serializzato 7-10 bit. Il che rende una precisione di clock minima di circa il 2-3%, preferibilmente per gestire rumore, jitter, deviazioni nella frequenza della sorgente ...
TEMLIB

Risposte:


36

È iniziato molto tempo fa con i teletipi - penso 75 baud. Da allora è stato per lo più raddoppiato da allora, con alcuni multipli frazionari (x1.5), ad esempio 28.800, dove c'erano vincoli sulla tecnologia modem della linea telefonica che non gli permettevano di raddoppiare.

I valori standard dei cristalli provenivano da questi primi baudrate e la loro disponibilità determina i tassi futuri. Per esempio,

7,3728MHz16=460,800baud7,3728MHz64=115,200baud.

La maggior parte degli UART utilizza un clock di della velocità di trasmissione, parti più moderne (ad esempio NXP LPC) hanno divisori frazionari per ottenere una gamma più ampia utilizzando multipli non binari.2n×16

Altri standard comuni sono 31.250 (MIDI) e 250K (DMX), entrambi probabilmente scelti come simpatici multipli di orologi 'rotondi' come 1MHz ecc.


4
Non penso che i divisori frazionari siano per ottenere bitrate non standard, ma piuttosto bitrate standard da frequenze di clock MCU non standard.
Johan.A

3
Ho rinnovato i teletipi di due anni del 1926, al college (1976) e sì hanno funzionato a circa 75 baud. Erano etichettati teletipi baudot. Collegato a 110vac e un motore ha fornito la temporizzazione, con collegamento elettrico tra di loro. Li ho immersi nella benzina per pulirli. (Dammi una pausa - Avevo 18 anni. Ma ha funzionato!) Ctrl-G ha suonato un campanello onesto alla bontà all'altro. Purtroppo, non ricordo nemmeno a chi l'ho dato via. :-( Quindi, sì, scrivevi sulla tastiera meccanica, serializza meccanicamente i tasti premuti e crea e rompe un contatto letto dall'altra parte.
Doug Null,

Yay, i ruggenti anni '20! Quale tecnologia di qualità deve durare 50 anni e finire nel capannone di John Silva a Hayward, in California.
Doug Null,

32

RealTerm, un programma terminale Windows freeware, elenca queste tariffe UART nel suo menu Baud:

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

Tuttavia questi sono in realtà bit al secondo (bps), non baud - vedi sotto.

110 baud sono stati usati da Teletipi di 8 livelli come l'ASR-33. Non so dove sono stati usati 150 Baud, ma è un raddoppio di 75 baud, comunemente usato (insieme a 60 baud) per TTY a 5 livelli.

300 bps era lo standard per i primi modem telefonici ampiamente utilizzati negli anni '60. Sono comparsi contemporaneamente un numero di terminali di 30 caratteri al secondo.

Al di sopra di 300 bps / 300 baud, che utilizzavano semplici tasti di spostamento della frequenza (FSK), i valori di bps e baud (simboli o toni al secondo) non sono gli stessi. Ad esempio, un modem a 1200 bps funziona effettivamente a 600 baud e un modem a 4800 bps funziona a 1600 baud. Fare riferimento alla tabella in Larghezza di banda in questo articolo . La differenza è perché oltre a utilizzare un certo numero di impulsi di tono al secondo, vengono utilizzati i tasti di sfasamento e altri metodi per estrarre larghezza di banda aggiuntiva dalla stessa velocità di trasmissione per ottenere bps sempre più alti. (Quindi un modem a 56K funziona solo a 8000 baud.)

Come puoi vedere, l'elenco delle tariffe UART è iniziato essenzialmente a 75 e continuamente raddoppiato (saltando 600), fino a raggiungere 38400, dove è stato moltiplicato per 1,5 per ottenere 57600. 56K bps è il limite per una linea telefonica analogica. Le velocità più elevate da 115200 in su (ancora una volta raddoppiando a partire da 57600) vengono utilizzate per le connessioni cablate.

Come menzionato da mikeselectricstuff, 14400 e 28800 bps sono stati introdotti come 1,5 x 9600 e 1,5 x 19200 quando le velocità dei modem non potevano essere raddoppiate al momento, ma raramente vengono più utilizzate.


7
Non essere pedante, ma il programma può supportare solo le velocità consentite dall'hardware. Potrebbe anche non disturbare a chiedere ed elencare semplicemente le velocità standard. Chiedendo il mio hardware, zip(*serial.Serial('COM10').getSupportedBaudrates())risponde:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Nick T

2
Ho usato un accoppiatore acustico half duplex a 600 bit / s negli anni ottanta. 75 bit / s sono stati utilizzati nel sistema BTX tedesco nella direzione di upload per lungo tempo, il download era a 1200 bit / s.
Starblue,

2
Ho visto anche 62,5 kbaud. In realtà, dipende anche dal tuo orologio principale, puoi calcolare quali baudrate porteranno a un errore sufficientemente basso.
vsz,

5

Per molto tempo, è stato comune usare sottomultipli di 115.200 per la comunicazione - o due sottomultipli power-of-due di 38.400 oppure 57.600 o 115.200. La maggior parte dell'hardware del PC supporta tali tassi. Alcuni componenti hardware per PC possono supportare 230.400 o 460.800. Si noti che molti controller integrati come velocità di trasmissione dati che sono sub-multipli della propria velocità di clock e alcuni chip da USB a seriale possono supportare qualsiasi sottomultiplo intero di 3.000.000 bps, quindi probabilmente velocità come 1.000.000 bp o 1.500.000 bp diventeranno più comuni per dispositivi per la connessione a PC tramite chip USB.

A proposito, un'altra frequenza degna di nota: 31.250 bps è la frequenza utilizzata per il MIDI standard.


4

Il PC IBM originale aveva un UART 8250. Ciò ha richiesto un clock MHZ di 1.8432 e lo ha diviso per un numero intero per generare il suo clock interno e quel clock viene eseguito a 16 cicli nel bit.

L'impostazione 1 nel registro divisori ti porta 115.200, 2 ottiene 57.600, 3 ottiene 38.400, 6 ottiene 19.200, ecc.

La tua scommessa migliore è usare un orologio che funziona con un multiplo di 1,8432 MHz con il DSPIC.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.