Как правильно использовать модем, реализующий протоколы коррекции/сжатия (MNP4/MNP5, v.42/v.42bis)
В этом тексте описывается, как правильно настроить модем и
коммуникационный порт компьютера (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. Если и теперь модем не
откликается, то либо у Вас модем без коррекции/сжатия либо Вы
его не подключили в сеть...
Настройка модема
Основное:
ATJ0
Disable baud rate adjust - если сказать ATJ1, то модем
после соединения с другим модемом перепрограммирует
коммуникационный порт на ту скорость, на какой произошло
соединение. ATJ0 запрещает это.
ATG1
Enable modem port flow control - поскольку модем после
отбрасывания старт/стопных бит начинает работать в
синхронном режиме (биты передаются подряд без
промежутков), то необходим механизм управления этим
потоком - на случай, если необходимо остановить или
продолжить передачу. Данной командой мы разрешаем
управлять потоком данных.
ATQ3
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 надо повесить телефонную трубку и
перейти в состояние ожидания команд
ATE0
Disable data echo - не знаю, кому надо data echo, но
лучше подстраховаться и выключить
ATN3
Set operating mode to auto-reliable - разрешить MNP4.
Для v.42-модемов бывает и ATN6 - я так понимаю, что в
данном случае чем больше, тем лучше :-)
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 - байт в
секунду).
Хорошей Вам связи!
Иван Синелобов,
Night Director BBS, 2:5020/104@fidonet.org
|