oldi

Программные и аппаратные модемы: что лучше?

Алексей Слынько

Когда-то давно, лет десять назад, у меня в руках оказалась загадочная коробочка черного цвета с двумя телефонными розетками и разъемом для блока питания. На передней панели было написано «SmartOne 2400». Тщательный осмотр не дал никакой информации о предназначении данного предмета. Пришлось идти за консультацией к старшим товарищам. Именно тогда я услышал слово «модем».

Сегодня это слово можно встретить практически в любом прайс-листе фирмы, занимающейся продажей компьютерной техники. Этому немало способствует рост популярности сети Интернет. Именно модемы используются для организации соединения между вашим компьютером и поставщиком услуг сети Интернет. Как известно, спрос рождает предложение. Число компаний — производителей модемов давно перевалило за десяток, а от обилия моделей начинает болеть голова. Разброс цен запутывает еще больше. Чем отличается внешний Courier 33600 за 200 долларов от внутреннего Sky Rocket 33600 за 30 долларов? Но это еще полбеды. Про такие модемы было написано немало популярных обзоров и статей. Однако в последние два года появился еще один класс этих устройств, получивший название «программный модем». Модемы этой категории имеют низкую цену (15-20 долларов) и обладают своими достоинствами и недостатками. Мотивом написания этой статьи послужило желание выяснить, что же скрывается за этим термином — «soft-modem» (программный модем).

Сначала короткая справка. Само слово «модем» представляет собой сокращение словосочетания «модулятор-демодулятор». Назначение модема — передача данных от одного компьютера к другому с помощью обыкновенной телефонной линии. До недавнего времени существовала только одна категория этих устройств — аппаратные модемы. Они, в свою очередь, делились на внутренние и внешние. И те и другие обладают практически одинаковыми характеристиками и возможностями.

Стандартный аппаратный модем состоит из пяти функциональных блоков: DSP, контроллера, кодека, ОЗУ и ПЗУ.

  • DSP (Digital Signal Processor) — осуществляет кодирование поступающего потока данных, опираясь на протоколы передачи данных. В его обязанности входит также модуляция выходного сигнала.
  • Контроллер — реализует протоколы сжатия данных и коррекции ошибок. Кроме того, является связующим звеном между модемом и программным обеспечением компьютера (реализует программный интерфейс).
  • Кодек (сокращение от кодер-декодер) — осуществляет двустороннее преобразование аналогового сигнала, поступающего из линии, в поток цифровых данных.
  • ПЗУ — микросхема памяти, хранящая в себе программу работы модема, также называемую «прошивкой». Последние модели модемов допускают обновление и перезапись прошивки модема с помощью специального программного обеспечения (за исключением тех случаев, когда это не предусмотрено производителем).
  • ОЗУ — микросхема оперативной памяти, хранящая данные до первого выключения питания. Предназначена для хранения и последующей обработки потока данных. Иногда в ней же хранятся текущие настройки для работы модема.

Недавно появившиеся программные модемы выполнены по той же схеме. Основное отличие программного модема от аппаратного заключается в том, что часть функций реализуется за счет центрального процессора и программного обеспечения. Зачастую от модема остается лишь кодек, а все остальные функции выполняет драйвер, использующий ресурсы персонального компьютера. Некоторые производители реализуют программно лишь контроллер, оставляя на плате DSP. Такие модемы потребляют несколько меньше процессорного времени и, как показала практика, обладают лучшими характеристиками.

Таким образом, подобное перераспределение аппаратных функций сильно удешевляет производство и, как следствие, конечную стоимость продукта. По существу, все усилия разработчиков сводятся к написанию кода прошивки. Аппаратная реализация кодека требует минимальных затрат.

Попробуем перечислить достоинства и недостатки такого решения.

Достоинства:

  • Быстрая реализация новых функций и протоколов
  • Компактность
  • Отсутствие привязки к шине ISA
  • Низкая стоимость

Недостатки:

  • Использование ресурсов центрального процессора
  • Зависимость от операционной системы

Сразу оговорюсь, что это деление — очень и очень условное, что будет видно из нижеследующего.

Итак, перспективы самые радужные. Учитывая тот факт, что производительность центральных процессоров растет, а спрос на продукт определяет техническую поддержку (например, написание драйверов под новую операционную систему), может показаться, что будущее светло и прекрасно. Однако жизнь внесла свои коррективы, добавив изрядную ложку дегтя в эту бочку меда. Начнем с того, что мы условно назвали недостатками.

1. Любой аппаратный модем содержит в себе процессор, выполняющий все вычислительные операции. Производительность такого процессора достаточно низкая из-за того, что круг задач подобного процессора невелик. Именно узкая специализация позволяет достичь нужного результата при малой производительности. Если сравнивать с процессорами сегодняшнего дня, то Intel 286 для этих целей хватит с избытком. Использование центрального процессора системы потребует более высоких затрат. Так, при использовании Pentium II 400 МГц требуется порядка 10% его вычислительной мощности. На младших процессорах, таких как Pentium 200 МГц, эта цифра достигает 40%. Для модемов с аппаратно реализованным DSP эти цифры немного меньше. Отсюда видно, что использование программных модемов на младших моделях процессоров Pentium приведет к значительному сокращению вычислительных мощностей. Кроме всего прочего, в системе Microsoft Windows высокий приоритет работы драйвера модема приводит к тому, что пресловутые 10% можно считать недоступными для различного рода приложений. При этом зачастую становится невозможным использование приложений, работающих в режиме реального времени и наиболее критичных к вычислительным ресурсам.

2. Зависимость модема от операционной системы проявляется в наличии или отсутствии драйверов. Здесь основную роль играет распространенность той или иной ОС и популярность самого модема. Поскольку продукт предназначен для конечного пользователя (корпоративный доступ строится на совсем других технологиях), то разработчикам выгоднее всего писать драйверы именно под конечного потребителя. В России и ряде других стран на сегодняшний момент большинство пользователей работают под ОС Microsoft Windows. Пользователям других операционных систем перед покупкой такого модема имеет смысл навести справки у производителя. На сегодняшний день большинство таких модемов имеют драйверы под одну-две операционные системы, пользующиеся наибольшим спросом. Хотя в любой момент ситуация может кардинально измениться. Недавний пример: из-за резкого роста популярности Linux (один из клонов UNIX-систем, распространяемый бесплатно) был написан комплект драйверов, поддерживающий работу большинства распространенных софт-модемов. А вот владельцам MS-DOS или Novell, похоже, придется использовать аппаратные модемы, если только о них не позаботятся производители операционных систем или энтузиасты, как это случилось с Linux.

Теперь что касается достоинств.

1. Полное отсутствие аппаратных средств (кодек можно в расчет не брать) открывает практически неисчерпаемые возможности для создания высококлассных модемов. Для наращивания возможностей и реализации новых протоколов достаточно изменить соответствующим образом микропрограмму. При этом начисто отсутствуют затраты по разработке аппаратной части и привязке программного комплекса к элементной базе. Так же просто решается вопрос с адаптацией микропрограммы к реальным условиям для каждого конкретного случая. На сегодня система команд процессоров Intel изучена достаточно хорошо, так что изменить код драйвера не составляет особого труда. Для российских линий, качество которых оставляет желать лучшего (а уж про цифровую связь вообще говорить не приходится — даже в Москве это пока достаточно редко встречается), такая адаптация необходима. На практике все несколько сложнее. Если для создания аппаратной части достаточно разового вложения средств, то для создания микропрограммы необходимо нанимать команду разработчиков, а затем постоянно вкладывать деньги в разработку более совершенных алгоритмов, в исправление уже существующих ошибок, в поиск know-how. Все это в итоге приводит к удорожанию конечного продукта и уменьшению рынка сбыта. Именно поэтому многофункциональные модемы обходятся значительно дороже. В их стоимость входит дальнейшая разработка новых и поддержка уже существующих микропрограмм. Другая проблема — защита авторских прав. В аппаратных модемах эта проблема решалась элементарно — достаточно было создать уникальную аппаратную часть с использованием собственной элементной базы. Потому-то до сих пор еще никому не удалось использовать прошивки от модемов фирмы 3Com в модемах фирмы Zyxel. С программными модемами все намного сложнее. В случае наличия на плате DSP с встроенной NVRAM есть возможность хранить микропрограмму в ней. Как показал российский опыт, такая защита целесообразна. Именно так была организована защита прошивки к модемам Courier, адаптированной к нашим телефонным линиям связи. В полностью программных модемах нет даже этих ограничений. Практически любой толковый программист сможет развернуть двоичный код микропрограммы во вполне воспроизводимый и изменяемый кусок исходного текста. В результате компания, создающая оригинальную прошивку, понесет огромные убытки, потратив практически впустую деньги на развитие подобного продукта. Поэтому совершенно очевидно, что при малой рыночной стоимости и практически нулевой защите никто не захочет вкладывать деньги в разработку новых конкурентоспособных программ. Про адаптацию к нашим линиям в подобном случае говорить уже не приходится. В отличие от Запада, где одна и та же прошивка хорошо работает практически везде, у нас ситуация может доходить до абсурда. Пример: у вашего приятеля, живущего в соседнем доме, все работает устойчиво и быстро. Ваш же модем, той же марки и купленный в той же фирме, работать отказывается напрочь. Причем условия работы совершенно идентичны, за исключением расстояния в 100 метров между домами. Или вот еще: вы неделю наслаждались устойчивым и скоростным соединением. И вдруг в один прекрасный день ваш модем забарахлил (стала обрываться связь, перестал распознаваться сигнал «занято»). Замена модема ничего не дала. А причина может быть в оттепели или дожде. Повысилась влажность в телефонных подземных стояках — и модем начинает валять дурака. Остается либо ждать, пока подсохнет, либо заняться адаптацией прошивки. И здесь опять сказывается отсутствие прибылей. Разработать подобную вещь на голом энтузиазме практически нереально.

2. Поэтому если вы купили софт-модем и он у вас не заработал или заработал плохо — вам придется приобретать аппаратный модем (если вам дороги ваши нервы и деньги).

На сегодняшний день наиболее адаптированными к российским линиям считаются модемы компании Inpro и Proxyma.

3. Компактность. Для реализации софт-модема требуется лишь кодек и плата с двумя телефонными разъемами типа RJ-11. Открываются широкие возможности для интеграции софт-модемов в материнские платы, что мы сегодня и наблюдаем. Практически любая современная материнская плата имеет интегрированный кодек. Однако целесообразность подобного решения вовсе не очевидна. Во-первых, цена материнской платы возрастает на 10-20 долларов, что в случае тощего российского кошелька заставит призадуматься потенциальных покупателей, а также пользователей, имеющих аппаратные модемы. Во-вторых, не всегда есть возможность запретить системе использовать подобный модем (такие случаи пока еще встречаются), или она некорректно реализована. И наконец, не совсем понятно, чем модем лучше остальных периферийных устройств. Например, многим гораздо больше хотелось бы иметь интегрированный контроллер сканера или FM-тюнер.

4. С другой стороны, появление спецификации PC 99, в которой шина ISA отсутствует как факт, заставляет производителей аппаратных модемов задуматься о целесообразности выпуска внутренних моделей с шиной ISA. С этой точки зрения интегрированные софт-модемы могут послужить промежуточным решением для пользователей, чей бюджет не позволяет купить новый аппаратный модем взамен старого. Кстати, мне еще не встречались интегрированные аппаратные модемы (подобное решение, несмотря на обеспечиваемое им высокое качество, просто не нашло бы спроса из-за высокой цены). И напоследок маленькая деталь: в системе Microsoft Windows 2000 поддержка шины ISA не предусмотрена, поэтому даже наличие материнской платы с этой шиной в данной ситуации уже не спасет.

Существует еще ряд факторов, о которых стоит упомянуть.

1. Софт-модем представляет собой стандартное PCI-устройство. Microsoft Windows при установке такого модема распознает его как стандартное устройство и запрашивает драйверы, после чего все Windows-приложения могут обращаться к нему как к обычному модему. Несколько по-другому работают с модемом DOS-приложения. С их точки зрения модем представляет собой обычный COM-порт. Таким образом, драйвер модема должен уметь эмулировать полноценный COM-порт для работы подобных программ. К сожалению, некоторые производители вообще не предусматривают такой возможности. В результате некоторые программы и старые игры такой модем использовать не смогут. Это стоит учесть в том случае, если подобные программы разрабатывались на заказ и по каким-либо причинам разработчики их больше не поддерживают. Это могут быть, например, программы бухгалтерии и складского учета, рассчитанные на удаленных друг от друга пользователей, или программы автоматизации предприятия.

2. Использование модема в качестве АОНа или автоответчика накладывает дополнительные условия. Для нормального функционирования АОНа в российских условиях модем должен иметь настройки, позволяющие подстраиваться под параметры конкретной телефонной линии. Сегодня подобная возможность производителями не предусмотрена из-за соображений, описанных выше. Для работы автоответчика должны быть предусмотрены либо соответствующие разъемы для микрофона и динамиков, либо использование звуковой платы компьютера.

Учитывая все вышеизложенное, можно дать несколько рекомендаций. Покупать софт-модем имеет смысл, если:

  • Вы пользуетесь цифровыми каналами связи, и у вас есть уверенность, что ваши абоненты используют телефонные линии высокого качества. К сожалению, большинство существующих линий зачастую не позволяет использовать имеющееся у вас оборудование с максимальной эффективностью. Исключение составляют случаи, когда вы арендуете каналы связи у компаний, имеющих свою кабельную инфраструктуру. Подобные компании, как правило, сотрудничают с несколькими провайдерами сети Интернет, обеспечивая тем самым своим абонентам высокоскоростной доступ в Сеть. В Москве такие услуги предоставляют несколько компаний, например «Голден-Лайн», «Телмос». На периферии и в глубинке ситуация ухудшается, поскольку большая часть оборудования на телефонных станциях морально устарела еще лет 20 назад, а на модернизацию денег нет и не предвидится.
  • Вы модернизировали свой компьютер и обнаружили, что установить в него ваш старый внутренний модем невозможно, поскольку отсутствует шина ISA. В этом случае на материнской плате почти наверняка имеется интегрированный программный модем. Если у вас в данный момент нет возможности произвести апгрейд вашего старого модема, попробуйте использовать то что есть. Существует вероятность, что качество работы нового модема будет не хуже, а может быть, и лучше. Точный ответ могут дать только испытания в «полевых условиях». Если результат вас не удовлетворяет, то имеет смысл приобрести внешний модем. Подобный модем не зависит от аппаратной платформы и легко переносится с одного компьютера на другой. К сожалению, трудно предугадать последующие шаги производителей компьютеров. Не исключено, что в следующей спецификации исчезнут COM-порты, тем более что все более популярной становится шина USB. Кстати, уже появились первые модели модемов с этим интерфейсом.
  • Программное обеспечение, которое вы используете, корректно распознает устройства подобного типа. К сожалению, многие софт-модемы пока не предусматривают программной эмуляции COM-порта или делают это некорректно.
  • Вы имеете возможность обменять вашу модель на модель другого производителя. Это не относится к интегрированным решениям (здесь спасает только замена материнской платы).
  • У вас есть необходимые навыки и время для экспериментов (например, может потребоваться разрешение конфликта прерываний). В противном случае лучше прибегнуть к проверенным способам и использовать аппаратные модемы.

При выборе лучше рассмотреть вариант покупки модема со встроенным DSP. Как показывает опыт, эти модемы обеспечивают лучшие характеристики по сравнению с полностью программными модемами.

В настоящий момент не имеет смысла приобретать программные модемы, если:

  • вы используете выделенные (некоммутируемые) каналы связи. Подобная возможность в нынешних софт-модемах попросту не предусмотрена (эту нишу занимают более дорогие устройства);
  • требуется использовать несколько модемов одновременно. Такая возможность пока что отсутствует.

И напоследок хочу еще раз напомнить, что все сказанное выше не претендует на абсолютную объективность. Точный ответ может дать только опыт. Пробуйте — и делитесь опытом…

КомпьютерПресс 4'2000