46145 (751196), страница 2
Текст из файла (страница 2)
Стандартный и расширенный наборы АТ-команд приведены в табл. 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-регистры интеллектуальных модемов
Регистр | Пределы изменения величин | Значение по умолчанию | Функция |
SO | 0—255 | 1 | Число гудков для автоответа |
S1 | 0—255 | 0 | Счетчик приходящих гудков |
S2 | 0—127 (ASCII) | 43 | ASCII код ESCAPE символа, обычно символа + |
S3 | 0—127 (ASCII) | 13 | ASCII код ENTER () символа |
S4 | 0—127 (ASCII) | 10 | ASCII код LINEFEED () символа |
S5 | 0—32, 127 (ASCII) | 8 | ASCII код BACKSPACE () символа |
S6 | 2—225 (с) | 2 | Время ожидания первого гудка, с |
S7 | 1—255 (С) | 45 | Время одной попытки, с |
S8 | 0—255 (С) | 2 | Значение задержки, определяемой символом , с |
S9 | 1—255(0,1 с) | 6 | Время определения несущей, с |
S10 | 1—255(0,1 с) | 7 | Время ожидания восстановления потеряной несущей, с |
S11 | 50—255(0,1 с) | 70 | Скорость набора для метода TONE |
S12 | 0—255 (0,05 с) | 50 | Пауза для передачи ESCAPE последовательности |