0% encontró este documento útil (0 votos)
56 vistas43 páginas

Basico Serial Leeer

Este capítulo describe los protocolos de comunicación y programación utilizados para la adquisición y transmisión de datos entre los dispositivos en el sistema de monitoreo por GPS y GSM/GPRS. Explica las características básicas de la interfaz RS-232 y los protocolos NMEA y AT. Luego detalla el desarrollo del programa para el microcontrolador PIC y el software LabView y OziExplorer.

Cargado por

Luis Vilchiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas43 páginas

Basico Serial Leeer

Este capítulo describe los protocolos de comunicación y programación utilizados para la adquisición y transmisión de datos entre los dispositivos en el sistema de monitoreo por GPS y GSM/GPRS. Explica las características básicas de la interfaz RS-232 y los protocolos NMEA y AT. Luego detalla el desarrollo del programa para el microcontrolador PIC y el software LabView y OziExplorer.

Cargado por

Luis Vilchiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CAPITULO 3

PROGRAMACIÓN DEL MICROCONTROLADOR Y


DESARROLLO DE LA INTERFAZ DE COMUNICACIÓN

3.1 INTRODUCCIÓN

Este capítulo describe las características básicas del enlace asincrónico RS232,
luego se realiza un estudio de los protocolos de comunicación empleados por el
receptor GPS GARMIN y el equipo celular GSM/GPRS.

Posteriormente se desarrolla el programa para el funcionamiento del


microcontrolador PIC 16F876A con ayuda de PicBasic Pro, además se explica a
breves rasgos la operación y funcionamiento de este software.

En la parte final se describe el programa realizado en LabView 6.1 para


adquisición y procesamiento de datos, así como un conocimiento de la operación
y funcionamiento del software de geo-referenciamiento OziExplorer para trabajar
con mapas digitales.

3.2 CARACTERÍSTICAS BÁSICAS PARA LA COMUNICACIÓN RS-232

La interfaz entre los dispositivos electrónicos utilizados en el módulo MPCC es


mediante comunicación asincrónica RS-232, cada equipo trabaja con distinta
velocidad de transmisión así como diferente tecnología y protocolo de enlace,
denotando que la comunicación entre los componentes es la parte más compleja
del sistema desarrollado.

La interfaz RS-232 es el estándar más usado en las comunicaciones seriales,


enlaza dos dispositivos conectando la línea transmisora de un equipo con la línea
receptora del otro.
Ambos terminales pueden conversar simultáneamente (full duplex), además,
puede haber líneas de protocolo destinadas a controlar las comunicaciones, pero
su implementación varía ampliamente y no se utiliza en muchos casos.

El enlace RS-232 envía señales de tensión por las líneas, con referencia a tierra,
dispone de un alcance máximo de 15 metros entre equipos y un amplio rango de
velocidades de transmisión de datos.

RS-232 permite agregar o borrar bits al tren de datos seriales, los bits que se
emplean son de inicio, parada y paridad, además son controladas
independientemente la transmisión, recepción, estados de línea, configuración de
datos e interrupciones.

Las características de la interfaz serie son totalmente programables y emplea los


siguientes parámetros

ƒ 6, 7 u 8 bits por caracter.


ƒ Detección de paridad par, impar o no paridad.
ƒ Generación de 1, 1.5 o 2 bits de parada.
ƒ Generación de velocidad altas de transmisión.

3.2.1 COMPATIBILIDAD

Cuando se intenta comunicar dos dispositivos usando la interfaz RS-232, se


deben cuidar 4 aspectos de compatibilidad entre los sistemas:

1. La designación funcional de los dispositivos (DTE o DCE).


2. La velocidad de la transferencia de los datos (bit por segundo o baudios).
3. El formato de los datos, es decir, bits de inicio, paridad, y parada.
4. Las líneas de control que usan ambos dispositivos.

3.2.2 VELOCIDAD DE TRANSMISIÓN

Uno de los parámetros más importantes que se deben establecer correctamente


entre los dos dispositivos que se comunican a través de una interfaz es la
velocidad de transferencia de los datos. Las velocidades estándar empleadas en
comunicaciones de datos se muestra a en la tabla 3.1.

Velocidades estándar (bps)


1200 4800 38400
1800 7200 57600
2600 9600 115200
3400 19200 230400

Tabla 3.1 Velocidades de transferencia de datos

3.2.3 TRANSMISIÓN DE DATOS EN LA INTERFAZ SERIAL

En RS232 cada carácter que es transmitido a través de la interfaz está referido en


el tiempo al bit de inicio, luego los tiempos internos de ambos dispositivos tienen
solamente que permanecer en sincronismo para los 10 o más bits del caracter
transferido, posteriormente los relojes vuelvan a sincronizarse al comienzo del
próximo string que es enviado.

Solamente si el dispositivo que transmite los datos y el que los recibe han sido
configurados en forma similar, los datos serán interpretados adecuadamente por
el dispositivo receptor.

Un flujo de datos para la transferencia de un byte se muestra en la Figura 3.1,


este flujo de datos es la representación ASCII de un carácter junto con un número
predefinido de bits de inicio, parada y de paridad.

Además se observa un byte que tiene un bit de inicio, 7 bits para el caracter y
un bit de paridad seguido por un bit de parada. El bit de inicio es un cero
lógico (0L) y el bit de término es un uno lógico (1L), esto siempre se efectúa
para garantizar que ocurra un cambio de tensión al comienzo del bit de inicio
con lo cual se puede referenciar el tiempo de los dos dispositivos.
Bit más
significativo
Bit de Bit menos
inicio significativo Bit de paridad

1 1
-

0 1 1 0 0 1 1 0 1 Bit de parada
0 0 0

Número binario 0110011

Figura 3.1 Flujo de datos de un formato serie

Se aprecia de la figura anterior que los niveles de las señales en la interfaz


RS-232 son de lógica negativa por lo tanto se debe tener cuidado en el
hardware que se conecte a la salida de ella.

La única norma de datos utilizado en aplicaciones computacionales es el código


ASCII (American Estándar Code for Information Interchange), este es un código
de 7 bits que puede representar hasta 128 caracteres separadamente, existen 96
caracteres imprimibles y 32 caracteres de control.

Aunque se utilizan 7 bits para representar un carácter ASCII, se usan


comúnmente 8 bits, el octavo bit es designado como un bit de paridad y se utiliza
para chequear los errores que pudieran producirse entre la creación de un string y
su lectura, siempre se pone a (1L) o (0L) de modo que el número total de bits 1L
es siempre par o impar. Si por ejemplo, se selecciona paridad par y se detecta un
número impar de bits 1L en el byte del caracter transmitido, este byte debe
contener un error.

La adición del bit de paridad al byte de datos es un mecanismo simple para


aumentar la confiabilidad de los datos transferidos. Este bit es generado por el
controlador asincrónico y es chequeado por el receptor, el cual debería ser
configurado para un formato de datos similar al del transmisor. El chequeo de
la paridad no es parte de la norma RS-232 y debe ser parte del software que se
utilice en la comunicación. Las posibilidades de paridad en la transferencia de
datos es la siguiente:

• Ninguna.- No se incluye paridad en el byte transferido.


• Par.- Se agrega un bit al byte total de modo que el caracter completo
incluyendo los bits de partida término, información y de paridad tenga un
número par de bits.
• Impar.- El string completo tiene un número impar de bits.
• Uno.- Se agrega siempre un bit 1L a todos los caracteres transferidos.
• Cero.- Se agrega un 0L a todos los caracteres transferidos.

3.3 PROTOCOLOS DE COMUNICACIÓN

La tecnología satelital GPS utiliza el protocolo de comunicación NMEA (National


Marine Electronics Association) para transmitir las tramas de información que
contienen la fecha, hora y las coordenadas geográficas. En el caso del equipo
celular se emplea el set de comandos AT para envío y recepción de mensajes de
texto en la red celular GSM.

A continuación se describe los protocolos utilizados por estas tecnologías

3.3.1 CÓDIGO NMEA

El código NMEA (NATIONAL MARINE ELECTRONICS ASSOCIATION) es un


protocolo estándar usado por receptores GPS para transmitir datos, mediante
comunicación serial RS232, en NMEA 0183 la información es enviada en forma
de tramas de caracteres ASCII, en las tramas cada dato es delimitado por
comas. Cada trama empieza con el signo de dólares $ y terminan con retorno de
carry (CR) y alimentación de línea (LF), a continuación del signo de dólares $ se
encuentran varios caracteres de la siguiente forma:

aaccc
Donde: aa.- Representa la dirección ID del equipo por lo general GP.
ccc.- Identifica la naturaleza de la información contenida en el
bloque.

Después de estos caracteres viene un determinado número de segmentos de


información separado por comas, a continuación se muestran los segmentos más
importantes.

[Link] Campo GGA

El campo GGA permite conocer los datos de fijación del GPS, el formato de la
trama se muestra a continuación y en la tabla 3.2 se indica el significado de cada
segmento del campo.
$GPGGA, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,*CR,LF

1 Hora UTC de posición


2 Latitud
3 Norte o Sur
4 Longitud
5 EoO
6 Indicador de posición valida (0=invalid; 1=GPS fix; 2=Diff. GPS fix)
7 Número de satélites en uso
8 Dilución de posición horizontal
9 Altura sobre el nivel del mar
10 Medida de alto de la antena
11 Separación geoidal
12 Metros (Unidad de separación geoidal.)
13 Tiempo en segundos desde la ultima actualización proveniente de
la estación de referencia
14 Número de identificación de la estación de referencia
15 Checksum

Tabla 3.2 Segmentos del campo


[Link] Campo GSV

El campo GSV permite conocer los satélites en vista, el formato de la trama se


muestra a continuación.

$GPGSV,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 *CR,LF

La tabla 3.3 indica el significado de cada segmento del campo.

1 Número total de mensajes por ciclo


2 Número de mensajes
3 Número total de satélites en vista
4 Número PRN del satélite
5 Elevación en grados
6 Azimuth del satélite
7 Relación señal ruido
8-11 Información del segundo satélite
12-15 Información del tercer satélite
16-19 Información del cuarto satélite

Tabla 3.3 Segmentos del campo

[Link] Campo RMC

El campo RMC permite conocer las especificaciones mínimas para transmisión


de datos, el formato de la trama se muestra a continuación.

$GPRMC,1,2,3,4,5,6,7,8,9,10,11,12,*CR,LF

La tabla 3.4 indica el significado de cada segmento del campo.


1 Hora UTC de posición de fijación
2 Estado de los datos
3 Latitud de fijación
4 Norte o Sur
5 Longitud de fijación
6 Este u Oeste
7 Velocidad sobre la tierra
8 Curso sobre la tierra
9 Fecha UTC de fijación
10 Variación magnética
11 Este u Oeste
12 Checksum

Tabla 3.4 Segmentos del campo

Para los objetivos de este proyecto se emplea la trama $GPRMC que contienen
información de las coordenadas geográficas, fecha y hora. En la siguiente trama
se detalla los segmentos obtenidos del receptor GARMIN

$GPRMC,164531,V,0013.1147,S,07829.0598,W,000.0,000.0,110306,001.3,W*

164531: Indica el tiempo del evento:


16 horas, 45 minutos, 31 segundos

A: Mensaje de navegación, indica que los datos son validos.

0013.1147,S : Representa las coordenadas de latitud

00 grados 13,114700 minutos hemisferio Sur

07829.0598,W : Indica las coordenadas de longitud

078 grados 29,0598 minutos hemisferio Oeste


110306 : Representa la fecha : 11 de Marzo del 2006

3.3.2 COMANDOS AT

Los comandos AT son utilizados por las computadoras y otros equipos para
comunicarse con un modem, sin embargo existen muchas aplicaciones en que los
comandos son realizados por una aplicación de software o emitidos directamente
por el usuario dependiendo del caso.

Para la aplicación con equipos celulares la sintaxis de los comandos AT es la


siguiente:

El prefijo AT o at debe ser adicionado al empezar cada línea de comando, luego


viene el tipo de comando que se va a utilizar y finalmente un retorno de carry
<CR>

Una vez que el equipo celular recibe el comando lo procesa y retorna las
siguientes respuestas:

• Cuando la sintaxis del comando es incorrecta retorna la palabra ERROR


• Si la sintaxis del comando es correcta pero con algún parámetro incorrecto
retorna la palabra +CME ERROR : <Err> o +CMS ERROR
• Cuando la línea de comando ha sido desarrollada exitosamente retorna la
palabra OK

Existen diferentes tipos de comandos entre los que se encuentran: comunicación


por voz, fax, enviar y recibir mensaje de texto, setear parámetros del equipo,
preguntar parámetros existentes del dispositivo celular, establecer un servicio de
red, ingresar a Internet, etc

Se puede añadir al final del comando el signo de igual seguido del signo de
interrogación “(=?)”, para preguntar al equipo celular la existencia del comando y
para pedir información acerca de sub parámetros.
Para chequear valores de sub parámetros de un comando se coloca al final de la
línea el signo de interrogación (?), el equipo celular responde una línea con los
diferentes valores disponibles.

Los comandos AT varían de acuerdo a la tecnología de red celular que se utiliza,


las que pueden ser TDMA, CDMA, GSM. En el caso de la aplicación se emplea el
set de comandos AT de tecnología GSM.

[Link] Comandos para mensajes de texto

Para enviar un mensaje de texto por el dispositivo celular es necesario seguir


varios pasos que se detallan a continuación:

1. Inicio de protocolo de comunicación con el equipo celular

COMANDO RESPUESTA DEL EQUIPO


ATE1V1 OK

Para iniciar el enlace de comunicación se debe transmitir el comando ATE1V1; si


la sintaxis es correcta el dispositivo responde OK.

2. Configurar funcionamiento en modo de mensajes de texto

COMANDO RESPUESTA DEL EQUIPO


AT+CMF=1 OK

El comando AT+CMGF permite configurar el funcionamiento en modo de texto


para mensajes SMS; si la sintaxis es correcta el dispositivo responde OK.
3. Identificación del número del centro de mensajes.

COMANDO RESPUESTA DEL EQUIPO


AT+CSCA=”+593256894” OK

Con el comando AT+CSCA se ingresa el número del centro de mensajes en este


caso es el 593256894; si la sintaxis es correcta el dispositivo responde OK.

4. Identificación del número del terminal destino.

COMANDO RESPUESTA DEL EQUIPO


AT+CMGS= 099915478 OK

El comando AT+CMGS identifica el número al que se va a enviar el mensaje de


texto; si la sintaxis es correcta el dispositivo responde OK.

5. Leer un mensaje de una localidad de memoria.

COMANDO RESPUESTA DEL EQUIPO


AT+CMGR OK

El comando AT+CMGR lee el mensaje de texto almacenado en la memoria del


SIM card; si la sintaxis es correcta el dispositivo responde OK.

El tiempo que le toma al equipo celular en responder a un comando es de


aproximadamente 500 ms, al realizar el programa con el microcontrolador se
debe tener en cuenta este valor.

3.4 SOFTWARE DE PROGRAMACION PICBASIC PRO PARA


MICROCONTROLADORES PIC.

El compilador PicBasic Pro (PBP) es un lenguaje de programación que permite


realizar rápidamente programas en micro controladores PIC. El lenguaje Basic
es más fácil de leer y escribir que el lenguaje ensamblador, además como es un
compilador real los programas se ejecutan mucho más rápido.

El PBP permite programar una variedad de micro controladores de diferente


número de pines y que disponen de convertidores A/D, temporizadores y puertos
seriales.

El PIC 16F876A de 28 pines que se utiliza en el proyecto usa tecnología flash


(EEPROM) que permite un borrado rápido y reprogramación para acelerar la
depuración de programas. Además disponen de memoria de datos no volátil que
puede ser usada para archivar variables y otros parámetros.

3.4.1 DESCRIPCION DE LA PANTALLA PRINCIPAL DE PBP

La pantalla principal de PICBasic se asemeja a la aplicación de Windows en la


que se tiene dos barras. La primera es la barra de herramientas, se encuentra en
la parte superior, contiene opciones para guardar archivos, copiar, borrar, elegir el
tipo de PIC que se va a utilizar y el puerto de comunicación por el que se
descarga el programa. Luego tenemos la barra de estado localizada en la parte
inferior, muestra el número de líneas que contiene el programa y los errores que
existen cuando se realiza la compilación, en la figura 3.2 se observa la pantalla
principal de PBP.

3.4.2 CREACIÓN DE UN PROGRAMA.

Para realizar un programa en PBP primero se crea el archivo fuente, cuyo


nombre termina con la extensión “.bas”, luego se escribe el programa utilizando
el editor de texto con la cantidad de líneas necesarias que cumplan con las
funciones requeridas.
Al finalizar el programa que se ha escrito, hay que guardarlo utilizando el icono

de la barra de herramientas de PBP para obtener el archivo “.bas”,


posteriormente se selecciona el tipo de microcontrolador donde se descarga el

programa, para compilar se utiliza la opción en la barra de herramientas, el


compilador despliega un mensaje de inicialización y procesa el archivo, al aceptar
esta acción se crea un archivo de código fuente ensamblado con extensión “.asm”
y automáticamente invocará al ensamblador para completar la tarea.

Si todo se encuentra bien, se crea un archivo de código con extensión “.hex “,


caso contrario se emite un listado de los errores en la barra de estado, que deben
ser corregidos en su archivo fuente antes de ser compilados nuevamente.

Figura 3.2 Pantalla principal de PBP


3.4.3 FRECUENCIA DE TRABAJO

PBP genera programas sobre la base de un PIC con un cristal de 4 Mhz. Todas
las instrucciones asumen un tiempo de 1 microsegundo para sus retardos y los
comandos para transmisión serial disponen de baud rate exactos.

Para utilizar otro oscilador los valores aceptables se muestran en la tabla 3.5

Osciladores (Mhz)
3.58
4
8
10
12
16
20

Tabla 3.5 Osciladores típicos

El programa desarrollado para la comunicación con el equipo celular trabaja a


velocidades altas de transmisión, por lo que se emplea un cristal de 20 Mhz. Para
utilizar este oscilador se debe indicarle al PBP que cambie los parámetros que no
son los encontrados por defecto.

3.4.4 VARIABLES

Una variable es donde se guardan datos en forma temporal en un programa PBP,


son creadas usando la palabra clave VAR, las variables pueden ser bits, bytes ó
word, el espacio para cada variable es automáticamente destinado en la memoria
del micro controlador por PBP.

El formato para crear una variable se escribe con la estructura compuesta por
“Etiqueta VAR tamaño (modificadores)”
La etiqueta es cualquier identificador que emplea palabras, el tamaño puede ser
un bit, byte o word, los modificadores agregan control adicional acerca de cómo
se crea la variable

El número de variables disponibles depende de la cantidad de RAM en el


microcontrolador, además del tamaño de las variables y los arrays. PBP reserva
aproximadamente 24 ubicaciones RAM para su propio uso.

Las variables son asignadas secuencialmente en memoria y en un orden


particular, primero arrays de word, seguidos por arrays de byte y finalmente arrays
de bits. Luego se posicionan words, bytes y finalmente los bits individuales, este
orden brinda el mejor aprovechamiento de la memoria disponible

3.4.5 INSTRUCCIONES PARA LA TRANSMISIÓN SERIAL

El programa que se desarrolla en esta aplicación tiene como base la


comunicación serial asincrónica y para este propósito el programa PBP es de
mucha ayuda, ya que se puede emplear una sola instrucción para ejecutar la
comunicación serial con un dispositivo, además la salida o entrada de datos se
efectúa por el pin que se especifique y no es necesario utilizar driver RS-232
debido a que PBP puede invertir la señal de los bits.

Para la comunicación con el receptor GPS el comando ejecutado es el SERIN2

¾ SERIN2
Con el comando SERIN2 se puede recibir datos asincrónicamente por
determinado pin, la instrucción tiene la estructura compuesta por:
“SERIN2 Data pin, Mode,[datos]”

• Data pin.- Es el pin seleccionado como entrada


• Mode.- Utilizado para especificar el baud rate y los parámetros de
operación de la transferencia serial.
• Datos.- Es la información recibida
El parámetro Mode se emplea para especificar el baud rate y los parámetros de
operación de la transferencia serial, para encontrar su valor se resuelve la
ecuación Ec 3.1

Mode = (1000000/baud rate)-20 Ec 3.1

El valor decimal encontrado se convierte a número binario, posteriormente se


completan los bits que corresponden a los demás parámetros de comunicación
como sigue:

ƒ Los 13 bits de menor orden seleccionan el baud rate

ƒ El bit 13 selecciona paridad ó no paridad.

• Si el bit13=1 equivale a paridad par


• Si el bit13=0 equivale a sin paridad

ƒ El bit 14 selecciona el nivel de los pines de datos y de control de flujo.

• Si el bit 14=0, los dato se reciben en forma normal y se utiliza drivers RS-
232.
• Si el bit 14=1, los datos se reciben invertidos evitando emplear drivers RS-
232

ƒ El bit 15 no se utiliza.

Una vez completados los 15 bits se convierten a número decimal y se coloca en la


instrucción.

Para el caso del equipo celular se emplea las instrucciones HSEROUT y HSERIN
utilizadas cuando la velocidad de comunicación excede de los 9600 bps
¾ HSEROUT

Con HSEROUT se envía uno o mas items al puerto serial de hardware en


dispositivos que soportan comunicación serial asincrónica. La instrucción es la
siguiente:

HSEROUT [item(, item)]

Al trabajar con HSEROUT se tiene que definir en la parte inicial del programa la
velocidad de transferencia, setear el registro de transmisión y habilitar el puerto de
comunicación serial asincrónica

La instrucción HSERIN recibe uno o mas items por el puerto serial asincrónico y
su estructura de la instrucción es idéntica que HSEROUT.

3.5 PROGRAMA DESARROLLADO EN EL MICRO PIC 16F876A


.
En el micro PIC 16F876A se encuentra el programa principal para el control y
comunicación con los dispositivos inalámbricos, entre las funciones que realiza
están:

ƒ Control del funcionamiento del equipo MPCC en modo de transmisión


remota o stand by
ƒ Control para inicio de transmisión mediante mensajes proveniente de la
estación central.
ƒ Comunicación con el receptor GPS
ƒ Adquisición de datos de ubicación
ƒ Adquisición de datos de hora y fecha
ƒ Procesamiento de la señal
ƒ Comunicación con el equipo celular
ƒ Envío de los datos como mensaje SMS
3.5.1 PROGRAMA PRINCIPAL

Se determina dos modos de funcionamiento para el equipo MPCC, en


transmisión remota y stand by, el primero se presenta cuando en la estación
central se envía un mensaje de control para inicio de transferencia de información,
en transmisión remota el equipo MPCC obtiene puntos de posición cada 60
segundos y transfiere la información en un mensaje SMS cada tres minutos. En
modo stand by el micro PIC controla el encendido del GARMIN GPS,
energizándolo en periodos de tiempo para mantener actualizada la información
proveniente de los satélites, de manera que el receptor GPS pueda proporcionar
rápidamente las coordenadas de ubicación correctas cuando inicie en modo de
transmisión remota.

El programa principal del microcontrolador empieza con una definición de


registros y variables, asignación de pines de entrada / salida y configuración de
registros de comunicación serial asincrónica, luego se mantiene en modo stand-
by esperando por el mensaje de texto que contiene un comando para petición de
información proveniente de la estación central, una vez que llega esta orden el
programa empieza en modo de transmisión remota enviando la información en un
ciclo que abarca diferentes subrutinas, el ciclo continúa hasta que en la estación
central se envíe el mensaje de finalización de transmisión.

Entre las subrutinas que se emplean en el programa se encuentran: la


configuración del modem celular para trabajar en modo de mensajes de texto
SMS, lectura de mensajes de texto que contiene el comando para inicio de
transmisión, adquisición de datos del receptor GPS para obtener la fecha, hora,
además la posición geográfica, procesamiento de la información y envío de la
trama de datos como mensaje SMS, en la figura 3.3 se muestra el diagrama de
flujo del programa principal.
INICIO

Subrutina de
Definición de registros y procesamiento de datos
variables, configuración
de pines de entrada y salida

Subrutina de envió de
datos como mensajes
Subrutina de configuración
de texto
del equipo celular

NO SI
2 Existe
1 código de 2
finalización?
Subrutina de
funcionamiento en modo
stand by
FIN

Subrutina de lectura de
mensajes de texto

NO
Existe
código de
inicio?

SI

Subrutina de adquisición
de datos

Figura 3.3 Diagrama de flujo del programa principal

3.5.2 SUBRUTINAS UTILIZADAS EN EL PROGRAMA


En las páginas siguientes se describe las subrutinas empleadas en el desarrollo
del programa

[Link] Configuración del equipo celular

El micro PIC emplea los pines RC6 y RC7 del puerto serial asincrónico y las
instrucciones HSEROUT y HSERIN para comunicarse con el equipo celular a una
velocidad de 115200 bps. Los parámetros seriales y el baud rate se especifican
usando la instrucción DEFINE

Para colocar el registro de transmisión habilitado se utiliza la instrucción


DEFINE HSER_TSTA 20H

El baud rate se identifica con la instrucción


DEFINE HSER_BAUD 115200

Para colocar el registro de recepción habilitado se emplea la instrucción


DEFINE HSER_RCSA 90H

La línea DEFINE OSC 20 indica que se utiliza el oscilador de 20 Mhz

El PIC para efectuar la interfaz con el equipo celular primero habilita los pines de
transmisión y recepción serial, luego envía los comandos de inicio de protocolo,
operación con mensajes SMS y funcionamiento en modo de texto, en la figura
3.4 se observa el diagrama de flujo de esta subrutina.

El equipo GSM responde a cada comando con un reconocimiento, si el comando


es correcto envía la palabra OK.
Subrutina de
configuración del
equipo celular
Transmitir comandos para
operación en mensajes SMS

Setear parámetros de
comunicación serial

Enviar comandos para


Habilitar el puerto de funcionamiento en modo de
comunicación serial texto

Enviar comando de inicio de Cerrar el puerto de


protocolo comunicación serial

RETUR

Figura 3.4 Diagrama de flujo de la subrutina de configuración del equipo celular

[Link] Funcionamiento en modo stand by

La subrutina se encarga de controlar el encendido del receptor GARMIN GPS


para mantener actualizada la información proveniente de los satélites, de manera
que cuando el equipo MPCC inicie el funcionamiento en modo de transmisión
remota el GARMIN pueda encontrar rápidamente las coordenadas correctas.

La salida RB4 del micro PIC activa la bobina de un relé, cuyo contacto
normalmente abierto se conecta a la entrada de alimentación del GARMIN, el
receptor GPS permanece energizado por 15 minutos cada periodo de tiempo de
dos horas.

Al recibir el comando de control para inicio de transferencia desde la estación


central, el equipo MPCC pasa a funcionamiento en modo de transmisión remota,
el receptor GPS es alimentando con 5V mientras se encuentra en esta etapa, en
la figura 3.5 se observa el diagrama de flujo de esta subrutina.
1

Subrutina de
funcionamiento en
Asignar variable de tiempo
modo standby
aux1=1

Retardo de 5 segundos Incrementar variables de


tiempo2

Incrementar variable de
tiempo1 Salida RB1 =1
relé activado

SI
Variable
aux1= 1? 1 Variable de
tiempo2 =
180?
SI

NO
NO

SI 2
Variable de
tiempo1 = 1
720?

Asignar variable de tiempo


NO aux1=0
2

Salida RB1 =0
RETURN relé desactivado

Figura 3.5 Funcionamiento en modo stand by

[Link] Lectura de mensajes de texto.

Esta subrutina lee los mensajes de texto que llegan al equipo GSM provenientes
de la estación central o del proveedor de servicio celular.
Cuando llega un mensaje SMS al SIM Card, el dispositivo celular envía un
comando por el puerto serial, indicando la localidad de memoria donde se ha
guardado el mensaje. Empleando la interrupción por recepción serial el PIC
conoce el momento en que llega un mensaje y procede a leerlo enviando el
comando respectivo hacia el modem GSM.

Cuando el microcontrolador lee el mensaje SMS primero identifica el terminal de


procedencia, si el número corresponde al de la estación central continua con la
lectura del contenido del mensaje, por el contrario si el número es desconocido el
mensaje es descartado y luego es borrado de la memoria del SIM Card.

El contenido del mensaje corresponde a comandos para inicio o finalización de


transmisión que son asignados a una variable, luego de esto finaliza la subrutina,
la figura 3.6 muestra el diagrama de flujo de esta subrutina.

[Link] Adquisición de datos.

El micro PIC para comunicarse con el receptor GPS habilita el pin de recepción
serial RB3 y recibe los datos, luego espera por la trama GPRMC que contiene la
información requerida (fecha, hora, latitud y longitud), posteriormente selecciona
cada segmento de información y almacena cada dato en una localidad de
memoria RAM interna.

Para la interfaz con el receptor GPS se utiliza una velocidad de 4800 bps con 8 bit
de datos, ninguna paridad y 1 bit de parada, el pin RB3 es empleado como
entrada serial asincrónica.

La instrucción SERIN2 se utiliza para realizar la comunicación serial, se tiene


que calcular el parámetro “Mode” de la instrucción utilizando la ecuación Ec 3.2

Mode = (1000000 / baud rate ) -20 Ec 3.2


Lectura de mensajes
de texto

NO
Habilitar registros de
Existe
interrupción por recepción mensajes
serial 1
nuevos?

SI

Transmitir comandos para


leer el mensaje SMS
NO Interrupción
por recepción
serial? NO
El número
1 pertenece a la
SI estación?

SI
Deshabilitar registros de
interrupción por recepción
serial Leer el código del mensaje

Habilitar el puerto de Asignar código para inicio


comunicación serial o finalización

Transmitir comandos para RETURN


conocer los mensajes
nuevos que existen

Figura 3.6 Diagrama de flujo de la subrutina de lectura de mensajes de texto

