Jakie są standardowe stawki UART?

33

Znam 9600, 19200, 38400, 57600, 115200 i 1.8432 Mbaud, ale żadnych innych. Dlaczego te wartości są używane i czy po prostu podwajają się za każdym razem, czy dzieje się coś bardziej złożonego (na przykład 38400 czterokrotnie to nie 115200 bodów?)

Zadaję to pytanie, dlatego projektuję coś, co może wymagać interakcji z różnymi prędkościami transmisji. Zainicjuje się w 9600, a następnie przełączy się na określoną prędkość transmisji. Ale nie mogę obsługiwać dowolnych stawek, ponieważ używany dsPIC33F nie obsługuje dowolnych stawek, ponieważ jest ograniczony do 16-bitowego licznika zmniejszania BRG. Pod tym względem jest podobny do wielu innych procesorów.

Thomas O
źródło
W praktyce 16-bitowy licznik plus skalowarki wstępne / końcowe są więcej niż wystarczające, aby zbliżyć się „wystarczająco blisko” do dowolnych prędkości transmisji. Szeregowy UART może tolerować niewielkie niedopasowania prędkości transmisji.
Peter Green
Uart zaczyna się w środku bitu START i musi pozostać w pobliżu środka bitu STOP po serializacji 7-10 bitów. Co sprawia, że ​​minimalna precyzja zegara wynosi około 2-3%, najlepiej lepiej radzić sobie z szumem, fluktuacją, odchyleniami częstotliwości źródła ...
TEMLIB

Odpowiedzi:

36

Zaczęło się dawno temu od teletypów - myślę, że 75 bodów. Potem od tego czasu jest prawie dwukrotnie, z kilkoma ułamkowymi (x1,5) wielokrotnościami, na przykład 28 800, gdzie istnieją ograniczenia w technologii modemu linii telefonicznej, które nie do końca pozwalają na podwojenie.

Standardowe wartości kryształów pochodziły z tych wczesnych prędkości transmisji, a ich dostępność dyktuje przyszłe stawki. Na przykład,

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

Większość UARTS używa zegara baudrate, bardziej nowoczesne części (np. NXP LPC) mają ułamkowe dzielniki, aby uzyskać szerszy zakres przy użyciu niebinarnych wielokrotności.2n×16

Inne popularne standardy to 31 250 (MIDI) i 250 K (DMX), oba prawdopodobnie wybrane jako ładne wielokrotności „okrągłych” zegarów, takich jak 1 MHz itp.

mikeselectricstuff
źródło
4
Nie sądzę, aby dzielniki ułamkowe służyły do ​​uzyskiwania niestandardowych przepływności, ale raczej standardowych przepływności z niestandardowych częstotliwości zegara MCU.
Johan.A
3
Odnowiłem teletypy z roku 1926, w college'u (1976) i tak, działały z prędkością około 75 bodów. Oznaczono je teletypami baudot. Podłączony do 110vac i silnik zapewnił czas, z elektrycznym połączeniem między nimi. Zamoczyłem je w benzynie, żeby je wyczyścić. (Daj mi spokój - miałem 18 lat. Ale to zadziałało!) Ctrl-G zadzwonił dzwonkiem uczciwości do dobra. Niestety, nawet nie pamiętam, komu je oddałem. :-( Tak, pisałbyś na klawiaturze mechanicznej, mechanicznie serializowałby twoje naciśnięcia klawiszy i nawiązywał kontakt, który czytała druga strona.
Doug Null
Yay, Roaring '20's! Jakiej jakości technologia ma trwać 50 lat i skończyć w szopie Johna Silvy w Hayward w Kalifornii.
Doug Null
32

RealTerm, darmowy program terminalowy dla systemu Windows, podaje następujące stawki UART w menu Baud:

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

Są to jednak bity na sekundę (bps), a nie baud - patrz poniżej.

110 bodów było wykorzystywane przez 8-poziomowe Teletypy, takie jak ASR-33. Nie wiem, gdzie użyto 150 bodów, ale jest to podwojenie 75 bodów, powszechnie używanych (wraz z 60 bodów) dla 5-poziomowych TTY.

