NMEA 0183
National Marine Electronics Association (NMEA) ha standardizzato nel1983 un protocollo per permettere l'interscambio di dati tra apparecchiature elettroniche di navigazione.
Si è optato per un protocollo seriale ASCII operante a 4800 Baud, 8 Bit di dati, Nessuna parità, 1 Bit di stop (4800,n,8,1). I dati sono raggruppati in campi separati da virgole. Il primo campo (0) identifica il dispositivo che trasmette (GPS, radar ecc.) ed il contenuto del messaggio. Il carattere di inizio trasmissione è $ (hex24) ed il carattere di fine stringa sono <CR><LF> (hex 0D and 0A). La lunghezza della stringa è di 80 caratteri max.
Esempio:
Campo
No.
0 1 2 3
4 5 6 7
$GPRMC,---,---,---,---,----,---,---,<CR><LR>
$ =
Start GP = Talker ID RMC = Address Data type ,--- = data fields <CR><LF> = ending
La
posizione e la lunghezza dei campi sono standard e dipendono dal tipo del
messaggio.
Per dispositivi Motorola l' indicativo è il seguente:
GP = This is a marine electronics equipment that provides GPS data.
PMOTG
=
proprietary Motorola to commands.
Il
tipo del messaggio può essere:
*GGA
= GPS Fix Data
*GLL
= Geographic Position, Latitude/Longitude
GSA = GPS DOP and Active Satellites
GSV = GPS Satellites in View
*RMC
= Recommended Minimum
Specific GPS/Transit Data
VTG = Track Made Good and Ground Speed (useful in some mapping
programs)
ZDA = Time and Date (no mechanism to set local zone; it’s set at
00:00)
* Con il * sono evidenziati i messaggi più usati. Il RMC è quello più interessante in quanto contiene tutte le informazioni più utili.
Qui di seguito una tipica stringa
GPRMC contenente quindi tutti i dati esenziali catturata in uscita di un GPS
portatile:
$GPRMC,145835,A,4513.0713,N,009000.9995,E,5.1,257.0,040398,000.0,W,