Posicionador Satelital
Posicionador Satelital
Posicionador Satelital
Posicionador Satelital
Comunicado Por Telefona Celular
Ricardo Romitelli
Posicionador Satelital
Comunicado Por Telefona Celular
Ricardo Romitelli
Departamento de Ingeniera Electrnica
Ctedra de Proyecto Final
Universidad Tecnolgica Nacional
Facultad Regional Villa Mara
2006
ndice de contenidos
1. PRLOGO ................................................................................................................... 1
1.1. Objetivos generales................................................................................................................................................ 1
1.2. Esquema general del proyecto.............................................................................................................................. 2
2006
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
ndice de contenidos
II
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
ndice de contenidos
III
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
ndice de contenidos
IV
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
ndice de contenidos
1
Prlogo
1.1. Objetivos generales
El propsito del presente proyecto es desarrollar un sistema que permita la localizacin de un
vehculo dentro del rea urbana local, esto es en el radio que abarcan las vecinas localidades de
Villa Mara y Villa Nueva. Para ello se utilizan las seales brindadas por la red de satlites GPS
(Global Positioning System) las cuales son tomadas por un pequeo mdulo desarrollado para
captar y decodificar dichas seales. A su vez, se utiliza el sistema de mensajera de la red de
telefona celular GSM para la transmisin de los datos recogidos por el mdulo GPS situado en el
vehculo hacia un sitio fijo en donde dicha informacin de posicin es transformada en un punto
sobre un plano de un programa informtico.
Figura 1: Plano e imagen satelital de las ciudades de Villa Mara y Villa Nueva.
El grueso del trabajo consiste entonces en la conversin de datos entre un bloque y otro del
proyecto para lo que se utilizar un circuito basado en un microcontrolador para la unidad mvil,
y una aplicacin desarrollada en lenguaje DELPHI para la unidad fija.
Las motivaciones del desarrollo de este proyecto son las de poder brindarle a los pequeos y
medianos comercios y empresas de servicios locales, una alternativa tecnolgica de
aprovechamiento logstico de sus unidades, permitiendo una mejor distribucin geogrfica de los
mviles lo que trae aparejado un ahorro de tiempo de las tareas que realizan y un ahorro de dinero
por el menor kilometraje desarrollado ante una buena planificacin de los recorridos a seguir, por
el conocimiento preciso de la posicin del vehculo a lo largo de la jornada laboral. Claro est
que, con el uso de este tipo de aplicacin, los principales beneficiados son los clientes o usuarios
2006
Posicionador Satelital
Comunicado Por
Telefona Celular
finales del servicio, por las menores demoras en la llegada de su solicitud. Supongamos por
ejemplo, que el sistema es aplicado a una compaa de taxis: el operador de la oficina central,
ante la solicitud de un determinado cliente, puede optar rpidamente por el vehculo que se
encuentra en el lugar ms cercano al usuario, con solo echar un vistazo a la pantalla de una
computadora.
De modo adicional, con un desarrollo un poco ms cuidadoso del proyecto (algo que en principio
excede los alcances de este trabajo), el sistema puede ser utilizado como elemento de seguridad
para aquellas empresas que transportan elementos valiosos o que desarrollan su actividad en
condiciones de riesgo.
Red GSM
Mdulo
GPS
Celular
Celular
Cable
de datos
Circuito con
microcontrolador
Programa de
visualizacin
Unidad mvil
Figura 2: Diagrama de bloques del trabajo.
Antes de la descripcin del trabajo en concreto, se expone en este informe las principales
caractersticas de los sistemas GPS y de telefona celular, as como los correspondientes
protocolos utilizados para el vnculo entre las partes.
2006
Prlogo
2
Sistema GPS
2.1. Introduccin
El Sistema de Posicionamiento Global (Global Positioning System) es un mtodo de navegacin
basado en satlites, adoptado a partir de una red de 24 satlites localizados en rbita por el
Departamento de Defensa de los Estados Unidos. Originalmente fue proyectado para aplicaciones
militares, pero a principio de la dcada de 1980, el gobierno lo hizo disponible para usos civiles.
El sistema trabaja bajo cualquier condicin climtica, en cualquier lugar del mundo, las 24 horas
del da y no tiene tarifa de suscripcin ni cargos por establecimiento al uso del GPS.
Los satlites GPS circundan la tierra dos veces al da en rbitas muy precisas, transmitiendo
seales de informacin. Los receptores toman dicha informacin y triangulan los datos para
calcular la localizacin exacta del usuario. Esencialmente, los receptores GPS comparan el tiempo
en que la seal fue transmitida por un satlite con
el tiempo en que la seal fue recibida. La
diferencia entre estos tiempos le informa al
receptor cuan alejado del satlite est. Con la
medida de distancia de algunos satlites ms,
puede determinar la posicin del usuario.
Un receptor GPS debe estar enlazado en la seal
de al menos tres satlites para calcular la posicin
en dos dimensiones (latitud y longitud) y la traza
del movimiento. Con cuatro o ms satlites a la
vista, el receptor puede determinar la posicin 3D
(latitud, longitud y altitud) del usuario. Una vez
obtenida la posicin, la unidad GPS puede
calcular otra informacin tal como velocidad,
curso, distancias, etctera.
Hoy en da los receptores GPS son extremamente
precisos, gracias a su diseo multi-canal en
paralelo,
enganchndose
rpidamente
al
encenderse y manteniendo la recepcin de la
seal an bajo denso follaje o edificaciones
urbanas elevadas, aunque ciertos factores
atmosfricos como la lluvia, y otras fuentes de
error, pueden afectar su precisin.
2006
Posicionador Satelital
Comunicado Por
Telefona Celular
Estos satlites estn alimentados por energa solar, aunque tienen respaldo de batera para
mantenerlos funcionando cuando estn eclipsados. Su potencia de transmisin es de solo 50
vatios, o menos. El peso de los satlites GPS es de 900 kilogramos y el largo, incluyendo los
paneles solares, es de 5 metros. Tienen pequeos cohetes impulsores que los mantienen volando
en el camino correcto. El primero fue lanzado en 1978 y tienen una vida cercana a los 10 aos.
Cada satlite est equipado con receptores y emisores de ondas de radio que transmiten con una
frecuencia de entre 1200-1500 MHz. Las ondas de radio viajan a la velocidad de la luz
(300.000.000 m/s) en el vaco, y disminuyen su velocidad cuando atraviesan la atmsfera
terrestre. La antena de cada satlite es un array helicoidal con polarizacin derecha y ganancia de
15 dB.
Los satlites tambin estn equipados con relojes atmicos, que mantienen el tiempo en base a
vibraciones naturales peridicas dentro de los tomos. Estos relojes increblemente precisos son
un componente crtico que hacen posible el uso de satlites para navegacin y mapeo. Cada
satlite cuenta con cuatro relojes, dos de cesio y dos de rubidio, a pesar de que uno sera
suficiente, de esta forma se evita el riesgo de rotura o prdida de precisin por alguno de los
relojes.
2006
Sistema GPS
Posicionador Satelital
Comunicado Por
Telefona Celular
Adems hay cinco estaciones monitoras que se encuentran en Hawaii y Colorado Spring, y
controlan el estado y posicin de los satlites. Reciben las seales transmitidas por los satlites y
a partir de ellas obtienen informacin que es transmitida a la estacin maestra de control, la cual
se encarga en calcular las efemrides y obtener as la posicin de los satlites.
Medida de la velocidad del usuario con una precisin de 0,1 m/s aproximadamente.
2006
Sistema GPS
Posicionador Satelital
Comunicado Por
Telefona Celular
Figura 3: Dos mediciones ubican al receptor en algn punto del crculo de intercepcin.
2006
Sistema GPS
Posicionador Satelital
Comunicado Por
Telefona Celular
Si se realiza la medicin de distancia desde un tercer satlite se reduce la ubicacin posible del
receptor a dos puntos en el espacio, dnde la tercera esfera intercepta el crculo formado por la
primera con la segunda. Para decidir cul de esos dos puntos es la ubicacin correcta hay dos
opciones: o hacer una cuarta medicin desde otro satlite o hacer una suposicin.
Generalmente uno de los dos puntos es una ubicacin ridcula, o no se encuentra sobre la
superficie terrestre o tiene una velocidad imposiblemente alta. Los programas dentro de los
receptores de GPS tienen varias tcnicas para distinguir el punto correcto del que no lo es.
Aunque bastara con solo tres satlites para determinar la posicin, esto exigira una precisin
muy buena y una gran estabilidad de los relojes, tanto del satlite como del receptor. Si bien los
satlites cumplen estas dos condiciones, pues incorporan un reloj atmico (que son muy precisos
y muy estables), este no es el caso de los receptores puesto que su precio sera desorbitado.
La solucin a este problema es introducir una nueva incgnita en el sistema, debido a la deriva
que existe entre el reloj del satlite y el reloj del usuario, por lo que se utilizan cuatro satlites.
Si llamamos Ri a la distancia entre el satlite i, y el receptor; la distancia real es:
Ri = t c
Si Ri es la pseudo-distancia que mide el receptor, tenemos que:
Ri = tmedido c
Donde el tiempo medido es:
tmedido = t +
Como la pseudo-distancia es la distancia real ms la deriva entre relojes, tenemos:
Ri = Ri +
Siendo el error producido por la deriva existente entre el reloj del satlite y el reloj del receptor:
=c
As pues, la distancia real (que es la que nos interesa) es:
Ri = Ri c
2006
Sistema GPS
Posicionador Satelital
Comunicado Por
Telefona Celular
Si las coordenadas (xi,yi,zi) para cuatro satlites son conocidas, tenemos un sistema de cuatro
ecuaciones con cuatro incgnitas de la siguiente forma:
(x1 Ux)2 + (y1 Uy)2 + (z1 Uz)2 = (R1 c )2
(x2 Ux)2 + (y2 Uy)2 + (z2 Uz)2 = (R2 c )2
(x3 Ux)2 + (y3 Uy)2 + (z3 Uz)2 = (R3 c )2
(x4 Ux)2 + (y4 Uy)2 + (z4 Uz)2 = (R4 c )2
Siendo (Ux, Uy, Uz) las coordenadas de la posicin del receptor y la cuarta incgnita a
determinar con los datos del cuarto satlite.
(x2,y2,z2)
(x1,y1,z1)
(x3,y3,z3)
(x4,y4,z4)
(Ux,Uy,Uz)
Figura 5: Coordenadas de posicionamiento.
Si hay ms de cuatro satlites visibles se calculan las pseudo-distancias respecto a todos los
satlites visibles, obteniendo as un sistema con ms ecuaciones que incgnitas, lo que simplifica
el clculo de la posicin. El sistema est diseado para que sobre cualquier punto de la superficie
terrestre haya al menos cuatro satlites visibles. El sistema GPS adems de la posicin nos ofrece
una referencia temporal muy exacta, esto permite:
Sincronizar los relojes locales (lo que tiene muchas aplicaciones, como la sincronizacin
en transmisiones).
Medir la velocidad a la que se desplaza el usuario a travs del desplazamiento Doppler. En
GPS, este trmino hace referencia al cambio aparente de la frecuencia de una seal por
causa del movimiento relativo de la fuente de emisin con respecto al receptor. Si el
emisor se desplaza hacia el receptor, la frecuencia aparenta ser menor; si el emisor se aleja
del receptor, la frecuencia aparenta ser mayor.
2006
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
Sistema GPS
Posicionador Satelital
Comunicado Por
Telefona Celular
Seal de trayectoria mltiple. Este error ocurre cuando la seal GPS es reflejada por
superficies naturales elevadas o edificaciones antes de llegar al receptor, incrementando el
tiempo de viaje de la seal.
Errores en el reloj del receptor. El reloj integrado del receptor no es tan preciso como los
relojes atmicos satelitales, en consecuencia puede haber ligeras diferencias temporales.
Cantidad de satlites visibles. Cuanto ms sean los satlites que un receptor pueda ver,
mayor ser su precisin. El terreno, las edificaciones, interferencia electrnica o el follaje
denso puede bloquear la recepcin de la seal, provocando errores en la posicin.
Generalmente las unidades GPS no operan en interiores, debajo del agua o bajo tierra.
2006
Sistema GPS
10
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
Sistema GPS
11
3
Mdulo Receptor GPS FV-12
3.1. Introduccin
Los avances recientes en la tecnologa del silicio y del software, han permitido el desarrollo de
receptores GPS muy pequeos y de bajo costo. Uno de estos dispositivos es la placa GPS de doce
canales modelo FV-12, de San Jose Navigation Inc.
Este mdulo GPS de alto desempeo, incluye una sealizacin de tiempo real de un pulso por
segundo, comunicacin serie de velocidad elegible, entrada para GPS diferencial, salida NMEA
0183 y memoria no voltil.
Su forma de conectar es sumamente simple. Un conector de veinte pines contiene todas las
conexiones elctricas necesarias para la interfase principal. Para obtener un correcto
posicionamiento, solo se requiere conectar 0 VDC, 5 VDC, y la salida de informacin (TXA).
Como todo GPS, requiere de una antena, que en este caso es pasiva, y algo ms pequea que el
mismo GPS. Tiene en su parte inferior, un potente imn, el cual permite fijar la antena a la
carrocera del vehculo, quedando a la intemperie sin ningn tipo de inconveniente.
12
Posicionador Satelital
Comunicado Por
Telefona Celular
Figura 2: GRF1.
2006
Figura 3: GSP1/LX.
13
Posicionador Satelital
Comunicado Por
Telefona Celular
El tiempo necesario para llegar al primer valor de posicin, luego de encendido el receptor, se
denomina TTFF por Time To First Fix. Para llegar a un menor TTFF, los receptores GPS
requieren la posicin de los satlites en funcin del tiempo (el calendario), la hora aproximada
(para saber donde deberan estar los satlites en el momento del encendido), y una estimacin de
la posicin del usuario (usada para saber que satlites deberan estar a la vista). En un receptor
GPS tpico estos parmetros almacenados en la memoria RAM, junto con un reloj en tiempo real
(RTC), permiten el TTFF ms corto.
El juego de chips SiRFstar incluyen varias caractersticas que le permiten combatir las
dificultades en la recepcin de las seales satelitales debidas a las caractersticas del entorno
urbano.
Entre las principales caractersticas del juego de chips SiRFstar incluido en este modelo de
receptor se encuentran las siguientes:
2006
14
Posicionador Satelital
Comunicado Por
Telefona Celular
El comienzo en caliente hace referencia al encendido del mdulo despus de un tiempo tal en que el receptor posea
en su memoria la informacin de efemrides lo suficientemente actualizada como para que estn presentes los datos
orbitales de dicho momento de encendido. El lapso entre el apagado y el encendido en caliente puede llegar a varias
horas, dependiendo da la cantidad de informacin almacenada. Cuando el lapso es mayor, estamos ante un encendido
en fro.
II
Para el presente proyecto se utiliza el formato NMEA 0183.
2006
15
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
16
Posicionador Satelital
Comunicado Por
Telefona Celular
3.4. Antena
En el presente proyecto se utiliz para el mdulo FV-12, el modelo de antena SM-66. Esta antena
GPS de montaje externo, provee una seal continua en la banda L1 con alta ganancia y bajo
consumo. Es una unidad integrada compuesta de una placa-antena y de un amplificador de bajo
ruido en un conjunto compacto y sumergible.
La unidad provee una excelente amplificacin de seal con una alimentacin de 3 a 5 voltios. Su
pequeo tamao es una ventaja para las necesidades de mantenimiento de la estabilidad de la
seal an en rudas condiciones ambientales para las aplicaciones actuales.
Sus principales caractersticas son:
- Especificaciones globales:
Frecuencia central: 1575,42 MHz, +/ 1,023 MHz.
Polarizacin: R.H.C.P. (circular derecha).
Ganancia absoluta en el cenit: +5 dBi, tpico.
Ganancia a 10 de elevacin: 1 dBi, tpico.
Radio axial: 3 dB, mximo.
Impedancia de salida: 50 .
Cable: RG174/U, 5 metros.
Conector: MCX.
- Amplificador de bajo ruido:
Frecuencia central: 1575,42 MHz, +/ 1,023 MHz.
Ganancia: 30 dB, tpica.
Ancho de banda: 2 MHz, mnimo.
Figura de ruido: 2,0, mxima.
Atenuacin de la banda externa: 20 dB mnimo, @ f0 +/ 50 MHz.
Alimentacin: De + 4,5 a 5,5 V DC.
Consumo: 28 mA +/ 3mA.
Impedancia de salida: 50 .
2006
17
Posicionador Satelital
Comunicado Por
Telefona Celular
- Construccin fsica:
Arquitectura: cpula de poli-carbonato en la parte superior, carcasa de fundicin
imantada en la parte inferior, junta de goma intermedia para el aislamiento al agua.
Montaje estndar: montaje magntico y/o con tornillos en los dos agujeros roscados
de la parte inferior.
Dimensiones: 58 mm (L) x 48 mm (A) x 15 mm (P).
Peso: 63 gramos (excluyendo al cable y al conector).
- Especificaciones ambientales:
Temperatura de operacin: de 40 C a +85 C.
Temperatura de almacenamiento: de 50 C a +90 C.
Humedad relativa: 95%, no condensada.
Resistencia al agua: 100% impermeable.
2006
18
4
Protocolo NMEA 0183
4.1. Introduccin
El estndar NMEA es un estatuto para la interconexin de dispositivos electrnicos mayormente
utilizado en equipos de navegacin y fue elaborado por la organizacin estadounidense National
Marine Electronics Association. I
La interfaz es un estndar industrial voluntario y fue desarrollada para permitir la rpida y
satisfactoria comunicacin entre instrumentos electrnicos marinos, equipos de navegacin y
equipamiento de comunicacin interconectado por medio de un sistema apropiado; minimizando
la interpretacin incorrecta entre fabricantes y asistiendo a los compradores en la seleccin de
equipamiento compatible.
La comunicacin de los receptores GPS est definida dentro de esta especificacin. La mayora
de los programas de computacin que proveen informacin de posicin en tiempo real son
compatibles con el formato NMEA. La idea del protocolo es enviar una lnea de datos, denominada
sentencia, la cual es totalmente autnoma e independiente de otras sentencias. Hay sentencias
estndares para cada categora de dispositivo y se permite la definicin de sentencias propietarias
para distintas compaas.
El protocolo est proyectado para soportar transmisin de datos seriales en una va, desde un
nico emisor hasta uno o ms receptores. Estos datos pueden incluir informacin como posicin,
velocidad, profundidad, asignacin de frecuencia, etc. Un mensaje tpico puede tener una longitud
de entre 20 y 80 caracteres y generalmente requiere una transmisin no ms frecuente de un
mensaje por segundo.
Los datos en s mismo, son cadenas de texto en formato ASCII y pueden extenderse a lo largo de
mltiples sentencias en ciertas instancias especiales, aunque normalmente estn incluidos
totalmente en una nica sentencia de longitud variable. La informacin puede variar de acuerdo a
la precisin que contenga el mensaje. Se provee una suma de control o checksum en cada
sentencia que puede o no ser controlada por la unidad que lee la informacin.
Las definiciones elctricas del estndar no pretenden acomodarse a aplicaciones de alto ancho de
banda como imgenes de radar o video, o aplicaciones de transferencia intensiva de archivos o
bases de datos.
Debido a que no provee garantas en la entrega de mensajes y que solo tiene una limitada
capacidad de comprobacin de errores, el estatuto debe ser utilizado con precaucin en
aplicaciones crticas.
2006
19
Posicionador Satelital
Comunicado Por
Telefona Celular
4800 baudios
8
1
No
No
Debido a las diferencias de velocidades y otros parmetros de transmisin, los datos NMEA 0183
no son compatibles con estatutos anteriores como el NMEA 0182 o el 0180. La variacin 0183-HS
introduce el uso de una interfaz de tres cables que permite una velocidad de hasta 38400 baudios.
Este tipo de interfaz no ser discutida aqu.
Ntese que a una velocidad de 4800 baudios, puede fcilmente enviarse una cantidad suficiente
de informacin que llena un tiempo de un segundo. Por esta razn, algunas unidades solo envan
actualizaciones cada dos segundos o envan cierta informacin en un determinado segundo,
dejado otro tipo de informacin para el segundo siguiente. En suma, algunas sentencias pueden
tener datos actuales, mientras que otras pueden tener datos de segundos anteriores. Generalmente
se enva un campo con el tiempo, por lo que sencillo determinar que lo que est realizando un
dispositivo en particular.
A 4800 baudios pueden enviarse 480 caracteres en un segundo, y como una sentencia tiene una
longitud de hasta 82 caracteres, pueden enviarse hasta seis sentencias diferentes en dicho lapso de
tiempo, dependiendo del formato de cada sentencia.
Los datos se transmiten asincrnicamente en serie de acuerdo con los estndares ANSI. II
start
D0 D1 D2 D3 D4 D5 D6 D7
stop
bits de datos
stop bit
start bit
El primer bit de la cadena es el de inicio o start bit, seguido por los bits de datos con el bit menos
significativo primero, finalizando con el de parada o stop bit.
Todos los datos transmitidos deben ser interpretados como caracteres ASCII. En consecuencia, el
bit ms significativo del carcter de 8 bits es siempre nulo (D7 = 0).
II
2006
20
Posicionador Satelital
Comunicado Por
Telefona Celular
El conjunto de caracteres ASCII vlidos consisten en aquellos imprimibles (del 0x20 al 0x7E)
exceptuando aquellos definidos como reservados, consignados en rojo en la tabla 1.
D3
D2
D1
D0
D6
D5
D4
Hexa
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
0
LF
CR
0
0
1
1
0
1
0
2
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
1
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
1
0
0
4
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
1
0
1
5
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
1
1
0
6
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
1
1
1
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
Los caracteres reservados son utilizados para propsitos especficos en el formato de las
sentencias y no deben ser usados en los campos de datos. La definicin de cada uno de ellos es la
que sigue:
<CR>
<LF>
$
*
,
!
\
^
~
0x0D
0x0A
0x24
0x2A
0x2C
0x21
0x5C
0x5E
0x7E
Los valores ASCII no especificados dentro de los caracteres vlidos y reservados se excluyen y
no deben ser transmitidos en ningn momento.
2006
21
Posicionador Satelital
Comunicado Por
Telefona Celular
4.3. Definiciones
Un EMISOR es cualquier dispositivo que enva informacin a otros dispositivos dentro de esta
especificacin. El tipo de EMISOR est identificado por dos caracteres como se indica en la tabla 3
de la pgina 24.
Un RECEPTOR es cualquier dispositivo que recibe datos de otro dispositivo dentro de esta
especificacin.
Un campo consiste en una cadena de caracteres vlidos, o en su defecto la ausencia de caracteres
(campo nulo), localizada entre dos apropiados delimitadores de caracteres.
El campo de direccin es el primero de la cadena, est precedido del delimitador $ y se utiliza
para definir la sentencia. El campo de direccin no puede ser nulo y los caracteres dentro de el, se
limitan a dgitos y letras en mayscula.
Solo pueden ser transmitidas sentencias con los siguientes tres tipos de campo de direccin:
Campo de direccin aprobado: consta de cinco caracteres definidos por el estndar.
Los primeros dos son los identificadores del EMISOR, listados tabla 3. Los otros tres
caracteres crean el formador de sentencia, usado para definir el formato y el tipo de
datos. En la tabla 4 de la pgina 25, se enumeran los formadores de sentencia
aprobados.
Campo de direccin de bsqueda: consta de cinco caracteres y se usa para transmitir el
requerimiento de una sentencia especfica en un canal separado desde un EMISOR
identificado. Los dos primeros caracteres son los identificadores del EMISOR del
dispositivo que requiere la informacin, los dos siguientes son los identificadores del
EMISOR del dispositivo que est siendo diseccionado y el ltimo es el carcter de
bsqueda Q.
Campo de direccin propietario: consta del carcter propietario P seguido de un
cdigo de tres caracteres pertenecientes al fabricante, utilizado para identificar al
EMISOR que publica una sentencia propietaria.
Los campos de datos en las sentencias aprobadas estn precedidas del delimitador , y contiene
caracteres vlidos de acuerdo a la tabla 1 de la pgina anterior. Debido a la presencia de campos
de datos variables y campos nulos, un campo de datos especfico solo puede ser localizado dentro
de una sentencia, observando el delimitador de campo ,. En consecuencia es esencial para el
RECEPTOR localizar los campos contando los delimitadores en lugar de contar el nmero total de
caracteres recibidos desde el comienzo de la sentencia. As como algunos campos de datos son de
tamao fijo, muchos otros son de longitud variable para permitirle a los dispositivos proveer
informacin con mayor o menor precisin, de acuerdo a la capacidad o requerimientos del
equipamiento en particular. Los campos de datos pueden ser alfanumricos o numricos y estos
ltimos pueden tener separador de decimales, que en todos los casos ser el carcter . (0x2E).
Un campo nulo es un campo de longitud cero, no se transmite ningn carcter en el campo y es
usado cuando no hay valores disponibles o son poco confiables. Los campos nulos con sus
delimitadores pueden tener la siguiente apariencia, dependiendo en donde se encuentren en la
sentencia: ,,, ,* o ,<CR><LF>.
2006
22
Posicionador Satelital
Comunicado Por
Telefona Celular
,<campo de datos>
M
,<campo de datos>
*<campo checksum>
<CR><LF>
0x24,
comienzo de sentencia
Identificador del EMISOR y formador de sentencia
0x2C + campo de datos
0x2C
0x24
0x0D
+ campo de datos
+ campo checksum opcional
+ 0x0A, fin de sentencia
Como se rese anteriormente, el identificador del EMISOR en el campo de direccin tiene dos
caracteres y en la tabla 3 de la pgina siguiente, se consignan sus posibles valores junto a los
EMISORES (en ingls) a que corresponde cada par de letras.
2006
23
Posicionador Satelital
Comunicado Por
Telefona Celular
EMISOR
AUTOPILOT: General
Magnetic
COMMUNICATIONS: Digital Selective Calling (DSC)
Receiver / Beacon Receiver
Satellite
Radio-Telephone (MF/HF)
Radio-Telephone (VHF)
Scanning Receiver
DECCA Navigation
Direction Finder
Electronic Chart Display & Information System (ECDIS)
Emergency Position Indicating Beacon (EPIRB)
Engine Room Monitoring Systems
Global Positioning System (GPS)
HEADING SENSORS: Compass, Magnetic
Gyro, North Seeking
Gyro, Non-North Seeking
Integrated Instrumentation
Integrated Navigation
LORAN: Loran-A
Loran-C
OMEGA Navigation System
Proprietary Code
Radar and/or ARPA
Sounder, depth
Electronic positioning system, other/general
Sounder, scanning
Turn Rate Indicator
TRANSIT Navigation System
VELOCITY SENSORS: Doppler, other/general
Speed Log, Water, Magnetic
Speed Log, Water, Mechanical
Weather Instruments
TRANSDUCER
TIMEKEEPERS, TIME/DATE: Atomic Clock
Chronometer
Quartz
Radio Update
Identificador
AG
AP
CD
CR
CS
CT
CV
CX
DE
DF
EC
EP
ER
GP
HC
HE
HN
II
IN
LA
LC
OM
P
RA
SD
SN
SS
TI
TR
VD
VM
VW
WI
YX
ZA
ZC
ZQ
ZV
Para el presente proyecto en que utilizamos un mdulo receptor GPS, todas las sentencias
0183 a usar tendrn el identificador GP.
2006
NMEA
24
Posicionador Satelital
Comunicado Por
Telefona Celular
4.5. Sentencias
El protocolo ha cambiado levemente con el correr de las versiones y la cantidad y los tipos de
sentencia pueden ser diferentes dependiendo de la revisin. La mayora de los receptores GPS
convencionales entienden la versin 2 del estndar NMEA 0183, por lo que se describirn las
sentencias en particular en base a dicha versin.
Los tres caracteres de los formadores de sentencia aprobados en el campo de direccin, se
presentan en la tabla 4, junto a la definicin en ingles de los tipos de datos a que hacen referencia
cada uno de ellos, todo esto de acuerdo a la revisin NMEA 0183 versin 2.00 de enero de 1992.
En negrita se resaltan los formadores de sentencia utilizados por el mdulo receptor GPS del
presente proyecto.
Form.
AAM
ALM
APB
ASD
BEC
BOD
BWC
BWR
BWW
DBT
DCN
DPT
FSI
GGA
GLC
GLL
GSA
GSV
GXA
HDG
HDT
HSC
LCD
MTW
MWV
OLN
OSD
Tipo de datos
Waypoint Arrival Alarm
GPS Almanac Data
Autopilot Sentence "B"
Autopilot System Data
Bearing & Distance to Waypoint, Dead Reckoning
Bearing, Origin to Destination
Bearing & Distance to Waypoint, Great Circle
Bearing & Distance to Waypoint, Rhumb Line
Bearing, Waypoint to Waypoint
Depth Below Transducer
Decca Position
Depth
Frequency Set Information
Global Positioning System Fix Data
Geographic Position, Loran-C
Geographic Position, Latitude/Longitude
GPS DOP and Active Satellites
GPS Satellites in View
TRANSIT Position
Heading, Deviation & Variation
Heading, True
Heading Steering Command
Loran-C Signal Data
Water Temperature
Wind Speed and Angle
Omega Lane Numbers
Own Ship Data
Form.
RMA
RMB
RMC
ROT
RPM
RSA
RSD
RTE
SFI
STN
TRF
TTM
VBW
VDR
VHW
VLW
VPW
VTG
WCV
WNC
WPL
XDR
XTE
XTR
ZDA
ZFO
ZTG
Tipo de datos
Recommend Minimum Specific Loran-C Data
Recommend Minimum Navigation Information
Recommend Minimum Specific GPS Data
Rate of Turn
Revolutions
Rudder Sensor Angle
RADAR System Data
Routes
Scanning Frequency Information
Multiple Data ID
TRANSIT Fix Data
Tracked Target Message
Dual Ground/Water Speed
Set and Drift
Water Speed and Heading
Distance Traveled through the Water
Speed, Measured Parallel to Wind
Track Made Good and Ground Speed
Waypoint Closure Velocity
Distance, Waypoint to Waypoint
Waypoint Location
Transducer Measurements
Cross-Track Error, Measured
Cross-Track Error, Dead Reckoning
Time & Date
UTC & Time from Origin Waypoint
UTC & Time to Destination Waypoint
2006
25
Posicionador Satelital
Comunicado Por
Telefona Celular
4.5.1 GGA
La sentencia GGA, Global Positioning System Fix Data o datos GPS de posicin, indica la hora y
los datos esenciales relativos a la ubicacin en tres dimensiones de un receptor GPS. La que sigue
es su estructura:
1
5 6
10 11 12 13
14
15
{ $GPGGA,hhmmss.sss,ggmm.mmmm,a,gggmm.mmmm,a,x,xx,x.x,x.x,M,x.x,M,ss,xxxx*hh
<CR><LF>
Hora en formato UTC III, brindada de modo tal que los dos primeros caracteres presentan la
hora, los dos siguientes los minutos y los seis ltimos los segundos, con precisin de
milsimas (hhmmss.sss).
2.
Latitud de la posicin. Los dos primeros caracteres corresponden a los grados y los siete
restantes indican los minutos en la forma mm.mmmm.
3.
N o S. Indica si la latitud del valor del campo 2 corresponde al hemisferio Norte o Sur.
4.
Longitud de la posicin. Los tres primeros caracteres corresponden a los grados y los siete
restantes indican los minutos en la forma mm.mmmm.
5.
6.
7.
8.
9.
10.
11.
Separacin geoidal. Diferencia entre el elipsoide terrestre WGS-84 y el nivel del mar. -
significa que el nivel del mar est por debajo del elipsoide.
12.
III
Universal Time Coordinated: Tiempo Universal Coordinado. Base horaria uniforme mundial de uso civil que
reemplaza al GMT. Es mantenida por varios laboratorios alrededor del mundo y determinada utilizando relojes
atmicos de altsima precisin. Cuando es 0 UTC, es medianoche en Greenwich (Inglaterra), en la lnea meridiana de
la longitud cero. Aqu en Argentina el huso horario oficial es UTC 3 horas.
2006
26
Posicionador Satelital
Comunicado Por
Telefona Celular
13.
14.
15.
Checksum opcional.
Esta sentencia es la nica que reporta la altitud. Si el sistema no encuentra el nivel del mar, la
altitud no es ofrecida.
Se ofrece ahora una muestra particular de la sentencia:
$GPGGA,143953.999,3225.3381,S,06315.0254,W,1,06,1.3,217.8,M,,,,0000*05
Se observa en el ejemplo, que el dispositivo se encuentra posicionado por medio del sistema
normal de funcionamiento a las 14:39:54, en la latitud 322520 Sur y en la longitud 63151,5
Oeste. Hay 6 satlites visibles, la disolucin de precisin horizontal es 1,3 y la altitud es de 217,8
metros sobre el nivel del mar.
4.5.2 RMC
La sentencia RMC, Recommend Minimum Specific GPS Data o datos GPS especficos mnimos
recomendados, provee fecha, hora, posicin, velocidad y curso del receptor. El campo checksum
es obligatorio en esta sentencia que es transmitida en intervalos no mayores a dos segundos. Se
proveen todos los datos posibles, utilizndose campos nulos solamente cuando la informacin no
est disponible. Su formato es el siguiente:
1
10 11 12
{ $GPRMC,hhmmss.sss,a,ggmm.mmmm,a,gggmm.mmmm,a,x.x,x.x,ddmmaa,x.x,a*hh<CR><LF> }
Donde el significado de cada campo de datos es:
1.
2.
Advertencia de posicin de navegacin. Puede tener la letra A (active) para una posicin
vlida, o la letra V (void) que indica que el dato de posicin es nulo o muy poco preciso.
3.
4.
N o S. Indica si la latitud del valor del campo 3 corresponde al hemisferio Norte o Sur.
5.
6.
7.
8.
IV
La unidad de velocidad conocida como nudo o knot, que deriva de un antiguo proceso de medicin de velocidad en
una nave, es utilizada tanto para navegacin martima como area y tambin en meteorologa para medir la velocidad
de los vientos. Equivale a una milla nutica por hora o a 1,852 kilmetros por hora.
2006
27
Posicionador Satelital
Comunicado Por
Telefona Celular
9.
Fecha. Los dos primeros caracteres brindan el da; los dos que siguen, el mes; y los dos
finales, otorgan los dos ltimos dgitos del ao.
10. Variacin
magntica en grados.
11. E
4.5.3 GSV
La sentencia GSV, GPS Satellites in View o satlites GPS a la vista, indica la elevacin, el
azimut, el valor de la relacin seal-ruido y los nmeros PRN de los satlites visibles. Por cada
sentencia se envan datos de cuatro satlites como mximo; si es necesario, se enva una segunda
o tercera sentencia con la informacin de los hasta doce satlites que puede tomar un receptor. La
cantidad total de mensajes a ser transmitidos y el nmero de mensaje que se est transmitiendo se
indican en los dos primeros campos, tal como se muestra en la siguiente forma general:
1 2
{ $GPGSV,x,x,xx,xx,xx,xxx,xx,xx,xx,xxx,xx,xx,xx,xxx,xx,xx,xx,xxx,xx*hh<CR><LF> }
El significado de cada campo es:
1.
2.
3.
4.
5.
PRN, Pseudo Random Noise o ruido pseudo-aleatorio: Cdigo que tiene una distribucin aleatoria como una
interferencia que se pueden reproducir exactamente. La propiedad importante de los cdigos PRN es que tienen un
valor bajo de autocorrelacin para todos los retrasos. Cada satlite GPS tiene sus propios y nicos cdigos de ruido
pseudos-aleatorio.
2006
28
Posicionador Satelital
Comunicado Por
Telefona Celular
6.
7.
8.
9.
Checksum opcional.
Por ejemplo:
$GPGSV,3,1,10,23,69,228,47,24,54,236,47,13,41,281,46,11,41,005,33*72
$GPGSV,3,2,10,08,40,316,,02,36,281,,27,34,308,,17,16,271,39*7B
$GPGSV,3,3,10,28,11,004,,01,08,128,38*7F
4.5.4 GSA
La sentencia GSA, GPS DOP and Active Satellites o disolucin de precisin y satlites GPS
activos, indica el modo de operacin del receptor, los satlites utilizados en la navegacin y la
disolucin de precisin, que es una indicacin de los efectos de la geometra satelital en la
precisin del posicionamiento. Este nmero sin unidades, cuanto menor sea, mejor es la
disolucin. Para posicionamiento 3D usando 4 satlites, un nmero 1.0 puede considerarse como
un valor perfecto, aunque para resoluciones sobredeterminadas es posible encontrar nmeros
menores. La estructura de la sentencia es:
1 2
{ $GPGSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,x.x,x.x,x.x*hh<CR><LF> }
Cada campo de datos es:
1.
2.
3.
Nmero PRN del satlite utilizado para el posicionamiento en el canal 1. Es un campo nulo
si el satlite correspondiente no es usado.
4.
5.
6.
7.
8.
Checksum opcional.
2006
29
Posicionador Satelital
Comunicado Por
Telefona Celular
Ejemplo:
$GPGSA,A,3,17,11,24,23,01,13,,,,,,,2.0,1.3,1.6*37
4.5.5 GLL
La sentencia GLL, Geographic Position, Latitude/Longitude, provee como su nombre lo indica,
los datos bsicos de posicin. Su formato es el siguiente:
1
{ $GPGLL,ggmm.mmmm,a,gggmm.mmmm,a,hhmmss.sss,a*hh<CR><LF> }
El significado de cada campo de datos es:
1.
2.
N o S. Indica si la latitud del valor del campo 1 corresponde al hemisferio Norte o Sur.
3.
4.
5.
6.
Advertencia de posicin de navegacin. Puede tener la letra A (active) para una posicin
vlida, o la letra V (void) que indica que el dato de posicin es nulo o muy poco preciso.
7.
Checksum opcional.
Ejemplo:
$GPGLL,3225.3382,S,06315.0255,W,144002.999,A*2C
4.5.6 VTG
La sentencia VTG, Track Made Good and Ground Speed o cumplimiento de trazado y velocidad
sobre superficie, brinda los datos de curso y velocidad del receptor. Esta sentencia, que aparece
solamente cuando el dispositivo est sobre un vehculo en movimiento, presenta la siguiente
estructura:
1
{ $GPVTG,x.x,T,x.x,M,x.x,N,x.x,K*hh<CR><LF> }
Donde el significado de cada campo de datos es:
1.
2006
Curso en grados.
Protocolo NMEA 0183
30
Posicionador Satelital
Comunicado Por
Telefona Celular
2.
3.
Curso en grados.
4.
5.
6.
7.
8.
K, indica que el valor de velocidad del campo 7 est expresado en kilmetros por hora.
9.
Checksum opcional.
Ejemplo:
$GPVTG,309.62,T,,M,0.13,N,0.2,K*08
Se observa que el mvil se dirige al noroeste a una velocidad de 0,2 km/h (o 0,13 nudos).
2006
31
5
Telefona Celular
5.1. Introduccin
El concepto celular es aplicable a diversos tipos de redes, sin embargo, es en la telefona mvil
donde alcanza su mayor desarrollo. Este concepto est ntimamente ligado a dos caractersticas
fundamentales de las redes celulares, que son: la reutilizacin de frecuencias y la divisin celular.
El mayor condicionante en el diseo de una red celular es el espectro radioelctrico disponible.
Los sistemas celulares tratan de aprovechar al mximo el nmero de radiocanales disponibles,
restringiendo el rea de cobertura de una estacin base, para poder utilizar la misma frecuencia a
una cierta distancia, mediante la altura y potencia de transmisin de las antenas.
El trmino celular se utiliza ampliamente para describir a los dispositivos de comunicacin
inalmbrica. Una clula o celda se define como un rea o zona geogrfica que rodea a un
transmisor en un sistema telefnico. Podemos pensar en una celda como en una especie de rea
de difusin predeterminada dentro de la cual puede transmitirse una seal sin producir
interferencias en otras celdas. Con las tecnologas de
ms alta frecuencia, los requisitos de consumo de
potencia para que una seal una cierta distancia se
reducen proporcionalmente. Los propios telfonos
celulares tienen la capacidad de transmitir a distancias
de unos pocos miles de metros, como mucho. Gracias
al esquema de celdas y a la tecnologa celular de
conmutacin subyacente, millones de usuarios pueden
mantener conversaciones desde una celda a otra.
Bell Telephone concibi el diseo celular en 1947,
implantando una disposicin de numerosas antenas de
transmisin y recepcin de baja potencia, de manera
tal que se incrementaron las reas efectivas de
cobertura.
Al reducir el tamao de la celda, se puede disminuir la
distancia de reutilizacin, lo que permite incrementar
la complejidad del sistema, y lleva a un aumento de su
capacidad, lo cual significa un aumento de usuarios.
La consecuencia inmediata de una organizacin
celular es la necesidad de traspasar las
comunicaciones en curso de una clula a otra, cuando
el mvil as lo requiera.
2006
32
Posicionador Satelital
Comunicado Por
Telefona Celular
Macrocelda
Microceldas
Picoceldas
Las macroceldas cubren las reas de servicio ms grandes y pueden solo soportar por s mismas
doce canales y doce conversaciones simultneas, utilizando un patrn tpico de siete celdas,
cubriendo cada una de ellas quince kilmetros aproximadamente, de manera tal que en el
solapamiento de celdas no se superponen canales en celdas adyacentes (figura 2).
2
2
7
3
7
3
1
6
7
6
4
5
4
5
5
7
3
1
1
6
5
2
3
1
4
5
1
6
3
1
2006
Telefona Celular
33
Posicionador Satelital
Comunicado Por
Telefona Celular
Las microceldas cubren un radio algo ms pequeo, de unos cuantos kilmetros. Si se divide la
macrocelda en siete microceldas, se consigue un factor de reutilizacin de 27 = 128; soportando el
esquema hasta 1536 conversaciones simultneas (128 x 12).
Las picoceldas cubren un rea bastante limitada, de solo unas cuantas manzanas, un estadio o una
pequea zona suburbana. Con el esquema de siete celdas, si cada una cubre un radio de un
kilmetro, el factor de reutilizacin llega a 512, soportndose miles de conversaciones
simultneas a partir de los doce canales iniciales.
Debido al rpido agotamiento de los recursos de las tecnologas analgicas (o de primera
generacin) por la saturacin de su infraestructura, se busc la solucin a travs de sistemas
digitales mejorados, los cuales resuelven este agotamiento de recursos, dividiendo la informacin
segn la frecuencia, el tiempo o el cdigo. Estas tecnologas de acceso, TDMAI y CDMAII,
forman la infraestructura de la mayora de los sistemas de comunicaciones inalmbricas de hoy en
da, tambin denominados de segunda generacin.
Los sistemas digitales celulares pueden, normalmente, dar servicio a varios usuarios inalmbricos
simultneamente, utilizando el equivalente de un canal analgico monousuario. La cantidad
concreta de usuarios, entre tres y veinte, est determinada por la tecnologa de acceso utilizada,
que puede ser por divisin del tiempo o por expansin de espectro. Este significativo incremento
en la capacidad de usuarios se consigue comprimiendo y digitalizando la informacin de voz en
paquetes que se multiplexan mediante asignaciones temporales o de cdigo, lo que permite dividir
el canal de comunicaciones en subcanales, cada uno de los cuales da servicio a un usuario
individual; con ello se consigue un uso ms eficiente de la red.
La primera implantacin con xito de las tecnologas inalmbricas de segunda generacin fue la
de GSM (Global Systems for Mobile Communications, sistemas globales para comunicaciones
mviles), basado en TDMA. Los pases europeos fueron los primeros en apoyar GSM y en hacer
que esta tecnologa fuera adoptada como estndar, producindose la primera implantacin con
xito de la infraestructura en 1991. GSM comparte el tiempo disponible de canal y el ancho de
banda disponible, lo que permite tener hasta ocho usuarios por cada banda de 200 kHz. En los
Estados Unidos se opt por la tecnologa CDMA, porque tena un potencial de crecimiento mayor
al GSM, y porque mantena la compatibilidad con las redes analgicas existentes.
I
II
TDMA: Time Division Multiple Access, o acceso mltiple por divisin del tiempo.
CDMA: Code Division Multiple Access, o acceso mltiple por divisin de cdigo.
2006
Telefona Celular
34
Posicionador Satelital
Comunicado Por
Telefona Celular
El sistema GPS tiene varios tipos de canales para seales de control, que transportan informacin
del sistema y de localizacin de los mviles, y coordinan el acceso de la misma manera que los
canales de control en los sistemas analgicos. Los canales de control digitales de GSM tienen
capacidades ampliadas que ofrecen funcionalidades tales como el envo de mensajes de difusin a
mviles, modos de inactividad avanzados, varios otros. Dado que los canales de control GSM
utilizan una o ms franjas temporales, pueden normalmente coexistir en un mismo canal de radio
con otras franjas temporales utilizadas para la comunicacin de voz.
La tcnica empleada para la codificacin de la voz es mixta; por una parte, se transmite
informacin de la forma de onda, y por otra, informacin del tono y el espectro. En este proceso
de codificacin se utilizan tcnicas predictivas, aprovechando la propiedad de que los perodos
sucesivos de la voz son bastante similares. Una vez codificada la voz, los datos se codifican
tambin mediante un cdigo convulucional, que permite la correccin de errores en el receptor.
GSM ofrece las diversas funcionalidades por medio de un mdulo de identificacin de abonado
(SIM, Subscriber Identification Module), que se inserta en una ranura situada en el aparato
telefnico. El mdulo SIM contiene datos confidenciales del perfil de usuario, una descripcin de
los privilegios de acceso y una identificacin del operador de telecomunicaciones mviles en el
rea domstica en la que se activ el telfono y en la que fue asignado el nmero. El mdulo SIM
es universal y se puede intercambiar entre telfonos, lo que permite al abonado moverse
libremente a travs de los distintos entornos GSM existentes en el mundo, siempre y cuando
exista un convenio de facturacin entre operadores.
Dada la demanda de los consumidores para disponer de ms funcionalidad y comodidad, el sector
industrial presion para la adopcin de tecnologas de tercera generacin, ofreciendo ideas tales
como la Web inalmbrica, el correo electrnico inalmbrico y los servicios avanzados de buscapersonas, as como una serie de mejoras en los aspectos fundamentales de las tecnologas de
segunda generacin. La tecnologa 3G ms importante y globalmente aceptada es el servicio de
mensajes cortos (SMS, Short Message Service).
5.2.3. SMS
Los estndares SMS y GSM fueron desarrollados por ETSIIII. Como su nombre lo indica, a travs
de los SMS pueden enviarse una cantidad limitada de informacin. Un SMS contiene como
mximo 140 bytes de datos, lo que permite un mensaje de 160 caracteres de cdigo de 7 bits.
Actualmente, casi todos los principales operadores de telecomunicaciones mviles del mundo
proporcionan el servicio SMS. La tecnologa SMS tambin puede utilizarse en la mayora de las
dems redes inalmbricas principales. Entre otras ventajas que presenta el sistema puede
destacarse que los SMS pueden enviarse y recibirse en cualquier momento, pudindose enviar a
telfonos desconectados o fuera de lnea. Debido a que este servicio no utiliza un verdadero
mecanismo de cifrado, los abonados al SMS deben guardar precauciones en cuanto su uso para
evitar problemas de seguridad durante la transmisin de datos confidenciales.
Los responsables del manejo de los SMS en la red son los centros SMS o SMSC. Cuando un SMS
es enviado por un telfono mvil, llega primero a un SMSC, y luego el centro lo deriva al
destinatario. Un SMS puede necesitar pasar a travs de ms de una red antes de llegar a destino.
La obligacin principal de un centro SMS es encaminar el SMS y regular el proceso. Si el
recipiente no est disponible (por ejemplo cuando el mvil est apagado), el SMSC guarda el
mensaje hasta que est disponible. Muy a menudo el SMSC se dedica a manejar el trfico de una
III
2006
Telefona Celular
35
Posicionador Satelital
Comunicado Por
Telefona Celular
red inalmbrica. Usualmente un operador posee su propio SMSC para controlar su red, aunque
puede ocurrir que recurra a un centro de terceros ubicado en otra red. Para utilizar el sistema
SMS, el usuario debe saber la direccin del SMSC de su operador. Tpicamente esta direccin es
un nmero comn en formato internacional; por ejemplo aqu en Argentina los nmeros de los
SMSC son: +541151740011 para la red de la compaa Personal, +543200000001 para CTI y
+54079000801 para MoviStar. Normalmente este nmero viene prefijado en la tarjeta SIM, por lo
que el usuario no debera necesitar cambiarlo.
Un mensaje SMS es almacenado temporalmente en el centro SMS si el recipiente del telfono
receptor no est disponible. Es posible especificar el perodo en que el SMS debe permanecer en
el SMSC antes de ser borrado. Este intervalo de tiempo se denomina perodo de validez y se
configura a travs del men del aparato emisor. Tambin puede configurarse el uso de los
mensajes de confirmacin de entrega para cuando el destinatario reciba el SMS.
Cuando los telfonos de origen y destino no pertenecen al mismo operador, intervienen ms de un
SMSC en la transmisin de un mensaje. Un problema de la mensajera SMS es que el desarrollo
del los SMSC por parte de las compaas ha derivado en varios protocolos de comunicacin,
muchos de ellos propietarios. Por ejemplo NOKIA tiene un protocolo SMSC llamado CIMD,
mientras que otras empresas proveedoras como LOGICACMG, utilizan el protocolo EMI. No
pueden conectarse dos SMSC que no soporten un protocolo en comn. Para solucionar esto, se
utiliza una puerta de enlace de SMS (gateway) entre los centros, el cual traduce un protocolo al
otro. Estos gateway SMS tambin son utilizados por aquellos desarrolladores que envan SMS a
mltiples destinos, evitando tener que lidiar con varios SMSC con protocolos distintos.
Mensaje SMS
Celular
de origen
SMSC de
la lnea
de origen
SMSC de
la lnea
destino
Mensaje SMS
Celular
destino
SMS Gateway
Hay dos maneras de enviar mensajes SMS por medio de una computadora a otro/s mvil/es:
1. Conectar la computadora a un SMSC o a un gateway SMS de un proveedor de servicio,
utilizando el protocolo correspondiente.
2. Conectar un telfono mvil o un modem GSM/GPRS a la computadora, utilizando
comandos AT, o el protocolo F-BUS de NOKIA.
Las nuevas innovaciones tecnolgicas en el sistema SMS permiten, entre otras cosas, el uso de
mensajes concatenados para transmitir mayor cantidad de informacin, el uso de mensajes SMS
en forma de correo electrnico, o el servicio de mensajera multimedia (MMS); haciendo que los
terminales se equiparen cada vez ms a un ordenador personal.
2006
Telefona Celular
36
Posicionador Satelital
Comunicado Por
Telefona Celular
Mdulo de
visualizacin
Mdulo de
alimentacin
Mdulo
de
radio
Mdulo de
teclado
Mdulo de
control lgico
Subsistema generador de portadoras: usa una seal de referencia de 12,8 MHz originada
por un oscilador a cristal, comn para transmisin y recepcin, y mediante la aplicacin en
dos circuitos PLL, se generan las tensiones que se aplican a los VCO de transmisin
(modulando la frecuencia con la informacin a transmitir) y recepcin (produciendo la
frecuencia que se aplica al mezclador de recepcin).
Subsistema de transmisin: primero amplifica la seal en ganancia variable por pasos,
pasndola luego a un amplificador final con potencia de ganancia fija, alimentado desde la
propia fuente de alimentacin, de forma independiente, para aplicar el ahorro de potencia
cuando no hay transmisin.
Subsistema receptor: la seal proveniente de la antena es amplificada en un dispositivo de
dos pasos para mejorar la relacin seal/ruido. Un filtro pasabanda selecciona la banda
adecuada, que es demodulada en un mezclador con la portadora. luego se selecciona la
banda lateral inferior que es sometida a un nuevo proceso de amplificacin y
demodulacin, seleccionando nuevamente la banda lateral inferior que es aplicada a un
discriminador para obtener la informacin transmitida, ya sea analgica o digital.
Subsistema de antena: se constituye por un filtro duplexor y un simple mezclador en
GSM, ya que no actan la transmisin y la recepcin de forma simultnea por la
existencia de un retardo de 1,73 ms.
El sistema de control lgico tiene una estructura similar a la de una PC: CPU, memoria ROM y
RAM, con los buses correspondientes, as como una interfaz que permite su interconexin con los
dispositivos de visualizacin, entrada de datos y el control del sistema de radio y el de
alimentacin.
El sistema de tratamiento de la informacin, procesa las seales procedentes de accesos
analgicos (voz) o digitales (datos) para la recepcin y la transmisin.
2006
Telefona Celular
37
Posicionador Satelital
Comunicado Por
Telefona Celular
5.3.2. Conectividad
Con el amplio desarrollo de la industria de la telefona mvil, los celulares se han vuelto ms
poderosos, pudiendo procesar textos, imgenes, sonido, y an video. Debido a las capacidades
multimedia de los aparatos, es muy comn que se presente la necesidad de conectarlos a
ordenadores personales. La capacidad de conexin que poseen la mayora de los telfonos
actuales ha sido utilizada en el presente proyecto como va de enlace entre el celular y el
dispositivo encargado del control del mdulo GPS, y tambin en la comunicacin con el
programa desarrollado para la visualizacin en PC de los datos obtenidos en la unidad mvil
remota.
Usualmente los telfonos se conectan va infrarroja, o por un cable de datos, o a travs del
estndar Bluetooth IV. Segn sea el mtodo de comunicacin, o el fabricante (o an el modelo) del
aparato, el protocolo de comunicacin utilizado entre la PC y el celular pude ser alguno de los
siguientes:
Comandos AT: fueron diseados originalmente por Hayes Microsystems para el control
de modem. Fue desarrollado un estndar para telfonos GSM, el cual incluye comandos
para acceder a datos tales como fabricante del telfono, modelo, versin de software,
IMEI, identidad de la tarjeta SIM, entradas de agenda, duracin de llamadas. Tambin
pueden enviarse y recibirse mensajes SMS. De acuerdo al modelo del telfono, pueden
lograrse comunicaciones an ms avanzadas.
JTAG (Joint Test Action Group): es un estndar ampliamente utilizado, desarrollado por
IEEE a principios de los aos 1990. Especifica una interfaz y comandos que pueden ser
usados para probar y depurar los componentes de hardware en un dispositivo electrnico.
Lamentablemente, no hay informacin disponible de implementaciones en dispositivos
especficos de JTAG, y tampoco hay cables de interconexin pblicamente disponibles.
IV
Bluetooth: especificacin abierta para comunicaciones inalmbricas de corta distancia entre diversos tipos de
aparatos de comunicacin.
2006
Telefona Celular
38
Posicionador Satelital
Comunicado Por
Telefona Celular
Otros modelos de similares caractersticas que podran haber formado parte del proyecto, son los
NOKIA 3120, 3205, 3220, 5140, 6101, 6200, 6610, 6800, y 6820.
2006
Telefona Celular
39
6
Protocolo F-BUS de NOKIA
6.1. Introduccin
Los telfonos celulares fabricados por la empresa de origen fins, poseen conectores internos y
en algunos casos externos que permiten su interconexin con otros dispositivos electrnicos (PC,
circuitos basados en microcontroladores, etc.), mediante el uso de cables de datos. Los lenguajes
utilizados para esta comunicacin han sido desarrollados exclusivamente por NOKIA para sus
aparatos y se denominan F-BUS y M-BUS.
El protocolo M-BUS es canal nico bidireccional no simultneo (half-duplex) para la recepcin y
transmisin de datos del telfono, en el cual se utilizan solo dos terminales, uno para los datos y el
otro para la referencia de voltaje cero. Su velocidad est establecida en 9600 bpsI, con
comunicacin serial de 8 bits, de paridad impar y con un bit de parada.
En cambio, el protocolo F-BUS es bidireccional de canal doble simultneo (full-duplex) y de alta
velocidad. Utiliza tres terminales del telfono, uno para la transmisin de datos, otro para la
recepcin y el restante para la referencia. Esta comunicacin en serie tambin es de 8 bits con un
bit de parada, pero sin bit de paridad y a una velocidad de 115200 bps.
En la siguiente imagen se puede observar los terminales internos, ubicados detrs de la batera, en
el modelo 3200b de NOKIA:
6
7
8
9
1
2
3
4
5
Donde:
2. GND
7. F-BUS RX
3. M-BUS
8. F-BUS TX
2006
40
Posicionador Satelital
Comunicado Por
Telefona Celular
Tambin, la serie 3xxx presenta una salida exterior para el protocolo F-BUS en el terminal pop-port
utilizado para conectar el cable de datos y los accesorios al telfono:
2 3 4 5 6 7 8 9 10 11 12 13 14
6. F-BUS RX
7. F-BUS TX
8. GND
Para el presente proyecto se opt por el protocolo F-BUS debido a su velocidad que hace ms gil
al sistema, por la salida a travs del puerto externo y por su compatibilidad con el protocolo serial
de las computadoras personales.
II
Universal Asynchronous Receiver Transmitter o transmisor-receptor asincrnico universal: Componente del telfono encargado de la comunicacin serial.
III
Toda la informacin del presente captulo se bas en datos empricos de diversos desarrolladores que publicaron
sus resultados en Internet o en la experimentacin del autor, ya que al ser un protocolo propietario de NOKIA, no hay
publicada ninguna base terica del estndar F-BUS.
2006
41
Posicionador Satelital
Comunicado Por
Telefona Celular
IV
IV
Para facilitar la comprensin de las tramas, aquellas enviadas por la PC (o el microcontrolador) estn con letras
rojas y las respuestas del telfono, en azul. Cada byte est expresado en formato hexadecimal.
Se ver luego que la longitud mxima de la trama nunca es mayor de 130 bytes, se deduce entonces, que el byte
ms significativo de la longitud (el byte 5) es siempre cero.
VI
2006
42
Posicionador Satelital
Comunicado Por
Telefona Celular
En resumen:
Byte: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5
F-BUS id.
Destino
Origen
Comando
Longitud
Bloque principal
Byte de relleno
Checksum
Luego de enviada la trama anterior, el celular responde con las dos tramas siguientes:
01 02 03 04 05 06 07 08 09 10
1E 0C 00 7F 00 02 D1 00 CF 71
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1E 0C 00 D2 00 2B 01 00 00 03 56 20 35 2E 32 39 0A 32 32 2D 31 30 2D 30 34 0A
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
52 48 2D 33 31 0A 33 32 30 30 0A 28 63 29 20 4E 6F 6B 69 61 00 01 47 00 1B E3
La primera trama es la de reconocimiento que, en este caso, significa el acuse de recibo por parte
del telfono al haber recibido e interpretado el comando que se le envi.
El que sigue es el significado de cada carcter:
Byte 1: Identificador F-BUS. Siempre 0x1E.
Byte 2: Destino. Ahora destino y origen se invierten por lo tanto la meta de la respuesta es la PC o
el micro, esto es 0x0C.
Byte 3: Origen. 0x00 para el telfono.
Byte 4: Tipo de instruccin. 0x7F es acknowledge o reconocimiento.
Bytes 5 y 6: Longitud del bloque principal. Siempre son dos bytes para el reconocimiento.
Bytes 7 y 8: Bloque principal de la trama. El primer byte devuelve el comando original, esto es
0xD2. El ltimo byte devuelve el nmero de secuencia de la trama solicitante. Este
nmero se ver con ms detenimiento en instrucciones posteriores, por el momento
decimos que, como se trata de la respuesta al primer comando, este nmero es 0x00.
Bytes 9 y 10: Al igual que la trama anterior, representan los bytes de checksum.
La segunda trama es la respuesta del telfono y su estructura es:
Bytes 1, 2 y 3: F-BUS id., destino y origen; como en los casos anteriores.
Byte 4: Comando. En la respuesta, como en el pedido, 0xD2; o versin de hardware y software.
Bytes 5 y 6: Longitud, bloque principal de 43 caracteres.
2006
43
Posicionador Satelital
Comunicado Por
Telefona Celular
Esta cadena indica que el celular es un NOKIA 3200, software RH-31 versin 5.29;
compilada el 22 de octubre del 2004.
El penltimo byte del bloque (0x01) indica cuantas tramas quedan para que finalice
la respuesta a la instruccin requerida. Esto es necesario debido a que las tramas
deben tener una longitud mxima de 130 caracteres y, en aquellos casos en que la
respuesta requiere una cantidad mayor de bytes, se utilizan mensajes multi-trama
en donde a travs de este anteltimo byte, se indica las cadenas que faltan para
terminar el mensaje, incluyndose la cadena corriente. En este ejemplo en
particular, tenemos una sola trama y por ello el valor de dicho byte es uno.
El ltimo byte del bloque (0x47) es la suma de 0x40 ms el nmero de secuencia
de trama del telfono. Este es un nmero de tres bits que se incrementa en uno por
cada trama (exceptuando las de reconocimiento). Se desprende en consecuencia,
que los valores posibles del ltimo byte son: 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
0x46 y 0x47.
Byte 50: Byte de relleno para lograr que la trama tenga una cantidad par de bytes.
Bytes 51 y 52: Checksum.
En este punto, el dispositivo conectado al telfono, luego de interpretar y verificar las cadenas
anteriores, debe decirle al celular que comprendi el mensaje. Esto se hace enviando la trama
de reconocimiento que, para el ejemplo, es la siguiente:
1E 00 0C 7F 00 02 D2 07 C0 7A
Se ve aqu que esta cadena tiene la misma estructura que la trama de reconocimiento expuesta
antes, pero obviamente, con los bytes de origen y de destino intercambiados y 0x07 como nmero
de secuencia de la trama enviada por el telfono; es decir 0x47 0x40.
La secuencia completa a enviar, siempre que se quiera iniciar una comunicacin por medio del
estndar F-BUS, es en consecuencia:
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5
1E 0C 00 7F 00 02 D1 00 CF 71
1E 0C 00 D2 00 2B 01 00 00 03 56 20 35 2E 32 39 0A 32 32 2D 31 30 2D 30 34 0A
52 48 2D 33 31 0A 33 32 30 30 0A 28 63 29 20 4E 6F 6B 69 61 00 01 47 00 1B E3
1E 00 0C 7F 00 02 D2 07 C0 7A
2006
44
Posicionador Satelital
Comunicado Por
Telefona Celular
ID: identificador de trama F-BUS. 0x1E para transmisin serial por cable; 0x1C para
comunicacin infrarroja (IR).
destino: dispositivo
tipo:
longitud:
bloquej:
restantes:
sec.:
relleno:
2006
byte de relleno necesario para que la trama tenga una cantidad par de bytes. Si
es necesario, su valor siempre es 0x00.
checksum1:
operacin lgica O exclusiva (XOR) sobre todos los bytes impares de la trama.
checksum2:
45
Posicionador Satelital
Comunicado Por
Telefona Celular
sec.ack:
Vemos que los bytes de secuencia son 0x46, 0x47, 0x40 y 0x44, respectivamente. Entonces, las
cadenas de reconocimiento para cada una de las tramas, seran:
1E 0C 00 17 00 0C 01 30 00 0B 01 01 16 04 07 07 01 46 0E 68
1E 00 0C 7F 00 02 17 06 05 7B
1E 0C 00 0A 00 08 00 60 00 1E 63 54 01 47 7C 63
1E 00 0C 7F 00 02 0A 07 18 7A
1E 0C 00 0A 00 08 00 60 00 1E 62 54 01 40 7D 64
1E 00 0C 7F 00 02 0A 00 18 7D
1E 0C 00 0A 00 08 00 60 00 1E 61 54 01 44 7E 60
1E 00 0C 7F 00 02 0A 84 18 79
2006
46
Posicionador Satelital
Comunicado Por
Telefona Celular
Nokia 3200
Men
Figura 3: Estado de la batera en pantalla.
Por medio del protocolo F-BUS se puede obtener esta informacin para, por ejemplo, controlar
electrnicamente el cargador del aparato. El tipo de instruccin utilizado para tal fin es 0x17,
tiene un bloque principal de ocho caracteres y presenta la siguiente estructura:
{ F-BUS ID, 0x00, 0x0C, 0x17, 0x00, 0x08, 0x00, 0x01, 0x00, 0x0A, 0x02, 0x00, 0x01, sec.,
checksum1, checksum2 }
El telfono, luego de reconocer la trama, responde con una cadena de doce bytes en el bloque
principal, en la forma:
{ F-BUS ID, 0x0C, 0x00, 0x17, 0x00, 0x0C, 0x01, 0x30, 0x00, 0x0B, 0x01, 0x01,
VII
0x16, 0x04, 0x07, barras, 0x01, sec., checksum1, checksum2 }
Donde en el byte barras estn consignadas la cantidad de barras rellenas. Desde luego en dicho
byte siempre habr un valor del 0 al 7. Para el ejemplo de cinco barras coloreadas visto antes, la
secuencia de tramas seran las que siguen:
1E 00 0C 17 00 08 00 01 00 0A 02 00 01 41 11 55
1E 0C 00 7F 00 02 17 01 09 70
1E 0C 00 17 00 0C 01 30 00 0B 01 01 16 04 07 05 01 43 0E 6F
1E 00 0C 7F 00 02 17 03 05 7E
El byte resaltado indica entonces, que cinco de las siete barras estn rellenas.
VII
No tenemos determinado el significado exacto de los bytes anotados en verde. A los fines prcticos y para el
presente proyecto, tienen siempre el mismo valor consignado en cada carcter.
2006
47
Posicionador Satelital
Comunicado Por
Telefona Celular
VIII
IX
bit 4
bit 3
bit 2
bit 1
bit 7
bit 6
bit 5
Hexa
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
0
@
LF
CR
0
0
1
1
ES
0
1
0
2
SP
!
"
#
%
&
'
(
)
*
+
,
.
/
0
1
1
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
1
0
0
4
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
1
0
1
5
P
Q
R
S
T
U
V
W
X
Y
Z
1
1
0
6
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
1
1
1
7
p
q
r
s
t
u
v
w
x
y
z
Global System for Mobile communications, estndar ms popular para redes celulares en el mundo.
2006
48
Posicionador Satelital
Comunicado Por
Telefona Celular
Para describir el empaquetado, tomamos los caracteres genricos a, b, c, ..., z; siendo el subndice
6 el bit de ms peso y el 0 el de menos peso en cada carcter. Si tenemos la secuencia:
a6 a5 a4 a3
b6 b5 b4 b3
c6 c5 c4 c3
M
z6 z5 z4 z3
a2 a1 a0
b2 b1 b0
c2 c1 c0
z2 z1 z0
El empaquetamiento de los caracteres de 7 bits en octetos se hace moviendo cada bit en la forma:
b0 a6 a5 a4 a3 a2 a1 a0
c1 c0 b6 b5 b4 b3 b2 b1
d2 d1 d0 c6 c5 c4 c3 c2
M
z2 z1 z0 y6 y5 y4 y3 y2
0 0 0 0 z6 z5 z4 z3
Para completar el ltimo octeto, si es necesario, se lo llena con ceros a la izquierda.
Presentamos ahora dos ejemplos para comprender mejor el mtodo. Tomamos la palabra hola
y anotamos sus representaciones equivalentes:
h
o
l
a
1
1
1
1
0x68
0x6F
0x6C
0x61
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0xE8
0x37
0x3B
0x0C
2006
49
Posicionador Satelital
Comunicado Por
Telefona Celular
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0x42
0x75
0x65
0x6E
0x61
0x73
0x20
0x74
0x61
0x72
0x64
0x65
0x73
0x2E
t
a
r
d
e
s
.
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
Empaquetado en octetos:
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0xC2
0x7A
0xD9
0x1D
0x9E
0x83
0xE8
0x61
0x39
0xB9
0x3C
0x77
0x01
De modo general, si se tiene una cadena formada con una cantidad q de caracteres, al
empaquetarla se obtiene una cadena de p octetos, siendo:
p=
7q
8
La normativa indica que el nmero mximo de caracteres para un mensaje de texto convencional
es de 160 smbolos de 7 bits. X
Por consiguiente es posible empaquetar 160 caracteres en (7x160)/8 = 140 octetos.
2006
50
Posicionador Satelital
Comunicado Por
Telefona Celular
l1 :
cantidad de bytes que restan para terminar el bloque principal, o n-12 bytes.
de servicio). XI
byte j del nmero destino, en formato BCD con niveles intercambiados en cada byte.
Tomando como ejemplo el nmero +54 (353) 1234567, el carcter TDtipo y los seis TD
pueden ser identificados como sigue:
91 45 53 13 32 54 76
en numeracin internacional; o
A1 53 13 32 54 76 00
byte j del nmero de centro de servicio de la lnea del celular de origen, tambin en
formato de niveles intercambiados. Por ejemplo para el nmero +543200000001 de la
compaa CTI, los seis bytes son:
45 23 00 00 00 10
Si el nmero tiene una cantidad impar de dgitos, se completa el ltimo byte con una
F. Entonces, para el nmero de MOVISTAR +54079000801, tenemos:
45 70 09 00 08 F1
Si queda algn byte completo sin llenar, se lo completa con el valor 0x00. Por
ejemplo, para el nmero +614119903, los seis bytes CS son:
16 14 91 09 F3 00
XI
La representacin ms correcta de este byte es (en binario): 1tttiiii; donde los bits t representan el tipo de
nmero, y los bits i se corresponden con el plan de identificacin numrica. Para ms informacin, vase la
especificacin tcnica GSM 03.40, seccin 9.1.2.5.
2006
51
Posicionador Satelital
Comunicado Por
Telefona Celular
l2 :
l3 :
l4 :
SMSj:
tag:
bytes de relleno. El bloque empaquetado del SMS debe tener una cantidad de
bytes que sea mltiplo de cuatro. Por lo tanto si p no lo es, deben agregarse uno,
dos o tres bytes 0x00 de relleno que sumados a los p bytes del SMS cumplan
con la regla.
etiqueta utilizada como referencia para l2. Su contenido siempre es el byte 0x04.
2006
52
Posicionador Satelital
Comunicado Por
Telefona Celular
cantidad:
Mj :
mj :
2006
53
Posicionador Satelital
Comunicado Por
Telefona Celular
byte de mayor peso de la posicin de memoria donde est guardado el mensaje que
queremos leer.
m:
L:
byte que indica al telfono si debe marcar como ledo al mensaje. Si su contenido es
0x01 marca al mensaje guardado en la posicin [M, m] como ledo, si es
0x00 deja al mensaje como no ledo.
l1 :
cantidad de bytes que restan para terminar el bloque principal, o n-16 bytes.
2006
54
Posicionador Satelital
Comunicado Por
Telefona Celular
TOtipo: tipo de nmero del telfono de origen. Sus posibles valores son:
0xA1 para numeracin nacional;
0x91 para formato internacional; o
0x81 para formato numrico desconocido (lo determina el centro
TOj:
de servicio).
byte j del nmero que envi el mensaje de texto, en formato BCD con niveles
intercambiados en cada byte. Tomando por ejemplo el nmero +54 9 (353) 1234567,
el carcter TOtipo y los siete TD pueden ser identificados como sigue:
91 45 39 35 21 43 65 F7
en numeracin internacional; o
A1 53 13 32 54 76 00 00
CSj:
l2 :
cantidad de bytes que restan para terminar el bloque principal, o n-60 bytes.
l3 :
l4 :
SMSj:
bytes de relleno necesarios para que el bloque SMS sea mltiplo de cuatro.
Se ejemplifican ahora todas las tramas utilizadas para leer un SMS almacenado, con sus
correspondientes reconocimientos y respuestas, para la hipottica situacin en que se quiera
obtener el ltimo mensaje de texto que lleg a un telfono que tiene diez mensajes almacenados
en su bandeja de entrada.
1E 00 0C 14 00 0C 00 0B D6 0C 00 02 0F 55 55 55 01 44 9F 59
1E 0C 00 7F 00 02 14 04 0A 75
1E 0C 00 14 00 7A 0B 59 D6 0D 00 00 00 0A 00 3B 00 3A 00 35 00 33 00 30 00 2E
00 2A 00 27 00 24 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 47 C5 6A
1E 00 0C 7F 00 02 14 07 06 7A
2006
55
Posicionador Satelital
Comunicado Por
Telefona Celular
1E 0C 00 14 00 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 1B 62
1E 00 0C 7F 00 02 14 00 06 7D
1E 0C 00 14 00 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 1A 63
1E 00 0C 7F 00 02 14 01 06 7C
1E 0C 00 14 00 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 02 1D 60
1E 00 0C 7F 00 02 14 02 06 7F
1E 0C 00 14 00 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 03 1C 61
1E 00 0C 7F 00 02 14 03 06 7E
1E 0C 00 14 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
1F 08
1E 00 0C 7F 00 02 14 04 06 79
1E 00 0C 14 00 0C 00 00 00 02 00 02 00 3B 01 00 01 45 12 66
1E 0C 00 7F 00 02 14 05 0A 74
1E 0C 00 14 00 50 00 59 00 03 00 01 00 02 00 3B 00 00 00 01 00 40 04 00 00 60
20 71 02 94 14 00 00 00 00 03 82 10 01 09 0D 91 45 53 13 32 54 76 00 00 00 00
82 0C 02 08 07 91 45 23 00 00 00 10 80 14 0D 0E C2 7A D9 1D 9E 83 E8 61 39 B9
3C 77 01 00 00 00 01 45 87 C0
1E 00 0C 7F 00 02 14 05 06 78
Puede verse que los diez mensajes estn en las posiciones 0x3B, 0x3A, 0x35, 0x33, 0x30, 0x2E,
0x2A, 0x27, 0x24, 0x21 de la memoria del telfono, y que el ltimo en llegar contiene la frase
Buenas tardes. en la posicin 0x3B y fue enviado el 17/02/2006 a las 20:49:41 horas.
2006
56
Posicionador Satelital
Comunicado Por
Telefona Celular
6.6.1. IMEI
Para obtener el IMEIXII de un aparato en particular, se utiliza el siguiente comando:
1E 00 0C 1B 00 07 00 01 00 00 41 01 42 00 11 1C
Para este caso, los bytes resaltados equivalen, en ASCII, al nmero de IMEI: 356229000465562.
XII
IMEI: International Mobile Equipment Identity o identidad internacional de equipo mvil. Es un nmero
pregrabado en el telfono que individualiza cada aparato en particular ya que al conectarse, lo enva a la red de
manera tal que las empresas operadoras de servicio pueden verificar si el aparato est habilitado para su pleno
funcionamiento. Entre otras cosas, este valor posee informacin del fabricante, del pas de origen, nmero de serie,
etc.; y puede visualizarse en pantalla oprimiendo la combinacin de teclas *#06#.
2006
57
Posicionador Satelital
Comunicado Por
Telefona Celular
6.6.3. Agenda
Para obtener los datos de la agenda por medio del protocolo F-BUS, el comando utilizado es:
1E 00 0C 03 00 14 00 01 00 07 01 01 00 01 FE 06 00 00 00 00 00 A9 00 00 01 41
EC FF
El primer byte resaltado indica si debe buscarse en la memoria de la tarjeta SIMXIII (0x06) o en la
memoria del telfono (0x05). El segundo carcter resaltado (0xA9) es la direccin de memoria
que se desea inspeccionar.
La respuesta al pedido anterior podra ser la siguiente:
1E 0C 00 03 00 48 01 55 00 08 00 01 01 00 00 10 00 06 00 A9 00 00 00 00 00 00
00 02 07 00 00 1C 01 16 00 50 00 72 00 65 00 66 00 65 00 63 00 74 00 75 00 72
00 61 00 00 0B 00 00 14 02 00 00 00 00 08 00 31 00 30 00 36 00 00 00 00 01 46
10 E8
Si buscamos el equivalente en cdigo ASCII de los valores resaltados vemos que en la posicin
0xA9 est almacenado el nmero 106 que pertenece a Prefectura.
Para pedir la entrada a la agenda en la primera posicin de la memoria del telfono, el pedido es:
1E 00 0C 03 00 14 00 01 00 07 01 01 00 01 FE 05 00 00 00 00 00 01 00 00 01 44
EC 51
La respuesta, como en este ejemplo, puede ser multi-trama ya que adems del nmero de telfono
y el nombre, pueden obtenerse datos suplementarios como direccin, e-mail, pgina web,
nmeros adicionales, etc. segn sean las prestaciones de cada aparato.
XIII
SIM: Subscriber Identity Module o mdulo de identidad del suscriptor. Pequea tarjeta que posee un chip donde
se guardan todos los datos especficos de la lnea telefnica utilizada en el celular. Esta tarjeta inteligente intercambiable permite al aparato acceder a la red de la prestadora del servicio.
2006
58
Posicionador Satelital
Comunicado Por
Telefona Celular
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55
55
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUU
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
Respuesta:11/07/2006 21:39:31.98564
21:39:31.98564 (+0.0000 seconds)
55 55 55 55 55 55 55 55
UUUUUUUU
...........`.r
....+....V 5.29.22-10-04.RH-31.
3200.(c) Nokia..D..
... ...y
.
.
.
El monitor del puerto devuelve, como se ve, las tramas en la columna de la izquierda en formato
hexadecimal y el equivalente en formato ASCII en la columna de la derecha.
2006
59
Posicionador Satelital
Comunicado Por
Telefona Celular
Si nos dirigimos ahora a la instruccin Enviar mensaje de texto... en el men herramientas del
LogoManager, obtenemos el siguiente cuadro de dilogo:
... .....z.....D.......UU..8....
...... SC. `.....E#.... ...z
. a9<w........Ee
... .....}
.......`. ...A..
... .....|.............F.R
... .....w.......0.........B.l
... .....
.......`..dO.C{|
... .....~
Respuesta:11/07/2006 21:41:23.92264
21:41:23.92264 (+0.4844 seconds)
1E 0C 00 02 00 10 01 61 00 03 00 01 0C 08 00 00 A7 08 67 00 01 44 D2 39
.......a.........g..D9
2006
... .....y
60
Posicionador Satelital
Comunicado Por
Telefona Celular
115200
8
Ninguna
1
Xon / Xoff
El simple circuito que le permite al cable la adaptacin de niveles, est basado en el integrado
MAX232, y tiene el siguiente diagrama elctrico:
Se puede observar que el MAX232 est alimentado por medio del propio puerto RS-232, a travs
de las seales DTR (Data Terminal Ready, terminal 4) y RTS (Request To Send, terminal 7),
reguladas por el 78L05. Los cuatro capacitares electrolticos de 10 F son fundamentales en la
conversin de tensin y estn dispuestos segn la hoja de datos del MAX232. Finalmente, los
diodos Zener de 2,7 voltios limitan la tensin, adecundola a niveles seguros para la unidad
mvil.
2006
61
Posicionador Satelital
Comunicado Por
Telefona Celular
6.9. Referencias
6.9.1. Referencias bibliogrficas
ETSI, Digital cellular telecommunications system (Phase 2+); Technical realization of the
Short Message Service (SMS) Point-to-Point (PP), www.etsi.org, TS 03.40
version 7.5.0, 1998.
ETSI, Digital cellular telecommunications system (Phase 2+); Alphabets and languagespecific information, www.etsi.org, TS 03.38 version 7.2.0, 1998.
ETSI, Digital cellular telecommunications system (Phase 2+); Use of Data Terminal
Equipment - Data Circuit terminating; Equipment (DTE - DCE) interface for
Short Message Service (SMS) and Cell Broadcast Service (CBS),
www.etsi.org, TS 07.05 version 7.0.1, 1998.
Wayne Peacock, NOKIA F-BUS Protocol, http://embedtronics.com/nokia/fbus.html, 2005.
Gnokii, Gnokii project, www.gnokii.org, 2005.
Comunidad Internacional de Electrnicos, Data Cable Nokia RS-232,
www.forosdeelectronica.com/about2.html, 2005.
Texas Instruments, MAX232 Datasheet, www.ti.com, 2004.
6.9.2. Software
LogoManager, www.logomanager.co.uk.
MoviMB, www.logomanager.co.uk/php/products.php?id=51.
Oxigen Phone Manager, www.oxygensoftware.com/en/default.asp.
LogoWizard, www.logowizard.info.
Serial Port Monitor, www.serial-port-monitor.com/index.html.
2006
62
7
Unidad Mvil
7.1. Introduccin
La unidad mvil es la encargada, en el presente proyecto, de interpretar la informacin brindada
por el mdulo GPS, y de procesar los datos para visualizarlos a travs de un display LCD y para
enviarlos, por medio de la red de telefona celular, a la computadora central. El corazn del
circuito es un microcontrolador PIC 16F877 de Microchip y en el siguiente diagrama se observa
la disposicin de todos los bloques de la unidad.
Alimentacin
(12 V)
Cargador
de batera
Celular
Regulador de
voltaje (5 V)
Mdulo
GPS
Bloque de control
Microcontrolador
Antena
Visualizacin
2006
63
Posicionador Satelital
Comunicado Por
Telefona Celular
Harvard
RISC
Flash
8192 palabras de 14 bits
368 bytes
256 bytes
20MHz
33
5 (A, B, C, D, E)
14
3
POR, BOR (PWRT, OST)
8
2
2006
Unidad Mvil
64
Posicionador Satelital
Comunicado Por
Telefona Celular
Comunicaciones Serie
Comunicaciones Paralelo
Juego de instrucciones
Ciclos por instruccin
Longitud de la instruccin
Modos de direccionamiento
Pila
Voltaje de operacin
Consumo de corriente
Temperatura de operacin
Encapsulados
MSSP, USART
PSP
35 Instrucciones
1 (2 para las de salto)
14 bits
Directo, indirecto y relativo
8 niveles
2 a 5,5 V
25 mA
0 C a 70 C
40/PDIP 600mil,44/MQFP,44/PLCC,44/TQFP
En cuanto a la frecuencia de trabajo del micro, se eligi el modo XT con un cristal de 3,6864
MHz., para poder lograr la mejor precisin posible en la frecuencia de transmisin serial. En este
tipo de dispositivo cada instruccin tarda en ejecutarse cuatro perodos de reloj, por lo que el ciclo
de instruccin es, en este caso, igual a 1,085 S (4 x 1/3,6864 MHz.) para todas las instrucciones
a excepcin de las de salto, que tardan el doble.
2006
Unidad Mvil
65
Posicionador Satelital
Comunicado Por
Telefona Celular
El watchdog es un contador interno de 8 bits que origina un reset cuando se desborda. Su control
de tiempos est basado en una simple red RC interna. La temporizacin nominal con la que se
halla programado es de 18 ms, pero utilizando el divisor de frecuencia puede aumentarse hasta
alcanzar los 2,3 segundos, como ocurre en este trabajo. Esto se hace habilitando el bit PSA (3) del
registro OPTION_REG (0x81) y otorgndole el valor 111 a los bits PS2, PS1 y PS0 del mismo
registro de opciones, en la siguiente forma:
bsf
movlw
movwf
STATUS,RP0
b'10001111'
OPTION_REG
; Banco 1
; Puerto B pull-up desabilitado y asigna
; preescaler al WDT (1:128, 2.304 S)
La configuracin de los puertos de E/S fue establecida segn las necesidades de conexin con el
telfono, el mdulo GPS, el display LCD, etc. segn se ver ms adelante, a travs de las
siguientes sentencias:
bsf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
clrf
clrf
STATUS,RP0
b'00011000'
TRISA
b'00000111'
ADCON1
b'10001101'
TRISB
b'11010100'
TRISC
TRISD
TRISE
;
;
;
;
;
;
;
;
;
;
;
Banco 1
RA3, RA4 --> Entradas digitales
RA0, RA1, RA2, RA5 --> Salidas digitales
RA0, RA1, RA2, RA3, RA5, ...
... RE0, RE1, RE2 --> Digitales
Puerto B
Puerto C
Puerto D --> todos los bits salidas
Puerto E --> todos los bits salidas
FOSC
16 (SPBRG + 1)
con BRGH = 1
Si FOSC es 3,6864 MHz, para obtener 115200 baudios, SPBRG debe ser igual a uno.
Baud Rate =
2006
3686400
= 115200
16 (1 + 1)
Unidad Mvil
66
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
bsf
movlw
movwf
bsf
bcf
bsf
bcf
bsf
bsf
return
STATUS,RP0
0x01
SPBRG
TXSTA,BRGH
TXSTA,SYNC
TXSTA,TXEN
STATUS,RP0
RCSTA,SPEN
RCSTA,CREN
;
;
;
;
;
;
;
;
;
Unidad Mvil
67
Posicionador Satelital
Comunicado Por
Telefona Celular
equ
d'59'
DELAY_TIME/3
SER_DEL
ser_l
DELAY_TIME
SER_DEL
SER_DEL,F
$-1
Una vez recibido el bit de start, deben esperarse por los ocho bits de datos; as, la parte de cdigo
que implementa la recepcin de un byte es la siguiente, quedando el dato recibido en el registro
SER_DAT.:
gps_rx
clrf
btfsc
goto
movlw
movwf
call
call
gps_rxl bsf
btfss
bcf
rrf
call
nop
decfsz
goto
return
2006
SER_DAT
GPS_IN
gps_rx
D'8'
SER_CON
ser_d_3
ser_d
STATUS,C
GPS_IN
STATUS,C
SER_DAT,F
ser_d
SER_CON,F
gps_rxl
Leer 9 bits
Saltea un tercio de bit
Saltea un bit
Limpia carry
Si se recibe un 0...
...setea carry
Rota SER_DAT bits
Demora
Mantiene la sincronizacin con la tx
Si no termin...
...regresa
Unidad Mvil
68
Posicionador Satelital
Comunicado Por
Telefona Celular
Inter
bsf
movlw
movwf
movlw
movwf
STATUS,RP0
b'11010000'
INTCON
b'10001111'
OPTION_REG
ORG
movwf
swapf
clrf
movwf
movf
movwf
clrf
bcf
movf
movwf
btfsc
call
movf
movwf
movf
movwf
swapf
movwf
swapf
swapf
retfie
0x04
W_T
STATUS,W
STATUS
STATUS_T
PCLATH,W
PCLATH_T
PCLATH
STATUS,IRP
FSR,W
FSR_T
INTCON,INTF
muest
PCLATH_T,W
PCLATH
FSR_T,W
FSR
STATUS_T,W
STATUS
W_T,F
W_T,W
; Banco 1
; Guarda el contexto
; Interrupcin externa ?
; Si --> Muestreo
; Reestablece el contexto
La subrutina de muestreo incrementa los registros donde se almacenan los segundos y minutos:
muest
2006
bcf
incf
movlw
xorwf
btfss
return
clrf
incf
return
INTCON,INTF
SEG,F
d'60'
SEG,W
STATUS,Z
SEG
MIN,F
; SEG=60 ?
; No
; Si, Incrementa MIN
Unidad Mvil
69
Posicionador Satelital
Comunicado Por
Telefona Celular
La cantidad de minutos y segundos son almacenados tambin en registros EEPROM para que,
ante algn reset imprevisto del microcontrolador, puedan recuperarse automticamente estos
valores. Para escribir en la EEPROM debe seguirse la siguiente secuencia:
1. Comprobar si el bit WR (1) del registro EECON1 no est en nivel alto, lo que indicara
que no ha terminado aun una operacin de escritura anterior.
2. Escribir la direccin en donde se almacenar el dato en el registro EEADR.
3. Escribir el dato a guardar en el registro EEDATA.
4. Asegurarse que el bit EEPGD (7) del registro EECON1 est en cero.
5. Habilitar el bit WREN (2) del registro EECON1 para permitir la operacin de escritura.
6. Deshabilitar interrupciones.
7. Debe ejecutarse la siguiente secuencia de instrucciones, establecidas para evitar escrituras
accidentales:
Escribir 0x55 al registro EECON2 (0x18D) en dos pasos, primero al registro W y luego
al EECON2.
Escribir 0xAA al registro EECON2 en dos pasos, primero a W y luego al EECON2.
Habilitar el bit WR (1) del registro EECON1.
8. Habilitar interrupciones.
9. Deshabilitar las operaciones de escritura en la EEPROM, poniendo a cero el bit WREN
del registro EECON1.
Al finalizar el proceso de escritura el bit WR pasa a valer cero automticamente. Por ejemplo,
para almacenar el registro SEG en la posicin 0x00 de la EEPROM, la fraccin de cdigo es:
bsf
bsf
btfsc
goto
bcf
clrw
movwf
movf
movwf
bsf
bcf
bsf
bcf
movlw
movwf
movlw
movwf
bsf
bsf
bcf
bcf
bcf
2006
STATUS,RP1
STATUS,RP0
EECON1,WR
$-1
STATUS,RP0
EEADR
SEG,W
EEDATA
STATUS,RP0
EECON1,EEPGD
EECON1,WREN
INTCON,GIE
0x55
EECON2
0xAA
EECON2
EECON1,WR
INTCON,GIE
EECON1,WREN
STATUS,RP1
STATUS,RP0
; Banco 0 a 3
; Banco 2
; Direccin 0x00 de la EEPROM
; Banco 3
; EEPROM
; Interrupciones off
; Write
; Interrupciones on
; Banco 3 a 0
Unidad Mvil
70
Posicionador Satelital
Comunicado Por
Telefona Celular
Los pasos a seguir para leer un byte de la memoria EEPROM del microcontrolador son:
1.
2.
3.
4.
STATUS,RP1
; Banco 2
; Direccin 0x00 de la EEPROM
EEADR
STATUS,RP0
EECON1,EEPGD
EECON1,RD
STATUS,RP0
EEDATA,W
STATUS,RP1
SEG
;
;
;
;
Banco 3
EEPROM
Read
Banco 2
; Banco 0
2006
Unidad Mvil
71
Posicionador Satelital
Comunicado Por
Telefona Celular
Este tipo de mdulo puede interconectarse con el microcontrolador por medio de un bus de datos
de cuatro bits o de ocho bits. Se opt por esta ltima opcin que necesita de ms terminales de
E/S, pero que puede ser comandado con una menor cantidad de lneas de cdigo y lleva a que el
desarrollo del programa sea ms rpido y eficiente. Adems de las ocho lneas de datos que son
conectadas al puerto D del microcontrolador, el mdulo posee tres lneas de control, las cuales
fueron conectadas al puerto E, que controlan el modo de lectura o escritura R/ W , el modo
comando o datos (RS), o la habilitacin del dispositivo (E).
El display puede operarse por medio de diversos comandos para la escritura de un dato al mdulo,
limpiar pantalla, generar caracteres especiales, posicionar el cursor, etc. Para enviar un comando
guardado en el registro W, se utiliza la siguiente subrutina:
LCD_reg bcf
movwf
btfsc
call
bsf
nop
bcf
return
2006
RS
PORTD
CON_LCD
LCD_busy
E
;
;
;
;
;
;
Unidad Mvil
72
Posicionador Satelital
Comunicado Por
Telefona Celular
Para enviar un dato almacenado en el registro W al mdulo LCD, se utiliza la siguiente subrutina:
LCD_datos
bcf
movwf
btfsc
call
bsf
bsf
nop
bcf
return
RS
PORTD
CON_LCD
LCD_busy
RS
E
;
;
;
;
;
;
;
b'00111000'
LCD_reg
Delay_5mS
b'00111000'
LCD_reg
Delay_5mS
b'00111000'
LCD_reg
Delay_5mS
b'00000001'
LCD_reg
b'00000110'
LCD_reg
b'00001100'
LCD_reg
En el primer caso, a las 12:43, hay 7 satlites activos y el vehculo se mueve a 23 nudos. Para el
caso de las 18:32, el signo ? indica que la informacin brindada por los cuatro satlites puede
ser poco precisa o nula.
En la segunda lnea del display se muestra alternativamente la informacin de latitud y longitud,
con una tasa de cambio de dos segundos. Se puede observar en el primer ejemplo anterior, que el
vehculo est ubicado a los 322520,37 de latitud sur. En el segundo caso, la indicacin
corresponde a los 63151,5 de longitud oeste.
2006
Unidad Mvil
73
Posicionador Satelital
Comunicado Por
Telefona Celular
Adems de la pantalla LCD, se colocaron en el circuito tres leds que indican respectivamente, el
primero, la salida de un pulso por minuto del mdulo GPS; el segundo, si hay informacin de
posicionamiento, o lo que es lo mismo, si hay al menos tres satlites a la vista; y el tercer led
indica si el posicionamiento es vlido o nulo, de manera equivalente al signo ? del display.
En el caso de una implementacin comercial del presente proyecto, la presencia de la pantalla
LCD es superflua, ya que los datos que muestra no son relevantes para quienes se encuentren en
el vehculo. El display solo se justifica para el desarrollo del proyecto, para su implementacin
bastara solamente con los leds. En este ltimo caso se produce un marcado abaratamiento del
dispositivo ya que adems del costo del LCD, puede reducirse el costo del microcontrolador,
utilizando uno de menor cantidad de terminales de E/S, y menor capacidad de memoria, tal como
el PIC 16F873, reducindose tambin el programa ensamblador y el tamao de la placa impresa.
Si
$GPGGA ?
Guardar sentencia
No
Mostrar datos
No
3 seg. ?
Si
$GPRMC ?
Reset GPS
Si
Guardar sentencia
No
No
Mostrar velocidad
3 seg. ?
Establecer perodo
de muestreo
Si
Reset GPS
Reinicia
No
Minuto = Muestreo ?
Si
Reinicia
No
Segundo = Muestreo ?
Si
Transmitir SMS
Reinicia
Figura 6: Diagrama de flujo del programa del microcontrolador.
2006
Unidad Mvil
74
Posicionador Satelital
Comunicado Por
Telefona Celular
En el inicio del programa se configuran todas las caractersticas del microcontrolador, los puertos
de E/S, las interrupciones, los modos de comunicacin serial y la interfaz con el display LCD,
segn se describi en las pginas anteriores. Adems se inicializan las variables y se cargan los
valores de los segundos y minutos transcurridos de la memoria EEPROM.
En el siguiente bloque, se busca entre los datos transmitidos por el mdulo GPS, al encabezado de
la sentencia NMEA 0183 $GPGGA. Si en el lapso de 3 segundos no se encuentra respuesta, se le
enva un pulso de reset al mdulo, lo que provoca que el mdulo recomience la bsqueda de
seales satelitales y que comience a enviar todas las sentencias. En caso contrario, se procede al
almacenamiento y visualizacin de la informacin de posicionamiento satelital brindada por la
sentencia. Todo esto se lleva adelante por medio del siguiente bloque de instrucciones:
gga_l
gga_c
movlw
movwf
btfsc
movf
btfsc
goto
goto
call
call
movf
sublw
btfss
goto
call
movf
sublw
btfss
goto
call
movf
sublw
btfss
goto
call
movf
sublw
btfss
goto
call
call
3
SEG_COMPR
BNR
SEG_COMPR,F
STATUS,Z
$+2
$+2
rst_g
gps_rx
SER_DAT,W
0x47
STATUS,Z
gga_c
gps_rx
SER_DAT,W
0x47
STATUS,Z
gga_c
gps_rx
SER_DAT,W
0x41
STATUS,Z
gga_c
gps_rx
SER_DAT,W
0x2C
STATUS,Z
gga_c
rx_gga
m_pant
; Reset GPS
; Recibe un byte, se busca $GPGGA.
; Es "G" ?
; No
; Es "G" ?
; No
; Es "A" ?
; No
; Es "," ?
; No
; Toma el paquete
; Muestra
2006
bcf
movlw
movwf
decfsz
goto
bsf
return
GPS_OUT
0xFF
CONT
CONT,F
$-1
GPS_OUT
Unidad Mvil
75
Posicionador Satelital
Comunicado Por
Telefona Celular
Para tomar los datos de la sentencia $GPGGA y almacenarlos en la parte de la memoria del micro
destinada a tal fin, se usa la siguiente subrutina:
rx_gga
rx_pl
movlw
movwf
movlw
movwf
call
movf
movwf
incf
decfsz
goto
return
LOW
D_GGA
FSR
d'40'
CONT
gps_rx
SER_DAT,W
INDF
FSR,F
CONT,F
rx_pl
; Comienzo de la RAM
; Nmero de bytes a guardar
; Toma un byte
; Lo guarda donde apunta FSR
; Decrementa countador
En cuanto a las subrutinas que permiten mostrar los datos en el display LCD, el mtodo que se
sigue es el de contar las , de la sentencia almacenada hasta llegar al dato que se desea mostrar,
por ejemplo para mostrar la longitud, la subrutina es:
m_lon
; Muestra la longitud
movlw
call
movlw
call
movlw
call
movlw
call
call
call
call
movf
call
incf
movf
call
incf
movf
call
incf
movlw
call
movf
call
incf
movf
call
incf
movf
call
incf
movf
call
incf
movf
call
2006
'L'
LCD_datos
'o'
LCD_datos
'n'
LCD_datos
':'
LCD_datos
coma_g
coma_gs
coma_gs
INDF,W
LCD_datos
FSR,F
INDF,W
LCD_datos
FSR,F
INDF,W
LCD_datos
FSR,F
b'00000011'
LCD_datos
INDF,W
LCD_datos
FSR,F
INDF,W
LCD_datos
FSR,F
INDF,W
LCD_datos
FSR,F
INDF,W
LCD_datos
FSR,F
INDF,W
LCD_datos
; Muestra "L"
; Muestra "o"
; Muestra "n"
; Muestra ":"
; Muestra lon1
; Muestra lon2
; Muestra lon3
; Muestra ""
; Muestra lon_min1
; Muestra lon_min2
; Muestra "."
; Muestra lon_dec1
; Muestra lon_dec2
Unidad Mvil
76
Posicionador Satelital
Comunicado Por
Telefona Celular
at_gl
fin_gl
m_eo
incf
movf
sublw
btfsc
goto
movf
call
incf
movf
sublw
btfsc
goto
movf
call
incf
movf
sublw
btfsc
goto
goto
incf
call
movlw
addwf
movf
sublw
btfss
goto
movlw
movwf
movf
call
return
FSR,F
INDF,W
0x2C
STATUS,Z
fin_gl
INDF,W
LCD_datos
FSR,F
INDF,W
0x2C
STATUS,Z
fin_gl
INDF,W
LCD_datos
FSR,F
INDF,W
0x2C
STATUS,Z
fin_gl
at_gl
FSR,F
m_Bla
0x20
INDF,F
INDF,W
'w'
STATUS,Z
m_eo
'o'
INDF
INDF,W
LCD_datos
; Es "," ?
; Muestra lon_dec3
; Es "," ?
; Muestra lon_dec4
; Es "," ?
; Es "w" ?
2006
movlw
movwf
movf
btfsc
goto
goto
call
call
movf
sublw
btfss
goto
call
movf
sublw
btfss
3
SEG_COMPR
SEG_COMPR,F
STATUS,Z
$+2
$+2
rst_g
gps_rx
SER_DAT,W
0x52
STATUS,Z
c_vel
gps_rx
SER_DAT,W
0x4D
STATUS,Z
; Reset GPS
; Recibe un byte, se busca $GPRMC,
; Es "R" ?
; No
; Es "M" ?
Unidad Mvil
77
Posicionador Satelital
Comunicado Por
Telefona Celular
goto
call
movf
sublw
btfss
goto
call
movf
sublw
btfss
goto
call
call
c_vel
gps_rx
SER_DAT,W
0x43
STATUS,Z
c_vel
gps_rx
SER_DAT,W
0x2C
STATUS,Z
c_vel
rx_rmc
m_vel
; No
; Es "C" ?
; No
; Es "," ?
; No
; Toma el paquete
; Muestra la velocidad
rx_p
movlw
movwf
movlw
movwf
call
movf
movwf
incf
decfsz
goto
return
LOW
D_RMC
FSR
d'58'
CONT
gps_rx
SER_DAT,W
INDF
FSR,F
CONT,F
rx_p
; Comienzo de la RAM
; Nmero de bytes a guardar
; Toma un byte
; Lo guarda donde apunta FSR
; Decrementa countador
El siguiente bloque de programa establece cual es el perodo de muestreo en que la unidad fija,
compuesta del telfono celular y la PC que brinda la ubicacin en el mapa, recibir los datos de
posicionamiento; o lo que es lo mismo, cada cuanto tiempo se transmite un SMS.
En un principio, se haba tomado un perodo de duracin fija, pero esto traa la dificultad de que
cuando el vehculo desarrollaba altas velocidades se perdan datos de la trayectoria seguida, y
cuando el vehculo estaba estacionado, el dispositivo quedaba transmitiendo datos de modo
superfluo ya que la posicin siempre era la misma. Es por esto que se tom la decisin de que los
perodos entre la transmisin de cada SMS estn en funcin de la velocidad del vehculo.
Para llevar adelante esto, se tom como premisa transmitir un SMS cada 250 metros,
aproximadamente. A partir de la ecuacin de la velocidad v = d/t, y teniendo en cuenta que la
sentencia $GPRMC da la velocidad en nudos, el perodo t de muestreo en segundos, para una
velocidad v dada, sera:
t=
486
v
A los fines prcticos de implementacin en software, se dispuso que los perodos estn de acuerdo
a los valores de la tabla 3 de la pgina siguiente.
2006
Unidad Mvil
78
Posicionador Satelital
Comunicado Por
Telefona Celular
Velocidad (nudos)
0
1
2
3
4
5
6
7
8
de 9 a 10
de 11 a 13
de 14 a 18
de 19 a 21
de 22 a 28
de 29 a 40
ms de 40
Perodo (segundos)
900 (15 min.)
480 (8 Min.)
240
160
120
100
80
70
60
50
40
30
25
20
15
10
2006
movf
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
btfsc
goto
movf
sublw
SAT_VEL,W
STATUS,Z
t15m
SAT_VEL,W
0x01
STATUS,Z
t08m
SAT_VEL,W
0x02
STATUS,Z
t240
SAT_VEL,W
0x03
STATUS,Z
t160
SAT_VEL,W
0x04
STATUS,Z
t120
SAT_VEL,W
0x05
STATUS,Z
t100
SAT_VEL,W
0x06
STATUS,Z
t80
SAT_VEL,W
0x07
STATUS,Z
t70
SAT_VEL,W
0x08
; Es 0 ?
; Si
; Es 1 ?
; Si
; Es 2 ?
; Si
; Es 3 ?
; Si
; Es 4 ?
; Si
; Es 5 ?
; Si
; Es 6 ?
; Si
; Es 7 ?
; Si
; Es 8 ?
Unidad Mvil
79
Posicionador Satelital
Comunicado Por
Telefona Celular
t15m
t08m
t240
t10
btfsc
goto
movlw
subwf
btfss
goto
movlw
subwf
btfss
goto
movlw
subwf
btfss
goto
movlw
subwf
btfss
goto
movlw
subwf
btfss
goto
movlw
subwf
btfss
goto
goto
STATUS,Z
t60
d'11'
SAT_VEL,W
STATUS,C
t50
d'14'
SAT_VEL,W
STATUS,C
t40
d'19'
SAT_VEL,W
STATUS,C
t30
d'22'
SAT_VEL,W
STATUS,C
t25
d'29'
SAT_VEL,W
STATUS,C
t20
d'41'
SAT_VEL,W
STATUS,C
t15
t10
movlw
movwf
clrf
return
movlw
movwf
clrf
return
movlw
movwf
clrf
return
clrf
movlw
movwf
return
d'15'
M_MIN
M_SEG
; Si
; SAT_VEL < 11 ?
; Si
; SAT_VEL < 14 ?
; Si
; SAT_VEL < 19 ?
; Si
; SAT_VEL < 22 ?
; Si
; SAT_VEL < 29 ?
; Si
; SAT_VEL < 41 ?
; Si
; No
d'8'
M_MIN
M_SEG
d'4'
M_MIN
M_SEG
M_MIN
d'10'
M_SEG
Est claro que estos valores pueden ser adaptados en funcin de las necesidades del usuario o de
las velocidades desarrolladas por el vehculo, tomando otras cifras para la construccin de la tabla
3 y modificando ligeramente las subrutinas, de manera tal que puedan tomarse intervalos menores
o mayores.
2006
Unidad Mvil
80
Posicionador Satelital
Comunicado Por
Telefona Celular
En este punto, el programa principal compara los valores corrientes de muestreo con los minutos
y segundos transcurridos, los cuales estn controlados como se explic en el punto 7.2.4. por la
seal de un pulso por segundo del mdulo GPS que ingresa al microcontrolador a travs de la
interrupcin externa.
lyt
movf
subwf
btfss
goto
movf
xorwf
btfss
goto
movf
subwf
btfss
goto
clrf
clrf
call
goto
M_MIN,W
MIN,W
STATUS,C
gga_l
M_MIN,W
MIN,W
STATUS,Z
lyt
M_SEG,W
SEG,W
STATUS,C
gga_l
SEG
MIN
tx_fbus
gga_l
Si hay coincidencia entre los valores, se llama a las subrutinas de transmisin de mensaje de
texto, se reinicializan los contadores de tiempo y se cierra el bucle principal, volviendo al inicio
del programa. En caso contrario, solo se vuelve al principio.
Las tareas de las subrutinas de SMS, de acuerdo al protocolo F-BUS, son:
1. Tomar los datos a enviar y elaborar un SMS en formato empaquetado, de acuerdo a lo
explicado en el captulo anterior.
2. Transmitir un byte 0x55 para inicializar el bus.
3. Enviar el comando de pedido de Versin de hardware y software.
4. Transmitir un byte 0x55.
5. Transmitir el SMS.
Si bien se explic antes que para inicializar el bus deben enviarse 128 caracteres 0x55, se
comprob que enviando solo uno antes de cada cadena ere suficiente. Adems, se verific en la
prctica que despus de cada transmisin o sea, despus de los puntos 2, 3, 4 y 5 debe tomarse
una demora de 50 milisegundos antes de la prxima transmisin.
A modo de ejemplo, se muestra aqu la rutina de transmisin de los puntos 2 y 3:
tx_head movlw
call
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
2006
0x55
SerTx
Delay50
0x1E
SerTx
0x00
SerTx
0x0C
SerTx
0xD1
SerTx
0x00
SerTx
0x07
; 1E 00 0C D1 00 07 00 01 00 03 00 01 60 00 72 D5
Unidad Mvil
81
Posicionador Satelital
Comunicado Por
Telefona Celular
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
call
return
SerTx
0x00
SerTx
0x01
SerTx
0x00
SerTx
0x03
SerTx
0x00
SerTx
0x01
SerTx
0x60
SerTx
0x00
SerTx
0x72
SerTx
0xD5
SerTx
Delay50
Para la transmisin del mensaje de texto, la rutina es similar. Recordamos que debe enviarse al
final de la sentencia el checksum la cadena calculando la funcin lgica XOR entre los bytes
pares por un lado e impares por el otro. De esta manera la parte final de la subrutina ser:
movlw
xorwf
call
movlw
xorwf
call
movlw
xorwf
call
movlw
xorwf
call
movlw
xorwf
call
movlw
xorwf
call
movf
call
movf
call
call
return
2006
0x08
XOR0,F
SerTx
0x04
XOR1,F
SerTx
0x01
XOR0,F
SerTx
0xA7
XOR1,F
SerTx
0x01
XOR0,F
SerTx
0x41
XOR1,F
SerTx
XOR0,W
SerTx
XOR1,W
SerTx
Delay50
Unidad Mvil
82
Posicionador Satelital
Comunicado Por
Telefona Celular
7.5. Referencias
7.5.1. Referencias bibliogrficas
Microchip Technology Inc., PIC 16F87X Data Sheet, www.microchip.com, 2001.
Microchip Technology Inc., PICmicro Mid-Range MCU Family Reference Manual,
www.microchip.com, 1997.
Microchip Technology Inc., Embedded Control Handbook, www.microchip.com, 1997.
Jos Angulo Usategui, Ignacio Angulo Martnez, Microcontroladores PIC. Diseo Prctico
de Aplicaciones, Ed. McGraw-Hill, 1997.
Pierbassano Turrini, Visualizzatore Remoto GPS, www.qsl.net/iw2bc/disp_gps.html, 2004.
7.5.2. Software
MPLAB IDE 7.30, www.microchip.com, 2006.
EPICWIN 2.46 beta, microEngineering Labs Inc., 2004.
Tera Term Pro 3.1.3, www.ayera.com, 2002.
VisualGPS 3.30, www.apollocom.com, 2001.
MultiSIM 9, www.electronicsworkbench.com, 2005.
2006
Unidad Mvil
83
8
Aplicacin de visualizacin en PC
8.1. Introduccin
Para la visualizacin en ordenador personal de los datos brindados por la unidad mvil, se
desarroll un programa de interfaz grfica a travs del entorno de programacin visual DELPHI de
la compaa BORLAND, en su versin cuatro, compatible con los altamente difundidos sistemas
operativos WINDOWS de MICROSOFT. Las principales funciones de dicho programa incluyen:
Adquirir la informacin que llega al puerto serie a travs del cable de datosI que conecta a
la PC con el telfono celular encargado de recibir los mensajes de texto.
Convertir dicha informacin en los correspondientes campos de una base de datos, para su
mejor manipulacin, aprovechamiento y administracin.
Transformar las distintas posiciones desarrolladas por el/los mvil/es, en correspondientes
puntos sobre el plano digitalizado de Villa Mara/Villa Nueva.
La eleccin de DELPHI se bas en que es una herramienta poderosa y de uso sencillo para la
generacin de programas de interfaz grfica de usuario (GUI, graphical user interface), con la
que se puede acceder fcilmente a todo lo que la mquina y el sistema operativo tienen para
ofrecer. Con los componentes de datos de DELPHI se puede tener abierta una tabla o consulta de la
base de datos y ver los datos en tiempo de diseo, lo que optimiza el desarrollo de la aplicacin,
al aprovechar los mismos elementos que utilizar el programa compilado. Tambin es importante
destacar que, para la eleccin de la herramienta de desarrollo, pesaron las caractersticas de
depuracin de errores del entorno y la familiaridad de quien escribe estas lneas con el lenguaje de
programacin Pascal.
Actualmente el mtodo preferible para el almacenamiento de datos en forma segura pasa
necesariamente por la utilizacin de alguno de los formatos de bases de datos ms conocidos,
como puede ser dBase, Access, Paradox, etc. De esta manera se tiene la ventaja de poder usar los
datos en mltiples aplicaciones, ya que se encuentran en un formato estndar reconocido por
varios gestores de bases de datos y la mayora de los entornos de desarrollo. En cuanto al sistema
de base de datos, se opt por Paradox por su compatibilidad de formatos de campos con el tipo de
datos a manejar en la aplicacin.
La calibracin en el plano regional de los puntos que representan las posiciones, estuvo asistida
por las imgenes satelitales provistas por el software GOOGLE EARTH en su versin libre, el cual
provee a la fecha imgenes con una definicin de un metro por pxel en la zona, equivalente a una
vista area de 500 metros.
I
2006
84
Posicionador Satelital
Comunicado Por
Telefona Celular
Object Pascal: evolucin del lenguaje Pascal que incluye la programacin orientada a objetos.
2006
Aplicacin de visualizacin en PC
85
Posicionador Satelital
Comunicado Por
Telefona Celular
El archivo de proyecto tiene la extensin .dpr (DELPHI Project). El contenido de este fichero es
Pascal, y su estructura es similar a la que tenan los programas escritos en el lenguaje Pascal
original:
program NombreProyecto;
uses
Lista de Unidades;
Declaraciones
begin
Lista de instrucciones
end.
Se sabe que en WINDOWS, toda la interaccin entre el usuario y una aplicacin se genera a travs
de reas delimitadas en la pantalla denominadas ventanas. En DELPHI una ventana WINDOWS es
un componente ms, al que se denomina formulario. Los componentes son los objetos que se
colocan dentro del formulario, y forman la interfaz del usuario
La principal cualidad de un formulario es la de tratarse de un componente contenedor, lo que le
permite albergar en su interior otros componentes, que nos sirven para mostrar o solicitar
informacin al usuario del programa.
Cada componente tiene atributos especficos que permiten el desarrollo de una aplicacin. Estos
son las propiedades, los eventos y los mtodos. Las propiedades son caractersticas del control, y
recogen cualidades como altura, anchura, color, etc. Los eventos son las acciones que pueden
realizarse sobre dicho control, como pasar el mouse por encima del control, dar click con el
mouse, etc. Los mtodos son las acciones que realizar el control al ejecutar algn evento, este es
en si el cdigo del control. El cdigo de una aplicacin DELPHI habitualmente siempre est
asociado con eventos, de tal forma que su ejecucin no se produce en forma secuencial, desde el
principio hasta el fin del programa. Un evento es una seal, externa o interna a la aplicacin, que
el programa puede aprovechar para ejecutar un cierto bloque de cdigo, el cual debe escribirse en
un mtodo.
Al disearse una ventana o formulario aadiendo componentes al mismo y especificando valores
iniciales para sus propiedades; estos valores iniciales se almacenan, en tiempo de diseo, en los
ficheros de formularios, de extensin .dfm (DELPHI Form). DELPHI trata a los eventos de los
componentes como propiedades de tipo especial. Por lo tanto, tambin se colocan en estos
ficheros las direcciones de los mtodos que dan tratamiento a los eventos.
Aplicacin de visualizacin en PC
86
Posicionador Satelital
Comunicado Por
Telefona Celular
Al igual que los campos se agrupan formando registros y estos formando tablas, las tablas pueden
tambin agruparse formando bases de datos. Cada una de las tablas de una base de datos puede
tener una estructura y base de datos totalmente distintos a las dems tablas, aunque por regla
general guardar algn tipo de relacin con ellas.
Cuando desde un programa DELPHI se desea acceder a los datos almacenados en una base,
abriendo una de sus tablas o realizando una consulta, el resultado es la obtencin de un cursor,
que representa al grupo de filas y columnas obtenidos. Todas las operaciones sobre bases de datos
se realizan siempre a travs de un cursor, que puede contener todas las filas y columnas de una
tabla, solo algunas de las filas o columnas de dicha tabla, o bien filas y columnas de mltiples
tablas.
El trmino ndice en una base de datos hace referencia a una relacin ordenada, en forma
ascendente o descendente, de una o ms columnas de una tabla, o bien de una expresin formada
a partir de una o ms columna. La finalidad de un ndice es determinar el orden en que se
muestran las filas de una tabla, que suele no coincidir con el orden fsico que ocupan los datos en
dicha tabla.
El formato Paradox es un sistemas de bases de datos local de escritorio. Paradox administra
tablas en ficheros independientes. Cada tabla se almacena en un conjunto de ficheros, todos con el
mismo nombre, pero con las siguientes extensiones:
Extensin
.db
.mb
.px
.Xnn, .Ynn
.val
Explicacin
Definicin de la tabla y campos de longitud mxima fija
Campos de longitud variable, como los memos y grficos
El ndice de la clave primaria
ndices secundarios
Validaciones e integridad referencial
En el fichero .db se almacena una cabecera con la descripcin de la tabla, adems de los datos de
los registros que corresponden a campos de longitud fija. Este fichero est estructurado en
bloques de idntico tamao. El ndice primario de la tabla se almacena en el fichero de extensin
.px . No es necesario que una tabla tenga ndice primario, pero es altamente ventajoso. Al estar
ordenados los registros dentro los bloques de datos, slo se necesita almacenar en el ndice la
clave del primer registro de cada bloque, lo que disminuye considerablemente los requerimientos
de espacio del ndice, y acelera las bsquedas.
En el presente proyecto se utilizan varias tablas Paradox, que conforman una nica base de datos,
y que tienen todas la misma estructura. La tabla principal, denominada TCo en la aplicacin, es la
encargada de guardar los 300 datos ms recientes, ha medida que van llegando a la PC. El nombre
del fichero en el disco correspondiente a esta tabla es Dcorriente.db. Adems, una segunda
tabla, cuya referencia en el programa es TDa, almacena todos los datos correspondientes al da de
la fecha, utilizando un fichero cuyo nombre est formado por dicha fecha. De este modo, queda el
historial de todos los datos almacenados en archivos cuyo tamao es reducido. As, si se desea
saber el recorrido que sigui un mvil determinado el 2 de septiembre, la aplicacin debe realizar
la bsqueda sobre el fichero D060902.db.
En la definicin de la estructura de las tablas se utilizaron campos Paradox del tipo fecha (date),
horarios (time), nmeros enteros (shortint), nmeros reales de coma flotante (number), y
alfanumricos (alpha) de una letra. La tabla principal y todas las tablas diarias tienen entonces, la
siguiente estructura:
2006
Aplicacin de visualizacin en PC
87
Posicionador Satelital
Comunicado Por
Telefona Celular
N
1
2
3
4
5
6
7
8
9
10
Nombre de campo
FechaE
HoraE
Identificador
Latitud
LatitudL
Longitud
LongitudL
Satelites
FechaS
HoraS
Tipo
date
time
shortint
number
alpha (1)
number
alpha (1)
shortint
date
time
Los campos FechaE y HoraE registran el momento en que fue registrada la informacin, el
campo Identificador almacena el nmero de mvil a que corresponde la informacin, los
campos 4, 5, 6 y 7 registran la posicin, el campo 8 guarda la cantidad de satlites al momento de
la toma de datos, y finalmente, los campos FechaS y HoraS almacenan el momento en que el
mensaje de texto fue enviado.
En la siguiente grilla se puede ver un ejemplo de como quedan almacenados los datos en las
tablas, donde cada fila o registro indica un dato de posicin que est dispuesto segn la estructura
de campos anterior que forman las columnas de la grilla.
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
09/09/2006
09/09/2006
09/09/2006
09/09/2006
11/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
2006
15:16:08
15:16:23
15:16:43
15:17:23
15:17:43
22:28:18
22:29:09
22:30:11
22:31:05
22:32:18
10:36:22
10:56:44
11:04:25
11:05:01
13:00:28
13:02:21
13:02:45
13:03:22
13:03:51
13:04:20
13:04:42
13:05:11
13:38:38
13:53:51
14:09:08
14:24:32
14:39:36
14:41:00
14:41:32
14:41:57
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3.225,1207
3.225,1908
3.225,2478
3.225,2982
3.225,3447
3.225,3387
3.225,2293
3.225,0709
3.225,0263
3.224,9551
3.225,3959
3.224,4287
3.225,1318
3.225,2383
3.225,2910
3.225,2909
3.225,2995
3.225,1992
3.225,1065
3.224,9960
3.224,9937
3.225,0226
3.224,9759
3.224,9818
3.224,9783
3.224,9783
3.224,9818
3.224,9832
3.225,0507
3.225,1154
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
6.314,3324
6.314,4431
6.314,5475
6.314,7775
6.314,9146
6.315,0212
6.315,0614
6.314,8252
6.314,7466
6.314,4326
6.315,0632
6.315,2437
6.314,5666
6.314,5184
6.314,7710
6.314,7761
6.314,6663
6.314,3917
6.314,2445
6.314,1413
6.314,2210
6.314,2576
6.314,2622
6.314,2539
6.314,2555
6.314,2516
6.314,2548
6.314,2586
6.314,3375
6.314,3277
Aplicacin de visualizacin en PC
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
5
6
6
5
5
5
6
3
6
4
3
7
6
6
3
3
3
3
3
3
3
3
6
7
5
5
5
7
6
6
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
06/09/2006
09/09/2006
09/09/2006
09/09/2006
09/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
12/09/2006
15:13:43
15:13:58
15:14:18
15:14:58
15:15:18
22:25:52
22:26:43
22:27:45
22:28:40
22:29:51
10:33:53
10:54:16
11:01:57
11:02:33
12:57:57
12:59:50
13:00:36
13:00:51
13:01:20
13:01:49
13:02:11
13:02:40
13:36:08
13:51:20
14:06:38
14:22:02
14:37:06
14:38:29
14:39:02
14:39:27
88
Posicionador Satelital
Comunicado Por
Telefona Celular
Componentes no visibles
III
Desde el punto de vista de su implementacin, los componentes ActiveX son objetos COM implementados en
bibliotecas de enlace dinmico, o DLLs. Un objeto COM (Component Object Model), a su vez, es un objeto con un
formato binario estndar definido por MICROSOFT, que permite que diferentes lenguajes de programacin hagan uso
de las propiedades, mtodos y eventos del mismo.
IV
Buffer o intermediario: espacio de memoria destinado al almacenamiento temporal de datos, en este caso, bytes que
se encuentran en el puerto serial de la PC.
2006
Aplicacin de visualizacin en PC
89
Posicionador Satelital
Comunicado Por
Telefona Celular
Al ejecutarse, el programa crea el formulario FPrin y en ese momento inicial, se pone en marcha
el procedimiento FormCreate que se encarga de inicializar variables, configurar el puerto serie de
acuerdo a las especificaciones del protocolo F-BUS, y abrir la tabla de la base de datos TCo.
procedure TFPrin.FormCreate(Sender: TObject);
begin
St.Visible:=False;
MSComm.CommPort:=1;
MSComm.Settings:='115200,n,8,1';
MSComm.InputMode:=1;
if MSComm.PortOpen=True then MSComm.PortOpen:=False;
seq:=1;
j:=1;
emc:=False;
leyendo:=False;
TCo.Open;
TimerBat.Enabled:=False;
TimerHead.Enabled:=False;
conec:=False;
qant:=0;
prisms:=0;
con:=10;
end;
De manera similar, cada vez que se sale del programa, se ejecuta el procedimiento FormClose, en
donde se cierra la base de datos y el puerto.
procedure TFPrin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TCo.Close;
if MSComm.PortOpen=True then MSComm.PortOpen:=False;
end;
2006
Aplicacin de visualizacin en PC
90
Posicionador Satelital
Comunicado Por
Telefona Celular
La variable seq contiene el valor del nmero de secuencia de las instrucciones F-BUS, segn lo explicado en la
pgina 44.
2006
Aplicacin de visualizacin en PC
91
Posicionador Satelital
Comunicado Por
Telefona Celular
Este procedimiento no solo sirve para que el usuario sepa cuando debe proceder a poner en carga
el aparato telefnico, sino que permite tambin mantener el bus de comunicacin activo, de
manera tal que no se hace necesario el envo del encabezado toda vez que se quiera mandar
cualquier otra instruccin. En resumen, mientras haya un celular conectado al puerto serie y cada
un segundo, el programa enva el pedido de estado de batera, el telfono lo responde, y ambos
envan las correspondientes sentencias de reconocimiento, establecindose as un dilogo
continuo entre las partes que posibilita que en cualquier momento pueda enviarse cualquier otra
instruccin, sin la necesidad de la puesta en marcha del canal F-BUS.
Se dijo en el prrafo anterior que el programa enva la trama de reconocimiento ante una
respuesta del telfono. La recepcin de los bytes enviados por el telfono y la transmisin,
cuando corresponda, de la cadena de reconocimiento, son tareas del procedimiento TimerRxTimer
ejecutado ante el evento OnTimer del componente TimerRx, cuya propiedad Interval tiene el valor
de 50 milisegundos. Entonces, cada 50 milisegundos, se verifica si en el buffer de entrada del
puerto serie hay datos, de ser as se comprueba si alguno de ellos es el byte 0x1E que indicara el
comienzo de una trama F-BUS. Si esto es as, se verifica con los bytes siguientes, que tipo de
instruccin es, cul es su longitud, se almacena la trama completa y se transmite la cadena de
reconocimiento. En este punto, si la trama enviada por el telfono es una de las que se utilizan en
el programa, se procesan los bytes que la componen. Por ejemplo, para el caso de la trama que
2006
Aplicacin de visualizacin en PC
92
Posicionador Satelital
Comunicado Por
Telefona Celular
enva los datos registrados por el mdulo GPS por medio de un mensaje de texto, se procede a
guardar esta informacin en la tabla TCo, como se ver ms adelante.
procedure TFPrin.TimerRxTimer(Sender: TObject);
var
b1, b2, b3, b4, ba: Byte;
i, k, c: Smallint;
ok: Boolean;
begin
c:=MSComm.InBufferCount;
if c>1 then
begin
buffer:=MSComm.Input;
i:=-1;
repeat
ok:=False;
repeat
i:=i+1;
if (buffer[i]=$1E) and (buffer[i+1]=$0C) then ok:=True;
until ok or (i=c-1);
if ok then
begin
b1:=buffer[i+3];
if b1=$7F then con:=0
else
begin
if (b1=$14) and (buffer[i+7]=$59)
and (buffer[i+9]=$03) then
begin
ba:=buffer[i+68] and $7F;
if (buffer[i+66]=$30) and ba=$26 then guardars;
if buffer[i+15]=ulti then indexar;
end;
.
.
.
b2:=buffer[i] and $07;
b3:=$1E xor $0C xor b1;
b4:=$7F xor $02 xor b2;
MSComm.Output:=Chr($1E)+Chr($00)+Chr($0C)+
Chr($7F)+Chr($00)+Chr($02)+
Chr(b1)+Chr(b2)+Chr(b3)+Chr(b4);
Sleep(50);
end;
end;
until (i+4)>=c;
end;
end;
Anteriormente, cuando se describi el protocolo F-BUS, se consign que para leer un SMS del
celular, hay que conocer su posicin en la memoria del aparato, a travs de la correspondiente
instruccin. Esta instruccin es generada por el procedimiento EnPedido que est controlado por
el mismo temporizador que maneja el pedido de estado de batera.
2006
Aplicacin de visualizacin en PC
93
Posicionador Satelital
Comunicado Por
Telefona Celular
procedure TFPrin.EnPedido;
const
f = 17;
s: array[0..f] of Byte = ($1E,$00,$0C,$14,$00,$0C,$00,$00,
$00,$0C,$00,$02,$0F,$55,$55,$55,
$01,$40);
var
i, b1, b2: Byte;
ss: AnsiString;
begin
s[f]:=$40+seq;
seq:=seq+1;
if seq=8 then seq:=0;
b1:=0;
b2:=0;
i:=0;
repeat
b1:=b1 xor s[i];
b2:=b2 xor s[i+1];
ss:=ss+Chr(s[i])+Chr(s[i+1]);
i:=i+2;
until i=f+1;
ss:=ss+Chr(b1)+Chr(b2);
Sleep(100);
MSComm.Output:=ss;
Sleep(50);
end;
2006
Aplicacin de visualizacin en PC
94
Posicionador Satelital
Comunicado Por
Telefona Celular
if j>1 then
begin
St.Visible:=True;
.
.
.
s[f]:=$40+seq;
seq:=seq+1;
if seq=8 then seq:=0;
s[13]:=cansms[j];
j:=j+1;
q:=q-1;
b1:=0;
b2:=0;
i:=0;
repeat
b1:=b1 xor s[i];
b2:=b2 xor s[i+1];
ss:=ss+Chr(s[i])+Chr(s[i+1]);
i:=i+2;
until i=f+1;
ss:=ss+Chr(b1)+Chr(b2);
if (q=0) or ((j=6) and (cansms[6]=prisms)) then
begin
qant:=cansms[4];
prisms:=cansms[5];
ulti:=cansms[j-1];
TimerConSMS.Enabled:=False;
j:=1;
end;
MSComm.Output:=ss;
Sleep(50);
end;
end;
El procedimiento EnPedido es ejecutado una vez por segundo, pero esto no significa que se lea
completamente la memoria del telfono mvil cada segundo, sino que la lectura completa se lleva
a cabo una sola vez, al establecerse la comunicacin, leyndose luego solo los mensajes nuevos
que arriben al celular. Tambin hay que aclarar que cada mensaje recibido por el programa, es
marcado como ledo en el telfono celular para que de esta manera, cuando la memoria est llena,
los mensajes ms antiguos del aparato son automticamente eliminados cada vez que llega un
nuevo mensaje, lo que permite que el celular queda recibiendo mensajes continuamente sin
interrupcin por falta de memoria.
&: Smbolo colocado intencionalmente para diferenciar a los SMS enviados por la unidad
mvil de los dems.
2006
Aplicacin de visualizacin en PC
95
Posicionador Satelital
Comunicado Por
Telefona Celular
MM: Par de caracteres numricos que identifican a la unidad mvil de origen, en compatibilidad con una futura implementacin ms de un mvil.
hh:mm:ss: Hora, minutos y segundos en que fue registrada la posicin.
lll:ll.llll: Latitud de la posicin. Los tres primeros caracteres indican los grados, y
los siete ltimos indican los segundos. El smbolo : reemplaza al de
grados (), que no est presente en el mapa convencional de caracteres
del alfabeto soportado por el sistema SMS.
c: N o S. Indica si la latitud corresponde al hemisferio Norte o Sur.
LLL:LL.LLLL: Longitud de la posicin, donde los tres primeros caracteres indican los
grados, y los siete ltimos indican los segundos.
C: E o O. Indica si la longitud de la posicin es Este u Oeste.
SS: Par de caracteres numricos que indican la cantidad de satlites visibles al momento
del registro de la posicin.
dd/mm/aaaa: Fecha en que fue tomada la posicin.
14:45
&01 14:43:59
032:25.3479 s
063:14.9994 o 05
12/09/2006
Opciones
Figura 2: SMS en la pantalla mvil.
Por ejemplo, para un mensaje de texto que en la pantalla del celular se vera segn la figura 2, la
cadena SMS completa es:
Aplicacin de visualizacin en PC
96
Posicionador Satelital
Comunicado Por
Telefona Celular
procedure guardars;
var
o: Smallint;
b: array[1..66] of Byte;
filename: String;
begin
o:=i+67;
b[02]:=(((buffer[o+02]*$100)+buffer[o+01]) shr 7) and $7F;
b[03]:=(((buffer[o+03]*$100)+buffer[o+02]) shr 6) and $7F;
b[05]:=(((buffer[o+05]*$100)+buffer[o+04]) shr 4) and $7F;
.
.
.
b[55]:= (buffer[i+25] and $F)+$30;
b[56]:=((buffer[i+25] shr 4) and $F)+$30;
b[57]:= (buffer[i+26] and $F)+$30;
b[58]:=((buffer[i+26] shr 4) and $F)+$30;
.
.
.
try
TCo.Append;
TCo['Identificador']:=StrToInt(Chr(b[2])+Chr(b[3]));
TCo['HoraE']:=StrToTime(Chr(b[5])+Chr(b[6])+':'+Chr(b[8])+Chr(b[9])+
':'+Chr(b[11])+Chr(b[12]));
.
.
.
TCo['HoraS']:=StrToTime(Chr(b[61])+Chr(b[62])+':'+Chr(b[63])+
Chr(b[64])+':'+Chr(b[65])+Chr(b[66]));
TCo.Post;
filename:='D'+Chr(b[53])+Chr(b[54])+Chr(b[48])
+Chr(b[49])+Chr(b[45])+Chr(b[46]);
if not FileExists('Datos\'+filename+'.db') then
begin
TCo.FieldDefs.Update;
TCo.IndexDefs.Update;
TDa:=TTable.Create(nil);
TDa.DatabaseName:=TCo.DatabaseName;
TDa.TableName:=filename;
TDa.FieldDefs.Assign(TCo.FieldDefs);
TDa.IndexDefs.Assign(TCo.IndexDefs);
TDa.CreateTable;
end
else TDa.TableName:=filename;
TDa.Open; TDa.Append;
TDa['Identificador']:=TCo['Identificador'];
TDa['HoraE']:=TCo['HoraE'];
.
.
.
TDa.Close;
except
on EConvertError do
begin
TCo.Delete;
Abort;
end;
end;
end;
2006
Aplicacin de visualizacin en PC
97
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
Aplicacin de visualizacin en PC
98
Posicionador Satelital
Comunicado Por
Telefona Celular
Entre los componentes del formulario se pueden observar dos paneles de botones radiales. El
primero condiciona la visualizacin a las ltimas 10, 25, 50, 100 o 200 posiciones. El segundo
permite seleccionar el nmero de mvil del que se quiere tener la informacin.
2006
Aplicacin de visualizacin en PC
99
Posicionador Satelital
Comunicado Por
Telefona Celular
Figura 5: Indicacin en la barra de estado de la latitud y la longitud del punto en donde se sita el mouse.
2006
Aplicacin de visualizacin en PC
100
Posicionador Satelital
Comunicado Por
Telefona Celular
procedure TFMapa.ImageMouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer);
var
LatMap, LonMap, LatCon, LonCon: Extended;
begin
mX:=X;
mY:=Y;
LatMap:=Lt0+EscY*Y;
LonMap:=Ln0-EscX*X;
LatCon:=(Trunc(LatMap)+Frac(LatMap)*3/5)*100;
LonCon:=(Trunc(LonMap)+Frac(LonMap)*3/5)*100;
MapEstado.Panels[1].Text:='Mouse -> Lat.: '+
FormatFloat('#0""00.0000"'+#39+'"',LatCon)+' s - Lon: '+
FormatFloat('#0""00.0000"'+#39+'"',LonCon)+' o';
MapEstado.Panels[2].Text:=IntToStr(X)+','+IntToStr(Y);
end;
Si se coloca el puntero del mouse sobre cualquiera de los puntos que representan a una posicin,
puede visualizarse una etiqueta o hint con los valores de fecha, hora, latitud y longitud de dicho
punto, tal como se muestra en la figura 6.
Figura 6: Hint con los datos correspondientes a la ubicacin apuntada por el mouse.
El plano elegido para el proyecto abarca la totalidad del rea urbana de las vecinas ciudades de
Villa Mara y Villa Nueva, incluyendo un radio aproximado de cuatro kilmetros alrededor del
centro villamariense. En el programa se incluyen dos modos de visualizacin del plano. En el
modo por defecto (figura 3), se ve el plano completo dentro del formulario secundario cuyas
2006
Aplicacin de visualizacin en PC
101
Posicionador Satelital
Comunicado Por
Telefona Celular
medidas son de 1000 pxeles de ancho por 700 de alto, obtenindose una escala aproximada de 12
metros por pxel. Al hacer clic con el botn izquierdo del mouse sobre cualquier punto del plano
se pasa al modo zoom, con una escala de 3,5 metros por pxel, tal como se ve en la figura 8. Al
hacer clic nuevamente sobre el plano se vuelve al modo sin zoom.
El procedimiento ImageClick, que se desarrolla ante el evento OnClick sobre la imagen que
contiene al plano, es el encargado de cambiar el tamao de la imagen y los valores de escala para
que los puntos se siten correctamente cuando se cambia de modo de visualizacin.
procedure TFMapa.ImageClick(Sender: TObject);
var
nX, nY: Integer;
begin
if not zoom then
begin
IBruj.Visible:=False;
zoom:=True;
if mY<108 then mY:=107;
if mY>595 then mY:=596;
if mX<154 then mX:=153;
if mX>846 then mX:=847;
nY:=-Round(mY*2300/703);
nX:=-Round(mX*3272/1000);
Image.Height:=2300;
Image.Width:=3272;
Image.Top:=nY+350;
2006
Aplicacin de visualizacin en PC
102
Posicionador Satelital
Comunicado Por
Telefona Celular
Image.Left:=nX+500;
EscY:=EsY/3.272;
Lat0:=Lt0-EscY*Image.Top;
EscX:=EsX/3.272;
Lon0:=Ln0+EscX*Image.Left;
refrescar:=False;
end
else
begin
zoom:=False;
Image.Height:=703;
Image.Width:=1000;
Image.Left:=0;
Image.Top:=0;
EscY:=EsY;
Lat0:=Lt0;
EscX:=EsX;
Lon0:=Ln0;
IBruj.Visible:=True;
refrescar:=False;
end;
Redibuja;
end;
Cada vez que deba producirse un cambio en la visualizacin ya sea por cambio de escala, por
cambio de mvil a observar, por cambio de fecha de referencia, por la llegada de nuevos datos, o
por algn otro motivo, se llama al procedimiento Redibuja, que se encarga de fijar en las
variables las nuevas condiciones para luego llamar al evento TimerShow, explicado antes,
obtenindose as el plano actualizado.
procedure TFMapa.Redibuja;
begin
if refrescar then PaintBox.Refresh;
repeat
if s>0 then
begin
s:=s-1;
Punto[s].Free;
end;
until s=0;
SetLength(Punto,s);
if FPrin.St.Visible then Exit;
if RadioU.ItemIndex=-1 then
begin
ult:=10;
if PedFecha then
begin
ModalResult:=mrCancel;
repeat until FFecha.ShowModal=mrOK;
PedFecha:=False;
end;
Label1.Caption:=' Desde: '+DateTimeToStr(FFecha.TPi.DateTime);
Label2.Caption:=' Hasta: '+DateTimeToStr(FFecha.TPf.DateTime);
Label1.Visible:=True;
Label2.Visible:=True;
end
else
2006
Aplicacin de visualizacin en PC
103
Posicionador Satelital
Comunicado Por
Telefona Celular
begin
Label1.Visible:=False;
Label2.Visible:=False;
case RadioU.ItemIndex of
0: ult:=10;
1: ult:=25;
2: ult:=50;
3: ult:=100;
4: ult:=200;
end;
end;
TimerShow.Enabled:=True;
end;
Para la seleccin de la fecha y hora de visualizacin del historial de posiciones, se cre un tercer
formulario (FFecha) que contiene tres recolectores de calendario encargados de seleccionar el da
y los lmites horarios en que se desean obtener los datos.
El primer recolector despliega un calendario para mayor facilidad en la seleccin de la fecha, tal
como se observa en la figura 10. Los otros dos pueden cambiar los valores de hora, minutos y
segundos en modo incremental o decreciente, segn como se opere sobre los botones up/down. A
su vez, los tres controles permiten el ingreso manual de nmeros.
2006
Aplicacin de visualizacin en PC
104
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
Aplicacin de visualizacin en PC
105
Posicionador Satelital
Comunicado Por
Telefona Celular
8.4. Referencias
8.4.1. Referencias bibliogrficas
Ian Marteens, La Cara Oculta de Delphi 4, www.marteens.com, 1998.
Francisco Charte Ojeda, Programacin con C++ Builder, Anaya Multimedia, 1997.
Zarko Gajic, Why Delphi, http://delphi.about.com, 1999.
Neil Moffatt, Delphi Basics, www.delphibasics.co.uk/index.html, 2002 2006.
Marco Cant, Pascal Esencial (Para Delphi),
www.marcocantu.com/EPascal/Spanish/default.htm, 1995 2000.
Ernesto De Spirito, Una comparacin entre Delphi y Visual Basic,
www.latiumsoftware.com/es/articles/00010.php, 2001.
David Osornio Fernndez, Apuntes Delphi,
http://www.elguille.org/delphi/apuntesDelphi/apuntesDelphi.htm, 2002.
8.4.2. Software
Delphi 4, Borland Software Corporation, 1998.
Google Earth 4, Google Inc., http://earth.google.com, 2006.
Google Maps, Google Inc., http://maps.google.com, 2006.
Plano de las localidades de Villa Mara y Villa Nueva
gentileza de Musicalsimo Producciones S.R.L.,
www.musicalisimo.net.
2006
Aplicacin de visualizacin en PC
106
9
Anlisis de costo
9.1. Introduccin
La implementacin comercial del presente proyecto en funcin de los objetivos planteados, nos
lleva a la hipottica suposicin de tener que aplicarlo en la logstica de una pequea o mediana
empresa local. Para hacer una ligera evaluacin del costo prctico del proyecto, vamos a suponer
en este captulo que va a ser puesto en marcha en una empresa que posee cinco vehculos que
desarrollan su recorrido sobre nuestra rea urbana.
Una vez puesto en marcha el proyecto, hay que acordar con el responsable de la empresa
contratante, un plan corporativo para las cinco lneas de los telfonos mviles, en funcin de la
cantidad de mensajes de texto necesarios para la operatividad propia de la empresa. Los valores
de los planes corporativos oscilan entre los 50 y 150 pesos mensuales ms impuestos por cada
lnea, segn sea el operador telefnico y la cantidad de SMS incluidos.
En este punto cabe aclarar que la mayora de las empresas ya poseen un sistema previo de
comunicaciones, por lo que una implementacin profesional debera adaptar el proyecto a los
aparatos preexistentes que podran ser equipos de radio, de transmisin digital de datos o de
telefona celular iguales o diferentes a los aqu descritos.
2006
107
Posicionador Satelital
Comunicado Por
Telefona Celular
1
1
1
2
2
9
1
1
2
1
2
1
1
1
1
1
1
1
1
20
1
1
1
1
Componente
PIC 16F873
Mdulo GPS FV-12 + Antena SM-66
Cristal 3,6864 MHz
Capacitores cermicos 50 v.
Capacitores electrolticos 50 v.
Resistencias vatio
Diodo 1N4001
Diodo 1N4148
Diodos Zener 2,7 v.
Diodo LED Bicolor 5 mm
Diodos LED 5 mm
LM7805 con disipador de calor
Transistor BC548
Rel DC5V
Pulsador mini 4c
Placa p/circuito impreso
Zcalo 40 pines
metro cable alimentacin 2 cond.
metro cable UTP fino 6 cond.
cm. cable plano multicolor 10 cond.
Plug alimentacin
Conector pop-port
Gabinete + tornillos varios
Cooler 5 cm.
Total:
$
23,25
258,32
1,22
0,15
0,20
0,40
0,10
0,05
0,70
0,75
0,50
2,50
0,15
5,40
2,00
2,54
0,75
0,50
1,50
1,40
1,00
4,00
26,72
14,00
348,10
Teniendo en cuenta que todos los valores consignados incluyen el correspondiente IVA del 21 por
ciento, el costo de cinco unidades mviles ser entonces de $ 1438,43 ms impuestos.
Anlisis de costo
108
Posicionador Satelital
Comunicado Por
Telefona Celular
Cant.
1
6
1
2
2
1
1
1
1
1
1
Componente
MAX 232
Capacitores cermicos 50 v.
Resistencia vatio
Diodo 1N4148
Diodos Zener 2,7 v.
LM78L05
Placa p/circuito impreso
metro cable UTP fino 6 cond.
Conector DB-9
Conector pop-port
Gabinete + tornillos varios
Total:
$
1,90
0,45
0,04
0,10
0,70
0,62
1,80
1,50
2,10
4,00
6,20
19,41
Descargando el IVA, nos queda un valor de $ 16,04 para el nico cable de datos del trabajo.
En cuanto al software que permite la visualizacin de las posiciones, establecemos su costo en
350 pesos ms impuestos, lo que incluye la instalacin, adaptacin y soporte inicial en una
computadora de la empresa contratante.
887,60
1438,43
16,04
350,00
150,00
900,00
3742,07
En conclusin la aplicacin del presente proyecto sobre cinco vehculos de una pyme originara
un costo total de implementacin de 3742,07 pesos ms impuestos, sin contar los costos
operativos como por ejemplo el de las lneas telefnicas celulares.
9.6. Referencias
Cika Electrnica S.R.L., ventas@cika.com, Capital Federal.
Electrnica Modular S.R.L., ventas@emodular.com.ar, Crdoba.
Roberto Mediavilla Electrnica, Villa Mara.
2006
Anlisis de costo
109
10
Conclusiones
10.1. Desempeo del equipo
La puesta en funcionamiento del proyecto permiti la observacin del comportamiento del equipo
en funcin de aspectos ambientales y de la visibilidad que posea la antena del mdulo GPS a
las seales satelitales. Como se describi oportunamente, al encenderse, el receptor GPS
comienza a funcionar a pleno cuando logra detectar la mayor cantidad posible de seales, lo que
depende del tiempo que haya estado apagado y, como veremos, de las condiciones climticas del
lugar en que se encuentra. Si el equipo permaneci apagado solo unas pocas horas, es muy
probable que se enganche con varias seales rpidamente, ya que el mdulo almacena los datos
de efemrides de los satlites en su memoria no voltil y puede as predecir la posicin de los
mismos, an en condiciones climticas adversas. En el caso contrario, cuando ha pasado un
tiempo lo suficientemente grande como para que los datos de efemrides sean obsoletos, el
equipo comienza a brindar datos de posicin solo cuando puede localizar las seales de al menos
tres satlites. Generalmente los primeros datos entregados por el mdulo son nulos o poco
precisos, lo que es indicado en el correspondiente campo de las instrucciones NMEA (active/void)
y trasladado a la etapa de visualizacin de la unidad mvil (LCD/led), tal como se explic en
captulos anteriores. El tiempo que demora el mdulo en brindar datos vlidos depende tambin
de las condiciones climticas o, ms especficamente, atmosfricas a las que est sometida la
antena y, por supuesto, los obstculos que pudiesen limitar su visibilidad.
Para refrendar lo anterior se transcriben ahora algunas observaciones realizadas bajo distintas
condiciones atmosfricas, durante este ao 2006:
En la tarde del 12 de mayo, con cielo parcialmente nublado, el equipo comenz a dar
datos pasados 2 minutos del encendido y con el vehculo detenido. Puesto a andar el
vehculo, se obtienen datos a partir de 4 satlites, pero con la indicacin de ser poco
precisos, cuestin que se vio corroborada en el plano ya que esos primeros datos tenan un
error de aproximadamente 100/150 metros. Luego de otros 4 minutos, el mdulo comenz
a otorgar datos vlidos con el error nominal de 25 metros, valindose de las seales de 5
satlites. A partir de aqu fue detectando cada vez ms seales hasta llegar a 8 luego de 35
minutos y siguiendo con el error normal.
En la maana del 15 de mayo, con cielo despejado, el mdulo comenz a dar datos
despus de dos minutos de espera con el vehculo detenido. A partir de aqu otorg
siempre datos vlidos, con precisin normal, y con datos de 4 o 5 satlites. Pasada una
hora, logr captar hasta 6 seales satelitales.
2006
110
Posicionador Satelital
Comunicado Por
Telefona Celular
En el medioda del 17 de mayo, con cielo nublado, se encendi el equipo con el vehculo
en movimiento y rpidamente comenz a brindar datos pero poco precisos (error 200
metros), durante siete minutos. En este momento el vehculo permaneci detenido durante
unos 6 minutos, luego de lo cual el mdulo empez a dar datos vlidos a partir de 4 o 5
satlites con precisin normal. Cuando el cielo comenz a despejarse lentamente, la
unidad pudo recibir hasta 6 seales satelitales.
En la maana del 22 de mayo, con cielo totalmente despejado, el equipo comenz a dar
datos rpidamente y con el vehculo en movimiento, aunque durante los primeros 2
minutos estos datos eran poco precisos. Ya en el tercer minuto se obtuvieron datos vlidos
de 4 satlites con error nominal.
En el medioda del 2 de junio, con cielo encapotado y con lluvia, el equipo solo comenz
a dar datos luego de 10 minutos de haber sido encendido, y se mantuvo brindando datos
muy poco precisos (con errores de 100, 200 y hasta 300 metros) durante otros 40 minutos.
Transcurrido este tiempo, el mdulo empez a dar datos vlidos, con precisin normal y
de 4 satlites. Pasada ms de una hora y media, y a pesar de que segua lloviendo y con el
cielo muy cubierto, la unidad comenz a tomar seales de 5 y 6 satlites alternadamente.
En la maana del 5 de agosto, con cielo nublado, la unidad mvil recin comenz a
brindar datos despus de 15 minutos de haber sido encendida, con el vehculo en
movimiento, siendo estos datos poco precisos durante 35 minutos, con errores de hasta
250 metros en la posicin. Transcurrido este tiempo el equipo comienza a dar valores
correctos (con error nominal), valindose de las seales de 4 y 5 satlites.
En el medioda del 25 de agosto, con cielo parcialmente nublado, el equipo comenz a dar
datos vlidos a los pocos segundos de haber sido encendido, con informacin de tres
satlites. Pero luego de funcionar correctamente durante unos 10 minutos, el equipo
comenz a perder seal satelital en el mismo momento en que el vehculo transitaba por el
sector ms densamente urbanizado de la ciudad; volviendo a dar datos vlidos 5 minutos
despus, ya con el vehculo fuera del microcentro villamariense.
2006
Conclusiones
111
Posicionador Satelital
Comunicado Por
Telefona Celular
Cuando la unidad mvil ha permanecido apagada varias horas, de manera tal que los datos de
efemrides almacenados son insuficientes para detectar la posicin de los satlites en el momento
de ser encendida, se desprenden, de las observaciones anteriores, las siguientes reglas empricas
de funcionamiento:
El intervalo de tiempo transcurrido entre el encendido del equipo y los primeros datos de
posicin depende de la visibilidad de la antena, variando entre algunas decenas de
segundos con una atmsfera clara hasta unos 15 minutos ante un cielo muy cubierto.
Es comn que en los primeros minutos el mdulo entregue datos poco precisos,
especialmente si las condiciones climticas no son favorables. El lapso en que ocurre esto
puede llegar a los tres cuartos de hora, aunque si el cielo est despejado el equipo brindar
datos vlidos inmediatamente.
Si el vehculo ingresa a una zona densamente urbanizada, es factible que la unidad pierda
momentneamente el vnculo con algunas o todas las seales satelitales.
Cuando el mdulo GPS indica que los datos que est brindando son poco precisos, se
puede comprobar efectivamente que el error en la indicacin puede variar en 100, 200
o hasta 250 metros de la posicin real.
Finalmente consignamos que los datos de tiempo y velocidad que brinda el mdulo GPS se
corresponden con la realidad, aunque no hemos utilizado ningn instrumento de alta precisin que
corrobore esto con ms propiedad.
I
Recordamos que el mdulo necesita al menos cuatro seales satelitales para determinar la posicin del mvil en tres
dimensiones, aunque con tres seales puede determinar la posicin en 2D, no brindando datos de altitud que en el
presente proyecto no son utilizados, por lo que la operatividad de la unidad mvil depender de que el conjunto
antena/mdulo GPS pueda detectar al menos tres satlites.
2006
Conclusiones
112
Posicionador Satelital
Comunicado Por
Telefona Celular
Alimentacin del circuito de la unidad mvil con la propia batera del telfono celular.
Hay en el mercado circuitos integrados conversores DC-DC (tal como el MAX631) que
permitiran que el circuito basado en el microcontrolador pueda ser alimentado por la
batera del celular, con lo que solamente estara conectado a la alimentacin del vehculo
el cargador del telfono, pudiendo gozar el resto del circuito de unas horas de autonoma
ante la falta de energa elctrica en el vehculo. De esta manera el proyecto, adems de los
fines logsticos, podra tambin ser utilizado como complemento a los sistemas de
seguridad del vehculo.
2006
Conclusiones
113
Posicionador Satelital
Comunicado Por
Telefona Celular
fin. Por ejemplo si el vehculo se encuentra en cualquier punto dentro del rectngulo
imaginario formado por las latitudes 3224,8128 y 3224,8701 Sur, y las longitudes
6314,4149 y 6314,4804 Oeste; puede decirse que se encuentra en, o muy cercano a la
esquina de Entre Ros y San Martn de Villa Mara, tal como se puede ver en la siguiente
imagen:
6314,4804 o
6314,4149 o
3224,8128 s
3224,8701 s
Confeccin vectorial del plano. El plano de mapa de bits utilizado en este trabajo tiene la
dificultad de ser muy pesado para la memoria de la computadora y de perder precisin
cuando cambia su tamao. Esto puede solucionarse con la elaboracin de un plano
vectorial equivalente. Este tipo de planos tienen la ventaja de ocupar poco espacio en el
disco duro y la memoria del sistema siendo su procesamiento muy rpido aunque poseen
menos resolucin que los planos convencionales. Adems un plano vectorial facilitara
mucho el trabajo de conversin de las posiciones en direcciones reales explicado en el
prrafo anterior.
Plano con zoom variable. Como se describi oportunamente, la aplicacin para PC permite
solo dos tamaos de visualizacin del plano. Una ventaja adicional de la elaboracin de un
plano vectorial seria la de poder obtener varias escalas de visualizacin cuya precisin
sera siempre la misma, ya que en estos planos la resolucin no depende del zoom aplicado
sino de la calidad en que est confeccionado.
Plano regional. Para ampliar el alcance del proyecto, se puede implementar un segundo
plano a una escala mayor y con un radio de 100 o 150 kilmetros que permitira ubicar al
vehculo cuando salga del rea urbana local. De este modo el trabajo puede ser utilizado
por empresas que desarrollan su actividad en una zona mayor a la local.
Optimizacin del software. La aplicacin desarrollada en DELPHI, debe ser pulida un poco
ms para mejorar sus prestaciones y su aspecto visual que permita un uso sencillo para
cualquier usuario. Falta tambin la implementacin del instalador que permita transportar
fcilmente el software hacia cualquier ordenador. Paralelamente sera interesante
desarrollar la aplicacin bajo el sistema operativo LINUX que viene creciendo lenta pero
constantemente dentro del mercado local debido a que es un cdigo abierto y libre.
2006
Conclusiones
114
Posicionador Satelital
Comunicado Por
Telefona Celular
2006
Conclusiones
115
Posicionador Satelital
Comunicado Por
Telefona Celular
ricardoromitelli@datafull.com
2006
Conclusiones
116