Está en la página 1de 7

DESARROLLO DE UN MODULO PARA UN REAL TIME CLOCK CON SINCRONIZACION A UN GPS

ELENA VALES Universidad Central de Venezuela, Facultad de Ingeniera, Escuela de Ingeniera Elctrica, Caracas, Venezuela.

Resumen
A continuacin se presenta el estudio, desarrollo e implementacin de un mdulo para un Real Time Clock con sincronizacin a un mdulo GPS como trabajo final de la materia Laboratorio de Proyectos de la Escuela de Ingeniera Elctrica mencin Electrnica. El dispositivo lee continuamente el Real Time Clock para tener una cuenta precisa del tiempo, as mismo cada 24 horas se sincroniza al modulo GPS, con esto se tiene un registro preciso del tiempo a partir de una referencia exacta. El dispositivo adems lleva una cuenta de las centsimas de segundo, la cual es sincronizada a travs del RTC (Real Time Clock) y el GPS. El Dispositivo cuenta con interfaces de comunicacin SPI y Serial para el manejo de los perifricos as como una pantalla de cristal liquido (LCD) que permite ver la cuenta del tiempo, la cual est constituida por horas, minutos, segundos, centsimas de segundo; y la fecha: da, mes y ao. El hardware de este modulo est constituido con base en un chip PIC18F4550 de la empresa MICROCHIP, como Maestro de todos los perifricos (RTC y GPS). El RTC utilizado fue un DS1305 el cual es un RTC con comunicacin SPI de la empresa MAXIM. El Modulo GPS utilizado fue un GPS MiniMod de la empresa SPARKFUN el cual tiene al chip MN1010 como receptor base, este ultimo fabricado por Micromodular Technologies.Ademas de esto el modulo requiri el uso de un MAX232 de la empresa MAXIM para realizar verificaciones de cdigo. Palabras Claves: SPI, GPS, Serial, RTC, DS1306, sincronizacin, tiempo, fecha, hora. Pocisioment System) para mantener una misma referencia en todo el sistema. El GPS permitir al RTC comenzar su cuenta con referencia a la hora de los satlites.

