stringtranslate.com

Conjunto de comandos AT de Hayes

El conjunto de comandos de 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 módem Hayes Smartmodem de 300 baudios en 1981.

El conjunto de comandos consta de una serie de cadenas de texto cortas que se pueden combinar para producir 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 comando Hayes configurado en numerosas variaciones.

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

El término " compatible con Hayes " era [3] [1] y, en 2018, todavía es importante dentro de la industria. [4]

Historia

Fondo

Antes de la introducción del Bulletin Board System (BBS), los módems normalmente operaban en líneas telefónicas de marcado directo que comenzaban y terminaban con un módem conocido en cada extremo. Los módems funcionaron en modo "originar" o "respuesta", cambiando manualmente entre dos conjuntos de frecuencias para la transferencia de datos. Generalmente, el usuario que realiza la llamada cambia su módem a "originar" y luego marca el número a mano. Cuando contestó el módem remoto, ya configurado en modo "responder", se apagó el auricular del teléfono y la comunicación continuó hasta que el llamante se desconectó manualmente.

Cuando se requería automatización, normalmente solo era necesaria en el lado de la respuesta; por ejemplo, es posible que un banco necesite atender llamadas de varias sucursales para su procesamiento al final del día. Para cumplir esta función, algunos módems incluían la capacidad de levantar el teléfono automáticamente cuando estaba en modo de respuesta y de borrar la línea cuando el otro usuario lo desconectaba manualmente. La necesidad de marcación saliente automatizada era considerablemente menos común y se manejaba a través de un dispositivo periférico separado: un "marcador". Normalmente, esto se conectaba a un puerto de entrada/salida separado de la computadora (generalmente un puerto RS-232 ) y se programaba por separado del módem.

Este método de operación funcionó satisfactoriamente en la década de 1960 y principios de la de 1970, cuando los módems se usaban generalmente para conectar dispositivos tontos como terminales de computadora (marcación) con computadoras centrales inteligentes (contestación). Sin embargo, la revolución de las microcomputadoras de la década de 1970 condujo a la introducción de módems de bajo costo y la idea de un enlace punto a punto semidedicado ya no era apropiada. Había potencialmente miles de usuarios que querrían 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 decirle al módem qué número marcar mediante software. Los anteriores marcadores separados tenían esta capacidad, pero sólo a costa de un puerto separado, que una microcomputadora podría no tener disponible. Otra solución habría sido utilizar un conjunto separado de "pines de comando" dedicados a enviar y recibir comandos, otra podría haber usado un pin de señal que indique que el módem debe 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 microcomputadoras eran extremadamente básicas y algunas eliminaron muchos de estos pines para reducir costos.

La solución de Hayes.

Hayes Communications introdujo una solución en su Smartmodem de 1981 utilizando los pines de datos existentes sin modificaciones. En cambio, el propio módem podría cambiarse entre uno de dos modos:

  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 comando, 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 dentro de banda : si se recibía algún otro dato dentro de un segundo de los tres signos más, no era la secuencia de escape y se enviaría como datos. Para volver atrás enviaron el comando en línea , "ATO". En el uso real, muchos de los comandos cambiaron automáticamente al modo en línea después de completarlos, y es raro que un usuario use el comando en línea explícitamente.

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

Comandos

El conjunto de comandos de 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 permitieron al usuario configurar directamente las distintas ubicaciones de memoria en el módem Hayes original. El conjunto de comandos fue copiado en gran medida palabra por palabra, incluido el significado de los registros, por casi todos los primeros fabricantes de módems de 300 baudios, de los cuales había bastantes.

La expansión a 1200 y 2400 baudios requirió la adición de un pequeño conjunto de comandos nuevos, algunos de ellos con el prefijo ("&") para indicar aquellos dedicados a nuevas funciones. El propio Hayes se vio obligado a introducir rápidamente un modelo de 2400 baudios poco después de los 1200, y los conjuntos de comandos eran idénticos como método para ahorrar tiempo. [6] Básicamente por accidente, esto permitió a los usuarios de 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) elevó el conjunto de comandos de 2400 baudios a un estándar formal con el título Sistemas y equipos de transmisión de datos: control y marcación automática asincrónica 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 abrieron el camino en este sentido: Microcom , US Robotics y Telebit . Cada uno de estos tres utilizó sus propios conjuntos de comandos adicionales en lugar de esperar a que Hayes liderara el camino. A principios de la década de 1990, se utilizaban cuatro conjuntos de comandos principales y varias versiones basadas en uno de ellos. Las cosas volvieron a simplificarse durante la introducción generalizada de módems de 14,4 y 28,8 kbit/s a principios de los años 1990. Poco a poco, un conjunto de comandos basados ​​en gran medida en el conjunto extendido original de Hayes que utilizaba comandos "&" se hizo popular y luego universal. Sólo otro conjunto de comandos sigue siendo popular: el conjunto de US Robotics de su popular línea de módems.