300 bps było standardem dla pierwszych szeroko używanych modemów telefonicznych w latach sześćdziesiątych. Liczba terminali 30 znaków na sekundę pojawiała się w tym samym czasie.

Powyżej 300 bps / 300 bodów, w których zastosowano proste kluczowanie z przesunięciem częstotliwości (FSK), liczby bps i bodów (symbole lub tony na sekundę) nie są takie same. Na przykład modem 1200 bps działa z prędkością 600 bodów, a modem 4800 bps działa z prędkością 1600 bodów. Zobacz tabelę w części Przepustowość w tym artykule . Różnica polega na tym, że oprócz użycia określonej liczby impulsów tonowych na sekundę stosuje się kluczowanie z przesunięciem fazowym i inne metody w celu uzyskania dodatkowej przepustowości z tej samej prędkości transmisji w celu uzyskania coraz wyższych bps. (Tak więc modem 56K działa w rzeczywistości tylko z prędkością 8000 bodów).

Jak widać, lista stawek UART zasadniczo zaczynała się od 75 i ciągle podwajała (pomijając 600), aż do 38400, gdzie została pomnożona przez 1,5, aby uzyskać 57600. 56 Kb / s jest limitem dla analogowej linii telefonicznej. Wyższe stawki 115200 w górę (ponownie podwajając od 57600) są stosowane do połączeń przewodowych.

Jak wspomniano w artykule mikeselectricstuff, 14400 i 28800 bps wprowadzono jako 1,5 x 9600 i 1,5 x 19200, kiedy prędkości modemów nie mogły być w tym czasie podwojone, ale rzadko są już używane.

tcrosley
źródło
7
Nie jest pedantyczny, ale program może obsługiwać tylko prędkości, na jakie pozwala sprzęt. To może nawet nie przeszkadzać pytaniem i po prostu wymienić standardowe prędkości. Pytając o mój sprzęt, zip(*serial.Serial('COM10').getSupportedBaudrates())odpowiada:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
Nick T
2
W latach osiemdziesiątych korzystałem z półdupleksowego sprzęgacza akustycznego 600 bit / s. 75 bitów na sekundę używano w niemieckim systemie BTX w kierunku przesyłania przez długi czas, pobieranie odbywało się z prędkością 1200 bitów na sekundę.
starblue
2
Widziałem także 62,5 kbaud. W rzeczywistości zależy to również od twojego głównego zegara, możesz obliczyć, jakie prędkości transmisji doprowadzą do wystarczająco niskiego błędu.
vsz
5

Od dawna powszechne jest używanie do komunikacji podwielokrotności 115 200 - albo dwóch podwielokrotności 38 400, albo 57 600 lub 115 200. Większość sprzętu komputerowego obsługuje te stawki. Niektóre urządzenia komputerowe mogą obsługiwać 230,400 lub 460 800. Należy pamiętać, że wiele wbudowanych kontrolerów, takich jak szybkości transmisji danych, które są podwielokrotnościami ich własnych prędkości zegara, a niektóre układy USB-szeregowe mogą obsługiwać dowolną liczbę całkowitą wynoszącą 3 000 000 bps, więc prędkości takie jak 1 000 000 bps lub 1 500 000 bps prawdopodobnie staną się bardziej popularne dla urządzenia do łączenia się z komputerami za pomocą układów USB.

BTW, jeszcze jedna szybkość warta wspomnienia: 31 250 bps to szybkość używana dla standardowego MIDI.

supercat
źródło
4

Oryginalny komputer IBM miał UART 8250. Zajęło to zegar 1.8432 MHZ i podzieliło go przez jakąś liczbę całkowitą, aby wygenerować swój zegar wewnętrzny, i ten zegar działa z 16 cyklami do bitu.

Ustawienie 1 w rejestrze dzielnika daje Ci 115 200, 2 dostaje 57 600, 3 dostaje 38 400, 6 dostaje 19 200 itd.

Najlepszym rozwiązaniem jest użycie zegara, który działa z pewną wielokrotnością 1,8432 MHz z DSPIC.

Jasen
źródło