Quellcode für die Verarbeitung des Nmea-Protokolls. Beschreibung des NMEA-Protokolls

Ich musste eine Anwendung testen, die GNSS-Daten über das NMEA-Protokoll verwendet. Das lag daran, dass ich an einem Projekt für ein Flugzeugnavigationsprogramm arbeitete, Tests in der Luft natürlich teuer sind und das Fahren eines Autos mit einem GNSS-Empfänger am Boden nicht besonders bequem ist, deshalb wollte ich NMEA-Protokolldaten haben vom angeblichen Bewegen von Geräten an einem virtuellen Parallelport, während ich an meinem Schreibtisch sitze. Zuerst war ich auf der Suche nach einer anderen Software, ich dachte, ich würde etwas Passendes finden, aber die meisten sind kostenpflichtig und die Datenemulationssteuerung ist nicht sehr praktisch, obwohl sie fast alle Parameter des NMEA-Standards emuliert. Aber ich brauchte etwas Einfaches, das Koordinaten, Geschwindigkeit und im Grunde nichts weiter emuliert, und ich brauchte eine recht praktische und logische Steuerung. Also musste ich eine solche Anwendung in C# schreiben.

Fly_nmea


NMEA („National Marine Electronics Association“) – der vollständige Name lautet „NMEA 0183“ – ein Textprotokoll für die Kommunikation zwischen Schiffsgeräten (normalerweise Navigationsgeräten).
Die Übermittlung der Daten erfolgt in Form von Sätzen. Das Vorschlagsformat ist wie folgt:
$AAAAAA[,<данные>]*hh , Wo:
$ - Satzanfangssymbol (Code 24h);
AAAAA – fünfstellige Adresse (Name) des Angebots;
[, <данные>] – Liste der durch Kommas getrennten Datenfelder (Code 2Сh);
* - Prüfsummenzeichen (Code 2Ah);
hh – Prüfsumme.

Beispielsatz:
GGA – GPS-Standortdaten
Zeit, Ort und Daten im Zusammenhang mit der Beobachtung.
$GPGGA,hhmmss.sss,llll.ll,a,yyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxx*hh

Ich musste vier Zeilen emulieren:

  • GLL – Standortkoordinaten
  • GSV – Sichtbare Satelliten
  • RMC – Empfohlener Mindestdatensatz für GPS und GLONASS
  • GSA – Genfür Navigationssatelliten
