7. DÁLKOVÝ PŘENOS DAT V PRAXI

Tato kapitola bude pojednávat o značně různorodých aspektech, s nimiž se můžeme setkat při praktickém využití dálkového přenosu dat. Nejprve bude probrán jazyk modemů HAYES kompatibilních, dále se seznámíme s některými typickými problémy dálkového přenosu dat.

Pokračovat bude odstavec pojednávající o problematice komunikačních protokolů MNP, další část bude pojednávat o základních komunikačních protokolech.

Na ty naváží komunikační programy, odstavec věnovaný problematice BBS a kapitolu uzavře odstavec zabývající se problematikou připojení vzdálené pracovní stanice k síti typu NOVELL.

7.1. JAZYK MODEMŮ HAYES A KOMPATIBILNÍCH

Tento jazyk pro řízení modemů byl původně vyvinut firmou Hayes Microcomputer Products, Inc. pro modemy vyráběné touto firmou a později se stal standardem pro modemy používané ve spojení s osobními mikropočítači třídy IBM PC. V následujícím textu se předpokládá, že modemy, které používají tyto příkazy (někdy též nazývané jako standardní AT příkazy), jsou kompatibilní s Hayes modemy, pro něž byl tento jazyk původně vytvořen. Popis nejčastěji používaných AT příkazů je uveden v odstavcích 7.1.2. až 7.1.4. Tabulka 43 pak uvádí pro všechny AT příkazy stručně jejich význam.

7.1.1. Syntaxe příkazů AT

Všechny příkazy (kromě dvou výjimek) se zadávají z příkazových řádků.

Každý příkaz začíná znaky "AT", které upozorní modem, že následuje příkaz (z anglického 'attention').

Znaky " AT" můžete zadávat malými i velkými písmeny, ale nesmíte je oddělovat mezerami. Příkazový zásobník modemu pojme 40 znaků.

Proto smí mít příkazový řádek délku maximálně 40 znaků, nepočítaje v to úvodní znaky "AT" a mezery, které nejsou ukládány do zásobníku.

Příkazový řádek smí obsahovat více příkazů. Pokud chcete, můžete oddělovat jednotlivé příkazy mezerami, avšak není to podmínkou, takže příkazy ATV1MO a AT V1 MO jsou identické.

Pokud zadáte příkazový řádek delší než 40 znaků, obdržíte chybové hlášení a žádný z příkazů nebude proveden.

Provádění jakéhokoliv příkazu můžete ukončit tím, že během provádění příkazu stisknete libovolnou klávesu.

Každý příkaz je zadáván jedním nebo dvěma znaky. Mnohé příkazy používají jako přepínač číslicí 1 nebo 0. Např. pokud chcete, aby modem odpovídal na Vaše příkazy buď slovy, nebo čísly, použijete příkaz V, následovaný přepínačem, který určuje typ odpovědi.

Zadáním ATV0 dostanete odpověď jako číslici.

Naopak zadáním ATV1 bude modem odpovídat slovy.

Každý AT příkaz má předdefinovanou hodnotu přepínače (default), která je v popisu příkazů níže indikována poznámkou implicitní hodnota. Na jednotlivé příkazy odpovídá modem způsobem, který je uveden v tabulce 12.

 

7.1.2. Příkazy pro dialog s modemem

Následující příkazy řídí způsob, jakým způsobem bude modem informovat o svém stavu a prováděné činnosti.

7.1.2.1. Příkaz E - Echo (Ozvěna)

Povel Echo určuje, zda modem provádí opis povelů na obrazovku (tj. provádí Echo), je-li v příkazovém stavu. Při zpracování řádku s tímto příkazem jsou všechny znaky brány jako data a jejich případný výpis na obrazovku musí být zajištěn telekomunikačním programem a příkazem "Full duplex". Možné přepínače použitelné ve spojení s tímto příkazem jsou zachyceny v tabulce 13.

7.1.2.2. Příkaz V - Verbose Response Format (Formát odpovědi) Povel Verbose

vybírá, zda modem bude jako odpověď na povely používat číslicové kódy, nebo slova. Jako odpověď při provedení tohoto příkazu modem odpovídá již 0 v případě, že požadujeme odpovědi ve tvaru číselných kódů, resp. OK při požadavku slovních odpovědí. Přepínače použitelné s tímto příkazem, včetně jejich významu, zachycuje Tabulka 14 .

ATV1 - Návratové kódy jsou textové řetězce, jako například OK, ERROR, BUSY, NO CARRIER atd. Jde o nastavení běžné pro většinu komunikačních programů.

ATV0 - Návratové kódy jsou numerické, 0 = OK, 3 = NO CARRIER, 4 = ERROR, 7 = BUSY atd.

7.1.2.3. Příkaz Q - Quiet Mode (Klidový režim) Povel Quiet

umožňuje zcela potlačit odpovědi modemu.

