NMEA 0183
NMEA 0183 es una especificación eléctrica y de datos combinada para la comunicación entre dispositivos electrónicos marinos, como ecosonda, sonda, anemómetro, girocompás, piloto automático, receptores GPS y muchos otros tipos de instrumentos. Ha sido definido y está controlado por la Asociación Nacional de Electrónica Marina (NMEA). Reemplaza los estándares anteriores NMEA 0180 y NMEA 0182. En aplicaciones marinas de recreo, se está eliminando gradualmente a favor del nuevo estándar NMEA 2000, aunque NMEA 0183 sigue siendo la norma en el transporte marítimo comercial.
Detalles
El estándar eléctrico que se utiliza es EIA-422, aunque la mayoría del hardware con salidas NMEA-0183 también puede controlar un único puerto EIA-232. Aunque el estándar exige entradas y salidas aisladas, hay varias series de hardware que no cumplen con este requisito.
El estándar NMEA 0183 utiliza un protocolo de comunicaciones en serie ASCII simple que define cómo se transmiten los datos en una "frase" de un "hablador" a varios "oyentes" a la vez Mediante el uso de expansores intermedios, un hablante puede tener una conversación unidireccional con un número casi ilimitado de oyentes y, al usar multiplexores, varios sensores pueden comunicarse con un solo puerto de computadora.
En la capa de aplicación, el estándar también define el contenido de cada tipo de oración (mensaje), para que todos los oyentes puedan analizar los mensajes con precisión.
Si bien NMEA0183 solo define un transporte RS422, también existe un estándar de facto en el que las oraciones de NMEA0183 se colocan en datagramas UDP (una oración por paquete) y se envían a través de una red IP.
El estándar NMEA es patentado y se vende por al menos 2000 USD (excepto para los miembros de NMEA) a partir de septiembre de 2020. Sin embargo, gran parte de él ha sido modificado mediante ingeniería inversa a partir de fuentes públicas.
Configuración en serie (capa de enlace de datos)
Tasa típica de Baud | 4800 |
bits de datos | 8 |
Paridad | Ninguno |
Detén los pedacitos | 1 |
Handshake | Ninguno |
Existe una variación del estándar denominada NMEA-0183HS que especifica una velocidad en baudios de 38 400. Esto es de uso general por parte de los dispositivos AIS.
Estructura del mensaje
- Todos los datos transmitidos son caracteres ASCII imprimibles entre 0x20 (espacio) a 0x7e (~)
- Los caracteres de datos son todos los caracteres anteriores excepto los caracteres reservados (Ver siguiente línea)
- Los caracteres reservados son utilizados por NMEA0183 para los siguientes usos:
ASCII | Hex | Dec | Uso |
---|---|---|---|
" | 0x0d | 13 | Regreso del transporte |
■LF | 0x0a | 10 | Alimentación de línea, delimitador final |
! | 0x21 | 33 | Inicio de delimitador de sentencia de encapsulación |
$ | 0x24 | 36 | Inicio delimitador |
* | 0x2a | 42 | Checksum delimiter |
, | 0x2c | 44 | Delimitador de campo |
0x5c | 92 | Delimitador de bloques TAG | |
^ | 0x5e | 94 | Delimitador de código para la representación HEX de caracteres ISO/IEC 8859-1 (ASCII) |
~ | 0x7e | 126 | Reservado |
- Los mensajes tienen una longitud máxima de 82 caracteres, incluyendo los $ o ! carácter inicial y el final
- El carácter de inicio de cada mensaje puede ser un $ (Para los mensajes delimitados de campo convencional) o ! (para mensajes que tienen encapsulación especial en ellos)
- Los próximos cinco caracteres identifican al hablador (dos caracteres) y el tipo de mensaje (tres caracteres).
- Todos los campos de datos que siguen son delimitados por coma.
- Cuando los datos no están disponibles, el campo correspondiente permanece en blanco (no contiene ningún personaje antes del siguiente delimitador – vea la sección del archivo de muestra a continuación).
- El primer personaje que sigue inmediatamente el último carácter de campo de datos es un asterisco, pero sólo se incluye si se suministra un chequesum.
- El asterisco es seguido inmediatamente por un chequesum representado como un número hexadecimal de dos dígitos. La suma de verificación es el bitwise exclusivo OR de los códigos ASCII de todos los caracteres entre los $ y *, no incluyente. Según la especificación oficial, el chequesum es opcional para la mayoría de las oraciones de datos, pero es obligatorio para RMA, RMB y RMC (entre otros).
- termina el mensaje.
Como ejemplo, una alarma de llegada a un waypoint tiene la forma:
- $GPAAM,A,A,0.10,N,WPTNME*32
Otro ejemplo de mensajes AIS es:
- AIVDM,1,1,,A,14eG;o@034o8sd realizadasL9i:a;WF contactos062D,0*7D
Formato de sentencia NMEA
La identificación del hablante principal incluye:[1][2] Archivado el 2022-09-02 en Wayback Machine.
- BD o GB - Beidou
- GA - Galileo
- GP - GPS
- GL - GLONASS.
El mensaje NMEA incluye principalmente las siguientes "frases" en el mensaje NMEA:[3]
Sentencia | Descripción |
---|---|
$Talker ID+GGA | Global Positioning System Fixed Data |
$Talker ID+GLL | Posición geográfica: Latitud y Longitud |
$Talker ID+GSA | GNSS DOP y satélites activos |
$Talker ID+GSV | Satélites GNSS en vista |
$Talker ID+RMC | Datos GPS mínimos específicos recomendados |
$Talker ID+VTG | Curso sobre tierra y velocidad de tierra |
Un ejemplo, la frase para datos fijos del sistema de posicionamiento global para GPS debería ser "$GPGGA".
Extensiones de proveedores
La mayoría de los fabricantes de GPS incluyen mensajes especiales además del conjunto NMEA estándar en sus productos con fines de mantenimiento y diagnóstico. Los mensajes extendidos comienzan con "$P". Estos mensajes extendidos no están estandarizados.
Compatibilidad de software
NMEA 0183 es compatible con varios software de navegación y mapas. Las aplicaciones notables incluyen:
- DeLorme Street Atlas
- ESRI
- Google Earth
- Google Maps Mobile Edition
- gpsd - Unix GPS Daemon
- JOSM - OpenStreet Mapa Mapa Editor
- MapKing
- Microsoft MapPoint
- Microsoft Streets & Trips
- NetStumbler
- OpenCPN - Software de navegación de código abierto
- Marco de sensores de OpenBSD con el
nmea(4)
pseudo-dispositivo conductor - OpenNTPD a través de sysctl hw.sensors § timedelta API
- Rand McNally StreetFinder
- EXAMEN
Archivo de muestra
Un archivo de muestra producido por un registrador GPS Tripmate 850. Este archivo fue producido en Leixlip, Condado de Kildare, Irlanda. El registro dura dos segundos.
$GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,*76 $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,,1,72,1.03,1.38*0A $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70 $GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79 $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,*76 $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43 $GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,*75 $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,,1,72,1.03,1.38*0A $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70 $GPGSV,3,2,11,02,39,223,16,13,28,070,17,26,23,252,,04,14,186,15*77 $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,*76 $GPRMC,092751.000,A,5321.6802,N,00630.3371,W,0.06,31.66,280511,,,A*45
Tenga en cuenta algunos campos en blanco, por ejemplo:
- GSV los registros, que describen los satélites "visibles", carecen del campo SNR (proporción de señalización a ruido) para satélite 16 y todos los datos para satélite 36.
- GSA registro, que lista los satélites utilizados para determinar una solución (posición) y da un DOP de la solución, contiene 12 campos para el número de satélites, pero sólo se tomaron en cuenta 8 satélites, así que 4 campos permanecen en blanco.
Estado
NMEA 0183 siguió manteniéndose por separado: V4.10 se publicó a principios de mayo de 2012 y se anotó una errata el 12 de mayo de 2012. El 27 de noviembre de 2018, se emitió una actualización a la versión 4.11, que es compatible con los sistemas satelitales de navegación global que no sean GPS.
Contenido relacionado
Comunicaciones en Gibraltar
Telecomunicaciones en Georgia (país)
Refugio nuclear