Você está na página 1de 12

Comandos Hayes

Reseña histórica.

Los primeros módems aparecieron en la década del 60. En aquella época los
procesadores eran excesivamente caros y de gran tamaño. Por lo tanto, en una oficina lo
que había era una gran “computadora” central a la cual los trabajadores accedían por
medio de terminales “bobas” que lo único que poseían era un teclado para poder
ingresar datos y un monitor para leer lo que recibían de la computadora central. Una de
las terminales más usadas era la “DEC VT-100” cuyo monitor poseía 25 líneas de 80
caracteres cada una. Hoy en día, los emuladores de terminales como ser el
hyperterminal poseen la opción de que los datos aparezcan en la pantalla tipo VT-100.
Estas terminales enviaban caracteres a la computadora central que procesaba los datos y
devolvía resultados. La computadora central era compartida por varias terminales.
Muchas veces esos procesadores alquilaban tiempos de procesamiento. Es decir, que el
usuario podía comunicarse, teniendo la terminal en su casa u oficina, por medio de una
línea telefónica con la computadora central. Para eso debía tener además un módem que
convirtiera las señales digitales de la terminal a señales analógicas capaces de ser
transmitidas por la línea telefónica. Lo mismo debía tener el lado de la computadora
central.
Los primeros módems se comunicaban a 300 bits por segundo, que era una velocidad
suficiente ya que una persona como mucho podría ingresar 10 caracteres por segundo,
es decir, 100 bit por segundo (8 bits de datos + 1 bit de start + 1bit de stop). Por lo tanto
300bits por segundo era una velocidad suficiente como para que una persona pueda leer
y escribir de forma fluida.
La modulación usada por el módem de 300 bps era FSK y permitía la comunicación
FULL DUPLEX. Esto lo lograba asignando dos frecuencias para el módem que llamaba
(el de la terminal): 1,07 KHz para el cero y 1.27 KHz para el uno y otras dos frecuencias
para el módem que recibía la llamada (el de la computadora): 2,025 Khz para el cero y
2,225 para el uno.
En la década del 70 las computadoras personales comenzaban a aparecer y esa
velocidad empezó a ser intolerable para transferencia de archivos, imágenes, etc.
Igualmente se siguió utilizando esos módems hasta principios de la década del 80. Entre
1984 y 1985 se hicieron muy populares los módems de 1200 bps. A fines de 1990
aparecieron los módems de 9600 bps y recién en 1998 los de 56 kbps. Todos estos
módem utilizan el canal telefónico de 0 hasta un poco menos de 4 Khz..
Para poder construir módems más veloces que 300 bps se utilizó luego la modulación
PSK y por último QAM. La velocidad de 56 Kbps es el límite máximo para el uso del
canal telefónico.
En 1999 aparecen en el mercado módems ADSL que llegan a una velocidad de 10 Mbps
aproximadamente pero utilizan el ancho de banda restante del par telefónico. Es decir,
que no usan el rango de 0 a 4 KHz, pudiendo la persona utilizar la línea telefónica con
el teléfono convencional y el módem a la vez.
Introducción Teórica

Un módem telefónico es un dispositivo que adapta las señales digitales de la PC en


señales analógicas capaces de ser transmitidas por una línea telefónica. Dicha línea
poseen una ancho de banda aproximado de 4 Khz. De esta forma permite conectar dos
terminales remotas utilizando la línea telefónica para que estas puedan intercambiar
información entre sí como se muestra en la figura 1.

Para que esa conexión se pueda lograr de forma exitosa, el módem telefónico aparte de
modular y demodular debe realizar funciones concernientes a la señalización
relacionada con la toma de línea, pedido de llamada (forma de marcado, número
telefónico destino) y contestación de llamada.

La mayoría de los módems se controlan y responden a caracteres enviados a través del


puerto serie. Estos comandos u ordenes hacen posible que el software de comunicación
pueda comunicarse con el módem. El lenguaje más extendido de comandos para
módems es el de los comandos Hayes o AT ya que casi el 100% de ellos deben
comenzar con el prefijo “AT” de “Atention”, que pone al módem en modo escucha.

Los comandos Hayes se dividen en dos grandes tipos:

1_ de ejecución de acciones inmediatas (ATD marcación, ATA contestación


o ATH desconexión)

