El estándar NMEA 183 en detalle
Los
mensajes NMEA se transmiten de forma serie asíncrona, a 4800
baudios, sin paridad, con el siguiente tipo de transmisión;
Baud rate: 4800
Number of data bits: 8 (bit 7
es 0)
Stop bits: 1 (o
más)
Parity:
none
Handshake: none
El estándar no define ningún tipo de conector específico pero se
recomienda utilizar cable de par trenzado estando a tierra solo el
emisor. La última versión de NEMA183, versión 3.0, utiliza 3 hilos
(estándar RS-422 con dos cables de datos diferenciales para mayor
inmunidad al ruido) y va a una velocidad de 38.400 baudios y con
optoacopladores.
Cualquier información NMEA es transferida en forma de sentencia
formada por caracteres ASCII imprimibles además del "retorno de
carro" (carriage return o CR) y avance de línea (line feed o LF).
Existen 3 tipos de sentencias llamadas sentencias informativas,
propietarias e interrogativas; (talker sentences, proprietary
sentences, query sentences). Cualquier sentencia comienza con un
símbolo ‘$’ y acaba por un punto.
Sentencia
informativa
Tiene el formato $ttsss,d1,d2,… donde dos primeros caracteres tt son
el identificador del dispositivo que envía la información y los tres
siguientes sss indican el tipo de sentencia o de dato comunicado.
Los datos d1,d2 van separados por comas y finalmente toda la
sentencia acaba opcionalmente con "checksum" de control seguido del
carácter de retorno de carro o retorno de línea. En total una
sentencia puede tener hasta un máximo de 80 caracteres además del $
y del retorno de carro o de línea. Si no hay datos que enviar, estos
se omiten, pero se debe montar la sentencia con las comas sin
espacios entre ellas. El "checksum" de control consiste en un
carácter asterisco "*" y dos caracteres hexadecimales resultado de
hacer un "OR" exclusivo de toda la sentencia excluyendo el "$" y el
"‘*".
Sentencias
propietarias
Están pensadas para que los fabricantes puedan tener sus propias
sentencias particular a una marca de electrónica determinada. Estas
comenzarán por "$P" seguido de 3 letras que identifican al
fabricante, seguido por los datos que el fabricante estime oportuno.
Sentencias
interrogativas
Permite a un dispositivo solicitar una sentencia informativa a otro
dispositivo. Su formato general es $ttllQ,sss,[CR][LF] en donde los
dos primeros caracteres identifican al interrogados seguidos por los
dos siguientes caracteres que identifican al interrogado. El quinto
carácter es una "Q" indicando que se trata de una "query"
(pregunta). Las sss identifican el tipo de dato solicitado. Por
ejemplo; $CCGPQ,GGA indica que el ordenador (CC) solicita al un GPS
(GP) un dato de tipo GGA. Entonces el GPS deberá emitir por la red
NMEA esta información una vez por segundo hasta que sea solicitada
otra solicitud por la red NMEA.
Esta es la lista de posibles identificadores
AG Autopilot - General
AP Autopilot - Magnetic
CD Communications – Digital Selective Calling (DSC)
CR Communications – Receiver / Beacon Receiver
CS Communications – Satellite
CT Communications – Radio-Telephone (MF/HF)
CV Communications – Radio-Telephone (VHF)
CX Communications – Scanning Receiver
DF Direction Finder
EC Electronic Chart Display & Information System (ECDIS)
EP Emergency Position Indicating Beacon (EPIRB)
ER Engine Room Monitoring Systems
GP Global Positioning System (GPS)
HC Heading – Magnetic Compass
HE Heading – North Seeking Gyro
HN Heading – Non North Seeking Gyro
II Integrated Instrumentation
IN Integrated Navigation
LC Loran
P Proprietary Code
RA RADAR and/or ARPA
SD Sounder, Depth
SN Electronic Positioning System, other/general
SS Sounder, Scanning
TI Turn Rate Indicator
VD Velocity Sensor, Doppler, other/general
DM Velocity Sensor, Speed Log, Water,
Magnetic
VW Velocity Sensor, Speed Log, Water, Mechanical
WI Weather Instruments
YX Transducer
ZA Timekeeper – Atomic Clock
ZC Timekeeper – Chronometer
ZQ Timekeeper – Quartz
ZV Timekeeper – Radio Update, WWV or WWVH
Por ejemplo pensemos en el mensaje NMEA que lanza una veleta de
viento, dando información de dirección y velocidad del viento
relativo que está midiendo. El mensaje tendría este formato;
$--VWR,x.x,a,x.x,N,x.x,M,x.x,K*HH
En donde comprobamos como el tipo de mensaje VWR tiene 8 datos y un
noveno de "checksum" según la siguiente descripción de parámetros.
1) Dirección del viento en grados
2) Dirección del viento medida hacia la izquierda/derecha de la
proa
3) Velocidad del viento
4) N = Nudos
5) Velocidad del viento
6) M = Metros por segundo
7) Velocidad del viento
8) K = Kilóometros por hora
9) Checksum (HH)
Para una descripción detallada de cada uno de los posibles mensajes
NMEA, dejamos este enlace de descarga en donde puedes conocer el
detalle de cada uno de ellos.
Enlace