Zum Hauptinhalt springen

NMEA-Protokoll

NMEA 0183 ist das Standardprotokoll, über das praktisch alle GNSS-Empfänger Positions-, Satelliten- und Genauigkeitsdaten übertragen. Wenn Sie einen externen Empfänger mit Mapit GIS verbinden (unter Android per Bluetooth, auf beiden Plattformen per TCP/IP), sendet der Empfänger einen fortlaufenden Strom von NMEA-Sätzen über die serielle Verbindung.

Was ist NMEA?​

NMEA steht für National Marine Electronics Association. Der Standard NMEA 0183 definiert ein textbasiertes Protokoll, in dem jede Nachricht (ein sogenannter Satz, englisch sentence) aus einer einzelnen Zeile ASCII-Text besteht:

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

Jeder Satz ist gleich aufgebaut:

BestandteilBeispielBeschreibung
Anfang$Jeder Satz beginnt mit einem Dollarzeichen
Talker-IDGPKennzeichnet das Satellitensystem (GP = GPS, GL = GLONASS, GA = Galileo, GB/BD = BeiDou, GN = Multi-GNSS)
SatztypGGADreibuchstabiger Code für das Datenformat
Datenfelder120000.00,5133.82,...Kommagetrennte Werte
Prüfsumme*47XOR aller Bytes zwischen $ und *, als zwei Hexadezimalziffern kodiert
Abschluss\r\nWagenrücklauf und Zeilenvorschub

Die Talker-ID gibt an, aus welchem Satellitensystem die Daten stammen:

Talker-IDSatellitensystem
GPGPS (USA)
GLGLONASS (Russland)
GAGalileo (Europa)
GB / BDBeiDou (China)
QZQZSS (Japan)
GNMulti-GNSS (kombinierte Lösung)

Unterstützte Satztypen​

Mapit GIS wertet die folgenden NMEA-Satztypen aus. Der NMEA-Parser (NmeaParser) verarbeitet jede eingehende Zeile, prüft das Format und extrahiert die relevanten Datenfelder.

GGA – Global Positioning System Fix Data​

Der wichtigste Satz für die Vermessung. GGA liefert die zentrale Positionslösung mit Koordinaten, Höhe, Fix-Qualität, Satellitenanzahl und Genauigkeit.

FeldDaten
UTC-ZeitStunden, Minuten, Sekunden
Breite / LängeGrad und Dezimalminuten
Fix-Qualität0 = Ungültig, 1 = GPS, 2 = DGPS, 3 = PPS, 4 = RTK Fixed, 5 = RTK Float, 6 = Koppelnavigation, 7 = Manuell, 8 = Simulation
Satelliten in GebrauchAnzahl der Satelliten, die zur Positionslösung beitragen
HDOPHorizontale Genauigkeitsminderung
Höhe (MSL)Höhe über dem mittleren Meeresspiegel in Metern
GeoidundulationAbstand zwischen dem Ellipsoid WGS 84 und dem mittleren Meeresspiegel in Metern
DGPS-AlterSekunden seit der letzten differenziellen Korrektur
DGPS-Stations-IDKennung der Referenzstation

Unterstützte Talker-IDs: GPGGA, GNGGA

Liefert Position, Geschwindigkeit und Kurs. Wird als Ersatz verwendet, wenn kein GGA verfügbar ist.

FeldDaten
UTC-Zeit und DatumVollständiger Zeitstempel
StatusA = Active (gültige Positionslösung), V = Void (keine Positionslösung)
Breite / LängePosition
Geschwindigkeit über GrundIn Knoten (intern in m/s umgerechnet)
KurswinkelRechtweisender Kurs in Grad

Unterstützte Talker-IDs: GPRMC, GNRMC

GSA – GNSS DOP and Active Satellites​

Meldet die DOP-Werte (Genauigkeitsminderung) und welche Satelliten in die Positionslösung eingehen.

FeldDaten
ModusA = Automatisch, M = Manuell
Fix-Typ1 = Kein Fix, 2 = 2D-Fix, 3 = 3D-Fix
Satelliten-PRNsBis zu 12 Kennungen der für die Positionslösung verwendeten Satelliten
PDOPGenauigkeitsminderung der Position
HDOPHorizontale Genauigkeitsminderung
VDOPVertikale Genauigkeitsminderung