Reemplazando el valor de velocidad se tiene:

Mode = (1000000 / 4800) -20 = 188


De esta manera se consigue el valor 188, ahora al convertirlo a binario se obtiene
el número 10111100 de 8 bits, luego se debe completar el bit 13 de paridad nula
y el bit 14 para recibir los datos invertidos con lo que se llega al valor
100000010111100, que corresponde en código decimal al número 16572, por lo
tanto la instrucción en el programa es colocada de la siguiente manera:

SERIN2 RB3, 16572 , [ WAIT (“$ GPRMC,”) , DEC4 LOC]

Los datos de la instrucción anterior son recibidos en formato serial por el pin RB3,
existe una espera hasta que llegue la trama del receptor GPS que inicia con los
caracteres $GPRMC, luego se almacena los cuatro primeros bytes en una
localidad de memoria llamada LOC, al enviar los datos invertidos no es
necesario el integrado MAX- 232 facilitando la implementación del hardware. el
diagrama de flujo se muestra en la figura 3.7

Subrutina de
adquisición de datos
Seleccionar cada segmento
de la trama

Configurar parámetro de
recepción Almacenar cada segmento
de información

Habilitar el pin RB3 para


recepción serial Finalizar la recepción serial
por el pin RB3

Esperar por la trama


“$GPRMC”
RETURN

Figura 3.7 Diagrama de flujo de la subrutina de adquisición de datos


[Link] Procesamiento de la información

El micro PIC una vez obtenida y almacenada la información pasa a una etapa de
procesamiento donde lee las variable adquiridas y coloca los segmento de
información en un paquete, cada segmento lleva su propio encabezado que
permite su identificación. El paquete contiene un preámbulo donde se encuentra
la identificación del móvil del que procede y el número de mensaje.

Cada 60 segundos se adquieren nuevos datos del receptor GPS, luego de un


intervalo de tiempo de tres minutos, el PIC coloca los tres últimos paquetes en
una trama para ser enviada posteriormente como un mensaje de texto SMS. El
parámetro de tiempo anterior puede ser modificado dependiendo de los
requerimientos del diseño, el diagrama de flujo de la subrutina se muestra en la
figura 3.8

Subrutina de
procesamiento de la
información

Leer variables obtenidas

Colocar encabezado a
cada segmento

Asignar preámbulo y colocar


el número de mensaje

Colocar todos los


segmentos en una trama

RETURN

Figura 3.8 Diagrama de flujo de la subrutina de procesamiento de datos


[Link] Envió de trama de datos como mensaje SMS.

Esta última subrutina se efectúa cada tres minutos y contiene la información de


tres muestras o ubicaciones tomadas en este lapso de tiempo, el primer paso del
microcontrolador es leer las tramas que se procesaron, después abrir el puerto
de comunicaciones, luego enviar el comando para asignar el número telefónico al
que va a llegar el mensaje SMS.

Posteriormente transmitir el comando con el paquete de tramas de datos y


finalmente cerrar el puerto de comunicaciones, en la figura 3.9 se muestra el
diagrama de flujo de esta subrutina.

Envió de tramas como


mensaje SMS

Abrir el puerto de
comunicación serial

Enviar comando de
identificación de número
telefónico destino

Transmitir comandos para


enviar trama en mensajes
SMS

Cerrar el puerto de
comunicación serial

RETURN

Figura 3.9 Diagrama de flujo de la subrutina de envió datos como mensaje SMS.
3.6 PROCESAMIENTO DE DATOS CON LABVIEW 6.1

Esta sección describe el programa realizado en LabView 6.1 para comunicarse


con un equipo celular GSM y adquirir los datos de localización geográficade un
móvil.

Se escoge LabView por la gran variedad de componentes de software que se


pueden utilizar para monitorear, controlar procesos o realizar pruebas con
equipos. En LabView los programas son llamados instrumentos virtuales o VIs,
debido a que su apariencia y operación imita a un instrumento físicamente, cada
VI utiliza funciones para manipular entradas desde la interfaz de usuario o alguna
otra fuente y mostrar la información en la pantalla.

El programa desarrollado se divide en dos partes, la pantalla frontal donde se


muestra la interfaz de usuario y el diagrama de bloques que contiene el código
gráfico del programa.

3.6.1 PANTALLA FRONTAL

La pantalla de presentación se observa en la figura 3.10, donde se muestra la


carátula del proyecto, dispone de un botón para continuar al VI del programa
principal y el botón para concluir la ejecución del VI.

En la pantalla principal, figura 3.11 se muestra la etapa de funcionamiento del


equipo celular GSM, en una segunda etapa el control de operación, finalmente en
la tercera etapa se aprecian los puntos de posición o waypoints del móvil.

La parte de funcionamiento del equipo GSM se refiere a comandos que envía el


programa hacia el equipo celular, este a su vez compara el comando y si se
encuentra correcto regresa un reconocimiento OK.

El usuario puede determinar si el dispositivo se encuentra funcionando


normalmente o si existe algún problema de comunicación, para lo cual existen
tres aspectos que se deben revisar, inicio de protocolo, operación en mensajes
SMS y funcionamiento en modo de texto.

En el control de operación el usuario tiene que ingresar el nombre del archivo


donde se registra la trayectoria del móvil, además se observan los botones para
iniciar y finalizar el funcionamiento del equipo MPCC en modo de transmisión
remota.

En la parte de información de posición se observa datos de latitud, longitud, hora,


fecha, estado de los datos y el número de muestra correspondiente, los valores se
actualiza cada 3 minutos y corresponde a las muestras tomadas dentro de este
lapso de tiempo.

Figura 3.10 Pantalla de presentación

El estado de la información indica si los datos son válidos y depende de el


receptor GPS, un estado incorrecto se produce cuando el GPS inicia su
funcionamiento o cuando el móvil se encuentra en sitios donde no hay recepción
de datos provenientes de los satélite, como sótanos, túneles o parqueaderos
subterráneos. Si la información es correcta aparece en la pantalla el carácter “A”,
mientras que el carácter “V” corresponde a datos erróneos.

Los datos de latitud y longitud vienen expresados en grados y minutos, tienen la


