ИНТЕЛЛЕКТУАЛЬНЫЕ ВОЗМОЖНОСТИ МОДЕМОВ
В современном понимании понятие модема значительно шире, чем просто совокупность модулятора и демодулятора. В настоящее время модемы являются интеллектуальными устройствами, позволяющими помимо своей главной задачи — преобразования передаваемых сигналов, реализовать множество других функций, предоставляя дополнительные удобства пользователям. Такие модемы называют интеллектуальными или Smart-модемами.
Интеллектуальные возможности модемов реализуются благодаря наличию схемы управления, выполненной на основе того или иного микропроцессора. В схемах управления модемом часто применяются микропроцессоры общего назначения, такие как Z80, Intel 8086, 80186, 80286, 80386, Motorola 68020, 68030 и другие. Возможно применение и специализированных контроллеров, объединяющих в себе как сигнальный процессор, так и процессор, реализующий дополнительные сервисные функции. К таким контроллерам относятся, например, Intel 89024, 89027, 89С024, 89С124.
Для программного управления режимами работы модема (его схемы управления) со стороны компьютера используется набор специальных команд. Команды управления воспринимаются модемом только в случае, если он находится в командном режиме.
Каждый конкретный модем может воспринимать определенное множество команд, в общем случае не совпадающее командами, поддерживаемыми другими модемами. Однако для удобства применения модемов и совместимости коммуникационных программ необходимо иметь стандартный набор таких команд.
Первенство в создании интеллектуального модема не принадлежит фирме Haves. Прежде чем эта корпорация выпустила свой первый интеллектуальный Smartmodem 300, другие изготовители уже ввели интеллектуальные возможности в свои модемы. Заслуга корпорации Hayes заключается не столько в создании еще одного собственного набора команд, столько в утверждении этого набора команд в качестве промышленного стандарта.
Набор команд, под управлением которых работал Smartmodem 300, был очень мал. Когда модемы стали более совершенными, фирма Hayes расширила этот набор путем введения дополнительных функций управления. Для того, что бы сделать свои модемы Hayes-совместимыми, другие производители скопировали базовый набор команд, а затем разработали собственные дополнительные команды для поддержки специфических характеристик своих модемов. В результате сложилась ситуация, когда несмотря на то, что почти все модемы выполняют базовые команды, практически невозможно встретить два модема, использующие одинаковые команды и их синтаксис для реализации более сложных функций.
В роли стандартов для интеллектуальных модемов в настоящее время выступает набор команд модемов Hayes, называемый также АТ-командами, и команды, определяемые рекомендацией V.25bis.
Рассматриваемые в данной главе интеллектуальные возможности модемов относятся, в первую очередь, к наиболее распространенным абонентским модемам для коммутируемой телефонной сети общего пользования.
4.1. Режимы работы модема
Интеллектуальные модемы работают в одном из двух режимов. В командном режиме модем получает команды от компьютера, которые устанавливают и изменяют условия связи с удаленным модемом. В режиме передачи он работает как ретранслятор, выполняя свою главную задачу по преобразованию и передаче информации.
Командный режим модема устанавливается в следующих случаях:
> при включении питания;
> при первоначальной инициализации модема;
> после неудачной попытки соединения с удаленным модемом;
> при прерывании передачи с клавиатуры путем нажатия комбинации клавиш — "положить трубку" (обычно );
> при выходе из режима передачи данных через последовательность команд (ESCAPE — последовательность).
Установление соединения и посылка модемом сообщения CONNECT происходит в двух случаях:
> при удавшейся попытке установления связи с удаленным модемом;
> при выполнении модемом самотестирования.
Рис. 4.1. Диаграмма состоянии интеллектуального модема
В режиме передачи модем является "прозрачным" для команд, которые передаются в канал наряду с другими символами. И только ESCAPE-последова-тельность символов будет восприниматься модемом как управляющая команда. После получения этой последовательности модем выходит из режима передачи в командный режим, не прерывая связи с удаленным модемом. Это дает возможность пользователю или прикладному процессу, не разрывая связи, войти в командный режим и изменить параметры обмена информацией или настройки используемой коммуникационной программы.
Возможные состояния интеллектуального модема и переходы между ними поясняются диаграммой, приведенной на рис. 4.1.
4.2. АТ-команды
Основное отличие Haves-совместимых модемов состоит в поддержке командного режима в стандарте АТ-команд. AT (Attention — внимание) — это префикс, который ставится перед одной или несколькими командами Hayes-модема.
В командном режиме символы, набираемые на клавиатуре, попадают в командный буфер и посылаются на исполнение нажатием клавиши . Команды могут быть набраны либо строчными, либо прописными буквами и должны содержать численные параметры, если того требует формат команды. Если численный параметр пропущен, то его значение по умолчанию принимается равным нулю. При успешном выполнении команды модем посылает вам сообщение . При интерпретации команды модем анализирует только семь младших разрядов каждого символа; строчные символы команды эквивалентны прописным символам. Пробелы и управляющие символы, отличные от ASCII-кода возврата каретки 13 ( — Carriage Return) и ASCII-кода забоя 8 ( — Back Space), появляющиеся в командной строке, игнорируются. По умолчанию все факс-модемы должны поддерживать внутриполосное XON/XOFF-управле-ние потоком данных, хотя также могут использоваться другие типы управления потоком.
Все команды современных интеллектуальных модемов можно классифицировать, как это показано на рис. 4.2. Данная классификация не является окончательной и может расширяться в процессе роста функциональных возможностей модемов, например таких, как организация закрытых шифрованных каналов связи.
Как видно из рис. 4.2, префикс AT не ставится только перед перед командой А/ и Escape-последовательностью (+++). Команда А/ означает повторение последней команды. По этой команде происходит повторение последней введенной
Рис. 4.2. Структура команд интеллектуальных модемов
команды из внутреннего буфера модема. Escape-последовательность используется для переключения модема в командный режим из режима передачи данных.
Остальные команды являются АТ-командами, так как начинаются с префикса AT. Команды различного рода расширенных наборов имеют также дополнительные префиксы, следующие за префиксом AT. В качестве таких префиксов выступают знаки типа , , , , , или другие.
Таблица 4.1. Основные АТ-команды
Команда Назначение АТ-команды AT Префикс командной строки. In Запрос результирующего кода и проверочной суммы ROM: 10 — модем посылает трехцифровой результирующий код; 11 — модем выдает проверочную сумму программы ROM: 12 — модем выдает или состояние ошибки проверочной суммы программы ROM; 3 — модем выдает свой статус, включая формат данных, протокол Bell или ITU-T. А Автоответ. Вп Выбор протокола Bell или ITU-T: 0 — ITU-T V.22/V.2201S; 1 —Ве11212А. Сп Передача сигнала несущей: 0 — запрещает передачу несущей; 1 — разрешает передачу несущей. Dn Набор номера п и установление связи. Р Использование импульсного набора (метода PULSE). R Установление связи в реврсивном режиме — режиме автоответа. S Набор хранимого номера. Т Использование тонального набора (метода TONE). W Ожидание длинного тона (гудка) из линии. ® Ожидание "молчания" в линии. . Задержка, перерыв в последовательности вызовов (время задержки — из регистра S8). ! Краткая временная задержка (0,5 с) — имитирует процесс "положить трубку". Возврат в командный режим модема после набора номера. / Пауза на 1/8 с. En Эхо модемных команд (отображение выдаваемых команд на экране дисплея): ЕО — запрет эха; Е1 — любой символ, посланный в модем в командном режиме, отображается на дисплее. Fn Установка режима дуплекса: FO — полудуплексный режим; F1 — полнодуплексный режим.
Набор АТ-команд конкретного модема может отличаться от наборов команд модемов других производителей. Полное описание команд должно содержаться в руководстве на модем.
Таблица 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, когда готов к приему синхронных данных.
Стандартный и расширенный наборы АТ-команд приведены в табл. 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 последовательности
Регистры различных модемов с номерами больше 12 могут значительно отличаться между собой по функциональному назначению. В случае отсутствия документации на используемый модем может пригодиться информация и о S-регистрах других модемов, приводимая в табл. 4.5.
Таблица 4.5. Дополнительные S-регистры интеллектуальных модемов
Пределы Регистр изменения Функция величин S13 Не используется S14 0—255 Состояние модема. Бит О—не используется. Бит 1 — эхо-печать: =0 — не выполняется; =1 — выполняется. Бит 2 — управление ответом модема: =0 — разрешен; =1 — запрещен.
Комментарии:
50 — количество гудков для автоответа. Значение этого регистра равно числу гудков, после которого модем, находящийся в режиме автоответа, поднимет трубку и начнет устанавливать связь с удаленным модемом. По умолчанию S0=1. Для отключения этой функции необходимо присвоить S0=0.
51 — счетчик приходящих гудков. Эта функция работает при ненулевом значении регистра SO. Если после последнего гудка в течении 8 с новые гудки не последуют, содержимое S1 обнуляется.
52 — символ ESCAPE. Используется в ESCAPE-последовательностях, по умолчанию 43-й символ ASCII — "+" (плюс). Однако можно заменить любым символом от 0 до 127.
53 — символ ENTER. Символ "ввод" или "перевод каретки" (), по умолчанию равен 13. Можно заменить любым другим символом от 0 до 127.
54 — символ LINEFEED. Символ "прокручивание линии" (), по умолчанию равен 10. Можно заменить любым другим символом от 0 до 127.
55 — символ BACKSPACE. Символ "забой" (), по умолчанию равен 8. Можно заменить любым другим символом от 0 до 32 или символом 127.
56 — ожидание первого гудка. Определяет время в секундах, в течение которого должен прийти гудок из линии при "поднятии трубки". Если в течение этого времени придет сигнал, то модем начнет набор номера, если нет, то модем "положит трубку".
57 — время одной попытки соединения, определяет время в секундах, в течение которого должна быть установлена связь с удаленным модемом. Если в течении этого времени связь будет установлена, то модем выдаст сообщение
CONNECT, если нет, — то модем "положит трубку" и выдаст сообщение NO CARRIER. По умолчанию это время составляет 45 с.
58 — время задержки, задается командой . По умолчанию — 2 с.
59 — определение несущей. Определяет время в десятых долях секунды, в течении которого на линии должна присутствовать несущая частота от удаленного модема для ее надежного определения. По умолчанию значение регистра равно 6 (т.е. 0,6 с).
SI 0 — потеря несущей. Определяет время в десятых долях секунды, в течении которого может отсутствовать несущая частота от удаленного модема и при этом не будет оборвана связь. По умолчанию значение регистра равно 7 (т.е. 0,7 с). Значение регистра S10 должно всегда превосходить значение регистра S9.
511 — скорость набора для режима TONE. Определяет время в тысячных долях секунды, соответствующее отношению длительности передачи цифры к промежутку времени между передачей цифр телефонного номера при тональном наборе. По умолчанию значение регистра равно 70, что примерно соответствует скорости 7,14 цифр/с. При значении регистра 255 скорость набора минимальна и равна 1,9 цифр/с. Не оказывает влияния на параметры набора номера при импульсном наборе (режим PULSE).
512 — пауза в ESCAPE-последовательности. Определяет время задержки для ESCAPE-последовательности через временные интервалы длительностью 0,02 с. По умолчанию значение регистра равно 50 (т.е. 1 с). Минимальное значение соответствует 0,4 с, максимальное — 5,1 с.
4.5. Команды управления факс-модемами
Для реализации возможностей факсимильной связи в системе компьютер-модем также необходим свой командный интерфейс. Но ни один из производителей факс-модемов не смог захватить основную часть рынка их сбыта. В результате появилось большое число командных интерфейсов. Наличие множества интерфейсов привело к необходимости решения весьма неприятных проблем. Пользователи, привыкшие к широкой совместимости модемов, обнаружили полное отсутствие совместимости программных средств управления факс-модемами. Использование конкретного факс-модема требовало привлечения заказного программного обеспечения, ориентированного на модемы данного изготовителя.
Для решения этой проблемы Ассоциация электронной промышленности США (EIA) разработала ряд стандартов, определяющих протоколы и команды для использования в факсимильной системе DTE—DCE. Была поставлена цель разбить модемы на три класса в соответствии с их возможностью проводить сеанс факсимильной связи независимо от DTE. В данном разделе описываются эти три класса факс-модемов.
4.5.1. Классы модемов
Отдельный факсимильный аппарат с полным набором функций осуществляет все фазы сеанса связи, начиная от подготовки изображения с последующей передачей данных по каналу связи и кончая восстановлением изображения на приемной стороне. Однако, когда сеанс факсимильной связи проводится с использованием персонального компьютера и факс-модема, обязанности по управлению сеансом связи распределяются между этими двумя устройствами. Спецификации EIA для факс-модемов определяют границу разделения этих обязанностей и интерфейс взаимодействия: На рис. 4.3 показано представление двух уровней (DTE и DCE) интерфейса классов факс-модемов.
Класс 1 факс-модемов описывается спецификацией EIA/TIA-578. Факс-модемы класса 1 обеспечивают минимальный сервис, необходимый для реализации сеанса факсимильной связи с факсимильными аппаратами Группы 3. Как показано на рис. 4.3, в обязанности компьютера входит кодирование изображения (по стандарту Т.4) и управление передачей документов (по стандарту Т. 30). Факс-модемы класса 1 обеспечивают следующие функции:
> интерфейс с коммутируемой телефонной сетью;
> автонабор;
^ преобразование сигнала (модуляция) в соответствии с одним из протоколов модуляции серии V;
передача и прием данных;
формирование HDLC-кадров (прозрачность данных, обнаружение ошибок);
выполнение управляющих команд и выдача ответов.
Рис. 4.3. Разделение интерфейсных функции DTE и DCE при использовании факс-модемов различных классов
Сеанс факсимильной связи, проводимый с использованием модемов класса 1, должен всегда осуществляться под управлением прикладных программ. В отличие от типичного сеанса связи с использованием обычного модема, требования стандарта Т.30 по синхронизации, декодированию и упорядочению данных делают нецелесообразным управление сеансом факсимильной связи в неавтоматическом режиме (с ручной подачей команд).
Факс-модемы класса 2.0 характеризуются большей интеллектуальностью по сравнению с модемами класса 1. Как видно из рис. 4.3, при использовании этих факс-модемов распределение обязанностей в интерфейсе изменяется таким образом, что основная нагрузка по осуществлению сеанса связи по стандарту Т.30 смещается от компьютера к модему. Предполагается, что модемы класса 2.0 обеспечивают следующие возможности:
> интерфейс с коммутируемой телефонной сетью;
> автонабор;
> преобразование сигнала (модуляция) в соответствии с одним из V-про-токолов;
> реализация протокола Т.30;
> выдача сообщения о состоянии (статусе) сеанса связи;
>• дополнение минимального времени интервала сканирования линии;
> проверку качества получаемых данных;
> пакетные протоколы для интерфейса DTE — DCE.
Обозначение "класс 2.0" (где "О" означает номер модификации) применимо только к факс-модемам, которые соответствуют окончательному варианту спецификации TIA/EIA-592. В процессе разработки этого стандарта его проект был обозначен как SP-2388. Однако окончательный вариант существенно отличается от ранних модификаций. Модемы, которые были изготовлены в расчете на использование раннего варианта SP-2388-A, на запрос о классе, к которому они относятся, возвращают ответ просто .
Модемы класса 2.0 инициируют и завершают вызовы, управляют сеансом связи, передают данные, представляющие изображения, и могут осуществлять преобразование форматов изображения, определяемых стандартами Т