2_ de configuración de algún parámetro del módem (Ej.: ATV define como


el módem responde tras la ejecución de un parámetro, ATE selecciona el
eco local, etc)

El módem telefónico posee dos modos de funcionamiento:

1_ Modo comando: el módem responde a los comandos que le envía la


terminal local o sea, que la información que recibe el módem la procesa
sin transmitirla por la línea y le envía su respuesta a la terminal. En este
modo es posible configurar el módem o realizar operaciones de marcado
y conexión. Antes de que se pueda enviar un comando al módem, este
debe estar en el presente modo.

2_ Modo en línea: cuando el módem se conecta con otro. Aquí, cualquier


información que envíe la terminal local al módem será transmitida al
módem remoto. En este caso el módem no procesa ningún tipo de
información y simplemente la transmite a través de la línea. Lo que sí
puede hace es añadir a los datos información adicional para la corrección
de errores y verificar si los datos que recibe del otro módem no han sido
adulterados.
Para salir de este modo, la terminal local debe enviar el carácter de
escape repetido 3 veces de forma seguida. Dicho carácter es configurado
en el modo comando. De fábrica, por lo general, el caracter de escape es
el “+”.

Comúnmente cuando uno realiza una conexión mediante un módem telefónico contra
otra terminal se utilizan programas que tiene una interfaz amigable y la mayoría de los
comandos que el software de comunicación le ingresa al módem es transparente al
usuario. Pero ver en detalle los comandos Hayes ayuda a entender cómo es en sí este
tipo de comunicación.
Formato de los comandos Hayes

Como se dijo anteriormente la mayoría de los comandos Hayes empieza con la


secuencia “AT”, siendo las excepciones el comando “A/” que repite el último comando
introducido y la secuencia triple del caracter de escape. Los otros comandos luego de la
secuencia “AT” siguen con las letras del alfabeto. Además, muchos de ellos necesitan a
continuación un valor numérico, que en el caso que no se escriba se tomará como que
dicho valor es cero. Por ejemplo, la función “ECO” permite que el módem envíe a la
terminal el mismo carácter que recibe de ella y procesa. De esta forma el operador de la
terminal puede visualizar en pantalla lo que le está enviando al módem. La secuencia
ATE1 activa esta función y la ATE0 ó ATE (al no escribir el valor numérico el módem
lo toma como que es cero) la desactiva.
A media que se fueron requiriendo más funciones en los módems se tuvo la necesidad
de agregar más comandos. A estos comandos se los llama extendidos y tienen la forma
AT&X donde “&” indica que el comando X es extendido. Así mismo cada fabricante
introdujo otros que no fueron estándares y cumplían funciones específicas. No todos
los módems responden a estos comandos. En resumen, a los comandos Hayes se los
puede dividir en 4 grupos:

1_ Básicos (AT...): estos comandos fueron los que inicialmente


fueron definidos y cumplen funciones elementales.

2_ De registro(ATSi=, ó ATSi?): modifican los valores de los


registros internos del módem ó solicitan sus valores.

3_ Extendidos(AT&..): comandos adicionales que se agregaron


posteriormente a las definiciones de los comandos básicos.
Generalmente cumplen funciones poco más complejas que los
básicos.

4_ Propietarios(AT/...): definidos por el fabricante del equipo.

Ante cualquier comando enviado al módem, este responde con el resultado de la


operación: “OK”, “ERROR”, CONNECT, etc. El operador de la terminal puede elegir
que el resultado, en vez de aparecer en forma alfabética, aparezca de forma numérica
donde cada número corresponde a una respuesta en particular. Por ejemplo “OK” tiene
por valor cero.
El comando para elegir la forma de la respuesta es ATV donde ATV1 activa la respuesta
alfabética y ATV0 la numérica. Esta última forma es útil cuando es un programa y no
un usuario el que se está comunicándose con el módem y necesita de un valor numérico
para comparar y tomar una acción correspondiente.
Registros del módem y perfiles de configuración.

Los registros de un módem son unidades de memoria donde se almacenan parámetros


que controlan el funcionamiento del mismo. Las secuencias para los registros pueden
ser:

 Sn=x: se configura al registro “n” con el valor “x”, donde x puede


tomar valores 0 a 255.
 Sn?: se lee el valor guardado en el registro “n”.

