NMEA 0183 es una combinación de especificación eléctrica y de datos para comunicación entre equipos electrónicos marítimos, tales como: profundímetro, anemómetro, corredera, girocompás, piloto automático, GPS y muchos otros tipos de instrumentos. Ha sido definido, y está controlado, por la organización estadounidense National Marine Electronics Association. Reemplaza las normas anteriores NMEA 0180 y NMEA 0182.[1]​ Las aplicaciones marinas de recreo está siendo paulatinamente sustituido por el más nuevo NMEA 2000,[2][3]​ aunque NMEA 0183 sigue siendo la norma más utilizada en navegación comercial.

La norma eléctrica utilizada es RS-422, aunque muchos dispositivos que tienen salidas NMEA-0183; también pueden activar una sola entrada RS-232. Aunque la norma requiere de entradas y salidas aisladas, hay bastantes dispositivos que no cumplen esta normativa.

La norma NMEA 0183, utiliza un protocolo de Comunicación serie simple en código ASCII que se define como: "Los datos son transmitidos en una sentencia desde un emisor simultáneamente a varios receptores." Mediante el uso buffers intermedios, un emisor puede comunicarse unidireccionalmente con un número casi ilimitado de receptores. Si tenemos múltiples sensores, podemos usar uno o varios multiplexores, para poder comunicar todo a un solo receptor.

En el nivel de aplicación; la norma también define el contenido de cada tipo de sentencia (mensaje) de forma que todos los receptores puedan analizar los mensajes correctamente.

Aunque NMEA 0183 solo define un protocolo de transporte sobre RS-422, hay una norma de facto, en el cual las sentencias NMEA 0183 se insertan en un UDP (una sentencia por paquete) y se envían por una red IP.

La norma NMEA 0183 es propiedad intelectual registrada y se vende por 2000$ US (excepto para miembros de la NMEA) a julio de 2021.[4]​ sin embargo, obtenidas mediante ingeniería inversa las sentencias son de dominio público.[5][6]

Configuración serie (nivel de enlace de datos)

editar
Tasa de baudios típica 4800
Bits de datos 8
Paridad Ninguna
Bits de parada 1
Establecimiento de comunicación Ninguna

Hay una variante de la norma llamada NMEA-0183HS que especifica una velocidad de transmisión de 38,000 baudios. Generalmente se usa para dispositivos de Sistema de Identificación Automática.

Estructura de las sentencias

editar
  • Todo los datos transmitidos son caracteres imprimibles ASCII entre 0x20 (espacio) a 0x7e (~)
  • Los caracteres de datos son todos los anteriores además de los caracteres reservados(Ver siguiente línea )
  • Los caracteres reservados se utilizan por NMEA0183 para los siguientes usos:
ASCII Hex Dec Uso
<CR> 0x0d 13 Retorno de carro
<LF> 0x0a 10 Salto de línea, final de sentencia
 ! 0x21 33 Inicio de delimitador de encapsulación de sentencia
$ 0x24 36 Delimitador de inicio
* 0x2a 42 Delimitador de Suma de verificación
, 0x2c 44 Delimitador de campo
\ 0x5c 92 Delimitador de bloque de ETIQUETA
^ 0x5e 94 Delimitador de código para representación HEX de caracteres ISO/IEC 8859-1 (ASCII)
~ 0x7e 126 Reservado
  • Las sentencias tienen una longitud máxima de 82 caracteres, incluyendo el $ o ! del principio y el <LF> final.
  • El carácter de inicio para cada sentencia puede ser un $ (Para sentencias con campos convencionales) o  (Para sentencias que tiene encapsulación especial en ellos)
  • Los siguientes cinco caracteres identifican el emisor (dos caracteres) y el tipo de sentencia (tres caracteres).
  • Todos los siguientes campos de datos están separados por comas.
  • Cuando el dato no está disponible, el campo correspondiente permanece en blanco (no contiene ningún carácter antes del siguiente delimitador(coma) – ver sección de archivo de muestra abajo).
  • El primer carácter que inmediatamente sigue al último campo de datos es un asterisco seguido de una Suma de verificación.
  • El asterisco es inmediatamente seguido por unaSuma de verificación representada como un número hexadecimal de dos dígitos. La Suma de verificaciónes el OR exclusivo bit a bit los todos los caracteres ASCII entre el $ y *, no inclusivos. Según la especificación oficial, la Suma de verificación es opcional para la mayoría de las sentencias, pero es obligatorio para los tipos de sentencia RMA, RMB y RMC (entre otras).
  • <CR><LF> finaliza la sentencia.

