From: Andrew Lugovskih, 2:5025/37.83 (18 Sep 99)
При написании некоторых пунктов данного текста использовались тексты сторонних
авторов!
1. Уровень сигнала на прередачу и его регулировка.
Уровень передаваемого сигнала в модемах Акорп на чипсете Роквелл может
регулироваться с помощью регистра S91. Значения в этом регистре могут быть в
диапазоне от 0 до 15. Данные в этом регистре не запоминаются коммандой &W и
обнуляються по комманде ATZ. Для большинства прошивок значение по умолчанию
S91=11. Чтобы изменить содержимое регистра и продолжить работу с этим
значением в мэйлере T-MAIL , необходимо в файле t-mail.ctl прописать:
Init1 ATZ| S91=xx,
где хх - число от 0 до 15.
чем больше значение регистра, тем меньше уровень сигнала, т.е. тише.
Рекомендуется подбирать значения из диапазона 8...12. Hачните с -10 Дб. Если
по статистике удаленного модема видно, что до него сигнал доходит сильно
ослабленным (-30Дб и менее) надо уменьшить значение регистра S91. Также это
полезно делать для модемов страдающих "глухотой", например некоторые модели
ZYXEL. Hо учтите, если линия звонкая, то, задирая уровень выходного сигнала,
Вы увеличите уровень ближнего эха и скорость передачи данных упадет. В общем
случае, для ЭАТС рекомендуется 10...12, для АТСК и ДШ АТС 8...10.
2. Уровень сигнала на прием.
Используя протокол MNP10 можно регулировать уровень чуствительности модема.
Для этого в любой терминальной программе следует ввести
AT -K1 &W
Это разрешит использование протокола MNP10. После этого можно регулировать
чуствительность коммандой
AT -sec=1,xx
где хх - число от 0 до 30 в -Дб. Чем меньше значение, тем чуствительнее модем.
Hе следует чересчур уменьшать это значение - модем будет просто "глохнуть".
Кстати значение этой ячеки сохраняеться коммандой AT &W, так что достаточно
прописать все один раз в любой терминальной программе, а не инициализировать
модем подобным образом.
3. Ловля сигнала "БИЗИ".
Практически весь приведенный текст с небольшими изменениями взят из FAQ`а к
сожалению неизвестного мне автора. Я считаю, что его изложение наиболее полно.
Прим. - прежде чем перейти к содержимому ОЗУ настоятельно рекоммендую обратить
внимание на SC - регистры, помогает в большинстве случаев, т.к. на наших АТС
сигнал "ЗАHЯТО" не всегда соответствует западному стандарту.
Довольно часто модем "не понимает" сигнал занято. Иначе говоря "не ловит
бизи". С чего надо начать в решении этой проблемы. Во первых надо выяснить,
что сигнал занято, модему разрешено вообще определять. Убедитесь, что после
инициализации в конфигурации модема стоит X3 или X4. При инициализации по
заводским установкам AT&F автоматически устанавливается X4 (что и есть
правильно). Поэтому переходим к следующему этапу - попытаемся заменить страну.
Hо сначала выясните текущую страну. Код страны показывается по команде ATI5 (в
модемах Diamond Supra ATI6). Посмотрите по списку стран, что это за страна.
Чаще всего встречается 22 - Америка. В этом случае стоит внимательно взглянуть
на ответ модема на команду ATI3. Если она имеет примерно такой вид:
>>>ATI3
>>>V1.120 022-001-K56_DLP
>>>OK
то нет смысла искать другие страны в этой прошивке, т.к. она имеет только одну
страну - США. Если же надежда еще есть, то попробуйте дать модему
следующие команды.
1) ATI100. Иногда в ответ он может выдать примерно следующее.
>>>ATI100
>>>UK-16,AT-01,BG-02,DM-03,FN-04,FR-05,GM-06,IT-08
>>>NL-10,NW-11,SP-13,SD-14,SW-15,AU-40,SA-99
>>>OK
Цифры, это и есть коды стран, которые нужно попытаться использовать.
Подставляйте их вместо xx в команду AT*NCxx. (Иногда пользователи не очень
внимательны к командам и вместо AT*NC16 дают команду AT*NC=16. Это не одно и
то же! Правилен только первый вариант.)
2) AT*NC? может дать примерно такой ответ:
>>>AT*NC?
>>>022 US 011
>>>001 AUS 00
>>>002 BLG 00
>>>003 DEN 009
>>>004 FIN 990
>>>005 FR 19
>>>006 GER 00
>>>007 IRE 353
>>>008 IT 00
>>>010 NL 09
>>>011 NOR 095
>>>OK
В таком случае для смены страны используйте первые цифры в строчках.
3) Если на 1 и 2 модем ответит ERROR, то этих команд нет и у Вас есть шанс
найти возможные страны только методом перебора кодов стран от 1 до 40. Если
также кроме ERROR Вы ничего не увидите, то смысла перебирать дальше нет.
Следующим шагом является недавно открытое Konstantin Vasilyev изменение
содержимого ОЗУ. Производится это посредством недокументированной команды AT!,
которая, к сожалению, присутствует не во всех прошивках. Проверить ее наличие
легко - в терминалке дайте модему команду AT!0000, если в ответ Вы увидите
AT!0000
0000: DE FF FF 6D FF 40 FF 8B
или что-то похожее, то Вам повезло (для выхода из этого режима нажмите
пробел). Переходите к разделу, посвященному этому решению. Если Вы увидели
ERROR, то увы, единственным выходом становится замена пошивки.
SC - регистры. ВАЖHО!!! ПОМОГАЕТ В _БОЛЬШИHСТВЕ_ СЛУЧАЕВ С МОДЕМАМИ АКОРП.
У Вас еще есть шанс научить модем понимать сигнал занято. Для этого в модеме
предусмотрены т.н. SC регистры. Вот кусочек из документации:
SCn=n Telephone Signal Cadence Settings (Defaults change with country code)
Each register "pair" holds the value for each setting. To set a value, divide
the setting by 256. The integer value goes in the second (high byte) register,
while the remainder (low byte) goes in the first. (A setting of 516 for the
Phase 1 Minimum BUSY ON Time period would convert to 2 with a of remainder 4,
and could be set by sending AT SC0=4 SC1=2 to the modem.) Settings are in
1/100ths of a second. Entries are listed as follows Minimum ON Time (2 bytes),
Maximum ON Time (2 bytes), Min. OFF Time (2 bytes), Max. OFF Time (2 bytes),
Number of valid singal cycles to occur before the signal is accepted as valid
(1 byte). Some countries codes specify a two PHASE cadence pattern (On-Off in
one pattern followed by a different On-Off pattern) for some singals, and in
such cases, the "PHASE 2" entries would have NON-ZERO values (the US country
code setting only supports single PHASE cadence patterns or patterns that just
repeat the same On-Off pattern over and over.)
(Listed default values are for the United States values)
SC(0-8) PHASE 1 BUSY
Minimum ON Time = 42 ( SC0=42 SC1=0 )
Maximum ON Time = 58 ( SC2=58 SC3=0 )
Minimum OFF Time = 42 ( SC4=42 SC5=0 )
Maximum OFF Time = 58 ( SC6=58 SC7=0 )
Number of Cycles = 4 ( SC8=4 )
Notes: USA (1) - SC0=22 & SC4=22 allows CONGESTION ("FAST" BUSY signals to be
detected as a BUSY.)
Lithuania (370) - SC0=50 SC2=100 SC4=15 SC6=60 SC8=2 for BUSY
Если Вы не сильны в английском, поясню, что в регистры 0, 2, 4, 6 нужно
заносить соответственно минимальное/максимальное время включения/выключения
импульса сигнала занято. В 8 регистр заносится минимальное число циклов,
"достаточное" для определения сигнала. Мы, конечно, хотим, чтобы сигнал
"ловился" со второго гудка. Поэтому в регистр SC8 нужно занести 2. Что
касается остальных регистров, следует напомнить, что для наших АТС сигнал
занято, передается импульсами длительностью 0,3...0,4 сек с такими же
промежутками. Hо для надежности следует установить более широкие границы
захвата 0,2...0,8 сек. Делается это так:
ATSC0=20 SC1=0 SC2=80 SC3=0 SC4=20 SC5=0 SC6=80 SC7=0 SC8=2
Если после этого модем начнет определять сигнал, то можно сузить границы. Если
же это не имеет удовлетворительного эффекта, то дело скорее всего, кроется в
слишком сильном уровне сигнала или даже в его частоте. В любом варианте
следует подумать о замене прошивки. Поднимитесь немного выше, для того чтобы
узнать подробнее.
Изменяем содержимое ОЗУ. ПОМОГАЕТ ПРАКТИЧЕСКИ В 100% СЛУЧАЕВ, HО К СОЖАЛЕHИЮ
ПОДОБHЫЙ СПОСОБ HЕДОСТУПЕH В ПРИЛОЖЕHИЯХ ПОД WINDOWS 95/98.
Содержимое ОЗУ можно посмотреть или изменить командой
AT! "адрес" ["команда"]
Адрес задается четырехзначным числом в шестнадцатеричной системе. В режиме
индикации содержимого ОЗУ команда не задается. Для изменения ОЗУ используется
команда M. Для выхода из этих режимов нужно нажать пробел. Примеры команд:
AT!0000 начать вывод содержимого ОЗУ с адреса 0000h;
AT!02E3M начать редактирование содержимого ОЗУ с адреса 02E3h.
Как же использовать эти команды для решения проблемы Busy? Очень просто! Дело
в том, что часть прошивки модема копируется в ОЗУ и в ней как раз содержится
информация по константам определения сигнала "Занято". Воспользуйтесь
программой rock_ram для считывания ОЗУ модема в файл. В этом файле надо найти
следующий кусок:
000002B7: 00 05 00 02 C2 08 7C EE C2 08 74 C7 FE 74 C2 08
000002C7: 84 11 C2 08 4F CD 95 64 00 FF 00 05 0D 16 C3 1B
000002D7: C1 15 63 1B 0A 42 00 0E 00 13 03 01 2A 00 3A 00
000002E7: 2A 00 3A 00 04 5A 00 2C 01 22 01 CC 01 01 16 00
Характерным местом, в котором его можно найти является уже указанный адрес
02b7 или около того. В принципе такой кусок входит в прошивку несколько раз, а
эффект достигается при изменении только по одному адресу.
Теперь о том, что надо на что поменять. Для приведенного выше куска это:
02B7: 00 00
02B8: 05 09
02B9: 00 00
02BA: 02 09
и еще в одном месте, рядом с первым
02E3: 2A 23
02E4: 00 00
02E5: 3A 41
02E6: 00 00
02E7: 2A 23
02E8: 00 00
02E9: 3A 41
02EA: 00 00
02EB: 04 02
Такой вариант вполне хорошо определяет сигнал занято. Если после этого ничего
не изменилось, то попробуйте вместо первого изменения подставить:
00 0A 00 0A или 00 0C 00 0C
Для второго лучше поставить:
0A 00 5A 00 0A 00 5A 00 02.
Все это к сожалению не дает полной гарантии в определении сигнала занято. И
если частота сигнала меньше ~350Гц или больше ~700Гц, то данным способом
проблему решить нельзя.
Внимание, важное замечание: после изменения ОЗУ модем нельзя инициализировать
командой ATZ, т.к. по ней содержимое ОЗУ восстанавливается из прошивки модема
и все труды пойдут на смарку. Инициализировать нужно командой AT&F, дополняя
ее по необходимости. Таким образом, про NVRAM и сохранение в ней конфигурации
модема лучше забыть.
Для того, чтобы автоматизировать эти изменения можно использовать следующие
программы:
acinit.exe (18Kb, DOS)
Можно спросить у меня!
imodem.zip (15Kb, Windows 95/98)
Для реальной скорости коннекта простая строчка:
--- Тут вот начинается файл Windows Clipboard ---
Init1 ATS95=47W1|
--- А здесь Windows Clipboard кончается, поделом ему ---
|