Los modos de comando y datos se refieren a los dos modos en los que puede funcionar un módem de computadora . Estos modos se definen en el conjunto de comandos Hayes , que es el estándar de facto para todos los módems. Estos modos existen porque solo hay un canal de comunicación entre el módem y la computadora, que debe llevar los comandos de la computadora al módem, así como los datos que el módem está alistado para transmitir a la parte remota a través de la línea telefónica.
Cuando un módem está en modo de comando , los caracteres que se le envían se interpretan como comandos para que el módem los ejecute, según el conjunto de comandos de Hayes . Un comando está precedido por las letras 'AT', que significan 'Atención'. Por ejemplo, si un módem recibe 'ATDT5551212' mientras está en el modo de comando, lo interpreta como una instrucción para marcar los números 5551212 en el teléfono, utilizando la marcación por tonos . Mientras está en modo de comando, el módem puede enviar respuestas a la computadora indicando el resultado del comando. Por ejemplo, el módem puede responder con la palabra "OCUPADO" en respuesta al comando ATDT, si escucha una señal de ocupado después de marcar y está configurado para escuchar señales de ocupado.
Cualquier comunicación en el modo de comando (en ambas direcciones) se termina con un retorno de carro .
Cuando un módem está en modo de datos , todos los caracteres enviados al módem están destinados a ser transmitidos a la parte remota. El módem ingresa al modo de datos inmediatamente después de realizar una conexión. Por ejemplo, si ATDT5551212 resultó en una llamada telefónica que fue respondida por otro módem de computadora, el módem informaría la palabra "CONECTAR" y luego cambiaría al modo de datos. Cualquier otro carácter recibido a través del enlace en serie se considera que proviene de la parte remota, y cualquier carácter enviado se transmite a la parte remota.
Cuando un módem con capacidad de voz está en modo "datos de voz", cualquier dato enviado al módem se interpreta como datos de audio que se reproducirán a través de la línea telefónica, en lugar de bytes de caracteres que se transmitirán digitalmente a la otra parte.
Cambiar entre modos
Los módems siempre se inician en modo de comando cuando se encienden. Estas son las formas en que un módem puede cambiar al modo de datos:
- Después de una conexión de marcación externa exitosa en respuesta a un comando de marcación "ATD" en el que el módem llega a otro módem.
- Después de contestar el teléfono con el comando de respuesta "ATA", si hay otro módem en el otro extremo.
- Después de contestar el teléfono automáticamente por algún motivo preconfigurado (como respuesta automática) y conectarse a otro módem. (Casi todos los módems admiten la respuesta automática cuando se les da el comando "ATS0 = 1").
- Después de recibir el comando "ATO" (que son tres letras AT-Oh, no AT-cero) después de volver a ponerlo en el modo de comando con una secuencia de escape (ver más abajo).
- En respuesta a comandos similares de marcación o conexión para comunicaciones de voz o fax.
Los módems vuelven al modo de comando desde el modo de datos por las siguientes razones:
- La conexión se rompió (por ejemplo, la otra persona colgó).
- La computadora emitió un comando de escape, que generalmente es una pausa de 1 segundo, luego los tres caracteres "+++", luego otra pausa de 1 segundo. La conexión permanece, pero el módem puede aceptar comandos, como "ATH" para colgar. La computadora puede emitir el comando "ATO" para regresar al modo de datos.
- La computadora le indicó al módem que terminara la llamada estableciendo el pin Data Terminal Ready (DTR) en un estado "apagado". (Por lo general, así es como las computadoras invocan la terminación de una llamada de módem hoy en día: la secuencia de escape +++ rara vez se usa y generalmente se desactiva para evitar un mal funcionamiento en caso de que estos caracteres sean legítimamente parte del flujo de datos).
Uso práctico contemporáneo
Hoy en día, la mayoría de los módems están configurados con los caracteres "& C1 & D2" en la cadena de inicialización, o se comportan de esta manera por defecto. Esto provoca el siguiente comportamiento:
- El módem utiliza el pin Data Carrier Detect (DCD) para indicar si está conectado a un host. Por lo general, la computadora puede leer el pin DCD en cualquier momento y saber siempre si el módem está en modo de comando o de datos. DCD alto significa modo de datos y bajo significa modo de comando. DCD es una señal enviada desde el módem a la computadora. (Tenga en cuenta que el DCD también permanece alto si está en modo de comando después de una secuencia de escape +++, pero en la práctica, el software lo usa muy raramente, si es que lo usa, por lo que realmente no es un problema).
- El módem interpreta el pin Data Terminal Ready (DTR) como una señal de la computadora para saber cuándo quiere terminar una llamada. DTR es una señal de la computadora al módem. La computadora mantiene el DTR alto en todo momento hasta que quiere terminar una llamada, momento en el que la computadora baja el DTR por uno o dos segundos. La computadora también mantiene el DTR bajo cuando no hay programas en ejecución que quieran usar el módem; esto evita que el módem responda llamadas debido a la respuesta automática o haga algo inesperado o no deseado. La computadora puede asumir con seguridad que después de que el DTR se haya reducido durante un par de segundos, el módem estará en modo de comando.
Mensajes de escape de enlace de datos (DLE)
Para las comunicaciones de datos de acceso telefónico normal, los módems ingresan al modo de datos solo una vez, comenzando cuando la sesión se conecta y terminando cuando la sesión se desconecta. Sin embargo, cuando los módems se utilizan para comunicaciones por fax y voz (audio), cambian rápidamente entre los modos de comando y datos varias veces durante una llamada. Esto se debe a que la función del módem cambia con mayor frecuencia; en lugar de simplemente pasar bytes del punto A al punto B, se trata de negociar parámetros y páginas con una máquina de fax o cambiar entre los modos de grabación, pausa y reproducción de audio.
En los modos de fax y datos de voz, a veces ocurren eventos en los que el módem desea enviar una señal a la computadora, independientemente de si está en modo de comando o de datos. Un ejemplo de tal evento es una persona que llama presionando una tecla de tono en el modo de voz. Otros mensajes fuera de banda comunes son las notificaciones del módem de que se perdieron datos porque la computadora está enviando datos demasiado lento o demasiado rápido, o que el módem escucha un tono de marcación inesperado en la línea (lo que significa que la persona que llama probablemente colgó ), o que el auricular de extensión fue descolgado o colgado.
Este tipo de evento se señaliza con un mensaje DLE , que es un mensaje de un solo carácter precedido por un código de escape de enlace de datos. DLE es un carácter enviado desde el módem a la computadora cuya definición no está relacionada ni con el modo de comando ni con el modo de datos, y que utiliza un código ASCII específico (0x10) que nunca aparece en ningún comando o respuesta de AT, por lo que puede aislarse del flujo de comando / respuesta solo por ese mérito. En estos modos, siempre que se envía un DLE (0x10), el carácter que le sigue tiene un significado especial sin comando ni con datos. Por ejemplo, un DLE seguido del número 2 significa que la persona que llama presionó el número 2 en el teclado de su teléfono. Esto podría suceder en el modo de comando o de datos siempre que el módem esté usando la línea telefónica y haya alguien en el otro extremo de la línea.
El carácter DLE podría aparecer en datos de fax o audio. Para evitar malinterpretar un byte de datos 0x10 como un "relleno de bits" DLE, se utiliza. El relleno es un esquema de codificación común para módems y se usa para escapar de caracteres en secuencias. En este caso, relleno significa que dos caracteres DLE en una fila se interpretan como un byte literal con valor 0x10.
DLE también se usa a la ligera en la comunicación de la computadora al módem. Un evento DLE específico indica el final de una página de fax o el final de un archivo de audio. Ese evento devuelve el módem al modo de comando. A diferencia del modo de datos de acceso telefónico estándar, eliminar DTR no es una forma adecuada de reanudar el modo de comando, ya que no se desea colgar, y tampoco es adecuado un código de escape con pausas obligatorias. Debido a esto, los datos literales de 0x10 bytes también se duplican desde la computadora al módem.
DLE nunca se usa en los modos de datos estándar de módem a módem, como el que se usa para el acceso telefónico a Internet, al menos no por el módem en sí. En estos modos, DLE se pasa sobre la línea como cualquier otro carácter. Los mensajes DLE (y los mensajes de escape DLE) solo los usa un módem para aplicaciones de fax y voz, cuando se coloca específicamente en un modo de fax o voz.