Глава 3. Управление модемом

В главе 3 описан формат AT-команд. Здесь также описаны возможные сообщения, выдаваемые модемом в ответ на введенную команду.

Обычно пользователи работают с модемом посредством развитых телекоммуникационных программами, в этом случае нет необходимости управлять модемом посредством AT-команд напрямую и анализировать непосредственные ответы модема. Программа сама посылает команды и обрабатывает сообщения модема. Иными словами, весь интерфейс низкого уровня скрыт от пользователя, которому обычно не важно, что именно телекоммуникационный пакет посылает модему и какие сообщения получает в ответ, для того, чтобы, например, передать файл или положить письмо в ящик электронной почты, так как Вас, как правило, интересует конечный результат, а не способ его достижения.

Впрочем, если Вам по каким либо причинам требуется управлять модемом напрямую, то сведения изложенные в настоящей главе окажутся как нельзя кстати.

Ввод команд

С помощью AT-команд Вашему модему можно приказать исполнять большое количество разнообразных функций, среди которых - набор номера, ответ удаленному модему, действия по передаче факсов и многие другие. Однако, модем воспринимает AT-команды тогда и только тогда, когда он находится в командном режиме.

Чтобы ввести AT-команду, сделайте следующее:

  1. Наберите AT в латинском регистре (вообще, всюду в данном документе все символы команд набираются в латинском регистре). Эти две буквы всегда должны стоять в начале командной строки (за исключением случая A/, описанного ниже). Допустимо использовать или заглавные, или строчные буквы, но не те и другие одновременно ( AT или at, но не At)
  2. Наберите команду или подряд несколько команд, которые Вы хотите исполнить. Длина командной строки не должна превышать 40 символов.
  3. Нажмите клавишу <Enter>. Модем выполнит командную строку и выдаст сообщение о результате.

Как исправить неправильно набранную команду.

Если при наборе команды вы обнаружили ошибку, то для ее исправления следует клавишей <BackSpace> ("забой") стереть неверные символы и набрать остаток командной строки заново. Таким способом можно исправлять любые неверно набранные команды, за исключением самого префикса AT.

Как набирать команды в виде, наиболее удобном для восприятия.

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

  AT M3 DT 9, 1 (818)555-1234

При разборе командной строки модем игнорирует пробелы и указанные знаки препинания. Однако, длина строки команд вместе с этими знаками не должна превышать 40-символьный лимит.

Ввод командных строк длиной более 40 символов

Если Вы хотите ввести строку длиной более 40 символов, вам придется разбить ее на две отдельные строки и вводить каждую отдельно. В случае, если требуется ввести очень длинную команду набора номера D (к примеру, команда для набора номера и выдачи тонового пароля может оказаться значительно длиннее), наберите сначала первую часть номера, длиной до 39 символов (вместе с самой командой AT, D и прочими символами), в конце поставьте ';' и нажмите <Enter>. При этом модем, исполнив команду, вернется в командный режим и Вы сможете набрать еще одну команду D с оставшейся частью номера.

Пропуск параметров (параметры по умолчанию)

Некоторые команды требуют задания числовых параметров, однако при вводе эти параметры можно опустить, тогда модем, исполняя команду, будет использовать параметр, принятый по умолчанию. Везде в этом документе, где явно не указано иное, значением параметра по умолчанию является 0.

Например, команда Q - "Задать режим выдачи ответов" имеет параметр 0 или 1.

Q0 - говорит модему, что тот обязан сопровождать каждую выполняемую команду подтверждающим сообщением.
Q1 - запрещает какие либо подтверждения.
При этом ввод Q без параметра (например AT Q) эквивалентен Q0.

Другим хорошим примером является строка инициализации, используемая программой MTEZ с некоторыми модемами, часто вызывающая удивление пользователей:

  AT S=Q

которую можно записать в более понятном виде, как AT S0=0 Q0 (т.е. запретить автоматический ответ и разрешить выдачу подтверждений).

Повторное выполнение командной строки.

Следует отметить, что последняя введенная командная строка хранится в памяти модема до тех пор, пока ее не заменит следующая команда. Поэтому имеется возможность повторить исполнение последней командной строки. Для этого служит специальная команда A/. Поскольку при выключении питания или аппаратном сбросе содержимое буфера командной строки разрушается, очевидно, что в этом случае пытаться повторить последнюю командную строку бессмысленно.