siguiente forma:

00 13.1147 S : representa las coordenadas de latitud

00 grados 13,114700 minutos Hemisferio Sur

Figura 3.11 Pantalla principal

3.6.2 DIAGRAMA DE BLOQUES

Para realizar el control del equipo GSM se envía comandos y datos entre el
dispositivo y el PC, por tal motivo se desarrolla un programa con subrutinas para
manejar el puerto de comunicación serial y además procesar la información que
se obtiene, a continuación de describe las etapas del programa gráfico
desarrollado.
[Link] Comunicación serial con el modem GSM

Los drivers de instrumentación de Labview usualmente se comunican con


dispositivos usando un software de arquitectura virtual con un protocolo usado
para hablar con equipos, de tal forma que se puede usar instrumentos virtuales
para crear un sistema personalizado para pruebas, mediciones y automatización
industrial, combinando diferentes componentes de hardware y software

Para poder desarrollar una aplicación de control que utiliza directamente el puerto
serial es necesario conocer el set de comandos para comunicarse con el
dispositivo y además especificar los parámetros para configurar el puerto.

La función “Serial Port Init .vi” permite identificar el puerto de trabajo, la velocidad
de comunicación expresada en baudios por segundo (bps), los bit de datos y la
paridad.

Para la aplicación se utiliza el puerto de comunicación COM1, la velocidad


utilizada es 1152000 bps, el número de bit de datos es 8 y paridad ninguna, la
figura 3.12 muestra el icono de la función.

Figura 3.12 Función Serial Port Init .vi

Para enviar los comandos desde el programa hacia el dispositivo GSM se utiliza
la función “Serial Port Write .vi”, tiene como opciones de entrada el puerto de
comunicación y el buffer de escritura en el que se colocan los datos que se envían
hacia el modem, la figura 3.13 muestra el icono de la función.
Figura 3.13 Función Serial Port Write .vi

La lectura del puerto se realiza por medio de la función “Serial Port Read .vi”,
como opción de entrada tiene el puerto de comunicación y el número de
caracteres a ser leídos, cuando llega un dato este se coloca en el buffer de
lectura, la figura 3.14 muestra el icono de la función.

Figura 3.14 Función Serial Port Read .vi

La función “Close Serial Driver .vi”, sirve para liberar el puerto de comunicación y
que pueda ser empleado en otra aplicación, la figura 3.15 muestra el icono de la
función.

Figura 3.15 Función Close Serial Driver .vi

[Link] Procesamiento de la información.

Una vez que llega un mensaje de texto SMS al equipo GSM, este envía una
notificación por el buffer de lectura, indicando que tiene un mensaje, en esta etapa
el programa compara el código de notificación para determinar en que localidad
de memoria se coloca el mensaje y posteriormente leerlo.
Para eliminar información que la operadora de telefonía envía por diferentes
motivos, se identifica el número de teléfono del que proviene cada mensaje, si
corresponde al número del equipo GSM del móvil se continúa con las otras etapas
del programa, caso contrario se borra el mensaje.

Luego de la identificación del número de teléfono se espera por los caracteres del
código de inicio que son asignados, posteriormente se selecciona y procesa la
información de los diferentes datos que se muestran en la pantalla.

El VI una vez leído los mensaje de texto procede a borrarlos, para desocupar
esas localidades de memoria, enviando el comando para borrar mensajes.

Un aspecto que interviene en el programa es la utilización de funciones para


manejar caracteres de texto, la información que se obtienen del dispositivo celular
viene en tramas de datos, las cuales tienen que ser identificadas, procesadas y
mostradas en pantalla, en la figura 3.16 se observa esta etapa del código gráfico

Figura 3.16 Etapa de procesamiento de datos


[Link] Conversión de datos y cálculos matemáticos.

Antes de mostrarse en la pantalla frontal los datos de latitud y longitud pasan por
una etapa de conversión de minutos a grados para posteriormente almacenarse
en un archivo y luego ser empleado por el software de geo-referenciamiento y
mostrar el waypointr en un mapa digital, además se realiza una actualización del
valor de hora y fecha, ya que los satélites proporcionan el valor de tiempo UTC,
para este propósito se utiliza funciones matemáticas y funciones de conversión de
caracteres a números, como se muestra en la figura 3.17

Figura 3.17 Etapa de conversión y cálculos numéricos.

[Link] Elaboración de un archivo de registro.

Antes de guardar los datos en un registro primero hay que construir un formato de
tramas específico, con las características que necesita el programa de geo-
referenciamiento, el cual abre el archivo y carga los puntos de posición para
mostrarlos en el mapa.

Se utiliza la función “ Write Charactes To [Link] ” para almacenar los datos que se
generan en un archivo, la opción que corresponde al PAT identifica el nombre del
archivo en el que se va a guardar la información, la figura 3.18 muestra esta etapa
del VI.

Figura 3.18 Etapa de elaboración de un registro

[Link] SubVI

En LabView cada VI dispone de un icono conector que es la representación


gráfica de un programa y puede contener variables, textos o imágenes, sirve
como conexión entre el panel frontal y el diagrama de bloques, también se lo
utiliza para conectar terminales de un VI desde otros programas.

De esta forma se puede utilizar un programa como un subprograma o subVI


dentro de un VI principal, colocando el icono conector del subVI y adicionando las
entradas y salidas requeridas.

Se realiza un subVI de la etapa de selección y procesamiento, ya que incorpora


un código gráfico bastante extenso, en la figura 3.19 se muestra el icono conector
correspondiente al subVI llamado “TRAMA “, también se observa las opciones
correspondientes a entradas y salidas.
Figura 3.19 Icono conector de un SubVI

[Link] Código final.

El programa utiliza funciones de estructuras como lazos true / false, secuencia, for
loop y while loop, las figura 3.20 y 3.21 muestran el código del programa con
algunas funciones empleadas.

Figura 3.20 Código gráfico del programa


Figura 3.21 Código gráfico del programa

3.7 SOFTWARE OZIEXPLORER PARA GEO-REFERENCIAMIENTO

OziExplorer fue desarrollado para utilizar coordenadas geo-referenciadas de un


