Dlaczego baud rate przyjmuje wartości typu 9600, 115200 itp.?


Dzisiejszy wpis będzie bardzo krótki i zwięzły. Kawałek historii na skrzyżowaniu elektroniki i programowania.

Nigdy się specjalnie nie zastanawiałem nad prędkościami interfejsu UART… aż do wczoraj. Po przeprowadzeniu małego śledztwa odpowiedź, jaką znalazłem wyjaśniała, że chodzi o wielokrotności liczby 300 (np. 9600/300 = 32).

No dobrze, a dlaczego akurat 300?

Jak to często bywa, powodem są zaszłości historyczne. Linie telefoniczne, które potem stały się pierwszymi nośnikami internetu, miały prędkość 300 baud. To była największa wartość, jaką dało się osiągnąć z elektroniką tamtych czasów i modulacją FSK. Technika poszła do przodu, obwody analogowe zamieniły się w cyfrowe i osiągane baud’y mogły się zwiększyć. Gdy połączymy wartość 300 z potęgami dwójki i małymi liczbami naturalnymi (łatwe do implementacji w układach), dostaniemy obecne dzisiaj wartości.

9600 = 300*32
115200 = 300*128*3
c.n.d. – co należało udowodnić 🙂

Źródła

https://www.reddit.com/r/embedded/comments/1atn1zl/why_baudrates_like_115200_and_9600_chosen

https://electronics.stackexchange.com/questions/682435/how-were-standard-serial-port-baud-rates-chosen/682564#682564


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *