ИНТЕЛЛЕКТУАЛЬНЫЕ ВОЗМОЖНОСТИ МОДЕМОВВ современном понимании понятие модема значительно шире, чем просто совокупность модулятора и демодулятора. В настоящее время модемы являются интеллектуальными устройствами, позволяющими помимо своей главной задачи — преобразования передаваемых сигналов, реализовать множество других функций, предоставляя дополнительные удобства пользователям. Такие модемы называют интеллектуальными или 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. Режимы работы модема Интеллектуальные модемы работают в одном из двух режимов. В командном режиме модем получает команды от компьютера, которые устанавливают и изменяют условия связи с удаленным модемом. В режиме передачи он работает как ретранслятор, выполняя свою главную задачу по преобразованию и передаче информации. Командный режим модема устанавливается в следующих случаях: > при включении питания; > при первоначальной инициализации модема; > после неудачной попытки соединения с удаленным модемом; > при прерывании передачи с клавиатуры путем нажатия комбинации клавиш — "положить трубку" (обычно <Alt><H>); > при выходе из режима передачи данных через последовательность команд (ESCAPE — последовательность). Установление соединения и посылка модемом сообщения CONNECT происходит в двух случаях: > при удавшейся попытке установления связи с удаленным модемом; > при выполнении модемом самотестирования.
Рис. 4.1. Диаграмма состоянии интеллектуального модема В режиме передачи модем является "прозрачным" для команд, которые передаются в канал наряду с другими символами. И только ESCAPE-последова-тельность символов будет восприниматься модемом как управляющая команда. После получения этой последовательности модем выходит из режима передачи в командный режим, не прерывая связи с удаленным модемом. Это дает возможность пользователю или прикладному процессу, не разрывая связи, войти в командный режим и изменить параметры обмена информацией или настройки используемой коммуникационной программы. Возможные состояния интеллектуального модема и переходы между ними поясняются диаграммой, приведенной на рис. 4.1. 4.2. АТ-команды Основное отличие Haves-совместимых модемов состоит в поддержке командного режима в стандарте АТ-команд. AT (Attention — внимание) — это префикс, который ставится перед одной или несколькими командами Hayes-модема. В командном режиме символы, набираемые на клавиатуре, попадают в командный буфер и посылаются на исполнение нажатием клавиши <Enter>. Команды могут быть набраны либо строчными, либо прописными буквами и должны содержать численные параметры, если того требует формат команды. Если численный параметр пропущен, то его значение по умолчанию принимается равным нулю. При успешном выполнении команды модем посылает вам сообщение <0k>. При интерпретации команды модем анализирует только семь младших разрядов каждого символа; строчные символы команды эквивалентны прописным символам. Пробелы и управляющие символы, отличные от ASCII-кода возврата каретки 13 (<CR> — Carriage Return) и ASCII-кода забоя 8 (<BS> — Back Space), появляющиеся в командной строке, игнорируются. По умолчанию все факс-модемы должны поддерживать внутриполосное XON/XOFF-управле-ние потоком данных, хотя также могут использоваться другие типы управления потоком. Все команды современных интеллектуальных модемов можно классифицировать, как это показано на рис. 4.2. Данная классификация не является окончательной и может расширяться в процессе роста функциональных возможностей модемов, например таких, как организация закрытых шифрованных каналов связи. Как видно из рис. 4.2, префикс AT не ставится только перед перед командой А/ и Escape-последовательностью (+++). Команда А/ означает повторение последней команды. По этой команде происходит повторение последней введенной
Рис. 4.2. Структура команд интеллектуальных модемов команды из внутреннего буфера модема. Escape-последовательность используется для переключения модема в командный режим из режима передачи данных. Остальные команды являются АТ-командами, так как начинаются с префикса AT. Команды различного рода расширенных наборов имеют также дополнительные префиксы, следующие за префиксом AT. В качестве таких префиксов выступают знаки типа <&>, <\>, <*>, <%>, <#>, <+> или другие. Таблица 4.1. Основные АТ-команды
Набор АТ-команд конкретного модема может отличаться от наборов команд модемов других производителей. Полное описание команд должно содержаться в руководстве на модем. Таблица 4.2. Расширенный набор АТ-команд
Стандартный и расширенный наборы АТ-команд приведены в табл. 4.1. и 4.2 соответственно. Если модем не выполняет команды, необходимо проверить следующее: > находится ли модем в командном режиме; > стоит ли в начале последовательности команд префикс AT; > находится ли конфигурация компьютера и программы в соответствии с параметрами обмена модема по порту RS-232. Если после выполнения команды от модема пришло сообщение ERROR, то причиной этого могут быть следующие: > переполнение командного буфера по причине большого количества команд; > ошибка в команде. 4.3. Ответные коды модемов В процессе своей работы модем может информировать компьютер пользователя о текущем состоянии связи и результатах выполнения АТ-команд. Для этого применяются так называемые ответные коды модема. Модемы могут передавать одиночные цифровые коды, которые можно расшифровать, используя руководство пользователя модема или символьный ответ, который близок к простому английскому языку. В табл. 4.3 приведены основные ответные коды Hayes-совместимых модемов, а также набор Х-команд, определяющих использование соответствующих ответных кодов. Таблица 4.3. Ответные коды модемов
Большинство ответов модема зависит от команды и связано с возвратом запрашиваемой информации или сообщением о текущем состоянии модема. Тем не менее, имеются два стандартных ответа — ОК. и 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-регистры интеллектуальных модемов
Регистры различных модемов с номерами больше 12 могут значительно отличаться между собой по функциональному назначению. В случае отсутствия документации на используемый модем может пригодиться информация и о S-регистрах других модемов, приводимая в табл. 4.5. Таблица 4.5. Дополнительные S-регистры интеллектуальных модемов
Комментарии: 50 — количество гудков для автоответа. Значение этого регистра равно числу гудков, после которого модем, находящийся в режиме автоответа, поднимет трубку и начнет устанавливать связь с удаленным модемом. По умолчанию S0=1. Для отключения этой функции необходимо присвоить S0=0. 51 — счетчик приходящих гудков. Эта функция работает при ненулевом значении регистра SO. Если после последнего гудка в течении 8 с новые гудки не последуют, содержимое S1 обнуляется. 52 — символ ESCAPE. Используется в ESCAPE-последовательностях, по умолчанию 43-й символ ASCII — "+" (плюс). Однако можно заменить любым символом от 0 до 127. 53 — символ ENTER. Символ "ввод" или "перевод каретки" (<CR>), по умолчанию равен 13. Можно заменить любым другим символом от 0 до 127. 54 — символ LINEFEED. Символ "прокручивание линии" (<LF>), по умолчанию равен 10. Можно заменить любым другим символом от 0 до 127. 55 — символ BACKSPACE. Символ "забой" (<BS>), по умолчанию равен 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>. Модемы класса 2.0 инициируют и завершают вызовы, управляют сеансом связи, передают данные, представляющие изображения, и могут осуществлять преобразование форматов изображения, определяемых стандартами Т.4 (группа 3) и Т.6 (группа 4). У DTE остаются обязанности по подготовке и сжатию данных для передачи и интерпретации сжатых данных при приеме. DTE передает данные в том виде, в котором их запрашивает модем. Командный интерфейс модемов класса 2.0 не обязательно совместим снизу вверх с интерфейсом модемов класса 1; реализация функций модемов класса 1 является возможной, но необязательной. Спецификация для факс-модемов класса 3 в настоящее время находится в стадии разработки Ассоциацией электронной промышленности EIA. Планируется, что она продолжит тенденцию передачи обязанностей по обработке факсинильного сообщения от компьютера к модему, как показано на рис. 4.3. В дополнение к реализации функций стандарта Т.30 и физических функций модема, модемы класса 3 будут преобразовывать файлы данных, представляющих изображение, в сжатое изображение стандартов Т.4 или Т.6 для передачи. Модем по желанию пользователя может декомпрессировать изображение при его получении (такое расширение может быть необязательным или нежелательным для систем передачи с буферизацией данных). Вероятно модемы класса 3 будут допускать преобразование некоторых форматов графических файлов и текстовых ASCII-файлов. Такая файловая поддержка позволит включить возможности факсимильной связи во многие типы прикладного программного обеспечения. Интерфейс класса 3 также улучшит работу факсимильного оборудования в сети или в другом коммуникационном окружении, где синхронизация сообщений, передаваемых между DTE и DCE, не контролируется. 4.5.2. Команды класса 1 Команды для управления факс-модемами класса 1 и класса 2.0 были введены как расширение набора АТ-команд. Как и в случае команд для обычных модемов, строка символов, посылаемая к модему, называется командной строкой и должна начинаться с символов AT или at. Командная строка содержит только печатные ASCII-символы и заканчивается символом возврата каретки. Каждая факс-команда EIA начинается с символа факс-расширения +F. Имеются три общих формы синтаксиса команды, зависящие от конкретной команды. Эти три формы задают идентификацию возможностей, идентификацию состояния и установку параметров модели. Отметим, что не все эти формы синтаксиса применимы для каждой команды. Для того чтобы определить возможности модема, используется командный синтаксис идентификации возможностей. Этот синтаксис соответствует следующей форме записи команды: +Fcommand=?, где command означает действительную факс-команду. Модем будет отвечать на эту команду путем перечисления значений или интервала значений параметров, которые он поддерживает. Например, ответ модема класса 1 на командную строку AT+FCLASS=? мог бы быть следующим: 0,1 Этот ответ указывает на то, что модем может быть сконфигурирован как факс-модем класса 1, а также как обычный модем (класс 0). При использовании второго типа командного синтаксиса (идентификация состояния) выдается запрос модему на текущие значения параметра или конфигурационной установки. В этом случае команда выдается в следующем виде: +Fcommand? Например, для определения текущего режима работы модема, можно подать команду AT+FCLASS? Модем, сконфигурированный для работы в качестве факс-модема класса 1, выдал бы следующий ответ: / Трети тип командного синтаксиса используется для того, чтобы установить значение параметра или передать параметр, управляющий работой модема. Команда установки выдается в виде + F puram=val где рагат указывает параметр, который должен быть установлен, a val - желаемое значение этого параметра. В зависимости от команды, val может быгь числом или буквенным выражением. Как для АТ-команд стандартных модемов, так и для команд факс-модемов класса 1 числовой аргумент представляется в виде десятичного числа. По умолчанию командную строку завершает символ возврата каретки. В качестве символа, завершающего строку, также может использоваться точка с запятой <;>. За исключением команд +FTS и +FRS, команда класса 1 должна быть единственной командой в строке. Хотя это ясно указано в стандарте EIA/TIA-578, многие факс-модемы класса 1 допускают несколько факс-команд в одной строке без разделителей. Факс-модемы могут быть запрограммированы на выдачу ответов в буквенной (расширенной словесной) или числовой (краткой) формах. Перед словесным ответом и после него ставится символьная пара возврата каретки и перевода сгроки (<CR><LF>). Числовые ответы выдаются только с завершающим символом возврата каретки. Коды результата ОК (0), CONNECT (1), NO CARRIER (3) и ERROR (4) обязательны. 4.6.3. Команды класса 2 Команды EIA для факс-модемов класса 2.0, по существу, имеют тот же синтаксис, чю и факс-модемы класса 1. Все команды начинаются с символа расширения +F. Три общих формы командного синтаксиса (идентификации возможностей, идентификации состояния и установки) также могут использоваться, когда это необходимо. Для модемов класса 2.0 командный синтаксис, предназначенный для установки значения параметра или передачи параметра, контролирующего работу модема, может поддерживать числовые или строковые значения. Однако, в опичие от команд класса 1. числовые константы для класса 2.0 должны быть заданы в шестнадцатеричь '.i системе. Числовая константа может быть состав-юна только из символов <0> — <9> (ASCII-коды от 30h до 39h) и символов <А> <F> (ASCII-коды от 41h до 46h). Десятичная константа 255, эквивалентная шестнадцатеричной константе FFh, посылалась бы как два символа <F>. Символ h используется в тексте для обозначения шестнадцатеричных чисел и не посылается модему. Строковые константы состоят из последовательности печатных ASCII-сим-волов, перед которой и за которой стоит символ двойной кавычки <">. Нулевая строка константы задается с помощью двух последовательных двойных кавычек <" ">. . В дополнение к величинам, принимающим одно значение, факс-модемы класса 2.0 могут передаваться и возвращать в качестве аргументов целые области значений. Этот синтаксис отличается от синтаксиса для модемов класса 1. В ответ на запрос о возможностях модем возвращает набор значений в виде упорядоченного списка. Этот список начинается с символа левой скобки <(> и заканчивается символом правой скобки <)>. В списке может быть указана одна величина, несколько величин или интервал величин. Для того чтобы обеспечить совместимость с модемами класса 1, ответ модема класса 2.0 на команду AT+FCLASS=? не следует этому соглашению. Несколько величин, содержащихся в упорядоченном списке, разделяются символом запятой <,>. Пример такого ответа <(0, 2, 4, 8)>. Интервал значений выражается как две величины, разделяемые символом переноса <—>. Например, интервал десятичных чисел от 0 до 255 выражался бы в виде <(0—FF)>. Команды для модемов класса 2.0 могут также допускать составные величины, состоящие из серий значений, заключенных в круглые скобки и разделенных запятыми. Вносимые пробелы игнорируются. Следующая строка представляет типичную составную величину: (0,1,2), (0), (0-3). Команды класса 2 выполняются слева направо внутри командной строки. Каждая команда выполняется отдельно, независимо от того, что следует за ней на командной строке. Если все команды выполнены правильно, выдается единственный код результата. Если команда приводит к ошибке или если обнаружена недопустимая команда, выполнение командной строки прекращается и все необработанные команды в командной строке игнорируются. Факс-модемы группы 2 поддерживают следующие ответные коды: О ОК 1 CONNECT 2 RING 3 NO CARRIER 4 ERROR 6 NO DIALTONE 7 BUSY 8 NO ANSWER Разработка спецификации для факс-модемов класса 2.0 проводится подкомитетом TR-29.2 по факсимильным цифровым интерфейсам. В августе .1990 г. этот подкомитет выпустил стандарт SP-2388-A, первый проект которого в конце концов стал стандартом TIA/EIA-592 для факс-модемов класса 2.0. Группа изготовителей микросхем, включая фирмы Sierra, Rockwell и Ехаг, разработала и выпустила свыше миллиона модулей, реализующих стандарт класса 2, описанный в первом проекте стандарта, датированном августом 1990 г. Основываясь на отзывах, полученных о стандарте SP-2388-A, подкомитет решил существенно модифицировать данный документ (например, сообщение об установлении факсимильной связи было изменено с +FCON на +FCO), несмотря на то, что большое число установленных модулей базируется на этом стандарте. Стандарт SP-2388-A был отменен и вместо него выпущен стандарт SP-2388-B. Чтобы учесть широкое распространение модемов класса 2, основанных на стандарте, выпущенном в августе 1990 г., команда CLASS была переопределена для возврата следующих ответов: О Обычный модем 1 EIA/TIA-578 2 SP-2388-A (резервный для производителя) 2.0 TIA/EIA-592 4.6.4. Сеанс факсимильной связи модемов класса 1 Проведение сеанса факсимильной связи для модемов класса 1 требует большого внимания со стороны DTE. Управляющая и передаваемая информация должна быть отформатирована в DTE и затем передана модему. Подобным же образом данные, получаемые модемом, направляются к DTE для декодирования и интерпретации. В табл. 4.6 иллюстрируется хронология сеанса факсимильной связи, когда модем класса 1 инициирует вызов и посылает данные (без ошибок), представляющие одну страницу изображения. Сеанс начинается, когда DTE переводит локальный модем в режим факсимильной связи (факс-режим) и набирает номер удаленного факс-терминала. Локальный модем генерирует сигнал CNG — последовательность посылок тонального сигнала частотой 1100 Гц, длительностью 0,5 с с интервалом 3 с. Удаленный факс-терминал выдает CED-сигнал (идентификационный сигнал вызываемой станции) — тональный сигнал с частотой 2100 Гц в течение 2,6—4 с. Удаленный факс-терминал вырабатывает несущую, используя протокол модуляции V.21 (канал 2, 300 бит/с), и посылает HDLC-флаги. Для использования метода модуляции V.21 неявным образом локальный модем конфигурируется командой AT+FCLASS=1. При получении HDLC-флагов локальный модем возвращает код результата CONNECT к DTE. Далее, локальный модем получает HDLC-кадр от удаленного факса и посылает данные, показанные на рис. 4.4, к DTE. Первый байт этого кадра представляет адресное HDLC-поле и при связи по коммутируемой телефонной сети всегда имеет значение FFh. За полем адреса сразу же следует управляющее HDLC-поле, содержимое которого может принимать одно из двух значений. Если это значение COh, то данный кадр - не последний кадр в данной процедуре. Значение C8h указывает на последний кадр. Заметим, что этот байт передается к DTE с обратным порядком следования разрядов по отношению к описаниям стандарта Т. 30. Таким образом, принимаемому байту 03h (0000001 lb), показанному на рис. 4.4, соответствует байт COh (llOOOOOOb). Таблица 4.6. Сеанс факсимильной связи для модема класса 1 при передаче одной страницы к удаленному факс-терминалу
Рис. 4.4. Структура необязательного NSF-кадра Следующий принимаемый байт — факсимильное управляющее поле (FCF), определяет тип передаваемой информации. Как и раньше, порядок следования разрядов в принимаемом байте нужно изменять на обработанный для декодирования этого поля в соответствии со стандартом Т.30. Величина 20h преобразуется в код 04h, идентифицирующий данные как NSF-кадр (кадр нестандарч HOI о устройства). Формат данных в этом кадре устанавливается каждым изготовше-лем отдельно и может быть использован для указания конкретных требовании или возможностей, которые не отмечены в стандарте Т.30. На рис. 4.4 эти данные опущены, поскольку DTE просто игнорирует данный кадр. За данными кадра к DTE передается 16-разрядная контрольная последовательность кадра (FCS/CRC-16). Эта последовательность посылается в виде двух байтов. Старший байт передается первым, за ним следует младший байт, при этом порядок следования разрядов внутри каждого байта изменяется на обратный. Контрольная последовательность используется только для информационного поля. DTE не нужно проверять ее, так как модем уже пересчитал контрольную последовательность кадра и сравнил ее с той последовательностью, которая получена вместе с кадром. Кадр заканчивается двухбайтной последовательностью <DLE> (10h) <ETX> (03h). В приведенном примере сеанса связи следующим является необязательный CSI-кадр (кадр идентификации вызываемого абонента). DTE считывает его с помощью явной команды AT+FRH=3 (считать HDLC-кадр, используя протокол модуляции V.21, канал 2, 300 бит/с). Этот кадр имеет тот же самый общий формат, что и NSI-кадр. CSI-кадр идентифицируется по значению 02h (передаваемому как 40h к DTE), записанному в факсимильное управляющее поле. В большинстве случаев поле данных этого кадра содержит ASCII-символы, представляющие собой телефонный номер отвечающего факсимильного аппарата. Эти ASCII-символы передаются таким образом, что первым посылается последний символ последовательности, но порядок следования разрядов в каждом байте не изменяется на обратный. Таким образом, если бы идентификационная последовательность вызываемого факс-терминала была определена как "812-235-1212", то DTE получил бы последовательность "2121-532-218". Затем была бы получена контрольная последовательность кадра и <DLE><ETX>-napa. После этого, для того чтобы считать следующий кадр, посылаемый удаленным факс-терминалом, DTE выдает еще одну команду AT+FRH=3. Эточ кадр показан на рис. 4.5. В этом случае за HDLC-байтом адреса со значением FFh следует управляющее HDLC-поле со значением C8h (получаемое DTE как 13h).
Рис. 4.5. Структура обязательного DIS-кадра Это является указанием для DTE, что данный кадр является последним кадром, который удаленная станция намеревалась послать в данной процедуре. Следующий байт факсимильного управляющего поля 01 h (посылаемый к DTE как 80h) указывает, что поступил DIS-кадр. DIS-данные содержат, как минимум, 24 разряда (3 байта) флагов, которые сообщают возможности принимающего факс-терминала. Эта информация используется вызывающим факс-терминалом для определения оптимальных установок параметров сеанса связи. Первый байт DIS-данньгх содержит информацию, имеющую отношение только к факсимильным аппаратам групп 1 и 2. Эта информация может без последствий игнорироваться факсимильным оборудованием группы 3. Следующие 3 байта DIS-данных (CEh B8h OOh) должны быть преобразованы к двоичному виду с последующим изменением порядка следования двоичных разрядов на обратный. Затем эти флаги интерпретируются в соответствии с указаниями стандарта Т. 30. Стандартом Т.30 установлено, что факсимильный DTE, прежде чем начать передачу, после обращения к линии должен выдержать паузу молчания длительностью не менее 200 мс. Такая пауза устанавливается с помощью команды AT+FTS=20. Подаваемая затем команда AT+FTH=3 обеспечивает подготовку локального модема к работе с использованием протокола модуляции V.21 (канала 2, 300 бит/с). После получения сообщения CONNECT DTE посылает свои TSI-данные (данные идентификации передающего абонента) к модему. Этот кадр (и другие кадры) завершается двухсимвольной парой <DLE> <ETX>. DTE не должен рассчитывать и передавать контрольную последовательность кадра, так как эти сервисные функции выполняет модем. TSI-кадр обычно содержит телефонный номер вызывающей станции и может быть использован принимающим модемом для реализации дополнительных услуг (позволяя, например, отказаться от связи с нежелательными абонентами). Затем DTE посылает DCS-данньте (цифровой командный сигнал) для выбора своего варианта параметров сеанса связи, указанных в DIS-кадре. На этом согласование параметров закончено. DTE переключает локальный модем в режим передачи данных со скоростью 9600 бит/с (модуляция по протоколу V.29). Перед этим DTE заставляет модем выдержать паузу молчания длительностью 80 мс, чтобы дать возможность принимающему модему осуществить свою реконфигурацию. Как и для предыдущей паузы, это требование стандарта Т.30 не отражено в стандарте EIA/TIA-578. После того как связь по стандарту V.29 была установлена, локальный модем возвращает код результата CONNECT. Затем DTE посылает TCF-кадр (контрольный кадр). С помощью этого цифрового сигнала проверяется синхронизация, и модемам предоставляется возможность определить пригодность линии связи для передачи данных. Далее DTE обращает линию и ждет получения CFR-кадра (кадра подтверждения готовности к приему данных) от принимающего модема (скорость передачи кадра равна 300 бит/с). Получение этого кадра означает, что вся процедура, предшествующая передаче сообщения, закончилась и можно начинать передачу данных, представляющих изображение. Возможно также, что удаленный модем укажет на некоторую проблему и предложит заново согласовать параметры, например, скорость передачи данных. После окончательного согласования параметров высокоскоростной передачи данных, DTE посылает данные, представляющие изображение, к локальному модему в виде одной непрерывной последовательности с использованием режима управления потоком данных. Метод кодирования, определяемый стандартом Т. 4, дает приемнику некоторую возможность восстановления синхронизации после возникновения ошибки, но конкретные процедуры обнаружения и контроля ошибок устанавливаются специально. После передачи одной страницы изображения DTE посылает ЕОР-кадр (кадр конца процедуры). ЕОР-кадр указывает на конец полной страницы и на отсутствие документов для дальнейшей передачи. После этого DTE ждет подтверждения приема от удаленного факс-модема. В рассматриваемом примере модем подтверждает успешный прием изображения путем посылки MCF-кадра (кадра подтверждения сообщения). После передачи этого кадра удаленный модем передает управление вызывающему модему. DTE выдает команду АТ+ЕТН=3, связывается с принимающим модемом и посылает DCN-кадр (кадр разрыва связи). Команда "повесить трубку" завершает сеанс связи. 4.5.5. Сеанс факсимильной связи модемов класса 2 Проведение сеанса факсимильной связи для факс-модемов класса 1 требует постоянного внимания со стороны контролирующего DTE. Напротив, модемы класса 2.0 сами выполняют протоколы стандарта Т. 30 и некоторые протоколы стандарта Т.4. Как видно из табл. 4.7, сеанс связи существенно упрощается, когда он проводится с использованием модемов класса 2.0. После того как модем сконфигурирован для работы в качестве модема класса 2.0, DTE выдает ATD-команду набора номера удаленного факс-терминала. После установления связи локальный модем посылает сообщение +FCO к DTE. Затем оба модема обмениваются NSF-, CSI- и DSI-кадрами (эту информацию DTE может запрограммировать в модемах заранее, например при начальной установке). Кадр интерпретируется локальным модемом и к DTE посылается результат в виде ASCII-последовательности. Например, отдельные флаги DIS-кадра анализируются и посылаются к DTE в виде серии символьных флагов, разделенных запятыми (эти символьные флаги обозначены в табл. 4.7 каксИз). Далее DTE выдает команду AT+FDT. Эта команда заставляет локальный модем согласовывать с удаленным модемом совместимые параметры связи, включая надежно реализуемую скорость передачи данных. После успешного завершения процедуры согласования параметров локальный модем посылает сообщение CONNECT к DTE, и DTE передает данные изображения к локальному модему в виде одной непрерывной последовательности с использованием режима управления потоком данных. Вслед за данными, представляющими изображение, DTE передает символы <DLE><2Eh>, которые сообщают модему, что была передана последняя страница. На основании этой информации после передачи данных локальный модем посылает ЕОР-кадр (кадр конца страницы) к удаленному модему. Далее локальный модем посылает DCN-кадр (разрыв связи) к удаленному модему и возвращает ответ ОК к DTE. DTE завершает вызов, заставляя модем "повесить" трубку по команде АТНО. Таблица 4.7. Сеанс факсимильной связи для факс-модемов класса 2.0
4.5.6. Альтернативные факс-интерфейсы Ниже кратко рассмотрим четыре альтернативных интерфейсных спецификации для служб факсимильной связи. Некоторые из этих спецификаций предназначены для использования с продукцией нескольких производителей факсимильного оборудования, другие — с продукцией только одного производителя. Спецификация DCA/lntel Спецификация DCA/lntel для коммуникационных прикладных программ (CAS — Communicating applications specification) является совместной разработкой Объединения пользователей цифровых систем связи (DCA) и фирмы Intel. Это общепользовательский стандарт. CAS — это высокоуровневый программный интерфейс для прикладных программ, используемых в системах передачи данных. Разработчики программного обеспечения обращаются к этому интерфейсу с целью добавления коммуникационных функций к своим программным продуктам. С точки зрения программистов интерфейс CAS не зависит от аппаратных и программных средств, используемых для осуществления цифровой связи. Этот интерфейс был разработан главным образом для поддержки коммуникационного сопроцессора фирмы Intel — факс-платы на основе микропроцессора 80188 с объемом памяти 256 Кбайт. Работа интерфейса CAS зависит от наличия администратора (резидентной программы управления), преобразующего запросы прикладной программы. Этот администратор реализуется в виде библиотеки поддержки, постоянно находящейся в памяти DTE. Запросы прикладной программы передаются администратору, который управляет передачей данных без дальнейшего взаимодействия с этой прикладной программой. Интерфейс CAS реализуется в виде набора функции, вызываемых с помощью мультиплексного прерывания 2Fh. Аппаратно-зависимый резидентный администратор должен поставляться изготовителем данного факсимильного устройства или как часть системного программного обеспечения, или. Прежде чем использовать интерфейс CAS, разработчик прикладной программы должен убедиться, что резидентный администратор, совместимый с модемом, пригоден для всех платформ, на которых предполагается реализовать эту прикладную программу. Хотя помимо аппаратной независимости интерфейс CAS обеспечивает и ряд других сервисных функций, он позволяет лишь перераспределить проблемы, возникающие при программировании факсимильного оборудования. FaxBios Система FaxBios была разработана консорциумом компаний, в число которых входили такие, как WordPerfect, Hewlett Packard и Everex. В отличие от интерфейса CAS, система FaxBios предназначена для работы в среде клиент/ сервер. Назначение FaxBios — освободить программиста от использования системно-зависимых кодов при осуществлении доступа к факсимильному сервису с помощью "факс-терминологических" прикладных программ. На PC-платформах система FaxBios реализуется как резидентная программа. Доступ к ее функциям осуществляется с помощью мультиплексного прерывания 2Fh. Был также определен Windows API, поддерживающий динамический обмен данными (DDE). Система FaxBios, также как интерфейс CAS, обеспечивает выполнение большинства высокоуровневых факсимильных сервисных функций, например, диспетчеризацию и передачу файлов. К сожалению, FaxBios не лишена недостатков, а именно, она требует написания необходимого интерфейса с аппаратными средствами. При отсутствии такого интерфейса система FaxBios не способна осуществить доступ к коммуникационным аппаратным средствам. Система команд Sendfax фирмы Sierra Фирма Sierra Semiconductor выпускает множество разнообразных однокристальных модемов, модемных контроллеров, генераторов данных и процессоров, генераторов и процессоров цифровых сигналов. Для поддержки факсимильных операций фирма разработала ряд расширений к набору АТ-команд. Эти расширения названы Senfax. Все команды Sendfax начинаются с префикса #. Многостраничное факсимильное сообщение может быть послано только с помощью одной командной строки. Факс-команды Sendfax AT# были разработаны и использованы в однокристальных модемах фирмы Sierra еще до принятия стандарта EIA-578 и выпуска проекта SP-2388-A. За последние несколько лет было продано огромное количество модемов на чипах, выпускаемых фирмой Sierra. Фирма постоянно модифицирует микропрограммное обеспечение для модемов класса 1 и 2. Однако большое число уже используемых модемов Sendfax требует согласования основных программ управления факсимильным набором команд Sendfax. Высокоуровневый факс-интерфейс фирмы U.S. Robotics Высокоуровневый программный факс-интерфейс (HLF-интерфейс) был разработан фирмой U.S. Robotics для обеспечения программного доступа к своей серии факс-модемов WorldPort. HLF-команды реализуются как фирменные расширения к стандартному набору АТ-команд. Используя HLF-команды, можно осуществить посылку или прием факсимильного сообщения с помощью единственной командной строки AT\V2+F2Ds. Модем WorldPort инициирует и завершает вызовы, управляет временем сканирования и сеансом связи и передает факсимильные данные в соответствии с протоколами стандарта Т.30. Выходящие факсимильные данные могут быть сжаты в соответствии со стандартом Т.4. Модем WorldPort получает также факсимильные данные, обрабатывает их и передает к DTE. Определение высокоуровневый в названии HLF-интерфейса относится к уровню управления факсимильными функциями, обеспечиваемому модемом WorldPort, и не обязательно к уровню программного интерфейса. 4.6. Команды модемов MNP, V.42 и V.42bis Модемы, обеспечивающие аппаратную поддержку коррекции ошибок и сжатия данных, могут работать в следующих режимах передачи данных: Стандартный режим Модем не выполняет аппаратной коррекции ошибок, но обеспечивает буферизацию данных. Буферизация позволяет использовать различные скорости передачи данных между компьютером и модемом, а также между двумя модемами. Для повышения эффективности передачи скорость обмена по интерфейсу DTE—DCE рекомендуется устанавливать выше, чем скорость обмена по канальному интерфейсу (на участке модем-модем). Режим прямой передачи В этом режиме модем работает, как обычный модем, не выполняя буферизацию передаваемых данных и не поддерживая коррекцию ошибок. Режим с коррекцией ошибок и буферизацией Это стандартный режим для связи двух модемов, поддерживающих коррекцию ошибок. При этом желательно, чтобы скорость передачи по интерфейсу DTE — DCE была в 2 — 4 раза выше, чем в канале связи. Если удаленный модем не поддерживает коррекцию ошибок, связь не устанавливается и модем освобождает линию. Режим с коррекцией ошибок и автоматической настройкой Режим используется в случае, когда заранее неизвестно, поддерживает ли удаленный модем протоколы MNP/V.42bis. В начале сеанса связи после автоматического определения режима работы удаленного модема устанавливается один из трех рассмотренных выше режимов. Для управления модемами с аппаратной поддержкой протоколов коррекции ошибок и сжатия передаваемых данных существуют специальные команды, входящие в состав расширенного набора АТ-команд (табл. 4.8). В конкретном модеме набор команд может несколько отличаться от представленного. Более полные сведения содержатся в документации на конкретный модем. Таблица 4.8. Команды модемов MNP, V.42 , V.42bis
Поделитесь этой записью или добавьте в закладки | Полезные публикации |