1era. Parte.
El artículo anterior tuvo como objetivo introducirnos
en el mundo del GPRS. En este, se detallaran los
pasos a seguir para establecer una conexión
GPRS y se ejemplificara el uso de los comandos básicos
del stack TCP/IP de los módulos GSM/GPRS
de Motorola.
Concepto de Funcionamiento:
En la figura que se muestra a continuación
se ven los elementos que intervienen en una conexión
GPRS.
El equipo remoto, el cual esta formado por un DTE
(Data Terminal Equipment) y un ModemG20/G24. El
DTE es quien necesita enviar y recibir datos, y
lo realiza utilizando el ModemG20/G24.
La red GSM, es a través de la cual se brinda
el servicio de GPRS y esta compuesta por un conjunto
de BTS (Base Transceiver Station), y es este conjunto
el que genera la cobertura de red.
El Gateway, es un dispositivo puesto a disposición
de los usuarios por parte del prestador del servicio
GSM, el cual asigna a cada dispositivo que se conecte
una IP privada en forma dinámica para la
comunicación, y permite el envío y
la recepción de paquetes hacia y desde Internet.
El Servidor, es el equipo que recibe los paquetes
enviados por el equipo remoto a través de
la red GSM, y quien con ellos realiza alguna tarea.
La cual puede ser desde reenviar los paquetes recibidos
a otros equipos remotos o mostrarlos en una página
web disponible en Internet, etc. Este debe poseer
una IP fija de Internet, y tendrá un puerto
TCP/IP en modo escucha (LISTEN) el cual recibirá
los paquetes IP desde Internet enviados por el remoto
a través de GPRS. A fin de confirmar la recepción,
es conveniente preveer que el servidor confirme
la llegada correcta de un paquete enviando otro
hacia el DTE.
Para realizar el envío de datos a través
de GPRS, se deben seguir los siguientes pasos.
1- Registrarse en la Red GSM.
Esta tarea es realizada automáticamente
por el modulo GSM/GPRS, de igual forma se puede
realizar manualmente a través del comando
AT+CREG. Es necesario antes de realizar cualquiera
de las siguientes acciones que el modulo se encuentre
registrado, lo que se puede verificar con el mismo
comando antes nombrado y como se detallara en el
ejemplo.
2- Attachearse en la Red GPRS.
Esta tarea es realizada automáticamente
por el modulo GSM/GPRS, de igual forma se puede
realizar manualmente a través del comando
AT+CGATT. Es necesario antes de realizar cualquiera
de las siguientes acciones que el modulo se encuentre
attacheado, lo que se puede verificar con el mismo
comando antes nombrado y como se detallara en el
ejemplo.
3- Abrir una conexión con el Gateway
de la prestadora.
Esta tarea se realiza en forma manual y
a través del comando AT+MIPCALL. Ejecutado
este comando se pueden llegar a obtener dos respuestas
por parte del Gateway de la prestadora:
1- +MIPCALL: 172.17.53.121<CR><LF>
2- +MIPCALL: 0<CR><LF>
La primera de ellas nos indica que se ha establecido
una conexión y que para la comunicación
con el Gateway se nos ha asignado la IP mostrada.
La segunda respuesta nos indica que no se ha podido
establecer una conexión.
Debemos aclarar que la IP que el Gateway nos entrega
es privada y solo para comunicarnos con él.
Cuando nosotros enviamos un paquete hacia Internet,
este va desde nuestro equipo hacia el Gateway y
sale a Internet por una IP publica y dinámica
asignada por el Gateway, la cual estará relacionada
con la IP privada que tenemos durante un periodo
de tiempo que dependerá de la política
de cada prestadora.
La sintaxis del comando AT+MIPCALL es la siguiente:
AT+MIPCALL:<Operación>,”<APN
prestadora>”,<USR>,<PSW><CR><LF>
Donde “Operación” puede ser conectar
(1) o desconectar (0).
Y para las diferentes prestadoras tenemos los siguientes
APN’s, USR’s y PSW’s.
Movistar: APN: internet.unifon USR: wap PSW: wap.
CTI Movil: APN: internet.ctimovil.com.ar USR: gprs
PSW: gprs.
Personal: APN: gprs.personal.com.ar USR: gprs PSW:
gprs.
4- Abrir el puerto del Servidor en Internet.
Luego que se tiene una conexión,
se debe abrir el puerto destino de nuestro servidor.
Para realizar esta tarea se debe usar el comando
AT+MIPOPEN, el cual tiene la siguiente sintaxis:
3- AT+MIPOPEN:<Socket>,<Port_Origen>,”<IP_Destino>”,<Port_Destino>,
<Protocolo><CR><LF>
Donde “Socket” puede ser de 1 a 4, y
“Protocolo” TCP (0), que es nuestro
caso, ya que SMTP corre sobre TCP, o UDP (1).
Este comando nos informara si la apertura del puerto
fue realiza satisfactoriamente o no, y esto lo hará
a través de la siguiente respuesta.
4- +MIPOPEN: <Socket>,<Estado><CR><LF>
Donde si “Estado” es igual
a 1, significa que el puerto fue abierto, si el
estado es igual a 0 significa que no se pudo abrir.
5- Codificar la información a transmitir.
La información a enviar no se puede
transmitir en formato de carácter sino que
hay que pasarlos a hexadecimal.
Como ejemplo de esto vemos el famosos mensaje “HOLA
MUNDO” que pasando a formato hexadecimal queda
de la siguiente forma “484F4C41204D554E444F”
6- Cargar en el Buffer de transmisión
la información.
Los datos que vamos a transmitir, se deben
colocar primero en un Buffer del modulo G20/G24.
Esto se realiza a través del comando AT+MIPSEND,
el cual tiene la siguiente sintaxis:
AT+MIPSEND=<Socket>,”<Data>”<CR><LF>
Donde “Socket” nos indica por cual de
los 4 sockets van a salir los datos. Y “Data”
es el dato codificado en hexadecimal como se explico
arriba, no pudiendose cargar mas de 160 caracteres
en este campo, lo que representa 80 caracters sin
codificar. Como resultado de este comando podemos
tener dos respuestas.
ERROR<CR><LF>
En cuyo caso, si tuvimos la precaución de
configurar el modo texto del comando de reporte
de errores, vamos a saber cual es el posible problema.
+MIPSEND: <Socket>,<Free Size><CR><LF>
En este caso, los datos fueron bien buffereados
y la respuesta nos informa además el espacio
libre en el Buffer para seguir almacenando datos.
7- Transmitir la información.
Esta se realiza a través del comando
AT+MIPPUSH, y la sintaxis es la siguiente:
AT+MIPUSH=<Socket><CR><LF>
Continuará..........
|