Protokol Hayes simuluje použití Hayes-kompatibilního telefonního modemu, používá standardní AT příkazy. Některé AT příkazy nemají v radiovém modemu smysl, jsou ignorovány, ale radiový modem na ně vrací OK (např. ATWn, AT&Nn). Používá se pro nahrazení telefonní linky.
Protokol Hayes používá udržovací pakety pro zjištění násilného ukončení spojení jedné ze stanic. V případě výpadku spojení protokol ukončí spojení.
Protokol Hayes používá tyto signály rozhraní RS-232C: Rx, Tx, RTS,
CTS, DTR, DSR a CD. Signál RI není použit. Signály RTS a CTS se používají
jako hand shake ( pokud je nastaveno v menu SPe
).
Pro navázání spojení je třeba uskutečnit nejméně jednu výměnu režijních paketů. Protokol Hayes není tedy vhodný (z důvodu velké režie) pro případ velkého množství krátkých relací, kdy jsou přenášeny malé objemy dat.
Ovládání a nastavení hodnot protokolu se provádí:
uživatelsky pomocí terminálu ( pomocí AT příkazů ), příklady:
AT<CR> to je 0x41 54 0D nebo: AT<CR><LF> to je 0x41 54 0D 0A odpověď: <CR><LF>OK<CR><LF> to je 0x0D 0A 4F 4B 0D 0A složitější AT příkaz: ATD1234<CR> to je 0x41 54 44 31 32 33 34 0D Písmena v příkazech je možno psát velká i malá, čísla dekadicky nebo 0x hex.
pomocí servisního přístupu – SETREM ( přímo nastavením S-registrů)
Viz kapitola 4 – „Konfigurační parametry“
DTE – koncové datové zařízení ( Data Terminal Equipment ).
Protokol Hayes se konfiguruje pomocí AT příkazů nebo nastavením S-registrů.
Radiomodem může být ve dvou definovaných stavech –
OFF LINE – modem je ve stavu zavěšený
ON LINE – modem je ve stavu spojení, rozlišujeme dva stavy –
příkazový mód
přenos dat
AT příkazy použité v radiovém modemu –
AT příkaz | Akce |
+++ | přechod ze stavu ON LINE – přenos dat do příkazového módu, spojení není přerušeno, návrat zpět do stavu ON LINE – přenos dat příkazem ATO |
A/ | znovu provede předchozí příkaz |
AT? | help screen |
AT?1 | help screen No.1 |
AT?S | vrátí hodnoty S-registrů |
ATQ0 | zapnuta odpověď na příkazy |
ATQ1 | vypnuta odpověď na příkazy |
ATV0 | nastavena numerická odpověď na příkaz (např. 1), také S14, bit 0x04 |
ATV1 | nastavena znaková odpověď na příkaz (např. Connect) |
ATE0 | lokální echo vypnuto, také S14, bit 0x01 |
ATE1 | lokální echo zapnuto |
ATI,I0 | vrátí vlastní číslo (síťovou adresu) |
ATDn | volá zadanou „n“ adresu, po CONNECTu přejde do ON LINE – přenos dat |
ATDn; | volá zadanou „n“ adresu, po CONNECTu zůstává v příkazovém módu , nepřejde do ON LINE – přenos dat (tam přejde až po ATO nebo ATO0) |
ATH,H0 | zruší spojení (před ATH se musí přejít z ON LINE – přenos dat do příkazového módu +++), přejde do stavu OFF LINE |
ATO,O0 | návrat z příkazového módu do ON LINE – přenos dat |
ATA | „ruční“ odpověď na volání (v případě, že S0=0) |
AT&C0 | signál CD v MR25 je stále ON, tedy S14 bit 0x2=1 |
AT&C1 | signál CD v CU přepíná podle stavu spojení, tedy S14 bit 0x2=0 (ON LINE CD=ON, OFF LINE CD=OFF) |
AT&W,&W0 | ve vývoji |
ATZ | zrušení spojení, obnovení uživatelského profilu protokolu z paměti FLASH, reset protokolu |
AT&F | nastaví default parametry (S-registry) v Hayes protokolu „Set default configuration profile“ |
AT&D0 | ignoruje stav DTR, S14 bit 0x10=0 |
AT&D2 | pro DTR->OFF:, zavěsí, příkazový režim , automatické odpovídání vypnuto, tedy S14 bit 0x10=1 |
AT&V | vrátí hodnoty S-registrů v RAM (active profile) a FLASH (stored profile) |
ATSn=y | nastaví S-registr n na hodnotu y |
ATSn? | Vrátí hodnotu registru n |
ATXn | Výběr sady možných návratových kódů ( má význam, je-li S14 0x08=1, tj.povoleny odpovědi ) |
S0 | S0=0 se automaticky nezvedne, musí přijít příkaz ATA | ||
S0 > 0 je zapnuta funkce autoanswer po prvním vyzvánění RING | |||
S2 | Escape code character – ESC znak – specielní znak , kterým se přechází ze stavu ON LINE do stavu OFF LINE, default „+“ 2BH (043) | ||
S3 | Carriage return character – znak CARRIAGE RETURN, default ODH (013) | ||
S4 | Linefeed character – znak LINE FEED, default 0AH (010) | ||
S5 | Backspace character – znak BACKSPACE, default 08H (008) | ||
S7 | Connect timeout (sec.) – část doby (přičítá se k době definované registrem S29) po kterou modem čeká na odpověď na výzvu o navázání spojení. Pokud do doby S7+S29 nepřijde odpověď CONNECT z volaného modemu, modem posílá do připojeného DTE zprávu NO ANSWER | ||
S10 | Carrier loss hagup timeout (10 sec.) – čas v desítkách sekund, po kterém se automaticky zruší spojení, pokud neprobíhá komunikace např. z důvodu ztráty rádiového spojení. Je-li nastaven na 0, spojení se automaticky nezruší (konfiguruje se na straně volajícího modemu) | ||
S12 | Escape code quard time (1/50 sec.) – časová prodleva v desítkách milisekund před a po sekvenci tří znaků ESC pro převedení modemu z režimu ON LINE – přenos dat do příkazového módu | ||
S14 | Flags– echo příkazu, výsledné kódy S14 | ||
bit | 0 | 1 | |
0x10 | AT&D0 | AT&D2 | |
0x08 | ATQ0 | ATQ1 | |
0x04 | ATV0 | ATV1 | |
0x02 | AT&C1 | AT&C0 | |
0x01 | ATE0 | ATE1 | |
S15 | S15=n ~ ATXn Sada návratových kódů. | ||
S29 | Dial delay (1/10 sec.) prodleva vytáčení mezi RING a CONNECT sec/10 konfiguruje se na straně volajícího modemu) |
Nastavení ostatních registrů nemá v radiovém modemu význam.
V registru S15 existuje pět sad návratových kódů – X0, X1, X2, X3 a X4. Jejich nastavení ukazuje tabulka.
Návratové kódy jsou zobrazovány jen když jsou povoleny, tj. je zapnuta odpověď na příkazy – ATQ0.
ATV0/ATV1 – numerická/znaková odpověď
Návratové kódy | Nastavení | |||||
X0 | X1 | X2 | X3 | X4 | ||
0 | OK | x | x | x | x | x |
1 | CONNECT | x | x | x | x | x |
2 | RING | x | x | x | x | x |
3 | NO CARRIER | x | x | x | x | x |
4 | ERROR | x | x | x | x | x |
5 | CONNECT 1200 | x | x | x | x | |
6 | NO DIALTONE | x | x | |||
7 | BUSY | x | x | |||
8 | NO ANSWER | x | x | |||
10 | CONNECT 2400 | x | x | x | x | |
13 | CONNECT 9600 | x | x | x | x | |
18 | CONNECT 4800 | x | x | x | x | |
20 | CONNECT 7200 | x | x | x | x | |
21 | CONNECT 12000 | x | x | x | x | |
25 | CONNECT 14400 | x | x | x | x | |
50 | CONNECT 19200 | x | x | x | x |
Zapnutí modemu
Po přivedení napájecího napětí je radiový modem nastaven do příkazového módu a načtou se konfigurační parametry, které jsou uloženy v trvalé paměti. V tomto stavu modem přijímá příkazy a komunikuje pouze s připojeným počítačem. Signál CD je neaktivní. V tomto stavu je možné nastavit požadovanou konfiguraci.
Navázání spojení bez funkce autoanswer
Výzvu na spojení provedeme příkazem ATDn, kde n je adresa volaného radiového modemu. Pokud je volaný radiový modem připraven na komunikaci, vyšle do svého počítače informaci RING, což znamená, že je volán. Po provedení příkazu ATA (pokud je nastaveno no autoanswer) na volaném počítači je volající radiový modem informován o navázání spojení a do svého počítače vyšle informaci CONNECT. ATA je nutné poslat do času S29, jinak není spojení navázáno. Po odeslání příkazu ATA se znovu (od začátku, bez ohledu na to, kolik času už uplynulo) počítá doba nastavená v registru S29, po jejím uplynutí je poslána informace CONNECT.
Registr S0=0 – bez funkce autoanswer. Pro navázání spojení je nutný příkaz ATA.
Navázání spojení s funkcí autoanswer
Registr S0>0 – s funkcí autoanswer. Volající radiový modem akceptuje spojení automaticky bez nutnosti zadat příkaz ATA. RING proběhne pouze jednou, bez ohledu kolik „zvonění“ je nastaveno v registru S0.
Zpětnou zprávou je informován i volaný radiový modem, že bylo přijato potvrzení a také volaný radiový modem posílá do svého počítače informaci CONNECT. Informace CONNECT je poslána po uplynutí doby nastavené v registru S29. V tomto okamžiku se radiový modem dostává do stavu ON LINE – přenos dat, nastaví signál CD do aktivního stavu a je schopen komunikace s protějším radiovým modemem.
Radiový modem neodpovídá
Pokud volaný radiový modem neodpovídá v době dané součtem registrů S7+S29, volající modem podle registru S7+S29 vrací počítači informaci NO ANSWER (bez odpovědi). Tento stav platí pro situaci, kdy modem neodpovídá i pro situaci, kdy neodpovídá DTE.
V případě, že volaný radiový modem již navázal spojení s jiným radiovým modemem, na naši výzvu o spojení dostaneme odpověď BUSY (zaneprázdněn).
Přepnutí do příkazového módu
Ve stavu ON LINE – přenos dat jsou všechny znaky, které vysílá počítač do modemu předány do protějšího radiového modemu. Vyjímkou je sekvence tří ESCAPE znaků, která přepíná radiový modem ze stavu ON LINE – přenos dat do příkazového módu (příkazový režim – komunikace s modemem probíhá pomocí AT příkazů bez nutnosti rušit spojení) . Platí, že před a za touto sekvencí musí proběhnout minimálně mezera nastavená v registru S12. Pokud byl radiový modem přepnut do příkazového módu, nebylo spojení přerušeno a zpět do stavu ON LINE – přenos dat je možné se dostat příkazem ATO.
Ukončení spojení
Ukončit spojení je možné buď nastavením signálu DTR OFF (AT&D2) nebo posláním příkazu ATH, ATH0. Pokud chceme ukončit spojení pomocí příkazu, je nutné nejprve nastavit radiový modem do příkazového módu . V příkazovém módu spojení ukončíme příkazem ATH nebo ATH0. Ukončení spojení na jednom radiovém modemu je přeneseno i na druhý radiový modem. Do druhého radiového modemu je poslána zpráva o ukončení spojení a tento radiový modem pošle do připojeného počítače informaci NO CARRIER. Oba radiové modemy přejdou do stavu OFF LINE. Po ukončení spojení je možné navázat spojení s jiným radiovým modemem.
Udržovací pakety
V případě, že dojde ke ztrátě radiového spojení, provedou po nastaveném timeoutu oba protokoly ukončení spojení nezávisle na sobě. Timeout pro rozpoznání ztráty spojení je nastaven v registru S10. Pokud je registr S10=0 nedochází ke kontrole spojení. Pro rozpoznání ztráty radiového spojení jsou použity udržovací pakety. Udržovací pakety jsou posílány v případě, že neprobíhá uživatelská komunikace a posílají je oba modemy nezávisle na sebe. Udržovací pakety jsou posílány vždy po uplynutí času S10/3 z obou stran. Pokud je komunikace přerušena, po uplynutí doby S10 je do obou modemů vyslán příkaz NO CARRIER. Oba radiové modemy přejdou do stavu OFF LINE.
S registry S10 a S29 se konfigurují na straně volajícího modemu, aby bylo možné zajistit návaznost na ostatní parametry. Do volaného modemu se tyto hodnoty posílají v paketu BEL.
Typy paketů protokolu Hayes
Význam paketu | data paketu Morse (typ 0A) |
HANG | 0x01 |
BEL | 0x02 + S10 + S29 |
Rezervováno | 0x03 |
BUSY | 0x04 |
HOLD | 0x05 |
ACK | 0x06 |
Protokol Hayes lze konfigurovat –
pomocí AT příkazů (viz nápovědu AT?, AT?1, AT?S)
v menu modemu
SPe0t
je možné nastavit defaultní sadu S-registrů příkazemset de(f)ault
, nebo některou z uživatelských sad S-registrů příslušným příkazem. Jednotlivé S-registry lze také nastavovat samostatně.Hodnoty registrů v SETRU jsou zobrazené v hexa tvaru, zapisují se v dekadickém tvaru.
Toto nastavení se uloží buď do paměti FLASH příkazem
(w)rite
, nebo se zaktivuje příkazem(I)nit
. V případě, že tyto parametry nebudou inicializovány, protokol s nimi nebude pracovat.
HAYES parameters: set de(f)ault, best of: (g)alaxy, (H)oneywell master (h)oneywell slave S registers: 01 00 2B 0D 0A 08 00 0C 00 00 06 00 32 00 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 ATE0 AT&C1 ATV1 ATQ0 AT&D0 ATX4 (SXX=YY) (a)ddress:00000000h (c)mdmode:0001h (s)tate:0000h hang (r)eason:0000h (m)ode:0000 (C)RLF timeout:0000ms (D)irect DCD:0000 (q)uit >>
Význam parametrů –
Přednastavené S-registry –
Defaultní parametry –
HAYES parameters: set de(f)ault
Přednastavené S-registry pro specielní aplikace –
best of: (g)alaxy, (H)oneywell master (h)oneywell slave
Hodnoty registrů v jednotlivých přednastaveních –
Registr default Honeywell master honeywell slave galaxy S0 01 01 00 04 S2 2B 2B 2B 2B S3 0D 0D 0D 0D S4 0A 0A 0A 0A S5 08 08 08 08 S7 0C 0C 0C 0C S10 06 06 06 06 S12 32 32 32 32 S14 04 10 14 10 S15 04 00 04 04 S29 0A 00 00 32
S-registry
S registers: 01 00 2B 0D 0A 08 00 0C 00 00 06 00 32 00 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 ATE0 AT&C1 ATV1 ATQ0 AT&D0 ATX4 (SXX=YY)
ATE0 AT&C1 ATV1 ATQ0 AT&D0
– rozložený registr S14ATX4
– registr S15
Stav spojení (nenastavuje se, pouze ukazuje současný stav komunikace)
(a)ddress:00000000h (c)mdmode:0000h (s)tate:0000h hang (r)eason:0002h (m)ode:0000
(a)ddress:00000000h
– adresa modemu, s kterým existuje (nebo existovalo) spojení(c)mdmode:0000h
0 - line
– mód ON LINE – přenos dat1 - command
– příkazový mód(s)tate:0000h
– stav, ve kterém se radiový modem nachází0 - off line
– stav zavěšeno1 - on line
– stav spojeno z lokální stanice2 - rmt on line
– spojení bylo vyvoláno druhou stranou (viz address)3 - connecting
– stav spojování4 - rmt connecting
– pokus o spojení inicializovaný druhou stranou5 - hanging up
– zavěšováníhang (r)eason:0000h
– důvod zrušení spojení (0,1,2,3 a 7), nebo nenavázání spojení (4,5 a 6)0-init
– inicializace protokolu1-rmt
– zavěšeno z druhé strany2-loc
– zavěšeno lokálně (ATH)3-carrier loss
– po vypnutí radiového modemu4-busy
– zaneprázdněn5-ata wait
– uplynula doba, kterou se čekalo na ATA6-dial
– uplynul čas S07 (connect timeout)7-dtr
– signál DTR OFF (lokálně)(m)ode:0000
– specielní nastavení (doporučuje se default nastavení)
(C)RLF timeout:0000ms
– pokud je nastaven nenulový timeout, pakety se posílají jen když přijde CLRF nebo uplyne nastavený timeout(D)irect DCD:0000
– při nastavení DCD signálu se nečeká na uplynutí S29 (dial delay)(D)irect DCD:0001
– signál DCD se nastaví po ATDx ( x = jakýkoliv znak )(D)irect DCD:000L
– signál DCD se nastaví po ATDL (signál DCD se nastaví po zaslání nastaveného znaku za ATD)