stringtranslate.com

Conjunto de comandos AT de Hayes

Consulte el título
Módem inteligente Hayes de 300 baudios

El conjunto de comandos Hayes (también conocido como conjunto de comandos AT ) es un lenguaje de comandos específico desarrollado originalmente por Dale Heatherington y Dennis Hayes [1] [2] para el Hayes Smartmodem en 1981.

El conjunto de comandos consta de una serie de cadenas de texto cortas que se pueden combinar para generar comandos para operaciones como marcar, colgar y cambiar los parámetros de la conexión. La gran mayoría de los módems de acceso telefónico utilizan el conjunto de comandos Hayes en numerosas variantes.

El conjunto de comandos cubría únicamente aquellas operaciones admitidas por los primerosMódems de 300 bit/s . Cuando se requirieron nuevos comandos para controlar funciones adicionales en módems de mayor velocidad, surgieron una variedad de estándares únicos de cada uno de los principales proveedores. Estos continuaron compartiendo la estructura y sintaxis de comandos básicos, pero agregaron una cantidad ilimitada de comandos nuevos utilizando algún tipo de carácter de prefijo, &para Hayes y USRobotics , y\para Microcom , por ejemplo. Muchos de estos se volvieron a estandarizar en las extensiones Hayes después de la introducción del SupraFAXModem 14400 y la consolidación del mercado que siguió.

El término " compatible con Hayes " fue [3] [1] y a partir de 2018 sigue siendo importante dentro de la industria. [4]

Historia

Fondo

Antes de la introducción del sistema de tablón de anuncios (BBS), los módems solían funcionar en líneas telefónicas de marcación directa que empezaban y terminaban con un módem conocido en cada extremo. Los módems funcionaban en modo "originar" o "responder", cambiando manualmente entre dos conjuntos de frecuencias para la transferencia de datos. Por lo general, el usuario que realizaba la llamada cambiaba su módem a "originar" y luego marcaba el número manualmente. Cuando el módem remoto respondía, ya configurado en modo "responder", se apagaba el auricular del teléfono y la comunicación continuaba hasta que la persona que llamaba se desconectaba manualmente.

Cuando se requería automatización, por lo general solo se necesitaba en el lado de respuesta; por ejemplo, un banco podía necesitar recibir llamadas de varias sucursales para procesarlas al final del día. Para cumplir esta función, algunos módems incluían la capacidad de descolgar el teléfono automáticamente cuando estaba en modo de respuesta y de liberar la línea cuando el otro usuario se desconectaba manualmente. La necesidad de marcación saliente automática era considerablemente menos común y se manejaba a través de un dispositivo periférico independiente: un "marcador". Este normalmente se conectaba a un puerto de entrada/salida independiente en la computadora (normalmente un puerto RS-232 ) y se programaba por separado del propio módem.

Este método de funcionamiento funcionó satisfactoriamente en los años 1960 y principios de los 1970, cuando los módems se utilizaban generalmente para conectar dispositivos tontos como terminales de ordenador (marcación saliente) con ordenadores centrales inteligentes (contestación). Sin embargo, la revolución de los microordenadores de los años 1970 condujo a la introducción de módems de bajo coste y la idea de un enlace punto a punto semidedicado ya no era adecuada. Había potencialmente miles de usuarios que podrían querer marcar a cualquiera de los otros miles de usuarios, y la única solución en ese momento era hacer que el usuario marcara manualmente.

La industria informática necesitaba una forma de indicarle al módem qué número marcar mediante software. Los primeros marcadores independientes tenían esta capacidad, pero sólo a costa de un puerto independiente , que un microordenador podría no tener disponible. Otra solución habría sido utilizar un conjunto independiente de "pines de comando" dedicados a enviar y recibir comandos; otra podría haber utilizado un pin de señal que indicara que el módem debería interpretar los datos entrantes como un comando. Ambos tenían soporte de hardware en el estándar RS-232 . Sin embargo, muchas implementaciones del puerto RS-232 en microordenadores eran extremadamente básicas, y algunos eliminaron muchos de estos pines para reducir el coste.

La solución de Hayes

Hayes Communications introdujo una solución en su Smartmodem de 1981 : utilizaba los pines de datos existentes sin realizar ninguna modificación. En su lugar, el módem podía cambiar entre uno de los dos modos siguientes:

  1. Modo de datos en el que el módem envía los datos al módem remoto. (Un módem en modo de datos trata todo lo que recibe de la computadora como datos y los envía a través de la línea telefónica).
  2. Modo de comando en el que los datos se interpretan como comandos para el módem local (comandos que el módem local debe ejecutar).