Použití tohoto příkazu je užitečné tehdy, je-li modem napojen na taková zařízení, která tisknou vše, co dislokovaný modem odesílá, jako je například dálnopis.

Přitom je třeba si uvědomit, že při zadání příkazu Q1 se na obrazovce neobjeví ani zpráva o úspěšném provedení povelu.

Tabulka 15 ukazuje, které přepínače lze ve spojení s příkazem Quiet použít.

ATQ0 - Modem vrací potvrzení, že provedl příkaz. V případě, že byl příkaz správně interpretován, vrací buď OK (ATV1), nebo (ATV0). Jde o běžné nastavení.

ATQ1 - Modem sice provedl příkaz, ale nedá vám o tom žádnou zprávu.  

7.1.2.4. Příkaz M - Monitor Speaker Control (Řízení reproduktoru)

Povel Monitor řídí, které aspekty činnosti modemu můžete kontrolovat akusticky poslechem reproduktoru. Chcete-li kontrolovat vše kromě vlastního přenosu dat je třeba použít příkaz M1, přičemž tento přepínač je také nastaven jako implicitní předdefinovaná hodnota. U tohoto příkazu lze použít jeden ze čtyř přepínačů. Jejich význam zachycuje tabulka 16.

Tabulka 16

ATM0 - Vypíná vnitřní reproduktor modemu.

ATM1 - Reproduktor je zapnut až do navázání spojení. Toto bývá běžné nastavení.

ATM2 - Reproduktor je zapnut stále i během přenosu.

ATM3 - Reproduktor se vypíná během vytáčení a navazování spojení.

7.1.2.5. Příkaz L - Loudness Speaker Volume (Nastavení hlasitosti reproduktoru)

Příkaz Loudness řídí hlasitost reproduktoru modemu. U tohoto příkazu jsou použitelné přepínače tři. Jejich význam zachycuje tabulka 17.

Tabulka 17

ATL - Ovládá hlasitost reproduktoru.

ATL1 - Nejtišší.

ATL3 - Nejhlasitější.  

7.1.2.6. Příkaz X - Command Resonses Odpovědi na příkaz

Tento příkaz umožňuje zvolit jednu z pěti úrovní odpovědí na volací a odpovídací příkazy.

Tabulka 18 uvádí jednotlivé přepínače tohoto příkazu včetně jejich významu.

- Možné varianty příkazu X

Příkaz Význam

X0 Je použita minimální sada odpovědí.

X1 Minimální sada plus identifikace rychlosti přenosu při navázáni spojení. (S tímto přepínačem modem před vytočením čísla nečeká na oznamovací tón.)

X2 Má stejný účinek jako X1, ale modem čeká před vytočením čísla na oznamovací tón.

X3 Má stejný účinek jako X1, ale jsou zobrazovány i zprávy BUSY, NO ANSWER a zprávy o oznamovacím tónu. Modem nečeká na oznamovací tón před vytočením čísla.

X4 Má stejný účinek jako X3, ale modem čeká na nepřerušovaný oznamovací tón před vytočením čísla.

POZNÁMKA: Náš oznamovací tón ve podobě Morse "A" nevyhovuje požadavku modemu čekat na oznamovací tón.

7.1.3. Příkazy pro volání a odpovídání

7.1.3.1. Příkaz A - Answer (Odpověď) - Originate

Povel Answer oznamuje modemu, aby odpověděl na volání, přicházející od druhého modemu, který je v módu Originate. Instruuje modem, aby začal ihned odpovídat, pokud se neozývá přihlašovací signál druhého modemu. Stisknete-li klávesu, zatím co se modem pokouší o odpověď, bude jeho snaha o navázání spojení přerušena a vrátí se do příkazového stavu 'Command State'.

7.1.3.2. Příkaz D - Dial (Volba čísla)

Příkaz Dial oznamuje modemu, aby vybral mód Originate, vytočil číslo, následující po příkazu a čekal na tóny 'Answer mode'. V závislosti na stavu příkazu X může modem před zahájením vytáčení čísla čekat na oznamovací tón. Možné parametry tohoto příkazu jsou shrnuty v tabulce 19.

Tabulka 19 - Parametry příkazu D

