in electronics localizador gps con registro en sd-card …

11
uestra experiencia en seguimiento GPS empieza a cobrar importancia: desde el 2002 venimos ofreciendo a nuestros clien- tes y amigos diversos kits y equipos de localiza- ción y seguimiento GPS, alguno de los cuales era capaz de memorizar más de 2.000 posiciones de un recorrido. Pero cada posición registrada ocupa 16 bytes y se necesita una memoria de notable capacidad para reseguir con detalle un trayecto un poco largo, compuesto por muchas tomas de posición. Un registrador de coordenadas es un aparato muy interesante en el ámbito profesional, de modo que creemos que vale la pena preparar un kit con gran capacidad de registro que incor- pore los últimos recursos tecnológicos disponibles normalmente en el comercio. El proyecto que hoy sometemos a la consideración de nuestros lecto- res, por gentileza del conocido experto italiano Sr. Carlo Tauraso, es un localizador GPS que proce- de a tomar la posición a intervalos regulares y graba los datos en una SD-Card, que es el sopor- te de moda. Posteriormente, la tarjeta se retira del grabador y se lee en un PC provisto de un lector adecuado. Los datos GPS se toman en el momento previsto y se graban en un archivo de texto con un formato muy sencillo que permite importarlos desde un software cartográfico tipo Fugawi, o bien pueden visualizarse y reelaborar- se con una aplicación de Microsoft Office. Los usos de este sistema son innumerables: permite n.14 - In Electronics 1 > In Electronics LOCALIZADOR GPS LOCALIZADOR GPS CON REGISTRO CON REGISTRO EN SD-Card (1) EN SD-Card (1) por Carlo Tauraso Instalado a bordo de un vehículo terrestre o marí- timo, graba en una SD-Card el recorri- do efectuado y permite reproducirlo con todo de- talle, con la ayuda de un programa de cartografía GPS. La Memory Card puede registrar hasta 1.700.000 posiciones, equi- valentes a una toma de posición por segundo duran- te 20 días. Extraordinario.

Upload: others

Post on 29-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

uestra experiencia en seguimiento GPSempieza a cobrar importancia: desde el2002 venimos ofreciendo a nuestros clien-

tes y amigos diversos kits y equipos de localiza-ción y seguimiento GPS, alguno de los cuales eracapaz de memorizar más de 2.000 posiciones deun recorrido. Pero cada posición registrada ocupa16 bytes y se necesita una memoria de notablecapacidad para reseguir con detalle un trayectoun poco largo, compuesto por muchas tomas deposición. Un registrador de coordenadas es unaparato muy interesante en el ámbito profesional,de modo que creemos que vale la pena prepararun kit con gran capacidad de registro que incor-pore los últimos recursos tecnológicos disponibles

normalmente en el comercio. El proyecto que hoysometemos a la consideración de nuestros lecto-res, por gentileza del conocido experto italiano Sr.Carlo Tauraso, es un localizador GPS que proce-de a tomar la posición a intervalos regulares ygraba los datos en una SD-Card, que es el sopor-te de moda. Posteriormente, la tarjeta se retira delgrabador y se lee en un PC provisto de un lectoradecuado. Los datos GPS se toman en elmomento previsto y se graban en un archivo detexto con un formato muy sencillo que permiteimportarlos desde un software cartográfico tipoFugawi, o bien pueden visualizarse y reelaborar-se con una aplicación de Microsoft Office. Losusos de este sistema son innumerables: permite

n.14 - In Electronics 1

>

In Electronics

LOCALIZADOR GPSLOCALIZADOR GPS

CON REGISTRO CON REGISTRO

EN SD-Card (1)EN SD-Card (1)por Carlo Tauraso

Instalado a bordo de un vehículo terrestre o marí-

timo, graba en una SD-Card el recorri-

do efectuado y permite reproducirlo con todo de-

talle, con la ayuda de unprograma de cartografíaGPS. La Memory Cardpuede registrar hasta1.700.000 posiciones, equi-valentes a una toma deposición por segundo duran-te 20 días. Extraordinario.

verificar el recorrido efectuadopor un vehículo tanto en el casode vehículos de alquiler comoen el de control de la flota pro-pia. Obviamente, el seguimientode vehículos sometidos a vigi-lancia por los cuerpos de segu-ridad es una de las aplicacionesmás socorridas: los sistemasque se basan en la transmisiónen tiempo real de los datos deposición presentan cuantiososproblemas de radiocomunica-ción, medioambientales (agua,barro, temperaturas extremas,vibraciones, etc.) y de la propiaactividad (normalmente el pro-pietario del vehículo debe igno-rar que lleva este "parásito" abordo) desaconseja utilizarsoportes como discos rígidos,ópticos, etc., con partes enmovimiento. Recuperada la SD-Card (y sustituida en el siste-ma), puede reconstruirse deta-lladamente el itinerario,mostrando los puntos con sufecha y hora correspondientes.Como soporte se ha elegido unaSD-Card de 64 Mb, cuya capa-cidad de memoria parece másque suficiente. Pero, ¿qué es elGPS?

El sistema GPSEl sistema GPS