Para cambiar del modo de datos al modo de comandos, las sesiones enviaban una cadena de secuencia de escape de tres signos más ( +++) seguida de una pausa de aproximadamente un segundo. La pausa al final de la secuencia de escape era necesaria para reducir el problema causado por la señalización en banda : si se recibía cualquier otro dato dentro de un segundo de los tres signos más, no era la secuencia de escape y se enviaba como datos. Para volver a cambiar, enviaban el comando en líneaATO , . En el uso real, muchos de los comandos cambiaban automáticamente al modo en línea después de completarse, y es raro que un usuario use el comando en línea explícitamente.

Para evitar licenciar la patente de Hayes, algunos fabricantes implementaron la secuencia de escape sin el intervalo de guarda de tiempo ( Time Independent Escape Sequence o TIES). Esto tenía una importante implicación de seguridad de denegación de servicio , ya que haría que el módem colgara la conexión si el ordenador alguna vez intentara transmitir la secuencia de bytes +++ATH0en modo de datos. Para cualquier ordenador conectado a Internet a través de un módem de este tipo, esto podría explotarse fácilmente enviándole una solicitud de ping de muerte+++ATH0 que contuviera la secuencia en la carga útil. El sistema operativo del ordenador intentaría automáticamente responder al remitente con la misma carga útil, desconectándose inmediatamente de Internet, ya que el módem interpretaría la carga útil de datos ICMP como un comando Hayes. [5] El mismo error también se activaría si, por ejemplo, el usuario del ordenador alguna vez intentara enviar un correo electrónico que contuviera la cadena mencionada anteriormente.

Comandos

El conjunto de comandos Hayes incluye comandos para diversas operaciones de la línea telefónica, como marcar y colgar. También incluye varios controles para configurar el módem, incluido un conjunto de comandos de registro que permitían al usuario configurar directamente las distintas ubicaciones de memoria en el módem Hayes original. El conjunto de comandos fue copiado en gran parte textualmente, incluido el significado de los registros, por casi todos los primeros fabricantes de módems de 300 baudios, de los cuales hubo bastantes.

La expansión a 1200 y 2400 baudios requirió la adición de nuevos comandos, algunos de ellos prefijados con un ampersand ( &) para denotar aquellos dedicados a una nueva funcionalidad. La propia Hayes se vio obligada a introducir rápidamente un modelo de 2400 baudios poco después de su 1200, y los conjuntos de comandos eran idénticos como un método de ahorro de tiempo. [6] Esencialmente por accidente, esto permitió a los usuarios de los módems de 1200 baudios existentes utilizar los nuevos modelos Hayes 2400 sin cambiar su software. Esto reforzó el uso de las versiones Hayes de estos comandos. Años más tarde, la Asociación de la Industria de las Telecomunicaciones (TIA)/ Alianza de Industrias Electrónicas (EIA) estandarizó formalmente el conjunto de comandos de 2400 baudios como Sistemas y Equipos de Transmisión de Datos - Marcación y Control Automático Asíncrono en Serie , TIA/EIA-602 .

Sin embargo, Hayes Communications tardó en lanzar módems que admitieran velocidades o compresión más altas, y otras tres empresas fueron las que tomaron la delantera: Microcom , US Robotics y Telebit . Cada una de estas tres utilizaba sus propios conjuntos de comandos adicionales. A principios de la década de 1990, había cuatro conjuntos de comandos principales en uso y varias versiones basadas en uno de ellos. Las cosas volvieron a ser más sencillas durante la introducción generalizada de 14.4 yMódems de 28,8 kbit/s& a principios de los años 90. Poco a poco, un conjunto de comandos basado en gran medida en el conjunto extendido original de Hayes que utilizaba comandos se hizo popular y luego universal. Solo otro conjunto de comandos ha seguido siendo popular, el conjunto US Robotics de su popular línea de módems.

Descripción

El texto siguiente enumera parte del conjunto de comandos Hayes, también llamados comandos AT : "AT" significa "atención". Cada cadena de comandos tiene como prefijo "AT" y se pueden concatenar varios comandos discretos después de "AT".