W Čekání na oznamovací tón před pokračováním vytáčení čísla. (Standardní doba čekání je 30 sekund. Tuto hodnotu můžete změnit zadáním nové hodnoty do registru 57.

, Pomlka mezi vytáčením číslic (Standardně nastavená hodnota pomlky - 2 sekundy může být změněna zadáním nové hodnoty do registru S8)

0-9 Číslice telefonního čísla volané stanice.  

ATX - Modem nebude před vytáčením čekat na oznamovací tón, nebude rozeznávat obsazovací tón a návratová hodnota po pokusu o vytočení čísla bude buď CONNECT, nebo NO CARRIER.

ATX1 - Stejně jako ATX, ale CONNECT je doplněn informací o rychlosti spojení, tedy např. CONNECT 1200 nebo CONNECT 2400.

ATX2 - Stejné nastavení jako ATX1, ale než začne vytáčet, čeká na oznamovací tón. V případě, že nepřijde, vrací NO DIAL TONE. Protože většina našich telefonních ústředen nedává oznamovací tón korektně, nelze toto nastavení doporučit.

ATX3 - Totéž jako ATX1, ale rozeznává obsazovací tón a pak nečeká na vypršení časového limitu, ale rovnou hlásí BUSY. Ne vždy jsou naše obsazovací tóny korektní, přesto bývá toto nastavení nejběžnější.

ATX4 - Kombinace všech předchozích možností, čeká tedy na ohlašovací tón, vrací BUSY, NO DIAL TONE nebo CONNECT XXXX (kde XXXX je rychlost spojení). Opět nelze doporučit, protože Československu státní ústředna nevysílá nepřetržitý oznamovací tón.  

7.1.4. Další AT příkazy

7.1.4.1. Příkaz S - Readinq and Writinq to the S-Reqisters (Čtení a zápis do S-reqistrů).

Paměť RWM modemu obsahuje 27 tzv. S-registrů. Jejich číslování začíná nulou, přičemž čtrnáct z nich má význam standardní pro všechny používané modemy. Pomocí tohoto příkazu lze hodnoty uložené v těchto S-registrech číst, popř. modifikovat. Možné použití tohoto příkazu pro různé činnosti je zachyceno v tabulce 20.

Tabulka 20

S0 - po kolika zazvoněních má modem zvednout sluchátko. Pokud je v S0 hodnota 0, modem nezvedá.

S2 - Hodnota znaku, který, je-li rychle třikrát po sobě vysílán na modem, způsobí přechod modemu ze stavu na lince do příkazového režimu. Obvykle to bývá 43, tedy znak +.

S3 - Hodnota ukončovacího znaku příkazů, obvykle 13, tedy CR.

S4 - Hodnota znaku pro novou řádku, obvykle 10 (LF).

S5 - Hodnota znaku pro výmaz, obvykle 8 (Blackspace).

S6 - Jak dlouho po zvednutí sluchátka modem čekat, než začne vytáčet číslo. Čas je v sekundách.

S7 - Jak dlouho modem čeká na navázání spojení. Čas je uveden v sekundách a počítá se k němu i doba potřebná k vytáčení čísla. I 40 bývá někdy málo.

S8 - Jak dlouho modem čeká při čárce v telefonním čísle. Standardní hodnota jsou 2 sekundy.

S9 - Jak dlouho musí být detekován signál Carrier, aby bylo spojení považováno za navázané. Čas je uveden v desetinách sekundy a standardně se tato hodnota pohybuje kolem čísla 8.

S10 - Jak dlouho po ztrátě signálu Carrier modem zavěsí. Čas je uveden v desetinách sekundy a bývá to přibližně 14. Vyšší hodnota zamezí ztrátě spojení při horší lince, otázkou je, zda se na takové lince dá přenášet.

Příkaz ATS0=4 nastaví registr S0 na hodnotu 4, obdobně se nastavují i ostatní registry.

Příkaz ATS1? pak zobrazí hodnotu registru S1.    

- Možné varianty příkazu S

Příkaz Význam

Sr? Zobrazuje hodnotu, uchovávanou v registru r.

Sr=n Přiřazuje hodnotu n registru r.  

Tabulka 21 - Seznam standardních S-registrů ( blíže viz manuál )

 

7.1.4.2. Příkaz A/ - Repeat Previous Command (Opakování předchozího příkazu)

Povel Repeat opakuje předchozí příkaz. Jeho použití je velmi užitečné např. při znovu vytáčení čísla, které bylo při minulém volání obsazeno. U tohoto příkazu nemusíte používat prefix AT, protože tento prefix přemisťuje všechny příkazy z vyrovnávací paměti příkazu modemu.

7.1.4.3. Příkaz Z - Reset Modem (Inicializace modemu)

Příkaz Reset vrací všechny proměnné a registry na jejich implicitní hodnoty a vymaže všechny povely z vyrovnávací paměti příkazů modemu. Pro nastavení modemu na standardní hodnoty, nastavené výrobcem je ovšem nutno použít příkaz AT &F.

7.1.4.4. Příkaz B - Bell Protocol Selection (výběr protokolu)

Příkaz Bell vybírá mezi dvěma standardními operačními protokoly modemu. Jeho možné přepínače zachycuje tabulka 22.  

Tabulka 22 Možné varianty příkazu B

Příkaz Význam

B0 Vybírá protokol CCITT V.22 při 1200 bit/s a protokol V.21 při 300 bit/s.

B1 Vybírá protokol 212A (který zahrnuje Bell 103) (implicitní hodnota)

B2 Autoscan mód

B3-B15 (eventuelně další ) Navázání spojení s určitou modulační rychlostí viz originální manuál příslušného modemu

Tabulka 23 Výběr z abecedního seznam AT příkazů
Velký seznam AT příkazů ZDE