Команды AT
АТ-команды модема


Введение в АТ-команды

Технически модем представляет собой своего рода компьютер, содержащий микропроцессор, постоянное запоминающее устройство и тому подобное. Надо заметить, что по "вычислительной мощности" современные модемы сравнимы с компьютерами десятилетней давности, например, в модемах ZyXEL используется микропроцессор Motorola 68000, тот самый, который служил "сердцем" первых компьютеров Apple Macintosh, Amiga и даже рабочих станций фирмы Sun Microsystems первого поколения. Сегодняшние технические новинки также нашли свое место в модемах: так, например, приобретающие все большую популярность модемы USRobotics Courier (да и не только они) содержат ПЗУ на основе флэш-памяти, что позволяет "на лету" модернизировать управляющие микропрограммы. Но все-таки для пользователя важно не то, какие микросхемы установлены в модеме, а то, как он работает: скорость и надежность обмена данными, а также совместимость с модемами других производителей. Чтобы узнать эти параметры, как правило, не нужно разбирать устройство - достаточно взглянуть на поддерживаемые им стандарты.
К стандартам высокого уровня относятся так называемые hayes-команды, или АТ-команды. Они позволяют управлять модемом практически напрямую: изменить значение регистров, набрать телефонный номер и многое другое. Так, например, команда ATDP123-45-67 означает, что модем должен позвонить по телефонному номеру 123-45-67, используя стандартную для российских АТС импульсную систему набора, а команда АТН указывает на необходимость разорвать связь. Нетрудно заметить, что эти команды начинаются с префикса AT, верного практически для всего указанного набора, что и дало одно из названий стандарту.
Впервые такая система команд появилась в модеме Smartmodem, выпущенном фирмой Hayes (причина появления другого названия) и быстро стала действующим стандартом в отрасли. Через некоторое время она была значительно расширена, однако базовое ядро, выполняющее необходимые функции, сохранилось.
вверх

Команды модема

Модем поддерживает стандартный и расширенный наборы Hayes-команд. После префикса AT (Attention Code) может следовать одна или несколько команд. Эти команды пишутся на языке промышленного стандарта и позволяют связаться с модемом. Ваш модем всегда находится либо в командном режиме, либо в режиме непосредственного управления (online-режим). Как только вы включаете модем, он переходит в командный режим работы. Это означает, что АТ-команды могут быть посланы в модем только в том случае, когда он находится в командном режиме. Ввод команд в режиме непосредственной работы модема распознается самим модемом как ввод данных. Впрочем, АТ-команды могут быть загружены в модем и в терминальном режиме с помощью соответствующего программного обеспечения.
Любая команда AT, введенная в модем автоматически остается в нем до тех пор, пока не будет из него выгружена или модем не будет выключен.
вверх

Командная строка для АТ-команд

Все АТ-команды, за исключением двух, должны начинаться с символов. Исключение составляют escape-последовательность +++ и команда повтора /. Префикс командной строки (символы AT) не чувствителен к регистру. На одной строке вы можете ввести одну или несколько команд. В последнем случае, все команды могут разделяться пробелами, которые игнорируются модемом через его интерпретатор АТ-команд.
В командную строку вы можете ввести до 39 знаков, включая А и Т, исключая пробелы и возвраты каретки. Если вы введете более, чем 39 знаков, на экране появится сообщение о синтаксической ошибке.
вверх

Подтверждение команд AT

Большинство АТ-команд, набранных в командной строке модем немедленно подтверждает. Как только вы введете последний символ команды и нажмете возврат каретки, модем ответит на это выводом краткого сообщения: ОК
вверх

Основные команды AT

Следующие основные команды AT доступны только в терминальном режиме работы вашего модема.
AT
С этого префикса начинаются все (кроме двух) команды AT.
D
Набрать номер. Вы можете использовать эту команду для того, чтобы набрать номер телефона прямо из командной строки. Формат команды следующий:
ATD [string] Параметр string может содержать до 45 символов. Не используйте здесь круглые скобки или дефисы.
+++
ESC-последовательность. Это одна из двух команд, которая не используются в префиксе AT. После того, как произошло соединение с другим модемом, вам может понадобиться возвратиться в командный режим. Для этого вы должны набрать на клавиатуре три раза подряд символ +. После этого, модем ответит сообщением ОК и вы вновь возвратитесь в командный режим.
А/
Повтор. Эта команда не использует префикс AT и вам не нужно нажимать возврат каретки. Ввод этой команды заставляет модем повторить последнюю введенную команду AT. Весьма полезная команда для повторного набора телефонного номера.
&Fn
Исходные установки. Эта команда (n=0 или n=1) возвращает все параметры модема, которые были установлены в него производителем.
Н
Повесить трубку. Эта команда посылает в модем сигнал, после которого происходит отключение от линии.
О
Online-режим работы с модемом. Эта команда возвращает модем в режим непосредственного управления. Обычно используется для того, чтобы возобновить связь после ввода escape-последовательности +++.
Zn
Перегрузить модем. Эта команда (n=0 или n=1) перегружает модем и возвращает его к установкам, которые хранятся в так называемой флэш-памяти (энергонезависимой памяти) модема.
вверх

