Przejdź do głównej zawartości

Protokół NMEA

NMEA 0183 to standardowy protokół komunikacyjny wykorzystywany praktycznie przez wszystkie odbiorniki GNSS do przesyłania danych o pozycji, satelitach i dokładności. Po podłączeniu zewnętrznego odbiornika do Mapit GIS (przez Bluetooth na Androidzie albo TCP/IP na obu platformach) odbiornik wysyła łączem szeregowym ciągły strumień komunikatów NMEA.

Czym jest NMEA?

NMEA to skrót od National Marine Electronics Association. Standard NMEA 0183 definiuje protokół tekstowy, w którym każdy komunikat (nazywany zdaniem) jest pojedynczym wierszem tekstu ASCII:

$GPGGA,120000.00,5133.82,N,00042.24,W,1,08,0.9,45.4,M,47.0,M,,*47

Każde zdanie ma tę samą budowę:

ElementPrzykładOpis
Początek$Każde zdanie zaczyna się od znaku dolara
Identyfikator nadawcyGPWskazuje system satelitarny (GP = GPS, GL = GLONASS, GA = Galileo, GB/BD = BeiDou, GN = wiele systemów GNSS)
Typ zdaniaGGATrzyliterowy kod określający format danych
Pola danych120000.00,5133.82,...Wartości rozdzielone przecinkami
Suma kontrolna*47XOR wszystkich bajtów między $ a *, zapisany jako dwie cyfry szesnastkowe
Zakończenie\r\nPowrót karetki i znak nowego wiersza

Identyfikator nadawcy mówi, która konstelacja satelitarna dostarczyła dane:

Identyfikator nadawcyKonstelacja
GPGPS (USA)
GLGLONASS (Rosja)
GAGalileo (Europa)
GB / BDBeiDou (Chiny)
QZQZSS (Japonia)
GNWiele systemów GNSS (rozwiązanie łączone)

Obsługiwane typy zdań

Mapit GIS analizuje następujące typy zdań NMEA. Analizator NMEA (NmeaParser) przetwarza każdy przychodzący wiersz, sprawdza poprawność formatu i odczytuje odpowiednie pola danych.

GGA - dane fixa systemu pozycjonowania

Najważniejsze zdanie przy pracach pomiarowych. GGA dostarcza podstawowe dane fixa: współrzędne, wysokość, jakość fixa, liczbę satelitów i dokładność.

PoleDane
Czas UTCGodziny, minuty, sekundy
Szerokość / długość geograficznaStopnie i minuty dziesiętne
Jakość fixa0 = nieprawidłowy, 1 = GPS, 2 = DGPS, 3 = PPS, 4 = RTK Fixed, 5 = RTK Float, 6 = zliczanie drogi, 7 = ręczny, 8 = symulacja
Liczba używanych satelitówLiczba satelitów biorących udział w rozwiązaniu
HDOPPoziome rozmycie dokładności
Wysokość nad poziomem morzaWysokość nad średnim poziomem morza w metrach
Odstęp geoidyRóżnica między elipsoidą WGS 84 a średnim poziomem morza w metrach
Wiek poprawki DGPSLiczba sekund od ostatniej poprawki różnicowej
Identyfikator stacji DGPSIdentyfikator stacji referencyjnej

Obsługiwane identyfikatory nadawcy: GPGGA, GNGGA

RMC - zalecane minimum danych nawigacyjnych

Dostarcza pozycję, prędkość i azymut. Wykorzystywane zapasowo, gdy GGA jest niedostępne.

PoleDane
Czas i data UTCPełny znacznik czasu
StatusA = aktywny (prawidłowy fix), V = nieważny (brak fixa)
Szerokość / długość geograficznaPozycja
Prędkość względem ziemiW węzłach (wewnętrznie przeliczana na m/s)
Kąt drogiAzymut rzeczywisty w stopniach

Obsługiwane identyfikatory nadawcy: GPRMC, GNRMC

GSA - wartości DOP i aktywne satelity GNSS

Podaje wartości rozmycia dokładności oraz to, które satelity biorą udział w wyznaczeniu pozycji.

PoleDane
TrybA = automatyczny, M = ręczny
Typ fixa1 = brak fixa, 2 = fix 2D, 3 = fix 3D
Numery PRN satelitówDo 12 identyfikatorów satelitów użytych w rozwiązaniu
PDOPPrzestrzenne rozmycie dokładności
HDOPPoziome rozmycie dokładności
VDOPPionowe rozmycie dokładności

