Иван Синелобов
В этом тексте описывается, как правильно настроить модем и
коммуникационный порт компьютера (COM-порт), если модем аппаратно реализует
протоколы коррекции/сжатия (MNP4/MNP5, v.42/v.42bis).
- Алгоритм коррекции/сжатия
- Lock Port
- Настройка модема
- Настройка программ
- Настройка программы эмуляции терминала (Telemate, Telix и т.д.)
- Настройка FrontDoor 2.02NC
- Настройка FOSSIL'a (BNU, X00)
- Настройка FrontDoor
- Резюме
Алгоритм коррекции/сжатия
Детальное описание протоколов коррекции/сжатия можно найти в
соответствующих описаниях, а сейчас я попытаюсь самым приблизительным образом
описать, что же это такое.
В данный момент для нас в этих протоколах существенно то, что
при передаче информации с использованием протокола коррекции (MNP4, v.42)
происходит обрезание 10 бит, полученных из компьютера, до 8-ми информационных
(удаляются стартовый и стоповый биты) (10 бит = старт_бит + 8 информационных +
стоп_бит - см. Асинхронный протокол RS232). И наоборот, при получении из линии
8-ми информационных бит модем их преобразует в 10 и передает в компьютер. Таким
образом по линии идет информации меньше, чем модем получил из компьютера. Но это
еще не все. При использовании протокола сжатия (MNP5, v.42bis) происходит еще и
уменьшение объема полезной информации, так что от тех 10-ти бит, что модем
получил от компьютера, в линию (и на удаленный модем) попадет от них только
часть...
А теперь посмотрим, что из-за этого происходит... Пусть наш
модем работает со скоростью 2400, что значит, что за одну секунду по линии
передается 2400 бит (2400 bps - bit per second). Получив 2400 бит СЖАТЫХ данных
модем их распаковывает и передает в компьютер... Но после распаковки данных
стало БОЛЬШЕ и передавать в компьютер их надо быстрее, чем на скорости 2400 bps,
чтобы успеть принять следующие данные! Поэтому скорость общения модема с
компьютером для 2400-модемов должна составлять 9600 или 4800 bps. Но чтобы все
правильно работало, нужно зафиксировать модем и программу на этой скорости, т.е.
сделать Lock Port...
Lock Port
Чтобы "залочить" порт нужно произвести настройку
модема и программы. Примеры настройки коммуникационных программ я буду давать
для FrontDoor 2.02NC и для Telemate 3.02. Примеры настройки модема - для
Datatronics Discovery 2400CM - этот модем управляется набором команд Hayes
(команды начинаются с AT) и аппаратно реализует протокол MNP5. Не переживайте,
если у Вас другой модем - набор команд примерно одинаков... Главное, чтобы он
умел аппаратно реализовать один из протоколов коррекции/сжатия.
Скорость, на которой надо зафиксировать порт для 2400-модема
обычно 9600, но если модем не будет откликаться на этой скорости, то нормально
поставить и 4800. Если и теперь модем не откликается, то либо у Вас модем без
коррекции/сжатия либо Вы его не подключили в сеть...
Настройка модема Основное:
- AT\J0
- Disable baud rate adjust - если сказать AT\J1, то модем после соединения с
другим модемом перепрограммирует коммуникационный порт на ту скорость, на какой
произошло соединение. AT\J0 запрещает это.
- AT\G1
- Enable modem port flow control - поскольку модем после отбрасывания
старт/стопных бит начинает работать в синхронном режиме (биты передаются подряд
без промежутков), то необходим механизм управления этим потоком - на случай,
если необходимо остановить или продолжить передачу. Данной командой мы разрешаем
управлять потоком данных.
- AT\Q3
- Bi-directional hardware flow control - существует несколько способов
управления потоком данных между модемами. Данной командой мы выбрали один из них
- еще он часто называется CTS/RTS modem flow control, т.к. передача по линии
управляется сигналами коммуникационного порта CTS и RTS.
Не забудьте также:
- AT&C1
- Track CD - следить за состоянием соединения и при потере соединения сообщать
компьютеру
- AT&D2
- Hang up and assume command state when DTR off - при отключении сигнала DTR
надо повесить телефонную трубку и перейти в состояние ожидания команд
- AT\E0
- Disable data echo - не знаю, кому надо data echo, но лучше подстраховаться и
выключить
- AT\N3
- Set operating mode to auto-reliable - разрешить MNP4. Для v.42-модемов
бывает и AT\N6 - я так понимаю, что в данном случае чем больше, тем лучше :-)
- AT%C1
- Enable compression - разрешить MNP5 (сжатие данных)
Есть вероятность, что среди оставшихся команд тоже есть
полезные для Вас, т.ч. почитайте книжечку о Вашем модеме внимательно (если она у
Вас есть).
Настройка программ Я надеюсь, что сумел хоть
что-то прояснить, поэтому продолжу.
Настройка программы эмуляции терминала (Telemate, Telix и
т.д.) Для Telemate надо в меню настройки (Alt-O) найти и установить: Auto Baud Detect отключить
Flow Control RTS/CTS
Baud rate 9600
Parity None
Data 8
Stop 1 Для Telix'a - что-то похожее...
Настройка FrontDoor 2.02NC Поскольку FrontDoor
работает с портом через FOSSIL-драйвер, настраивать надо их обоих...
Настройка FOSSIL'a (BNU, X00) Для BNU версии 1.7 надо дать
следующую командную строку: bnu.com /m- /t=256 /r=4096 /l0=9600,8n1
Не забудьте, что BNU отсчитывает порты от нуля, т.е. если у Вас
модем установлен на 3-й порт, то писать надо /l2=.... Для X00: x00.exe B,0,9600 E NOFIFO NOPOST T=256 R=8192
Настройка FrontDoor А вот это - очень просто! Запустите
FDSETUP и в меню Modem, Hardware укажите: Maximum baud rate9600
Lock port Yes
Резюме
Ну вот. Теперь, если я все правильно объяснил и Вы меня
правильно поняли и смогли проделать все, что я насоветовал - коммуникационный
порт у Вас настроен правильно и не будет мешать передаче.
Если у Вашего модема нет таких команд, как я написал, то
попробуйте в Вашем описании модема найти что-нибудь похожее по звучанию или по
смыслу.
Если же вы почему-то (почему?) пользуетесь другими
коммуникационными программами, а не Telemate или FrontDoor, то если Вы в Вашей
любимой программе не найдете установок, аналогичных описанных - выбросите Вы эту
программу...
В заключении хочу напомнить, что скорость передачи данных,
сжатых с помощью ARJ, на правильно настроенном 2400-модеме должна быть около 250
cps (characters per second - байт в секунду).
Литература по модемам
|