Если бы Гоголь жил в наше время, то, вероятно, он отнес бы к бедам России и телефонные линии, качество которых оставляет желать лучшего. Может быть, причина этого кроется в каких-то особых погодных условиях, а может, и в нашей безалаберности. Но как бы то ни было, вода, снег и грязь попадают в коммуникационные колодцы и распределительные щитки, что и приводит к коррозии контактных соединений. Вездесущие мыши и крысы, разгрызая провода, довершают разрушение. Так что ухудшается связь, повышается уровень шума, появляется паразитное дрожание, скачет фаза и в итоге происходит разрыв соединения — словом, работать становится не слишком приятно. Но не стоит отчаиваться. Есть несколько способов помочь своим взбунтовавшимся модемам, не желающим работать в таких неблагоприятных условиях.

Рассмотрим процедуру настройки модема на примере недорогих и потому популярных устройств на базе набора микросхем Rockwell Connexant. А поскольку почти все эти модемы похожи, проигнорируем марку производителя.

Определение версии прошивки ПЗУ модема

Процедура отладки

Сначала нужно проверить, установлена ли в системе необходимая для настройки модема программа HiperTerminal для Windows, для чего нажмем кнопку «Пуск» и выберем пункты «Стандартные?Связь». Если ее не окажется, то проведем инсталляцию. Вызовем HiperTerminal. В появившемся диалоговом окне «Описание подключения» укажем кнопку «Отмена». Определим версию прошивки ПЗУ модема, введя команду ATI3 и нажав . На экране возникнет строка с кодом версии микропрограммы модема, например V2.310 022-001-K56_2M_DLS (где V2.310 — версия данной микропрограммы; 022 — код страны, для которой адаптирован модем; 2M — объем ПЗУ, равный 2 Мбит).

Если в заголовке микропрограммы не будет числа 022, то выясните код страны микропрограммы с помощью команды ATI5. Используя данные приведенной таблицы, этот код можно попробовать изменить командой AT*NCxx, где хх — код страны (в частности, AT*NC25 — Россия). Команда AT*NC? позволяет просмотреть список поддерживаемых стран.

После попыток изменить региональные настройки, из которых, скорее всего, ничего не получится (обычно модем поддерживает одну страну — США), рассмотрим строку инициализации модема, представляющую собой набор стандартных команд. Вот наиболее применимые из них.

  • AT&F — вызывает заводские установки.
  • ATW1S95=47 — разрешает полный вывод сообщения о соединении в одной строке.
  • AT%C2 — запрещает аппаратное сжатие данных по протоколу MNP5, разрешает работу только V.42bis. Из-за ухудшения пропускной способности при передаче заранее запакованных данных, например архивных файлов, протокол сжатия MNP5 лучше не использовать.
  • AT%E2 — разрешает автоматическое повышение или понижение скорости передачи данных в зависимости от условий связи. Команда %E2 позволяет модему изменять скорость передачи данных в процессе ухудшения или улучшения условий связи. При установке команды %E1 модем сразу затребует согласование всех параметров связи, что отнимает много времени и часто приводит к обрыву связи. Существует еще команда %E3, совмещающая в себе функции команд %E1 и %E2, однако работает она не со всеми прошивками.
  • ATS91=9 — выдает в линию сигнал модема с более высоким уровнем. В этом случае содержимое регистра S91 изменяется. Возможны значения от 8 до 15, причем меньшее значение соответствует большему выходному сигналу.
  • ATS48=0 — разрешает использовать для коррекции ошибок только протокол V.42, а также запрещает соединение без коррекции ошибок, что повышает надежность установки связи.
  • AT&W0&W1 — записывает коды команд в оба стека энергонезависимой памяти NVRAM, впоследствии их можно извлечь командами ATZ и ATZ1 соответственно.
  • AT+MS? — позволяет посмотреть, на какой скорости и с использованием какого протокола модем будет пытаться устанавливать соединение. Например, AT+MS? — это 12,1,300,56 000, где 12 — кодовое обозначение используемого протокола; 300 — минимальная скорость соединения; 56 000 — максимальная скорость соединения. Коды применяемых протоколов: 0 — V.21; 1 — V.22; 2 — V.22bis; 9 — V.32; 10 — V.32bis; 11 — V.34; 12 — V.90; 56 — K56Flex. Изменить эти значения можно командой AT+MS=, например AT+MS=12,1,2400,56 000. По этой команде модем будет устанавливать соединение по протоколу V.90 со скоростью от 2400 до 56 000 бит/с. Чтобы обеспечить более надежное соединение, лучше уменьшить максимальную скорость. Следует помнить, что можно задавать только фиксированные значения скорости: 300 бит/с, 1200, 2400, 4800, 7200, 9600, 12 000, 14 400, 24 000, 32 000, 33 600, 56 000 бит/с.

