AT

AT-příkazy

Na Úvod

Dnes je používá asi každý modem. Byly vymyšleny za účelem jednodušší konfigurace modemu. Byl definován jednoduchý jazyk nazývaný AT-language - každý řádek začíná znaky AT (z anglického attention).
K používání je třeba terminálový software dodávaný většinou s modemem (například program SuperTerminal u modemů Well). Jeho příkazy jsou softwarem předávány po sériové lince zasílány přímo k modemu podle normy RS-232. Modem dokáže pracovat ve dvou režimech - v příkazovém, sloužícím k zadávání AT-příkazů modemu a v přenosovém v němž mezi sebou modemy přenášejí data a nemohou přijímat AT-příkazy. Modem nemůže pracovat v obou zároveň, ale může mezi nimi přepínat bez ztráty spojení. Přepínání se provádí tzv. escape sekvencí, která sestává ze tří stejných znaků stisknutých rychle po sobě. Tento znak je většinou "+", ale není to pravidlem.

 

Přehled základních AT-příkazů

AT-příkaz začíná dvojicí znaků AT a sestává z několika písmen a parametr je většinou číslo. Nezáleží na velikosti písmen a na mezerách. Každý příkaz se ukončuje stiskem klávesy Enter. Na jeden řádek lze napsat i více příkazů - pak se počáteční sekvence AT píše jen před prvním příkazem. Na jeden řádek je možno kromě prvních dvou znaků AT napsat maximálně 40 znaků. Pokud bude řádek delší, modem ohlásí chybu.

+++
Žádost o přechod do příkazového režimu - escape sekvence. ASCII kód přerušovacího znaku je uložen v registru S2. Nepíše se před ním AT. Před zadáním je nutno nějaký čas (escape code guard time) neposílat modemu žádná data - tj. mimo jiné nemačkat žádné klávesy. Tento čas je uložen v registru S12, obvykle je nastaven na 1 sekundu a lze ho měnit. Sekvenci je třeba zadat rychle a poté opět počkat po dobu kontrolního času. Po úspěšném zadání modem odpoví OK a přejde do příkazového režimu.

A/
Zopakování posledního platného příkazu. Kromě escape sekvence jediný AT-příkaz, který se nezadává s počátečním AT.

ATA
Odpověď na příchozí volání. Modem okamžitě zvedne linku a pokusí se navázat spojení.

ATB
Přepínání mezi normou Bell a CCITT

ATB0 - použití normy CCITT (implicitně)
ATB1 - použítí normy Bell

ATD
Vytočí číslo.

ATDT+číslo - pro vytáčení se použije tónová volba
ATDP+číslo - pro vytáčení se použije pulsní volba
ATDL - vytočí poslední vytáčené číslo (redial)
ATDS - vytočí často používané číslo (viz. AT&Z)
Do čísla je možno zadat znak "," (čárka), která vyvolá krátkou pauzu před vytáčením další číslice. Znak "W" způsobí čekání na oznamovací tón. Znak "!" na chvíli zavěsí a zase zvedne linku a znak ";" na konci čísla znamená že modem má po vytočení čísla přejít zpět do příkazového režimu.

ATE
Vypíná opakování znaků (echo), které byly do modemu zaslány. Implicitně modem vrací zpět všechny znaky které mu pošleme.

ATE0 - zakazuje vracení znaků
ATE1 - povoluje echo (implicitně)

ATH
Pokládá linku (hangup).

ATH0 - Modem zavěsí linku.
ATH1 - Modem vyvěsí linku. Na rozdíl od ATA se nepokouší navázat spojení.

ATL
Ovládání hlasitosti vestavěného reproduktoru.

ATL0 - vypíná vestavěný reproduktor
ATL1 - nastaví reproduktor na hlasitost 1
ATL2 - nastaví reproduktor na hlasitost 2
ATL3 - nastaví reproduktor na hlasitost 3

ATM
Ovládá zapínání a vypínání vestavěného reproduktoru

ATM0 - reproduktor vždy vypnutý
ATM1 - reproduktor zapnutý až do rozeznání nosné (carrier) (implicitně)
ATM2 - reproduktor vždy zapnutý
ATM3 - reproduktor vypnutý během volby a navazování spojení až do rozeznání nosné

ATO
Přechod zpět do přenosového režimu. Opak escape sekvence.

ATO0 - přechod zpět do přenosového režimu
ATO1 - speciální funkce

ATP
Nastaví implicitní vytáčení na pulsní.

ATQ
Vypíná a zapíná odpovědi modemu

ATQ0 - povoluje odpovědi modemu (implicitně)
ATQ1 - zakazuje odpovědi modemu