Su nombre exacto y completo

es NAVSTAR GPS (NAVigationSatellite Time And Ranging -Global Positioning System). Elproyecto data de 1973 e implica,cómo no, al Departamento deDefensa de los EEUU.Inicialmente, las aplicacionesprevistas del sistema eran mili-tares; más tarde se amplió sudisponibilidad a usos civiles y deinvestigación. Existen otrossistemas: el ARGOS (Francia-EEUU) y el GLONASS (Rusia) yla UE está poniendo en marcha(previsto para 2008) el sistemaeuropeo GALILEO, que serádestinado únicamente a usosciviles. Pero, de hecho, el únicosistema efectivo hoy mismo esel GPS y se utiliza por todos losequipos disponibles en el mer-cado, que son muchos. Se basaen una trama de 24 satélites (18operativos y 6 en reserva) situa-

dos sobre 6 órbitas inclinadas55º respecto al ecuador. Cadaórbita contiene 4 satélites (3operativos y 1 en reserva) y elentramado está pensado deforma que desde cualquierpunto del globo terrestre puedarecibirse la señal de al menosseis de ellos. Su periodo derotación en torno a la Tierra esde 12 horas; algunos satélitesno se han retirado al terminar suvida útil prevista (7 años) y con-tinúan operativos al cabo de 20años. Desde el mismo punto, ala misma hora, en días diferen-tes, seguramente no se captanlos mismos satélites. Las espe-cificaciones generales del siste-ma prevén una cobertura de 4 a8 satélites con elevación supe-rior a 15º, lo que garantiza unabuena recepción de la señal(ver diagrama Señal/Elevacion).

2 n.14 - In Electronics

>

Fig. 1

Campo Formato Ejemplo Descripción

1 HHMMSS.SSS 165105.157 Hra UTC-GPS (Universal Coordinated Time)

2 A A Estado: A=Activo (Active); V=Nulo(Void)

3 XXXX.XXXX 4538.5043 Latitud de la posición actual

4 A N Hemisferio de la posición actual: N=Norte; S=Sur

5 XXXXX.XXXX 01346.7342 Longitudi de la posición actual

6 A E Posición actual respecto al meridiano 0: E=Este; W=Oeste

7 X.XX 0.19 Velocidad en superficie, en nudos

8 XX.XX 88.60 Track Made Good - Dirección del desplazamiento, en grados reales

9 DDMMAA 290605 Fechaa

10 X.X 1.2 Variación / declinación magnética, en grados

11 A E Sentido de la Variación / declinación magnética

12 A DTipo de medida: A=Autonomous, D=Differential, E=Estimated,N=Non valid data (de la versión NMEA 2.3)

Tabla 1

n.14 - In Electronics 3

cia base por 154) y L2, a1.227,60 MHz (multiplicandopor 120). La más interesante esL1, ya que se utiliza en todos losreceptores comerciales (echenun vistazo a las especificacio-nes técnicas de su receptorGPS). Curiosamente, el cálculode la posición se basa en eltiempo que tarda la señal enrecorrer la distancia que separael satélite del receptor. Para sumedida, el satélite envía doscódigos PRN (Pseudo-RandomNoise) con una frecuencia dereloj de 1.023 MHz, que se repi-ten cada milésima de segundo.El primero se denominaCA/Code (Coarse/Acquisition-Code) y va modulado exclusiva-mente sobre L1 y el segundo,llamado P-Code (Precision-Code), se modula simultánea-mente sobre L1 y L2. El proyec-to original considera dos siste-mas de posicionamiento super-puestos: el SPS (StandardPositioning Service), para usosciviles, y el PPS (PrecisePositioning Service), sólo parausos militares y ciertos usuariosautorizados. El C/A-Code seaplica al SPS y el P-Code al

PPS. En el caso del primero, elintervalo de tiempo entre la emi-sión y la recepción se midecomparando el código C/Aenviado por el satélite con unacopia que realiza el receptor,sincronizada con el satélite. Yaquí interviene la famosa E=mc²del Sr. Einstein: multiplicando lavelocidad de la luz en el vacío(300.000 km.s) y aplicandoalgunas correcciones (disper-sión y difracción estratosférica,efecto Doppler-Fizeau para eldesplazamiento relativo satélite-receptor, etc.) se obtiene la dis-tancia exacta entre los puntosde emisión y recepción. Por otraparte, junto con el PRN el saté-lite envía un mensaje de 1.500bits transmitido a 50 bits porsegundo, que el satélite "digie-re" en unos 30 segundos (estojustifica el tiempo de calenta-miento del receptor). Segúnmuestra la figura 1, el mensajeestá dividido en 5 cuadros (fra-mes) en los que se transfierendatos de gran importancia comolas efemérides (informaciónsobre la órbita exacta del satéli-te), los parámetros de correc-ción, los flags de fiabilidad, elalmanaque (subconjunto de efe-mérides y parámetros de reloj,pero de menor precisión), etc.Las dos palabras iniciales (TML,Telemetry Word, y HOW,Handover Word) contienen 30bits en parte reservados y enparte utilizados por funciones desincronización. Gracias a estoscinco frames, el receptor puede