Теперь введите строку инициализации, например AT&FW1%C2%E2S48= 0S91=9S95=47&W0&W1, и нажмите . Затем по команде ATZ модем будет инициализироваться по описанной схеме до тех пор (см. выше), пока вы не сбросите настройки по команде AT&F. Полный список AT-команд помещен на сайте производителя модема.

Разыскивается сигнал «занято»

Причины того, что модем не реагирует на сигнал «занято», кроются, как правило, в плохих телефонных линиях и в несоответствии региональных настроек модема российским стандартам. Дело здесь, скорее всего, в том, что на разных АТС используются различные частотные параметры и временные соотношения тон/пауза сигнала «занято». Также очень часто встречается эффект взаимного проникновения каналов, когда на фоне громкого сигнала «занято» возникает длинный гудок, предназначенный другому абоненту, который звучит тихо для человеческого уха, но вполне уловимо для модема, либо когда пробивается чей-то разговор (а то и вовсе скрежет зубов грызунов, проверяющих на вкус телефонный провод).

Наиболее рациональный способ найти потерявшийся где-то в дебрях АТС сигнал «занято» — заменить микропрограмму модема. Последнее будет полезно и при появлении новых протоколов связи, еще неподдерживаемых модемом.

Перед перепрошивкой ПЗУ необходимо выполнить следующие действия.

  • Узнать, какой набор микросхем установлен в модеме. Для этого следует снять крышку с внешнего модема или вынуть внутренний из ПК и прочитать надписи на микросхемах. В модемах, поддерживающих скорость соединения 56 000 бит/с, применяются наборы микросхем Connexant RP56D/SP, L2800-38 или Rockwell RCVDL56ACFW/SP. Выполнять этот пункт очень важно — прошивки для разных наборов несовместимы!
  • Выяснить тип используемой микросхемы ПЗУ в модеме и на основе этого выбрать прошивку. Как правило, в современных устройствах устанавливаются перезаписываемые 2-Мбит ПЗУ, однако встречаются объемом 1 Мбит, а также неперезаписываемые. Наиболее значительная коллекция прошивок для модемов, работающих на российских линиях, приведена на сайте Алекса Тарана: http://www.modem.dp.ua/.

