¿Qué es este blog?

La idea de este blog nace para compartir los avances que se vayan realizando a lo largo de un estudio sobre cómo interconectar los distintos sensores que se pueden encontrar en el mercado, o fabricar de forma casera, con la plataforma Mindstorms de LEGO. Para ello se hará uso ARDUINO, un entorno de desarrollo abierto basado en microcontrolador.

domingo, 12 de junio de 2011

Sentencias NMEA

Para poder entender el funcionamiento del receptor GPS que explicará a continuación, explicaremos primero en qué consisten las sentencias NMEA y cuáles son sus principales campos.

Las siglas NMEA son las siglas en inglés de la Asociación de Marina y Electrónica Nacional, es decir, la “National Marine Electronic Asociation). Esta asociación americana, fue la primera en establecer un protocolo normalizado de comunicación entre equipos y dispositivos de navegación. A modo de reseña histórica, comentar que el primer protocolo en aparecer fue el NMEA 180 simple, que permitía a los barcos transmitir datos a un piloto automático del grado de desviación a babor o a estribor con respecto a una trayectoria predeterminada. Más tarde, aparecieron los protocolos NMEA 180 complejo y el NMEA 182, que mejoraban al primero incluyendo datos de geolocalización.
El protocolo más usado actualmente, y el que usa nuestro GPS Venus, es el NMEA-183 cuyas principales secuencias se describen a continuación.

GGA - Global Positioning System Fix Data


Este tipo de mensajes incluye información sobre el tiempo, la posición, y otros datos relativos al posicionamiento de un receptor GPS.
La estructura de estos mensajes es la siguiente:

$GPGGA,hhmmss.sss,ddmm.mmmm,a,dddmm.mmmm,b,x,yy,z.z,x.x,M,,,,xxxx*hh

Veamos a continuación lo que significa cada campo:

  • hhmmss.sss: Tiempo en formato UTC (Universal Coordinate Time).
  • ddmm.mmmm: Latitud. Se rellena con ceros por la izquierda.
  • a: Indica el hemisferio de la latitud (N o S según sea latitud Norte o Sur).
  • ddmm.mmmm: Longitud. Se rellena con ceros por la izquierda.
  • b: Indica el hemisferio de la longitud (E o W según la longitud sea Este u Oeste)
  • x: Indica la calidad del GPS
    • 0: no se ha podido obtener la posición
    • 1: posición GPS válida. Modo SPS.
    • 2: posición GPS váida. Modo GPS diferencial
    • 3: posición GPS válida. Modo PPS.
    • 4: Modo “Real Time Kinematic”.
    • 5: Modo “Floating RTK”.
    • 6: Modo de estimación
    • 7: Modo de entrada de datos manual
    • 8: Modo simulación
  • yy: Número de satélites usados
  • z.z: Parámetro HOPD. Nos da la precisión horizontal
  • x.x: Altitud con respecto al nivel del mar
  • Finalmente, nos ofrece otros parámetros como el identificador de la estación GPS de referencia y un checksum para comprobar la correcta recepción de los datos.
GLL – Latitude / Longitude
Estos mensajes transmiten información sobre la latitud y la longitud de la posición actual, así como sobre el tiempo y el estado de la conexión. La estructura es la siguiente:

$GPGLL,ddmm.mmmm,a,dddmm.mmmm,b,hhmmss.sss,A,a*hh

Y veamos lo que significa cada campo:
  • ddmm.mmmm: Latitud. Se rellena con ceros por la izquierda
  • a: Indica el hemisferio (N si es el hemisferio Norte, y S si es el Sur)
  • dddmm.mmmm: Longitud. Se rellena con ceros por la izquierda
  • b: Indica el hemisferio Este (E) u Oeste (W)
  • hhmmss.sss: Tiempo en formato UTC
  • A: Estado. Si muestra una ‘A’, los datós son válidos y si muestra una ‘V’ son inválidos.
  • a: Indicador del modo. Puede contener:
    • N: Datos no válidos
    • A: Modo autónomo
    • D: Modo diferencial
    • E: Modo estimado
    • M: Entrada de datos de forma manual
    • S: Modo simulación
  • Finalmente se incluye información de checksum
