Un módem de software , comúnmente conocido como softmodem , es un módem con hardware mínimo que utiliza software que se ejecuta en la computadora host y los recursos de la computadora (especialmente la unidad central de procesamiento , la memoria de acceso aleatorio y, a veces , el procesamiento de audio ), en lugar de el hardware en un módem convencional.
Los softmodems a veces también se denominan winmodems debido a su soporte limitado para plataformas distintas de Windows . Por analogía, un linmodem es un softmodem que puede ejecutarse en Linux . [1] [2]
Los softmodems a veces se utilizan como ejemplo de un sistema duro en tiempo real . Las señales de audio a transmitir deben calcularse en intervalos ajustados (del orden de cada 5 o 10 milisegundos); no se pueden calcular con anticipación y no pueden llegar tarde o el módem receptor perderá la sincronización.
Las primeras generaciones de módems de hardware (incluidos los acopladores acústicos ) y sus protocolos utilizaban técnicas de modulación relativamente simples como FSK o ASK a bajas velocidades. En estas condiciones, se podrían construir módems con la tecnología de componentes analógicos discretos utilizada a finales de los años 70 y principios de los 80.
A medida que se idearon esquemas de transmisión más sofisticados, la complejidad de los circuitos creció sustancialmente. La nueva modulación requirió mezclar componentes analógicos y digitales y, eventualmente, incorporar múltiples circuitos integrados (CI), como puertas lógicas, PLL y microcontroladores . Las técnicas posteriores utilizadas en los protocolos modernos V.34 , V.90 y V.92 (como una constelación QAM de 1664 puntos ) son tan complejas que implementarlas con componentes discretos o circuitos integrados de propósito general resultó poco práctico.
Además, se introdujeron esquemas mejorados de compresión y corrección de errores en los protocolos más nuevos, lo que requirió potencia de procesamiento adicional en el propio módem. Esto hizo imposible la construcción de un módem de componentes principalmente analógico/discreto. Finalmente, la compatibilidad con protocolos más antiguos que utilizan esquemas de modulación completamente diferentes habría requerido que un módem fabricado con electrónica discreta contuviera múltiples implementaciones completas.
Inicialmente, la solución fue utilizar LSI ASIC que redujeron las diversas implementaciones a una pequeña cantidad de componentes, pero como los estándares continuaron cambiando, existía el deseo de crear módems que pudieran actualizarse.
En 1993, Digicom comercializó Connection 96 Plus , un módem basado en un DSP que era programado mediante una aplicación al inicio. Como el programa era reemplazable, el módem podía actualizarse a medida que mejoraran los estándares. Digicom denominó esta tecnología SoftModem , originando quizás el término. [3]
Asimismo, el término "Winmodem" puede haberse originado con Sportster Winmodem de USRobotics , un diseño basado en DSP igualmente actualizable. [4]
En 1996, comenzaron a llegar al mercado dos tipos de módems: módems basados en host , que descargaban parte del trabajo en la CPU del host, y módems sólo de software que transferían todo el trabajo a la CPU del sistema host. [5] En 1997, el estándar AC'97 para audio de computadora introduciría canales para uso de módem, haciendo que la tecnología de módem de software sea común en las PC.
Desde entonces, algunos softmodems se han creado como proyectos de software independientes que utilizan interfaces de tarjetas de sonido estándar, como un softmodem experimental de código abierto de línea arrendada de 96 kbit/s llamado AuDSL de 1999, [6] y el proyecto Minimodem que implementa varios módems FSK. estándares. [7]
Los softmodems se pueden dividir en dos clases: módems sin controlador y módems de software puro .
Los módems sin controlador utilizan un DSP en el propio módem para realizar modulación , demodulación y otras tareas. [3] Algunos, conocidos como módems "basados en host", aún pueden usar cierta cantidad de potencia de la CPU del host para algunas tareas. [5]
Los módems de software puro realizan todas las tareas del módem en la CPU de la PC host , mientras que el hardware solo proporciona conversión analógico-digital y conexión a la red telefónica. [5]
El propósito original declarado del softmodem basado en DSP era proporcionar capacidad de actualización, una preocupación en una era en la que los estándares de los módems cambiaban rápidamente. Tanto los módems DSP como los de software puro ofrecen esta característica.
Una desventaja de cualquier tipo de softmodem es que se deben proporcionar controladores, y los términos "softmodem" y "winmodem" han adquirido connotaciones negativas, particularmente dentro de la comunidad de código abierto, debido a que los controladores para Linux a menudo se omiten o se proporcionan solo como no mantenibles. binarios. [8]
Mientras que los softmodems basados en DSP generalmente sólo requieren atención del host durante el inicio, los módems de software puro consumen algunos ciclos de CPU en el host, lo que posiblemente pueda ralentizar el software de la aplicación en computadoras más antiguas. Este fue un problema importante en la década de 1990, cuando las CPU no eran tan potentes como el hardware típico actual.
Aunque el "softmodem" normalmente se aplica a los módems PSTN , existen algunos módems DSL basados en software o incluso enrutadores , que funcionan con los mismos principios pero con mayor ancho de banda y con esquemas de codificación más complejos. Uno de los primeros conjuntos de chips de módem DSL basados en software fue el conjunto de chips SoftDSL de Motorola . [9]
El término WinDSL se acuñó para describir este tipo de tecnología. [10] Los softmodems DSL generalmente requieren las mismas interfaces que los softmodems PSTN, como USB o PCI .
AuDSL es un módem de software experimental para conectividad a Internet de baja velocidad a través de líneas de cobre alquiladas que utilizan tarjetas de sonido de PC como interfaz de línea.
El acrónimo AuDSL significa Línea de abonado de audio digital.
Actúa como un módem FSK de software de uso general e incluye soporte para varios protocolos FSK estándar, como Bell103, Bell202, RTTY, TTY/TDD, NOAA SAME y Caller-ID.