receptor GPS y mostrar su posición en un mapa, dispone de una barra de
herramientas y diferentes opciones de menú para cargar archivos, colocar
puntos geo- referenciados, realizar trayectorias y crear rutas en el mapa.

Se pueden adicionar hasta 1000 puntos de posición determinados por las


coordenadas de latitud y longitud y hasta 300 eventos para marcar la posición en
el camino, colocar diferentes símbolos, señales y comentarios en el mapa.

3.7.1 CARACTERÍSTICAS

ƒ Permite cargar archivos que contienen los puntos de ubicación de un recorrido


y mostrarlos en la pantalla.
ƒ Guardar en el computador los cambios realizados sobre el mapa y en los
archivos de localización.
ƒ Puede crear puntos localizados, trayectorias, rutas, eventos y mostrarlos en la
pantalla.
ƒ Los datos pueden ser editados, permitiendo añadir comentarios, cambiar el
tipo de señal de indicación que aparece en la pantalla, así como modificar el
nombre y el tamaño de letra.
ƒ Tiene la opción para determinar la distancia entre diferentes puntos.
ƒ El software permite construir mapas geo-referenciados a partir de archivos de
imágenes de mapa, especificando 2 o más puntos localizados.
ƒ Dispone de la opción de zoom para apreciar en diferentes tamaños las calles y
avenidas de un mapa.
ƒ Imprime posiciones y reportes de mapas.
ƒ Despliega simultáneamente varios vehículos sobre una región o mapa local
ƒ Trabaja bajo diferentes sistemas operativos como Windows
95/98/ME/NT4/2000/XP

3.7.2 IMAGEN VISUAL ATRAVÉS DE UN MAPA GEOREFERENCIAL

OziExplorer utiliza una imagen de un mapa que ha sido calibrado o geo-


referenciado de tal forma que se puede utilizar los pixeles de posición sobre el
mapa y determinar la verdadera ubicación geográfica.

Cuando se quiere trabajar con un mapa se debe abrir un archivo con extensión
“.map”, que contiene la información de calibración y calcula el factor necesario
para convertir las coordenadas en pixeles de la imagen a coordenadas
geográficas.

El mapa del norte de la ciudad de Quito cargado en el software se muestra en el


gráfico 3.22, además en la pantalla se puede observar la barra de herramientas,
las opciones de menú y la ventana en la que aparecen las coordenadas
geográficas.
Figura 3.22 Mapa de una zona del norte de la ciudad de Quito

3.7.3 BARRA DE HERRAMIENTAS

La barra de herramientas de OziExplorer contiene las siguientes opciones que se


observa en la figura 3.23

ƒ Salir del programa


ƒ Cargar archivos del menú
ƒ Guardar archivos del menú
ƒ Colocar puntos en el mapa
ƒ Colocar eventos y comentarios
ƒ Realizar manualmente rutas
ƒ Colocar distancia entre puntos
ƒ Mostrar listas de puntos de localización
ƒ Zoom
Figura 3.23 Barra de herramientas

3.7.4 OPCIONES DE MENÚ


Entre las diferentes opciones del menú se encuentran:

¾ Menú Archivo.- la opción permite cargar, guardar y salvar archivos, crear y


calibrar imágenes de mapas, cambiar nombre de la imagen, imprimir archivos,
importar mapas, entre otros.

¾ Menú Selección.- con esta opción se puede seleccionar controles, puntos de


posición, eventos y guardar objetos seleccionados, entre otros.

¾ Menú Cargar.- se utiliza para abrir archivo de mapas, abrir mapas recientes,
cargar archivos de puntos localizados, añadir puntos localizados.

¾ Menú Guardar.- guarda archivos de mapas, archivos de puntos localizados,


archivo de eventos, archivos de ruta, exporta archivos de puntos hacia
archivos de texto, exporta rutas.

¾ Menú Lista.- muestra la lista de puntos localizados, lista de rutas, lista de


eventos, lista de comentarios y características.

3.7.5 ARCHIVO DE PUNTOS LOCALIZADOS

En la aplicación desarrollada se utiliza la opción para añadir un archivo de puntos


localizados o waypoint, el archivo tiene una extensión “.txt” en el cual se
encuentran tramas de datos correspondientes a diferentes ubicaciones que se
toman a lo largo de una ruta realizada.
Cada trama tiene diferentes datos que son separados por comas y corresponden
a un punto especifico del mapa, a continuación se detalla las partes de una trama.

Waypoint, D, nombre , -26.636541, 152.449640, 03/29/2006, [Link], comentario


Waypoint, D, 22 , -26.659681, 152.454323, 03/29/2006, [Link],
Waypoint, D, 23 , -26.690183, 152.471887, 03/29/2006, [Link],
Waypoint, D, 24 , -26.695442, 152.481839, 03/29/2006, [Link],

La trama empieza con el inicio de línea “Waypoint, D” que indica al software que
es un archivo de ubicación, luego se encuentra el nombre del punto localizado
que va a aparecer en el mapa, a continuación sigue el valor de la coordenada de
latitud y longitud convertidas en grados, posteriormente se encuentra el dato de
fecha, hora y al final el comentario respectivo.

Al cargar el archivo “.txt” se despliega automáticamente en el mapa todos los


puntos encontrados, luego con la opción “lista” del menu “ver” aparece la tabla de
todos los puntos del archivo clasificados en filas y columnas y el valor que
representan, como se observa en la figura 3.24

Figura 3.24 Lista de puntos localizados


Esta tabla permite editar los puntos localizados, cambiar el valor de las
coordenadas, colocar comentarios, modificar el símbolo con el que aparece en el
mapa, borrar puntos entre otras opciones.

Para la aplicación se utiliza un mapa geo-referenciado del norte de la ciudad de


Quito, al realizar un recorrido con un emisor móvil por las diferentes calles y
avenidas principales los datos de la localización son enviados a la estación
central, en este lugar la información es procesada en el programa de adquisición
de datos y guardados en un archivo de texto, al cargar el archivo desde el
programa de exploración se pueden observar la ruta efectuada, como se muestra
en la figura 3.25

Figura 3.25 Puntos localizados en un recorrido

También podría gustarte