Внимание! Команда A/ набирается без стандартного префикса AT и не завершается клавишей . Просто наберите A/ и модем автоматически выполнит предыдущую команду.

Команда A/ обычно используется для повторного выполнения длинной команды или для перенабора телефонного номера, который был занят.

Команду A/ можно использовать неоднократно, до тех пор, пока не будет набрана новая командная строка, начинающаяся с AT, или не произойдет сброс модема или выключение питания.

Сведения о командах.

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

Сообщения модема

Когда Вы послыаете модему какую-либо команду, модем выдает в ответ сообщение - обычно OK. Вы можете никогда не увидеть этих сообщений, так как некоторые телекоммуникационные программы перехватывают и самостоятельно обрабатывают сообщения, до того, как они могут быть выведены на дисплей. Однако, если Вы собираетесь непосредственно управлять модемом, Вам необходимо знать, какие сообщения и в каких случаях выдает модем.

В данном разделе рассматриваются все виды сообщений, выдаваемые модемом.

Текстовые и числовые сообщения

Модем, в зависимости от настроек, может посылать два типа сообщений - в виде текста и в виде чисел (соотвественно, называемые текстовыми или числовыми сообщениями). Каждому текстовому сообщению однозначно соответствует числовое и наоборот. Как правило, большинство программ и пользователей, работающих с модемом непосредственно, используют более удобные текстовые сообщения, на которые модем настроен по умолчанию. Однако в этом тексте для краткости иногда будут указаны только соответствующие им числовые сообщения. (См. Табл. 3-1).

Если Ваше программное обеспечение требует числовых ответов, то перевести модем в этот режим можно при помощи команды V0.

Запретить получение каких либо ответов вообще (например, для модема, подключенного к принтеру) можно командой Q1.

Наборы сообщений

Модем может работать в одном из пяти режимов, задаваемых командой Xn. Каждый из этих режимов предусматривает свой метод набора номера и каждому из них соответствует определенный набор сообщений, которые может выдавать модем в ответ на введенную команду или в ответ на возникшую ситуацию, например обнаружение сигнала "занято" или установление соединения. Так как команда Xn влияет не только на вид сообщений модема, но и на метод набора номера, описание этой команды и соответствующих сообщений находится в Главе 4, в разделе "Методы набора номера".

Сообщения модема при работе с протоколами коррекции ошибок и сжатия данных

Ваш модем поддерживает протоколы исправления ошибок и сжатия данных MNP и V.42/V.42bis. При работе с этими протоколами модем выдает дополнительные сообщения, перечисленные в Таблице 3-1. Чтобы разрешить выдачу расширенного набора сообщений, следует пользоваться командой Wn.

Внимание! Команду W, разрешающую выдачу расширенных сообщений при прохождении фазы выбора протокола коррекции-сжатия данных в момент установления соединения между двумя модемами, следует отличать от модификатора W в команде D (набор номера).

По умолчанию принимается установка W0, запрещающая выдачу расширенного набора ответов, если регистр S95=0 (заводская установка). В режиме W0 все сообщения "CONNECT XXXX" соответствуют скорости обмена данными между модемом и Вашим терминалом (DTE speed).

Командой W1 разрешается выдача сообщений "CARRIER" и "PROTOCOL". В этом режиме сообщения "CONNECT XXXX" также указывают скорость обмена данными с терминалом, последнее справедливо в случае, если регистр S95=0.

Если Вы желаете, чтобы сообщение "CONNECT XXXX" указывало физическую скорость передачи данных в канале (DCE speed) вместо скорости обмена с терминалом, введите команду W2. Эта команда запрещает выдачу расширенного набора ответов, если регистр S95=0.

Модемы, поддерживающие протоколы исправления ошибок и сжатия данных MNP и V.42/V.42bis, обрабатывают также команду \V1. В этом режиме все сообщения "CONNECT" будут содержать суффикс /ARQ, если модем установил соединение с использованием протокола коррекции ошибок. Этот режим устанавливается по умолчанию.

Внимание! Многие программы могут работать некорректно в режиме W1, а некоторые - и в режиме W2, поэтому не рекомендуется изменять заводские настройки, если вы не уверены, что ваша программа способна работать с расширенными сообщениями. С другой стороны, коммуникационные программы, использующие современные протоколы передачи файлов (например, Zmodem), могут работать неустойчиво, если установлен режим W0 или отсутствуют суффиксы /ARQ в режиме W2.

