Řízení toku softwaru - Software flow control

Softwarové řízení toku je metoda řízení toku používaná v počítačových datových spojích , zejména sériových RS-232 . Využívá speciální kódy přenášené v pásmu přes primární komunikační kanál. Tyto kódy se obecně nazývají XOFF a XON (od „vysílat vypnuto“ a „vysílat zapnuto“). Proto se „softwarové řízení toku“ někdy nazývá „řízení toku XON / XOFF“. To je na rozdíl od řízení toku prostřednictvím vyhrazených signálů mimo pásmo - „ řízení toku hardwaru “ - jako je RS-232 RTS / CTS .

Zastoupení

U systémů používajících znakový kód ASCII je XOFF obecně reprezentován pomocí znaku nebo bajtu s desetinnou hodnotou 19; XON s hodnotou 17.

Standard ASCII si nevyhradí žádné řídicí znaky pro použití jako XON / XOFF konkrétně. Poskytuje však čtyři obecné znaky „ovládání zařízení“ (DC1 až DC4). Teletype Model 33 ASR přijala dvě z nich, DC3 a DC1, pro použití jako XOFF a XON, resp. Toto použití zkopírovali ostatní a nyní je de facto standardem . Od tohoto použití se také odvozují klávesové ekvivalenty Ctrl+ Spro XOFF a Ctrl+ Qpro XON.

Reprezentace XOFF / XON v ASCII
Kód Význam ASCII Prosinec Hex Klávesnice
XOFF Pozastavit přenos DC3 19 13 Ctrl+S
XON Obnovte přenos DC1 17 11 Ctrl+Q

Mechanismus

Když jeden konec datového odkazu není schopen přijmout žádná další data (nebo se blíží tomuto bodu), odešle XOFF na druhý konec. Druhý konec obdrží kód XOFF a pozastaví přenos . Jakmile je první konec připraven znovu přijmout data, odešle XON a druhý konec obnoví přenos.

Představte si například, že počítač odesílá data na pomalou tiskárnu . Vzhledem k tomu, že počítač odesílá data rychleji, než je tiskárna dokáže vytisknout, tiskárna zaostává a přibližuje se situaci, kdy by byla zahlcena daty. Tiskárna na tuto situaci reaguje odesláním XOFF do počítače, který dočasně zastaví odesílání dat. Když je tiskárna znovu připravena přijímat více dat, odešle XON do počítače, který začne znovu odesílat data.

XOFF / XON lze použít v obou směrech, například dva teleprintery spojené navzájem.

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

Hlavní výhodou softwarového řízení toku je snížení počtu elektrických vodičů mezi vysílačem a přijímačem. Při společném základu jsou zapotřebí pouze dva signály, jeden k odeslání a druhý k přijetí. Řízení toku hardwaru vyžaduje další vodiče mezi oběma zařízeními. Vyžaduje také konkrétní implementaci hardwaru, která měla v dřívějších dobách výpočtu (tj. 60. a 70. léta) významnější náklady.

Softwarové řízení toku však není bez problémů. Odesílání XOFF vyžaduje k přenosu alespoň jeden znakový čas a může být zařazen do fronty za již přenesená data, která jsou stále ve vyrovnávací paměti. Hardwarové signály mohou být uplatňovány téměř okamžitě a mimo pořadí.

Jak název „softwarové řízení toku“ naznačuje, řízení toku pomocí této metody je obvykle implementováno v softwaru (nebo alespoň na vyšší úrovni firmwaru ), což může způsobit další zpoždění odpovědi XOFF. Hardwarové řízení toku je obvykle pod přímou kontrolou vysílajícího UART , který je schopen okamžitě zastavit přenos bez zásahu vyšších úrovní.

Nakonec, protože kódy XOFF / XON jsou odesílány v pásmu, nemohou se objevit v přenášených datech, aniž by byly zaměněny za příkazy řízení toku. Jakákoli data obsahující kódy XOFF / XON tedy musí být nějakým způsobem zakódována pro správný přenos s odpovídající režií. To se často děje s nějakým druhem únikové sekvence . U tiskových zařízení, která přímo interpretují kódy ASCII, to není velký problém, protože kódy XON a XOFF používají čísla kódů ASCII „ovládání zařízení“.

Aplikace

Softwarové řízení toku využívají nízkorychlostní zařízení, zejména starší tiskárny a hloupé terminály , k indikaci, že dočasně nejsou schopny přijmout více dat. Obvykle je to způsobeno kombinací omezené výstupní rychlosti a plných vyrovnávacích pamětí . Některé balíčky pro ovládání terminálu, například termcap , používají „padding“ (krátká zpoždění s využitím milisekundové granularity), aby takovému zařízení poskytly dostatek času na provedení požadovaných akcí bez nutnosti prosazovat XOFF.

XOFF / XON jsou stále někdy používány ručně operátory počítačů, k pozastavení a restartování výstupu, který by jinak příliš rychle posunul mimo displej.

Software terminálového emulátoru obecně implementuje podporu XOFF / XON jako základní funkci. To obecně zahrnuje systémovou konzolu na moderních počítačích Unix a Linux a také emulátory GUI, jako je xterm a konzola Win32 .

Robustní XON je technika restartování komunikace, pro případ, že by byla zastavena náhodně přijatým XOFF. Přijímající jednotka odesílá periodické znaky XON, když může přijímat data, a linka je nečinná. Jedno běžné použití je u sériových tiskáren (například HP LaserJet II) k indikaci, že jsou online a připraveny přijímat data. XON se odesílá každých 1 až 30 sekund v závislosti na konstrukci firmwaru tiskárny.

Viz také

Reference