INTRODUCCIN
En muchos campos de la vida cotidiana se hace necesario el uso de sistemas de adquisicin de datos, los cuales permiten medir variables y procesarlas con la finalidad de poder tomar decisiones en base a estas variables. As mismo, puede ser necesario, segn el tipo de estudio tener un registro del momento preciso en el que ocurren determinados eventos. En tales ocasiones se utilizan los RTC (Real Time Clock), los cuales son integrados que mantienen una cuenta precisa de la hora y fecha. Los RTC poseen registros en los cuales guarda la fecha y la hora, al leerse estos registros se obtiene la cuenta llevada hasta el momento, al escribir en ellos el RTC continua su cuenta a partir de la referencia escrita. Particularmente, en este proyecto se desea construir un modulo RTC para un sistema de adquisicin de datos usado en estaciones sismolgicas, la funcin del mismo ser mantener actualizada la fecha y hora del sistema. El micro controlador sacara los datos del RTC a travs de un bus SPI (Serial Peripheral Interface). As mismo, por requerirse una cuenta precisa del tiempo (y por la necesidad de medirse otras variables que no son de inters en este proyecto) se usara un GPS (Global

PLANTEAMIENTO DEL PROBLEMA


La construccin de un sistema de adquisicin de datos para estaciones sismolgicas requiere mantener actualizada la hora para registrar la ocurrencia de eventos ssmicos en un lugar determinado. Una vez se registra un evento de inters, es necesario registrar cuando y donde ocurri dicho evento. Un GPS (Global Posicionen System) es un sistema de navegacin satelital que permite determinar con exactitud la posicin de un objeto. Los satlites GPS poseen adems relojes atmicos. Se desea mantener actualizada la hora y fecha de un sistema de adquisicin de datos (hora, minutos, segundos, centsimas de segundo, da del mes, mes, da de la semana y ao) a travs de un modulo RTC el cual est constituido por un integrado RTC y un microcontrolador. As mismo se quiere sincronizar el modulo RTC con un GPS para mantener una referencia

confiable y precisa en todo el sistema. El RTC mantendr una medida precisa del tiempo entre cada periodo de sincronizacin y cuando esta no sea posible.

MARCO TERICO
PROTOCOLO SPI El protocolo SPI (Serial Peripheral Interface) constituye un estndar desarrollado por Motorola para comunicar dispositivos electrnicos ubicados que se encuentran cercanos unos a otros, por lo general en el mismo circuito impreso. SPI establece un enlace serie sincrnico bidireccional, en modo full dplex, y configuracin Maestro-Esclavo. El Maestro es el responsable de iniciar la comunicacin con el resto de los esclavos, los cuales se configuran en diferentes modos de acuerdo al modo trabajo del reloj. SPI establece el uso de 4 seales: - SCK (Serial Clock): Es la seal de reloj, sincroniza el intercambio de datos entre los dispositivos que se estn comunicando. El maestro es el nico que puede generar esta seal. - MOSI (Master Output Slave Input): Informacin que el maestro transmite al esclavo - MISO (Master Input Slave Output): Informacin que el maestro recibe del esclavo - SS (Slave Select): Entrada de seleccin del esclavo, permite indicar a que dispositivo se est dirigiendo el maestro. Asociados al la seal de reloj existen dos aspectos importantes en el bus SPI, la polaridad y la fase, las cuales determinan hasta cuatro modos de trabajo que deben tomarse en cuenta al momento de comunicar dispositivos con este tipo de BUS. Los dispositivos requerirn la existencia de dos parmetros llamados CPOL (Clock Polarity) y CPHA (Clock Phase). Polaridad: La polaridad del reloj est determinada por el estado de la salida SCK cuando el BUS est inactivo; la polaridad positiva implica que SCK estar en estado lgico alto (CPOL=1) y la negativa SCK en estado lgico bajo (CPOL=0). Fase: Este parmetro determina con cual flanco de la seal de reloj ser tomado el dato de las lneas MOSI y MISO. Para CPOL=0, el dato es ledo en el primer flanco de SCK y para CPOL=1 en el segundo flanco de SCK. La lectura del dato no depende de la polaridad del

JUSTIFICACIN
Ante la necesidad de mantener una cuenta precisa del tiempo y una referencia confiable para todo el sistema se plantea la creacin de un modulo RTC con sincronizacin a un GPS. Los Real Time Clock son dispositivos con gran precisin al momento de hacer la cuenta del tiempo, no obstante esta caracterstica depende de la calidad del cristal que se use. El hecho de que en un modulo RTC se pueda contar con un dispositivo de sincronizacin permite mantener una referencia en todo el sistema, la cual es muy confiable debido a que los relojes de los satlites son relojes atmicos. De este modo, la creacin de un modulo que permita llevar una cuenta del tiempo precisa y que cada cierto tiempo se sincronice con un receptor GPS para hacer las correcciones pertinentes a la cuenta llevada por el RTC, mientras no ocurra la sincronizacin la cuenta ser lo suficientemente precisa como para registrarse en caso de la ocurrencia de un evento. Lo presentado es una solucin al problema planteado donde se le da importancia a la precisin de la medida del tiempo.

OBJETIVOS
OBJETIVO GENERAL Desarrollar un Modulo para RTC con sincronizacin a un GPS. OBJETIVOS ESPECFICOS Desarrollar las libreras que permitan comunicar a un dispositivo maestro (C) con el RTC, esta librera debe contener funciones que permitan transformar los datos obtenidos a un formato que facilite su operacin. Disear las libreras para el GPS en las cuales se debe desarrollar las funciones necesarias para transformarlos y as sincronizar el RTC con el GPS. Desarrollar las libreras necesarias para establecer comunicacin con un dispositivo de salida.

reloj, sino el cambio de estado en SCK al inicio de la

transferencia.

Figura 1: Modos de reloj en comunicacin SPI, imagen tomada de la revista uControl no.2 GPS El Sistema de Posicionamiento Global es un sistema de navegacin satelital, el cual a partir de una red de satlite permite conocer la ubicacin exacta de cualquier objeto sobre la superficie terrestre. Su invencin aunque atribuida al gobierno norteamericano se cree es producto de una investigacin en conjunto de los gobiernos franceses y belga. Este sistema fue usado con fines militares hasta el ao 2000 donde el sistema fue abierto a todos los civiles. Esta condicin sin embargo puede ser revertida en caso de algn conflicto blico. El sistema GPS consta de tres partes: los satlites, los receptores y el control terrestre. El sistema se compone de 32 satlites (28 operativos y 4 de respaldo) distribuidos en seis rbitas polares diferentes, situadas a aproximadamente 20000 kilmetros de distancia de la Tierra. Cada satlite da una vuelta a la tierra dos veces cada 24 horas con trayectorias sincronizadas para cubrir toda la superficie del globo y cuyo abastecimiento se lo realiza mediante energa solar. Adems de esto los satlites tienen transmisores codificados de seales de alta frecuencia y relojes de cesio que se atrasan 1s cada 30 mil aos. El control terrestre consiste en 5 estaciones encargadas de enviar seales de control a los satlites, los mantienen en rbita y le indican al transmisor del satlite la informacin o mensajes que deben enviar. Adems de esto las unidades de control terrestre hacen las correcciones necesarias, tales como la desviacin generada a las ondas al atravesar la ionosfera, o la desviacin de la rbita debida a la atraccin por parte de la luna y el sol. Los receptores o usuarios estn conformados por los receptores GPS, los cuales reciben la informacin del satlite y en base a estos datos calculan la posicin mediante la triangulacin. Los receptores para hacer esto requieren decodificar las seales emitidas por el transmisor y procesarlas. Para calcular la posicin el receptor utiliza el tiempo que le lleva a la seal llegar desde el satlite al receptor (esto a travs de una seal de control, una trama enviada despus de la seal de radiofrecuencia) este tiempo lo multiplica por la velocidad de la luz, de manera que si la seal viaja en lnea recta y sin obstculos en su camino, obtendra entonces la distancia exacta del receptor al satlite. No obstante esto no es correcto, ya que las ondas atraviesan la masa gaseosa de la atmosfera y por consiguiente el clculo anterior presenta un error. Para corregirlo los satlites incluyen una memoria en la cual se tienen modelos matemticos usados en el clculo de las distancias y la triangulacin para obtener una medida ms precisa. El modulo GPS que se uso en este proyecto consiste en una antena receptora y un modulo de procesamiento, el cual enva continuamente informacin del satlite a travs de una terminal Tx compatible con los niveles TTL y CMOS. Los datos obtenidos del satlite son separados en mensajes los cuales se muestran en la figura 2.

Figura 2: Cabeceras de los diferentes mensajes enviados serialmente por el modulo GPS Minimod. Tomado de Micromodular Technologies Functional Specification MN1010.
EL REAL TIME CLOCK

El RTC es un integrado capaz de llevar una cuenta precisa del tiempo en sus registros a partir de un cristal oscilador de 32.762 kHz. El chip a utilizar debe permitir una comunicacin con el microcontrolador va SPI (requerimiento de diseo). En tal sentido el DS1306 cumple con este requisito, proporciona la fecha, el mes, el ano, el da de la semana, las horas, los minutos y los segundos, adems posee dos alarmas programables por el usuario. El sistema requiere que se lleve una cuenta de las centsimas de segundo, este dato est presente en los mensajes enviados por el receptor GPS, esta cuenta debe ser llevada por el microcontrolador y ser sincronizada all mismo. Este RTC actualiza el cambio de da, el cambio de fecha en meses, compensacin de ao bisiesto y un respaldo de batera de litio para mantener la hora actualizada cuando no tenga alimentacin el circuito. FUNCIONAMIENTO DEL MODULO De acuerdo a lo anteriormente planteado el desarrollo del modulo requiere la lectura y escritura sobre los registros del RTC, lo cual debe hacerse a travs del protocolo SPI. As mismo es requerida la lectura del puerto serial asincrnico del PIC (UART) para la recepcin de los datos del GPS. El proyecto tambin contempla la cuenta de centsimas de segundo, estas no son llevadas por el RTC (el chip escogido no tiene registros para tal fin), por lo cual esta cuenta es llevada en el PIC. A partir de las tareas anteriormente citadas se tienen entonces las siguientes necesidades: Desarrollo de libreras para el manejo del protocolo SPI. Desarrollo de las libreras para el manejo del RTC. Desarrollo de las funciones que almacenan y procesan los datos provenientes del puerto serial asincrnico. Manejo del timer que llevara la cuenta de las centsimas de segundo. El PIC utilizado utiliza los mismos pines para la recepcin serial y para la salida de datos de SPI (Puerto C pin 7), con esto se hizo necesaria la implementacin del protocolo va software y no va hardware como se encuentra disponible en el integrado. Esta implementacin va software simplemente consiste en una funcin que genera un pulso de reloj en un pin

escogido por el programador (Puerto A pin 2 en esta ocasin), con cada pulso de reloj y en el flanco correspondiente (esta condicin est determinada por el dispositivo esclavo a controlar, el DS1305 establece los modos de trabajo) se hace un corrimiento de datos en el pin de salida. Es importante sealar que esta configuracin del reloj debe considerar adems el estado Activo del reloj, si esta configuracin no se hace compatible con el modo de trabajo del RTC entonces no podr establecerse comunicacin con l. La funcin anteriormente descrita es llamada SPIRW, y se utiliza para leer y escribir bajo el protocolo SPI, cuando se quiera leer el argumento de esta funcin debe ser cero, de este modo se genera el pulso de reloj necesario para recoger la data. Esta funcin es la Base de toda la librera SPI ya que es usada posteriormente en las funciones SPIWrite y SPIRead. Con esto se termina la creacin de la librera SPI, esta ser la base de la librera del RTC, en la cual se desarrollan funciones para leer y escribir en el RTC siguiendo el procedimiento indicado en la hoja de datos del fabricante del DS1305, en el cual debe enviarse va SPI en primer lugar la direccin del registro al cual se quiere accesar y posteriormente la data que se quiera escribir. Si por el contrario se quiere leer un registro se debe entonces enviar la direccin del registro y luego esperar con cada pulso de reloj la data contenida en el mismo. Este procedimiento adems debe contemplar el manejo de un CE (Habilitador), el cual le indicara al RTC que se quiere acceder a sus registros. El RTC maneja sus registros en Cdigo Binario BCD, por lo cual se incluyen dos funciones que permiten transformar los datos de BCD a Hexadecimal y viceversa. De este modo se tienen dos bloques de instrucciones para el Manejo del RTC, uno de ellos permite escribir en los registros, bien sean de control, de alarmas o de data, en tal sentido las Funciones: sincronizar_RTC, init_RTC y Conf_Alarm0 permiten escribir sobre los registros del RTC (labor de sincronizacin), inicializar el RTC (escritura en los registros de control para escoger el formato de los datos) y finalmente control de la Alarma0 (ideada para ser fuente de interrupcin, cuando se activa el nivel de tensin en el pin INT0 del RTC va de un nivel alto a un nivel bajo de tensin). El RTC fue configurado para dar la Hora en formato de 24 horas, se activo la Alarma0 para que ocurriese cada segundo y para probar el prototipo se escribi en los registros una hora y una fecha arbitrarias (de inicializacin). La finalidad de activar la Alarma0 se justifica en la cuenta de centsimas de segundo que realiza el PIC, esta cuenta no puede ir completamente aislada de la cuenta del RTC, de ser as carecera de sentido el hecho de

realizarla, por tal motivo se utiliza una interrupcin externa de periodo un segundo, de este modo cuando el RTC haga un cambio en el registro de los segundos interrumpir al PIC y limpiara la cuenta de centsimas de segundo, de esta manera se garantiza que al menos existe una compensacin de esta cuenta en algn punto. Con esto finaliza la explicacin de la implementacin de un cdigo para el manejo de los dispositivos perifricos SPI y la cuenta del tiempo. No obstante la funcin sincronizar_RTC tiene su principal utilidad o justificacin cuando se sacan datos del GPS y se actualiza el conteo. El GPS como fue explicado anteriormente enva una gran cantidad de mensajes va serial en cada segundo. Estos mensajes tienen un formato especifico y los datos contenido en l estn separados por los caracteres coma (,) tal y como se muestra en la figura 3.

Figura 3: Detalle de uno de los mensajes del modulo GPS Minimod. Tomado de Micromodular Technologies Functional Specification MN1010. De esta manera para sacar datos de un GPS solo se requiere Habilitar la interrupcin de recepcin Serial (este modulo en particular solo se puede recibir del GPS y en ningn momento se puede establecer comunicacin con el), recibir las tramas y separarlas (ntese que el fin de la trama viene dado por los caracteres fin de lnea y retorno de carro LF y CR) detectar cual de las tramas es la de inters. Esto ltimo es muy sencillo, una

vez se recogi una trama se verifica la cabecera de la misma, si coincide con la que se desea se procede a depurar la data, se desactiva la interrupcin serial y se transforman los datos al formato requerido (de ASCII a BCD). La depuracin de la trama consiste en ubicar el dato deseado (contando el numero de comas desde el inicio de la trama hasta la posicin de inters), salvndola en una variable y operndola para darle sentido. La funcin encargada de hacer esta habilitacin de la interrupcin serial y su posterior des habilitacin es llamada a travs de la verificacin de un indicador, el cual determina cuando se Sincronizar el mdulo con el GPS. Al ser esto un modulo para mantener una cuenta exacta y precisa del tiempo el GPS debe actualizarse con cierta periodicidad pero sin caer en una exageracin que haga intil la presencia del RTC, por tal motivo se programo al modulo para que se sincronice una vez al da con el GPS, en tal sentido, el programa principal se encuentra permanentemente leyendo y mostrando los registros del RTC, a su vez se encuentra verificando el indicador que le permitir ejecutar la funcin SincronizarRTC (no se confunda esta funcin con la de la librera del RTC, SincronizarRTC habilita la interrupcin serial y verifica la trama). Este indicador no es otro que la lectura de los registros de horas, minutos y segundos del RTC, en tal sentido cuando los registros coincidan con la hora especificada (arbitrariamente 22h 00min 00seg), entonces se proceder a habilitar la recepcin, lectura y depurado de la trama proveniente del GPS. De este modo un diagrama del programa principal en cuestin es mostrado en la figura 4 En la interrupcin por recepcin serial lo nico que se hace es guardar la trama en un buffer y se verifica a travs de las banderas correspondientes del PIC que no existan errores en la recepcin. El resto de las interrupciones son configuradas antes de que el programa comience la lectura continua del RTC, esto se hace a travs de funciones que colocan los respectivos registros en los valores adecuados para el adecuado funcionamiento, es decir, en el caso de la interrupcin externa aplicada por el RTC en el maestro (PIC) se debe configurar en que flanco se considerara activa la interrupcin, la prioridad de la misma y el estado de su bandera.

CONFIGURACIONES

INTERRUPCIONES

INICIALIZACIONES

LECTURA PERMANENTE DEL RTC

RTC Y CENTESIMAS

CONDICION GPS

LLAMADO A FUNCION GPS

DEPURADO TRAMA

ESCRITURA RTC

Figura 4: Diagrama del programa principal del modulo.

HARDWARE
El modulo desarrollado debe consistir en un PIC 18F4550 conectado va SPI con un RTC DS1305 y conectado serialmente al GPS. La validacin de los cdigos presentados anteriormente se hizo sin el GPS por motivos que son explicados en la seccin Anlisis de Resultados, en lugar del GPS se conecto una computadora a travs de un puerto serial y un integrado MAX232 al pin de recepcin del PIC, en tal sentido la computadora emula el comportamiento del GPS enviando la data a travs del puerto serial a la tasa de

Baudios requerida por el dispositivo GPS real. Es decir se est simulando el comportamiento del GPS. Esta tasa de baudios as como otras caractersticas de la actividad serial son configuradas en la funcin Conf_serial. Al PIC tambin se encuentra conectada una Pantalla LCD que permite la visualizacin del proceso. En tal sentido se presenta en la figura 5 un diagrama de bloques de la disposicin del Hardware en el modulo. Tngase en cuenta que el GPS est siendo emulado por una computadora.

Figura 5: Diagrama de Bloques del Modulo para RTC.


MICROCONTROLADOR En un primer momento se haba planteado la posibilidad de realizar la comunicacin SPI va Hardware, para lo cual era necesario un micro controlador que tuviese puerto SPI. El 18F4550 posee dicho puerto, no obstante este se solapa con el puerto UART, lo cual hace incomodo el manejo de dichos puertos. Para evitar este inconveniente se realizo una comunicacin SPI por software dejndose libre el pin de recepcin serial. ANALISIS DE RESULTADOS. La necesidad de emular el comportamiento del GPS proviene de que el modulo no tiene a su salida Tx (transmisor) el comportamiento esperado: en vez de estar oscilando permanentemente entre valores de 0V y 5V tiene un valor DC de 2.8V a su salida. Para entender dicho comportamiento se remiti a la hoja de datos del fabricante del modulo y se estudi la etapa de entradas y salidas, en la cual se nota la presencia de un circuito regulador. Si este funcionara de manera adecuada simplemente seria una compuerta buffer con un pullup para llevar a niveles lgicos compatibles con TTL y CMOS, el comportamiento observado se corresponde

con un dao en dicho regulador. Las causas de este percance se desconocen pero se asume que un nivel de voltaje no permitido (una entrada de voltaje en un pin que es una salida) fue colocado en dicho terminal trayendo consigo la no operatividad del modulo. Es importante sealar que otro de los problemas encontrados en la realizacin de este modulo fue el hardware relacionado con el bus SPI. El fabricante del RTC en su esquemtico o en su hoja de datos menciona la existencia de resistencias de pull up en los terminales de SPI, sin embargo empricamente se consigui que es menester colocar una resistencia entre Vcc y SDO en el RTC para que la comunicacin de lugar.

en algunas lneas. Se recomienda el uso de debugger o alguna herramienta que permita la bsqueda de este tipo de errores en la creacin de los mdulos. Cambiar el microprocesador usado a uno con menos pines ya que no se uso la herramienta de SPI por hardware. Se requiere no obstante un puerto serie. Acerca del GPS resultara conveniente encontrar un modulo que permita una comunicacin bidireccional, esto hara que el cdigo fuese mucho ms sencillo y practico. As mismo se recomienda la creacin de un modulo adicional para la proteccin de los pines del GPS. Esto con la finalidad de evitar que errores de conexin o eventos espurios causen daos en el GPS

FIRMWARE
El firmware del micro controlador fue explicado en detalle en un apartado anterior, no obstante fue desarrollado en leguaje C18 en el entorno MPLAB. El cual es un compilador de leguaje C que traduce este a lenguaje a ensamblador de este micro controlador y posteriormente lo traduce a leguaje maquina.

REFERENCIAS lvarez, J. A. (2004). Asi Funciona el GPS. Recuperado el 10 de Octubre de 2010, de Asi funciona: http://www.asifunciona.com/electronica/af_gps/af_ gps_1.htm Labrada//, R. T. (Marzo de 2008). El bus SPI. uControl , pgs. 21-24. Maxim. (s.f.). DS1305 Real Time Clock. Microchip. (s.f.). Pic 18F4550. Prez, E. L. (s.f.). Protocolo SPI( Serial Peripherical Interface). Mxico Distrito federal.

RECOMENDACIONES
Aunque la solucin planteada satisface los requerimientos establecidos carece de cierta robustez. La transmisin serial posee herramientas que permiten verificar la validez de la data tal como lo es el check sum, este dato es enviado al final de cada trama y al sumar los valores de la trama con este nmero debera dar cero, ello permite saber si hay data corrupta en el sistema, esta sera una mejora importante en lo presentado en este informe. El protocolo SPI no est del todo estandarizado, esto quiere decir que de un perifrico a otro ciertas caractersticas pueden cambiar a nivel de software y hardware, tal como lo son las resistencias de pullup

También podría gustarte