El conjunto de todos los registros junto con otros parámetros (por ejemplo la
configuración del eco local, el modo de visualización de los resultados, etc.) forman un
perfil de configuración.
Cuando se configura al módem se puede variar uno o más registros y, a medida que se
lo hace, el módem automáticamente toma el cambio. Si esta configuración activa (la que
se está usando) no se guarda, se perderá cuando finalice la comunicación entre la
terminal y el módem. Por lo general, se pueden guardar hasta dos perfiles de
configuraciones.
Mediante el comando &W0(precedido por la secuencia AT) se graban los valores
actuales de todos los registros y demás parámetros como perfil de configuración 0 en la
memoria no volátil. Lo mismo se hace con &W1, para guardar la configuración actual
en el perfil de configuración 1.
El comando Z0 llama al perfil de configuración 0, es decir que todos los registros junto
con los otros parámetros toman los valores asignados en el perfil 0. Lo mismo hace Z1
para el perfil 1. Generalmente a los comandos Z0 y Z1 se los llama comandos de Reset.

Además de los anteriores, por lo general, existen dos perfiles de configuración más que
son configurados en fábrica y están guardados en la memoria ROM. La llamada a estos
perfiles se hace mediante el comando &F(precedido por la secuencia AT). &F0 llama al
perfil de fábrica 0 y &F1 al perfil de fábrica 1.

Por último, cabe preguntarse qué perfil de configuración toma el módem cuando se
inicializa. Esto se define con el parámetro &Y(precedido por la secuencia AT). &Y0
hace que lo haga con el perfil guardado con W0. Lo mismo hace &Y1 para el perfil
guardado con W1.

En el Apéndice de comandos AT se encuentran los principales registros S como así los


demás comandos de configuración..
Control de Flujo

El propósito de este control es detener el flujo de información del transmisor por parte
del receptor, debido a que este no es capaz de procesar toda la información al ritmo que
le está llegando (al receptor se le llena el buffer). Cuando el receptor está listo para
recibir más información le informa de su estado al transmisor para que reanude el flujo
de información.
El control de Flujo es un mecanismo que se da, en este tipo de aplicaciones, entre la
terminal local y el módem local y, como ambos (módem, terminal) pueden transmitir
información, este tipo de control tiene que darse en ambos sentidos.
Son dos los tipos de control de flujo más usados:

1_ Control de Flujo por Hardware: este se ejerce mediante señales eléctricas


que se transmiten y reciben en cables diferentes al de las señales de datos.
Cuando el transmisor posee información para enviar, activa la señal de
RTS (request to send / pedido para poder enviar información) y, si el
receptor está listo para recibirla, activa la señal de CTS (clear to send /
listo para que se le envíe dicha información). Cuando al receptor se le
llena el buffer le baja la señal de CTS al transmisor para que deje de
enviar más datos.
Este tipo de control de flujo es el más seguro ya que el CTS y el RTS
están separados de los datos y esto hace además que soporte la operación
a mayor alta velocidad.

2_ Control de flujo por software: en este caso el control viaja mezclado con
la información ya que se utilizan dos caracteres especiales XON y XOFF.
Cuando al receptor se le llena el buffer le envía al transmisor el caracter
de XOFF (configurado en el registro S33 del módem) para que deje de
transmitir y cuando está listo de nuevo le envía el caracter XON
(configurado en el registro S32 del módem) para que reanude el flujo de
información.

Generalmente, cuando se transmiten caracteres tipiados aislados como ser comandos de


configuración, ya sea al módem o mediante este a algún tipo de equipo conectado de
forma remota con un módem remoto, no hace falta tener control de flujo porque la
velocidad de entrada de datos en muy baja (Ej.: 30 bits/seg). Pero si lo que se va a
transmitir es un archivo de considerable tamaño es aconsejable tener control de flujo,
porque si la velocidad de procesamiento de la información de la terminal y del módem
no son las mismas, se pueden perder datos y abortar la transmisión.
Cabe aclara por último, que en una comunicación entre dos terminales por medio de dos
módems, el control de flujo se configura por separado en ambas puntas y puede darse
que en una se lo active y en otra no o que se activen en ambas pero con distinto tipo. El
éxito de la comunicación dependerá en cada caso de las características de los equipos y
de las velocidades en juego.
Introducción al emulador de terminal (Hyperterminal)

Configuración para la conexión