Таблица 3-1
Сообщение модемаСообщение в числовой формеЗначение сообщения
OK0Комманда выполнена успешно
CONNECT1Если модем находится в состоянии, отличном от X0, данное сообщение означает, что установлено соединение со скоростью 300 bps. В состоянии X0 оно означает, что было установленно соединение с удаленным модемом на произвольной скорости.
RING2Модем обнаружил входящий звонок
NO CARRIER3Потеряна (или не обнаружена в процессе установления соединения) несущая удаленного модема.
ERROR4Была введена неверная или недопустимая в данном режиме команда, произошел сбой аппаратуры модема или длинна коммандной строки превысила 40 символов
CONNECT 12005Установленно соединение на скорости 1200 bps (в режиме X0 не выдается)
NO DIALTONE6Модем не обнаружил непрерывного гудка (сигнала "набирайте"). Сообщение выдается только в режимах X2 и X4, а так же в любом режиме, если использован символ 'W' в команде набора номера.
BUSY7Модем обнаружил короткие гудки (сигнал "занято"). Это сообщение не выдается в режимах X0, X1, X2, так как определение сигнала "занято" в этих режимах не производится.
NO ANSWER8Модем не обнаружил "тишину" в линии, когда был использован символ '@' в команде набора номера.
CONNECT 240010Установленно соединение на скорости 2400 bps (в режиме X0 не выдается)
CONNECT 480011Установленно соединение на скорости 4800 bps
CONNECT 960012Установленно соединение на скорости 9600 bps
CONNECT 1440013Установленно соединение на скорости 14400 bps
CONNECT 1920014Установленно соединение на скорости 19200 bps
CONNECT 1680015Установленно соединение на скорости 16800 bps
CONNECT 3840016Установленно соединение на скорости 38400 bps
CONNECT 5760018Установленно соединение на скорости 57600 bps
CONNECT 1200/REL22Установлено соединение с коррекцией ошибок на скорости 1200 bps
CONNECT 2400/REL23Установлено соединение с коррекцией ошибок на скорости 2400 bps
CONNECT 4800/REL24Установлено соединение с коррекцией ошибок на скорости 4800 bps
CONNECT 9600/REL26Установлено соединение с коррекцией ошибок на скорости 9600 bps
CONNECT 19200/REL27Установлено соединение с коррекцией ошибок на скорости 19200 bps
CONNECT 38400/REL28Установлено соединение с коррекцией ошибок на скорости 38400 bps
CARRIER 30040Скорость обмена с удаленным модемом 300 bps
CARRIER 1200/75 V.2344Скорость передачи 1200 bps, скорость приема - 75 bps
CARRIER 75/1200 V.2345Скорость передачи 72 bps, скорость приема - 1200 bps
CARRIER 120046Скорость обмена с удаленным модемом 1200 bps
CARRIER 240047Скорость обмена с удаленным модемом 2400 bps
CARRIER 480048Скорость обмена с удаленным модемом 4800 bps
CARRIER 720049Скорость обмена с удаленным модемом 7200 bps
CARRIER 960050Скорость обмена с удаленным модемом 9600 bps
CARRIER 1200051Скорость обмена с удаленным модемом 12000 bps
CARRIER 1440052Скорость обмена с удаленным модемом 14400 bps
CARRIER 1680052Скорость обмена с удаленным модемом 16800 bps (только для IDC-19xx)
CARRIER 1920052Скорость обмена с удаленным модемом 19200 bps (только для IDC-19xx)
COMPRESSION: CLASS 566Установлен протокол сжатия данных MNP-5
COMPRESSION: V.42 BIS67Установлен протокол сжатия данных V.42bis
COMPRESSION: NONE69Протокол сжатия данных не установлен
PROTOCOL: NONE70Асинхронный режим, без коррекции ошибок
PROTOCOL: LAPM77Установлен протокол коррекции ошибок V.42 LAPM
PROTOCOL: ALT80Установлен протокол коррекции ошибок MNP
PROTOCOL: MNP 2,481Установлен байт- ориентированный протокол коррекции ошибок MNP 4
PROTOCOL: MNP 3,482Установлен бит-ориентированный протокол коррекции ошибок MNP 4
COMPRESSION: MNP 583Установлен протокол сжатия данных MNP 5

Назад | Содержание | Вперед