Los comandos AT (Attention Commands), o comandos AT, son la base de la comunicación entre cualquier módem celular (o RF) y su controlador principal. Cualquier desarrollador de firmware o hardware que trabaje con estos módems usará estas “instrucciones” para enviar comandos al módem para diversas funciones. Los comandos AT, que ahora son un estándar de instrucciones universal para todos los módems celulares, incluso de diferentes fabricantes, fueron creados originalmente por Dennis Heyes como el conjunto de comandos Heyes para el ‘Heyes 300 Baud SmartModem’ en 1981.

Los comandos AT se utilizan principalmente para configurar y depurar módems, así como para habilitar la conexión de red a un operador en módems GSM, GPRS y teléfonos móviles. Los comandos permiten a los desarrolladores enviar y recibir varios parámetros de dispositivos y de red del módem, como la indicación del estado actual de la red, el roaming, la tecnología de red que se está utilizando actualmente (4G, NB-IoT, 2G, etc.), entre otra información relevante.

Los comandos AT para módulos GSM/IoT se pueden utilizar para acceder a algunos servicios cruciales como: información del dispositivo y de la tarjeta SIM, servicios de SMS y MMS, servicios de fax (si son compatibles), servicios de voz y datos. Incluso hoy en día, los comandos AT siguen utilizándose para establecer y configurar conexiones de red en los modernos módems 5G.

¿Cómo se comunican los comandos AT?

Las instrucciones de comandos AT son instrucciones de una sola línea que deben enviarse al dispositivo en orden secuencial, mientras que el usuario debe esperar la respuesta (en la mayoría de los casos) antes de enviar el próximo comando. Enviar los comandos AT relevantes y recibir sus respuestas generalmente requiere un dispositivo principal, como un microcontrolador, que esté conectado al módem a través de un UART (Receptor/Transmisor Asincrónico Universal). Un UART es un protocolo de comunicación de dos cables que permite que dos dispositivos se comuniquen entre sí de forma semidúplex.

En módems más nuevos, las instrucciones de comandos AT pueden enviarse directamente a través de una conexión USB o incluso de forma inalámbrica a través de la red para diagnósticos remotos.

Sintaxis y Tipos de Comandos AT

Similar a la sintaxis de un lenguaje de programación, los comandos AT también tienen sintaxis que el usuario debe seguir para enviar comandos válidos al dispositivo. La sintaxis general para un comando es la siguiente: AT<COMANDO><SUFIJO><DATOS>

Cualquier comando AT debe ir precedido por “AT” para invocar las funciones de comando AT dentro del módem, seguido por el comando real que se debe enviar al módem, seguido por el sufijo para indicar el modo de comando o ‘tipo’ y luego los datos que se necesitan enviar, aunque este campo puede que no sea necesario para todos los comandos. Esta estructura se conoce como la estructura de línea de comando y se termina con un solo retorno de carro o el usuario puede enviar varios comandos en una sola línea separados por punto y coma.

Los comandos AT se pueden clasificar en dos conjuntos: Comandos Básicos y Comandos Extendidos.

Comandos Básicos

Estos son comandos que no comienzan con el símbolo “+”. Algunos de los comandos comunes en el conjunto básico son D (Marcar), A (Responder), H (Control de gancho) y O (Volver al estado de datos en línea).

Comandos Extendidos

Los Comandos Extendidos son aquellos que comienzan con el símbolo “+”. Todos los comandos AT de GSM se encuentran en esta categoría y algunos de los comandos comunes son +CMGS (Enviar mensaje SMS), +CMGL (Listar mensajes SMS) y +CMGR (Leer mensajes SMS).

Además, los comandos AT se dividen principalmente en 4 categorías: Comandos de Prueba, Comandos de Lectura, Comandos de Configuración y Ejecución. La respuesta proporcionada por el módem se conoce como el ‘Código de Resultado’.

Un código ‘OK’ significa que el comando se ha ejecutado correctamente, mientras que un código ‘ERROR’ puede devolverse por las siguientes razones:

Comandos de Prueba

Estos se utilizan principalmente para verificar si el comando dado es compatible con el módem o no. Dependiendo del módem específico, algunos comandos AT pueden o no ser compatibles debido a limitaciones de hardware o software.

Sintaxis: AT<NOMBRE DEL COMANDO>=?

Por ejemplo: ATD=? ATD significa Comando de Marcación y ATD=? se utiliza para verificar si el módem admite la funcionalidad de marcado.

Comandos de Lectura

Estos se utilizan para extraer información del módem. Esta información puede ser sobre ciertos parámetros o configuraciones que se hayan establecido en el módem o incluso sobre parámetros relacionados con la red.

Sintaxis: AT<NOMBRE DEL COMANDO>?

Por ejemplo: AT+CBC?

Comandos de Configuración

Se utilizan para modificar y configurar parámetros/ajustes del módem. Esto se utiliza principalmente durante la configuración inicial del módem.

Sintaxis: AT<NOMBRE DEL COMANDO>=valor1, valor2, …, valorN

Por ejemplo: AT+CSCA=”+123456789″, 120

Comandos de Ejecución

Se utilizan para realizar una operación con o en el módem. Este comando es el tipo más común de comando.

Sintaxis: AT<NOMBRE DEL COMANDO>=parámetro1,…, parámetroN

Por ejemplo: AT+CMSS=1,”+123456789”, 120

Comandos AT más comúnmente utilizados y Plataforma de IoT inalámbrica Cavli Hubble

A lo largo de los años, la tecnología de módems AT y sus implementaciones han permanecido en gran medida estancadas, y la necesidad de acceso físico para enviar los comandos a los módems se ha demostrado engorrosa en situaciones donde el dispositivo ya ha sido desplegado. Con esto en mente, Cavli ha desarrollado nuestros SmartModules con la capacidad de recibir comandos AT a través de redes celulares a través de Cavli Hubble. Esto permite a los desarrolladores enviar comandos AT a dispositivos desplegados en todo el mundo a través de la plataforma Hubble, lo que permite un fácil y rápido diagnóstico y configuración de dispositivos a través de una interfaz de terminal fácil de usar en la plataforma Hubble.

Source: Medium