div.main {margin-left: 20pt; margin-right: 20pt} Вездеходы
V.34, или Модемы для наших линий
Jigarish jigarish@email.com
На первом
свидании мой первый модем послал меня в задницу. Конечно
же, я поступил неправильно, так как залез в терминалку,
включил у модема dumb-режим и записал настройку в
память, после чего уже прочитал об этой команде в
примечании, что вывести модем из этого режима
ручками-закорючками невозможно.
Поход в
сервис, провозглашение стандартного заявления "КВН"
(купил, включил, не работает), замена модема. Следующие
несколько недель прошли под эгидой "сессия - фигня,
главное - модем", после чего у меня появилось много
свободного времени - замечательный отрезок, в
простонародье именуемый "вынужденный академ". Тут-то
свидание и удалось.
Через
несколько лет путем незначительных телодвижений бывший
модем на 19 200 однажды был поменян на USR Sportster
33600 Voice, который, хоть и выдавал приличные по
сравнению с предыдущим скорости, тонкой настройке почти
не поддавался.
Нашлись,
конечно, прошивки с поддержкой V.90, появились
неофициальные апдейты, но до гибкости и управляемости
старого модема "шпроту" было как пельменю до скафандра.
Как раз в это время продавцы поняли магическую силу
логотипа "адаптировано для России", и софтверные
V.90-трещалки стали расходиться "на ура".
Однако у
большинства модемов качество связи и настройки как были
на "три с минусом", так и остались. Может, забугорные
программеры напоролись на ГОСТ и с воем "эгегей, ништяк,
ща будет!" добавили в модем код для определения
занятости линии именно для нашей страны? Но согласитесь,
такая адаптация - отстой. Те, кто поумнее, взяли данные
из ГОСТа, оценили степень раздолбайства и полученную
величину взяли как погрешность. Но и эти тоже, в
общем-то, недалеко ушли от первых.
Однако есть
модемы, которые были не адаптированы для российских
линий, а изначально для них разрабатывались. Речь идет о
двух монстрах - модеме IDC 5614 BXL/VR производства
компании Inpro Development Corporation и модеме Express
Xs12, произведенного Питерской компанией HTS.
Коротко HTS Express Xs12
Для кого
создавался модем Express Xs12? Лет пять назад появилась
такая идея, что в модеме должно настраиваться все, что
можно, и что все настройки должны быть доступны
пользователю. Из этих соображений и исходили
разработчики.
Конструктивно
модем от HTS - что-то вроде "линукса", системы open
source, где применяется открытая архитектура. Каждая
функция детально описана, а если родилась какая-то идея,
то при желании можно написать разработчикам, чего модему
не хватает, аргументировать - и если ваши доводы
покажутся разработчикам убедительными (а больше половины
функций модема по своему происхождению и являются
последствиями пожеланий пользователей), то в следующей
прошивке вы наверняка увидите поддержку этой
функции.
Вообще,
Express Xs12 по большей своей части является огромным
программерским трудом, а потом уж модемом. Основной упор
при его создании был сделан на то, чтобы достичь
максимальной производительности, приближенной к
идеальной для конкретных физических условий
линии.
Несколько
слов о статистике, выводимой модемом. Обычно статистика
недорогих решений очень и очень далека от оригинала в
плане точности. Здесь речь идет не об ошибочных
принимаемых решениях - многие модемы вычисляют параметры
по своим, весьма неточным алгоритмам, но совершенно
спокойно могут при этом великолепно работать.
А вот Express
Xs12 - один из немногих (а то и единственный) модем,
который обладает очень точными измерительными
средствами, которые позволяют составить максимально
полную картину о происходящем на линии даже в крайне
нестандартных ситуациях. При этом точность представления
данных о линии у Express Xs12 приближается к точности
специальных измерительных приборов ценой около
$2000.
Ориентирован
модем на плохие линии и на линии среднего качества.
Именно поэтому в первую очередь была проведена доводка
всех подсистем Express Xs12 для работы с
низкоскоростными протоколами. Например, производители
наблюдали, как работает протокол HST, и сделали свой
вариант, полностью совместимый, и в некоторых случаях
работающий даже лучше, чем оригинальный. Именно из-за
ориентации на плохие линии модем пока не поддерживает
новомодный V.90, а также V.92, хотя, по заявлениям
разработчиков, появление новых прошивок уже не за
горами.
Но,
уважаемые, его цена не для всех. Обычно HTS берут те
люди, которые не удовлетворены лучшими из существующих
модемов. Но это не значит, что сейчас вы возьмете
Express Xs12 и все начнет "летать". Бывает такое, что на
некоторых линиях лучше всего работают "зюхеля" и
никакими настройками "курьер" не удается заставить
работать так же (или наоборот). Если у вас дело обстоит
именно таким образом, то вы можете настроить HTS так,
чтобы его поведение на линии было максимально
приближенным к поведению как модема Zyxel, так и модема
Courier. А поковырявшись в настройках и вникнув в гибкую
архитектуру Express, можно еще повысить скорость работы
на данной линии процентов на 5-10.
IDC
5614BXL/VR
Модем от
компании Inpro Development Corporation намного дешевле,
но и предназначение у него иное - хорошо работать на
линиях среднего и хорошего качества. В основе продукции
этой компании лежат усовершенствованные DSP от Rockwell.
Схемы, непосредственно улучшающие работу модема на
железном уровне, не используются, в основном из-за
специфики чипсета.
К
референс-дизайну от Rockwell могут быть добавлены только
сервисные или защитные функции (определение поднятия
трубки и пр.), которых у модемов IDC довольно много. Сам
чипсет является как бы "вещью в себе", и на первый
взгляд что-то принципиально улучшить там уже нельзя. Но
разработчики посылают производителям чипсета свои
рекомендации, замеченные ошибки, производят доработки в
микропрограмме ядра DSP и, естественно, серьезно
модернизируют управляющую микропрограмму.
Для примера
можно взять последнюю прошивку модема Acorp и сравнить
версии кода DSP у него и у модели Inpro. Как правило,
разница составляет год, а иногда даже два. И это только
DSP - микропрограмма от Inpro в десятки раз более
гибкая, чем у любого другого модема - носителя чипсета
Rockwell. Код прошивки постоянно оптимизируется и
улучшается, иногда доходит до курьезов - пользователи
жалуются, что новые прошивки выходят слишком
часто.
Довольно
интересным фактом является то, что многим модемам для
реализации протоколов просто не хватает мощности! Даже
дешевые аппаратные модемы от USR в ситуациях, требующей
серьезной загрузки DSP, иногда не справляются - в лучшем
случае падает скорость. Оба модема - и Express Xs12, и
IDC 5614BXL/VR такого недостатка не имеют. А теперь
протестируем оба модема на линии, причем поговорим
только о связи - никаких дополнительных фенечек вроде
АОНа, голосового режима и прочего не будет.
Знакомство IDC 5614BXL/VR С системой новый модем
подружился легко. Как только зануда Windows прописала
новый модем, пришлось сразу же лезть в реестр, чтобы
инициализация проходила не по команде полного сброса
(AT&F1), а по обыкновенной ATZ. А то, блин,
настраиваешь-настраиваешь, а потом хлоп - и
трехнедельная работа ушла к черту.
Вот создатели
HTS сообразили что такое бывает и встроили специальный
звуковой сигнал. Сидит человек себе, созерцает свой пуп,
и вдруг как что-то завоет! Это защиту такую придумали -
чтоб пользователь знал, что его модем собираются жестко
проинициализировать.
Так вот.
Перед набором номера модем поднял трубку и отчаянно
загудел, причем на всю квартиру. Хорошо, что можно было
сразу уменьшить громкость колесиком на корпусе девайса.
Потом уже последовали команды ATL1 (минимальная
громкость динамика), выбор режима озвучки соединения
(можно, например, заставить модем включать динамик при
возникновении ретрейнов или согласований
скоростей).
Стандартные
полчаса дозвона до провайдера, стандартные несколько
десятков "занято", а отрицательных эмоций - ноль: все
busy определились если не на второй, так на третий
гудок. Кстати, по умолчанию модем ждет двух сигналов
"занято", вероятно, для точности, и этот параметр можно
легко изменить.
Также можно
поменять время реакции фильтров - промежуток времени
после начала гудка и тем моментом, когда управляющая
программа модема зафиксирует его наличие. Набор номера
происходил бесшумно - громкое реле только поднимает
трубку. Сделано это в целях безопасности - если
заставить этим заниматься бесшумное реле, то оно может
легко сгореть.
Итак,
соединение. С хорошими линиями модем подружился очень
хорошо, показав практически предельную скорость
соединения - около 52 000 бит/с, впрочем, менее
продуманные модемы на этой линии тоже не
отставали.
Наиболее
интересным пунктом была проверка работы девайса на линии
средней паршивости, где максимальная скорость
соединения, когда-то показанная "курьером", составляла
26 400. Считается, что самая сильная сторона модемов
Inpro - протокол V.34. Вот эта сильная сторона и
повернулась ко мне своей громадной... спиной.
"21 600" -
именно это и написал модем в строке "Connect". Немного
повисев на линии, я снял статистику соединения. Как
известно, для того чтобы модемы работали нормально,
уровни принимаемых сигналов у обоих модемов должны быть
в диапазоне -24...-30 дБ. А в статистике на меня
смотрели понижения скорости, часто запрашиваемые с моей
стороны, а также уровень сигнала в -16 дБ. Говорило это
все о том, что удаленный модем просто орет в трубку как
резаный. Уменьшение уровня входного сигнала сделало свое
дело - скорость поднялась до 24 000 бит/с.
Но
хотелось-то 26 400 и выше! В общем, предстояло очередное
общение с мануалкой. Копаясь в документации, я
периодически проверял все настройки, казавшиеся мне
более-менее значительными. Например, скорость набора
номера. В регистрах 106, 107 и 108 задаются параметры
замыкания и размыкания линии, а также межсерийного
интервала, так что буквально через несколько секунд
модем стал набирать номер как из автомата
Калашникова.
Пришлось даже
поставить эксперимент - насколько быстрый набор выдержит
АТС без ошибок. С настройками по умолчанию модем набрал
номер телефона за 11 секунд. Когда я выставил значения
ровно в полтора раза ниже обычных, модем набрал номер за
7 секунд.
Я долго гонял
его по разным телефонам, смотрел, не ошибется ли при
наборе, однако каждый раз модем попадал куда надо. Но
все же АТС явно не нравилось, как с ней обращаются:
сразу же после дозвона начинались дикие помехи, и если в
это время другой модем брал трубку, то "рукопожатие"
происходило немного дольше.
Здесь уже
приходится выбирать, что важнее, - быстрее дозвониться о
провайдера (я лично дозваниваюсь не меньше получаса) или
подождать лишних 5-6 секунд при согласовании. Дальнейшие
издевательства над АТС привели только к ошибкам при
наборе номера; единственное, что удалось, - немного
уменьшить время замыкания линии.
К тому
моменту, как перед глазами появилась страница с
командами, отвечающими за выбор алгоритмов поведения
модема на линии, было протестировано уйма настроек. Вы
будете удивлены, но модем умеет общаться даже с сотовыми
телефонами - специально для них есть настройка,
отвечающая за автоматическое согласование уровня
выходного сигнала с сотовым оборудованием.
Далее
последовали: запрет соединений без коррекции ошибок,
выбор расширенного формата вывода строки соединения,
уменьшение времени определения несущей (чтобы модем
чуть-чуть быстрее соединялся) и еще
многое-многое…
В общем,
наконец открылась нужная страница и взгляд уперся в
коэффициент агрессивности. Цитирую документацию: "Этот
регистр содержит масштабный коэффициент
среднеквадратичной ошибки, которая используется при
автоматическом выборе скорости приема данных во время
установки начального соединения и перетренировок на
модуляции V.34 и выше. В регистр записывается этот
коэффициент, умноженный на 64 (40 hex).
Если этот
коэффициент равен 1, модем будет устанавливать скорость
обмена информацией в соответствии с текущим состоянием
линии. Если коэффициент больше 1, будет выбираться более
низкая скорость. При коэффициенте, меньшем 1, модем
будет выбирать скорость приема, более высокую, чем
фактически позволяет линия. При S17=0 модем будет
устанавливать на прием максимальную скорость, доступную
для данного соединения". Трудновато для мгновенного
понимания, не так ли?
Грубо говоря,
чем меньше значение этого регистра, тем на большей
скорости модем будет пытаться работать. Но тут особенно
сильно не побалуешься - слишком низкое значение влечет
за собой частые ретрейны и пересогласования скорости, а
слишком высокое - более медленную скорость
соединения.
Выйти на
заветные 26 400, а иногда даже и 28 800, позволил запрет
реакции на запрос PowerDrop, инициированный удаленным
модемом. Этот запрос удаленный модем посылает в том
случае, когда считает, что сигнал другого (в данном
случае моего) модема слишком сильный. Проблема
заключается в том, что некоторые модемы сами не
понимают, чего просят, и запрашивают настолько сильный
сигнал, что сами же глохнут, или настолько слабый, что
сами его не слышат.
Запрет делать
такие глупости оказался для удаленного модема очень
полезен - реже стали происходить ретрейны и понижения
скорости, а при благоприятных случаях скорость достигала
28 800. Большего из модема выжать не удалось, но, думаю,
ограничивающим фактором оказалось все-таки качество
линии.
HTS
Express Xs12
Для
инсталляции этого модема пришлось выкорчевать
материнскую плату, заменив ее на Chaintech 6AJA,
построенную на чипсете VIA и, как следствие,
поддерживающую шину ISA. Сам модем просто утыкан
джамперами - выбором IRQ и COM-порта настройки не
ограничиваются. Сама схема выглядит не так аккуратно
как, например, материнская плата от Intel, но очень
хорошо видно, что собрана плата, что называется, на
совесть - даже постаравшись, очень трудно что-то
отломать.
Сразу после
включения модем заморгал красным светодиодом. Сначала
пришла мысль, что он просто требует инициализации, но
потом, когда уже все мыслимые и немыслимые способы
добиться от Windows понимания были испробованы и
драйверы, наконец, встали, лампочка все равно продолжала
мигать.
Удаленное
соединение было настроено, модем, наконец, понял, как
надо набирать номер, и вдруг меня осенило, что
телефонные провода я еще не подсоединил. Забыв, какой
провод идет от щитка к модему, а какой от модема к
домашним телефонам, я, естественно, все перепутал и
засунул штекеры не в те гнезда. Модем меня шарахнул
током, так как я случайно дотронулся до его элементов,
но звонить никуда не стал. Ситуация была исправлена
(мне, правда, не удалось его шарахнуть током в
отместку), и модем стал дозваниваться до
провайдера.
Тихонько
протрещав, он набрал первый раз номер и сразу же повесил
трубку. Что за дела? - удивился я. Оказалось, что это
так быстро определяется "занято" - буквально через
несколько миллисекунд после набора номера. Впрочем,
этого можно было ожидать - ведь сигнал "занято" у этого
модема распознается с помощью частот, которые
определяются практически мгновенно.
Дозвонившись,
модем соединился с первого раза, но сразу же пришлось
принимать "антигубораскатин" - скорость оказалась 14
400. (Как выяснилось в дальнейшем, в строке коннекта
модем по умолчанию выдает "прогнозируемую" скорость
соединения - ее значение зависит от оптимистичности,
которая по умолчанию довольно невысока.)
Вероятно,
именно такую скорость он мог точно гарантировать для
этой линии. Но несмотря на это через несколько минут
скорость заметно поднялась и значение 14 400 в строке
коннекта уже совершенно не волновало.
Поработав
минут десять, я решил посмотреть статистику.
Оказывается, с того времени как модем соединился на 14
400, соотношение сигнал/шум несколько раз изменялось в
лучшую сторону и модем поднимал скорость до 26 400. Во
второй раз модемы соединились на 24 000; дальнейший сбор
статистики показал, что скорость поднималась до тех же
пресловутых 26 400.
Конечно же,
хотелось большего, и в дебрях описания настроек (объем
около 270 кб текста) была найден простой параметр, у
которого оказалось всего 5 значений - от самой плохой
линии (0) до самой хорошей (4). Оказалось, что заводские
настройки предусматривают оптимизацию модема под линии
очень плохого качества (значение 1), то есть девайс
выбирает скорость ниже средней возможной для этой линии.
Выбрав значение 2 (линия среднего качества) скорость
соединения с провайдером стабилизировалась и уже
составляла 24 000.
Решив
посмотреть насколько далеко уйдет модем в своей
оптимистичности, я выставил настройку в положение 4
(линия наилучшего качества), но очередной сеанс связи
произошел на скорости 21600. Вероятно, зашкаленный
борзометр не приветствовался АТС.
В итоге мы с
модемом договорились на значении 3 (линия хорошего
качества, и это на декартно-шаговой АТС!), и это
говорило о том, что на этой конкретной линии модем
просто расслабляется. Дальнейшая доводка уровней сигнала
и прочих параметров все-таки позволила модему работать
на скорости 26 400.
Причем из-за
доработок в протоколах и интеллектуальном слежении за
параметрами линии фактическая скорость была немного
выше, чем у того же "курьера" или модема от IDC. Куда
интереснее было посмотреть, как он справится с самыми
погаными линиями. Был выбран самый поганый телефон
провайдера, где даже "курьер" соединялся далеко не с
первого раза и то на 1200 бит/с.
В общем, не
буду вас утомлять всеми теми настройками, которые
пришлось перерыть, иначе вы просто заснете, скажу лишь
только, что связь была! Немного, конечно, всего 2400
бит/с, но уверенность, с которой HTS держал линию, была
просто поразительной - через некоторое время я уже
перестал даже нервничать, слыша хрипы помех.
Скажу честно,
очень жаль, что настолько хорошим продуктам,
разработанным для наших линий, нельзя уделить намного
больше внимания. Например, представьте себе - только
настройки модема от HTS с сухими комментариями и без
возможностей применения и рекомендаций займут около
половины объема журнала.
Модем от
Inpro, кстати, тоже далеко не так прост, как могло
показаться, - при желании в его настройках можно
копаться неделями. Но самое главное, что информация
получена: теперь при желании вы можете сами пощупать ту
или иную модель.
*** Редакция журнала
благодарит компанию Flash Computers (http://www.flashcom.ru/)
за предоставленные на тестирование модемы IDC 5614BXL/VR
и HTS Express Xs12, а также за предоставленную
материнскую плату Chaintech 6AJA4.
|