GSA – GNSS DOP and Active Satellites

Indica el modo de operación del receptor GPS, los satélites usados para la navegación proporcionados por las sentencias GGA o GNS y los valores DOP. La estructura es la siguiente:

$GPGSA,A,a,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,x.x,x.x,x.x*hh
Y la correspondencia de cada campo:


  • A: Si contiene una ‘M’ estamos en modo manual, forzando el funcionamiento en 2D o en 3D, mientras que si contiene una ‘A’, se está en el modo automático, con selección 2D/3D automática
  • a: Si contiene un ‘1’ es que no ha sido posible obtener información sobre si se encuentra en modo 2D o 3D. El ‘2’ representa el modo 2D, mientras que el ‘3’ representa el modo 3D. 
  • Los siguientes datos corresponden a los identificadores de los satélites (puede haber 12 satélites con identificadores comprendidos entre 01 y 32), seguidos de la precisión de posición, de la precisión horizontal y de la precisión vertical
  • El último campo corresponde al checksum

GSV – GNSS Satellites in View
Estas sentencias nos proporcionan información sobre el número de satélites que el GPS está “viendo” en ese momento, con sus respectivos identificadores, ángulos de azimuth, elevación y relación señal a ruido. Habrá un máximo de 4 satélites por sentencia. Su estructura es la siguiente:

$GPGSV,N,s,yy,xx,xx,xxx,xx,…,xx,xx,xxx,xx *hh


Estos campos corresponden a:

  • N: Indica cuántas sentencias de este tipo se van a transmitir (tomará por tanto valores de entre 1 y 3).
  • s: Número de secuencia
  • yy: Número de satélites que se están viendo en ese momento
  • Los datos siguientes son:
    • Los identificadores de cada uno de los satélites
    • Su elevación
    • Su azimuth
    • Su relación señal a ruido, que valdrá cero si no se está logrando una correcta conexión.
    • Checksum
RMC – Recommended Minimum Specific GNSS Data
Nos proporcionan información sobre la hora, la fecha, el rumbo y la velocidad proporcionados por el receptor GNSS. Su estructura es la siguiente:

$GPRMC,hhmmss.sss,A,dddmm.mmmm,a,dddmm.mmmm,a,x.x,y.y,ddmmyy,,,a*hh

Veamos la explicación de los campos:
  • hhmmss.sss: Hora en formato UTC
  • A: Estado. Si contiene una ‘A’ es que los datos son válidos, mientras que si contiene una ‘V’ es que se está produciendo algún problema
  • dddmm.mmmm: Son los datos de la latitud. Se rellena con ceros pos la izquierda.
  • a: Indicador de Norte (N) o Sur (S)
  • dddmm.mmmm: Datos de la longitud. Se rellena con ceros por la izquierda.
  • a: Indicador de Este (E) u Oeste (W)
  • x.x: Velocidad en nudos con respecto al suelo
  • y.y: Rumbo en grados con respecto a la horizontal
  • ddmmyy: Se transmite una actualización de la fecha en formato UTC
  • a: Indicador del modo. Puede contener:
    • N: Datos no válidos
    • A: Modo autónomo
    • D: Modo diferencial
    • E: Modo de estimación
    • M: Modo de entrada de datos maual
    • S: Modo de simulación
  • Finalmente se transmiere la información de checksum
VTG – Course Over Ground and Ground Speed
Estas sentencias proporcionan información del rumbo y la velocidad con respecto al suelo. Su estructura es la siguiente:

GPVTG,x.x,T,,M,x.x,N,x.x,K,a*hh


Y veamos cada campo:
  • x.x: Rumbo en grados
  • T: Velocidad sobre el suelo en nudos
  • M: Velocidad sobre el sueño en kilómetros por hora
  • A: Indicador de modo. Puede contener:
    • N: Datos no válidos
    • A: Modo autónomo
    • D: Modo diferencial
    • E: Modo de estimación
    • M: Modo de entrada de datos manual
    • S: Modo de simulación
  • Finalmente se transfiere información de checksum.




No hay comentarios:

Publicar un comentario