Están equipados con 4 relojesatómicos (dos de Cesio y dosde Rubidio) de gran precisión (elretardo de sincronización es delorden de la milmillonésima desegundo), un ordenador de abordo y un sistema de comuni-caciones en muy alta frecuen-cia. El control desde tierra seefectúa con un sistema llamadoOCS (Operational ControlSystem), formado por una emi-sora MCS (Master ControlStation) y una serie de estacio-nes de control y antenas dis-puestas a lo largo del ecuador.La MCS se ocupa de la sincro-nización de los relojes, del con-trol de las órbitas y del diagnós-tico del sistema. El sistema queproponemos hoy se componede una antena GPS de gransensibilidad, un reloj (obviamen-te menos preciso que los de lossatélites), un procesador y unradiorreceptor. El procesadorcontrola la exacta descodifica-ción de la señal y el cálculo tri-gonómetrico que permite deter-minar la posición. Los satélitestransmiten en SSM (SpreadSpectrum Modulation), modula-ción de espectro difuso) quehace que la señal resulte casiimposible de interceptar o inter-ferir, ya que se confunde con elruido electromagnético defondo. Los relojes de a bordogeneran una frecuencia funda-mental de 10,23 MHz a partir dela cual se producen dos porta-doras básicas: L1, a 1.575,42MHz (multiplicando la frecuen-

$GPGGA,144256.835,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*78

$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05

$GPRMC,144256.835,V,0000.0000,N,00000.0000,E,,,020705,,*1A

$GPGGA,144257.835,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*79

$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05

$GPRMC,144257.835,V,0000.0000,N,00000.0000,E,,,020705,,*1B

$GPGGA,144258.835,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*76

$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05

$GPRMC,144258.835,V,0000.0000,N,00000.0000,E,,,020705,,*14

L I S TA D O 1

Fig. 2

calcular la posición a partir de ladistancia a los satélites que reci-be, dato que, por sí solo, notiene utilidad alguna. Pero si,además, se conoce la posicióndel satélite en el espaciorespecto del centro de la masade la Tierra, mediante una trans-formación trigonométrica queejecuta el ordenador del recep-tor puede situarse la posicióndel punto sobre la superficie delglobo. Repitiendo este mismoproceso para varios satélites(mínimo tres, para longitud ylatitud) se obtiene la posicióndel receptor con una precisiónsuficiente para la navegación devehículos. El usuario se limita aleer los datos de longitud y lati-tud mediante un protocolo ade-cuado; el más difundido es elNMEA, aunque existen otros.

El protocolo NMEAEl protocolo NMEA

Prácticamente, cada construc-tor (SIRF, Garmin, Rockwell,Trimble) ha desarrollado su pro-pio protocolo de comunicacióntratando de optimizar las presta-ciones del aparato. Segura-mente el más difundido es elNMEA0183, que es utilizado eneste circuito. En la webwwwwww.nmea.org.nmea.org (NMEA, Natio-nal Marine Electronic Associa-tion) puede obtenerse muchainformación sobre este protoco-lo En este proyecto sólo se utili-za una "secuencia", que escomo se denomina a cada unode los datos enviados por elreceptor, la llamada GPRMC,que es la más completa de lasfrases referentes a la obtenciónde la posición geográfica.Antiguamente, los receptoresentregaban los datos por unalínea RS232 a 4.800 b.p.s., perohoy en día se utiliza interfazUSB, Bluetooth, a infrarrojos,etc. Como todas las frases

NMEA, la GPRMC comienzacon el carácter $ y termina conel CR (Carriage Return) o LF(Line Feed); además, cadafrase se identifica con un prefijoadecuado. Como el NMEA seutiliza también en otros disposi-tivos, el prefijo indica la catego-ría (GP = Global PositioningSystem receiver; LC = Loran-Creceiver; OM = Omega Naviga-tion receiver; II = IntegratedInstrumentation). Nuestra frasecomienza por GP (dispositivoGPS) y prosigue con RMC(Recommended Minimum spe-cific GPS/TRANSIT data) y estáformada por varios camposseparados por una coma. Aldesarrollar un sofware de inter-pretación, el usuario debe recor-dar que, en realidad, el tren dedatos no tiene una longitud fija yque, en algunas condiciones,pueden faltar ciertos campos.Pero las comas marcan los lími-tes de éstos, aunque no conten-gan información. Así, se ha pre-visto que la referencia para laextracción de los campos seráel signo delimitador. Con estaprecaución se facilita la adapta-ción del firmware a otros tiposde receptor. Al final de cadafrase se coloca un asteriscoseguido de un "checksum" (unOR exclusivo de 8 bits de todoslos caracteres que la forman)que permite detectar cualquiererror de transmisión. Suele utili-zarse con conexiones menosestables que la RS232 (Infra-rrojos, GPRS, etc.) para asegu-

rar la integridad de los datostransmitidos. En la tabla 1 sereproduce la configuración de lafrase; el ejemplo del listado 1muestra cómo se presenta unasesión típica de generación dedatos por la puerta serie.Obsérvese que en este caso losdatos serán nulos, ya que el flagdel segundo campo es "V".Resultaría que la medida no sepodría haber completado conéxito analizando la frase conprefijo GPGSA (GPS DOP andSatellites Active): la secuenciacorrespondiente permite esta-blecer la precisión de la medidaa través de la DOP (Dilution ofPrecision) y, sobre todo, cono-cer el número ID de los satélitescuya señal se está recibiendo.El receptor, al no haber conse-guido captar al menos tres saté-lites, no puede determinar suposición con suficiente preci-sión. En el segundo ejemplo(listado 2) se observa la secuen-cia desde el momento en que elreceptor establece correcta-mente las conexiones. El flagsobre la RMC ha pasado a A(Activo) y los campos corres-pondientes indican los datosreales de latitud y longitud:45°+38,5059' Norte y 13°46,8248' Este. Todos los softwa-res cartográficos representan laposición directamente en gra-dos, mientras que los recepto-res se expresan en grados yminutos. Así, resulta que la posi-ción real es 45,64176 gradosNorte y 13,78041 grados Este.

4 n.14 - In Electronics

>

Fig. 3

n.14 - In Electronics 5

>

Esquema eléctrico

En la secuencia GSA se indicaque el sistema ha comunicadocon tres satélites, siendo susnúmeros identificativos 09, 18 y05. Cada satélite dispone deuna identificación única, y cuan-do deben sustituirse, el nuevo lahereda. Sin el ID, el receptor nopodría identificar los satékitesde donde proceden los mensa-jes que modulan la portadora L1(ver figura 2). La potencia de laseñal es tal que garantiza un

campo de -160 dBW en lasuperficie de la Tierra. Además,existe una correlación entre laelevación del satélite sobre elhorizonte y la intensidad de laseñal recibida, como muestra ella figura 3. El lector puede com-probar las especificaciones desensibilidad de su receptor.

El circuitoEl circuito

El esquema eléctrico es bastan-

te sencillo, muy similar a los uti-lizados para interfaciar la SD-Card en proyectos precedentes.El centro del sistema es elmicrocontrolador PIC16F876programado, que funciona conuna frecuencia de reloj de 20MHz. El receptor GPS es unBR305, compatible conNMEA0283 v2.2, dotado deinterfaz RS232 y conector SP/2,a través del cual recibe la ali-mentación (el BR305 se usa con

8 n.14 - In Electronics

d i a g r a m a d i a g r a m a D E m o n tm o n t a j ea j e

LISTA DE COMPONENTES:

R1: 0,1 ohm 1 W

R2: 1,2 kohm

R3, R4: 4,7 kohm

R5: 120 ohm

R6÷R8: 330 ohm

R9÷R12: 4,7 kohm

R13: 10 kohm

R14: 2,2 kohm

R15÷R17: 1 kohm

C1, C2, C4: 470 µF 35 VL electrolítico

C3, C6, C8, C9: 100 nF multicapa

C5: 100 µF 35 VL electrolítico

C7: 470 µF 16 VL electrolítico

C10: 470 µF 16 VL electrolítico

C11, C14: 100 nF multicapa

C12: 470 µF 16 VL electrolítico

C13: 220 µF 25 VL electrolítico

C15, C16: 10 pF cerámico

C17÷C20: 1 µF 100 VL electrolítico

C21: 470 nF 63 VL poliéster paso 5

Q1: cuarzo 20 MHz

D1: 1N4007

D2: 1N5819

D3: 1N4007

L1: bobina 470 µH

L2: bobina 1 µH

S1: sensor vapor Hg

U1: MC33063A

U2: ICL7673

U3: FM24C64

U4: MAX232

U5: PIC16F876 (MF597)

U6: LM1086-3.3

T1: BD136

LD1: led 3 mm rojo

LD2: led 3 mm verde

LD3: led 3 mm amarillo

Varios:

- Regleta de 2 polos;

- Conmut.desliz. 90°, circ.impr. (2 ud.);

- Conector SD-CARD;

- Conector PS/2;

- Jumper;

- Zócalo 4+4 (3 ud.);

- Zócalo 8+8;

- Zócalo 14+14;

- Tornillo 10 mm 3 MA, cab. red. (2 ud.);

- Tuerca MA;

- Clip 9 V;

- Portapilas para 4 R6 (PIL-68);

- Circuito impreso.

trabajo de la SD. El efecto es elmismo si se lleva el conmutadorSW2 a la posición REC OFF,momento en que el microcontro-lador lee el cero lógico en lalínea RA1. El conmutador inser-tado antes del ICL7673 permiteelegir entre cargar o no las pilascuando haya tensión de entra-da; así, se se van a utilizar pilasnormales (no recargables) elpuente debe quedar abierto; sise van a utilizar baterías recar-gables para ejecutar un "apaga-do blando" en caso de caída dela alimentación, debe quedarcerrado. El regulador U6, quealimenta la lógica, queda detrásdel conmutador para evitar "sor-presas" a la SD-Card: efectiva-mente, si éste se situara aguasabajo de U6, una caída de latensión principal daría lugar aun salto de tensión al entrar enacción la batería (las hay de 3,6ó 4,8 V) que bloquearía el pro-ceso de lectura y la pérdida dedatos en la SD-Card: estos ele-mentos soportan muy mal vari-ciones de tensión de pocasdécimas de voltio. El aplicar latensión principal a PWR (SW1en posición ON), PBAR de U2está a nivel bajo. Además, RA1debe encontrarse a nivel alto ySW2 en la posición REC-ON, lo

n.14 - In Electronics 7

NombreCampo

Descripción

RIT Contiene el número de segundos entre 2 registros sucesivos.

FIXSi es igual a 0 sólo se registran los puntos de pausa del vehículo; siestá a 1 se registran todos los puntos de posición medidos.

SENSMOVSi ee igual a 1 se habilita la detección del movimiento del vehículo; sino, el sistema no toma en cuenta el sensor de movimiento.

TDOPOMOVEstablece el tiempo en segundos durante el cual el sistema seguiráregistrando la posición tras haber detectado un movimiento.

ANTGPSSi es igual a 1, se apagará el receptor GPS tras un tiempo de pausade duración dada.

TOFFGPSEstablece el tiempo, en segundos, de la pausa tras la cual se apaga-rá el receptor GPS, si no se produce un nuevo movimiento. .

Tabla 2

Fig. 4

menor que VS (por ejemplo,cor-tar la electricidad del vehículo)conmuta y envía a VO la tensiónVS, haciendo funcionar el restode la lógica con la BATT1. Estaconmutación es muy rápida y,gracias a la carga residual(efecto póstumo) de los electro-líticos C10 y C12, el efecto del

el cierre de la FAT. Recuérdeseque una falta de cierre de la FATexigiría reconstruir los sectoresde FAT y ROOT con un hex-edi-tor (tipo Win-HEX); si no, nopodría accederse a los datosdesde Windows. U2 va contro-lando las tensiones de VS y VPy envía la más elevada a lapatilla VO; cuando VP se hace

relevo de alimentación ni senota. La patilla PBAR estáconectada a la línea RB2 delPIC para informarle de quiénestá alimentando al circuito:cuando VO está conectado aVP (alimentación principal), estáa cero. Cuanto el PIC detecta unnivel alto apaga el receptor GPSpara no gastar pilas y termina el

portátiles o Notebook). Un parde reguladores integrados pro-ducen 6,5 V para el BR305 y 3,3V para el resto del circuito. Seha adoptado esta tensión paraque la lógica de control puedadialogar con el soporte dememoria sin intercalar un adap-tador de nivel lógico (las SD-Card van de 2,7 a 3,6 V). Elregulador principal es unMC34063, una fuente conmuta-da completa que entrega 6,5 Ven c.c.: su amplia tolerancia detensión de entrada permiteusarlo con pilas o alimentadopor la batería del vehículo (12 ó24 V). Para los 3,3 V se haceuso de dos integrados: el prime-ro es un tradicional LM1086(U6) que entrega 3,3 V, y unconmutador ICL7673 (U2), quemantiene alimentado el circuitoincluso si falla la tensión prima-ria durante la grabación, permi-tiendo la finalización de la SD y

ción. Se utiliza un siste-ma de gestión de la SD-Card que permite laescritura sin necesidadde un buffer externo, loque permite optimizarlas operaciones deescritura en una memo-ria temporal rápida sininterferir el funciona-miento del circuito. Seutilizan tres leds: rojo,amarillo y verde, queindican al usuario elestado del circuito (verrecuadro relativo a laconfiguración y el funcio-namiento). De la patillaRA4 "cuelga" un trans-istor PNP como interrup-tor estático que controlael encendido del recep-

tor GPS: con la línea en estadoalto T4 está al corte, y a nivelnajo pasa a conducir, llevando6,2 V al conector PS/2 para elreceptor GPS. Para ahorrarenergía, el firmware prevé apa-gar el receptor en cuanto termi-

que lleva a masa el negativo dela batería. Si, durante el funcio-namiento, se cambia SW2 aREC-OFF, termina la grabacióny se cierra la FAT (generaciónde cadenas de clústers y cierrede archivos); recuérdese que alestar cancelada la alimentaciónpor baterías, el circuito no tieneayuda contra la caída de la ali-mentación principal. SW2 tienemás funciones: una, extraer laSD sin cortar la alimentación(por ejemplo, si el registrador vaa bordo de un vehículo) y otra,establecer la conexión con lapuerta serie de un PC por elconector PS/2 del circuito (al ali-mentar el circuito con baterías,es decir, sin alimentación princi-pal, el microcontrolador encuen-tra RB2 a nivel alto y espera 5segundos a recibir del PC losparámetros de configuración; sino llegan, carga los memoriza-dos la última vez). La comunica-ción PIC-GPS pasa por unMAX232 que convierte la señalRS232 en impulsos TTL de 3,6voltios y viceversa. Esta interfazse utiliza tanto para la grabación

de secuencias NMEA comopara la configuración del dispo-sitivo desde el PC. Para laconexión exterior se utiliza tam-bién el PS/2, por lo que se pre-cisa un cable adaptador PS/2 aRS232 para conectar el circuito

8 n.14 - In Electronics

>

LEDG = 1

HSERIN 5000,LEGGI,[WAIT("TAU")]

HSERIN [DEC4 RIT, DEC1 FIX, DEC1 SENSMOV, DEC4 TDOPOMOV, DEC1 ANTGPS, DEC4 TOFFGPS]

I2CWRITE SDA,SCL,CTL,$0800,[RIT.HIGHBYTE]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0801,[RIT.LOWBYTE]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0802,[FIX]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0803,[SENSMOV]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0804,[TDOPOMOV.HIGHBYTE]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0805,[TDOPOMOV.LOWBYTE]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0806,[ANTGPS]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0807,[TOFFGPS.HIGHBYTE]

PAUSE 10

I2CWRITE SDA,SCL,CTL,$0808,[TOFFGPS.LOWBYTE]

PAUSE 10

HSEROUT[79,75]

G O TO AVANTI

LEGGI:

I2CREAD SDA,SCL,CTL,$0800,[RIT.HIGHBYTE]

I2CREAD SDA,SCL,CTL,$0801,[RIT.LOWBYTE]

I2CREAD SDA,SCL,CTL,$0802,[FIX]

I2CREAD SDA,SCL,CTL,$0803,[SENSMOV]

I2CREAD SDA,SCL,CTL,$0804,[TDOPOMOV.HIGHBYTE]

I2CREAD SDA,SCL,CTL,$0805,[TDOPOMOV.LOWBYTE]

I2CREAD SDA,SCL,CTL,$0806,[ANTGPS]

I2CREAD SDA,SCL,CTL,$0807,[TOFFGPS.HIGHBYTE]

I2CREAD SDA,SCL,CTL,$0808,[TOFFGPS.LOWBYTE]

AVANTI:

LEDG = 0

Espera la secuencia de control "TAU". Si no

llega en 5 segundos, salta a la etiqueta

LEGGI. Si llega, pasa a la instrucción siguien-

te, donde dá valor a las variables correspon-

dientes en base a los parámetros recibidos.

El PIC envía la línea "OK" tras recibir del PC

la configuración a implantar.

Lectura en la EEPROM de los parámetros de

configuración memorizados.

Escribe en la EEPROM los parámetros recibi-

dos.

X = 0 �Poner índice a ceroHSERIN [LAT[X]] ‘Leer carácter del campo LATITUDINEWHILE LAT[X] != "," �Leer caracteres hasta la comaIF LAT[X]!="." THEN ‘Eliminar el punto decimalX = X + 1

ENDIF

HSERIN [LAT[X]]

W E N D

LISTA D O 4

LISTA D O 3

a la puerta DB9 del PC. Laspatillas de comunicación delPIC son los terminales RC6 yRC7, lo que permite aprovecharel módulo UART interno, evitan-do recurrir a una emulación delUART vía firmware. Las patillasRC1 y RC0 conectan con laslíneas de reloj y de datos parauna EEPROM 24LC64, que seutiliza únicamente para memori-zar los sectores clave de la FATy los parámetros de configura-

na el cierre del archivo de gra-bación, y también durante laspausas prolongadas si se hahabilitado el parámetro corre-spondiente al realizar la configu-ración desde el PC.Recuérdese que los receptoresGPS suelen tener un tiempo decalentamiento (warm-up) que sededica a la recepción del alma-naque; en el caso del BR305 esde 8 a 48 segundos. Por tanto,resulta obvio que, en aplicacio-

nes de seguridad y/o segui-miento, es preferible que el GPSpermanezca siempre activo. Lomás práctico es utilizar un sen-sor de movimiento que al "sen-tir" vibraciones cierre sus termi-nales, poniendo RA0 a nivelalto, arrancando el GPS y lagrabación de los datos. Al dejarde vibrar este sensor, el sistemase desconecta, evitando que elconsumo denuncie su presen-cia. En el firmware se advierteque, para verificar el movimien-to efectivo del vehículo no selee el nivel alto o bajo de lalínea: se lee la diferencia depotencial en diferentes momen-tos y se comparan las variacio-nes: si los niveles son iguales,se considera que el vehículoestá detenido y no vale la penagrabar repetidamente la mismaposición. El método elegido per-mite usar diferentes sensores,no necesariamente el de mercu-rio utilizado en el presente pro-yecto. Para el interfaciado conla SD se aplica la modalidadSP1 y dos líneas de datos (unade entrada y otra de salida) conlos habituales resistores de pull-up; la transfer-rate es más queadecuada para esta aplicación.El diseño del software se simpli-

fica con el uso de las instruccio-nes SHIFTIN y SHIFTOUT queofrece el PICBasic. Todo el cir-cuito se alimenta con una ten-sión comprendida entre 12 y 30V en c.c., con lo que puedeinstalarse a bordo de cualquiertipo de vehículo. Si no se nece-sita ocultarlo puede dotárselede un conector para el encende-dor de a bordo. El consumo esde 70 mA con el receptor GPSdesconectado y 150 mA en gra-bación. Las 4 baterías tampónson originalmente del tipo R6recargables de 1,2 V/800 mA.h.

El firmware El firmware

La lógica que gestiona el siste-ma suma casi mil líneas: porfalta de espacio no se publica

completa. Sin embargo, a títuloinformativo, se incluyen algunasde las rutinas más interesantes,dedicando más atención al soft-ware de configuración y a suintegración con el programa denavegación, ya de por síbastante voluminosos por lasmúltiples posibilidades que ofre-cen. La primera fase es el inter-faciado con el PC: los datos seagrupan en un paquete de 18bytes, entre los que se encuen-tra un prefijo de control de 3bytes. Procedentes de la puertaserie del PC, se recojen en laEEPROM del PIC a partir de ladirección 0800h; tras 5 segun-dos después de dar la alimenta-ción (siempre que SW2 esté enla posición REC-ON y la alimen-tación provenga de la batería),

n.14 - In Electronics 9

>

E L C A B L E s e r i e -s e r i e - pp s / 2s / 2

Esquema de conexión del cable para conectar la unidad al PC durante la cacte-rización; el conector del extremo SERIAL es un DB-9, pero puede utilizarse un

DB-25 a condición de intercambiar TXD con RXD y de conectar la masa al contacto 5 en lugar de al 7 (señal GND). Al lado izquierdo se sitúa un conec-

tor miniDin de 6 polos.

DB-9 PS/2

1 2

4

65

3

Para grabar el

recorrido com-

pleto de un vehí-

culo, puede escon-

derse el equipo

grabador en el

maletero, pasando el

cable de alimentación bajo la tapicería y situando el

receptor GPS al pie y muy cerca del cristal posterior.

Conviene instalar el circuito en un contenedor que lo

proteja de golpes , polvo, humedad, etc.

el PIC espera recibir los 3caracteres de control formadospor la secuencia de letras TAU.Si no se reciben, se dirige alsector correspondiente de laEEPROM y carga en las varia-bles adecuadas los parámetrosmemorizados en la última confi-guración; si la EEPROM estácargada con el archivo binariooriginal, se cargan los paráme-tros predefinidos. La tabla 2muestra la secuencia resultan-te. Por otra parte, la figura 4muestra la forma en que se pre-senta la secuencia predefinidaque envía el programa de confi-guración, vista desde la puertaserie: como puede verse, origi-nalmente se prevé un tiempo deconsulta (polling) de un segun-do, así como la deshabilitacióndel detector de movimiento delvehículo y la deshabilitación delapagado del receptor GPS. Enel listado 3 se detalla la secuen-cia de instrucciones PICBasicnecesaria para implementaresta primera fase. Se ha utiliza-do la instrucción HSERIN en

de cierre de la operación y ter-mina el envío cíclico. Sin estemensaje de ACK, el programadel PC continúa enviando lasecuencia unos diez segundosmás y luego señala el error deTimeout por falta de respuestadel dispositivo. A cada byte seha aplicado una pausa de esta-bilización de 10 milisegundos,para que la operación puedaconcluir correctamente. Para larecepción de las secuenciasNMEA procedentes del receptorGPS se utiliza la misma instruc-ción HSERIN con la opciónWAIT. Por el conector PS/2 sereciben diversas "frases"NMEA, de entre las cuales sólodebe extraerse la necesariapara calcular la posición que seinicia con $GPRMC (Recom-mended Minimun specificGPS/TRANSIT data). Los cam-pos van separados por comas yla longitud y la latitud se envíanen grados y minutos pero, comose van a guardar en gradosdecimales, se necesita una con-versión rápida. En el listado 5 semuestran las instrucciones quehacen posible la extracción dela latitud. Todas las coordena-das se insertan en vectores indi-ciados mediante la variable X.El sistema prevé pasar de un

10 n.14 - In Electronics

>

IF LAT[0] = "," THEN

SHIFTOUT SDI,SCK,MSBFIRST,["+"]

FOR X = 0 TO 1

SHIFTOUT SDI,SCK,MSBFIRST,["0"]

NEXT X

SHIFTOUT SDI,SCK,MSBFIRST,["."]

FOR X = 2 TO 6

SHIFTOUT SDI,SCK,MSBFIRST,["0"]

NEXT X

ELSE

IF EMI = "N" THEN

SHIFTOUT SDI,SCK,MSBFIRST,["+"]

ELSE

SHIFTOUT SDI,SCK,MSBFIRST,["-"]

ENDIF

FOR X = 0 TO 1

SHIFTOUT SDI,SCK,MSBFIRST,[LAT[X]]

NEXT X

SHIFTOUT SDI,SCK,MSBFIRST,["."]

X = 3

CONV = 0

RES = LAT[2] - $30

WHILE X <= 7

CONV = (RES * 10 + (LAT[X] - $30)) / 6

RES = (RES * 10 + (LAT[X] - $30)) // 6

CONV = CONV + $30

SHIFTOUT SDI,SCK,MSBFIRST,[CONV]

X = X + 1

W E N D

ENDIF

SHIFTOUT SDI,SCK,MSBFIRST,[","]

LISTA D O 5

Si el primer carácter es una coma, el

campo no se transmite, de modo que lo

ponemos todo a cero.

Los minutos se convierten en décimas

de grado.

Si el campo hemisferio contiene una N

(NORTE), el valor de la latitud se consi-

dera positivo.

La parte entera del campo latitud se copia

tal como se ha recibido.

lugar de la habitual SERIN, yaque el PIC está conectado a lapuerta serie por las patillas RC5y RC6, que son las líneas RX yTC del módulo UART integradoen el PIC16F876. La sintaxisque permite poner en espera elPIC se deduce del listado 4. ElPIC espera la llegada de lasecuencia de control compren-dida entre comillas; si no la reci-be en los milisegundos que secitan en el Timeout, salta a la

DirecciónInicial (HEX)

DirecciónFinal (HEX)

Descripción

0000 01FF Sectores de BOOT en Card de 64MB

0200 03FF Sectores de BOOT en Card de 128MB

0400 05FF ROOT DIRECTORY

0600 07FF FAT

0800 09FF PARÁMETROS DE CONFIGURACIÓN

Tabla 3

etiqueta (label) correspondiente.Si la operación llega a buen fin,el microcontrolador, tras recibirlos parámetros de configura-ción, envía al PC la línea OK; elprograma muestra el mensaje

campo a otro al detectar la pre-sencia de la coma; con ello seasegura la transición en el casode campos muy cortos o no pre-sentes. En segundo lugar se eli-mina directamente el punto

decimal, para ejecutar más fácil-mente la conversión. En elcampo se utiliza la coma comocarácter de final de secuencia;así, si el primer carácter es unacoma, el campo no se ha trans-mitido. Un proceso similar tienelugar para registrar en la SD elcampo "latitud", previa conver-sión en grados decimales.Como siempre, la Card debe serpreviamente inicializada y for-mateada. Por convenio, la lati-tud Norte es positiva y la Sur esnegativa: es lo habitual en losprogramas de gestión cartográ-fica en general, y en el Fugawi,en particular. Si el campo noestá presente toda la secuenciaestá a cero. Las primeras doscifras corresponden a la parteentera y se escriben inmediata-mente con la instrucción SHI-FOUT; recuérdese que ésta per-mite transferir los datos hacia laCard en modo serie síncronopor la línea SDI, que en estecaso es RC5, y como reloj laSCK, que corresponde a RC3.Durante la conversión, hay qyeextraer el valor del carácterASCII registrado: por estarazón, para cada cifra se calcu-la la diferencia con 30 hex. Elvalor ASCII de las nuevas cifras

va de 30h para el cero a 39hpara el nueve. La conversión esfácil porque se trata tan sólo dedividir los minutos por 60; se uti-liza la división entera de 16 bitsde PICBasic, que permite obte-ner el resto mediante el opera-dor //. La secuencia termina conel envío de una coma, que sirvede separador para los camposde cada record inscrito en elarchivo de texto de la SD-Card.

La EEPROM La EEPROM

El archivo binario eepgps quese entrega con el kit contiene laimagen a transferir a la memoria24LC64. La tabla 3 esquematizala estructura de la memoriaEEPROM y permite comprendermejor la función; durante lasoperaciones de formateo, laEEPROM, como soporte de laSD-Card, se utiliza como dispo-sitivo de sólo lectura: contienetodos los sectores clave (BOOT,FAT y ROOT) para gestionar elsistema de archivos FAT16. Seha utilizado un número de clús-ters equivalente a cuatro secto-res de 512 bytes, igual que enproyectos precedentes. Estopermite la gestión adecuada de“cortes” de la SD-Card de hasta

128 MB, aunque en este pro-yecto se utiliza una Card de sólo64 MB, ya que no se necesitamás capacidad. El único sectorque se reescribe es el que seinicia en la dirección 0800 hex, yesto tiene lugar cada vez quedesde el PC se envía unasecuencia de configuración.

Para completar la descripcióndel proyecto sólo falta conocerel software y la integración conel programa de gestión carto-gráfica Fugawi; la dimensióntotal supera considerablementela de un Artículo del Mes nor-mal, por lo que el mes próximopublicaremos una segundaentrega en la que ofreceremos anuestros lectores el resto delproyecto, dedicando considera-ble atención a diferentes confi-guraciones del dispositivo yexplicando la puesta en marchadel sistema. En efecto: modifi-cando el tiempo de consulta(polling), el sensor de movi-miento o regulando el apagadodel receptor, el sistema puedepersonalizarse para adaptarlode forma óptima a las exigen-cias de cada aplicación especí-fica, en cualquier ámbito.

n.14 - In Electronics 11

Estos materiales pueden adquirirse en: IberFutura, S.L., Passatge Gomis, 6, 08023 Barcelona Tel: 934 188 971 ~ Fax: 094 187 975 ~ http://www.iberfuturanet.es

MATERIALDisponibilidad del

El proyecto del registrador de recorridos GPS está disponible en kit paramontar (Cód. FT597K) al precio de Eur 58,00. El kit comprende la placa decircuito impreso taladrada y serigrafiada, el microcontrolador programado ytodos los componentes necesarios. No incluye el receptor GPS (Cód. BR305,Eur 98,00) ni la SD-Card. Todos los precios incluyen el IVA.