Глава 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, или не произойдет сброс модема или выключение питания.

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

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

  • Команды для вызова удаленного модема описаны в Главе 4.
  • Команды, используемые при ответе на звонок удаленного модема, описаны в Главе 5.
  • Команды работы с протоколами исправления ошибок и сжатия данных описаны в Главе 7.

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

Когда Вы послыаете модему какую-либо команду, модем выдает в ответ сообщение - обычно 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

Сообщение модема Сообщение в числовой форме Значение сообщения
OK 0 Комманда выполнена успешно
CONNECT 1 Если модем находится в состоянии, отличном от X0, данное сообщение означает, что установлено соединение со скоростью 300 bps. В состоянии X0 оно означает, что было установленно соединение с удаленным модемом на произвольной скорости.
RING 2 Модем обнаружил входящий звонок
NO CARRIER 3 Потеряна (или не обнаружена в процессе установления соединения) несущая удаленного модема.
ERROR 4 Была введена неверная или недопустимая в данном режиме команда, произошел сбой аппаратуры модема или длинна коммандной строки превысила 40 символов
CONNECT 1200 5 Установленно соединение на скорости 1200 bps (в режиме X0 не выдается)
NO DIALTONE 6 Модем не обнаружил непрерывного гудка (сигнала "набирайте"). Сообщение выдается только в режимах X2 и X4, а так же в любом режиме, если использован символ 'W' в команде набора номера.
BUSY 7 Модем обнаружил короткие гудки (сигнал "занято"). Это сообщение не выдается в режимах X0, X1, X2, так как определение сигнала "занято" в этих режимах не производится.
NO ANSWER 8 Модем не обнаружил "тишину" в линии, когда был использован символ '@' в команде набора номера.
CONNECT 2400 10 Установленно соединение на скорости 2400 bps (в режиме X0 не выдается)
CONNECT 4800 11 Установленно соединение на скорости 4800 bps
CONNECT 9600 12 Установленно соединение на скорости 9600 bps
CONNECT 14400 13 Установленно соединение на скорости 14400 bps
CONNECT 19200 14 Установленно соединение на скорости 19200 bps
CONNECT 16800 15 Установленно соединение на скорости 16800 bps
CONNECT 38400 16 Установленно соединение на скорости 38400 bps
CONNECT 57600 18 Установленно соединение на скорости 57600 bps
CONNECT 1200/REL 22 Установлено соединение с коррекцией ошибок на скорости 1200 bps
CONNECT 2400/REL 23 Установлено соединение с коррекцией ошибок на скорости 2400 bps
CONNECT 4800/REL 24 Установлено соединение с коррекцией ошибок на скорости 4800 bps
CONNECT 9600/REL 26 Установлено соединение с коррекцией ошибок на скорости 9600 bps
CONNECT 19200/REL 27 Установлено соединение с коррекцией ошибок на скорости 19200 bps
CONNECT 38400/REL 28 Установлено соединение с коррекцией ошибок на скорости 38400 bps
CARRIER 300 40 Скорость обмена с удаленным модемом 300 bps
CARRIER 1200/75 V.23 44 Скорость передачи 1200 bps, скорость приема - 75 bps
CARRIER 75/1200 V.23 45 Скорость передачи 72 bps, скорость приема - 1200 bps
CARRIER 1200 46 Скорость обмена с удаленным модемом 1200 bps
CARRIER 2400 47 Скорость обмена с удаленным модемом 2400 bps
CARRIER 4800 48 Скорость обмена с удаленным модемом 4800 bps
CARRIER 7200 49 Скорость обмена с удаленным модемом 7200 bps
CARRIER 9600 50 Скорость обмена с удаленным модемом 9600 bps
CARRIER 12000 51 Скорость обмена с удаленным модемом 12000 bps
CARRIER 14400 52 Скорость обмена с удаленным модемом 14400 bps
CARRIER 16800 52 Скорость обмена с удаленным модемом 16800 bps (только для IDC-19xx)
CARRIER 19200 52 Скорость обмена с удаленным модемом 19200 bps (только для IDC-19xx)
COMPRESSION: CLASS 5 66 Установлен протокол сжатия данных MNP-5
COMPRESSION: V.42 BIS 67 Установлен протокол сжатия данных V.42bis
COMPRESSION: NONE 69 Протокол сжатия данных не установлен
PROTOCOL: NONE 70 Асинхронный режим, без коррекции ошибок
PROTOCOL: LAPM 77 Установлен протокол коррекции ошибок V.42 LAPM
PROTOCOL: ALT 80 Установлен протокол коррекции ошибок MNP
PROTOCOL: MNP 2,4 81 Установлен байт- ориентированный протокол коррекции ошибок MNP 4
PROTOCOL: MNP 3,4 82 Установлен бит-ориентированный протокол коррекции ошибок MNP 4
COMPRESSION: MNP 5 83 Установлен протокол сжатия данных MNP 5
Hosted by uCoz