AT-команды модема

Последние изменения: 20.03.2017

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

Выбор коммуникационного стандарта
  • n = 0 CCITT V.21, V.22, V.22 bis,
  • n = 1 BELL 103/202A.

Ds

Автоматический набор номера (Dial). 
После получения этой команды, модем начинает набор номера и при получении связи переходит в режим передачи. 
Команда состоит из телефонного номера, в состав которого могут входить следующие управляющие параметры:
  • s = P обозначает, что цифры телефонного номера идущие после символа P модем должен набирать импульсно (используются символы 0-9).
  • s = T обозначает, что цифры телефонного номера идущие после символа T модем должен набирать в тоновом режиме (разрешено использовать символы 0-9, A-D, * а также #).
  • s = , обозначает перерыв перед набором следующей цифры (2s).
  • s = ; если применяется как последний знак в командной строке, то модем после набора номера переходит в командный режим работы.
  • s = @ модем ожидает 5-секундной тишины на линии, если она не появится в течении 30s (содержимое регистра S7), модем отключается, и отвечает NO ANSWER.
  • s = ! если знак ! стоит перед знаками последовательности набора, модем переходит в состояние ON HOOK (кладет трубку) на 0,5s, а затем снова перейдет в состояние OFF HOOK (снимает трубку).
  • s = S модем набирает телефонный номер записанный в памяти EEROM.
  • s = R при записи как последний символ в командной строке, устанавливает модем после набора номера в режим "answer", но только в том случае, если модем звонит к модему "originate".
  • s = W модем ожидает ответ станции (длинный гудок) перед дальнейшим набором телефонного номера (например выход на автоматическую междугороднюю связь).

En

Возврат символов вкомандном режиме -местное эхо ON/OFF. 
После команды E1 модем возвращает эхо каждого знака передаваемого ему, что позволяет узнать, как действительно работает командная линия.
  • n = 0 эхо выключено,
  • n = 1 эхо включено.

Hn

Управление линией (HOOK On/Off). 
Команда используется прежде всего при окончании телефонной связи:
  • n = 0 отключение модема от линии,
  • n = 1 подключение модема на линию.

In

Производственный код и контрольная сумма:
  • n = 0 сообщение сода продукта,
  • n = 1 подсчет контрольной суммы программы содержащейся в ROM (EPROM),
  • n = 2 модем проверяет состояние внутренней памяти ROM и возвращает сообщение OK или ERROR.

Ln

Установка громкости встроенного динамика (voLume).
  • n = 0 или 1 низкая
  • n = 2 средняя
  • n = 3 высокая

Mn

Управление динамиком (Mode).
  • n = 0 динамик выключен,
  • n = 1 динамик включен только во время набора номера и выключается после обнаружения несущей,
  • n = 2 динамик включен все время,
  • n = 3 динамик включается после набора последней цифры номера и выключается после обнаружения несущей отвечающего модема.

Qn

Управление ответом модема.
  • n = 0 возвращать ответы после команд (стандарт),
  • n = 1 ответ выключен.

Независимо от состояния Q0 или Q1 модем всегда сообщает содержание S-регистров, код продукта, контрольную сумму и результаты теста (смотри команды S, I, а также &T).

O

После прохождения команды, модем настраивается на режим передачи данных и отвечает CONNECT (если до этого он находился в командном режиме работы).

Sr

Управление S-регистрами.
  • Sr? считывание содержимого S-регистра номер r.
  • Sr=nnn ввод числового параметра nnn в S-регистр номер r.

Все команды модифицируют содержимое одного или более S-регистров. Некоторые S-регистры содержат временные параметры, которые можно поменять только командой S.

Vn

Выбор вида ответа модема.
  • n = 0 ответ цифровым кодом,
  • n = 1 ответ в символьном виде на английском языке. 
Стандартный набор ответов модема

Ответ в символьном виде

Значение ответа
OKМодем выполнил команду, команда выполнена без ошибок.
CONNECTМодем подключен со скоростью 300bps после команды X0 возможна работа со скоростью 600, 1200, 2400 bps.
RINGОбнаружен входящий звонок.
NO CARRIER

CARRIERxxxx

Модем потерял несущую или не получил несущюю от удаленного модема.

Скорость обмена на линии xxxx.

ERRORОшибка в командной строке. Командная строка длиннее 40 символов, или ошибка синтаксиса, или ошибка в контрольной сумме (смотри команду L2).
CONNECT xxxxУстановленно соединение на скорости xxxx. Выдается в момент установления соединения.
NO DIALTONEОтсутствие сигнала станции коммутации (смотри комманды X2, X4).
BUSYМодем обнаружил сигнал "занято".
NO ANSWERУдаленный модем не ответил на вызов в течение установленного времени.

Xn

Режим распознавания состояния линии в режиме вызова.
  • n=0 сигналы от АТС не анализируются, при соединении выдается сообщение CONNECT без указания скорости.
  • n=1 то-же, разрешена выдача скорости в сообщении CONNECT.
  • n=2 то-же, распознается только сигнал "свободно" (непрерывный гудок).
  • n=3 то-же, что и n=1, распознается только сигнал "занято".
  • n=4 распознаются сигналы свободно и занято, разрешены все сообщения.

Yn

Способ отключения модема от линии. 
Существуют два способа отключения модема от линии: обыкновенный, когда модем получит неактивный сигнал DTR, и когда модем получит от удаленного модема сигнал перерыва. 
Команда ATH0 направляет сигнал перерыва, который длится 4 s.
  • n = 0 модем отключается обыкновенно (см. команду &D),
  • n = 1 модем отключается после получения сигнала из линии.

Z

Сброс модема (initialiZation) и установка набора параметров по умолчанию (profile) -процессор считывает конфигурацию модема из памяти NOVRAM.

+++

Последовательность выхода. 
Благодаря этой команде можно перейти из режима передачи в командный режим работы модема без перерыва связи. Команда требует тишины перед и после направления последовательности выхода. Величина этого времени определена в регистре S12 (обычно 50 = 1s). Десятичную величину знака ASCII, который является знаком последовательности выхода содержит регистр S2 (обычно 43 те.'+').

Дополнительный набор команд Hayes'a.

&Cn

Контроль несущего сигнала (Carrier).
  • n = 0 отменяет контроль, модем постоянно выдает сигнал DCD,
  • n = 1 (стандарт) сигнал DCD существует с момента, когда модем определит несущую.

&Dn

Функция сигнала DTR в асинхронном режиме работы.
  • n = 0 модем игнорирует DTR,
  • n = 1 с момента потери DTR модем переходит в командный режим работы,
  • n = 2 с момента потери DTR модем прекращает связь, выключает функцию "auto-answer" и переходит в командный режим работы,
  • n = 3 с момента потери DTR модем автоматически реализует команду ATZ. Модем обнаруживает потерю DTR если сигнал DTR длится дольше времени определенного в S-регистре S25.

&F

Загрузка заводских параметров модема (Factory) -модем считывает свою конфигурацию записанную в EPROM.

&Gn

Включение / выключение защитного сигнала(Guard tone).
  • n = 0 защитный сигнал выключен,
  • n = 1 модем высылает защитный сигнал 550 Hz,
  • n = 2 модем высылает защитный сигнал 1800 Hz.

Сообщает станции, что к линии подключен модем и имеет смысл только для станций, умеющих опознать защитный сигнал.

&Ln

Тип телефонной линии (Line).
  • n = 0 передача на коммутируемых линиях связи,
  • n = 1 передача на постоянных линиях связи.

&Mn

Режим работы.
  • n = 0 асинхронный,
  • n = 1 для терминалов, которые могут работать как в синхронном, так и в асинхронном режиме работы; команду набора номера модем передает асинхронно, а передачу данных - синхронно,
  • n = 2 с момента появления сигнала DTR, модем набирает номер записанный командой &Z в памяти NOVRAM,
  • n = 3 при неактивном сигнале DTR производится ручой набор номера. После получения соединения, с момента поступления сигнала DTR модем подключается к линии.

&Pn

Установка импульсного коэффициента при импульсном наборе.
  • n = 0 (стандарт) коэффициент замыкание/интервал 39/61% (США/Канада),
  • n = 1 коэффициент замыкание/интервал 33/67% (Европа/Азия).

&Rn

Управление зависимостей RTS/CTS:
  • n = 0 сигнал CTS наступает после сигнала RTS. Такой вариант проявляется во время моделирования полудуплексного режима работы. Данные появляющиеся до поступления сигнала CTS игнорируются.
  • n = 1 модем игнорирует RTS, при активном CTS сразу после подключения модема. Во время асинхронной передачи данных (команда &M0) сигнал CTS всегда активен.

&Sn

Функции сигнала DSR:
  • n = 0 сигнал DSR активен,
  • n = 1 DSR активизируется, после окончания этапа установления связи.

&Tn

Тесты модема.
  • n = 0 окончание текущего теста,
  • n = 1 начало местной аналоговой петли,
  • n = 2 не используется,
  • n = 3 начало местной цифровой петли,
  • n = 4 модем дает согласие начала цифровой петли, которую передает удаленный модем,
  • n = 5 модем не дает внешнему устройству согласия,
  • n = 6 начало дистанционной цифровой петли,
  • n = 7 модем генерирует петлю RDL, а затем генерирует и передает тестирующий сигнал,
  • n = 8 аналоговая петля связанная с внутренним тестом.

&W

Модем читает свою конфигурацию из памяти RAM и записывает ее в память NOVRAM. Доступ к S-регистрам в памяти NOVRAM.

&Xn

Выбор опорного времени для передачи.
  • n = 0 модем генерирует основу времени - сигнал таймера 114 (15-ый штырек),
  • n = 1 модем получает основу времени для передачи из компьютера : сигнал таймера 113 (14-ый штырек),
  • n = 2 модем получает основу времени для передачи из линии, от несущей.
  • &Z

    Запись телефонного номера в памяти NOVRAM,(максимум 33 знака).

    Описание S-регистров.

    Обычно модем имеет около сотни регистров, которые нумеруются с нуля. Если это Hayes-совместимый модем, то его первые 28 регистров (0...27) должны использоваться так же, как в базовом Hayes-модеме.
    Многие конфигурационные команды есть не что иное, как запись значения в регистр. К регистрам в командах можно обратиться по имени Sn (S - Status или состояние), где n- номер регистра.
    Ниже дается описание S-регистров непосредственно используемых при работе с модемом.

    Для описания отдельных S-регистров указано два параметра:

    • Диапазон - обозначает диапазон параметров сохраняемых в S-регистре.
    • Величина - обозначает заводскую величину параметра, записанную в S-регистре фирмой изготовителем.

    Регистр

    ВеличинаДиапазонКоментарии

    S0

    0000-255Количество сигналов звонка

    Количество сигналов звонка, которого ждет модем перед ответом на вызов телефонной линии:

    S0 = 0 автоответ выключен 
    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 s2-255Время ожидания непрерывного гудка.

    S7

    030 s1-155Предельное время установки соединения. По умолчанию Windows предлагает 45 или 60 секунд, желательно установить 120-180 секунд.

    S8

    002 s0-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
    (msec)

    1-255

    Длительность паузы между цифрами в наборе номера. Для Курьеров.

    S12

    050
    (x20ms=1,0ms)
    20-255Охранная пауза до и после Escape (+++).

    S18

      Длительность теста, сек; 0-бесконечный тест.

    S19

      При отсутствии активности на линии по истечении этого времени модем разорвет соединение (S19=0 отменяет эту функцию).

    На лицевой панели любого внешнего модема можно видеть индикаторы, наиболее распространенные из которых и выполняемые ими функции приведены ниже:

    MRModem 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-HookTрубка снята, т.е. модем подключен к линии

    EC

    Error CorrectionВключен режим исправления ошибок

    ON

    PWRПитание включено

    Помогла ли вам статья?