Softwarové řízení toku dat

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Softwarové řízení toku dat je metoda řízení toku dat používaná při komunikaci počítače s jinými zařízeními (nebo s jiným počítačem), zvláště při použití sériového rozhraní RS-232/V.24. Pro řízení toku dat se používají speciální kódy, přenášené ve zpětném kanálu . Tyto kódy se obecně označují zkratkami XOFF a XON (z anglického , resp. ). Proto se „softwarové řízení toku dat“ nazývá také „XON/XOFF řízení toku dat“. Naproti tomu „hardwarové řízení toku dat“ používá signalizaci mimo přenosové pásmo pomocí dalších vodičů, jako je tomu u RS-232 RTS/CTS.

Reprezentace

Standard ASCII žádné konkrétní řídicí znaky pro XON a XOFF nerezervuje. Definuje však čtyři kódy pro „obecné řízení zařízení“ (DC1 až DC4). +more Terminál Teletype Model 33 ASR používal DC3 (s kódem 19) jako XOFF a DC1 (s kódem 17) jako XON. Toto použití okopírovali ostatní výrobci terminálů, a stalo se neformálním standardem pro znakový kód ASCII. Na klávesnici lze tyto kódy zadat klávesovou kombinací + pro XOFF, a + pro XON.

XOFFPozastavení přenosuDC31913+
XONObnovení přenosuDC11711+

Mechanismus

Když jeden konec datového spoje není schopen přijímat další data (nebo se k tomuto bodu blíží), pošle opačnému konci znak XOFF. Opačný konec při přijetí kódu XOFF musí pozastavit vysílání. +more Jakmile je první strana připravena přijmout další data, pošle znak XON, načež opačný konec může pokračovat ve vysílání.

Pokud například počítač odesílá data na pomalou tiskárnu a je schopen odesílat data rychleji, než je tiskárna schopna je zpracovávat, může se stát, že vyrovnávací paměť tiskárny se začne blížit zaplnění. Tiskárna reaguje na tuto situaci vysláním znaku XOFF do počítače, který by měl odesílání dat dočasně zastavit. +more Když zaplnění vyrovnávací paměti tiskárny klesne a tiskárna je opět připravena přijímat další data, pošle počítači znak XON, na což počítač reaguje pokračováním odesílání dat.

XOFF/XON lze používat obousměrně, například mezi dvěma propojenými dálnopisy.

Porovnání s hardwarovým řízením toku dat

Hlavní výhodou softwarového řízení toku dat je, že nevyžaduje další elektrické vodiče mezi odesilatelem a příjemcem. Kromě společného uzemnění vystačí se dvěma vodiči, jedním pro vysílání a druhým pro příjem. +more Hardwarové řízení toku dat vyžaduje další vodiče mezi oběma zařízeními. Kromě toho vyžaduje určitou hardwarovou implementaci, která mohla v počátcích výpočetní techniky (tj. v 60. a 70. letech 20. století) způsobovat významnější náklady.

Ani softwarové řízení toku dat však není bez problémů. Jeho hlavní nevýhodou je nižší spolehlivost. +more Při použití vyrovnávacích pamětí pro zpětný kanál se může stát, že znak XOFF se zařadí do fronty až za data, která jsou ve vyrovnávacích pamětech, což může zpozdit reakci natolik, že dojde ke ztrátě dat. Hardwarové signály mohou být naproti tomu předávány „mimo pořadí“ a zpracovány téměř okamžitě.

Hardwarové řízení toku datvelmi malévysokámimo přenosový kanál
Softwarové řízení toku dat realizované hardwarověmaléstřednív přenosovém kanálu
Softwarové řízení toku dat se zakázaným FIFOmalé, ale pomalénízkáv přenosovém kanálu
Softwarové řízení toku dat s povoleným FIFOvelkénízkáv přenosovém kanálu

Název „softwarové řízení toku dat“ naznačuje, že tato metoda byla obvykle implementována softwarově (nebo ve firmwaru), což mohlo způsobovat další zpoždění odezvy na XOFF. Toto zpoždění může vést ke ztrátě dat způsobené zaplněním vyrovnávací paměti. +more Naproti tomu hardwarové řízení toku dat je obvykle pod přímou kontrolou obvodu realizujícího univerzální asynchronní přijímač/vysílač (UART), který může zastavit vysílání okamžitě, bez zásahu softwaru. Pro odstranění latencí způsobených vestavěnou frontou FIFO implementují pokročilejší obvody UART, jako je 16950, metodu XOFF/XON řízení toku dat hardwarově. Při použití obvodů UART, které postrádají takovou podporu jako 16550, může při používání softwarového řízení toku dat docházet k zaplnění vyrovnávací paměti, což lze poněkud zmírnit zákazem používání FIFO v obvodu UART.

Další nevýhodou softwarového řízení toku dat je, že se kódy XOFF/XON nesmějí vyskytovat v přenášených datech, aby nebyly chybně považovány za příkazy pro řízení toku dat. Data, která obsahují kódy XOFF/XON, se tedy musí před přenosem nějakým způsobem zakódovat, což si vyžádá určitou režii. +more K tomuto účelu se často používá nějaký druh escape sekvencí. Pro tiskárny, které přímo interpretují ASCII kódy, to nemusí představovat problém, protože XON a XOFF nejsou kódy tisknutelných znaků; mohou se však vyskytnout při grafickém tisku.

Aplikace

Softwarové řízení toku dat používají pomalá zařízení, zvláště starší tiskárny a hloupé terminály, pro indikaci, že nejsou dočasně schopna přijímat další data. Obvykle k tomu dochází kvůli omezené rychlosti výstupu a zaplnění vyrovnávacích pamětí. +more Některé nástroje pro řízení terminálů, např. termcap, používají „výplňky“ (krátká zpoždění s milisekundovou granularitou), která poskytují takovým zařízením dostatek času pro provedení požadované činnosti bez nutnosti použití XOFF.

XOFF/XON (klávesy + a +) lze použít pro pozastavení scrollování textu na obrazovce. U moderních počítačů však může být rychlost výpisu na obrazovku tak velká, že člověk rychle scrollující text nestíhá pozastavit ani po mnoha obrazovkách.

Softwarové terminálové emulátory obecně implementují podporu XOFF/XON jako jednu ze základních funkcí. Toto obecně zahrnuje Systémová konzole na moderní unixových a linuxových strojích, i emulátory GUI např. +more xterm a win32 konzole.

Robustní XON je technika, která umožňuje znovuzahájení komunikace v případě, že byla zastavena náhodně přijatým kódem XOFF. Přijímací jednotka periodický posílá znaky XON, když může přijímat data a linka je nečinná. +more To často používaly tiskárny se sériovým rozhraním (jako HP LaserJet II) pro indikaci, že jsou připojena a připravena přijímat data. XON se posílá s periodou 1 až 30 sekund podle nastavení firmwaru tiskárny.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top