Odbiorniki zgodne z NMEA 4.10 i nowszym zawierają pole identyfikatora systemu (pole 19) pozwalające rozróżnić konstelacje.

Obsługiwane identyfikatory nadawcy: GPGSA, GNGSA, GLGSA, QZGSA, BDGSA, GBGSA

GSV - satelity GNSS widoczne

Dostarcza szczegółowe informacje o każdym widocznym satelicie - służą do zbudowania wykresu nieba i wykresu słupkowego sygnału w panelu informacji GPS.

PoleDane
Satelity widoczneŁączna liczba dla tej konstelacji
Numer PRN satelityIdentyfikator
WysokośćStopnie nad horyzontem (0-90)
AzymutStopnie od północy geograficznej (0-360)
SNRStosunek sygnału do szumu w dB-Hz (0-99)

Każde zdanie GSV zawiera dane maksymalnie czterech satelitów, a pełny zestaw tworzy kilka zdań.

Obsługiwane identyfikatory nadawcy: GPGSV, GLGSV, GAGSV, QZGSV, BDGSV, GBGSV

GST - statystyki błędów pseudoodległości GNSS

Dostarcza statystyczne oszacowania dokładności. To podstawowe źródło wartości dokładności RMS wyświetlanych w panelu informacji GPS.

PoleDane
RMSBłąd średniokwadratowy reszt pseudoodległości
Półoś wielka / mała błęduOsie elipsy błędu w metrach
OrientacjaObrót elipsy błędu w stopniach
Błąd 1 sigma szerokościOdchylenie standardowe w metrach
Błąd 1 sigma długościOdchylenie standardowe w metrach
Błąd 1 sigma wysokościOdchylenie standardowe w metrach

Na podstawie tych wartości aplikacja wylicza:

  • HRMS = pierwiastek(błąd_szer^2 + błąd_dł^2)
  • VRMS = błąd_wysokości
  • RMS 3D = pierwiastek(błąd_szer^2 + błąd_dł^2 + błąd_wysokości^2)

VTG - kurs i prędkość względem ziemi

Wykorzystywane wewnętrznie do przesuwania automatu stanów NMEA, oznaczając koniec sekwencji zdań.

Obsługiwane identyfikatory nadawcy: GPVTG, GNVTG

GLL - pozycja geograficzna

Dostarcza szerokość i długość geograficzną wraz z czasem UTC. Wykorzystywane wyłącznie wtedy, gdy odbiornik nie wysyła ani GGA, ani RMC.

Obsługiwane identyfikatory nadawcy: GPGLL, GNGLL

GNS - dane fixa GNSS

Wielosystemowy odpowiednik GGA zawierający wskaźnik trybu dla każdej konstelacji. Odpowiednio aktualizuje stan NMEA.

PNVGSDP - firmowe zdanie dokładności

Firmowe zdanie (zgodne z NovAtel) podające odchylenia standardowe szerokości, długości i wysokości oraz znak trybu fixa:

TrybZnaczenie
AAutonomiczny
DRóżnicowy
FRTK Float
RRTK Fixed
EZliczanie drogi
NBrak fixa

Priorytet zdań

Analizator korzysta z automatu stanów, aby nie mieszać danych z różnych epok pomiarowych. Gdy kilka typów zdań dostarcza pokrywające się dane, obowiązuje następujący priorytet:

  1. GGA - preferowane dla pozycji i jakości fixa
  2. RMC - używane, gdy brak GGA (dostarcza prędkość i azymut, których nie ma w GGA)
  3. GLL - ostateczność, wyłącznie dla pozycji

Weryfikacja sumy kontrolnej

Każde zdanie NMEA kończy się dwuznakową szesnastkową sumą kontrolną poprzedzoną znakiem *. Sumę wylicza się przez operację XOR na wszystkich bajtach między $ a *:

$GPGGA,120000,...*47
↑ XOR tych bajtów ↑

Analizator sprawdza format sumy kontrolnej, ale podchodzi do weryfikacji pragmatycznie - zdania z drobnymi usterkami formatowania są nadal przetwarzane, aby zapewnić maksymalną zgodność z szeroką gamą dostępnych na rynku odbiorników GNSS.