Descripción

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

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

  1. conjunto de comandos básico: un carácter mayúscula seguido de un dígito. Por ejemplo, M1.
  2. conjunto de comandos extendido: un "&" (ampersand) y un carácter mayúsculo seguido de un dígito. Esto amplía el conjunto de comandos básicos. Por ejemplo, &M1. Tenga en cuenta que M1 es diferente de &M1.
  3. conjunto de comandos propietario: normalmente comienza 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 a bordo. El cuarto conjunto de comandos sirve para ingresar valores en un registro particular (ubicación de memoria). Por ejemplo, S7=60 indica al módem que "establezca el registro n.º 7 en el valor 60". Los registros normalmente controlan aspectos del funcionamiento del módem (por ejemplo, intensidad de transmisión, parámetros de modulación) y suelen ser específicos de un modelo concreto.

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 "L" simple. Tenga esto en cuenta al leer la siguiente tabla.

Cuando está en modo de datos, una secuencia de escape puede devolver el módem al modo de comando. La secuencia de escape normal es de tres signos más ("+++") y, para desambiguarla de posibles datos reales, se utiliza un temporizador de guardia: debe ir precedido de una pausa, no tener pausas entre los signos más y estar seguido de una pausa; De forma predeterminada, una "pausa" es un segundo y "sin pausa" es menos.

Definiciones sintácticas

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

Inicialización del módem

Una cadena puede contener muchos comandos de Hayes colocados juntos, a fin 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 y 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

Lo siguiente representa dos computadoras, la computadora A y la computadora B, ambas con módems conectados y el usuario controlando los módems con un software de emulador de terminal . El software emulador de terminal normalmente permite al usuario enviar comandos de 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 original de Hayes representó un gran avance en las comunicaciones basadas en módem, con el tiempo surgieron muchos problemas, casi ninguno de ellos debido a Hayes per se :

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 el usuario con alguna opción mediante la cual podía ingresar cualquier comando especial necesario para obligar a su módem particular a actuar correctamente.

Autobaud

El conjunto de comandos de 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 principio y al final, y "T" es "101 0100", que tiene un patrón con (casi) cada dos 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, sin bit de paridad, un bit de parada) es 0 10000010 10 00101010 1 (bits de inicio y parada en cursiva ) que se utiliza como palabra sincronizada .

El conjunto básico de comandos de 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 comando termina con un carácter CR (\r)

Aunque no forma parte del conjunto de comandos, el carácter de tilde ~ se utiliza habitualmente en las secuencias de comandos del módem. El ~ hace que muchas aplicaciones detengan 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 de registros del módem S

V.250

El ITU-T estableció un estándar en sus Recomendaciones de la Serie V , V.25 ter , en 1995 en un intento de establecer nuevamente un estándar para el conjunto de comandos. Fue rebautizado como V.250 en 1998 con un anexo que no se refería al conjunto de comandos de 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 en la forma especificada por el estandar. 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, únicamente de acuerdo con las recomendaciones de la UIT. Los fabricantes de módems son libres de implementar otros comandos y registros S como mejor les parezca, y pueden agregar opciones a los comandos estándar.

GSM

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

Ejemplos de comandos GSM: [12] [13]

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

La mayoría de los proveedores de módems USB, como Huawei, Sierra Wireless, Option, también han definido extensiones patentadas para la selección del modo de radio (preferencia GSM/3G) o similares. 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 motivos de rendimiento (la conexión PPP sólo 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 de estas extensiones están disponibles abiertamente, otras veces el proveedor requiere un NDA para acceder a ellas. [14]

Conjunto de comandos de voz

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

Ver también

notas y referencias

  1. ^ ab Victoria Shannon (7 de enero de 1999). "El ascenso y la caída del rey moderno". Los New York Times . Con un socio
  2. ^ Georgi Dalakov. "El módem de Dennis Hayes y Dale Heatherington" . Consultado el 8 de enero de 2015 .
  3. ^ "Compatible con Hayes". Mundo de la informática . 30 de marzo de 1987. p. 61.
  4. ^ "Cómo configurar un módem compatible con Hayes". 17 de junio de 2018.
  5. ^ Max, Schau (27 de septiembre de 1998). "1+2=3, +++ATH0=DoS de la vieja escuela". Lista de correo de Bugtraq . Consultado el 8 de diciembre de 2012 .
  6. ^ Frank Durda IV, "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 muerto ]
  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 línea de comando" (PDF) , V.250: control y marcación automática asíncrona en serie (05/99, 07/03) , UIT-T /Oficina de Normalización de las Telecomunicaciones
  10. ^ "Interfaces serie". Lista PIC . Consultado el 15 de mayo de 2016 .
  11. ^ "Más comandos del módem". Red Comunitaria Chebucto . Consultado el 12 de septiembre de 2016 .
  12. ^ ab "Directrices para desarrolladores de comandos AT de junio de 2010 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-plataformas.com
  14. ^ "Blog de Dan Williams: ahí es cuando tomo mi revólver ...".

enlaces externos