En el tutorial anterior , cubrimos cómo conectar un módem GSM-GPRS SIM900A con Raspberry Pi, Arduino y computadoras de escritorio. SIM900A puede comunicar datos con el dispositivo de control a través del receptor/transmisor asíncrono universal ( UART ), protocolo I2C o SPI.
El módem es un dispositivo móvil con un número IMEI capaz de realizar todas las operaciones del teléfono móvil (llamadas de voz, SMS, MMS, fax e Internet). "Entiende" los comandos AT y se puede configurar y operar pasándole esos comandos.
Hubo un tiempo en que los teléfonos móviles (como los teléfonos Nokia) se construían conectando directamente una pantalla, un teclado, unos altavoces, un micrófono y un sistema de batería a estos módems. Los teléfonos inteligentes ahora están construidos con procesadores de alta gama que ejecutan sistemas operativos móviles complejos (iOS, Android, Windows).
Un procesador de plataforma móvil interactúa con lo siguiente para construir una computadora portátil completa que es un teléfono inteligente:
- GOLPEAR
- ROM
- Una pantalla táctil
- Una unidad de procesamiento de gráficos (GPU) dedicada
- Micrófono y parlantes
- Cámara y sensores
- Una unidad de procesamiento neuronal (NPU) para inteligencia artificial
- Un sistema de batería y un módem inalámbrico, como un módem 4G/5G. (Incluso en los teléfonos inteligentes existe el módem inalámbrico que ofrece una solución celular completa).
Los módems inalámbricos se comunican mediante comandos AT, que es una abreviatura de "atención". Estos comandos sirven como instrucciones que controlan el módem inalámbrico. Los módulos inalámbricos, como el SIM900A, son esencialmente equipos móviles con acceso a la consola.
La consola se comunica y responde a comandos AT, que se pueden intercambiar con un módem mediante la interfaz serie (UART), I2C o SPI . El dispositivo de control puede ser cualquier microcontrolador o computadora. Al igual que en el tutorial anterior, donde analizamos cómo conectar el SIM900A con Raspberry Pi Arduino u otros microcontroladores, incluidas las computadoras de escritorio que usan tarjetas seriales USB, el módem también puede ser controlado por todos estos dispositivos.
Comprender los comandos AT
Los comandos AT son instrucciones para un módem inalámbrico. Los comandos AT básicos son un subconjunto del comando Hayes. También hay comandos AT que se implementan de acuerdo con la solución celular (como GSM-GPRS, GSM-GPRS+GNSS, WCDMA/HSPA/HSPA+, 4G/LTE y CAT/NB-IoT).
El fabricante del módem también puede implementar un subconjunto de comandos AT en un módem específico. Por ejemplo, la forma en que se implementan los comandos AT básicos y extendidos en un módem puede diferir de un proveedor a otro.
Cada módem tiene y responde a su propio conjunto de instrucciones. Los comandos AT son los mismos para un módem inalámbrico o telefónico. De manera similar a un procesador que recibe instrucciones y genera resultados a través de puertos paralelos (o, en algunos casos, a través de puertos serie), un módem recibe comandos y responde a ellos a través de interfaces serie estándar (como UART, SPI e I2C).
El módem SIM900A admite comandos AT de acuerdo con:
- El UIT-T (Unión Internacional de Telecomunicaciones, sector de las Telecomunicaciones)
- El documento V.25TER
- El ETSI GSM07.07 (es decir, el comando AT estándar ETSI está definido para equipos móviles GSM)
- ETSI GSM07.05 (es decir, el estándar ETSI es para servicio de mensajes cortos o SMS)
- Servicio de transmisión celular (o CBS)
También implementa los comandos AT para el kit de herramientas de aplicaciones SIM, compatibilidad con GPRS, kit de herramientas de aplicaciones TCP/IP y aplicaciones IP, HTTP y FTP, y tiene comandos AT adicionales implementados por su proveedor de SIMCOM.
Sin embargo, es posible que el módem no admita todos los comandos AT según las especificaciones ITU-T y ETSI y solo un subconjunto de ellos. Los comandos AT admitidos se pueden utilizar para configurar un módem y acceder a servicios como llamadas de voz, SMS, MMS, faxes y enlace de datos a través de los protocolos TCP/IP, IP, HTTP y FTP.
Los tipos de comandos AT
Los comandos AT básicos son un subconjunto de los comandos de Hayes. Los demás se denominan comandos AT extendidos.
Hay cuatro tipos de comandos AT básicos:
1. Comandos de prueba: se utilizan para probar la compatibilidad de un comando con un módem y para confirmar que el módem implementa o admite un comando. El módem puede responder con un OK o una configuración de comando compatible en respuesta al comando de prueba. Estos comandos están en formato AT+.
2. Leer comandos: sirve para conocer la configuración del celular o módem. Estos comandos están en formato AT+.
3. Configurar comandos: se utiliza para modificar la configuración del teléfono celular o módem. Estos comandos incluyen parámetros que se deben configurar para cambiar una configuración específica de teléfono/módem. Están en formato AT+
4. Ejecutar comandos: se utiliza para realizar una operación celular, como realizar o contestar una llamada de voz, leer, enviar o eliminar un SMS, etc. Estos comandos están en formato AT+.
La sintaxis de los comandos AT
Todos los comandos AT comienzan con el prefijo "AT" o "at" y terminan con una entrada en la línea de comando
La respuesta del módem viene en la forma
Los comandos AT del SIM900A se pueden dividir en tres subconjuntos:
1. Sintaxis básica: tienen el formato “AT
2. Sintaxis de los parámetros S: tienen el formato “ATS
3. Sintaxis extendida: son sintaxis para comandos AT extendidos. La sintaxis para los comandos de prueba, lectura, configuración y ejecución se menciona anteriormente.
Por lo tanto, los comandos básicos usan sintaxis básica o de parámetros S y los comandos AT extendidos usan una sintaxis diferente según su tipo.
El búfer de línea de comando del módem SIM900 puede aceptar un máximo de 556 caracteres. Es posible pasar uno o varios comandos en una línea. Sin embargo, si la línea supera los 556 caracteres, no se ejecutará ninguno de los comandos y el módem devolverá "ERROR".
Si se pasa un solo comando en una línea, no se puede pasar otro comando hasta que se reciba la respuesta del módem. Si se pasan varios comandos en una línea, se debe anteponer "AT" o "at" al principio de la línea.
Los comandos de parámetros y sintaxis básica no deben estar delimitados, pero todos los comandos AT extendidos deben estar delimitados por punto y coma (;) en la línea. La línea también debe terminar con la línea de comando enter.
Los comandos AT del SIM900 utilizan de forma predeterminada el juego de caracteres IRA. Otros conjuntos de caracteres admitidos por el módem SIM900 incluyen:
- formato GSM
- UCS2
- MALEFICIO
- PCCP
- PCDN
- 8859-1
El juego de caracteres afecta a los SMS, los mensajes SMS de difusión celular, las entradas de la agenda telefónica y las secuencias alfa del kit de herramientas de la aplicación SIM. El juego de caracteres utilizado por el módem se puede consultar mediante el comando AT “AT+CSCS”.
La lista de comandos AT
El módem SIM900 admite los siguientes comandos AT básicos:
Esta lista es relativamente corta y sólo incluye algunos de los comandos más comunes. El módem SIM900 admite cientos de comandos AT según diferentes especificaciones.
Comandos AT para llamadas de voz
Estos comandos AT son útiles para realizar y recibir llamadas de voz utilizando un módem SIM900:
Comandos AT para mensajes SMS
Estos comandos AT son útiles para enviar y recibir mensajes SMS usando un módem SIM900:
Comandos AT para enlace de datos a través de un protocolo HTTP
En un protocolo HTTP, los datos se pueden comunicar mediante dos métodos:
1. Método GET: se utiliza para obtener datos del servidor.
2. Método POST: se utiliza para publicar datos en el servidor.
Pero primero, el módem debe conectarse a un GPRS configurando un perfil de portador.
Estos comandos AT pueden ayudar:
Estos comandos AT son útiles para obtener datos del servidor mediante el método HTTP GET:
Estos comandos AT son útiles para obtener datos del servidor mediante el método HTTP GET:
Comandos AT para un enlace de datos a través del protocolo TCP/IP
El módem SIM900 también admite un enlace de datos a través del protocolo TCP/IP. El módem puede conectarse mediante el protocolo TCP/IP de dos modos:
1. Modo de conexión única: solo se puede establecer una conexión
2. Modo de conexión múltiple: se pueden establecer un máximo de ocho conexiones
La aplicación TCP/IP también puede tener dos modos: transparente y no transparente. En modo de conexión múltiple, SIM900A solo funciona en modo de aplicación no transparente.
Estos comandos AT son útiles para comunicarse como cliente TCP de módem con un servidor:
Cómo enviar comandos AT desde un programa de usuario
Los comandos AT se pueden enviar a un módem inalámbrico a través de un programa de usuario, como un script de Python y como bytes. Un lenguaje de programación puede utilizar una secuencia de escape para la entrada de línea de comando.
Por ejemplo, en Python3, la línea de comando enter se puede pasar en serie usando un retorno de carro, para el cual '\r' es la secuencia de escape. En Python2, para la entrada de línea de comando, '\r\n' es la secuencia de escape.
En un programa de usuario, las funciones de manipulación de cadenas se pueden utilizar para codificar y decodificar adecuadamente comandos AT y sus respuestas. Las funciones de manipulación de cadenas son particularmente útiles cuando se deben pasar caracteres, como CTRL+Z (sustituto), junto con el comando AT.
Por ejemplo, en Python3, la función str.encode se puede utilizar para codificar comandos AT en un script (programa de usuario). CTRL+Z se puede pasar usando la función char con 26 como argumento, como char(26) o char(0x1A).
En el siguiente tutorial, aprenderemos cómo hacer y recibir llamadas y cómo enviar y recibir SMS en Raspberry Pi y una computadora de escritorio usando el módem SIM900A.