Autor Tema: Comunicacion via GPRS-GSM con PIC  (Leído 24776 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Comunicacion via GPRS-GSM con PIC
« en: 04 de Noviembre de 2006, 09:41:25 »
Estoy creando este POST para ayudar a NEO 2K3 (y a todo el interesado) a lograr conectividad GPRS-GSM.

El método de comunicacion entre el PIC y el modulo GSM es la USART en modo FULL DUPLEX via comandos ASCII AT.

Un punto importante a ver es que salvo puntos en comun como:
-Encendido.
-Mensajes de SMS.
-Comunicacion tipo modem PPP.

EL resto es dependiente de cada módulo.

Yo conozco solamente al modulo G18/G20/G24 de Motorola y al SIM200.

Uno de los puntos mas importantes a ver es la atencion que se le da a la informacion proveniente del modulo, que puede ser de dos tipos:
- Solicitada: por ejemplo contestacion al estado de la conexion a la red
- No solicitada: Desconexion de un socket o del APN, mensajes de texto o paquetes por socket.

Si no se administra correctamente esto (atender en tiempo y forma lo que se manda) lo mas seguro es que va a haber un desfasaje entre lo que hace el modulo y lo que sabe el PIC.

El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #1 en: 04 de Noviembre de 2006, 09:52:31 »
Sigo:
Esto significa, que si uno cablea su programa para "enviar lo que quiero y escuchar lo que quiero" no va a andar.

Primero que nada:
En interrupciones se maneja la entrada de los datos que va a parar a un buffer circular. Se maneja un indice de lo entrante (HEAD) y un indice de lo saliente (TAIL).
El exito del funcionamiento del metodo es que el dispositivo remoto (GSM) llena esta memoria (aumenta HEAD) y mi programa toma despues con tiempo (en prog ppal) de ella (TAIL).
Como es memoria circular cuando se llega al valor max se vuelve a la pos cero, tanto para HEAD como TAIL.

Algo bueno del protocolo AT (que nos va a servir para "despertar" a la tarea de analisis) es que SIEMPRE los datos enviados estan separados por la secuencia de caracteres CR+LF (carry return + line feed).
Dicho datos servira para generar un evento que despierte a nuestra tarea de analisis de datos entrantes. Muy importante es que este evento lleve una marca de donde ocurrio ya que mientras estamos procesando pueden estar entrando mas datos.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #2 en: 04 de Noviembre de 2006, 10:05:59 »
Luego se debera hacer una tabla de busqueda de dicho texto ordenada alfabeticamente para que el programa sepa que se le mando y lo pueda analizar por casos.
Se que esto no es barato y limita el tipo de micros a usar, pero es la unica manera de manejarlo seriamente, mas si dicho aparato va a usarse en aplicaciones tipo AVL donde no puede fallar NUNCA.
Una vez analizado el caso se puede levantar los datos asociados y esta tarea podra informar a otras con tu sistema interno de flags, estados, semaforos, variables, lo que uses.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado NEO 2K3

  • PIC10
  • *
  • Mensajes: 19
    • GPS - GPRS Integrada
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #3 en: 04 de Noviembre de 2006, 15:42:47 »
OK. e entendido algo de lo que tu dices.

Encuanto a la RX entre el GPS y el PIC te cuento que esta listo, lo hice por poleo y programado en asm, despues de mostrar LAT, LON, HORA UTC -5 "hora de colombia" hago TX con un PC de eso mismo lo veo con Hyperterminal y todo bien

"DVD183,1200,1023.1595N,07326.8015W,0.0[CR][LF]" esto es la trama que envio al PC.

DVD183=esto es para identificar el vehiculo.

Ahora que es lo que necesito?

*Activar otro COM "COM2" por software ya que el de Hardware ya esta ocupado con el GPS.

*Los pasos a seguir para

-Inicializar el Modulo.
-Como activar o decirle al modulo que trabajare con datos "GPRS" .
-Como enganchar o conectar a la red GPRS el Modem GSM (GR48).
-Cuales serian los comandos de respuesta o que debo esperar de confirmacion de envio de datos.
-Entre otras cosas que no me imagino........

Ojo no se nada de esto, pero es lo que me imagino que puede ser.
« Última modificación: 04 de Noviembre de 2006, 15:45:53 por NEO 2K3 »
*******************************************
NEO 2K3
http://k.1asphost.com/wepescol
La grande es un PIC.

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #4 en: 04 de Noviembre de 2006, 22:35:49 »
Lo estas haciendo en assembler? Te admiro ya que un proyecto de esta envergadura se puede complicar mucho y mas en assembler.

Ya se que no usas el modulo G20 pero te voy a pasar un PDF muy claro de una secuencia de conexion y envio de datos por socket, vos de ahi pensaras como hacerlo en el PIC (controles de secuencia etc)

http://www.megaupload.com/?d=YF8N4O4F

Te recomiendo usar siempre USARTs por hardware, o usas un DSPIC que tiene 2, o usas multiples micros comunicados por un bus compartido (I2C)
El metodo de BITBANGING para USART te va a usar mucho tiempo de micro que lo necestias para otras funciones escenciales.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado NEO 2K3

  • PIC10
  • *
  • Mensajes: 19
    • GPS - GPRS Integrada
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #5 en: 05 de Noviembre de 2006, 11:10:47 »
Gracias MEN eres muy bueno en esto, bueno mirare la INFO esta y te contare que tal me fue....

PD:hasta yo estoy impresionado en hacerlo en ASM, pero es que me quiero graduar lo mas rapido posible, y comenzar a programar en C requiere aprender los codigos.
*******************************************
NEO 2K3
http://k.1asphost.com/wepescol
La grande es un PIC.

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #6 en: 05 de Noviembre de 2006, 21:56:13 »
Me alegro que te sirva la info.
Despues me fijare en los modulos de sony ericsson que por lo pronto te cuento que va a ser absorvido por Multitech.

Saludos
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado NEO 2K3

  • PIC10
  • *
  • Mensajes: 19
    • GPS - GPRS Integrada
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #7 en: 06 de Noviembre de 2006, 12:05:56 »
Hola de nuevo quisiera saber otra cosa.....

Como se prepara o se configura el PC servidor para que entienda los Datos enviados por el GR48?, o cuales son los pasos para hacer que esta info la muestre el PC.

Saludos...
*******************************************
NEO 2K3
http://k.1asphost.com/wepescol
La grande es un PIC.

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #8 en: 06 de Noviembre de 2006, 12:19:56 »
Hola NEO 2K3, en la página de Sasian tenes el código en C# para realizar pruebas con servidores TCP y UDP:

http://www.sasian.es/modules.php?name=News&file=article&sid=6
http://www.sasian.es/modules.php?name=News&file=article&sid=7

No tengo idea de como hacerlo pero tenés que programar alguna aplicación que lo haga.

Darukur está más orientado en el tema ya que trabaja con 2 programadores de PC que justamente están en eso.

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #9 en: 06 de Noviembre de 2006, 14:15:27 »
Para empezar con las pruebas del lado de la PC te recomiendo el Essential Net Tools.
La parte que vas a usar es el RAW SOCKET tanto para UDP como TCP.
Tenes que ponerlo en modo escucha en el puerto que configuraste en el modulo.
Acordate que SIEMPRE las conexiones las establece el modulo, el servidor es siempre el lado que escucha y acepta la llamada.

Lo unico malo del programa es que solo acepta un socket por puerto.

Saludos.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #10 en: 07 de Noviembre de 2006, 12:39:13 »
Hola otra vez

Ahora me encuentro trabajando con esto que dicen, para hacer que nuestro servidor atienda múltiples conexiones uso el control winsock que viene en el visual basic. Con ayuda de un tutorial he podido establecer comunicación con dos módulos gr48, es decir, utilizo como servidor la PC y ambos módulos son los clientes. Te dejo el tutorial para que lo cheques.

Saludos

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #11 en: 07 de Noviembre de 2006, 14:13:44 »
Gracias por el aporte.
Mejor asi se pueden abrir varios sockets, sino solo podrias tener un solo dispositivo de GSM por puerto.
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #12 en: 07 de Noviembre de 2006, 14:18:49 »
Te paso como ejemplo la lista de comandos que acepta mi componente de GSM.
Fijate que estan ordenados del ASCII mas alto al mas bajo, esto es para que cuando se efectua la busqueda se pueda tomar textos que comparten palabras en comun. (EJ: PEPE y PEPE2)

char const R_GSM_MODULE_CMD_IN[16][12]=
   {"OK",            //R_GSM_LO_CMD_IN_OK
    "NO CARRIER",      //R_GSM_LO_CMD_IN_NO_CARRIER
    "ERROR",         //R_GSM_LO_CMD_IN_ERROR
    "+MIPSTAT: ",      //R_GSM_LO_CMD_IN_LINK_STAT
    "+MIPSEND: ",      //R_GSM_LO_CMD_IN_BUFF_SENT
    "+MIPRUDP: ",      //R_GSM_LO_CMD_IN_PQ_UDP
    "+MIPRTCP: ",      //R_GSM_LO_CMD_IN_PQ_TCP
    "+MIPPUSH: ",      //R_GSM_LO_CMD_IN_BLOCK_SENT
    "+MIPOPEN: ",      //R_GSM_LO_CMD_IN_IP_CNT
    "+MIPCLOSE: ",      //R_GSM_LO_CMD_IN_IP_DCNT
    "+MIPCALL: ",      //R_GSM_LO_CMD_IN_APN_CNT
    "+CSQ: ",         //R_GSM_LO_CMD_IN_SIGNAL
    "+CREG: ",         //R_GSM_LO_CMD_IN_GSM_REG
    "+CMT: ",         //R_GSM_LO_CMD_IN_SMS_RECEIVE
    "+CMGS: "         //R_GSM_LO_CMD_IN_SMS_SENT
    ""               //Necesario para fin de analisis
   };

Se hace el analisis del texto entrante y se termina en un switch case de 16 casos.
El algoritmo de busqueda esta optimizado (Search + Deltasearch)
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/

Desconectado NEO 2K3

  • PIC10
  • *
  • Mensajes: 19
    • GPS - GPRS Integrada
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #13 en: 07 de Noviembre de 2006, 21:37:38 »
Bueno ahora mi ayuda es la siguiente, cual seria la conexion minima para que el GR48 funcione? ahi les agrego una imagen para que se hagan la idea, es el programador que me vendiron con el GR48, pero solo quiero transmitir datos por el momento, ya que con este entrenador se pueden hacer mas cosas, depues habra tiempo para aprender mas.



PD:Como Habia contado este proyecto es para poderme graduar de ING Electronico..... por eso el poco tiempo para experimentar.
*******************************************
NEO 2K3
http://k.1asphost.com/wepescol
La grande es un PIC.

Desconectado Darukur

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 464
    • Informacion, recursos y ejemplos para desarrollos con microcontroladores
Re: Comunicacion via GPRS-GSM con PIC
« Respuesta #14 en: 07 de Noviembre de 2006, 22:27:06 »
Los pasos minimos son:
-Encendido y testeo de respuesta (AT)
-Testeo de registracion sobre GPRS (AT+CREG?)
-Coneccion al APN (AT+MIPCALL)
-Coneccion al socket/s (AT+MIPOPEN)
El que no sabe lo que busca no entiende lo que encuentra.
Mi Pagina Web:  http://www.sistemasembebidos.com.ar
Mi foro:             http://www.sistemasembebidos.com.ar/foro/


 

anything