В настоящее время модемы помимо своей главной задачи – преобразования сигналов, реализуют много других функций, предоставляя дополнительные сервисные удобства пользователям. Такие модемы называют интеллектуальными или Smart-модемами.
Сервисные функции осуществляются благодаря использованию микропроцессоров в схеме общего управления. Используются микропроцессоры общего назначения Intel 8086, 80186, 80286, 80386$; Motorola 68020, 68030 и т.д. Могут использоваться и специализированные контроллеры вместе с сигнальными процессорами, такие как Intel 89024, 89027, 89С024, 89С124.
Для программного управления работой модема со стороны компьютера используется набор специальных команд. Команды воспринимаются модемом, если только он находится в командном режиме. Набор команд у модемов разных фирм свой, но требование совместимости заставило всех производителей выделить базовый набор общий для модемов.
Такими командами стали АТ-команды фирмы Hayes. Более широкий набор рекомендован стандартом V.25bis.
У модемов два режима: командный и режим передачи. Командный режим устанавливается:
- при включении питания
- при первоначальной инициализации модема
- после неудачной попытки соединения с удаленным модемом
- при прерывании передачи с клавиатуры ПК (“положить трубку” (<Alt><H>))
- при выходе из режима передачи данных через клавишу ПК “ESCAPE”.
Установление соединения и посылка модемом сообщения «connect» происходит в двух случаях:
- при удавшейся попытке установления связи с удаленным модемом
- при самотестировании модема.
В режиме передачи модем «прозрачен» для команд. Только «ESCAPE» воспринимается как команда управляющая. После нее модем переходит, не разрывая связи в командный режим. Это дает возможность пользователю изменить параметры обмена или перестроить коммуникационную программу. Возможные состояния интеллект-модема приведены на диаграмме.
Стандарт АТ-команды
АТ – префикс, все команды начинаются с него, кроме «ESCAPE» и А/. Символы одной или группы команд набираются после АТ на клавиатуре ПК, попадают в буфер и нажатием <ENTER> выдаются в канал. При успешном выполнении команды модем отвечает сообщением <ОК>.
Команды можно классифицировать следующим образом:
Примеры команд:
Z – первоначальная установка
- набор № и установление связи
; - возврат в командный режим после №.
- установка режима дуплекса
- полудуплекс
- полнодуплексный режим
- подключение модема к линии
0 – положить трубку
- поднять трубку.
Протоколы исправления ошибок ARQ.
Формат кадра
Кроме флага HDLC – подобные протоколы используют еще два уникальных сигнала:
сигнал аварийного завершения (более 6 единиц, ни меньше 15); сигнал покоя канала – 15 или более единиц подряд.
Последний сигнал обычно применяется при организации полудуплексного режима. Обнаружив его, направление передачи изменяется на противоположное.
Межкадровое время заполняется флагами иногда байтовыми, иногда 0 между флагами общий.
Кодонезависимость протоколов типа HDLC означает возможность источника любым кодом (ASCII, EBCDIC и др.). Это ценное свойство достигается за счет процедуры битстаффинга. На информационных и управляющих позициях при передаче просматривается последовательность бит и, если есть пять единиц подряд, то шестой символ 0 вставляется и далее процедура просмотра продолжается. (см. рис. 1).
Поддержание уникальности флагов, единственное, что требуется.
Одним из основных способов является следующий. К содержимому кадра (полином ), добавляется набор из единиц . Число “1” равно длине поля контрольной суммы (CRC).
Образованное в результате число , где - степень делится на . Находится остаток, и он в инвертированном виде помещается в контрольное поле кадра.
На приеме ,
остаток .
ARQ – Automatic Repeat Request
ОЖ – SAW – Stop And Wait
GBN – Go to back N REJ (ect)
SR – selective reject SREJ
Эффективность передачи:
SAW
, - канальная скорость б/с, - средняя задержка между успешными передачами.
GBN
- задержка кругового распространения, т.е. времени от момента начала передачи кадра до момента получения подтверждения на него. В V.42 подтверждение некоторого № означает подтверждение и всех предыдущих номеров.