В приведенном примере сеанса связи следующим является необязательный 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.