Таблица 4.2. Расширенный набор АТ-команд
Команда | Назначение АТ-команды |
&Сп | Определение положения информационной несущей (DCD): &СО — модем поддерживает DCD (контакт 8 DB-25 RS-232) всегда включенным; &С1 — информационная несущая DCD определяется состоянием связи. |
&Dn | Определение положения линии готовности терминала (DTR): &DO — модем игнорирует сигнал DTR (контакт 20 DB-25 RS-232); &D1 — при пропадании DTR модем переходит в коммандный асинхронный режим; &D2 — выключение OTR приводит к "опусканию трубки", выходу из режима ответа и возвращению к командному режиму; &D3 — отключение DTR инициализирует модем. |
&F | Считывание конфигурации из энергонезависимой памяти (ERPROM) |
&Gn | Выбор частоты сигнала защитного тона: &GO или &G — без защитного тона; &Q1 — 550 Гц; &G2 — 1800 Гц (по умолчанию). |
&Jn | Выбор телефонного разъема: &JO — RJ-11/ RJ-41S/ RJ-45S; &J1 —RJ-12/RJ-13. |
&Ln | Выбор типа линии: &LO — коммутируемая; &L1 — выделенная (арендуемая) линия. |
&Мп | Выбор режима связи: &МО — асинхронный: &М1 — первый синхронный режим — асинхронный вызов и последующий переход в синхронный режим; &М2 — второй синхронный режим — запоминание номера вызова; &МЗ — третий синхронный режим — ручной вызов. |
&Pn | Выбор отношения вызов/пауза (брейк-отношения) для импульсного режима набора: &РО — 39/61 (стандарт США, Канады и России); &Р1 — 33/67 (стандарт Великобритании). |
&Rn | Определение положения сигнала RTS (только в синхронном режиме): &RO — сигнал CTS (контакт 5 DB-25 RS-232) передается при наличии сигнала RTS (контакт 4); &R1 — модем игнорирует RTS и включает CTS, когда готов к приему синхронных данных. |
Команда | Назначение АТ-команды |
&Sn | Определение положения сигнала готовности модема (DSR): &SO — модем устанавливает DSR по включению; &S1 — DSR (контакт 6 DB-25 RS-232) функционирует согласно рекомендации Е1А. |
&Tn | Установление тестового режима: &ТО — прекращает любой выполняемый тест по получении команды; &Т1 — запускает локальный аналоговый тест; &Т2 — запускает локальный цифровой тест; &ТЗ — подготавливает модем к выполнению удаленного цифрового теста по запросу другого модема; &Т4 — запрещает удаленный цифровой тест; &Т5 — разрешает удаленный цифровой тест с другим модемом: &Т6 — инициализирует удаленный цифровой тест; &Т7 — инициализирует удаленный цифровой тест с самодиагностикой. |
&Wn | Запись текущей конфигурации в энергонезависимую память профиля (профайла) п |
&Xn | Выбор источника тактовой частоты синхронизации передачи (только для синхронного режима работы порта): &ХО — модем генерирует тактовую частоту и выдает ее на 15-й контакт DB-25 RS-232; &Х1 — компьютер генерирует тактовую частоту и передает ее на модем через 24-й контакт DB-25, а модем передает ее через контакт 15; &Х2 — модем выделяет сигнал тактовой синхронизации из входного сигнала и поддерживает его на контакте 15 RS-232. |
&Zn | Запоминание телефонного номера п |
Стандартный и расширенный наборы АТ-команд приведены в табл. 4.1. и 4.2 соответственно.
Если модем не выполняет команды, необходимо проверить следующее:
> находится ли модем в командном режиме;
> стоит ли в начале последовательности команд префикс AT;
> находится ли конфигурация компьютера и программы в соответствии с параметрами обмена модема по порту RS-232.
Если после выполнения команды от модема пришло сообщение ERROR, то причиной этого могут быть следующие:
> переполнение командного буфера по причине большого количества команд;
> ошибка в команде.
4.3. Ответные коды модемов
В процессе своей работы модем может информировать компьютер пользователя о текущем состоянии связи и результатах выполнения АТ-команд. Для этого применяются так называемые ответные коды модема. Модемы могут передавать одиночные цифровые коды, которые можно расшифровать, используя руководство пользователя модема или символьный ответ, который близок к простому английскому языку.
В табл. 4.3 приведены основные ответные коды Hayes-совместимых модемов, а также набор Х-команд, определяющих использование соответствующих ответных кодов.
Таблица 4.3. Ответные коды модемов
Символьный | Цифровой | h | •1або | р ко | манд | Значение ответа | |
вид | код | ХО | Х1 | Х2 | ХЗ | Х4 | |
ОК | 0 | + | + | + | + | + | Модем выполнил команду без ошибок |
CONNECT | 1 | + | + | + | + | + | Связь установлена |
со скоростью 300 бит/с (после | |||||||
выполнения команд Х1, Х2, ХЗ, Х4) или | |||||||
со скоростью 600, 1200, 2400 бит/с | |||||||
(после выполнения команды ХО) | |||||||
RING | 2 | + | + | + | + | + | Обнаружение сигнала звонка на линии |
NO CARRIER | 3 | + | + | + | + | + | Модем потерял несущую или не |
получил ответ от удаленного модема | |||||||
ERROR | 4 | + | + | + | + | + | Ошибка в командной строке, |
командный буфер переполнен или | |||||||
ошибка в контрольной сумме | |||||||
(команда 12) | |||||||
CONNECT 1200 | 5 | — | + | + | + | + | Установлена связь со скоростью |
1200 бит/с | |||||||
NO DIALTONE | 6 | — | — | + | — | + | Отсутствие сигнала станции при снятии |
трубки | |||||||
BUSY | 7 | — | — | — | + | + | Модем обнаружил сигнал "занято" |
после набора номера | |||||||
NO ANSWER | 8 | — | — | + | + | + | Использовалась команда 0, но не было |
выполнено условие пятисекундной | |||||||
паузы | |||||||
CONNECT 600 | 9 | — | + | + | + | + | Установлена связь со скоростью |
600 бит/с | |||||||
CONNECT 2400 | 10 | — | + | + | + | + | Установлена связь со скоростью |
2400 бит/с |
Большинство ответов модема зависит от команды и связано с возвратом запрашиваемой информации или сообщением о текущем состоянии модема. Тем не менее, имеются два стандартных ответа — ОК. и ERROR. Ответ ОК означает, что команда принята и модем готов для приема следующей команды.
Если модем обнаруживает использование недопустимого аргумента или неправильный формат команды, он выдает ответ ERROR. Нераспознанные и неподдерживаемые команды также могут приводить к этому ответу. В других случаях, например, при получении вышедших из употребления команд, ответ ОК будет выдаваться для сохранения совместимости с имеющимся программным обеспечением, но при этом в состоянии модема не будет происходить никаких изменений.
Различные модемы по разному реагируют на ошибки в командной строке. Обычно, любая ошибка в командной строке приводит к сбрасыванию всей командной строки без изменения состояния модема. Однако некоторые модемы могут обрабатывать правильные команды в строке до тех пор, пока они не встретят ошибку, после чего обработка командной строки прекращается.
4.4. S-регистры модемов
В интеллектуальных модемах имеется набор регистров, содержимое которых можно считывать и изменять программным образом. Устанавливая определенные значения в соответствующие регистры, можно управлять работой модема. На платах многих модемов имеются конфигурационные переключатели, которые можно установить определенным образом и тем самым задать содержимое некоторых регистров, которое они принимают по умолчанию при включении модема. В табл. 4.4 приведен список S-регистров модема, их содержимое по умолчанию и соответствующие функции модема.
Для того, чтобы прочитать содержимое регистра, необходимо подать команду Sn?, где п — номер регистра. Для записи числа х в регистр Sn используется команда Sn=x. После этой команды можно использовать команду чтения и записи, не включая в командную строку имени регистра, например:
ATS6 — установить указатель на регистр S6;
AT? — считать содержимое регистра S6;
АТ=3 — записать в регистр S6 число 3.
Указатель на данный регистр будет сохранятся до тех пор, пока не будет использована команда Sn со значение п, отличным от текущего.
Как и в случае АТ-команд, между разными изготовителями модемов существует некоторый уровень согласованности и в определениях S-регистров. Однако полная схема использования S-регистров зависит от типа модема. В общем случае можно считать, что 13 S-регистров SO-S12 присутствуют в любом модеме, и выполняемые ими функции согласованы между производителями модемов. Ниже приведено краткое описание и минимальные комментарии по этим тринадцати S-регистрам.
Таблица 4.4. Основные S-регистры интеллектуальных модемов