Ejercicio 09 Serie

Click here to load reader

description

Reloj satelital tomando la información del UTC que entrega un receptor GPS

Transcript of Ejercicio 09 Serie

  • 1. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Pgina 1EJERCICIO QUE UTILIZA LAS INTERRUPCIONES DEL USART PARA RECIBIR LA INFORMACIN DE UN RECEPTOR GPSPrograma para el microcontrolador ATmega164P que permita recibir la informacinque entrega un receptor GPS (Sistema de Posicionamiento Global), con el fin de tomarlos datos del UTC (Tiempo Universal Coordinado) y mostrar en un LCD como la horalocal para el Ecuador continental.ANLISIS DE LA INFORMACIN QUE ENTREGA EL RECEPTOR GPS:El receptor GPS reciben seales provenientes de los satlites que conforman el sistema,las procesan para determinar la posicin geogrfica en que se encuentra y entrega esainformacin mediante tramas NMEA (National Marine Electronics Association) que setransmiten en modo asincrnico a una velocidad de 4800 baudios.Tramas entregadas por el receptor GPS cuando est enganchado a los satlites:$GPGGA,160642,0011.7048,S,07826.1694,W,1,04,03.6,02415.4,M,017.9,M,,*48$GPGSA,A,2,24,28,07,20,,,,,,,,,03.8,03.6,01.0*05$GPGSV,2,1,07,04,58,268,39,07,23,343,49,17,05,221,00,20,20,060,51*7D$GPGSV,2,2,07,24,64,328,49,27,41,172,00,28,47,014,47,,,,*45$GPRMC,160642,A,0011.7048,S,07826.1694,W,000.0,000.0,130205,,,A*77Tramas entregadas por el receptor GPS cuando no est enganchado:$GPGGA,160422,,N,,E,0,00,,,M,,M,,*6E$GPGSA,A,1,,,,,,,,,,,,,,,*1E$GPGSV,1,1,00,,,,,,,,,,,,,,,,*79$GPRMC,160422,V,,N,,E,,,130205,,,N*5EDESCRIPCIN DE LAS TRAMAS$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47Donde: GGA Global Positioning System Fix Data 123519Fix taken at 12:35:19 UTC 4807.038,NLatitude 48 deg 07.038 N 01131.000,E Longitude 11 deg 31.000 E 1 Fix quality: 0 = Invalid1 = GPS fix (SPS)2 = DGPS fix3 = PPS fix4 = Real Time Kinematic5 = Float RTK6 = Estimated (dead reckoning) (2.3 feature)7 = Manual input mode8 = Simulation mode 08Number of satellites being trackedIng. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redesde Informacin

2. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Pgina 2 0.9 Horizontal dilution of position 545.4,M Altitude, Meters, above mean sea level 46.9,MHeight of geoid (mean sea level) above WGS84 ellipsoid (empty field) Time in seconds since last DGPS update (empty field) DGPS station ID number *47 The checksum data, always begins with * $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39Donde: GSA Satellite status A Auto selection of 2D or 3D fix (M = manual) 3 3D fix - values include: 1 = no fix2 = 2D fix3 = 3D fix 04,05...PRNs of satellites used for fix (space for 12) 2.5 PDOP (dilution of precision) 1.3 Horizontal dilution of precision (HDOP) 2.1 Vertical dilution of precision (VDOP) *39 The checksum data, always begins with * $GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75Donde: GSV Satellites in view 2 Number of sentences for full data 1 Sentence 1 of 2 08Number of satellites in view 01Satellite PRN number 40Elevation, degrees 083 Azimuth, degrees 46SNR - higher is betterFor up to 4 satellites per sentence *75 The checksum data, always begins with * $GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6ADonde: RMC Recommended Minimum sentence C 123519Fix taken at 12:35:19 UTC A Status A=active or V=Void. 4807.038,NLatitude 48 deg 07.038 N 01131.000,E Longitude 11 deg 31.000 E 022.4 Speed over the ground in knots 084.4 Track angle in degrees True 230394Date - 23rd of March 1994 003.1,W Magnetic Variation *6A The checksum data, always begins with *Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redesde Informacin 3. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Pgina 3ALGORITMO DE LA SOLUCIN:La solucin se divide entre el programa principal y la rutina de servicio a la interrupcinde la recepcin del USART0.El programa principal que se encarga de inicializar el Puntero del Stack, configurar elUSART0, inicializar el LCD, habilitar las interrupciones y escribir el texto deinformacin, por una sola vez. Luego, entra en un lazo que inicializa el Puntero X y uncontador que sirven para almacenar en la SRAM los 13 primeros caracteres de cadatrama, identifica que sea la trama RMC; cuando no se trata de esa trama desecha lo queest almacenado en la SRAM y vuelve a iniciar el Puntero X y el contador. Cuando si esla trama buscada, escribe el valor del UTC, corrige los dgitos de las Horas para tener laHora Local del Ecuador continental, escribe la Hora Local y regresa al inicio del lazopara esperar una nueva trama.La rutina de servicio a la interrupcin por recepcin de un dato mediante el USART0, seencarga de almacenar en la SRAM los primeros caracteres de cada trama, utilizando elPuntero X; para lo cual, primero identifica el inicio de la trama, esto es: cuando elcontador es igual a cero y el dato que recibe es el smbolo $, a partir de estaidentificacin la rutina almacena el dato recibido e incrementa el Puntero X y elcontador.ALGORITMO PARA CORREGIR LOS DGITOS DE LAS HORAS UTC AHORAS LOCALES DEL ECUADOR CONTINENTAL VALORES EN DECIMALCORRECCIN DE HEXADECIMALUTC LOCALUTC UTC-5 UTC-5+24 0019$00 $FB$13 0120$01 $FC$14 0221$02 $FD$15 0322$03 $FE$16 0423$04 $FF$17 0500$05 $00no necesita 0601$06 $01no necesita 0702$07 $02no necesita 2116$15 $10no necesita 2217$16 $11no necesita 2318$17 $12no necesitaIng. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redesde Informacin 4. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Pgina 4CDIGO DEL PROGRAMAPRINCIPALY DELA RUTINADEINTERRUPCIN.NOLIST.INCLUDE "m164pdef.inc".LIST;.DEFAUX1 = R16.DEFAUX2 = R17.DEFAUX3 = R18.DEFAUXI = R19.DEFNCHR = R20;.DSEGTRAMA: .BYTE 3IDENT: .BYTE 4UTC:.BYTE 2MMSS: .BYTE 4;.CSEGJMP PROGP.ORG0x28; INTERRUPCIN POR DATOS RECIBIDOSRJMPRECIBE;PROGP: LDIAUX1,LOW(RAMEND)OUT SPL,AUX1LDI AUX1,HIGH(RAMEND)OUT SPH,AUX1; CONFIGURACIN DEL USART 0; PROGRAMACIN DEL REGISTRO DE CONTROL C; UMSEL01:00=00 TRABAJAR EN EL MODO ASINCRNICO; UPM01:00=00 DESHABILITAR LA PARIDAD; USBS0=1 DOS BITS DE PARADA; UCSZ01:00=11 TAMAO DEL CARACTER DE 8 BITS; UCPOL0=0 POLARIDAD DEL RELOJ NO SE USA EN ASINCRNICOLDI AUX1,0B00000110STS UCSR0C,AUX1; PROGRAMACIN DEL REGISTRO DE CONTROL B; RXCIE0=1 HABILITA LAS INTERRUPCIONES EN LA RECEPCIN; TXCIE0=0 DESHABILITA LAS INTERRUPCIONES EN LA TRANSMISIN; UDRIE0=0 DESHABILITA LAS INTERRUPCIONES DATOS VACO; RXEN0=1 HABILITA LA RECEPCIN; TXEN0=1 HABILITA LA TRANSMISIN; UCSZ02=0 TAMAO DEL CARACTER DE 8 BITS; RXB80=0 NOVENO BIT DE LA RECEPCIN; TXB80=0 NOVENO BIT DE LA TRANSMISINLDI AUX1,0B10011000STS UCSR0B,AUX1; PROGRAMACIN DE LA VELOCIDAD DE TRANSMISIN; CUATR0 BITS RESERVADOS EN 0000; UBRR011:8=0000 REGISTRO DEL BAUD RATE CON 1 MHzLDI AUX1,0B00000000STS UBRR0H,AUX1; UBRR07:0 REGISTRO DEL BAUD RATE CON 1 MHzLDI AUX1,12 ;BR=4800 CON U2X0=0STS UBRR0L,AUX1; INICIALIZACIN DEL LCDRCALL LCDRST; HABILITACIN INTERRUPCIONES GLOBALESSEIIng. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redesde Informacin 5. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Pgina 5; PANTALLA DE INFORMACINLDI ZL,LOW(TEXT1