Модификаторы команд для набора телефонного номера

Модификаторы команд для набора телефонного номера позволяют задать дополнительные параметры, которые заставят модем автоматически выполнять те или иные функции. Модификаторы команд для набора телефонного номера доступны лишь в том случае, если вы уже ввели АТ-команду D, т.е. на экране должна присутствовать строка набора телефонного номера.
Синтаксис: АТО{модификатор} 1234567 [Enter]
Основные модификаторы для набора телефонного номера:
Р
Ипульсный набор. Этот модификатор вводится после команды D и предшествует телефонному номеру. Пример: ATDP 3243781 [Enter]
T
Тоновый набор. Этот модификатор вводится после команды D и предшествует телефонному номеру. Пример: ATDT 3243781 [Enter]
Нужно сказать, что тоновый и импульсный способы набора телефонного номера могут быть объединены в строке набора.
Возвратиться в командный режим после набора телефонного номера. Если вам нужно набрать слишком длинный (более 45 знаков) телефонный номер, вы можете использовать этот модификатор для того, чтобы разделить в строке набора несколько команд.
Все команды, кроме последней, должны содержать этот модификатор.
,
Сделать паузу во время набора телефонного номера. Этот модификатор заставляет модем приостановить набор телефонного номера. Модем сделает паузу на то количество секунд, которое задано в регистре S8 и затем продолжит набор номера. Если вам нужна большая пауза, просто введите еще один модификатор. В следующем примере, команда обращается к внешней (общественной) телефонной линии с "девяткой": ATDP 9, 5551212 [Enter]
!
Переадресация телефонного звонка. Этот модификатор применяется в случае, когда несколько модемов используют одну телефонную линию. Пример: ATDP! 268 [Enter]
W
Определить следующий ответ телефонной станции. Этот модификатор применяется в случае, когда вам необходимо дождаться ответа телефонной станции и продолжить набор телефонного номера. Пример: ATDP 8W 902 6810085 [Enter]
вверх

Телефонные звонки

Следующий пример демонстрирует, как можно позвонить с помощью модификаторов команд AT для набора телефонного номера.
ATD 1234567
Здесь модем набирает телефон 1234567 и затем ожидает ответ от станции или от удаленного модема. Если линия не обнаруживается, то модем автоматически (через определенный регистром S6 промежуток времени) выдает сообщение NO CARRIER, т.е. соединиться невозможно. Если же линия обнаружена, то модем выдает сообщение CONNECT и начинает переговариваться с удаленным модемом. Связь между двумя модемами обрывается всякий раз, когда любой из модемов совершает какие-либо отрицательные действия:
  • Исходный модем не способен распознать так называемый несущий сигнал от удаленного модема.
  • Передается команда Н (повесить трубку).
  • Разрывается интерфейс DTR между исходным DTE и самим модемом, в случае активизации команд &D2 и &D3:
  • AT &F1DT9,P5551234 [Enter]
    Эта команда восстанавливает установки по умолчанию, набирает номер, используя тоновый набор, осуществляет доступ к внешней линии через "девятку", делает небольшую паузу и, наконец, набирает телефонный номер 555-1234.
    вверх

    Как набрать телефонный номер

    Вы можете вручную набрать телефонный номер. Для этого вы должны войти в командный (терминальный) режим работы вашего модема, поднять телефонную трубку и просто набрать желаемый телефонный номер. Теперь:
  • Введите команду АТН1, и нажмите Enter для того, чтобы соединиться с вашим модемом.
  • Введите команду АТО, и нажмите Enter для того, чтобы модем начал работу в online-режиме.
  • вверх

    Отвечаем вручную

    Если функция автоответчика (регистр S1) не используется, то на все входящие звонки вы можете ответить сами. Для этого просто введите следующую команду:
    АТА [Enter] Модем ответит и вновь перейдет в online-режим.
    вверх

    Программируемая пользователем память NVRAM

    Все настройки модема сводятся к правильной установке значений регистров NVRAM. NVRAM - программируемая пользователем память, сохраняющая данные при выключении питания. NVRAM используется в модемах для хранения конфигурации по умолчанию, загружаемой в RAM при включении. Программирование NVRAM производится в любой терминальной программе с помощью АТ-команд. Полный перечень команд может быть получен в терминальной программе через команды АТ$ АТ&$ ATS$ AT%$.
    Запишите в NVRAM фабричные настройки с аппаратным контролем данных - команда AT&F1, затем внесите коррективы по настройке модема в совокупности с конкретной телефонной линией и запишите их в NVRAM по команде AT&W.
    вверх


    © 2000-2001 Sergey Ovchinnikov