Kiedy inicjalizujemy komunikację szeregową, zwykle musimy ustawić szybkość transmisji (np. 115200). Zauważyłem, że wiele osób zakłada, że 115200 oznacza 115200 bitów na sekundę. Jednak każdy bod (zmiana sygnału) może zakodować więcej niż 1 bit. baud 115200 oznacza 115200 bitów na sekundę tylko wtedy, gdy każdy bod = 1 bit. Jeśli każdy baud ma 5 bitów, to posiadanie baudów 115200 oznacza szybkość transmisji 115200 * 5 bitów na sekundę.
Jeśli to, co powiedziałem powyżej, jest prawdą, jaki jest stosunek transmisji do bitów dla UART i USB3.0 zakładając, że szybkość transmisji jest ustawiona na 115200?
Nie może wynosić 1 do 1, ponieważ 115200 bitów na sekundę to 14,0625 KB / s (kilobajtów na sekundę), czyli zbyt wolno.
Komentarze
- Ignoruj USB 3.0, wyobraź sobie ” i USB 3.0 ” jest usunięty
- UART po prostu koduje 1 jako wysoki poziom napięcia, a 0 jako niski poziom napięcia.
- (To oznacza 1 bit na symbol)
- Dla ' normalnego ' UART, baud == bit rate, więc 115200 baud = 115200 bit rate = 11.520kBps (zakładając 8N1 co oznacza 8 bitów danych + 1 bit startu + 1 bit stopu).
- Powiązane: Różnica między Hz a bps .
Odpowiedź
Drobna uwaga: b y definicja, Baud (nazwany na cześć Emile Baudot) to jeden symbol na sekundę. Więc twoje oświadczenie
baud 115200 oznacza 115200 bitów na sekundę tylko wtedy, gdy każdy baud = 1 bit. Jeśli każdy bod ma 5 bitów, to posiadanie transmisji 115200 oznacza szybkość transmisji 115200 * 5 bitów na sekundę.
jest poprawne w duchu, ale powinieneś zastąpić słowo „baud” słowem „symbol”. Jeśli masz alfabet złożony z 32 symboli, to każdy symbol koduje 5 bitów, a szybkość sygnalizacji 115200 symboli na sekundę, czyli 115200 bodów (z definicji), da ci 115200 * 5 = 576000 bitów na sekundę.
Powszechnie używane wyrażenie „szybkość transmisji” jest gramatycznie niepoprawne w ten sam sposób, w jaki „bankomat” jest niepoprawne. Definicja Baud ma wbudowane pojęcie szybkości, więc mówienie „Szybkość transmisji” jest gramatycznie tym samym, co mówienie „Szybkość transmisji symboli” (co może mieć sens, jeśli mówisz o zmieniającej się szybkości transmisji symboli, ale to nie jak większość ludzi go używa). Podobnie „bankomat” ma już wbudowaną „maszynę”, więc „bankomat” jest równoznaczne z powiedzeniem „bankomat” (co znowu mogłoby mieć sens, gdybyśmy mówili o maszynie, która produkuje bankomaty, ale to „zwykle nie jest tym, co ludzie mają na myśli).
Pomijając gramatykę, większość sygnałów krótkiego zasięgu o niskiej i średniej prędkości wykorzystuje sygnalizację binarną, więc szybkość symbolu jest równa szybkości transmisji. (np. modemy kablowe) i przez radio jest bardziej prawdopodobne, że będą używać symboli wielobitowych, a zatem szybkość transmisji będzie wyższa niż szybkość transmisji symboli.
Komentarze
- Przepraszamy, ale głosowałem negatywnie, ponieważ się mylisz. ” Symbol ” w tym przypadku nie oznacza tego, co myślisz oznacza. Zazwyczaj w transmisji binarnej są tylko dwa symbole, znak i spacja. Alfabet składający się z 32 znaków wymaga 5 bitów, ale każdy bit wymaga transmisji symbolu. Tak więc Twój przykład 115k bodów si szybkość generowania transmisji przesyła tylko 115k bitów na sekundę. Zobacz en.wikipedia.org/wiki/Baud , aby uzyskać więcej informacji.
- @WhatRoughBeast Tylko jeśli masz 0 i 1 jako symbole. Entropivore mówi o 32 poziomach napięcia. en.wikipedia.org/wiki/Pulse-amplitude_modulation W takim przypadku otrzymujesz 5 bitów z jednym sygnałem, ponieważ ' s zakodowane w amplitudzie jednego symbolu.
- @WhatRoughBeast, myślę, że być może jesteś zdezorientowany terminem ” alfabet „. W terminach komunikacji ” alfabet ” oznacza zestaw symboli, które mogą być przesyłane przez kanał. Jeśli istnieją tylko dwa rozróżnialne stany kanału, masz alfabet składający się z dwóch symboli. Jeśli tak jak w naszym poprzednim przykładzie są 32 stany, to masz alfabet złożony z 32 symboli. Można je przedstawić na wiele sposobów, w tym amplitudę i fazę nośnej sinusoidalnej, amplitudę, szerokość lub położenie impulsu itp., Itd. Jeśli zdecydujesz się przedstawić te symbole jako słowo binarne, zajmie to 5 bitów.
- Przepraszamy, to ostatnie zdanie jest źle sformułowane. Powinienem był powiedzieć, ” Jeśli zdecydujesz się przedstawić jeden z tych symboli jako słowo binarne. ”
Odpowiedź
Podczas gdy komunikacja jest cyfrowa, szybkość transmisji jest równa szybkości transmisji.Tylko wtedy, gdy komunikacja jest modulowana na analogową, 1 baud może zakodować więcej niż 1 bit zgodnie z diagramem konstelacji .
W przypadku autobusów przesyłających dane, które są szybsze niż przepływność łącza szeregowego, transmisja odbywa się w seriach. USB 3.0 może wysłać do 1024 bajtów danych na transfer zbiorczy, co oznacza, że pełny pakiet byłby wysyłany średnio co 1,6384us przy założeniu szybkości magistrali 5 Gb / s.
Komentarze
- Czy twój pierwszy akapit jest prawdziwy dla autobusów, które używają kanałów równoległych?
- Pozwól, że uproszczę moje pytanie. Co to znaczy, jeśli ustawię prędkość transmisji dla UART na 115200? Czy to oznacza, że maksymalna szybkość transmisji danych wynosi 115200 bps. Jeśli może być więcej, dlaczego?
- @jippie: z technicznego punktu widzenia nie jest to ' t, ale w zasadzie nikt nie odnosi się do ” baud ” kiedy mówimy o kanale równoległym.
- @WeidongGuo: Oznacza to, że gdzieś na linii znajduje się urządzenie, które wysyła bity z co najmniej około 8,7us odstępu między każdym bitem i innym, który może odbierać bity z nie mniejszym okresem niż ten sam okres.
- @WeidongGuo: Nie ma ' t . Z tego powodu opóźnienie USB może stanowić problem w przypadku niektórych aplikacji.
Odpowiedź
Porównujesz stawki w różne warstwy w modelu abstrakcji. W twoim przykładzie USB 3.0 jest po prostu używane prawie jak tunel do przesyłania „UART 115200 bps”. Nie ma znaczenia, jak to robi USB3.0, napięcia mogą się różnić, ramki mogą się różnić, prędkość może się różnić (przy okazji).
Odpowiedź
Przepływność i szybkość transmisji są takie same dla UART, jak powiedzieli inni. Nie jest to takie samo dla wszystkich metod sygnalizacji pasma podstawowego (inni nazywali je cyfrowymi, co niekoniecznie jest poprawne). Na przykład w kodzie liniowym Manchesteru bit jest kodowany jako zbocze narastające lub kończące.
Sposób, w jaki obliczyłeś przepływność nie jest jednak poprawny. UART używa synchronizacji słów, co oznacza, że wysyła całe bajty na raz, ramek o długości co najmniej 9 bitów. Bit startowy jest dodawany w celu synchronizacji fazowej zegarów między odbiornikiem a nadajnikiem.
Dlatego też nie ma sensu odnosić się do przepływności w przypadku UART – jego każdy bajt szybkość lub szybkość transmisji.
Komentarze
- Zgodnie z tą stroną, en.wikipedia. org / wiki / List_of_device_bit_rates , Serial 16 550 UART max ma przepływność 1,5 Mbit / s, to oznacza, że każdy symbol (zmiana sygnału) jest kodowany w (1,5 M / 115200 = 13 bitów), przy założeniu 115220 bodów. Czy mam rację?
- Nie, 1,5Mbit to maksymalna przepustowość osiągalna dzięki UART, biorąc pod uwagę jego kod linii i metodę sygnalizacji. Nie ma to nic wspólnego z 115,2kB, to jest po prostu kolejna prędkość.
- pozwólcie, że wymyślę liczbę, więc jeśli średnia prędkość wynosi 1,5 Mbit / s dla UART, to prawda, co powiedziałem powyżej wtedy.
- Nie, jeśli masz przepustowość 1,5 Mb / s, oznacza to, że masz około 187 kB / s, co przekłada się na szybkość transmisji co najmniej 1,65 MBd. Dzieje się tak, gdy każdy bajt jest kodowany przy użyciu bitu startu i 8 bitów bajtu, bez bitów stopu i parzystości (te są opcjonalne). Jak powiedziałem powyżej, bity i baudy to 1: 1 w UART, ale jest różnica między bitami, które przesłałeś, a bitami danych, ponieważ każdy bajt jest zamknięty we własnej ramce.
- obchodzi mnie tylko o przesyłanych bitach, a nie tylko o danych (ładunku). ” Szybkość transmisji może mieć dowolną wartość w granicach rozsądku. Jedynym wymaganiem jest to, aby oba urządzenia działały z tą samą szybkością „. Zatem szybkość transmisji zależy od protokołu, sprzętu, czy obu?