2da. Parte.
Antes de entrar propiamente en el ejemplo describiremos
como se nos informa cuando el Modulo GSM/GPRS de
Motorola recibe un paquete por GPRS. Como existen
dos posibles tipos de protocolos de enlaces, TCP
y UDP, existirán dos tipos de paquetes de
recepción, uno para cada uno de los protocolos
nombrados.
Para el caso de TCP:
+MIPRTCP: <Socket>,<Left>,<Data><CR><LF>
Y para el caso de UDP:
+MIPRUDP:<IP Origen>,<Port Origen>,<Socket>,<Left>,<Data><CR><LF>
Donde IP Origen y Port Origen son la dirección
IP y el puerto de donde los datos fueron enviados
y Socket indica por cual de los 4 socket del modulo
ingresaron los datos. Los otros dos parámetros
están íntimamente relacionados con
el dato que se recibe, este se divide en varios
paquetes de 160 caracteres hexadecimales y cada
uno de los paquetes resultantes de esta división
serán enviados fuera del modulo en un paquete
con el formato descripto arriba, por lo que el campo
Left indicara cuantos bytes faltan para la recepción
del paquete completo.
Para un mejor entendimiento de lo explicado en esta
nota se recomienda la lectura del manual de comandos
AT, disponible es el siguiente link:
http://www.electrocomponentes.com/Ingenieria/Modulos%20Celular%20Motorola/Hojas%20de%20Datos/g20/
A continuación realizaremos un ejemplo
donde se seguirá la secuencia descripta.
Ejemplo:
Como ejemplo de una comunicación a través
de GPRS, nos conectaremos a un servidor al servidor
de SMTP de Yahoo Argentina y enviaremos el comando
HELO para que este se identifique. Para poder realizar
este ejemplo de aplicación necesitamos contar
con un ModemG20 (o equipo similar) y una PC con
puerto serie, e hyperteminal instalado.
Configuración de equipos
Para realizar la configuración y posterior
conexión debe conectarse el equipo al puerto
serie de la PC, activar el Hyperteminal y configurar
el COM1 en 9600 Bps, con control de flujo, 8 bits
de datos, sin paridad y 1 bit de stop.
Secuencia de comandos y respuestas
Para facilitar la lectura se omitirá incluir
al final de cada comando enviado al modulo G20/G24
y mensaje recibido de este la secuencia <CR><LF>.
1 |
ATE0 |
2 |
ATE0
OK |
3 |
AT+CMEE=2 |
4 |
OK |
5 |
AT+CREG? |
6 |
+CREG: 000,001
OK |
7 |
AT+CGATT? |
8 |
+CGATT: 1
OK |
9 |
AT+MIPCALL=1,"internet.unifon","wap","wap" |
10 |
OK |
11 |
+MIPCALL: 172.17.53.121 |
12 |
AT+MIPOPEN=1,25,"209.191.85.254",25,0 |
13 |
OK |
14 |
+MIPOPEN: 1,1 |
15 |
+MIPRTCP:1,0,32323020736D74703130382E6D61696C2E6D
75642E7961686F6F2E636F6D2045534D54500D0A |
16 |
AT+MIPSEND=1,"68656C6F0D0A" |
17 |
+MIPSEND: 1,0,1366
OK |
18 |
AT+MIPPUSH=1 |
19 |
+MIPPUSH: 1,0
OK |
20 |
+MIPRTCP: 1,0,32353020736D74703130382E6D61696C2E6
D75642E7961686F6F2E636F6D0D0A |
21 |
+MIPRTCP: 1,0,3435312074696D656F7574202823342E342E
33290D0A |
22 |
+MIPSTAT: 1,1 |
Detalles:
1- Se envía comando para cancelar el eco
de los comandos enviados.
2- Confirmación de comando anterior.
3- Configuro el reporte de errores en modo texto.
4- Confirmación del comando anterior.
5- Envío comando para verificar el estado
en la red GSM.
6- Informe del estado en la red GSM, como respuesta
del comando anterior.
7- Envío comando para verificar el estado
en la red GPRS.
8- Informa el estado en la red GPRS, como respuesta
del comando anterior.
9- Abro conexión con el Gateway de la prestadora.
10- Confirmación del comando anterior.
11- Informe de IP asignada por parte del Gateway.
12- Abro puerto en Servidor de SMTP de Yahoo Argentina.
13- Confirmación de comando anterior.
14- Informe del resultado del comando anterior.
En este caso nos indica que el socket 1 fue abierto.
15- Recepción de un paquete de datos enviado
por el servidor, como mensaje de bienvenida. Este
esta en hexadecimal, si lo pasamos a ASCII dice
el siguiente: 220 smtp108.mail.mud.yahoo.com
ESMTP
16- Cargo en el Buffer paquete de datos a enviar,
como dijimos arriba en la descripción del
ejemplo se enviara el comando HELO.
17- Informe del estado del buffer y confirmación
del comando anterior.
18- Envío paquete en Buffer al Servidor destino.
19- Confirmación del comando anterior.
20- Recepción de un paquete de datos enviados
por el servidor, como respuesta al comando enviado.
Este esta en hexadecimal, si lo pasamos a ASCII
dice el siguiente: 250 smtp108.mail.mud
yahoo.com
21- Recepción de un paquete de datos
enviados por el servidor, informando que va cerrar
la conexión. Este esta en hexadecimal, si
lo pasamos a ASCII dice lo siguiente: 451
timeout (#4.4.3)
22- Informe por parte del modulo, que nos
indica que se cerró la conexión con
el Servidor.
Con todo lo explicado se está en condiciones
de establecer una comunicación, enviar y
recibir paquetes. En el futuro veremos un ejemplo
concreto, como enviar un correo electrónico
a través de un servidor de SMTP utilizando
el stack de los módulos GSM/GPRS de Motolora.
Solicite mayor información a:
Ing. Ignacio José Zaradnik
FAE Motorola Wireless Division
E-mail: iz@electrocomponentes.com
|