Una panoramica sul formato NMEA usato dai ricevitori GPS, Glonass, GNSS.
I ricevitori GPS (e GNSS) possono comunicare in formato NMEA.
I dati sono inviati attraverso dei messaggi (sentences) che si differenziano per il loro contenuto.
Ogni sentence è composta da un carattere di inizio "$", da un carattere di fine "*", dal checksum formato da due caratterie infine da <CR><LF>
Dopo il carattere $, due lettere identificano il dispositivo. Per i nostri interessi di navigazione satellitare, sono 3 gli identificativi principali
GP - indica GPS
GL - indica Glonass
GN - indica GNSS
Esistono dei messaggi che sono identificati da "$P" : sono messaggi proprietari, che ciascun produttore può definire e personalizzare. Tali messaggi non sono standardizzati.
Le tre lettere successive identificano il tipo di messaggio. Ogni messaggio, a sua volta ha un contenuto predefinito diviso in vari campi separati da virgole.
I messaggi più comuni sono: GGA, RMC, GSA, GSV, GLL, VTG, che vediamo in dettaglio
Messaggio GGA
Esempio:
$GPGGA,184936.00,4508.43100,N,00737.21937,E,1,06,1.69,278.4,M,47.2,M,,*5F
Messaggio RMC
Esempio:
$GPGGA,184936.00,4508.43100,N,00737.21937,E,1,06,1.69,278.4,M,47.2,M,,*5F
Esempio
|
Descrizione
|
GGA
|
Global Positioning System Fix Data
|
184936.00
|
Tempo 18:49:36.00
|
4508.43100,N
|
Latitudine 45°08.43100' N
|
00737.21937,E
|
Longitudine 7°37.21937' E
|
1
|
Qualità del Fix:
0 = Invalido 1 = GPS fix 2 = DGPS fix
3 = Fix GPS PPS
4 = RTK (Real Time Kinematic) intera
5 = RTK float
6 = Navigazione Stimata (dead reckoning)
7 = Input Manuale
8 = Simulazione
|
06
|
6 Satelliti usati nella soluzione
|
1.5
|
HDOP
|
278.4,M
|
Altitudine 278.4 metri s.l.m
|
47.2 , M
|
Altezza sul geoide WGS84 =47.2 metri
|
vuoto
|
Tempo dall'ultimo aggiornamento DGPS
|
vuoto
|
Id della stazione DGPS
|
Messaggio RMC
Esempio:
$GPRMC,062407.000,A,4507.25481,N,00738.52978,E,52.2,66.7,050811,0.0,W,A*1E
$GPRMC,062407.000,A,4507.25481,N,00738.52978,E,52.2,66.7,050811,0.0,W,A*1E
Esempio
|
Descrizione
|
RMC
|
Global Positioning System Fix Data
|
062407.00
|
Tempo 06:24:07.00
|
A
|
Indicatore del Fix
A = Fix Valido
V = Fix non valido
|
4507.25481,N
|
Latitudine
|
00738.52978,E
|
Longitudine
|
52.2
|
Velocità 52.2 nodi
|
66.7
|
Direzione 66.7 gradi
|
050811
|
Data. 5 Agosto 2011
|
0.0,W
|
Variazione rispetto al Nord magnetico
|
A
|
Indicatore modalità di funzionamento:
A = Autonomo
D = Differenziale
E = Navigazione stimata (dead reckoning)
M = Input Manuale
S = Simulazione
N = Dati non validi
|
Nota: l'indicatore della modalità di funzionamento potrebbe non essere presente in quanto è il formato NMEA originale non lo prevedeva. Poi il formato è stato esteso per includere anche questo indicatore.
La variazione rispetto al Nord magnetico solitamente non è supportata dai ricevitori consumer (come nel ricevitore usato nell'esempio, che da sempre in output 0.0,W).
Messaggio GSA
Esempio:
$GPGSA,A,3,15,26,27,28,17,18,,,,,,,2.99,1.69,2.47*0F
$GPGSA,A,3,15,26,27,28,17,18,,,,,,,2.99,1.69,2.47*0F
Esempio
|
Descrizione
|
GSA
|
DOPs and Active Satellites
|
062407.00
|
Tempo 06:24:07.00
|
A
|
Indicatore del Fix
A = Modalità 2D - 3D automatica
M = Modalità 2D - 3D manuale
|
3
|
Modalità del fix
1 = Non valido
2 = Fix 2D
3 = Fix 3D
|
15,26,27,28,17,18,,,,,,,
|
Lista dei satelliti utilizzati nel fix
GPS (1...32)
Glonass (65...96)
|
2.99
|
PDOP
|
1.69
|
HDOP
|
2.47
|
VDOP
|
Messaggio GSV
Il messaggio GSV contiene le informazioni relative ai satelliti visibili (numero di satelliti, ID satellite , Elevazione, Azimuth , CN0). Siccome non è possible inviare messaggi più lunghi di 80 caratteri, è possibile che più messaggi GSV vengano inviati in sequenza.
La visibilità completa si avrà quindi decodificando tutta la sequenza.
Esempio:
$GPGSV,3,1,11,02,04,218,22,05,66,233,36,07,32,054,40,08,60,048,49*78
$GPGSV,3,2,11,10,29,163,44,15,18,293,42,19,01,046,23,21,05,328,32*71
$GPGSV,3,3,11,26,53,303,48,27,07,242,32,28,46,137,46,,,,*4F
Esempio
|
Descrizione
|
GSV
|
DOPs and Active Satellites
|
3
|
Numero totale di messaggi GSV
|
1
|
N. ordinale del messaggio GSV
|
11
|
11 = Numero totale di satelliti visibili
|
02,04,218,22
|
Quartetto di valori che indica:
- ID satellite (2)
- Elevazione (4 gradi)
- Azimuth (218 gradi)
- CN0 (22)
|
05,66,233,36
| come sopra |
07,32,054,40
|
come sopra
|
08,60,048,49
|
come sopra
|
Il CN0 indica l'intensità del segnale ricevuto dal satellite
Azimuth e Elevazione invece indicano la posizione nel cielo del satellite rispetto alla nostra posizione.
Messaggio GLL
Il messaggio GLL contiene la posizione calcolata. E' ridondante rispetto a RMC e GGA
Esempio:
$GPGLL,4507.25481,N,00738.52978,E ,225356.000,A,A*43
$GPGLL,4507.25481,N,00738.52978,E ,225356.000,A,A*43
Esempio
|
Descrizione
|
GLL
|
Geographic Position, Latitude Longitude
|
4507.25481,N
|
Latitudine
|
00738.52978,E
|
Longitudine
|
225356.000
|
Tempo 22:53:56.000
|
A
|
Indicatore del Fix
A = Fix Valido
V = Fix non valido
|
A
|
Indicatore modalità di funzionamento:
A = Autonomo
D = Differenziale
E = Navigazione stimata (dead reckoning)
M = Input Manuale
S = Simulazione
N = Dati non validi
|
L'ultimo campo è equivalente al quello presente nel messaggio GPRMC e potrebbe non essere presente in ricevitori più vecchi.
Messaggio VTG
Esempio:
$GPVTG,143.9,T,,M,0.7,N,1.4,K*6D
$GPVTG,143.9,T,,M,0.7,N,1.4,K*6D
Esempio
|
Descrizione
|
VTG
|
Geographic Position, Latitude Longitude
|
143.9,T
|
Direzione rispetto al Nord
|
,M
|
Direzione rispetto al Nord Magnetico
|
0.7,N
|
Velocità in nodi
|
1.4,K
|
Velocità in Kmh
|
Non tutti i ricevitori supportano la direzione rispetto al Nord magnetico. Il ricevitore usato nell'esempio non la supporta, infatti l'output è un campo vuoto.
Formato dei dati
I tempi sono formattati nel seguente modo:
hhmmss.sss (h = ore, m = minuti, s = secondi)
Esempio: 062407.000 = 06:24:07.000
Le date sono formato delle date è simile:
ddmmyy (d = giorni, m = mesi, y = anni)
Esempio: 050811 = 05 Agosto 2011
Dati di posizione Latitudine/Longitudine
Il formato è ggmm.mmmmm per la Latitudine, gggmm.mmmmm per la Longitudine (g = gradi, m = minuti)
Esempio: 4507.25481,N,00738.52978,E
Latitudine 45° 07.25481' Nord, Longitudine 7° 38.52978' Est
La velocità è espressa solitamente in nodi. 1 nodo = 1.852 Kmh
Gli angoli (elevazione e azimuth dei satelliti, direzione ) sono espressi in gradi. (Eccetto Latitudine e Longitudine, come visto sopra)
Per le specifiche estensioni Glonass, potete vedere questa pagina:
http://gnss-info.blogspot.com/p/nmea-con-glonass.html
Nessun commento:
Posta un commento