AT-команды.
Практически все современные модели телефонных модемов имеют общий набор команд Hayes (или AT- набор (от англ. ATtention — «внимание»). Набор команд, разработанных в 1977 году компанией Hayes для собственной разработки, модема «Smartmodem 300 baud».
Набор команд состоит из серий коротких текстовых строк, которые объединяют вместе, чтобы сформировать полные команды операций, таких как набор номера, начала соединения или изменения параметров подключения.
Префикс AT задаётся в начале любой строки команд. Если ваш модем отвечает OK (если разрешен символьный ответ командой ATV1) или 0 (если командой ATV0 ответ разрешен цифровым кодом-удобно для программного обслуживания модема), последние введенные вами команды приняты. Если модем отвечает ERROR (4), последняя введенная строка команд содержит какие-то ошибки. В одной командной строке может быть записано несколько команд, исключение составляют случаи, когда очередная команда приводит к смене режимов. Выполнение каждой команды происходит после ее выделения из буфера и последующего синтаксического разбора. При обнаружении ошибки выдается ERROR и обработка строки прекращается, все предшествующие команды выполняются.
Для того, чтобы модем распознал эти команды, они должны быть записаны в специфической форме. Каждая команда всегда начинается буквами AT или at, дополненных одной или больше командой и завершаемой в конце нажатием клавиши ↵ Enter. Команды воспринимаются модемом только тогда, когда он находится в «командном режиме» или offline.
AT-команды обычно отправляются модему посредством коммуникационного программного обеспечения, но также могут быть введены пользователем вручную, с компьютерной клавиатуры.
Стандартизация набора команд Hayes (и AT-команд) выразилась в документе под названием Data Transmission Systems and Equipment — Serial Asynchronous Automatic Dialing and Control, известном как TIA/EIA-602. Далее, ITU-T выпустила документ V.250 (так же известный как V.25ter), содержащий все команды TIA/EIA-602 и несколько дополнительных. После чего был выпущен TIA/EIA-602-A содержащий только ссылки на V.250 и небольшую историческую справку.
Для настройки (активации, деактивации и перенастройки установок) модема, Hayes-команды могут использовать различные профили модема. Набор команд и архитектура оказались весьма удачными и неоднократно расширялись и дополнялись. ETSI выпустил ряд стандартов описывающих управление мобильными телефонами и модемами стандарта GSM, таких как GSM07.05 и GSM07.07. Некоторые производители коммуникационного оборудования дополняют стандартный набор AT-команд своими собственными расширениями.
Основной набор команд.
AT | Начало (префикс) командной строки. После получения этой команды модем автоматически подстраивает скорость передачи и формат знака к параметрам терминала. | ||||||||||||||||||||||
A | Ручной ответ. Команда переключает модем из командного режима на режим ожидания сигнала несущей вызывающего модема. После получения сигнала несущей, модем реализует процедуру положительного ответа на вызов и действует как переключенный на процедуру автоматического ответа. Если модем работает на выделенных линиях связи, то отвечает несущей без указания частоты. В этом случае если автоматический ответ (auto-answer) выключен (S0=0) и происходит вызов, то для получения связи надо передать команду ATA. | ||||||||||||||||||||||
A/ | Модем повторяет предыдущую командную строку. Команда подается без префикса AT и нажатия Enter (CR). | ||||||||||||||||||||||
Bn | Выбор коммуникационного стандарта
| ||||||||||||||||||||||
Ds | Автоматический набор номера (Dial). После получения этой команды, модем начинает набор номера и при получении связи переходит в режим передачи. Команда состоит из телефонного номера, в состав которого могут входить следующие управляющие параметры:
| ||||||||||||||||||||||
En | Возврат символов вкомандном режиме -местное эхо ON/OFF. После команды E1 модем возвращает эхо каждого знака передаваемого ему, что позволяет узнать, как действительно работает командная линия.
| ||||||||||||||||||||||
Hn | Управление линией (HOOK On/Off). Команда используется прежде всего при окончании телефонной связи:
| ||||||||||||||||||||||
In | Производственный код и контрольная сумма:
| ||||||||||||||||||||||
Ln | Установка громкости встроенного динамика (voLume).
| ||||||||||||||||||||||
Mn | Управление динамиком (Mode).
| ||||||||||||||||||||||
Qn | Управление ответом модема.
Независимо от состояния Q0 или Q1 модем всегда сообщает содержание S-регистров, код продукта, контрольную сумму и результаты теста (смотри команды S, I, а также &T). | ||||||||||||||||||||||
O | После прохождения команды, модем настраивается на режим передачи данных и отвечает CONNECT (если до этого он находился в командном режиме работы). | ||||||||||||||||||||||
Sr | Управление S-регистрами.
Все команды модифицируют содержимое одного или более S-регистров. Некоторые S-регистры содержат временные параметры, которые можно поменять только командой S. | ||||||||||||||||||||||
Vn | Выбор вида ответа модема.
| ||||||||||||||||||||||
Xn | Режим распознавания состояния линии в режиме вызова.
| ||||||||||||||||||||||
Yn | Способ отключения модема от линии. Существуют два способа отключения модема от линии: обыкновенный, когда модем получит неактивный сигнал DTR, и когда модем получит от удаленного модема сигнал перерыва. Команда ATH0 направляет сигнал перерыва, который длится 4 s.
| ||||||||||||||||||||||
Z | Сброс модема (initialiZation) и установка набора параметров по умолчанию (profile) -процессор считывает конфигурацию модема из памяти NOVRAM. | ||||||||||||||||||||||
+++ | Последовательность выхода. Благодаря этой команде можно перейти из режима передачи в командный режим работы модема без перерыва связи. Команда требует тишины перед и после направления последовательности выхода. Величина этого времени определена в регистре S12 (обычно 50 = 1s). Десятичную величину знака ASCII, который является знаком последовательности выхода содержит регистр S2 (обычно 43 те.'+'). |
Дополнительный набор команд Hayes'a.
&Cn | Контроль несущего сигнала (Carrier).
|
&Dn | Функция сигнала DTR в асинхронном режиме работы.
|
&F | Загрузка заводских параметров модема (Factory) -модем считывает свою конфигурацию записанную в EPROM. |
&Gn | Включение / выключение защитного сигнала(Guard tone).
Сообщает станции, что к линии подключен модем и имеет смысл только для станций, умеющих опознать защитный сигнал. |
&Ln | Тип телефонной линии (Line).
|
&Mn | Режим работы.
|
&Pn | Установка импульсного коэффициента при импульсном наборе.
|
&Rn | Управление зависимостей RTS/CTS:
|
&Sn | Функции сигнала DSR:
|
&Tn | Тесты модема.
|
&W | Модем читает свою конфигурацию из памяти RAM и записывает ее в память NOVRAM. Доступ к S-регистрам в памяти NOVRAM. |
&Xn | Выбор опорного времени для передачи. |
&Z | Запись телефонного номера в памяти NOVRAM,(максимум 33 знака). |
Описание S-регистров.
Обычно модем имеет около сотни регистров, которые нумеруются с нуля. Если это Hayes-совместимый модем, то его первые 28 регистров (0...27) должны использоваться так же, как в базовом Hayes-модеме.
Многие конфигурационные команды есть не что иное, как запись значения в регистр. К регистрам в командах можно обратиться по имени Sn (S - Status или состояние), где n- номер регистра.
Ниже дается описание S-регистров непосредственно используемых при работе с модемом.
Для описания отдельных S-регистров указано два параметра:
- Диапазон - обозначает диапазон параметров сохраняемых в S-регистре.
- Величина - обозначает заводскую величину параметра, записанную в S-регистре фирмой изготовителем.
Регистр | Величина | Диапазон | Коментарии |
---|---|---|---|
S0 | 000 | 0-255 | Количество сигналов звонка Количество сигналов звонка, которого ждет модем перед ответом на вызов телефонной линии: S0 = 0 автоответ выключен |
S1 | - | 0-255 | Счетчик сигналов звонка (информационный параметр) Содержимое S-регистра увеличивается каждый раз, когда модем получает сигнал звонка из телефонной линии и по истечении 8s после сигнала ответа сбрасывается. Этот регистр - единственный, исполняющий чисто информационную роль, его содержимое можно только читать. |
S2 | 043 (ASCII '+') | 0-255 | Код символа Escape. Содержит десятичный код символа ASCII, который является знаком последовательности возврата /смотри '+++'/. В случае, когда S2 больше 127 происходит блокировка последовательности возврата. |
S3 | 013 ASCII (CR) или Ctrl-M (^M) | 0-127 | Код символа Enter. Содержит десятичный код символа ASCII, который является знаком (CR). |
S4 | 010 ASCII (LF) или Ctrl-J (^J) | 0-127 | Код символа перевода строки (LF). Содержит десятичный код символа ASCII, который является знаком новой строки (LF). |
S5 | 008 ASCII (BS) или Ctrl-H (^H) | 0-32,127 | Код символа забоя. Содержит десятичный код символа ASCII, который является знаком "забой" (backspase) (BS). |
S6 | 002 s | 2-255 | Время ожидания непрерывного гудка. |
S7 | 030 s | 1-155 | Предельное время установки соединения. По умолчанию Windows предлагает 45 или 60 секунд, желательно установить 120-180 секунд. |
S8 | 002 s | 0-255 | Длительность паузы при наборе. |
S9 | 005 (x1/10s=0,5s) | 0-255 | Время реакции DCD Время задержки активизации сигнала DCD вследствие появления несущей, т.е. модем будет ождать появления сигнала другого модема не менее, чем s9X0,1 секунд. Именно эти параметры (также и s10) рекомендуют изменять технические службы провайдеров, например ATS9=40S10=100. |
S10 | 014 (x1/10s=1,4s) | 1-255 | Задержка разъединения после потери несущей, т.е. модем отключается, потеряв сигнал другого модема не раньше, чем через s10X0,1 секунд. При s10=255 не будет отключаться, надо будет сбрасывать вручную. |
S11 | 070 | 1-255 | Длительность паузы между цифрами в наборе номера. Для Курьеров. |
S12 | 050 (x20ms=1,0ms) | 20-255 | Охранная пауза до и после Escape (+++). |
S18 | Длительность теста, сек; 0-бесконечный тест. | ||
S19 | При отсутствии активности на линии по истечении этого времени модем разорвет соединение (S19=0 отменяет эту функцию). |
На лицевой панели любого внешнего модема можно видеть индикаторы, наиболее распространенные из которых и выполняемые ими функции приведены ниже:
MR | Modem Ready, DSR | Модем готов к работе |
TR | Terminal Ready, DTR | Терминальная программа готова к работе |
CD | Carrier Detect, DCD | Обнаружение несущей, т.е. установление соединения с другим модемом |
SD | Send Data, TXD | Передача данных |
RD | Receive Data, RXD | Прием данных |
HS | High Speed | Высокая скорость, т.е. номинальная (паспортная) скорость для данного модема |
AA | Auto Answer | Автоматический ответ на входящий вызов |
OH | Off-Hook | Tрубка снята, т.е. модем подключен к линии |
EC | Error Correction | Включен режим исправления ошибок |
ON | PWR | Питание включено |