El conjunto de comandos Hayes se puede subdividir en cuatro grupos:

  1. Conjunto básico de comandos: un carácter en mayúscula seguido de un dígito. Por ejemplo, M1.
  2. Conjunto de comandos extendido: un "&" (ampersand) y un carácter en mayúscula seguido de un dígito. Esto amplía el conjunto de comandos básico. Por ejemplo, &M1. Tenga en cuenta que M1 es diferente de &M1.
  3. conjunto de comandos propietarios: generalmente comienzan con una barra invertida (“\”) o con un signo de porcentaje (“%”); estos comandos varían ampliamente entre los fabricantes de módems.
  4. Comandos de registro: Sr=n, donde r es el número del registro que se va a cambiar y n es el nuevo valor que se asigna. Un registro representa una ubicación física específica en la memoria. Los módems tienen pequeñas cantidades de memoria incorporada. El cuarto conjunto de comandos sirve para ingresar valores en un registro particular (ubicación de memoria). Por ejemplo, S7=60 le indica al módem que "establezca el registro n.° 7 en el valor 60". Los registros generalmente controlan aspectos del funcionamiento del módem (por ejemplo, la intensidad de la transmisión, los parámetros de modulación) y suelen ser específicos de un modelo en particular.

Aunque la sintaxis del conjunto de comandos define la mayoría de los comandos mediante una combinación de letras y números (L0, L1, etc.), el uso de un cero es opcional. En este ejemplo, "L0" equivale a una simple "L". Tenga esto en cuenta al leer la tabla siguiente.

Cuando se está en modo de datos, una secuencia de escape puede hacer que el módem vuelva al modo de comandos. La secuencia de escape normal consta de tres signos más ("+++") y, para distinguirla de los posibles datos reales, se utiliza un temporizador de protección: debe ir precedido de una pausa, no debe haber ninguna pausa entre los signos más y debe ir seguido de una pausa; de forma predeterminada, una "pausa" es de un segundo y "sin pausa" es cualquier valor inferior.

Definiciones sintácticas

Se aplican las siguientes definiciones sintácticas: [7]

Inicialización del módem

Una cadena puede contener muchos comandos Hayes colocados juntos, de modo de preparar de manera óptima el módem para marcar o responder, por ejemplo . La mayoría del software de módem admitía una cadena de inicialización proporcionada por el usuario , que normalmente era un comando AT largo concatenado que se enviaba al módem al iniciarse. [8] La especificación V.250 requiere que todos los DCE acepten un cuerpo (después de "AT") de al menos 40 caracteres de comandos concatenados. [9]AT&F&D2&C1S0=0X4

Sesión de ejemplo

A continuación se muestran dos computadoras, la computadora A y la computadora B, ambas con módems conectados, y el usuario que controla los módems con un software emulador de terminal . El software emulador de terminal generalmente permite al usuario enviar comandos Hayes directamente al módem y ver las respuestas. En este ejemplo, el usuario de la computadora A hace que el módem marque el número de teléfono del módem B al número de teléfono (212) 555-0100 (larga distancia). Después de cada comando y respuesta, se envía un retorno de carro para completar el comando.

Compatibilidad

Si bien el conjunto de comandos Hayes original representó un enorme avance en las comunicaciones basadas en módem, con el tiempo surgieron muchos problemas, casi ninguno de ellos debido a Hayes en sí :

Como resultado de todo esto, eventualmente muchos programas de comunicaciones tuvieron que renunciar a cualquier sensación de poder hablar con todos los módems "compatibles con Hayes" y en su lugar los programas tuvieron que tratar de determinar el tipo de módem a partir de sus respuestas, o proporcionar al usuario alguna opción mediante la cual pudiera ingresar cualquier comando especial necesario para obligar a su módem particular a actuar correctamente.

Autobaudios

El conjunto de comandos Hayes facilitó la detección automática de la velocidad en baudios , ya que "A" y "T" tienen patrones de bits que son muy regulares; "A" es "100 0001" y, por lo tanto, tiene un bit 1 al inicio y al final, y "T" es "101 0100", que tiene un patrón con (casi) todos los demás bits establecidos. [10] Dado que la interfaz RS-232 transmite primero el bit menos significativo , el patrón de línea correspondiente con 8-N-1 (ocho bits de datos, ningún bit de paridad, un bit de parada) es 0 10000010 10 00101010 1 (los bits de inicio y parada en cursiva ) que se utiliza como palabra de sincronización .

El conjunto básico de comandos Hayes

Los siguientes comandos son entendidos por prácticamente todos los módems que admiten un conjunto de comandos AT, ya sean antiguos o nuevos.

Nota: una cadena de comandos termina con un carácter CR (\r)

Aunque no forma parte del conjunto de comandos, el carácter tilde ~ se utiliza habitualmente en las secuencias de comandos del módem. El ~ hace que muchas aplicaciones pausen el envío del flujo de comandos al dispositivo (normalmente durante medio segundo), por ejemplo, después de un Reset . El ~ no se envía al módem. [11]

