Asynchronní sériová komunikace
Asynchronní sériová komunikace (taky asynchronní sériový přenost, nebo archaicky Arytmický sériový přenos) je druh sériového komunikace (datového přenosu), při kterém se udržuje synchronizace vysílače a přijímače pouze po dobu přenosu jednoho znaku (znak zde může mít 5 až 8 bitů); každý znak (také slabika nebo bajt) můžeme rozdělit na jednotlivé "prvky", které jsou vysílány postupně (tj. sériově) za sebou. K datovým bitům jsou přidány pomocné prvky (pomocné "bity"), které slouží pro synchronizaci přenosu. Vysílání může předcházet klid na lince (stav idle), což je logická jednička, trvající libovolně dlouho. Pokud čas přenosu datového bitu označíme jako T1, tak při vysílání jednoho znaku se postupně odvysílá:
- rozběhový prvek (anglicky start bit), což je logická nula po dobu T1
- počáteční datový bit vysílaného znaku (logická nula nebo logická jednička po dobu T1)
- další datový bit vysílaného znaku (po dobu T1)
- ...
- poslední datový bit vysílaného znaku (po dobu T1)
- volitelně se odvysílá paritní bit
- ve formátu bez parity se paritní bit nevysílá
- parita se počítá z datových datových bitů vysílaného znaku
- podle nastavení přenosu se používá buď sudá nebo lichá parita
- závěrný prvek (anglicky stop bit, nebo stop bits)
- během stop bitu se vysílá logická jednička
- běžné trvání stop bitu je 1*T1, 1,5*T1 nebo 2*T1
- trvání stop bitu se běžně označuje jako "počet stop bitů"
Bity znaku se většinou vysílají v pořadí od nejnižšího (LSb, váha 20) do nejvyššího (MSb, váha 2N-1, kde N je počet bitů znaku).
Původ
Formát značky při asynchronním sériovém přenosu je odvozen přímo z konstrukce dálnopisného stroje, který byl takto navržen, protože tehdejší elektromechanická technologie neumožňovala dostatečně pro synchronní operace: proto bylo potřeba, aby se systémy synchronizovaly pro každý znak. Po zasynchronizování při přijetí start bitu byla i tehdejší technologie dostatečně přesná na udržení bitové synchronizace pro zbytek značky.
Velmi raná pokusná telegrafní zařízení s otiskem používala pouze start bit a vyžadovala ruční nastavení rychlosti přijímacího mechanismu, aby bylo dekódování znaků spolehlivé. Problém synchronizace nakonec vyřešil Howard Krum, který se nechal patentovat start-stop metodu synchronizace (US Patent 1199011[1] přidělený 19. září 1916, a US Patent 1286351[2] přidělený 3. prosince 1918). Krátce poté byl patentován praktický dálnopis (US Patent 1232045[2] přidělený 3. července 1917).
Stop bity dávají zařízení čas na zotavení před dalším znakem. Staré dálnopisné systémy používaly 5 datových bitů, obvykle s nějakou variantou kódu Baudot.
Mechanické dálnopisy pracující s pětibitovou mezinárodní telegrafní abecedou č. 2 (MTA-2) nebo pětibitovým kódem kódem Baudot (díky stejné velikosti slova někdy s MTA-2 zaměňovaným) obvykle používaly délku stop intervalu rovnou 1.5 násobku trvání datového bitu[3]. Velmi rané elektromechanické dálnopisy (před rokem 1930) mohly vyžadovat 2 stop bity, aby umožnily provedení mechanického otisku znaku bez použití vyrovnávacích pamětí. Hardware, který nepodporuje zlomkové počty stop bitů, může pro komunikaci s zařízením používajícím 1,5 stop bitu vysílat 2 stop bity a při příjmu očekávat 1 stop bit.
Funkce
Pro úspěšný přenos musí vysílač a přijímač používat stejné parametry přenosu:
- Plný nebo poloviční duplex
- Počet bitů na jeden znak
- Endianita: pořadí, ve kterém se přenášejí jednotlivé bity značky
- Rychlost v bitech za sekundu (často nesprávně označovaná jako rychlost Baudech). Některé systémy používají automatickou detekci rychlosti.
- Zda se používá paritní bit
- Druh parity (lichá nebo sudá), pokud se používá paritní bit
- Počet vysílaných stop bitů (musí být větší nebo roven počtu stop bitů, které potřebuje přijímač)
- Reprezentace signálu značka (mark) a mezera (space) (v rané telegrafii směr proudu, později polarita napětí v EIA RS-232, u FSK frekvence)
Asynchronní sériový přenos často používaly modemy na přístup na počítače se sdílením času a systémy BBS. Tyto systémy používají sedmi nebo osmibitové znaky.
Při komunikaci mezi počítači se často používá nastavení "8N1", tj. osmibitové znaky bez parity a s jedním stop bitem. Na odeslání jednoho znaku je tedy potřeba 10 dob trvání jednoho bitu (T1), což umožňuje jednoduchý přepočet přenosové rychlosti na rychlost přenosu ve znacích.
Asynchronní start-stop je fyzická vrstva používaná pro propojení mezi počítačem a modemem pro mnoho aplikací používajících komutované připojení k Internetu, které používají pro datový spoj protokoly jako je PPP pro vytváření paketů složených ze slabik přenesených pomocí arytmického sériového přenosu. U moderních modemů používání arytmického přenosu nepřináší ztráta výkonu, protože moderní modemy mají vyrovnávací paměti, které jim umožňují používat pro vzájemnou komunikaci proprietární synchronní protokol, zatímco mezi počítačem a modemem se používá arytmická komunikace s vyšší rychlostí; aby se zabránilo ztrátám dat (přeběh), používá se řízení toku dat.
Související články
- Sériová komunikace
- Porovnání synchronní a asynchronní komunikace
- Telegrafní zkreslení
- Synchronní sériová komunikace
- UART
- USART
Reference
V tomto článku byl použit překlad textu z článku Asynchronous serial communication na anglické Wikipedii.
- ↑ US Patent 1199011
- ↑ a b US Patent 1286351
- ↑ Description, Typebar Page Printer (Model 15). Svazek Bulletin No. 144. Chicago: Teletype Corporation, 1931. Dostupné v archivu pořízeném dne 20-03-2009. Archivováno 20. 3. 2009 na Wayback Machine.
Literatura
- Nelson, R.. a Lovitt, K. M. History of Teletypewriter Development (October 1963)[nedostupný zdroj], Teletype Corporation
- Hobbs, Allan G. (1999) Five-unit codes
Média použitá na této stránce
Typical signal levels for a 8N1 RS-232 signal consisting of 1 start bit, 8 data bits, no parity and 1 stop bit.
Edit: two bytes shown so the distinction between going idle and going on to the next byte can be made (previous image showed going on to the next byte but did not make it clear). Font is courior 10 point, some formatting marks are hidden as extremely low saturation colors to assist future editors.Plugwash 23:43, 11 August 2006 (UTC)