SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 1        EJERCICIO...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 2         0.9     ...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 3ALGORITMO DE LA S...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 4CÓDIGO DEL PROGRA...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 5; PANTALLA DE INF...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 6          LDI    ...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 7Para las pruebas ...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 8Por esto, el UTM ...
SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS                               Página 9La transición del...
Próxima SlideShare
Cargando en…5
×

Ejercicio 09 Serie

1.363 visualizaciones

Publicado el

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

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.363
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
225
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Ejercicio 09 Serie

  1. 1. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 1 EJERCICIO QUE UTILIZA LAS INTERRUPCIONES DEL USART PARA RECIBIR LA INFORMACIÓN DE UN RECEPTOR GPSPrograma para el microcontrolador ATmega164P que permita recibir la informaciónque 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.ANÁLISIS DE LA INFORMACIÓN QUE ENTREGA EL RECEPTOR GPS:El receptor GPS reciben señales provenientes de los satélites que conforman el sistema,las procesan para determinar la posición geográfica en que se encuentra y entrega esainformación mediante tramas NMEA (National Marine Electronics Association) que setransmiten en modo asincrónico a una velocidad de 4800 baudios.Tramas entregadas por el receptor GPS cuando está enganchado a los satélites:$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*5EDESCRIPCIÓN 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 123519 Fix taken at 12:35:19 UTC 4807.038,N Latitude 48 deg 07.038 N 01131.000,E Longitude 11 deg 31.000 E 1 Fix quality: 0 = Invalid 1 = GPS fix (SPS) 2 = DGPS fix 3 = PPS fix 4 = Real Time Kinematic 5 = Float RTK 6 = Estimated (dead reckoning) (2.3 feature) 7 = Manual input mode 8 = Simulation mode 08 Number of satellites being trackedIng. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  2. 2. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 2 0.9 Horizontal dilution of position 545.4,M Altitude, Meters, above mean sea level 46.9,M Height 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 fix 2 = 2D fix 3 = 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 08 Number of satellites in view 01 Satellite PRN number 40 Elevation, degrees 083 Azimuth, degrees 46 SNR - higher is better For 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 123519 Fix taken at 12:35:19 UTC A Status A=active or V=Void. 4807.038,N Latitude 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 230394 Date - 23rd of March 1994 003.1,W Magnetic Variation *6A The checksum data, always begins with *Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  3. 3. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 3ALGORITMO DE LA SOLUCIÓN:La solución se divide entre el programa principal y la rutina de servicio a la interrupciónde la recepción 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 deinformación, 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 dígitos 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 interrupción por recepción 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 símbolo “$”, a partir de estaidentificación la rutina almacena el dato recibido e incrementa el Puntero X y elcontador.ALGORITMO PARA CORREGIR LOS DÍGITOS DE LAS HORAS UTC AHORAS LOCALES DEL ECUADOR CONTINENTAL VALORES EN DECIMAL CORRECCIÓN DE HEXADECIMAL UTC LOCAL UTC UTC-5 UTC-5+24 00 19 $00 $FB $13 01 20 $01 $FC $14 02 21 $02 $FD $15 03 22 $03 $FE $16 04 23 $04 $FF $17 05 00 $05 $00 no necesita 06 01 $06 $01 no necesita 07 02 $07 $02 no necesita … … … … … … … … … … … … … … … 21 16 $15 $10 no necesita 22 17 $16 $11 no necesita 23 18 $17 $12 no necesitaIng. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  4. 4. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 4CÓDIGO DEL PROGRAMA PRINCIPAL Y DE LA RUTINA DEINTERRUPCIÓN.NOLIST.INCLUDE "m164pdef.inc".LIST;.DEF AUX1 = R16.DEF AUX2 = R17.DEF AUX3 = R18.DEF AUXI = R19.DEF NCHR = R20;.DSEGTRAMA: .BYTE 3IDENT: .BYTE 4UTC: .BYTE 2MMSS: .BYTE 4;.CSEG JMP PROGP.ORG 0x28 ; INTERRUPCIÓN POR DATOS RECIBIDOS RJMP RECIBE;PROGP: LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1; CONFIGURACIÓN DEL USART 0; PROGRAMACIÓN DEL REGISTRO DE CONTROL C; UMSEL01:00=00 TRABAJAR EN EL MODO ASINCRÓNICO; UPM01:00=00 DESHABILITAR LA PARIDAD; USBS0=1 DOS BITS DE PARADA; UCSZ01:00=11 TAMAÑO DEL CARACTER DE 8 BITS; UCPOL0=0 POLARIDAD DEL RELOJ NO SE USA EN ASINCRÓNICO LDI AUX1,0B00000110 STS UCSR0C,AUX1; PROGRAMACIÓN DEL REGISTRO DE CONTROL B; RXCIE0=1 HABILITA LAS INTERRUPCIONES EN LA RECEPCIÓN; TXCIE0=0 DESHABILITA LAS INTERRUPCIONES EN LA TRANSMISIÓN; UDRIE0=0 DESHABILITA LAS INTERRUPCIONES DATOS VACÍO; RXEN0=1 HABILITA LA RECEPCIÓN; TXEN0=1 HABILITA LA TRANSMISIÓN; UCSZ02=0 TAMAÑO DEL CARACTER DE 8 BITS; RXB80=0 NOVENO BIT DE LA RECEPCIÓN; TXB80=0 NOVENO BIT DE LA TRANSMISIÓN LDI AUX1,0B10011000 STS UCSR0B,AUX1; PROGRAMACIÓN DE LA VELOCIDAD DE TRANSMISIÓN; CUATR0 BITS RESERVADOS EN 0000; UBRR011:8=0000 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,0B00000000 STS UBRR0H,AUX1; UBRR07:0 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,12 ;BR=4800 CON U2X0=0 STS UBRR0L,AUX1; INICIALIZACIÓN DEL LCD RCALL LCDRST; HABILITACIÓN INTERRUPCIONES GLOBALES SEIIng. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  5. 5. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 5; PANTALLA DE INFORMACIÓN LDI ZL,LOW(TEXT1<<1) LDI ZH,HIGH(TEXT1<<1) RCALL WRTMSJ RCALL OFFCUR; ESPERA PARA QUE LLEGUE LA TRAMA $GPRMCNUEVO: LDI XL,LOW(TRAMA) LDI XH,HIGH(TRAMA) CLR NCHRWAIT: CPI NCHR,13 BRNE WAIT LDS AUX1,IDENT CPI AUX1,R BRNE NUEVO; ESCRITURA DEL TIEMPO UNIVERSAL CONTROLADO LDI AUX1,45 RCALL POSCUR LDI XL,LOW(UTC) LDI XH,HIGH(UTC) LDI NCHR,6WUTC: LD AUX1,X+ RCALL WRTCHR CPI NCHR,5 BRNE WUTC1 LDI AUX1,: RCALL WRTCHRWUTC1: CPI NCHR,3 BRNE WUTC2 LDI AUX1,: RCALL WRTCHRWUTC2: DEC NCHR BRNE WUTC; CAMBIO DE UTC A LA HORA LOCAL LDI AUX1,72 RCALL POSCUR LDS AUX1,UTC ANDI AUX1,0x0F LDI AUX2,10 MUL AUX1,AUX2 LDS AUX2,UTC+1 ANDI AUX2,0x0F ADD AUX2,R0 SUBI AUX2,5 BRCC A_BCD LDI AUX1,24 ADD AUX2,AUX1A_BCD: CLR AUX1 LDI AUX3,10A_BCD1: SUB AUX2,AUX3 BRCS A_BCD2 INC AUX1 RJMP A_BCD1A_BCD2: ADD AUX2,AUX3; ESCRITURA DE LA HORA LOCAL RCALL WRTDIG MOV AUX1,AUX2 RCALL WRTDIG LDI AUX1,: RCALL WRTCHR LDI XL,LOW(MMSS) LDI XH,HIGH(MMSS)Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  6. 6. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 6 LDI NCHR,4WHL: LD AUX1,X+ RCALL WRTCHR CPI NCHR,3 BRNE WHL1 LDI AUX1,: RCALL WRTCHRWHL1: DEC NCHR BRNE WHL RJMP NUEVO; "01234567890123456789"TEXT1: .DB "INFORMACION OBTENIDA" .DB " DEL RECEPTOR GPS " .DB "UTC= HH:MM:SS cambio" .DB "a HH LOCAL= HH:MM:SS"; RUTINA DE INTERRUPCIÓN POR LLEGADA DE DATOSRECIBE: IN AUXI,SREG PUSH AUXI LDS AUXI,UDR0 CPI NCHR,0 BRNE RECIB1 CPI AUXI,$ BRNE RECIB2RECIB1: ST X+,AUXI INC NCHRRECIB2: POP AUXI OUT SREG,AUXI RETI;.INCLUDE "SUB80CHR.ASM";.EXIT ; FIN DEL MODULO FUENTEPRUEBAS REALIZADASPara poder realizar las pruebas del programa, es necesario construir el circuito de que semuestra a continuación. Conector para el receptor GPSIng. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  7. 7. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 7Para las pruebas se utiliza un receptor GPS de la marca DELUO.La siguiente fotografía muestra el circuito construido, el LCD para mostrar el UTM y laHora Local, el receptor GPS y el adaptador a 110 Vac para la polarización.A continuación se muestran las conexiones realizadas para la operación del equipo.Al inicio de la operación del equipo, el receptor GPS no está enganchado a los satélites,que se comprueba por el parpadeo del LED que tiene incorporado en la parte posterior.Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  8. 8. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 8Por esto, el UTM de las tramas arranca con el valor 000000 y lo que se muestra en elLCD es:Una vez que el receptor GPS se engancha a los satélites, mostrando al LED indicadorencendido sin parpadear. Desde ese instante el UTM es verdadero y lo que se muestraen el LCD es:Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información
  9. 9. SISTEMAS MICROPROCESADOS: Reloj satelital mediante un receptor GPS Página 9La transición del receptor GPS no enganchado a enganchado a los satélites se puedeapreciar en las siguientes pantallas capturadas cuando el Hyper Terminal se conecta alreceptor GPS. Hasta aquí: las tramas no contienen el UTM verdadero Desde aquí: las tramas si contienen el UTM verdadero El receptor GPS ya está enganchado a los satélitesIng. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redesde Información

×