HAYES

https//www.racom.eu/cz/support/prot/hayes/index.html

Verze pro tisk

Protokol HAYES pro MORSE

Simulace telefonního modemu.

verze 7.13

24. dubna 2008

1. Úvod

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.

2. Formát 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 je0x41 54 0D
    nebo:  
    AT<CR><LF>to je0x41 54 0D 0A
    odpověď:  
    <CR><LF>OK<CR><LF>to je0x0D 0A 4F 4B 0D 0A
    složitější AT příkaz:  
    ATD1234<CR>to je0x41 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“

3. Implementace v Morse

Implementace protokolu Hayes v Morse

Obr. 1: Implementace protokolu Hayes v Morse

DTE – koncové datové zařízení ( Data Terminal Equipment ).

3.1. Konfigurace parametrů v CU

Protokol Hayes se konfiguruje pomocí AT příkazů nebo nastavením S-registrů.

3.2. AT příkazy

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říkazAkce
+++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?1help screen No.1
AT?Svrátí hodnoty S-registrů
ATQ0zapnuta odpověď na příkazy
ATQ1vypnuta odpověď na příkazy
ATV0nastavena numerická odpověď na příkaz (např. 1), také S14, bit 0x04
ATV1nastavena znaková odpověď na příkaz (např. Connect)
ATE0lokální echo vypnuto, také S14, bit 0x01
ATE1lokální echo zapnuto
ATI,I0vrátí vlastní číslo (síťovou adresu)
ATDnvolá 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,H0zruší 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,O0ná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&C0signál CD v MR25 je stále ON, tedy S14 bit 0x2=1
AT&C1signá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,&W0ve vývoji
ATZzrušení spojení, obnovení uživatelského profilu protokolu z paměti FLASH, reset protokolu
AT&Fnastaví default parametry (S-registry) v Hayes protokolu „Set default configuration profile“
AT&D0ignoruje stav DTR, S14 bit 0x10=0
AT&D2pro DTR->OFF:, zavěsí, příkazový režim , automatické odpovídání vypnuto, tedy S14 bit 0x10=1
AT&Vvrátí hodnoty S-registrů v RAM (active profile) a FLASH (stored profile)
ATSn=ynastaví S-registr n na hodnotu y
ATSn?Vrátí hodnotu registru n
ATXnVýběr sady možných návratových kódů ( má význam, je-li S14 0x08=1, tj.povoleny odpovědi )

3.3. S-registry

S0S0=0 se automaticky nezvedne, musí přijít příkaz ATA
S0 > 0 je zapnuta funkce autoanswer po prvním vyzvánění RING
S2Escape code character – ESC znak – specielní znak , kterým se přechází ze stavu ON LINE do stavu OFF LINE, default „+“ 2BH (043)
S3Carriage return character – znak CARRIAGE RETURN, default ODH (013)
S4Linefeed character – znak LINE FEED, default 0AH (010)
S5Backspace character – znak BACKSPACE, default 08H (008)
S7Connect 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
S10Carrier 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)
S12Escape 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
S14Flags– echo příkazu, výsledné kódy S14
bit01
0x10AT&D0AT&D2
0x08ATQ0ATQ1
0x04ATV0ATV1
0x02AT&C1AT&C0
0x01ATE0ATE1
S15S15=n ~ ATXn Sada návratových kódů.
S29Dial 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.

3.4. Návratové kódy

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ódyNastavení
X0X1X2X3X4
0OKxxxxx
1CONNECTxxxxx
2RINGxxxxx
3NO CARRIERxxxxx
4ERRORxxxxx
5CONNECT 1200 xxxx
6NO DIALTONE  x x
7BUSY   xx
8NO ANSWER   xx
10CONNECT 2400 xxxx
13CONNECT 9600 xxxx
18CONNECT 4800 xxxx
20CONNECT 7200 xxxx
21CONNECT 12000 xxxx
25CONNECT 14400 xxxx
50CONNECT 19200 xxxx

3.5. Princip přenosu dat

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í bez funkce autoanswer

Obr. 2: Navázání spojení bez funkce autoanswer

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.

Navázání spojení s funkcí autoanswer

Obr. 3: Navázání spojení s funkcí autoanswer

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).

Radiový modem neodpovídá

Obr. 4: Radiový modem neodpovídá

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.

Přepnutí do příkazového módu

Obr. 5: Přepnutí do příkazového módu

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.

Ukončení spojení

Obr. 6: Ukončení spojení

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.

Udržovací pakety

Obr. 7: Udržovací pakety

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 paketudata paketu Morse (typ 0A)
HANG0x01
BEL0x02 + S10 + S29
Rezervováno0x03
BUSY0x04
HOLD0x05
ACK0x06

4. Konfigurační parametry

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říkazem set 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 –

    RegistrdefaultHoneywell masterhoneywell slavegalaxy
    S001010004
    S22B2B2B2B
    S30D0D0D0D
    S40A0A0A0A
    S508080808
    S70C0C0C0C
    S1006060606
    S1232323232
    S1404101410
    S1504000404
    S290A000032
  • 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 S14

    ATX4 – 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 dat

      1 - command – příkazový mód

    • (s)tate:0000h – stav, ve kterém se radiový modem nachází

      0 - off line – stav zavěšeno

      1 - on line – stav spojeno z lokální stanice

      2 - rmt on line – spojení bylo vyvoláno druhou stranou (viz address)

      3 - connecting – stav spojování

      4 - rmt connecting – pokus o spojení inicializovaný druhou stranou

      5 - 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 protokolu

      1-rmt – zavěšeno z druhé strany

      2-loc – zavěšeno lokálně (ATH)

      3-carrier loss – po vypnutí radiového modemu

      4-busy – zaneprázdněn

      5-ata wait – uplynula doba, kterou se čekalo na ATA

      6-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)

©  2024 RACOM s.r.o. All Rights Reserved.