Программное обеспечение модемов
1. Основные функции программ для модемов
Набор выполняемых связными программами функций чрезвычайно широк и может значительно отличаться в каждом конкретном случае. Основными функциями программ для модемов являются:
^ конфигурирование связного порта и режимов его взаимодействия с внутренней шиной компьютера (для внутренних модемов);
> конфигурирование модема, то есть установка протокола передачи, формата данных, команд и других параметров;
> управление модемом в процессе установления соединения и при передаче данных, вывод ответов модема и информации о состоянии соединения;
> передача файлов между взаимодействующими компьютерами;
> диалоговый текстовый обмен между пользователями компьютеров (Chat-режим);
> доступ к информационным службам, базам данных;
> выход в Internet;
> удаленный доступ к локальной сети предприятия;
> эмуляция режима Host — компьютера (главной ЭВМ) для ряда удаленных терминалов;
> эмуляция режима терминала удаленного Host-компьютера;
> сохранение принимаемой и передаваемой информации;
> регистрация событий, происходящих в течение сеанса связи;
> автоматизация часто повторяющихся последовательностей действий;
> передача факсимильной информации между компьютерами или компью тером и факсимильным аппаратом;
> организация хранения вспомогательной информации, такой как телефон ные номера, данные о конфигурации модема и др.
Связные программы обеспечивают интерфейс пользователя с модемом, позволяют управлять конфигурацией модема и выполнением ими основных своих функций.
Кроме перечисленных основных функций, иногда возможна реализация протоколов сжатия данных и исправления ошибок.
Специфическими особенностями программ передачи факсимильной информации являются:
> передача данных по расписанию многочисленным адресатам;
^ прием и передача факсимильной информации в фоновом режиме;
> преобразование ряда графических форматов данных в стандартные для факсимильных аппаратов;
> возможность просмотра факсимильной информации.
13.2. Типовые команды связных программ
В большинстве связных программ (в основном для операционных систем типа DOS) для управления их режимами работы наряду с меню используются так называемые Alt-команды. Можно сказать, что сформировался некий стандарт де-факто на такие команды. Однако в конкретной реализации коммуникационной программы возможны некоторые отличия. Рассмотрим типовые Alt-команды на примере программы Procomm Plus.
13.2.1. Команды управления соединением
До соединения:
— выход в телефонный справочник и набор номера.
В процессе соединения:
— передача разрыва;
- очистка экрана;
— сохранение информации, выведенной на экран;
— включение/отключение принтера;
— вывод времени соединения;
— использование клавиш макроопределений;
— включение/выключение записи в файл регистрации соеди нения;
- задание паузы записи в файл регистрации соединения;
- запуск Script-файла;
— повторный вывод сохраненного содержимого экрана;
— переключение режима дуплекс/полудуплекс;
— включение режима диалога (Chat—режима);
— включение Host-режима;
— инициализация модема;
— автоматический ответ на вызов;
— сброс терминала;
- режим записи;
— переход в меню команд программы защиты от ошибок прото кола Kermit;
— пауза экрана;
— переключение режимов "возврат каретки/ возврат каретки с переводом строки" (CR/CRLF).
После соединения:
— отключение от линии;
- выход из программы.
13.2.2. Команды установки конфигурации
— конфигурирование модема;
—
конфигурирование портов;
таблица преобразования;
- распределение функций клавиш клавиатуры.
13.2.3. Команды дополнительных функций
— вызов текстового редактора;
— выход в каталог файлов;
— вывод информации о программе;
— просмотр файла;
— смена каталога;
— использование буфера временного хранения (Clipboard);
— режим монитора;
— < ]> изменение состояния;
— < — > изменение строк;
выход в меню программы.
13.3. Конфигурирование порта
13.3.1. Установка номера порта
Большинство программ позволяют использовать последовательные порты СОМ 1—COM4. Однако программы, ориентированные на компьютеры IBM PS/2, могут использовать СОМ1—СОМ8. Номер порта, устанавливаемый в программе, должен соответствовать реально используемому модемом порту. Рис. 13.1 иллюстрирует меню операционной системы Windows'95, в котором производится установка номера порта.
13.3.2. Скорость передачи
Скорость передачи данных по последовательному порту задается одним из значений: 75, 110, 300, 1200, 2400, 4800, 9600, 19600, 38400, 57600, 115200 Бод. Выбор скорости зависит от типа модема, его максимальной скорости и типа микросхемы UART, используемой в контроллерах последовательного порта модема и компьютера.
Если вы не являетесь счастливым обладателем UART 16550A и не используете программные ускорители типа FOSSIL-драйверов, то скорость передачи порта не может быть выше 19200 Бод.
Рис. 13.1. Установка свойств модема в Windows'95
При использовании модема, поддерживающего протоколы сжатия (V.42bis, MNP5), рекомендуется устанавливать скорость порта несколько большей, чем максимально возможная скорость передачи информации модемом. Например, если модем поддерживает протокол V.34 (28800 бит/с), то необходимо установить скорость порта 38400, 57600, или 115200 Бод.
Часто для более устойчивой работы приложений требуется, чтобы скорость передачи по используемому порту была постоянной и не изменялась в течение сеанса связи, даже несмотря на изменение скорости передачи модемом в канале. Это условие, в частности, относится к программам, использующим в своей работе Fossil-драйверы. Такая "залочка" (lock — замок, запирать) порта, как правило, достигается подачей команды АТ&В1 или явным заданием скорости порта в программе. В Windows'95, характеризующейся общим "отчуждением железа" от пользователя, фиксация скорости порта осуществляется установкой флажка "Only connect at this speed" в поле "Maximum speed" меню General (Control PanelModemsGeneral) (рис. 13.1).
13.3.3. Формат передачи
Формат передаваемых через порт асинхронных знаков задается следующими параметрами:
> числом бит данных (7 или 8);
> числом стоповых бит (1, 1.5 или 2);
> типом проверки (на четность — Even, на нечетность — Odd, без проверки — None, проверочный бит всегда равен "1" — Mark, проверочный бит всегда равен "О" — Space).
Рис. 13.2. Установка формата асинхронного символа в Windows'95
Наиболее широко используется формат символа, включающий в себя 8 бит данных и 1 столовый бит без использования проверки (8N1). Значения соответствующих параметров для данного формата в Windows'95 показаны на рис. 13.2.
Рис. 13.3. Установка адреса порта и номера прерывания в терминальной программе Telix
Рис. 13.4. Установка параметров порта в программе Term95 (NC 5.0)
13.3.4. Адрес порта и номер прерывания
При конфигурировании встроенных модемов задаются адрес порта ввода-вывода и номер линии прерывания. На рис. 13.3 и 13.4 иллюстрируется выполнение этой операции для DOS с помощью программ Telix и Term95 (терминальной программы, включенной в состав оболочки Norton Commander 5.0).
13.4. Использование FOSSIL-драйверов
FOSSIL-драйверы используются для расширения функций BIOS, обслуживающих асинхронный последовательный порт (FOSSIL — аббревиатура названий нескольких коммуникационных программ Fido/Opus/SEAdog Standard Layer). Дополнительно эти драйверы поддерживают ряд функций для работы с клавиатурой, видеоадаптером и системным таймером.
Применение FOSSIL-драйверов позволяет увеличить скорость обмена по последовательному порту до 38400 Бод, в то время как функции BIOS обеспечивают максимальную скорость передачи только 9600 Бод.
Работа FOSSIL-драйверов основана на перехвате прерываний от портов. Драйверы содержат два внутренних буфера (приемника и передатчика), организованных в виде очереди FIFO. В буфер передатчика записываются данные, передаваемые компьютером модему. Драйвер самостоятельно определяет, когда свободен регистр данных СОМ-порта, и записывает в него очередной символ данных. При этом переданный символ удаляется из буфера, и осуществляется передача следующего символа. В буфер приемника драйвер записывает данные, поступающие в компьютер через СОМ-порт. Затем содержимое этого буфера может быть считано прикладной программой при помощи специальной функции драйвера.
Существуют специальные FOSSIL-драйверы, обеспечивающие программную эмуляцию протоколов исправления ошибок. Наиболее распространенными FOSSIL-драйверами являются XOO.SYS (ХОО.СОМ) и BNU.EXE (BNU.COM). В качестве примера рассмотрим установку этих драйверов.
Для запуска драйвера из стартового файла CONFIG.SYS, в нем необходимо записать строку:
device = XOO.SYS Е 2 Т=1024 R=2048,
где Е — отключение заставки, 2 — номер СОМ-порта, Т=1024 — размер буфера для передачи, R=2048 — размер приемного буфера.
При запуске драйвера из командной строки DOS с теми же параметрами необходимо набрать следующую команду:
ХОО.ЕХЕ Е 2 Т=1024 R=2048 Драйвер BNU.EXE запускают из командной строки следующим образом:
BNU.EXE /T:1024 /R:2048 /М-,
где /Т=1024 — размер буфера для передачи, /R=2048 — размер приемного буфера, /М— — отключение заставки.
Рассматриваемые драйверы допускают фиксацию скорости порта, что оказывается полезным при использовании модемов с аппаратным сжатием передаваемых данных. При фиксации порта в команды запуска FOSSIL-драйверов добавятся следующие параметры (порт COM2, скорость фиксации 9200 Бод):
> при запуске драйвера ХОО в CONFIG.SYS:
device = XOO.SYS Е 2 Т=1024 R=2048 В,2,19200 > при запуске драйвера ХОО из командной строки DOS:
ХОО.ЕХЕ Е 2 Т=1024 R=1024 В,2,19200 > при запуске драйвера BNU:
BNU.EXE /R-.1024 /Т:2048 /М- /L1:19200,8N1
Для большинства модемов V.22bis (2400 Бод) с аппаратными протоколами MNP и V.42bis рекомендуется установить скорость порта 9600 Бод, для модемов V.32 (9600 Бод) - 19200 бод, а для модемов V.32bis (14400 Бод) - 19200 и выше. Максимальная скорость в этом случае зависит уже от параметров СОМ-порта.
13.5. Конфигурирование модема
Установки параметров и управление работой модема осуществляется с помощью АТ-команд. Для удобства пользователя современные коммуникационные программы используют заранее подготовленные данные о конфигурации и АТ-командах большого числа известных модемов. Если модем не входит в их число, то приходится выбирать наиболее близкий по характеристикам из списка либо самостоятельно создать строку инициализации, автоответа, отбоя и т.п., пользуясь документацией на модем.
13.5.1. Строка инициализации
Строка инициализации (init string) задает исходный режим работы модема и состоит из ряда АТ-команд. В общем случае таких строк может быть несколько — для различных режимов соединения. Например, одна — для соединения без использования протоколов сжатия данных и исправления ошибок, другая — с использованием таких протоколов. Часто строку инициализации можно сократить, записав необходимые установки в память модема, например, командой AT&W1.
Пример строки инициализации в меню Modem Settings программы Term 95 приведен на рис. 13.5.
В операционной системе Windows'95 строка инициализации в явном виде практически никогда не задается. При инициализации модема, обслуживаемого Windows'95, посылаются команды, соответствующие установкам параметров модема.
Таблица 13.1. Протокол соединения модема
Номер раздела | Содержимое файла ModemLog.txt |
1 | 10-06-1996 20:31:12.94 — Телефакс-модем ZyXEL U-1496xx (E,E+,S,S+), V32b (внешний) in use. 10-06-1996 20:31:13.12 — Modem type: Телефакс-модем ZyXEL U-1496xx (E,E+,S,S+), V32b (внешний) 10-06-1996 20:31:13.12 - Modem Inf path: MDMZYXEL.INF 10-06-1996 20:31:13.12 — Modem Inf section: UodemO 10-06-1996 20:31:13.47 — 19200,8.6,1 10-06-1996 20:31:14.64 — 36400Х6,1 10-06-1996 20:31:14.64 — 36400,N,6,1 |
2 | 10-06-1996 20:31:15.07 — Initializing modem. 10-06-1996 20:31:15.07 — Send: AT &F ЕО Х7 10-06-199620:31:15.26— Recv: OK 10-06-1996 20:31:15.26 — Interpreted response: Ok 10-06-1996 20:31:15.26 — Send: AT 835.1=0 S35.7=1 10-06-1996 20:31:15.29 — Recv: OK 10-06-199620:31:15.29 — Interpreted response: Ok 10-06-1996 20:31:15.29 — Send: AT S46.2°1 10-06-1996 20:31:15.29 — Recv: OK 10-06-199620:31:15.31 — Interpreted response: Ok 10-06-199620:31:15.31 —Send: ATS7-60S50-OL1 M 1 &K3'EO&K4&H3BOS41.4-1 10-06-199620:31:15.32 — Recv: OK 10-06-199620:31:15.32 — Interpreted response: Ok 10-06-19S6 20:31:15.32 — Send: AT&N35LO 10-06-1996 20:31:15.32 — Recv: OK 10-06-1996 20:31:15.32 — Interpreted response: Ok |
3 | 10-08-199620:31:16.33 — Dialing 10-06-1996 20:31:15.33 - Send: ATDP#,####### 10-06-1996 20:31:43.06 — Recv: RINQINe 10-06-1996 20:31:43.06 — Interpreted response: Informative 10-06-1996 20:31:48.69 - Recv: RINQINQ 104)6-1996 20:31:48.69 — Interpreted response: Informative 10-06-1996 20:31:57.64 — Hanging up the modem. 10-06-1996 20:31:57.64 — Send: 10-06-1996 20:31:56.26 — Recv: NO CARRIER 10-06-1996 20:31:56.26 — Interpreted response: No Carrier » 10-06-1996 20:31:56.26—Send: ATHO 10-06-1996 20:31:56.46 — Recv: OK 10-06-1996 20:31:56.46 — Interpreted response: Ok |
4 | 10-06-1996 20:31:58.85 — Session Statistics: 10-06-1996 20:31:58.85 — Reads : 72 bytes 10-06-1996 20:31:58.85 — Writes: 109 bytes 10-06-1996 20:31:58.85 — Телефакс-модем ZyXEL U-1496xx (E,E+,S,S+), V32b (внешний) closed. |
Опытный пользователь может добавить свои АТ-команды в строке ввода "Extra settings" меню "Advanced Connection Settings" (рис. 13.6). В этом случае установленные пользователем команды будут посланы модему в последнюю очередь непосредственно перед набором номера и установлением соединения.
В табл. 13.1 приведен протокол (неудачного) соединения для конфигурации модема, соответствующей установкам параметров на рис. 13.1, 13.2, и 13.6. При установленном флажке "Record a log file" протокол записывается в файл ..WindowsModemLog.txt (рис. 13.6).
В табл. 13.1 можно выделить несколько разделов. Первый раздел содержит основные данные о модеме и параметрах порта. Второй — протокол инициализации модема. Инициализация происходит путем передачи модему нескольких наборов АТ-команд и получения от него ответов. Последними посылаются команды, набранные пользователем в строке "Extra settings" меню "Advanced Connection Settings" (в табл. 13.1 выделено жирным курсивом). После этого начинается набор номера. Протокол набора номера записывается в разделе 3. Протокол соединения одиночного вызова завершается разделом статистики (раздел 4).