Empfänger ab NMEA 4.10 enthalten ein Feld für die System-ID (Feld 19), um die Satellitensysteme zu unterscheiden.

Unterstützte Talker-IDs: GPGSA, GNGSA, GLGSA, QZGSA, BDGSA, GBGSA

GSV – GNSS Satellites in View​

Liefert ausführliche Informationen zu jedem sichtbaren Satelliten – daraus werden das Himmelsdiagramm und das Signalbalkendiagramm in der GPS-Info-Ansicht befüllt.

FeldDaten
Sichtbare SatellitenGesamtzahl für dieses Satellitensystem
Satelliten-PRNKennung
ElevationGrad über dem Horizont (0–90)
AzimutGrad ab geografisch Nord (0–360)
SNRSignal-Rausch-Verhältnis in dB-Hz (0–99)

Jeder GSV-Satz enthält Daten für bis zu 4 Satelliten; mehrere Sätze bilden zusammen einen vollständigen Datensatz.

Unterstützte Talker-IDs: GPGSV, GLGSV, GAGSV, QZGSV, BDGSV, GBGSV

GST – GNSS Pseudorange Error Statistics​

Liefert statistische Genauigkeitsschätzungen. Dies ist die wichtigste Quelle für die RMS-Genauigkeitswerte in der GPS-Info-Ansicht.

FeldDaten
RMSQuadratisches Mittel (RMS) der Pseudostrecken-Residuen
Fehler große / kleine HalbachseHalbachsen der Fehlerellipse in Metern
OrientierungDrehwinkel der Fehlerellipse in Grad
1-Sigma-Fehler BreiteStandardabweichung in Metern
1-Sigma-Fehler LängeStandardabweichung in Metern
1-Sigma-Fehler HöheStandardabweichung in Metern

Aus diesen Werten berechnet die App:

  • HRMS = sqrt(lat_error^2 + lon_error^2)
  • VRMS = height_error
  • 3D RMS = sqrt(lat_error^2 + lon_error^2 + height_error^2)

VTG – Course Over Ground and Ground Speed​

Wird intern verwendet, um den Zustandsautomaten des NMEA-Parsers weiterzuschalten; der Satz markiert das Ende einer Satzfolge.

Unterstützte Talker-IDs: GPVTG, GNVTG

GLL – Geographic Position​

Liefert Breite und Länge mit UTC-Zeit. Wird nur verwendet, wenn der Empfänger weder GGA noch RMC ausgibt.

Unterstützte Talker-IDs: GPGLL, GNGLL

GNS – GNSS Fix Data​

Ein Multi-GNSS-Gegenstück zu GGA mit einem Modusindikator je Satellitensystem. Aktualisiert den NMEA-Zustand entsprechend.

PNVGSDP – Proprietärer Genauigkeitssatz​

Ein proprietärer Satz (NovAtel-kompatibel) mit den Standardabweichungen für Breite, Länge und Höhe sowie einem Zeichen für den Fix-Modus:

ModusBedeutung
AAutonom
DDifferenziell
FRTK Float
RRTK Fixed
EKoppelnavigation
NKein Fix

Priorität der Satztypen​

Der Parser verwendet einen Zustandsautomaten, damit keine Daten aus unterschiedlichen Messepochen vermischt werden. Liefern mehrere Satztypen überlappende Daten, gilt folgende Priorität:

  1. GGA – bevorzugt für Position und Fix-Qualität
  2. RMC – wird verwendet, wenn kein GGA vorliegt (liefert Geschwindigkeit und Kurs, die in GGA fehlen)
  3. GLL – letzte Möglichkeit, nur für die Position

Prüfsummenkontrolle​

Jeder NMEA-Satz endet mit einer zweistelligen hexadezimalen Prüfsumme, der ein * vorangestellt ist. Die Prüfsumme wird per XOR über alle Bytes zwischen $ und * berechnet:

$GPGGA,120000,...*47
↑ XOR these ↑

Der Parser prüft das Format der Prüfsumme, geht bei der Validierung aber pragmatisch vor: Sätze mit kleineren Formatfehlern werden trotzdem verarbeitet, um mit der großen Vielfalt der GNSS-Empfänger auf dem Markt möglichst kompatibel zu sein.