Die Emulation ist in der folgenden Reihenfolge organisiert:
  • Wir legen die Anfangskoordinaten im WGS-84-System fest
  • dann gehen wir zu einer flachen Projektion, zum Beispiel Mercator (zum Konvertieren von Koordinaten habe ich eine vorgefertigte Bibliothek in C# verwendet)
  • Da wir die Ebenenkoordinaten x, y, h kennen, implementieren wir die Physik der Flugzeugbewegung mithilfe variabler Parameter über eine grafische Oberfläche, wie zum Beispiel: Rollen, Nicken, Geschwindigkeit
  • Konvertieren Sie flache Koordinaten in B-, L- und H-Koordinaten des WGS-84-Systems
  • Aus den benötigten vier Zeilen bilden wir ein Paket von NMEA-Standardnachrichten
  • Senden Sie sie an den virtuellen Parallelport
Fly_nmea + Android-Sensor
Für ein komfortableres Testen habe ich auch den Empfang von Daten von Android-Sensoren (Neigungswinkel) angepasst. Android sendet zwei Zeilen wie:
  • „Winkel:\t236.04152\t-1.0\t-3.0“
  • „Acc:\t-0.46309182\t-0.14982383\t-10.56939“
In der Emulationsanwendung übernehme ich sie und ändere je nach Neigungswinkel die Parameter:
  • Tonhöhe
In der Emulationsanwendung können Sie von der Steuerung über die Programmoberfläche zum Android Sensor wechseln.
Fly_nmea-Verbindung
Um COM-Ports zu emulieren, ist auch der Virtual Serial Ports Emulator nützlich; Sie müssen die Verbindung von zwei virtuellen COM-Ports konfigurieren, zum Beispiel: COM1<->COM6, und das Fly_nmea-Programm sendet Daten an COM6, und an COM1 empfängt ein Programm, das das NMEA-Protokoll verwendet, diese.

Abschluss

Im Allgemeinen habe ich mehr Zeit damit verbracht, nach einer solchen Software zu suchen, und da ich nicht etwas gefunden habe, das mich vollständig zufriedenstellte, habe ich es schnell selbst geschrieben. Zusätzlich zu dem Projekt, an dem ich arbeitete, gelang es mir auch, den Emulator recht erfolgreich mit Programmen zu verbinden, die das NMEA-Protokoll verstehen, wie zum Beispiel 2Gis und SAS Planet.



FlyNMEA und Android Sensor (Projekt zur Übertragung von Daten von Sensoren über UDP)

NMEA 0183(aus " Nationale Marine-Elektronik-Vereinigung") - ein Standard, der ein Textprotokoll für die Kommunikation von Schiffsausrüstung (normalerweise Navigationsausrüstung) (oder Ausrüstung, die in Zügen verwendet wird) untereinander definiert. Besonders beliebt wurde es durch die Verbreitung von GPS-Empfängern, die diesen Standard verwenden.

Gesamtansicht der Linien in NMEA 0183

  • „$“ oder „!“ (Hex 24 oder Hex 21)
  • 5-stellige Nachrichten-ID. Die ersten beiden Buchstaben sind die Kennung der Nachrichtenquelle, die nächsten drei Buchstaben sind die Kennung des Nachrichtenformats gemäß dem NMEA 0183-Protokoll einer bestimmten Version.
  • eine durch Kommas getrennte Liste von Daten (Buchstaben, Zahlen und Punkte). Falls Daten fehlen innen In Zeilen werden weiterhin Kommas gesetzt (z. B. „,“). Einige Felder Am Ende Zeilen können ganz fehlen.
  • Symbol „*“.
  • 8-Bit-XOR – die Summe aller Zeichen (einschließlich „,“ und „^“) in der Zeile zwischen „$“ und „*“, konvertiert in zwei ASCII-Großbuchstaben für die hexadezimale Darstellung des Bytes (0–9, A -F) .
  • (hex 0D, hex 0A).

Die maximale Nachrichtenlänge ist auf 82 Zeichen begrenzt (NMEA 0183 rev 3.0)

Der Standard beschreibt mehr als 250 NMEA-Sequenzkennungen. Der Standard definiert Datenaustauschraten mit 4800 Baud. (Für Geschwindigkeiten von 38400 Baud und höher gibt es einen erweiterten Standard NMEA-0183-HS).

Der Standard ermöglicht das Hinzufügen eigener Sequenzkennungen, die häufig von Herstellern verwendet werden, um zusätzliche Informationen über den Betrieb des Geräts zu übermitteln.

RMC-String (spezielles Beispiel)

$GPRMC,hhmmss.sss,A,GGMM.MM,P,gggmm.mm,J,v.v, b.b, ddmmyy, x.x, n,m*hh

Feldwerte:

  • „GP“ – Quellenkennung; Im angegebenen Beispiel ist dies GPS, „GL“ – GLONASS, „GA“ – Galileo, „GN“ – GLONASS+GPS usw.
  • „RMC“ – „Empfohlener Mindestsatz C“
  • „hhmmss.sss“ – Uhrzeit der Standortbestimmung gemäß UTC: „hh“ – Stunden, „mm“ – Minuten, „ss.sss“ – Sekunden. Die Länge der Sekundenbruchteile variiert. Führende Nullen werden nicht weggelassen.
  • „A“ – Status: „A“ – Daten sind zuverlässig, „V“ – unzuverlässig.
  • „GGMM.MM“ – Breitengrad. 2 Grad-Stellen („GG“), 2 ganze Minuten-Stellen, ein Punkt und ein Bruchteil von Minuten variabler Länge. Führende Nullen werden nicht weggelassen.
  • „P“ – „N“ für nördliche oder „S“ für südliche Breite.
  • „gggmm.mm“ – Längengrad. 3 Ziffern für Gradzahlen („ggg“), 2 Ziffern für ganze Minuten, ein Punkt und ein Bruchteil von Minuten variabler Länge. Führende Nullen werden nicht weggelassen.
  • „J“ – „E“ für östliche oder „W“ für westliche Länge.
  • „v.v“ ist die horizontale Komponente der Geschwindigkeit relativ zum Boden in Knoten. Gleitkommazahl. Ganzzahlige und gebrochene Teile variabler Länge.
  • „b.b“ – Spurwinkel (Geschwindigkeitsrichtung) in Grad. Gleitkommazahl. Ganzzahlige und gebrochene Teile variabler Länge. Ein Wert von 0 entspricht einer Bewegung nach Norden, 90 nach Osten, 180 nach Süden, 270 nach Westen.
  • „ddmmyy“ – Datum: Tag des Monats, Monat, letzte 2 Ziffern des Jahres (führende Nullen sind erforderlich).
  • „x.x“ ist die magnetische Deklination in Grad (fehlt oft), berechnet mit einem Modell. Gleitkommazahl. Ganzzahlige und gebrochene Teile variabler Länge.
  • „n“ – Richtung der magnetischen Deklination: Um einen magnetischen Kurs zu erhalten, muss die magnetische Deklination „E“ – subtrahiert, „W“ – zum wahren Kurs addiert werden.
  • „m“ – Modusanzeige: „A“ – autonom, „D“ – differenziell, „E“ – Näherung, „N“ – unzuverlässige Daten (oft fehlend, dieses Feld einschließlich des Kommas fehlt in älteren Versionen von NMEA).
  • „hh“ – Prüfsumme.
  • - Byte ist 0x0D.
  • - Byte ist 0x0A.

RMC-String-Beispiele

Beispiel 1

$GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,*17

Feldwerte:

  • 12 Stunden 55 Minuten 4,049 Sekunden UTC
  • "Ein zuverlässiger
  • Breitengrad 55° 42,2389", nördlich
  • Längengrad 37° 41,6063", östlich
  • Geschwindigkeit 0,06 Knoten

NMEA (National Marine Electronics Association) 2000 ist ein Datenübertragungsstandard für Navigations-, Kommunikations- und andere Informationsnetzwerkgeräte.

In den meisten Fällen wird NMEA2000 in Marineanwendungen eingesetzt. Dieses Protokoll basiert auf dem Datenübertragungsprotokoll DÜRFEN(Controller Area Network), wird hauptsächlich in der Schiffsautomatisierung verwendet.

Die National Marine Electronics Association (NMEA) hat ein spezielles Protokoll entwickelt, um die Kompatibilität zwischen Marineprodukten verschiedener Hersteller sicherzustellen.

Seit seiner Einführung wurde das NMEA-Protokoll mehrfach geändert, um neue Felder und Nachrichten aufzunehmen. Die aktuelle Version, die von den meisten Receivern unterstützt wird, ist Version 2.3, obwohl eine Beschreibung des neuen bereits veröffentlicht wurde Version 3.0.

NMEA-Nachrichten

NMEA 2000 beschreibt nicht nur die empfangenen Daten, sondern auch die Messungen , , Barometer und andere auf Schiffen verwendete Navigationsgeräte. Die Datenaustauschschnittstelle der meisten tragbaren GPS-Empfänger ist gemäß der NMEA-Spezifikation implementiert. Die meisten Navigationsprogramme, die eine Echtzeit-Datenanzeige bieten, unterstützen und „verstehen“ das NMEA-Protokoll. Diese Daten beinhalten die kompletten Navigationsmessungen des GPS-Empfängers – Position, Geschwindigkeit und Zeit.

Die vollständige NMEA-Nachrichtenspezifikation ist nicht öffentlich verfügbar und kann nicht offiziell elektronisch heruntergeladen werden. Die einzelnen Abschnitte, eine allgemeine Beschreibung des NMEA-Protokolls und die beliebtesten Meldungen finden Sie im Internet. Sie können die NMEA-Dokumentation offiziell auf der Website //www.nmea.org/ erwerben.

Ausgehende NMEA-Nachrichten

Alle NMEA-Nachrichten bestehen aus einem sequentiellen Satz von Daten, die durch Kommas getrennt sind. Jede einzelne Nachricht ist unabhängig von den anderen und vollständig „vollständig“. Die NMEA-Nachricht umfasst:

  • Titel,
  • ein durch ASCII-Zeichen dargestellter Datensatz,
  • Feld „Prüfsumme“, um die Richtigkeit der übermittelten Informationen zu überprüfen.

Überschrift

Typischerweise besteht der Titel aus fünf Zeichen. Die ersten beiden Zeichen bestimmen den Nachrichtentyp und die restlichen drei geben den Namen an. Beispielsweise beginnt der GPS-NMEA-Header von Nachrichten mit „GP“. Nachrichten, die nicht in der NMEA-Spezifikation beschrieben sind, aber nach allgemeinen Regeln in GPS-Empfängern implementiert werden, werden mit einem „P“ vorangestellt, gefolgt von drei unternehmensspezifischen Zeichen. NMEA-Nachrichten haben beispielsweise das Präfix „PGRM“, Magellan – „PMGN“.

Daten

Jede NMEA-Nachricht beginnt mit „$“, endet mit „\n“ (Zeilenvorschub) und darf nicht länger als 80 Zeichen sein. Alle Daten sind in einer Zeile enthalten und durch Kommas getrennt. Die Informationen werden in Form von ASCII-Text dargestellt und erfordern keine spezielle Dekodierung. Passen die Daten nicht in die vorgesehenen 80 Zeichen, werden sie in mehrere Nachrichten „aufgeteilt“. Mit diesem Format können Sie die Genauigkeit und Anzahl der Zeichen in einzelnen Datenfeldern nicht einschränken. Beispielsweise kann der Bruchteil eines Koordinatenwerts durch drei oder vier Dezimalstellen dargestellt werden, dies sollte jedoch keinerlei Auswirkungen auf den Betrieb der Software haben, die die erforderlichen Daten anhand der Feldnummer aus der Nachricht extrahiert.

Feld „Prüfsumme“.

Am Ende von jedem NMEA Die Nachricht enthält ein „Prüfsummen“-Feld, das durch das „*“-Symbol von den Daten getrennt ist. Bei Bedarf kann damit die Integrität und Gültigkeit jeder empfangenen Nachricht überprüft werden.

Eingehende NMEA-Nachrichten

Das NMEA 2000-Protokoll unterstützt nicht nur ausgehende, sondern auch eingehende Nachrichten, mit denen Sie beispielsweise Routenwegpunkte aktualisieren oder hinzufügen können. Diese Nachrichten müssen unbedingt im NMEA-Format formatiert sein, andernfalls werden sie ignoriert.

Liste der Nachrichten

Das NMEA-Protokoll beschreibt eine große Liste verschiedener Nachrichten, von denen zwei Dutzend aktiv in Navigationsgeräten verwendet werden. Aufgrund der großen Beliebtheit und einfachen Darstellung von Daten hat das NMEA-Protokoll nicht nur in Schiffsgeräten, sondern auch in geodätischen, Haushalts- und Luftfahrt-GPS-Empfängern Anwendung gefunden.

AAM – Ankunft am Wegpunkt
ALM – Almanachdaten
APA – Autopilot-Daten „A“
APB – Autopilot-Daten „B“
BSB – Peilung zum Ziel
DTM – Verwendetes Datum
GGA – Informationen zur festen Lösung
GLL – Breiten- und Längengraddaten
GSA – Allgemeine Satelliteninformationen
GSV – Detaillierte Satelliteninformationen
MSK – Übergabe der Kontrolle an den Basisempfänger
MSS – Grundlegender Empfängerstatus
RMA – Empfohlener Loran-Datensatz
RMB – Empfohlener GPS-Navigationsdatensatz
RMC – Empfohlener minimaler GPS-Datensatz
RTE – Routeninformationen
VTG – Bewegungs- und Geschwindigkeitsvektor
WCV – Geschwindigkeitsdaten in der Nähe des Wegpunkts
WPL – Wegpunktdaten
XTC – Off-Track-Fehler
XTE – Gemessener Off-Track-Fehler
ZTG – UTC-Zeit und verbleibende Zeit bis zur Ankunft am Zielort
ZDA – Datum und Uhrzeit

Einige der NMEA-Nachrichten enthalten möglicherweise dieselben Datenfelder oder enthalten vollständig die Daten anderer, kleinerer NMEA-Nachrichten.

1. GGA – Informationen zu einer festen Lösung.

Die beliebteste und am häufigsten verwendete NMEA-Nachricht liefert Informationen über die aktuelle feste Lösung – horizontale Koordinaten, Höhenwert, Anzahl der verwendeten Satelliten und Lösungstyp.

$GPGGA,123519,4807.038,N,01131.000,E,1.08,0.9,545.4,M,46.9,M,*47 Wo:

GGA – NMEA-Header

123519 – UTC-Zeit 12:35:19

4807,038, N – Breitengrad, 48 Grad 7,038 Minuten nördlicher Breite

01131.000, E – Längengrad, 11 Grad 31.000 Minuten östlicher Längengrad

1 – Lösungstyp*, StandAlone-Lösung

08 – Anzahl der verwendeten Satelliten

0,9 – geometrischer Faktor, HDOP

545,4, M – Höhe über dem Meeresspiegel in Metern

46,9, M – Höhe des Geoids über dem WGS 84-Ellipsoid

[leeres Feld] – seit dem Empfang der letzten DGPS-Korrektur verstrichene Zeit. Wird ausgefüllt, wenn der DGPS-Modus aktiviert ist

[leeres Feld] – Identifikationsnummer der Basisstation. Wird ausgefüllt, wenn der DGPS-Modus aktiviert ist.

*Lösungstypen:

2. GSA – allgemeine Informationen über Satelliten

Diese NMEA-Nachricht enthält eine Liste der bei der Positionsberechnung verwendeten Satelliten und die Werte der geometrischen DOPs, die die Genauigkeit der Positionsberechnung bestimmen. DOP-Parameter werden durch die geometrische Anordnung der Satelliten am Himmel bestimmt. Je besser die Satelliten am Himmel „verteilt“ sind, desto geringer ist der DOP und desto besser ist die Positionsgenauigkeit. Der minimale PDOP-Wert (= 1) entspricht einer Situation, in der sich ein Satellit direkt über dem Benutzer befindet und die anderen drei gleichmäßig auf Horizonthöhe verteilt sind. Der PDOP-Wert wird als Quadratwurzel der Summe der Quadrate von HDOP und VDOP berechnet.

$GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39 Wo:

GSA – NMEA-Header

A – Art der Wahl zwischen 2D- und 3D-Lösungen, automatisch (A-automatisch, M-manuell)

3 – Art der Lösung, 3D-Lösung (1 – keine Lösung, 2 – 2D-Lösung, 3 – 3D-Lösung)

04.05… – PRN-Codes zur Berechnung von Satellitenpositionen (12 Felder)

2,5 – räumlicher geometrischer Faktor, PDOP

1,3 – horizontaler geometrischer Faktor, HDOP

2.1 – vertikaler geometrischer Faktor, VDOP

3. GSV – Detaillierte Informationen zu Satelliten

Diese NMEA-Nachricht enthält detaillierte Informationen zu allen vom GPS-Navigator verfolgten Satelliten. Basierend auf der Beschränkung auf 80 Zeichen kann eine NMEA-Nachricht nur Daten für 4 Satelliten übertragen. Dementsprechend benötigen 12 Satelliten 3 GSV-Nachrichten. Das Feld SNR (Signal to Noise Ration) enthält die Werte der Pegel der von Satelliten empfangenen Navigationssignale. Theoretisch kann sein Wert zwischen 0 und 99 variieren und wird in dB gemessen. Tatsächlich liegt der Signalpegel im Bereich von 25 ... 35 dB. Hierbei ist zu beachten, dass dieser Parameter nicht absolut ist und nicht zum Vergleich der Empfindlichkeit von Empfängern verschiedener Modelle und Hersteller geeignet ist. GPS-Navigatoren können unterschiedliche Algorithmen zur Berechnung des Pegels des empfangenen Signals verwenden, was bei gleicher Empfindlichkeit der Empfänger zu unterschiedlichen Ergebnissen führt. Für jeden sichtbaren GPS-Satelliten wird eine Reihe von Informationen übertragen, darunter Signalstärke, Höhenwinkel und Azimut des Satelliten. Die Anzahl dieser „Sets“ wird durch die Gesamtzahl der sichtbaren Satelliten bestimmt, deren Wert in einem separaten Feld übertragen wird.

$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75 Wo:

GSV – NMEA-Header

2 – Anzahl der GSV-Nachrichten im Paket

1 – Nachrichtennummer im Paket (von 1 bis 3)

08 – Anzahl der sichtbaren Satelliten

01 – Satellitennummer

40 – Höhenwinkel in Grad

083 – Azimut in Grad

46 – SNR, Signalpegel

Diese NMEA-Nachricht enthält den gesamten Satz sogenannter „PVT“-Daten. „PVT“ ist eine gebräuchliche Abkürzung für „Position, Geschwindigkeit, Zeit“.

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A Wo:

RMC – NMEA-Header 123419 – UTC-Zeit, 12:34:59

A – Status (A – aktiv, V – ignorieren)

NMEA 0183– Textkommunikationsprotokoll, das in GPS-Empfangsmodulen verwendet wird. Dieser Standard wurde für die Kommunikation von Schiffsnavigationsgeräten erstellt. Das Protokoll sieht die Übertragung von Textbefehlen und Nachrichten mithilfe von ASCII-Zeichen vor. Um Nachrichten zu empfangen, reicht es also aus, die serielle UART-Schnittstelle zu verwenden, während alle Nachrichten über den COM-Port direkt an den Computer übertragen werden können, wobei die Notwendigkeit der Signalpegelumwandlung nicht zu vergessen ist.

Das GPS-Modul überträgt Nachrichten unterschiedlicher Formate mit unterschiedlichen Datensätzen: Breiten- und Längengrad, Geschwindigkeit, Kurs, Zeit, Anzahl der Satelliten usw. Nachrichten werden nacheinander übertragen und sind in mehrere Typen unterteilt. Das Format jedes Nachrichtentyps enthält streng definierte Informationen in seinen Feldern. Schauen wir uns die allgemeine Struktur der Nachrichten, die das GPS-Modul erzeugt, genauer an.

$ - Jede Nachricht beginnt mit diesem Symbol

Darauf folgt eine Kennung aus 5 Textzeichen. Die ersten beiden Buchstaben geben den Typ des Navigationssystems an, z.B. „GP“ – GPS oder " GL" - Glonass usw. Die nächsten 3 Zeichen sind die Kennung des Nachrichtenformats, die den Inhalt der nachfolgend übertragenen Daten vollständig bestimmt. Zum Beispiel „RMC“- Dies sind die empfohlenen Mindestdaten, die Informationen zu Uhrzeit und Datum, Breiten- und Längengrad, Geschwindigkeit, Kurs und magnetischer Abweichung in Grad enthalten (möglicherweise fehlen sie). Oder „GSA“ Hier werden Satellitendaten übertragen. Die Struktur der wichtigsten Nachrichtentypen wird im Folgenden erläutert.

Dann folgt «,» - ein Komma, auf das unmittelbar der Nachrichtentext mit verschiedenen Daten folgt, die durch dasselbe Komma voneinander getrennt sind. Wenn die übertragene Zahl keine ganze Zahl ist, ist das Trennzeichen zwischen der ganzen Zahl und dem Bruchteil ein Punkt «.» .

Das Ende des Nachrichtentextes wird durch das Symbol angezeigt «*» . Was folgt, ist die Prüfsumme aller zwischen „$“ und „*“ enthaltenen Zeichen, also der gesamte Nachrichtentext, einschließlich der Daten selbst und der Bezeichner am Anfang der Nachricht. Die Prüfsumme wird durch XOR-Verknüpfung aller hexadezimalen ASCII-Codes der Nachrichtenzeichen berechnet.

Und ganz am Ende jeder Nachricht müssen Zeilenumbrüche stehen

Schauen wir uns den Zweck und die Struktur verschiedener Nachrichtentypen an.

R.M.C.– empfohlene Mindestnavigationsdaten. Die Nachricht enthält die minimal erforderliche Menge an Informationen. Zu diesen Daten gehören Breiten- und Längengrad, Datum und Uhrzeit sowie Geschwindigkeit. Für viele Aufgaben wird beispielsweise im Modul nicht mehr benötigt Quectel L50 Ich habe die Übertragung aller anderen Arten von Nachrichten deaktiviert, da ich absolut keine Informationen über Satelliten und den Pegel ihrer Signale benötige. Und um unnötige Informationen zu erhalten, muss das Programm zur Verarbeitung dieser Daten komplizierter werden. Der Aufbau der Nachricht ist wie folgt:

$GPRMC hhmmss.sss,A,ttmm.mmmm,N,TTMM. mmmm , E,v.v.C. C, DD / MM / JJJJ,x.x,n,M*hh

Diese Nachricht enthält die folgenden Informationen:

  • GPRMC– GPS-Satellitensystem, RMC-Nachrichtenkennung
  • hhmmss.sss– Zeit (Greenwich Mean Time), wobei hh – Stunden, mm – Minuten, ss.sss – Sekunden
  • A– die Daten zuverlässig sind oder V– Die Daten sind unzuverlässig. Symbol A Es erfolgt die Meldung, dass die zur Berechnung der Standortdaten notwendigen Signale der Satelliten zuverlässig empfangen werden. Symbol V tritt auf, wenn der Empfänger die Satelliten nicht erkennt oder wenn die Anzahl der gefundenen Satelliten nicht ausreicht, um die Koordinaten zuverlässig zu berechnen. Wenn Sie beispielsweise das GPS-Modul irgendwo in einem Plattenhaus und nicht in der Nähe der Fenster einschalten, werden Sie höchstwahrscheinlich das Symbol sehen V in der empfangenen Nachricht.
  • ttmm.mmmm– Breitengrad, Grad und Minuten
  • N oder S- Norden oder Süden. Die Hemisphäre, in der Sie sich befinden. Wenn Sie in Australien sind, wird es angezeigt S. In Jekaterinburg gibt mein GPS-Modul nach N.
  • ttmm.mmmm– Längengrad, Grad und Minuten
  • E oder W– westliche oder östliche Hemisphäre
  • v.v– Geschwindigkeit in Knoten
  • C. C– Kurs über dem Boden in Grad. Bei einer Bewegung genau nach Norden beträgt der Wert 0 Grad.
  • DD / MM / JJJJ- Datum
  • x.x– magnetische Deklination
  • N– Richtung der magnetischen Deklination. Zu diesen letzten beiden Parametern kann ich nichts erklären. Zum Beispiel mein Modul GPS Quectel L50 Beim Empfang in der Wohnung wurden diese Daten überhaupt nicht am Fenster angezeigt, sondern einfach übersprungen.
  • M– Navigationsmodus: N– ungenaue Daten, A– autonom, D– Differenzial

Hier ist ein Beispiel für eine RMC-Nachricht:

$GPRMC,105954.000,A,3150.6731,N,11711.9399,E,0.00,96.10,250313,A*53

  • mittlere Greenwich-Zeit 10h 59m 54s
  • A– Die Daten sind zuverlässig
  • Breite 31 Grad und 50,6371 Minuten
  • N– nördlich
  • Längengrad 117 Grad 11,9399 Minuten
  • E– östlich
  • Geschwindigkeit 0,00 Knoten
  • Also 96,1 Grad
  • Datum 25. März 2013
  • Daten über magnetische Deklination keiner
  • Modus - autonom
  • Prüfsumme der Nachrichtenzeichen 0×053

Ein Punkt muss hier beachtet werden. Breiten- und Längengraddaten enthalten einen Bruchteil von Minuten, der überhaupt nicht der Anzahl der „Sekunden“ entspricht, da es sich um einen Dezimalbruch handelt. Die GPS-Programme, die ich ausprobiert habe, zeigen die Koordinaten auf der Karte genau an. Wenn Sie diese Zahlen jedoch in die Suchleiste von Google Maps eingeben, wird der Standort auf der Karte mehrere Kilometer vom tatsächlichen entfernt sein. Wenn Sie in diesem Fall die erhaltenen Koordinaten eingeben, müssen Sie den Bruchteil der Breiten- und Längengrade durch 60 dividieren, um diese Zahlen in „Sekunden“ umzuwandeln. Als ich das Quectel L50-Modul zum ersten Mal anschloss und die erhaltenen Breiten- und Längenkoordinaten in die Suchleiste von Google Maps eingab, erhielt ich eine Position auf der Karte mit einem erheblichen Fehler. Die Karte zeigte einen Ort irgendwo im Uralmasch-Gebiet an.

Hier sind einige andere Nachrichtentypen, die in diesem Protokoll verwendet werden:

  • VTG- wahre Kursrichtung und Geschwindigkeit über Grund
  • GGA- letzte Standortdaten
  • G.S.A.- Daten zu aktiven Satelliten
  • GSV- Daten zu sichtbaren Satelliten, deren Position und Anzahl sowie Signalstärke
  • GLL- Breiten-, Längen- und Zeitdaten
  • ZDA- Informationen zu Uhrzeit und Datum

Ich habe nicht näher darauf eingegangen, woraus jede Nachricht besteht; am Ende des Artikels finden Sie einen Link zu einem Dokument, das das Protokoll beschreibt. Ein bestimmter GPS-Modultyp überträgt möglicherweise nicht alle aufgeführten Daten. Sie können die Übermittlung verschiedener Arten von Daten deaktivieren oder aktivieren sowie den Zeitraum für deren Übermittlung festlegen. Zur Konfiguration des Moduls gibt es spezielle Befehle, die mit einer Kennung beginnen $PSRFxxx, Wo xxx Gibt den Typ und das Format des Befehls an, genau wie bei ausgehenden Nachrichten.

Zum Beispiel der Befehl $PSRF100.0.9600.8.1.0*0C legt das Kommunikationsprotokoll fest und konfiguriert die Parameter der seriellen Schnittstelle.

  • $PSRF100 – Befehls-ID des nativen SIRF-Protokolls
  • 0 – binäres SIRF-Protokoll, 1 – NMEA-Protokoll
  • 9600 – Bit/s-Geschwindigkeit
  • 8 Datenbit
  • 1 Stoppbit
  • 0 – Paritätsprüfung deaktiviert

Team $PSRF103.00.00.02.01*26 konfiguriert Ausgabeparameter für verschiedene Arten von Modulnachrichten:

  • $PSRF103– Befehls-ID des nativen SIRF-Protokolls
  • dann gibt es nach dem Dezimalpunkt zwei Ziffern, die den Typ der benutzerdefinierten Nachricht bestimmen: 00 – GGA
    01 - GLL
    02 - GSA
    03 - GSV
    04 - RMC
    05 - VTG
  • Die nächsten beiden Ziffern konfigurieren die Reihenfolge, in der Nachrichten ausgegeben werden, zum Beispiel: 00 – periodisch
    01 - auf Anfrage
  • Die folgenden Zahlen legen den Nachrichtenzeitraum in Sekunden fest: 00 = Aus (Nachrichten sind deaktiviert)
    1-255 – Intervall zwischen Nachrichten dieses Typs in Sekunden
  • dann wird die Prüfsummenübertragung in der vom Modul gesendeten NMEA-Nachricht aktiviert/deaktiviert: 00 – Prüfsummenübertragung ist deaktiviert
    01 – Prüfsumme wird übertragen
  • Nach dem „*“-Zeichen werden, wie bei der ausgehenden NMEA-Nachricht, eine Prüfsumme und Zeilenvorschubzeichen übertragen.

Das ist alles, was ich kurz über das NMEA 0183-Protokoll und die Modulsteuerbefehle auf dem SIRF-Chipsatz darlegen wollte. Eine detailliertere Dekodierung all dieser Nachrichten und Befehle finden Sie beispielsweise in der Beschreibung des Quectel L50-Modulprotokolls, die über den untenstehenden Link heruntergeladen werden kann.

Beschreibung des NMEA-Protokolls.

Implementierung in Garmin- und GlobalSat-Empfängern

Einführung

Die National Marine Electronics Association (NMEA) hat ein spezielles Protokoll entwickelt, um die Kompatibilität zwischen Schiffsnavigationsgeräten verschiedener Hersteller aufrechtzuerhalten. Dieses NMEA-Protokoll beschreibt nicht nur von GPS-Empfängern empfangene Daten, sondern auch Messungen von Sonargeräten, Radargeräten, elektronischen Kompassen, Barometern und anderen Navigationsgeräten, die auf Seeschiffen verwendet werden. Die Datenaustauschschnittstelle der meisten tragbaren GPS-Empfänger ist gemäß der NMEA-Spezifikation implementiert. Die meisten Navigationsprogramme, die eine Echtzeit-Datenanzeige bieten, unterstützen und „verstehen“ das NMEA-Protokoll. Diese Daten beinhalten die kompletten Navigationsmessungen des GPS-Empfängers – Position, Geschwindigkeit und Zeit. Alle NMEA-Nachrichten bestehen aus einem sequentiellen Satz von Daten, die durch Kommas getrennt sind. Jede einzelne Nachricht ist unabhängig von den anderen und vollständig „vollständig“. Eine NMEA-Nachricht enthält einen Header, einen durch ASCII-Zeichen dargestellten Datensatz und ein Prüfsummenfeld zur Überprüfung der Gültigkeit der übertragenen Informationen. Der Header von Standard-NMEA-Nachrichten besteht aus 5 Zeichen, von denen die ersten beiden den Typ der Nachricht bestimmen und die restlichen drei ihren Namen angeben. Beispielsweise wird allen GPS-NMEA-Nachrichten das Präfix „GP“ vorangestellt. Nachrichten, die nicht in der NMEA-Spezifikation beschrieben sind, aber nach allgemeinen Regeln in GPS-Empfängern implementiert werden, werden mit einem „P“ vorangestellt, gefolgt von drei unternehmensspezifischen Zeichen. Beispielsweise haben Garmins „native“ NMEA-Nachrichten das Präfix „PGRM“, Magellan – „PMGN“. Jede NMEA-Nachricht beginnt mit „$“, endet mit „\n“ („Zeilenvorschub“) und darf nicht länger als 80 Zeichen sein . Alle Daten sind in einer Zeile enthalten und durch Kommas voneinander getrennt. Die Informationen werden in Form von ASCII-Text dargestellt und erfordern keine spezielle Dekodierung. Passen die Daten nicht in die vorgesehenen 80 Zeichen, werden sie in mehrere NMEA-Nachrichten „aufgeteilt“. Mit diesem Format können Sie die Genauigkeit und Anzahl der Zeichen in einzelnen Datenfeldern nicht einschränken. Beispielsweise kann der Bruchteil des Koordinatenwerts durch 3 oder 4 Dezimalstellen dargestellt werden, dies sollte jedoch keinerlei Auswirkungen auf den Betrieb der Software haben, die die erforderlichen Daten anhand der Feldnummer aus der Nachricht auswählt. Am Ende jeder NMEA-Nachricht befindet sich ein „Prüfsummen“-Feld, das durch ein „*“-Zeichen von den Daten getrennt ist. Bei Bedarf kann damit die Integrität und Gültigkeit jeder empfangenen Nachricht überprüft werden. Das NMEA-Protokoll unterstützt nicht nur ausgehende, sondern auch eingehende Nachrichten, mit denen Sie beispielsweise Routenwegpunkte aktualisieren oder hinzufügen können. Diese Nachrichten müssen streng nach dem NMEA-Format generiert werden, sonst werden sie vom GPS-Empfänger einfach ignoriert. Es ist zu beachten, dass nicht alle Navigationsprogramme und Empfängermodelle diesen Modus unterstützen, da sie proprietäre Protokolle der Hersteller – Garmin, Magellan usw. – zum Laden von Punkten und Routen verwenden. Seit seiner Einführung hat das NMEA-Protokoll mehrere Änderungen erfahren, die mit der Hinzufügung neuer Felder und Nachrichten verbunden sind. Die aktuell von den meisten Receivern unterstützte Version ist Version 2.3, obwohl bereits eine neue Version 3.0 veröffentlicht wurde. Die vollständige Spezifikation der NMEA-Nachrichten ist nicht öffentlich verfügbar und kann nicht offiziell in elektronischer Form heruntergeladen werden. Die einzelnen Abschnitte, eine allgemeine Beschreibung des NMEA-Protokolls und die beliebtesten Nachrichten können im Internet gefunden werden. Sie können die NMEA-Dokumentation offiziell unter http://www.nmea.org/ erwerben.

Liste der Nachrichten

Das NMEA-Protokoll beschreibt eine große Liste unterschiedlicher Nachrichten, aus der zwei Dutzend Nachrichten identifiziert werden können, die aktiv in Navigationsgeräten verwendet werden. Aufgrund der großen Beliebtheit und einfachen Darstellung von Daten hat das NMEA-Protokoll nicht nur in Schiffsgeräten, sondern auch in geodätischen, Haushalts- und Luftfahrt-GPS-Empfängern Anwendung gefunden.

    AAM – Ankunft am Wegpunkt

    ALM – Almanachdaten

    APA – Autopilot-Daten „A“

    APB – Autopilot-Daten „B“

    BSB – Peilung zum Ziel

    DTM – Verwendetes Datum

    GGA – Informationen zur festen Lösung

    GLL – Breiten- und Längengraddaten

    GSA – Allgemeine Satelliteninformationen

    GSV – Detaillierte Satelliteninformationen

    MSK – Übergabe der Kontrolle an den Basisempfänger

    MSS – Grundlegender Empfängerstatus

    RTE – Routeninformationen VTG – Bewegungs- und Geschwindigkeitsvektor

    WCV – Geschwindigkeitsdaten in der Nähe des Wegpunkts

    WPL – Wegpunktdaten

    XTC – Off-Track-Fehler

    XTE – Gemessener Off-Track-Fehler

    ZTG – UTC-Zeit und verbleibende Zeit bis zur Ankunft am Zielort

    ZDA – Datum und Uhrzeit.

Einige der NMEA-Nachrichten enthalten möglicherweise dieselben Datenfelder oder enthalten vollständig die Daten anderer, kleinerer NMEA-Nachrichten.

GGA – Informationen zu einer festen Lösung.

Die beliebteste und am häufigsten verwendete NMEA-Nachricht liefert Informationen über die aktuelle feste Lösung – horizontale Koordinaten, Höhenwert, Anzahl der verwendeten Satelliten und Lösungstyp.

$GPGGA,123519,4807.038,N,01131.000,E,1.08,0.9,545.4,M,46.9,M,*47

GGA – NMEA-Header

123519 – UTC-Zeit 12:35:19

4807,038, N – Breitengrad, 48 Grad 7,038 Minuten nördlicher Breite

01131.000, E – Längengrad, 11 Grad 31.000 Minuten östlicher Längengrad

1 – Typlösung, StandAlone-Lösung

08 – Anzahl der verwendeten Satelliten

0,9 – geometrischer Faktor, HDOP

545,4, M – Höhe über dem Meeresspiegel in Metern

46,9, M – Höhe des Geoids über dem WGS 84-Ellipsoid

[leeres Feld] – seit dem Empfang der letzten DGPS-Korrektur verstrichene Zeit. Wird ausgefüllt, wenn der DGPS-Modus aktiviert ist

[leeres Feld] – Identifikationsnummer der Basisstation. Wird ausgefüllt, wenn der DGPS-Modus aktiviert ist.

GSA – allgemeine Informationen über Satelliten.

Diese NMEA-Nachricht enthält eine Liste der bei der Positionsberechnung verwendeten Satelliten und die Werte der geometrischen DOPs, die die Genauigkeit der Positionsberechnung bestimmen. DOP-Parameter werden durch die geometrische Anordnung der Satelliten am Himmel bestimmt. Je besser die Satelliten am Himmel „verteilt“ sind, desto geringer ist der DOP und desto besser ist die Positionsgenauigkeit. Der minimale PDOP-Wert (= 1) entspricht einer Situation, in der sich ein Satellit direkt über dem Benutzer befindet und die anderen drei gleichmäßig auf Horizonthöhe verteilt sind. Der PDOP-Wert wird als Quadratwurzel der Summe der Quadrate von HDOP und VDOP berechnet.

$GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39

    GSA – NMEA-Header

    A – Art der Wahl zwischen 2D- und 3D-Lösungen, automatisch (A-automatisch, M-manuell)

    3 – Art der Lösung, 3D-Lösung (1 – keine Lösung, 2 – 2D-Lösung, 3 – 3D-Lösung)

    04.05… – PRN-Codes zur Berechnung von Satellitenpositionen (12 Felder)

    2,5 – räumlicher geometrischer Faktor, PDOP

    1,3 – horizontaler geometrischer Faktor, HDOP

    2.1 – vertikaler geometrischer Faktor, VDOP

GSV - Detaillierte Informationen zu Satelliten

Diese NMEA-Nachricht enthält detaillierte Informationen zu allen vom GPS-Navigator verfolgten Satelliten. Basierend auf der Beschränkung auf 80 Zeichen kann eine NMEA-Nachricht nur Daten für 4 Satelliten übertragen. Dementsprechend benötigen 12 Satelliten 3 GSV-Nachrichten. Das Feld SNR (Signal to Noise Ration) enthält die Werte der Pegel der von Satelliten empfangenen Navigationssignale. Theoretisch kann sein Wert zwischen 0 und 99 variieren und wird in dB gemessen. Tatsächlich liegt der Signalpegel im Bereich von 25 ... 35 dB. Hierbei ist zu beachten, dass dieser Parameter nicht absolut ist und nicht zum Vergleich der Empfindlichkeit von Empfängern verschiedener Modelle und Hersteller geeignet ist. GPS-Navigatoren können unterschiedliche Algorithmen zur Berechnung des Pegels des empfangenen Signals verwenden, was bei gleicher Empfindlichkeit der Empfänger zu unterschiedlichen Ergebnissen führt. Für jeden sichtbaren GPS-Satelliten wird eine Reihe von Informationen übertragen, darunter Signalstärke, Höhenwinkel und Azimut des Satelliten. Die Anzahl dieser „Sets“ wird durch die Gesamtzahl der sichtbaren Satelliten bestimmt, deren Wert in einem separaten Feld übertragen wird.

$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75

    GSV – NMEA-Header

    2 – Anzahl der GSV-Nachrichten im Paket

    1 – Nachrichtennummer im Paket (von 1 bis 3)

    08 – Anzahl der sichtbaren Satelliten

    01 – Satellitennummer

    40 – Höhenwinkel in Grad

    083 – Azimut in Grad

    46 – SNR, Signalpegel

Diese NMEA-Nachricht enthält den gesamten Satz sogenannter „PVT“-Daten. „PVT“ ist eine gebräuchliche Abkürzung für „Position, Geschwindigkeit, Zeit“.

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

    RMC – NMEA-Header

    123419 – UTC-Zeit, 12:34:59

    A – Status (A – aktiv, V – ignorieren)

    4807.038,N – Breitengrad, 48 Grad 07.038 Minuten nördlicher Breite

    01131.000,E – Längengrad, 11 Grad 31.000 Minuten östlicher Längengrad

    022,4 – Geschwindigkeit, in Knoten

    003.1,W – Magnetische Variationen

GLL – Breiten- und Längengraddaten

NMEA-Nachricht mit den Breiten- und Längenkoordinaten sowie dem Zeitpunkt, zu dem diese Lösung berechnet wurde.

$GPGLL,4916.45,N,12311.12,W,225444,A,*31

    GLL – NMEA-Header

    4916,46,N – Breitengrad, 49 Grad 16,45 Minuten nördlicher Breite

    12311,12,W-Längengrad, 123 Grad 11,12 Minuten westlicher Längengrad

    225444 – Fixierungszeit im UTC-Zeitmaßstab, 22:54:44

BOD – Azimut zum Ziel

Diese NMEA-Nachricht gibt die Peilung zu einem Ziel im Navigationsmodus an.

$GPBOD,045.,T,023.,M,DEST,START*01

    BOD – NMEA-Header

    045.,T – wahre Richtung auf den Punkt

    023.,M – magnetische Richtung zu einem Punkt

    DEST – Endpunkt-Identifikationsnummer

    START – Identifikationsnummer des Startpunkts

$GPRMB,A,0,66,L,003,004,4917,24,N,12309,57,W,001,3,052,5,000,5,V*20

    RMB – NMEA-Header

    A – Datentyp, (A – aktiv, V – ignorieren)

    0,66,L – Abweichung von der Spur. Der Parameter wird in Seemeilen definiert. (L – links, R – rechts)

    003 – Startpunkt-Identifikationsnummer

    004 – Endpunkt-Identifikationsnummer

    4917,24,N – Breitengradwert des Endpunkts, 49 Grad 17,24 Minuten nördlicher Breite

    12309,57,W – Längengradwert des Endpunkts, 123 Grad 09,57 Minuten westlicher Länge

    001,3 – Entfernung zum Punkt, in Seemeilen

    000,5 – Geschwindigkeit, in Knoten

    V – Ankunftsinformationen (A – Ankunft, V – Punkt noch nicht erreicht)

RTE – Routeninformationen

Die NMEA RTE-Nachricht zeigt eine Liste von Wegpunkten auf der aktiven Route an. Es gibt zwei Arten von RTE-Nachrichten. Im ersten Fall werden alle Routenpunkte angezeigt. Im zweiten gibt es lediglich eine Liste der verbleibenden Punkte, die während der Fortbewegung entlang der Route noch besucht werden müssen. Da das NMEA-Protokoll eine Einschränkung hat, wonach die Nachrichtenlänge 80 Zeichen nicht überschreiten sollte, kann eine RTE-Nachricht aus mehreren Zeilen bestehen.

$GPRTE,2,1,c,0,W3IWI,DRIVWY,32CEDR,32-29,32BKLD,32-I95,32-US1,BW-32,BW-198*69

    RTE – NMEA-Header

    2 – Gesamtzahl der Nachrichten zur Anzeige der vollständigen Datenliste

    1 – Nachrichtennummer aus der allgemeinen Liste

    с – RTE-Nachrichtentyp (с – vollständige Liste der Routenpunkte, w – Liste der Punkte, die noch besucht werden müssen)

    0 – Routenkennung

    W3IWI,DRIVWY,.. – Liste der Wegpunkte

Garmin-Funktionen

Garmin-Empfänger unterstützen die meisten NMEA-Nachrichten mit GPS-Messungen, Positionen und Zeit – GGA, GLL, GSA, GSV, RMC. Sowie Navigationsnachrichten - RMB, BOD

Um diese Meldungen anzuzeigen, müssen Sie in den Empfängereinstellungen die Schnittstelle von „Garmin“ auf „NMEA“ ändern und ggf. die gewünschte Geschwindigkeit einstellen. Die gleiche Geschwindigkeit muss im Navigationsprogramm in den Einstellungen der seriellen Schnittstelle eingestellt werden, an die das Navigator angeschlossen ist.

Leider unterstützen Empfänger mit USB-Anschluss das NMEA-Protokoll nicht, sodass die Einstellungen nur auf das Garmin-Protokoll beschränkt sind.

Um Informationen anzuzeigen, die über die serielle Schnittstelle des Computers eingegeben werden, können Sie ein Windows-Terminalprogramm oder eines der Navigationsprogramme verwenden, das diese Funktion unterstützt.

Nachfolgend finden Sie eine Liste der NMEA-Meldungen des Garmin eMap-Empfängers, die in einer Epoche enthalten sind.

$GPRMC,135412,A,5522.8973,N,03710.1401,E,0.0,0.0,190507,9.3,E,A*1F

$GPRMB,A,,A,A*0B

$GPGGA,135412,5522.8973,N,03710.1401,E,1,04,5.4,205.2,M,15.8,M,*4A

$GPGSA,A,3,08,13,23,25,5.7,5.4,1.0*3C

$GPGSV,3,1,11,02,15,267,00,03,11,085,45,04,05,236,00,08,39,233,00*77

$GPGSV,3,2,11,10,32,308,00,13,63,109,43,16,17,037,00,23,31,111,38*77

$GPGSV,3,3,11,24,09,343,00,25,66,077,44,27,69,229,00*46

$GPGLL,5522.8973,N,03710.1401,E,135412,A,A*43

$GPBOD,T,M,*47

$PGRME,19,1,M,15,2,M,25,3,M*15

$ PGRMZ,673, f,3*19

$ PGRMM, WGS 84*06

Zusätzlich zu den Standard-NMEA-Nachrichten implementieren Garmin-Empfänger ihre eigenen Nachrichtensätze, die jeweils ein „GRM“-Präfix im Header, eine „M“- oder „Z“-Kennung zur Identifizierung des Datentyps und ein Zeichen für den Namen enthalten.

PGRME – Positionierungsfehlerschätzung

$PGRME,15.0,M,45.0,M,25.0,M*1C

    15,0,M – Bewertung des horizontalen Positionierungsfehlers in Metern

    45,0,M – Schätzung des vertikalen Fehlers in Metern

    25,0,M – äquivalenter sphärischer Positionierungsfehler

PGRMZ – Höhenmessungen

$PGRMZ,93,f,3*21

    93,f – Höhenwert in Pfund

    3 – Positionsmessbedingungen (2 – benutzerdefinierte Höhe,

    3 – per GPS berechnete Höhe)

PGRMM – aktuelles Datum

$PGRMM,NAD27 Kanada*2F

    NAD27 Kanada – Name des aktuellen horizontalen Datums

Sirf-Funktionen

GPS-Chips von Sirf werden in verschiedenen GPS-Navigationsgeräten verwendet, von herkömmlichen Boards bis hin zu tragbaren GPS-Navigationsgeräten und Auto-GPS-Navigationsgeräten. Aber im Gegensatz zu Navigatoren unterstützen sie nur NMEA-Nachrichten im Zusammenhang mit GPS-Messungen, Positions- und Zeitberechnungen – GGA, GLL, GSA, GSV, RMC, VTG, ZDA.

„Sirf“ unterstützt auch mehrere „eingehende“ NMEA-Nachrichten, die zur Konfiguration und Anpassung verschiedener Parameter dienen. Darüber hinaus implementiert Sirf ein eigenes Binärprotokoll, mit dem Sie deutlich mehr Einstellungen ändern können. Diese 5 „eingehenden“ NMEA-Nachrichten beginnen den Regeln zufolge mit dem Präfix $PSFR. Alle Nachrichten enthalten einen festen Datensatz und enden mit dem Zeichen „\n“ (Zeilenvorschub).

Zur Konfiguration der „Sirf“-Parameter wird ein spezielles Programm „SirfTech“ verwendet. NMEA-Nachrichtenparameter werden in einem separaten Menüpunkt konfiguriert.

$GPGGA,100643.000,5522.9036,N,03710.1282,E,1.07,1.6,209.9,M,14.9,M,0000*52

$GPGSA,A,3,31,01,23,20,11,30,14,2.1,1.6,1.4*35

$GPGSV,3,1,12,20,84,187,41,01,49,067,46,23,46,238,45,31,45,073,50*7B

$GPGSV,3,2,12,11,25,194,34,13,16,240,04,15,319,30,17,14,273,21*7A

$GPGSV,3,3,12,30,10,026,33,14,05,063,22,05,04,009,25,25,03,195,*7F

$GPRMC,100643.000,A,5522.9036,N,03710.1282,E,0.16,119.11,200507,*0D

Wie Sie dem obigen Beispiel entnehmen können, enthalten die Werkseinstellungen im Vergleich zu den Garmin-Einstellungen weniger NMEA-Meldungen. Bei Bedarf kann dieser Satz durch die Angabe des Zeitraums in den fehlenden NMEA-Nachrichten erweitert werden.

$GPGGA,100833.000,5522.9076,N,03710.1270,E,1.07,1.3,222.4,M,14.9,M,0000*53

$GPGLL,5522.9076,N,03710.1270,E,100833.000,A*34

$GPGSA,A,3,31,01,23,20,11,30,17,2.1,1.3,1.6*31

$GPGSV,3,1,12,20,84,180,43,01,49,067,47,23,47,238,45,31,45,072,49*77

$GPGSV,3,2,12,11,24,193,26,13,16,240,26,04,15,319,24,17,13,273,31*78

$GPGSV,3,3,12,30,10,025,26,14,04,064,22,25,04,195,05,04,008,21*7C

$GPRMC,100833.000,A,5522.9076,N,03710.1270,E,0.18,4.86,200507,*00

$GPVTG,4.86,T,M,0.18,N,0.3,K*60

$GPZDA,100834.000,20.05.2007,*5A

PSFR100, PSFR102 – Konfiguration der seriellen Schnittstelle

Mit der NMEA-Nachrichtennummer 100 wird Port A eingestellt, mit Nachricht 102 Port B. Nachricht 100 verfügt über ein zusätzliches Feld, mit dem Sie die Schnittstelle auf das binäre Sirf-Protokoll umstellen können.

Dementsprechend gibt es im Binärprotokoll einen Befehl, der den Port wieder auf das NMEA-Format umschaltet. Bevor Sie zum Binärprotokoll wechseln, müssen Sie wissen, ob es ein Programm gibt, mit dem Sie das NMEA-Protokoll in Zukunft wiederherstellen können.

$PSRF100.0.9600.8.1.0*0C

$PSRF102.9600.8.1.0*3C

    PSRF100 – NMEA-Header

    0 – Parameter, der angibt, in welchem ​​Modus das Protokoll geändert wurde (0-Sirf, 1-NMEA)

    9600 – Portgeschwindigkeit (4800, 9600, 19200, 38400)

    8 – Datenbits (7, 8)

    1 – Stoppbits (0,1)

    0 – Paarung (0 – keine, 1 ungerade, 2 gerade)

PSFR101, PSFR104 – Initialisierung der Empfängerparameter

NMEA-Nachrichten mit den Nummern 101 und 104 dienen der Initialisierung von Parametern für den GPS-Empfang. Durch die Bestimmung dieser Parameter kann die Erfassungszeit von GPS-Satelliten beschleunigt werden. Nachricht 101 legt die aktuellen Koordinaten im XYZ-Format fest, Nachricht 104 – im BLH-Format (Längengrad, Breitengrad).

$PSRF101,-2686700,-4304200,3851624,95000,497260,921,12,3*22

$PSRF104.37.3875111.-121.97232.0.95000.237759.922.12.3*3A

    PSRF101 – NMEA-Header

    37,3875111 – Breitengrad in Grad

    121,97232 – Längengrad in Grad

    0 – Höhe, in Metern

    95000 – Uhrverschiebung

    237759 – GPS-Zeit in Sekunden

    922 – GPS-Wochennummer

    12 – Anzahl der Kanäle

    3 – Art der Dateninitialisierung (1 – Heißstart, 2 – Warmstart, 3 – Dateninitialisierung, 4 – Kaltstart mit vollständiger Datenlöschung, 8 – Kaltstart mit Wiederherstellung der Werkseinstellungen)

PSFR103 – Konfiguration der NMEA-Nachrichtengenerierung

Mit dieser NMEA-Nachricht können Sie den Generierungszeitraum jeder „ausgehenden“ NMEA-Nachricht festlegen oder abfragen.

$PSRF103.05.00.01.01*20

    PSRF103 – NMEA-Header

    05 – Titel der Nachricht

    01 – Zeitraum, in Sekunden (0-255)

    01 – Vorhandensein einer Prüfsumme (0 - ja, 1 - nein)

Versuchsergebnisse

Unter Bedingungen normaler Satellitensicht erzeugt der Garmin eMap-Empfänger die folgenden NMEA-Meldungen:

$GPRMC,104644,A,5522.8965,N,03710.1389,E,0.0,0.0,200507,9.3,E,A*16

$GPRMB,A,,A,A*0B

$GPGGA,104644,5522.8965,N,03710.1389,E,1.07,1.2,186.6,M,15.8,M,*44

$GPGSA,A,3,01,04,13,16,20,23,31,2.1,1.2,1.7*35

$GPGSV,3,1,10,01,34,070,48,04,28,311,40,11,10,190,00,13,32,249,41*7E

$GPGSV,3,2,10,16,11,111,40,20,68,142,50,23,64,247,49,25,21,196,00*70

$GPGSV,3,3,10,30,05,012,00,31,36,055,52*7D

$GPGLL,5522.8965,N,03710.1389,E,104644,A,A*40

$GPBOD,T,M,*47

$PGRME,6,0,M,7,7,M,9,8,M*29

$PGRMZ,612,f,3*1E

$PGRMM,WGS 84*06

$GPRTE,1,1,c,*37

Aus der Analyse der Nachrichten geht hervor, dass der Empfänger derzeit 10 (GSV) Satelliten verfolgt, von denen 7 (GGA) für die Positionsberechnung verwendet werden. Der horizontale Positionierungsfehler beträgt 6 Meter (RME) und der Lösungstypindikator beträgt 1 (GGA).

Wenn Sie Bedingungen erstellen, unter denen das GPS-Signal nicht empfangen wird, enthalten die GGA-Nachrichten „leere“ Felder und der Entscheidungstypindikator nimmt den Wert 0 (GGA) an.

$GPGGA,0.00,M,M,*66

$GPGSA,A,1,,*1E

Im „normalen“ Modus enthalten RMB- und BOD-Nachrichten leere Felder. Nachdem der Wegpunkt „Straße“ als endgültiges Ziel ausgewählt wurde, wurden diese Felder mit Daten gefüllt. Wie aus der Analyse der Nachricht hervorgeht, beträgt die Entfernung zum Punkt 1.620 Meilen, der Azimut der Bewegung beträgt 6,3 Grad (BSB). Gleichzeitig unterscheidet sich der Azimut der BOD- und RMB-Nachrichten um 0,1 Grad.

$GPRMB,A,0.00,R,Road,5524.501,N,03710.445,E,1.620,6.4,V,A*59

$GPBOD,6.3,T,357.0,M,Straße,*74

Sobald die Heimatroute für die Navigation ausgewählt wurde, zeigt die RTE-Nachrichtenliste eine Liste aller Wegpunkte auf der Route an. Und in der RMB-Nachricht - Identifikationsnummern der Start- und Endpunkte (nächsten) der Route.

$GPRTE,1,1,c,HOME,SLOBODA,IERUSALIM,INSTITUT*01

$GPRMB,A,9.99,R,SLOBOD,IERUSAL,5555.237,N,03649.976,E,34.346,340.6,V,A*1F

Abschluss

In den meisten Fällen ist es für den Nutzer weder erforderlich noch daran interessiert, zu wissen, welche Daten in welchen Feldern übermittelt werden. Die meisten Navigationsprogramme „analysieren“ NMEA-Nachrichtendaten und präsentieren sie in einer benutzerfreundlichen Form – Grafiken, Diagramme, Tabellen usw.

Von besonderem Interesse sind NMEA-Nachrichten für Benutzer, die GPS-Daten recherchieren, Schätzungen erfasster Messungen berechnen oder das Verhalten von Navigationsempfängern unter verschiedenen Bedingungen analysieren möchten. Es gibt eine Reihe von Programmen, mit denen diese Probleme gelöst werden können.

Dennoch ist das NMEA-Format nicht für eine detaillierte Analyse von GPS-Daten gedacht, da es keine sogenannten „Rohmessungen“ enthält – Pseudoentfernungen, Phasen, Doppler. Jeder Hersteller von Navigationsgeräten verfügt über ein eigenes „offenes“ oder „geschlossenes“ Protokoll, das diese Informationen anzeigt

NMEA ist ein einfaches und verständliches Format, das nicht nur den Datenaustausch zwischen GPS-Empfängern und Navigationsprogrammen ermöglicht, sondern den Benutzern auch einen Einblick in die Funktionsweise von Satellitennavigationsgeräten vermittelt.

Aufmerksamkeit!

Ein Artikel von der Website „ GPS-Portal"



 

Es könnte nützlich sein zu lesen: