Введение

Программный модем, обычно называемый softmodem, – это модем с минимальным аппаратным обеспечением, использующий программное обеспечение, работающее на хост-компьютере, и ресурсы компьютера (особенно центральный процессор, оперативную память и иногда обработку звука) вместо аппаратной части традиционного модема. Softmodems также иногда называют winmodems из-за ограниченной поддержки платформ, отличных от Windows. По аналогии, linmodem – это softmodem, способный работать в операционной системе Linux. Softmodems иногда приводят в качестве примера системы жесткого реального времени. Аудиосигналы, предназначенные для передачи, должны вычисляться с очень малым интервалом (порядка 5 или 10 миллисекунд); их нельзя вычислить заранее, и недопустима задержка, иначе принимающий модем потеряет синхронизацию.

История

Первые поколения аппаратных модемов (включая акустические соединители) и их протоколы использовали относительно простые методы модуляции, такие как FSK или ASK на низких скоростях. В этих условиях модемы могли быть построены с использованием аналоговой дискретной компонентной технологии, применяемой в конце 70-х и начале 80-х годов. По мере разработки более сложных схем передачи, схемы значительно усложнялись. Новые методы модуляции требовали сочетания аналоговых и цифровых компонентов и, в конечном итоге, интеграции нескольких интегрированных схем (ИС), таких как логические элементы, ФАПЧ и микроконтроллеры. Более поздние методы, используемые в современных протоколах V.34, V.90 и V.92 (например, 1664-точечное созвездие QAM), настолько сложны, что их реализация с помощью дискретных компонентов или ИС общего назначения стала нецелесообразной. Кроме того, в новейших протоколах были внедрены улучшенные схемы сжатия и коррекции ошибок, требующие дополнительной вычислительной мощности непосредственно в модеме. Это сделало невозможным создание модема, в основном состоящего из аналоговых/дискретных компонентов. Наконец, совместимость со старыми протоколами, использующими совершенно разные схемы модуляции, потребовала бы от модема, построенного на дискретной электронике, наличия нескольких полных реализаций. Первоначально решением было использование LSI ASIC, которые уменьшили количество необходимых компонентов, но поскольку стандарты продолжали меняться, возникла потребность в создании модемов, которые можно было бы модернизировать. В 1993 году Digicom представила Connection 96 Plus – модем на базе DSP, который программировался приложением при запуске. Поскольку программу можно было заменять, модем можно было обновлять по мере совершенствования стандартов. Digicom назвала эту технологию SoftModem, возможно, дав начало этому термину. В 1996 году на рынок вышли два типа модемов: модемы с переносом части нагрузки на центральный процессор хоста и программные модемы, которые полностью переносили обработку на процессор хост-системы, а также проект Minimodem, реализующий несколько стандартов FSK-модемов.

Типы

Софтмодемы можно разделить на два класса: модемы без контроллера и чисто программные модемы. Модемы без контроллера используют DSP непосредственно в модеме для выполнения модуляции, демодуляции и других операций. Некоторые, известные как "модемы, работающие на стороне хоста", могут все же использовать часть вычислительной мощности центрального процессора хоста для определенных задач. Чисто программные модемы выполняют все функции модема на центральном процессоре хост-компьютера, а аппаратная часть обеспечивает лишь аналого-цифровое преобразование и подключение к телефонной сети. В то время как DSP-модемы обычно требуют внимания хоста только при запуске, чисто программные модемы потребляют часть процессорного времени хоста, что теоретически может замедлить работу приложений на устаревших компьютерах. Это была серьезная проблема в 1990-х годах, когда процессоры были значительно менее мощными, чем современные.

Софтмодемы DSL

Хотя термин "софтоммодем" обычно используется для модемов PSTN, существуют программные DSL-модемы и даже маршрутизаторы, работающие по тем же принципам, но с большей пропускной способностью и более сложными схемами кодирования. Одним из первых чипсетов программных DSL-модемов был чипсет Motorola SoftDSL. Термин WinDSL был создан для обозначения этого типа технологии. DSL-софтоммодемы, как правило, требуют тех же интерфейсов, что и софтоммодемы PSTN, таких как USB или PCI.