Итак, вы приготовили все для работы и нашли нужную прошивку. Первый, самый простой способ перепрошивки ПЗУ — выполнить ее непосредственно в модеме. Сначала посетите сайт производителя модема Zoltrix (http://www.zoltrix.com/) и перепишите программу обновления прошивки ПЗУ. Для набора микросхем RP56D/SP это будет Zol2300e.zip, а для RCVDL56ACFW/SP — Zol2310.zip. Обе программы предназначены для внешних модемов (для внутренних используются другие версии, находящиеся на том же Web-узле). Затем распакуйте полученный архив в любой каталог, например C:/Temp.

Дальнейшие действия для RCVDL56ACFW/SP можно произвести с помощью программы Zol2310.zip. В отдельный каталог, например C:Temp, разархивируйте файл. Перенесите выбранную прошивку с расширением *.s37 в каталог, куда была распакована программа Zol2310.zip. Измените название файла, содержащего эту прошивку, на Z2310s2.s37 и запустите программу Flashcom.exe. Во время ее работы следуйте возникающим на экране инструкциям. Вся процедура займет около 5 мин. Ни в коем случае не выключайте во время перепрошивки питание компьютера или модема — результат, скорее всего, будет плачевным. После успешно закончившегося программирования введите, как было описано выше, строку инициализации.

Перепрошивка ПЗУ с помощью программы Flashcom

Второй способ — более сложный, но зачастую приходится прибегать к нему из-за того, что первый просто невозможен. Вызовите программу HiperTerminal и укажите пункты меню «Файл? Свойства». В открывшемся диалоговом окне отметьте закладку «Подключение к» и в списке «Подключение» выберите Com-порт, к которому подсоединен модем, например «Прямое соединение (Com2)». Затем выделите кнопку «Настройка» и установите в поле «Скорость (бит/с)» значение 57 600 бит/с — это очень важно! Нажмите OK и вернитесь в главное окно. Теперь введите команду AT** — на экране увидите ответ Download initiated. Далее укажите «Передача?Отправить текстовый файл», выберите файл bplf20.s37 из каталога C:/Temp (вспомнили?) и нажмите OK. На экране терминала будут возникать точки, сообщающие о степени загрузки файла. Через некоторое время появится надпись Flash loader — Rev 2.20 Standart d/load mode с указанием типа ПЗУ, примененного в модеме, и приглашение «залить» прошивку. Снова обратитесь к меню «Передача? Отправить текстовый файл» и укажите файл с кодами необходимой прошивки. Опять появятся точки, индицирующие загрузку файла. Установка 2-Мбит прошивки займет около 1 ч. Учтите: ни в коем случае нельзя прерывать сеанс связи. По окончании процесса вы получите сообщение об успешном завершении процедуры. Если вместо точек на экране появятся коды отправляемого файла, не задумываясь выходите из программы HiperTerminal и ищите другую прошивку, — выбранная не подходит.

Бывает, что после перепрошивки ПЗУ модем перестает работать. Не отчаивайтесь, не крушите мебель и не рвите волосы на голове — еще не все потеряно. В случае, когда модем внешний, исправить ситуацию достаточно просто. Снова зайдите в программу HiperTerminal и установите соединение Com2, равное 57 600 бит/с. Затем сначала выключите модем, а потом опять включите и введите команду AT**. Если получите ответ, то все прошло успешно и можно «залить» по изложенной выше методике «родную» прошивку — не забудьте заранее взять ее с сайта производителя модема. Если ответа не будет, то выключите модем и тонкой отверткой очень осторожно выньте микросхему ПЗУ из разъема и после снова включайте модем. Затем, не выключая его, аккуратно вставьте ПЗУ на прежнее место, соблюдая направление выводов и стараясь, чтобы выводы у начала микросхемы, отмеченные точкой, входили в разъем последними — по ним подается питание. Далее введите команду AT** — и вперед. Теперь у вас все должно получиться.

Заливка прошивки «вручную»

Если же неудача постигла вас с внутренним модемом, то проделайте следующее.

  • Возьмите у кого-нибудь внешний модем с набором микросхем Rockwell — они достаточно распространены.
  • Найдите на сайте производителя прошивку для этой модели в формате *.s37.
  • Откройте файл с этой прошивкой в текстовом редакторе и скопируйте полностью третью сверху строку в буфер обмена — в ней находится идентификатор прошивки модема.
  • Вызовите в текстовом редакторе файл с «родной» прошивкой вашего модема и замените третью строку содержимым буфера обмена. Сохраните измененный файл.
  • Откройте чужой модем, аккуратно выньте его ПЗУ, включите модем, вставьте свое ПЗУ (при включенном модеме!) и «залейте» модифицированную прошивку по изложенной выше методике. После сообщения об удачном программировании поменяйте прошивки местами и продолжайте пользоваться своим внутренним модемом.

Если по какой-то причине у вас ничего не получилось или вы боитесь вмешиваться во внутреннюю жизнь модема, обратитесь в фирмы, занимающиеся перепрошивкой ПЗУ, и там вам с удовольствием помогут. Информацию об этих компаниях можно найти на сайтах, посвященных модемной тематике.

Существует также способ русификации модема путем изменения содержимого NVRAM, но у него есть свои недостатки — например, при инициализации модема по команде ATZ все изменения сбрасываются. Информацию об этом и других способах модернизации модемов без труда можно найти в российской части Internet.

И в заключение общий совет владельцам модемов: не пытайтесь улучшить работу устройства заменой телефонного кабеля на коаксиальный (телевизионный, свинцовый и т. п.), а также установкой различных «фильтров» и усилителей. Вряд ли это поможет. В любом модеме все это уже есть, да и производители достаточно хорошо представляют себе, каким образом делается подобное усовершенствование. Как правило, они рекомендуют обвить несколько раз телефонным шнуром ферритовое кольцо, но все же это предлагается лишь для того, чтобы просто успокоить владельцев модемов.


Коды стран, под которые может быть адаптирован модем
КодСтранаКодСтрана
000US - США022US - США
001AUS - Австрия023HUN - Венгрия
002BLG - Бельгия024POL - Польша
003DEN - Дания025RUS - Россия
004FIN - Финляндия026SLO - Словакия
005FR - Франция027BLG - Болгария
006GER - Германия030Индия
007IRE - Ирландия038UA - Украина
008IT - Италия040AST - Австралия
009LUX - Люксембург041CHI - Китай
010NL - Нидерланды042Гонконг
011NOR - Норвегия043JAP - Япония
012POR - Португалия044KOR - Южная Корея
013SPA - Испания046TAI - Тайвань
014SWE - Швеция047SG - Сингапур
015SWI - Швейцария048NZ - Новая Зеландия
016UK - Великобритания060SAF - Южная Африка
017GRE - Греция061KOR - Северная Корея
018ISR - Израиль070TUR - Турция
019SZE - Чехия092MAL - Малайзия
020CAN - Канада099SA - Саудовская Аравия
021Мексика  

назад

923