Como ejemplo, una alarma de waypoint de llegada tiene la forma:

$GPAAM,Un,Un,0.10,N,WPTNME32

Otro ejemplo de sentencia AIS es:

!AIVDM,1,1,,Un,14eG;o@034o8sd<L9i:un;WF>062D,07D

Extensiones de vendedor

editar

La mayoría de fabricantes de GPS incluyen sentencias adicionales al conjunto de la norma NMEA en sus productos, para mantenimiento y propósito de diagnóstico. Estas sentencias extendidas empiezan con "$P". Estas sentencias extendidas no están estandarizadas.

Compatibilidad de software

editar

NMEA 0183 esta soportado por varios programas de navegación y mapeo. Las aplicaciones más notables incluyen:

Archivo de muestra

editar

Un archivo de muestra producido por un registrador Tripmate 850 GPS logger. Este archivo fue creado en Leixlip, Condado 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

Nótese algunos campos vacíos, por ejemplo:

  • GSV Registra, que satélites están 'visibles', carece del SNR (relación señal/ruido) el campo para el satélite 16 y todos los datos para el satélite 36.
  • GSA Registra, la lista de los satélites utilizados para fijar una posición) y da un error de posición, contiene12 campos para número de satélites', pero sólo 8 satélites fueron tenidos en cuenta—así que 4 campos quedan vacíos.

Estado

editar

NMEA 0183 continua a ser mantenido por separado: la versión V4.10 fue publicado a principios de mayo de 2012, y un erratum publicado el 12 de mayo de 2012.[8]​ No está claro si hay algún desarrollo activo. El anuncio más reciente de NMEA sobre el tema es más antiguo que la norma.[9]​ V4.10 Hay una actualización del 27 de noviembre de 2018 a 4.11.[10]

Véase también

editar

Referencias

editar
  1. Peter Bennett (15 de septiembre de 1997). «The NMEA FAQ». Archivado desde el original el 15 de febrero de 2014. Consultado el 21 de octubre de 2013. 
  2. «NMEA 0183 vs NMEA 2000». 24 de febrero de 2021. Consultado el 20 de febrero de 2022. 
  3. Steve Spitzer (Mayo de 2009). «NMEA 2000 white paper». Archivado desde el original el 2 de marzo de 2021. Consultado el 20 de octubre de 2020. 
  4. «National Marine Electronics Association - NMEA 0183». www.nmea.org. Archivado desde el original el 31 de marzo de 2022. Consultado el 6 de julio de 2021. 
  5. Raymond, Eric S. (marzo de 2019). «NMEA Revealed». 
  6. Dale DePriest. «NMEA data». Archivado desde el original el 20 de octubre de 2020. Consultado el 20 de octubre de 2020. 
  7. «Google Maps for Android». Google. Consultado el 21 de octubre de 2013. 
  8. «ERRATA # 0183 120512». NMEA. Archivado desde el original el 17 de abril de 2016. Consultado el 21 de octubre de 2013. 
  9. «NMEA Standards Update March 2012». NMEA. March 2012. Archivado desde el original el 12 de abril de 2022. Consultado el 21 de octubre de 2013. 
  10. «NMEA PUBLISHES UPDATED VERSION OF NMEA 0183 FOR NEW GLOBAL SATELLITE SYSTEMS». November 2018. Archivado desde el original el 31 de enero de 2019. Consultado el 30 de enero de 2019. 

Enlaces externos

editar