GPRS es un acrónimo de General Packet Radio Service o en GPRScastellano: Servicio General de Paquetes por Radio, esta tecnología se basa en la conmutación de paquetes realizando la transmisión sobre la red GSM, y permite un flujo continuo de los mismos a través de ella, por ejemplo para aplicaciones que admiten navegación web y transferencia de archivos. Cuando vemos las especificaciones técnicas de un modulo, se detallan una serie de características relacionadas a las prestaciones de GPRS, en el articulo de hoy intentaremos explicarlas. ancho de banda que tiene asignado lo dividen en canales de 200 khz y a su vez, estos canales son divididos en 8 porciones de tiempo (slots) donde se alojan porciones tanto de comunicaciones de voz como de datos (GSM o GPRS, respectivamente). La clase del MultiSlot hace referencia a la cantidad de Slots que puede utilizar el modulo para subir y para bajar datos, motivo por el cual va estar íntimamente relacionado con el DataRate de este, al igual que el esquema de codificación del cual hablaremos a continuación. La tabla Nº1 detalla las posibles clases del MultiSlot y la cantidad de Slot que tiene asociado cada uno. Clase MultiSlot Características Generales En los módulos Motorola se detallan las siguientes características: Time slots Rx Tx 1 1 1 2 2 1 3 2 2 4 3 1 5 2 2 6 3 2 7 3 3 8 4 1 • Clase del modulo. • Clase de MultiSlot. • Esquemas de Codificación. 9 3 2 10 4 2 11 4 3 Clase del Modulo 12 4 4 13 3 3 14 4 4 15 5 5 En pocas palabras, la clase determina si se puede usar simultáneamente GSM y GPRS, es decir, si es posible cursar una llamada de voz en la red GSM, mientras que se reciben y/o envían datos en GPRS. 16 6 6 Actualmente se encuentran definidas tres clases: 17 7 7 Módulos Clase A: Permiten el uso simultáneo de GSM y GPRS, sin que haya degradación de la calidad de ninguno de los dos servicios. 18 8 8 Esquemas de codificación Módulos Clase B: Por su parte, monitorean los canales GSM y GPRS a la vez pero no pueden establecer una comunicación simultánea. Es decir, registran tanto GSM como GPRS pero uno de los dos permanece suspendido mientras el otro está activo. GSM tiene la prioridad, por lo que la calidad del servicio GPRS se ve reducida. La codificación de los paquetes datos hace posible la recuperación de los mismos en los receptores, incluso si se pierden bits en la interfaz radio. En función de la codificación empleada habrá una mayor o menor posibilidad de recuperar la información, es decir, proporcionan diferentes grados de robustez frente a la pérdida de bits. Por otro lado, hay que considerar que existe una relación inversa entre la velocidad y la seguridad de integridad de los datos, motivo por el cual, para poder garantizar una robustez elevada, será necesario añadir mayor cantidad de información de protección, y como consecuencia de esto la velocidad de transferencia será menor. En la tabla Nº2 se puede ver los diferentes esquemas de codificación y a la velocidad que pueden transmitir y/o recibir datos cada uno de ellos. Modulos Clase C: No permiten el uso simultaneo de GSM y GPRS y el usuario debe seleccionar el tipo de servicio al que quiere conectarse. Clase del MultiSlot Las redes de GSM/GPRS utilizan una tecnología híbrida para acceder a medio físico, que no es mas que una combinación de FDMA (acceso múltiple por división de frecuencia) y TDMA (acceso múltiple por división de tiempo), es decir el 1 GPRS Esquema de Codificación Data Rate Kbps CS1 9.05 CS2 13.4 CS3 15.6 CS4 21.4 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. Como ejemplo de lo antes descrito podemos citar las características de los módulos G20 y G24 de Motorola. Para realizar el envío de datos a través de GPRS, se deben seguir los siguientes pasos. Ambos módulos son Clase B, por lo que estarán monitoreando los canales de GSM y GPRS simultáneamente. Por otro lado el G20 es MultiSlot Clase 8, motivo por lo cual tendrá 4 slots para bajar datos y 1 slot para subirlos, mientras que el G24 al ser clase 10 tendrá el doble de slots para subir datos. Combinando la Clase del MultiSlot con los esquemas de codificación, y suponiendo un esquema CS4, que es el que nos permite mayor tasa de datos, vamos a tener los siguientes resultados.En el caso del G20 vamos a tener una tasa de 85.6 bps de bajada o recepción y 21.4 bps de subida o transmisión, y en el caso del G24 la misma tasa de bajada o recepción, y 42.8 bps de subida o transmisión. 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. Concepto de Funcionamiento: En la figura que se muestra a continuación se ven los elementos que intervienen en una conexión GPRS. 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. 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 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). 2 GPRS Y para las diferentes prestadoras tenemos los siguientes APN’s, USR’s y PSW’s. Movistar APN USR PSW internet.unifon wap wap gprs gprs gprs gprs CTI Movil internet.ctimovil.com.ar Personal gprs.personal.com.ar 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. 4- Abrir el puerto del Servidor en Internet. Esta se realiza a través del comando AT+MIPPUSH, y la sintaxis es la siguiente: Luego que se tiene una conexión, se debe abrir el puerto destino de nuestro servidor. AT+MIPUSH=<Socket><CR><LF> Para realizar esta tarea se debe usar el comando AT+MIPOPEN, el cual tiene la siguiente sintaxis: 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. 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). Para el caso de TCP: 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. +MIPRTCP: <Socket>,<Left>,<Data><CR><LF> 4- +MIPOPEN: <Socket>,<Estado><CR><LF> +MIPRUDP:<IP Origen>,<PortOrigen>,<Socket>,<Left> ,<Data><CR><LF> Y para el caso de UDP: 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. 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. 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” A continuación realizaremos un ejemplo donde se seguirá la secuencia descripta. 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: 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. 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. 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. ERROR<CR><LF> 3 GPRS 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: 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,32323020736D74703130382E6D61 696C2E6D75642E7961686F6F2E636F6D2045534D 54500D0A 16 AT+MIPSEND=1,"68656C6F0D0A" 17 +MIPSEND: 1,0,1366 OK 18 AT+MIPPUSH=1 19 +MIPPUSH: 1,0 OK 20 +MIPRTCP:1,0,32353020736D74703130382E6D61 696C2E6D75642E7961686F6F2E636F6D0D0A 21 +MIPRTCP:1,0,3435312074696D656F75742028233 42E342E33290D0A 22 +MIPSTAT: 1,1 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. Consultas: mangatrade@yahoo.com.ar 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. 4