ATS
Mění nebo čte obsah S-registrů modemu.

ATS+číslo registru+? vypisuje obsah daného S-registru
ATS+číslo registru+=+ přiřazuje danému registru hodnotu

ATT
Nastaví implicitní vytáčení na tónové.

ATV
Mění formát odpovědí modemu

ATV0 - modem odpovídá čísly
ATV1 - modem odpovídá krátkými textovými zprávami typu OK (implicitně)

ATX
Nastavuje chování modemu při detekci oznamovacího tónu (dialtone), vytáčení a spojování.

ATX0 - modem neprovádí detekci oznamovacího tónu, navázání spojení oznamuje hláškou CONNECT
ATX1 - modem oznamuje při navázání spojení přenosovou rychlost
ATX2 - jako ATX1, ale čeká na oznamovací tón
ATX3 - jako ATX1, ale při vytáčení detekuje obsazovací tón (implicitně)
ATX4 - jako ATX3, ale čeká na oznamovací tón

ATY
Zakazuje nebo povoluje tzv. dlouhé prodlevy při vytáčení

ATY0 - po obdržení ATH0 zavěsí okamžitě (implicitně)
ATY1 - před zavěšením vyšle signál BREAK o délce 4 sekundy

ATZ
Inicializuje modem. Zavěsí linku, zruší záznam o posledním vykonaném příkazu, načte konfiguraci z NVRAM, provede selftest.

AT&F
Obnoví tovární konfiguraci z ROM. Pokud má modem více továrních konfigurací, následuje číslo konfigurace

AT&P
Volba poměru Make/Break v pulsní volbě. Udává délku pulsu a mezery mezi pulsy.

AT&P0 - nastaví poměr 61ms/39ms (implicitní a neměnit!)
AT&P1 - nastaví poměr 67ms/33ms
AT&P2 - nastaví poměr 67ms/33ms s poloviční délkou mezer a pulsů

AT&W
Uloží aktuální konfiguraci včetně hodnot S-registrů do paměti NVRAM. Jestliže modem podporuje více konfigurací, následuje číslo konfigurace

AT&Z
Uloží telefonní číslo pro časté vytáčení. Toto číslo pak lze vytočit příkazem ATDS

AT&Z=číslo - nastaví telefonní číslo pro časté vytáčení

ostatní AT-příkazy se liší modem od modemu

Popis základních S-registrů

Nastavení modemu jsou uloženy v tzv. S-registrech. Těch je obvykle 256 a jejich hodnota může teoreticky být 0-255.

S0
Počet zazvonění, než modem automaticky zavedne linku
Implicitně: 0
Hodnoty: 0-255 (když je nastavena 0, modem zvedá pouze po příkazu ATA)

S2
Určuje ASCII kód znaku pro escape sekvenci
Implicitně: 43
Hodnoty: 0-127 (Hodnotou větší než 127 se escape sekvence zakáže)

S3
Určuje ASCII kód znaku pro konec řádku - CARRIAGE RETURN
Implicitně: 13
Hodnoty: 0-127

S4
Určuje ASCII kód znaku pro začátek nového řádku - LINE FEED
Implicitně: 10
Hodnoty: 0-127

S5
Určuje ASCII kód znaku Back Space
Implicitně: 8
Hodnoty: 0-127

S6
Určuje maximální dobu v sekundách, po kterou modem čeká na oznamovací tón. Má význam jen v režimech ATX0, ATX1, ATX3
Implicitně: 2
Hodnoty: 2-255

S7
Maximální doba, po kterou modem čeká na nosnou vlnu (CARRIER), pokud se nedočká, zavěsí
Implicitně: doporučuje se nastavit alespoň na 50
Hodnoty: 0-255

S8
Určuje délku pauzy v sekundách, kterou modem udělá když v příkazu ATD narazí na znak ","
Implicitně: 2
Hodnoty: 0-255

S9
Minimální délka tónu (v desetinách sekundy), který je uznán za nosnou vlnu
Implicitně: 6
Hodnoty: 1-255

S10
Čas mezi ztrátou nosné a zavěšením v desetinách sekundy. Pokud modem ztratí nosnou, vyčkává po tuto dobu na její návrat. Potom zruší spojení.
Implicitně: 14
Hodnoty: 1-255 (255 znamená že modem spojení nezruší ani po trvalé ztrátě nosné)

S11
Délka tónu (mezera je stejně dlouhá) v milisekundách v tónové volbě.
Implicitně: 95
Hodnoty: 50-255

S12
Délka kontrolního času (escape code guard time) pro escape sekvenci. Udává se padesátinách sekundy.
Implicitně: 50
Hodnoty: 0-255