Definiciones del registro S del módem

V.250

La UIT-T estableció una norma en sus Recomendaciones de la Serie V , V.25 ter , en 1995 en un intento de establecer una norma para el conjunto de comandos de nuevo. Se le cambió el nombre a V.250 en 1998 con un anexo que no se refería al conjunto de comandos Hayes, renombrado como V.251 . Un módem compatible con V.250 implementa los comandos A, D, E, H, I, L, M, N, O, P, Q, T, V, X, Z, &C, &D y &F de la manera especificada por la norma. También debe implementar registros S y debe utilizar los registros S0, S3, S4, S5, S6, S7, S8 y S10 para los fines indicados en la norma. También debe implementar cualquier comando que comience con el signo más, "+" seguido de cualquier letra de la A a la Z, solo de acuerdo con las recomendaciones de la UIT. Los fabricantes de módems tienen la libertad de implementar otros comandos y registros S según lo consideren oportuno y pueden agregar opciones a los comandos estándar.

GSM

La norma ETSI GSM 07.07 (3GPP TS 27.007) especifica comandos de estilo AT para controlar un teléfono o módem GSM . La norma ETSI GSM 07.05 (3GPP TS 27.005) especifica comandos de estilo AT para gestionar la función de servicio de mensajes cortos (SMS) de GSM.

Ejemplos de comandos GSM: [12] [13]

Los módems GSM/3G generalmente admiten las extensiones del conjunto de comandos ETSI GSM 07.07/3GPP TS 27.007 AT, aunque la cantidad de comandos implementados varía.

La mayoría de los proveedores de módems USB, como Huawei, Sierra Wireless, Option, también han definido extensiones propietarias para la selección del modo de radio (preferencia GSM/3G) o similar. Algunos módems de alta velocidad recientes proporcionan una interfaz Ethernet virtual en lugar de utilizar un protocolo punto a punto (PPP) para la conexión de datos por razones de rendimiento (la conexión PPP solo se utiliza entre la computadora y el módem, no a través de la red). La configuración requiere extensiones de comando AT específicas del proveedor. A veces, las especificaciones para estas extensiones están disponibles abiertamente, otras veces el proveedor requiere un acuerdo de confidencialidad para acceder a ellas. [14]

Conjunto de comandos de voz

Los módems con capacidades de voz o contestador automático admiten un superconjunto de estos comandos para permitir la reproducción y grabación de audio digital.

Véase también

Notas y referencias

  1. ^ de Victoria Shannon (7 de enero de 1999). "El ascenso y la caída del rey moderno". The New York Times . Con un socio .
  2. ^ Georgi Dalakov (4 de enero de 2021). «El módem de Dennis Hayes y Dale Heatherington» . Consultado el 8 de enero de 2015 .
  3. ^ "Compatible con Hayes". Computerworld . 30 de marzo de 1987. pág. 61.
  4. ^ "Cómo configurar un módem compatible con Hayes". IBM . 17 de junio de 2018.
  5. ^ Max, Schau (27 de septiembre de 1998). "1+2=3, +++ATH0=Old school DoS". Lista de correo Bugtraq . Consultado el 8 de diciembre de 2012 .
  6. ^ Frank Durda IV, "La referencia del conjunto de comandos AT: historia" Archivado el 15 de abril de 2008 en Wayback Machine , 1993
  7. ^ Guía de referencia de comandos AT [ enlace roto ]
  8. ^ "Cadenas de inicialización: por qué, qué y dónde". Archivado desde el original el 10 de marzo de 2009. Consultado el 9 de abril de 2008 .
  9. ^ "5.2.1 Formato general de la línea de comandos" (PDF) , V.250 : Marcación automática asíncrona en serie y control (05/99, 07/03) , UIT-T /Oficina de Normalización de las Telecomunicaciones
  10. ^ "Interfaces seriales". PICList . Consultado el 15 de mayo de 2016 .
  11. ^ "Más comandos de módem". Chebucto Community Net . Consultado el 12 de septiembre de 2016 .
  12. ^ ab "Directrices para desarrolladores de junio de 2010 sobre comandos AT para teléfonos Sony Ericsson". Archivado desde el original el 29 de septiembre de 2011.090505 desarrollador.sonyericsson.com
  13. ^ "Guía del usuario del software UC864-E" (PDF) . Archivado desde el original (PDF) el 14 de julio de 2011.090505 m2m-platforms.com
  14. ^ "El blog de Dan Williams: Ahí es cuando tomo mi revólver...". 20 de marzo de 2009.

Enlaces externos