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.
Odpowiedzi:
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,
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.
źródło
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.
źródło
zip(*serial.Serial('COM10').getSupportedBaudrates())
odpowiada:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
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.
źródło
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.
źródło