ИНТЕЛЛЕКТУАЛЬНЫЕ ВОЗМОЖНОСТИ
МОДЕМОВВ современном понимании понятие модема значительно шире, чем просто совокупность модулятора и демодулятора. В настоящее время модемы являются интеллектуальными устройствами, позволяющими помимо своей главной задачи — преобразования передаваемых сигналов, реализовать множество других функций, предоставляя дополнительные удобства пользователям. Такие модемы называют интеллектуальными или 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. Основные АТ-команды
Команда |
Назначение АТ-команды |
AT |
Префикс командной строки. |
In |
Запрос результирующего кода и проверочной суммы ROM: 10 — модем посылает трехцифровой результирующий код; 11 — модем выдает проверочную сумму программы ROM: 12 — модем выдает <0k> или состояние ошибки проверочной суммы программы 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 — полнодуплексный режим. |
Команда |
Назначение АТ-команды |
Нп |
Подключение модема к линии: НО — "положить трубку" (HUNGE UP или ON HOOK); Н1 — "поднять трубку" (OFF HOOK). |
Ln |
Управление громкостью встроенного динамика: LO — слабая; L1 — выше слабой; L2 — средняя; L3 — высокая. |
Мп |
Управление динамиком: МО — выключен; М1 — включен в процессе вызова или ответа (по умолчанию); М2 — всегда включен; МЗ — отключается после получения несущего сигнала при наборе номера. |
On |
Управление режимом работы модема: 00 — переводит модем в режим передачи; 01 — переводит модем в режим передачи и переустанавливает протоколы связи и параметры эквалайзера. |
Qn |
Выдача сообщений модемом: 00 — разрешает выдачу сообщений модемом (по умолчанию); 01 — запрещает выдачу сообщений. |
Sn-x |
Команды записи в S-регистры: п — номер S-регистра; х — значение, записываемое в регистр. |
Sn? |
Чтение регистра — считывает содержимое S-регистра с номером п. |
Vn |
Выбор кодов для сообщений модема: VO — используются цифры; VI — используются слова. |
Xn |
Выбор набора диагностических сообщений, управление определением сигнала "занято" и наличием гудков в линии. Подробная информация о ХО — Х4 приведена в табл. 4.3. Х5.Х6 — переключение голос/данные: Х5 — переход из режима голосовой связи в режим передачи данных; Х6 — переход из режима передачи данных в режим передачи голоса пользователя. |
Yn |
Дистанционное отключение сеанса связи: YO — не отключатся; Y1 — отключатся после задержки в 1,6 с. |
Z |
Первоначальная установка, приводит к следующим событиям: — модем "кладет трубку"; — содержимое всех S-регистров устанавливается в состояние "по умолчанию"; — очищается командный буфер; — считывается состояние конфигурационных переключателей или файла конфигурации из энергонезависимой памяти; — посылается сообщение <0к>. |
Набор АТ-команд конкретного модема может отличаться от наборов команд модемов других производителей. Полное описание команд должно содержаться в руководстве на модем.
Таблица 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-регистры интеллектуальных модемов
Регистр |
Пределы изменения величин |
Значение по умолчанию |
Функция |
SO |
0—255 |
1 |
Число гудков для автоответа |
S1 |
0—255 |
0 |
Счетчик приходящих гудков |
S2 |
0—127 (ASCII) |
43 |
ASCII код ESCAPE символа, обычно символа + |
S3 |
0—127 (ASCII) |
13 |
ASCII код ENTER (<CR>) символа |
S4 |
0—127 (ASCII) |
10 |
ASCII код LINEFEED (<LF>) символа |
S5 |
0—32, 127 (ASCII) |
8 |
ASCII код BACKSPACE (<BS>) символа |
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 — запрещен. |
|
Пределы |
|
Регистр |
изменения |
Функция |
|
величин |
|
S14 |
0—255 |
Бит 3 — управление формой ответа модема: |
|
|
=0 — ответ в сокращенной (цифровой) форме; |
|
|
=1 — ответ в виде слов на английском языке. |
|
|
Бит 4 — не используется. |
|
|
Бит 5 — система набора номера: |
|
|
=0 — тоновый набор (TONE); |
|
|
=1 — импульсный набор (PULSE). |
|
|
Бит 6 — не используется. |
|
|
Бит 7 — текущее состояние модема: |
|
|
=0 — модем находится в состоянии ответа; |
|
|
=1 — модем в состоянии вызова другого модема. |
S15 |
|
Не используется |
S16 |
0-255 |
Параметры теста модема. |
|
|
Бит 0 — локальный аналоговый циклический тест: |
|
|
=0 — разрешен; |
|
|
=1—запрещен |
|
|
Бит 1 — не используется |
|
|
Бит 2 — локальный цифровой циклический тест: |
|
|
=0 — разрешен; |
|
|
=1 — запрещен. |
|
|
Бит 3 — текущее состояние теста: |
|
|
•О — нециклический; |
|
|
°1 — циклический. |
|
|
Бит 4 — запуск удаленного циклического теста: |
|
|
=0 — разрешен; |
|
|
“=1 — запрещен. |
S16 |
0—255 |
Бит 5 — запуск удаленного цифрового циклического теста |
|
|
с подсчетом числа ошибок |
|
|
=0 — разрешен; |
|
|
”1 — запрещен. |
|
|
Бит 6 — запуск локального аналогового циклического теста |
|
|
с самопроверкой: |
|
|
"0 — разрешен; |
|
|
”1 — запрещен. |
|
|
Бит 7 — не используется. |
S17 |
|
Не используется. |
S18 |
0—255 |
Задает длительность теста модема, с. |
S19 |
|
Не используется. |
|
Пределы |
|
Регистр |
изменения |
Функция |
|
величин |
|
S20 |
|
Не используется. |
S21 |
0—255 |
Параметры модема. |
|
|
Бит 0 — тип используемого разъема для телефонной линии: |
|
|
=0 — RJ-11/ RJ-41S/ RJ-45S; |
|
|
=1 —RJ-12/RJ-13. |
|
|
Бит 1 — не используется. |
|
|
Бит 2 — управление сигналами RTS/CTS: |
|
|
”0 — RTS следует за CTS; |
|
|
=1 — CTS всегда включен. |
|
|
Бит 3,4 — управление сигналом DTR: |
|
|
=•0,0 — сигнал DRT игнорируется; |
|
|
=0,1 — при выключении DTR модем переходит в |
|
|
командный режим; |
|
|
=1,0 — при выключении DTR модем "опускает" трубку; |
|
|
=1,1 — при выключении DTR модем инициализируется. |
|
|
Бит 5 — управление сигналом DCD: |
|
|
0 — DCD всегда включен; |
|
|
1 — DCD указывает на наличие несущей. |
|
|
Бит 6 — управление сигналом DSR: |
|
|
0 — DSR всегда включен; |
|
|
1 — DSR указывает на "поднятую" трубку и |
|
|
нахождение модема в информационном режиме. |
|
|
Бит 7 — управление режимом разрывом соединения по |
|
|
таймауту: |
|
|
=0 — запрещено; |
|
|
1 — разрешено. |
S22 |
0—255 |
Управление выбором набора ответов модема и динамиком. |
|
|
Биты 0,1 — управление уровнем громкости звука динамика: |
|
|
"0,0 — низкий уровень; |
|
|
”0,1 — низкий уровень; |
|
|
=1,0 — средний уровень; |
|
|
=1,1— высокий уровень. |
|
|
Биты 2,3 — управление динамиком: |
|
|
==0,0 — динамик отключен; |
|
|
“=0,1 — динамик отключен до момента обнаружения |
|
|
несущей: |
|
|
"1,0 — динамик всегда включен: |
|
|
”1,1 — динамик включается после набора номера до |
|
|
определения несущей. |
Регистр |
Пределы изменения величин |
Функция |
S22 |
0—255 |
Биты 4,5,6 — управление набором ответов модема: =0,0,0 — набор соответствует ХО; "1,0,0 — набор соответствует Х1; ”1,0,1 — набор соответствует Х2; =1,1,0 — набор соответствует ХЗ; =1,1,1 — набор соответствует Х4. Бит 7 — управление скоростью набора номера при тональной системе вызова: =0 — американский стандарт; =1 — европейский стандарт. |
S23 |
0—255 |
Параметры модема. Бит 1 — управление удаленным тестированием модема: =0 — тестирование запрещено; -1 — тестирование разрешено. Биты 2,3 — отражает скорость передачи данных модемом: =0,0 — скорость 0-300 бит/с; "0,1 — не используется; =1,0 — скорость 1200 бит/с; =1,1 — скорость 2400 бит/с. Бит 3 — не используется. Биты 4,5 — управление битом паритета: =0,0 — проверка на четность; =0,1 — бит паритета всегда равен 1; =1,0 — проверка на нечетность; =1,1— бит паритета всегда равен 0. |
S23 |
0—255 |
Биты 6,7 — установка частоты защитного сигнала: =0,0 — сигнал не генерируется; =0,1 — сигнал частотой 550 Гц; =1,0 — сигнал частотой 1800 Гц; =1,1 — не используется. |
S24 |
|
Не используется. |
S25 |
0—255 |
Задает время задержки сигнала DTR в сотых долях секунды. |
S26 |
|
Задает время задержки между сигналами RTS и CTS в сотых долях секунды. |
S27 |
0—255 |
Параметры режима передачи данных. Биты 0,1 — управление режимом передачи: "О.О — асинхронный; =0,1 — синхронный; -1,0 — синхронный с набором номера из памяти; |
Регистр |
Пределы изменения величин |
Функция |
S27 |
0—255' |
-1,1 — синхронный с набором номера АТ-командой. |
|
|
Бит 2 — работа по коммутируемой или арендуемой линии: |
|
|
-0 — коммутируемая линия; |
|
|
-1 — выделенная линия. |
|
|
Бит 3 — не используется. |
|
|
Биты 4,5 — определяет источник синхронизации. |
|
|
=0,0 — модем пользователя; |
|
|
-0,1 — удаленный компьютер; |
|
|
=1,0 — выделение из принимаемой несущей; |
|
|
-1,1 — не используется. |
|
|
Бит 6 — выбор протокола обмена: |
|
|
=0 — ITU-TV.22blS/V.22; |
|
|
=1 — Bell. |
|
|
Бит 7 — не используется. |
Комментарии:
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 при передаче одной страницы к удаленному факс-терминалу
DTE |
Локальный модем (передающий) |
Удаленный факс-терминал (принимающий) |
AT+FCLASS-1-> |
<--ОК" |
|
ATDs—> |
Набор номера |
|
|
|
Ответ |
|
CNQ—> |
|
|
|
<—CED |
|
|
<— Несущая V.21 |
|
|
<— HDLC—флаги |
|
<-"CONNECT" |
|
|
|
<— NSF—кадр |
|
<— NSF—данные |
|
|
<— <DLExETX> |
|
|
<— "OK" |
|
AT+FRH-3—> |
|
|
|
<— "CONNECT" |
|
|
|
<— CSI—кадр |
|
<— CSI—данные |
|
|
<— <DLExETX> |
|
|
<— "OK" |
|
AT+FRH-3—> |
|
|
|
<— "CONNECT" |
|
|
|
<— DIS—кадр |
|
|
Сброс несущей |
|
<— DIS— данные |
|
|
<— <DLExETX> |
|
|
<- "OK" |
|
AT+FRH-3—> |
|
|
|
<— "NO CARRIER" |
|
AT+FTS-20 -> |
(200 MC молчания) |
|
|
|
|
AT+FRH-3-> |
Несущая V.21 —> |
|
|
<— "CONNECT" |
|
TSI—данные —> |
|
|
<DLExETX> —> |
TSI—кадр —> |
|
|
<— "CONNECT" |
|
DCS—данные —> |
|
|
<DLExETX> —> |
DCS—кадр —> |
|
|
Сброс несущей |
|
|
<— "OK" |
|
AT+FTS-8 —> |
Ждать 80 мс |
|
AT+FTM”96 -> |
Несущая V.29 |
|
|
<— "CONNECT" |
|
TCP—данные —> |
TCF—кадр —> |
|
<DLExETX> |
Сброс несущей |
|
|
<— "OK" |
|
|
|
<— Несущая V.21 |
AT+FRH°3 —> |
|
|
|
<— "CONNECT" |
|
|
|
<— CFR—кадр |
|
|
Сброс несущей |
|
<— CFR—данные |
|
|
<— <DLExETX> |
|
|
<— "OK" |
|
AT+FRH=3 —> |
|
|
|
<— "NO CARRIER" |
|
AT+FTS-20 —> |
(200 MC молчания) |
|
AT+FTM=96 —> |
Несущая V.29 |
|
|
<— "CONNECT" |
|
<изображение>—> |
|
|
<DLExETX>—> |
<изображение> —> |
|
|
Сброс несущей |
|
|
<— "OK" |
|
AT+FTS=8-> |
Ждать 80 мс |
|
|
|
|
AT+FTS=3 —> |
Несущая V.21 —> |
|
|
<— "CONNECT" |
|
EOP—данные —> |
|
|
<DLExETX> —> |
EOP—кадр—> |
|
|
Сброс несущей |
|
|
<— "OK" |
|
|
|
<— Несущая V.21 |
AT+FRH=3 —> |
|
|
|
<— "CONNECT" |
|
|
|
<— MCF—кадр |
|
|
Сброс несущей |
|
<— MCF—данные |
|
|
<— <DLExETX> |
|
|
<—"OK" |
|
AT+FRH=3 —> |
|
|
|
<— "NO CARRIER" |
|
AT+FTS°20 —> |
(200 мс молчания) |
|
AT+FTH-3 —> |
Несущая V.21 —> |
|
|
<—"CONNECT" |
|
DCN—данные —> |
DCN—кадр —> |
|
|
Сброс несущей |
|
|
<-"ОК" |
|
ATHO |
Повесить трубку |
|
Рис. 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
DTE |
Локальный модем |
Удаленный факс-терминал |
|
|
|
AT+FCLASS=2.0 —> |
|
|
|
<— "ОК" |
|
|
|
|
ATDs —> |
Набор номера |
|
|
|
Ответ |
|
CNG—> |
|
|
|
<—СЕО |
|
<- "+FCO" |
<— HDL.C— флаги |
|
<— "+FNF :nsf |
<— NSF—кадр |
|
<— "+FCI :cs/' |
<— CSI—кадр |
|
<- "+FIS :ofe" |
<— DIS—кадр |
|
<— "OK" |
|
|
|
|
AT+FDT-> |
TSI—кадр —> |
|
|
DCS—кадр —> |
|
|
TCP—кадр —> |
|
|
|
|
|
<— "+FCS :cfr" |
<— CFR—кадр |
|
<— "CONNECT" |
|
|
|
|
<изображение> —> |
<изображение> —> |
|
<DLEx2Eh> —> |
ЕОР—кадр —> |
|
|
DCN—кадр —> |
<— MCF—кадр |
|
<-"OK" |
|
|
|
|
АТНО —> |
Повесить трубку |
Повесить трубку |
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
Команда |
|
Назначение АТ-комаиды |
\Ап |
Выбор |
размера блоков кадров протокола MNP: |
|
\АО— |
64 байт; |
|
\А1 — |
128 байт: |
|
\А2— |
192 байт; |
|
\АЗ— |
256 байт (по умолчанию). |
Команда |
Назначение АТ-команды |
\Вп |
Передача сигнала прерывания. Длительность сигнала прерывания определяется параметром п (п°1 ..9) в десятых долях секунды. |
%Сп |
Управление сжатием данных: %СО — запрещает сжатие данных (по умолчанию); %С1 — разрешает сжатие данных в соответствии с рекомендацией MNP; %С2 — разрешает сжатие данных в соответствии с рекомендацией V.42bls; %СЗ — разрешает сжатие данных в соответствии с рекомендацией V.42bls и MNP. |
%Еп |
Контроль качества связи: %ЕО — запрещает контроль качества связи; %Е1 — разрешает выполнение контроля качества связи и соответствующую перенастройку модема. |
\Gn |
Управление протоколом XON/XOFF: \GO — отмена использования протокола XON/XOFF (по умолчанию); \Q1 — установка протокола XON/XOFF. |
\Jn |
Управление скоростью передачи данных: \JO — разрешает использование различных скоростей передачи данных в канале связи и между модемом и компьютером; \J1— запрещает использование различных скоростей передачи данных в канале связи и между модемом и компьютером. |
. \Kn |
Определение действий модема после получения им сигнала BREAK от компьютера или удаленного модема. Вид команд \Кп и реакции на них зависит от типа модема и его текущего режима работы. Подробную информацию о команде \Кп следует искать в документации на модем. |
\Ln |
Установка потокового или блочного метода обмена данными при соединении в режиме MNP: \LO — выбор потокового метода обмена данными; \L1 — выбор блочного метода обмена данными. |
\Nn |
Выбор режима обмена данными: \NO — установка стандартного режима с буферизацией; \N1 — режим прямой передачи; \N2 — режим передачи с коррекцией ошибок и с буферизацией; \N3 — режим передачи с коррекцией ошибок и автоматической настройкой на удаленный модем; \N4 — выбор протокола коррекции ошибок LAPM (V.42); \N5 — выбоо поотокола коорекции ошибок MNP. |