Introducción al funcionamiento de un GPS.
Leyendo el anterior reportaje con más calma, me doy cuenta que debería de haber escrito este antes para sentar la base y que el anterior fuera mas fácilmente comprensible. Mis lectivas Disculpas a todos los lectores, usuarios y asiduos de pcdemano.
Vamos al lío
¿Cómo funciona un GPS?
El sistema esta basado en una constelación de satélites que orbitan la tierra cada 12 horas. Los cuales emiten en 2 frecuencias L1 (1575.42 MHz) y L2 (1227.60 MHz. La L1 esta compuesta 2 “subseñales” la señal conocida como P-code ( código protegido) y C/A code ( el código que tiene los datos que nos interesa para situarnos), mientras que la señal L2 solo tiene P-code. Cada satélite emite la señal con un identificador propio para que esta se pueda distinguir de las señales de los demás satélites. Es por eso por lo que el sistema solo usa una frecuencia.
Condensando un poco mas de esto se desprende que, sabemos con cierta precisión, la posición exacta de cada satélite y que este emite en una frecuencia fija y conocida cada cierto tiempo.
Centrémonos en el cacharrito en cuestión, el GPS en sí. Este, lo que hace es captar las señales que emiten estos satélites y medir el tiempo que han tardado en llegar a la tierra, usando la sencilla formula de ( Velocidad x tiempo = Distancia) y sabremos “exactamente” a que distancia estamos de ese satélite.
¿ Y esto como nos sitúa?
Pues si cogéis un lápiz , lo entenderéis mas fácilmente. Escribid 3 puntos y unas líneas
mas abajo otro punto (punto B), acto seguido unid por líneas estos 3 puntos con el punto B.
Si sabemos la posición y distancia entre los 3 puntos y el punto B, sabremos la posición del punto B en cuestión. Pues esto mas o menos es lo que hace un GPS.
Con un lápiz y un papel hemos visto que según el esquema anterior, sabiendo la posición de solo 2 puntos, también sabríamos la posición del punto B.
Pero por desgracia esto no es tan sencillo, y aquí nos encontramos el problema del reloj.
Como hemos visto antes tenemos posiciones conocidas y medimos el tiempo que tardan en llegar a nosotros, si el reloj con el cual medimos “adelanta” creeremos que las líneas de los puntos origen tardan menos en cruzarse y nos dará una posición más cercana a los satélites, sí nuestro reloj “atrasa” la unión de las líneas se alejara del punto Real.
¿Cómo solucionamos esto?
Añadiendo el tercer punto, nuestra posición será mucho más certera puesto que el “error del reloj” será la misma para las 3 líneas. ( A este proceso se le llama triangulación.
Creo que después de esto, se entiende mas o menos como funciona un GPS.
El DGPS es un sistema de apoyo del GPS, el cual corrige ciertos errores de “retraso” que sufre la señal al pasar por la Ionosfera y la estratosfera, mejorando nuestra precisión.
Ya hemos visto, como se comunica nuestro GPS con los satélites, pero aquí en realidad comienza lo realmente interesante, el proceso por el cual nuestro GPS se comunica con nuestro PC o nuestro Pocket PC.
Actualmente, se suelen usar 2 “lenguajes” , el NMEA-0183 , que es el lenguaje estándar y el sirf, “lenguaje binario” utilizado por los chips SiRF ( Muy originales inventando chip pero poco inventando nombres) y es propietario.
Acto seguido y si no os habéis dormido aun, pasare a explicar por encima, en que consisten y como “entender” las interioridades del NMEA.
La definición de NMEA es “ un interfaz eléctrico y un protocolo de datos para comunicación entre instrumentación Marina”
El interfaz eléctrico y mas información podéis encontrarla en www.nmea.org.
Respecto al protocolo de datos , todos los caracteres son enviados en ASCII y la velocidad de transmisión es de 4800 bps , en forma de sentencias las cuales
Comienzan siempre con un $ seguido de 2 letras ( identidad del hablante) , después 3 letras mas ( definición de la sentencia) y por ultimo una serie de datos separados por comas, hasta un máximo de 82 caracteres terminada esta en CR/LF ( Intro pa los amigos).
“identidades del hablante” comúnmente usadas suelen ser :
GP Sistema de GPS , la que os interesa.
LC Loran-C receiver (Receptor Loran-C).
También admite la inclusión de una P justo detrás de la $ , para indicar que es una sentencia propietaria, gestionada por el programa que captura datos.
Pasemos al análisis de sentencias mediante sus 3 letras identificativas :
GGA – Global Positioning System Fix Data ( Datos fijados del GPS)
$GPGGA,074246.158,3609.3304,N,00527.3793,W,1,03,2.2,49.3,M,,,,0000*29
Estas sentencias son usadas para saber nuestras posición.
En este ejemplo , vemos la $ , luego GP , para indicar que viene de un GPS , y luego las 3 letras del título, y luego una serie de datos , que os paso a explicar:
074246.158 hora UTC a la que capturo el “dato fijado”
3609.3304,N Latitud 36 grados 09.3304’ N
00527.3793,W Longitud 5 grados 27.3793 W
1 Calidad de la fijación ( 0 No fijado , 1 fijado , 2 fijado con DGPS)
03 Cantidad de satélites fijados.
2.2 HDOP ( dilución de presunción horizontal)
49.3 Altura respecto al Geoide WGS-84
3 campos vacíos
,,,, Tiempo en segundos desde la ultima corrección DGPS y numero de estación DPGS.
*29 numero de control ( checksum).
RMC – Recommended minimum specific GPS/Transit data
$GPRMC,074749.140,A,3608.7600,N,00527.1263,W,0.00,,*0F
Esta sentencia es la mínima expresión de datos que el receptor GPS esta obligado a enviar para , como mínimo , mantener el flujo de datos
De 4800 pes, y es la sentencia mas estándar y con la información mas justa.
Pasemos a su análisis:
074749.140 Tiempo UTC de la captura de datos.
A Sistema de aviso de navegación (A = OK , V = aviso)
3608.7600,N Latitud
00527.1263,W Longitud.
0.0 velocidad
,, Sistema de control de ruta.
241203 Día de la captura ( ddmmaa día , mes ,año)
,, Variación magnética.
*0F Numero de control (Checksum)
GSA – GPS DOP and active satellites
Sentencia de control de dilución.
$GPGSA,A,3,09,29,18,07,26,,,,,,,,3.4,1.6,3.0*39
A Selección de tipo de fijación 2D o 3D ( A = automático , M = manual)
,3, Numero de satélites.
09,29,18,07,26,,,,,,,, PRN de satélites (numero de identificación)
3.4 PDOP
1.6 HDOP
3.0 VDOP
*39 Numero de control (Checksum)
VTG – Track made good and ground speed
$GPVTG,,T,,M,0.00,N,0.0,K*7E
Esta sentencia vale para que el GPS siga un camino y nos diga a la velocidad a la cual vamos.Se suele usar en los GPS de mano que traen el control de seguimiento por Hardware en vez de en los pockets pc en los cuales se hace por software.
,,T Ruta correcta.
,,M Corrección magnética
0.00,N Velocidad en nudos
0.0,K Velocidad en kilómetros por hora.
*7E Numero de control ( Checksum)
GSV – Satellites in view
$GPGSV,3,1,09,09,64,334,36,26,57,126,18,05,46,223,,29,40,131,16*7D
Como indica su nombre con esta sentencia , el software recibe cuantos satélites , cuales y donde vemos actualmente.
3 Numero de sentencias necesarias para transmitir todos los datos.
1 Numero de sentencia.
09 satélites a la vista.
09 PRN del satélite.
64 Elevación en grados.
334 Azimut en grados.
36 Fuerza de la señal.
Y así con todos los satélites que tenga a la vista , hasta completar las sentencias que enumera al principio.
Como ultima sentencia, están aquellas que detrás del $ tienen una P y suelen ser sentencias propietarias de control del programa que recibe los datos del GPS.
Y como ejemplo:
$PTOM104,My DocumentsGPS LogGPS20031224083713-busy.pgl*0
El cual creo que habla por si mismo de para que vale esta sentencia.
Estas sentencias son las mas comunes , en este caso he explicado solo las que me ha generado un log del tomtom , por supuesto me dejo un montón de cosas en el tintero ,
Pero creo que después de este “articulo” cuando miremos un log de cualquier GPSs habremos , dentro de unos limites , que estamos mirando.
Gracias a los FAQ de Peter Bennett y Karen Nakamura .
Un saludo y feliz Navidad y fiestas.
Si tienes alguna duda o algo que aportar al grupo… puedes hacerlo a través del FORO.
488