En esta sección se explica como comunicarse con y a través del módem. Para esto se
hace uso de un programa que trae Windows, el Hyperterminal que generalmente se
encuentra en “Inicio → Programas → Accesorios → Comunicaciones → HyperTerm”
Para que la PC se comunique correctamente con el equipo, se necesita configurar el
hyperterminal de forma correcta y crear un ícono que identifique la comunicación con el
módem. Para esto se debe hace doble clic en el ícono “Hyperterm” que se muestra a
continuación:

Una vez que se ha hecho doble clic sobre dicho ícono aparece la siguiente pantalla:

Aquí hay ingresar un nombre y elegir un ícono que identificará a la conexión con el
módem. Esto se hace una sola vez. En un futuro cuando se quiera conectar con el equipo
se tendrá que ir a la misma carpeta en donde está el Hyperterm pero se hará doble click
en el ícono que elijamos en este paso, por ejemplo el del teléfono rojo y amarillo. El
nombre que ingresemos debe ser acorde con el equipo al cual queramos comunicarnos.
En este caso un nombre apropiado sería “Modem" como se muestra en la figura.
Cuando ya hayamos elegido el ícono y el nombre para la conexión, se presiona el botón
de “Aceptar” y surgirá la próxima pantalla en donde ya se puede observar el ícono que
elegimos y el nombre para la conexión. En esta ventana se debe elegir en la casilla que
dice “Conectar usando”el puerto de la PC para comunicarnos con el equipo. Para esto
hay que fijarse cual es el Puerto de comunicaciones libre que hay en la PC. Por lo
general es el Com1 o Com2 (Directo a Com1 o Directo a Com2).
Cuando ya se eligió el puerto de comunicaciones solo se debe presionar “Aceptar” para
pasar a la próxima ventana.
Observar que de fondo a la pantalla activa ya está abierto el programa Hyperterminal.

La próxima ventana en aparecer es la siguiente:

Aquí se debe configurar:


 Bits por segundo que es la velocidad con que se comunican la
PC con el módem. El valor estándar es 9600.
 Bits de datos: este valor debe configurarse en 8.
 Paridad: este parámetro es para la corrección de errores y
puede configurarse en Par, Impar o Ninguna.
 Bit de parada: este valor configura la duración del bit de
parada, se puede elegir entre 1, 1,5 y 2.
 Control de flujo: como se explicó anteriormente este
parámetro define el control de flujo que hay entre la PC y el
módem y puede ser por Hardware (RTS, CTS), Software
(Xon, Xoff) o no haber control de flujo.

Nota: los valores ingresados dependerán del módem que se esté usando.

Una vez que se configuró lo anterior hay que presionar “Aceptar” y el programa
Hyperterminal estará listo para que la PC pueda conectarse con el equipo. Esto se
muestra en la siguiente figura:

Dentro de esta ventana se pueden ingresar las secuencias de parámetros para configurar
el equipo y poder comunicarse con el otro módem. Para esto debe aparece dentro de la
pantalla del hyperterminal un guión inferior titilante en la parte superior izquierda de la
pantalla como se muestra en la figura. Si esto no es así o si ni siquiera aparecen en
pantalla los caracteres que se ingresan, se deberá revisar el cable de comunicación o
cambiar el puerto de comunicación por donde se hará la conexión. Por ejemplo si se
eligió el Com1 ahora se deberá probar con cualquier otro, por ejemplo, Com2.
El Hyperterminal también permite la transmisión de archivos. Para esto se debe ir al
menú “Transferir” que se encuentra en la parte superior de la pantalla y elegir “Enviar
archivo”.

Una vez hecho esto aparece la siguiente pantalla para que se pueda elegir el archivo a
enviar y el protocolo de comunicación.

Una vez hecho lo anterior se deberá presionar “Enviar” para empezar a enviar dicho
archivo
Cuando queramos cerrar el Hyperterminal aparecerá la siguiente pantalla:

Se debe presionar “Si” para poder guardar la configuración.


En un futuro, para conectarse de nuevo con el equipo no hay que repetir todos estos
pasos, solo hay que hacer doble click en el ícono que hemos creado (siguiente figura) y
la conexión se hará conforme a la configuración ingresada la primera vez.
Apéndice de Comandos AT

Las siguientes listas contienen los comandos AT más usados dividida en 4 grupos:

Comandos Básicos (recordar que se les debe anteponer AT)

 A : responder la llamada entrante


 A/ : repetir el último comando (no se le antepone AT)
 D : configura la forma de marcado: T (por tonos), P (por pulsos)
 E : deshabilita el eco para la terminal
 E1 : habilita el eco
 H : cuelga la llamada
 I : pedido de información
 L : regula el volumen del sonido de salida del módem
 O : retorna al modo En Línea desde el modo Comando.
 Q : configuración para mostrar los resultados
 Q1 : hace que el módem no arroje resultados de las operaciones
 Sn? : pregunta por el valor del registro n
 Sn=r : ingresa el valor r al registro n
 V : el módem devuelve resultados numéricos
 V1 : el módem devuelve resultados con palabras
 X : reporta los códigos básicos de conexión
 X1 : ídem al anterior y agrega la velocidad de la conexión
 X2 : ídem al anterior y además detecta tono de marcado
 X3 : ídem X1 y además es capaz de detectar tono de ocupado
 X4 : El módem reporta y detecta todos los acontecimientos anteriores
 Z : se resetea la configuración del módem con los datos del perfil 0
 Z1 : se resetea la configuración del módem con los datos del perfil 1
 W : envía códigos de progreso de la negociación
 +++ : carácter de escape para volver al modo comando estando en modo en
línea sin colgar la comunicación ( por defecto es el carácter + pero puede
configurase otro en el registro S2). Aquí tampoco se debe anteponer el prefijo
AT.

Comandos Extendidos (recordar que se les debe anteponer AT)

 &C : mantiene activa la señal de “Carrier Detect”(contra el otro módem).


 &C1 : detecta e indica “Carrier Detect” (contra el otro módem).
 &D : ignora la señal de “Data Terminal Ready”.
 &D1 : si DTR se desactiva el módem para a modo comando.
 &D2 : el módem cuelga la comunicación si el DTR cae.
 &D3 : el módem cuelga, se resetea y vuelve a modo comando si cae el DTR.
 &F : carga el perfil de configuración de fábrica 0.
 &F1 : carga el perfil de configuración de fábrica 1 (IBM-PC compatible).
 &F2 : carga el perfil de configuración de fábrica 2 (MAC compatible).
 &F3 : carga el perfil de configuración de fábrica 3 (MAC compatible).
 &K : deshabilita el control local de flujo.
 &K1 : habilita el control local de flujo por hardware (RTS/CTS).
 &K2 : habilita el control local de flujo por software (XON/XOFF).
 &Q : deshabilita el control de errores.
 &Q5 : selecciona el control de errores V.42 (necesita control de flujo).
 &Q8 : selecciona una corrección de errores alternativa: MNP
 &Q9 : condiciona la compresión: si está activo la V.42 bis desactiva el MNP5.
 &U : habilita la modulación Trellis según la norma V.32.
 &U1 : deshabilita la modulación Trellis según la norma V.32.
 &V : muestra la configuración activa.
 &W : guarda la configuración actual en el perfil 0.
 &W1 : guarda la configuración actual en el perfil 1.
 &Y : hace que el perfil 0 sea el activo cuando se prende el equipo.
 &Y1 : hace que el perfil 1 sea el activo cuando se prende el equipo.

Nota: estos comandos no son aceptados por la totalidad de los módems y es posible
que algunos de los parámetros aquí mencionados no tengan los mismos efectos en
todos los módems.

Comandos Propietarios (recordar que se les debe anteponer AT)

 %C : deshabilita la compresión de los datos.


 %C1 : habilita la compresión MNP5.
 %C2 : habilita la V.42 bis.
 %C3 : habilita la MNP5 y la V.42 bis.

Registros S.

 S0 : número de “rings” al cabo del cual el módem debe contestar. Si el valor


es 0 el módem no contesta nunca de forma automática.
 S1 : lleva la cuenta de cuantos rings han ocurrido.
 S2 : contiene el número en ASCII del caracter de escape. Por default: 43 (+)
 S6 : tiempo de espera para el tono de discado.
 S7 : tiempo de espera para la señal de “Carrier Detect” remoto.
 S12 : tiempo de guarda para pasar al modo comando luego del “+++”
 S37 : Negociación de la velocidad.

Nota: la cantidad de registros que posea un módem dependen del modelo del mismo.
Solo los primeros 12 son estándar.

Você também pode gostar