LinkLab linka je dohoda, ne drát

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Rámec: start, data, parita, stop

Vodič v klidu drží vysokou úroveň. Kdyby se prostě začaly posílat bity, příjemce nemá jak poznat, kde bajt začal — pár nul na začátku je k nerozeznání od klidu. Proto se před data dá jeden bit, který je vždycky nula, a jeho sestupná hrana je jediné, podle čeho se příjemce zorientuje.

11010000010111startdata, LSB prvnístop10 bitů na lince pro 8 bitů dat — režie 20 %Klidový stav je vysoká. Sestupná hrana startu je jediné, podle čeho příjemce pozná, kdy začít počítat.
Přepínej paritu a stop bity a sleduj, jak roste režie. Osm bitů dat, deset bitů na drátě — a to je ta nejlevnější varianta.
bitk čemu je
start (1×, vždy 0)hrana, od které se počítá čas
data (5–9, obvykle 8)samotný bajt, nejnižším bitem napřed
parita (0 nebo 1)slabá kontrola — kapitola 5
stop (1 nebo 2, vždy 1)záruka, že před dalším startem bude hrana

Ta režie není zanedbatelná

8N1:   10 bitů na drátě na 8 bitů dat  →  režie 20 %nejběžnější nastavení

Osm datových bitů, žádná parita, jeden stop — a přesto je pětina linky obsazená něčím jiným než daty. S paritou a dvěma stop bity je to 12 bitů, tedy třetina. Kdo počítá propustnost z baudové rychlosti dělením osmi, počítá o 20 % víc, než dostane.

Nejnižší bit napřed — a proč to není detail

UART posílá LSB first. Historicky proto, že posuvný registr se nejlevněji plnil zprava. Důsledek je ale širší, než by se čekalo: právě proto má polovina CRC na světě zrcadlenou variantu. Kdo implementoval kontrolu „jak to jde po drátě“, dostal jiný výsledek než ten, kdo ji implementoval „jak to stojí v učebnici“ — a obě verze přežily. V kapitole 6 je to parametr, který se musí zadat.

Zápis 8N1 znamená 8 datových bitů, žádná parita (N), 1 stop bit. Varianty: 8E1 sudá parita (even), 8O1 lichá (odd), 7E1 sedm bitů dat se sudou paritou — to se ještě potká u starých průmyslových zařízení, protože ASCII se do sedmi bitů vejde.

Vzorce v této kapitole

režie — režie rámce
η = n_dat / (1 + n_dat + p + s) [—] kap. 2