Beschreibung des NMEA-Protokolls. Implementierung in Garmin- und GlobalSat-Empfängern. Emulator von Daten von einem GNSS-Empfänger unter Verwendung der NMEA-Protokollbeschreibung

  • Tragbare UKW-Funkgeräte des Flusses
  • Andere UKW-Sender
  • Navtex-Empfänger
  • SART / SART
  • Feste UKW-Sender
    • Marinestationen
    • Flussstationen
    • Andere
  • Seefunkgeräte sind Geräte, die dazu bestimmt sind, menschliches Leben auf See zu schützen, die Sicherheit der Schifffahrt zu gewährleisten, den Betrieb der Flotte zu steuern und öffentliche und private Korrespondenz zu übertragen. Um Funkgeräte auf Schiffen effektiv nutzen zu können, müssen Sie deren Konstruktionsprinzipien, technischen Eigenschaften und Betriebsmerkmale kennen. Je nach Navigationsgebiet werden unterschiedliche Anforderungen an Seefunkgeräte gestellt.

    A1 – im Versorgungsbereich von Küsten-UKW-Funkstationen mit DSC.
    A2 – im Versorgungsbereich von MF-Funkstationen mit DSC, ausgenommen Bereich A1.
    A3 – innerhalb der Reichweite der INMARSAT-Satelliten, mit Ausnahme der Bereiche A1 und A2.
    A4 – außerhalb der Bereiche A1, A2, A3.
    Somit besteht die Funkausrüstung auf dem Schiff aus drei Komplexen: VHF-Ausrüstung, MF/HF-Ausrüstung und einer Schiffserdestation (SES) des INMARSAT-Systems. Unabhängig von den Navigationsgebieten muss jedes Schiff ausgestattet sein mit: einer UKW-Funkanlage, einer Radarbake (Radartransponder), einem NAVTEX-Empfänger, einer EPIRB (Notfallfunkboje) und tragbaren UKW-Notfunkgeräten.

    Die Funkausrüstung auf dem Schiff muss die GMDSS-Anforderungen erfüllen, die in den Regeln des RMRS (Russian Maritime Register of Shipping) und des RRR (Russian River Register) festgelegt sind. Jedes Schiff muss mit einer Reservestromquelle ausgestattet sein, damit die Funkausrüstung im Falle eines Ausfalls oder einer Beschädigung der Haupt- und Notstromquellen die Notkommunikation ermöglichen kann. Beim Wechsel von einer Stromquelle zu einer anderen sollten Licht- und Tonalarme ertönen. Für den Betrieb und die Reparatur der Geräte ist eine Wartung vorgesehen, die folgende Vorgänge durchführt: Lieferung an den Aufstellungsort, Lagerung (falls erforderlich) und Installation. Alle diese Schritte müssen gemäß den Anweisungen in der technischen Dokumentation durchgeführt werden.

    Die Qualität von Funkgeräten besteht aus einer Reihe von Indikatoren, die ihre Übereinstimmung mit den modernen Anforderungen von Wissenschaft und Technologie bestimmen. Zu den Qualitätsindikatoren für Geräte gehören Zuverlässigkeit, Leistungsmerkmale, Effizienz, Sicherheit, Design usw. Viele Indikatoren haben einen numerischen Wert und bestimmen im Wesentlichen die Wirksamkeit des Einsatzes jeglicher Ausrüstung auf dem Schiff.

    Auf Schiffen mit einer Verdrängung von über 500 r.t. Es müssen mindestens drei tragbare UKW-Stationen und zwei Radartransponder vorhanden sein. Auf Schiffen mit einer Verdrängung von 300 bis 500 r.t. - zwei Stationen und 1 Radar. Es wird außerdem empfohlen, Schiffe mit Geräten zum Empfang von Faxen auszustatten.

    Im Produktkatalog des Unternehmens können Sie sich mit verschiedenen Modellen und Marken globaler Funkgerätehersteller vertraut machen und die erforderliche Bestellung aufgeben.

  • NAVIGATION
    • Kreiselkompasse
    • Magnetische Kompasse
    • Kartenplotter
    • Verzögerungen
    • Wettersensoren
    • GNSS GPS/GLONASS-Empfänger
    • Radarstationen
    • Wiederholer
    • SKDVP (BNWAS)
    • Reisedatenschreiber VDR/U-VDR
    • Automatisches Identifikationssystem (AIS)
    • Systeme zum Empfang externer Audiosignale
    • Sonare
    • Satellitenkompass
    • Echolote
    • Autopiloten
    • Elektronische Kartographie
  • SATELLITENVERBINDUNG
    • FlotteBreitband
    • Inmarsat LRIT, SSAS (OSDR, SSOO)
    • Iridium (Iridium)
    • Satelliten Fernsehen
    • BGAN-Terminals
    • VSAT-Terminals

    Satellitenkommunikation auf See ist heute ein wichtiges Kommunikationsmittel mit der Küste. Satelliten verschiedener Betreiber schaffen eine große Abdeckung der Erdoberfläche, die eine Kommunikation von überall auf der Welt gewährleistet.

    Auf Schiffen, die von Klassifikationsgemeinschaften überwacht werden, werden Satellitenanlagen sowohl als Pflichtinstallation als auch als Zusatzausrüstung eingesetzt. Auf kleinen Schiffen, Booten und Yachten wird die Satellitenausrüstung nach Ermessen der Eigentümer und hauptsächlich für den Internetzugang genutzt.

    Gerätetypen:

    Inmarsat LRIT, SSAS-Terminals (OSDR, SSOO) sind Schiffssatellitengeräte, die für die Installation auf Passagier-, Handels- und Frachtschiffen mit den Navigationsbereichen A2, A3, A4 erforderlich sind.
    - Ship Security Alert System – ermöglicht Ihnen, im Falle eines Angriffs auf das Schiff ein verstecktes Alarmsignal zu senden. LRIT oder LRIT ist ein System zur Identifizierung und Verfolgung von Schiffen über große Entfernungen.
    - FleetBroadband-Terminals sind Geräte für ein maritimes Satellitenkommunikationssystem, das Breitband-Internetzugang, Satellitentelefonkommunikation und SMS-Nachrichten bietet.
    - VSAT – Ausrüstung, die eine Hochgeschwindigkeits-Datenübertragung über Satelliteninternet ermöglicht, mit der Sie sogar Videokonferenzen an Bord organisieren können.

    Auch für diese Zwecke werden BGAN-Terminals verwendet, die sich von FBB- und VSAT-Geräten durch ihre Kompaktheit, Mobilität und Kommunikationsgeschwindigkeit unterscheiden.
    Unter der hochspezialisierten Satellitenschiffsausrüstung werden folgende Schiffe eingesetzt: eine Satellitenkommunikationsstation, eine Antenne zum Empfang eines Fernsehsignals und für Fernnavigationsgebiete Telefone, die über Satellitenkommunikationssysteme von Betreibern wie Iridium, Inmarsat und Thuraya betrieben werden.

  • AUTOMATISIERUNG
    • Neigungsmesser
    • NAVIS-Automatisierungssysteme
    • Praxisautomatisierungssysteme
    • Automatisierungssysteme MRS
    • Systeme zur Steuerung des Kraftstoffverbrauchs
    • Sensoren
    • ABS-Automatisierungssysteme
    • Valkom-Automatisierungssysteme

    1. Wartung, Service und Reparatur der elektrischen Automatisierung von Schiffen:
    - Automatisierung von Fernsteuerungssystemen für Hauptmotoren;
    - Automatisierung von Schiffskraftwerken;
    - Reparatur und Anpassung von Kraftwerksanlagen;
    - Reparatur, Einstellung und Prüfung von Automatisierungs- und Alarmsystemen von Hauptmotoren (Wartsila, MAN, MAK, SKL);
    - Reparatur, Einstellung und Prüfung von Automatisierungs- und Alarmsystemen von Hilfs- und Notdieselgeneratoren (Volvo Penta, Scania, Deutz, CAT).

    2. Wartung, Service und Reparatur der elektrischen Ausrüstung allgemeiner Schiffssysteme:
    - Reparatur, Einstellung von Lenkgeräten und Autopiloten;
    - Reparatur, Einstellung, umfassende Prüfung von Brandmeldeanlagen;
    - Automatisierung der Kesselausrüstung;
    - Automatisierung von Kraftstoffaufbereitungssystemen;
    - Automatisierung von Wasseraufbereitungssystemen;
    - Automatisierung von Abwasserbehandlungssystemen.

    3. Wartung, Service und Reparatur der elektrischen Ausrüstung von Deckmechanismen.

    4. Entwicklung und Koordination der Konstruktionsdokumentation für die Modernisierung und Umrüstung von Schiffsautomatisierungssystemen.

    5. Große, mittlere und aktuelle Reparaturen von Elektromotoren und Generatoren jeglicher Leistung. Reparatur und Einstellung des Generatorerregungssystems, Einstellung des Parallelbetriebs von Generatoren.

  • ZUSÄTZLICH
    • Headsets und Mobilteile
    • Hydrostaten
    • Ersatzteile für KVU
    • Ersatzteile für Kreiselkompasse
    • Ersatzteile für Typhone
    • Magnetrons
    • Konverter und Distributoren
    • Batterielose Kommunikationssysteme
    • Brandschutzsysteme
    • Marine-Displays und PCs
    • Schiffs-Taifone
    • Batterien (Batterie)
    • Netzteile
    • Zusätzliche Blöcke
  • 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 anderer Software und 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 (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,
    • eine durch ASCII-Zeichen dargestellte Datenmenge,
    • 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 einer 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)

    Sie sind wahrscheinlich gerade damit beschäftigt, das Problem des Hackens eines weiteren Mega-Super-Hyper-Servers zu lösen, aber wissen Sie, was GPS ist und wie man es verwendet?! Wenn nicht, dann sind Sie hier genau richtig! In diesem Artikel erzähle ich Ihnen, wie GPS-Empfänger funktionieren, wie Sie Informationen von ihnen erhalten und wie Sie selbst ein einfaches Programm schreiben, um mit dem GPS-Modul zu arbeiten.

    GPS (Global Positioning System) wurde 1994 von den Vereinigten Staaten eingeführt. Es besteht aus 24 Satelliten und Bodenempfangssystemen, die Ihr GPS-Navigator oder GPS-Modul (im Folgenden als Navigator bezeichnet) sein können. Um die Koordinaten genau zu bestimmen, muss Ihr Navigator mindestens 4 Satelliten sehen. In der jüngeren Vergangenheit wurde die Genauigkeit der Koordinatenbestimmung außerhalb der USA (bzw. für Nicht-US-Verbraucher) künstlich verringert, aber vor nicht allzu langer Zeit wurde diese Einschränkung aufgehoben und jetzt können Sie Ihren Standort auch in der Taiga genau bestimmen von mehreren Metern.

    So funktioniert alles: Ihr Navigator empfängt Informationen von jedem der sichtbaren Satelliten, die für ihn wie Leuchtfeuer sind. Im Inneren des Navigators befindet sich ein Mikroprozessor mit einem integrierten Programm, das anhand der empfangenen Daten Ihren Standort berechnet.

    Derzeit gibt es eine große Anzahl von GPS-Navigationsgeräten und GPS-Modulen für PDAs und Laptops im Angebot. Ein GPS-Navigator ist ein GPS-Empfänger mit einem Bildschirm, der Informationen über Ihren Standort anzeigt, und ein GPS-Modul ist ein GPS-Empfänger, der an einen Computer angeschlossen wird und alle Navigationsinformationen an das damit arbeitende Programm überträgt. Alle unterscheiden sich grundsätzlich nur im Formfaktor und weisen keine grundsätzlichen Unterschiede in der Bedienung auf. Sie und mich interessiert jedoch mehr, wie er mit dem Computer kommuniziert und wie man ihm Informationen entzieht. Jetzt erzähle und zeige ich dir alles.

    Welchen Formfaktor (COM, USB, BlueTooth usw.) das GPS-Modul auch hat, es wird logisch über einen COM-Port mit dem Computer verbunden, d. h. Beim Anschließen wird eine Verbindung über die serielle Schnittstelle hergestellt. Navigationsinformationen werden in den meisten Fällen über das NMEA-Protokoll übertragen. Dies ist das gebräuchlichste Übertragungsprotokoll für GPS-Module. Obwohl es andere Protokolle gibt, werden wir diese nicht berücksichtigen.

    Nun ist es an der Zeit, herauszufinden, wie man Software so gestalten kann, dass sie mit all diesen Geräten funktioniert. Ich sage gleich, dass ich jetzt nicht wirklich erklären möchte, wie man Knöpfe hineinsteckt
    VB, der Artikel dient eher Informationszwecken. Für diejenigen, die im Tank sind, werde ich in den folgenden Artikeln den Prozess der Programmerstellung erklären.
    Ich werde nur die wichtigsten Punkte behandeln und ich denke, dass Sie Erfolg haben werden. Ich sage gleich, dass man ein Programm in jeder Programmiersprache erstellen kann, solange es möglich ist, mit einer seriellen Schnittstelle und mit Strings zu arbeiten.
    Als Erstes müssen Sie den COM-Port öffnen. Fast alle Receiver verfügen über Standardeinstellungen: Geschwindigkeit 9600 bps, 8/N/1. Sobald Sie den Hafen öffnen, erhalten Sie sofort im Sekundentakt Navigationsinformationen in etwa der folgenden Art:

    $GPGGA,143345.264, 0936.23,N,06354.15,E,0.06,0.0,230.6,M,0.0,M,0.0,0345*76
    $GPRMC,143345.26, A,0936.23,N,06354.15, E,0.0,0.0,230306,0.0,E,A*45
    $GPGSA,A,3,03,04,05,07,11,12,0.0,0.0,0.0*E2
    $GPGSV,1,1,06,05,67,120,20*34

    Beginnen wir nun mit der Analyse:

    Die Übermittlung der Daten erfolgt in Form von Sätzen. Das Vorschlagsformat ist wie folgt:

    $AAAAAA[,<данные>]*hh , Wo

    $ — Symbol für den Satzanfang (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;
    , – Endbegrenzer (Codes 0Dh und 0Ah).

    Datenfeldtypen.

    Feldtyp Bezeichnung Definition

    Spezielles Feldformat

    Status A Einzelzeichenfeld. A= ja, Daten
    zuverlässiges Warnsignal
    Nein. V= nein, die Daten sind nicht zuverlässig, ja
    Warnsignal.
    Breite llll.ll
    Grad-Minuten Bruchteile von Minuten. 2 Zeichen

    Anzahl der Minutenbruchteile. Wenn der erste
    Es gibt also keine Grad- oder Minutenanzeige
    es wird durch Null ersetzt, so dass




    hohe Auflösung.
    Längengrad jjjjj.jj Feld mit fester/variabler Länge:
    Gradminuten und Bruchteile von Minuten. 3 Zeichen
    Grad, 2-Minuten-Zeichen und variabel
    Anzahl der Minutenbruchteile. Wenn der erste
    Zeichen oder das erste Minutenzeichen fehlt,
    dann werden sie durch Null ersetzt, um
    Halten Sie die Anzahl der Zeichen konstant.
    Dezimalpunkt und Folgezeichen
    Bruchteile von Minuten sind zusätzlich und
    dürfen nicht verwendet werden, wenn sie nicht benötigt werden
    hohe Auflösung.
    Zeit hhmmss.ss Feld mit fester/variabler Länge: Stunden/Minuten/Sekunden
    und einen Bruchteil einer Sekunde. 2 Uhrenschilder, 2 Schilder
    Minuten, 2-Sekunden-Zeichen und variable Zahl
    Zeichen für Sekundenbruchteile. Als der erste
    Stunden-, Minuten-, Sekundenzeichen vielleicht
    Zum Speichern auf Null setzen
    konstante Zeichenanzahl. Wenn nicht
    Dann ist hohe Präzision gefragt
    Dezimalpunkt und Bruchteile von Sekunden können
    weggelassen werden.
    Spezifische Felder Einige Bereiche sind speziell
    soll im Voraus platziert werden
    bestimmte konstante Werte häufiger
    Gesamtbuchstabenbezeichnungen. Zeichen
    Solche Felder sind das Vorhandensein eines oder
    mehrere Charaktere.

    Digitale Wertfelder

    Informationsfelder

    Anmerkungen:

    1. Leerzeichen können nur in Textfeldern variabler Länge verwendet werden.

    2. Das negative Vorzeichen „-“ (Code 2Dh) ist das erste Zeichen des Feldes, wenn es negative Werte enthält. Wenn Sie in Feldern fester Länge ein negatives Vorzeichen verwenden, erhöht sich deren Länge um eins. Bei positiven Werten entfällt das Vorzeichen.

    GGA – GPS-Standortdaten

    Zeit, Ort und Daten im Zusammenhang mit der Beobachtung.

    $GPGGA,hhmmss.sss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh

    1. hhmmss.sss – Uhrzeit der Navigationsdefinitionen;
    2. llll.ll,a – Breitengrad, N/S;
    3. yyyyy.yy,a – Längengrad, E/W;
    4. x – Beobachtungsqualitätsindikator: 0 = keine Daten, 1 = Beobachtung empfangen, 2 = Beobachtung im Differentialmodus;
    5. xx – Anzahl der verwendeten Satelliten;
    6. x.x – der Wert des horizontalen geometrischen Faktors (HDOP);
    7. x.x,M – Antennenhöhe über dem Meeresspiegel (Geoid), m;
    8. x.x,M – Höhe des Geoids über dem WGS84-Ellipsoid, m;
    9. x.x – Alterung der Differenzialkorrekturen, d. h. Zeit in Sekunden seit dem Empfang der letzten Differenzialkorrektur; ein Nullfeld wird verwendet, wenn der Differenzialmodus ausgeschaltet ist;
    10. xxxx – differenzielle Stationskennung 0е1023.

    Uhrzeit, Datum, Koordinaten und Kurs werden von der Ausrüstung berechnet.

    $GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxxxx,x.x,a,a*hh

    Die Bereiche dieses Angebots sind:

    1. hhmmss.ss – Zeit;
    2. A – Status (A/V);
    3. llll.ll,a – Breitengrad, N/S;
    4. yyyyy.yy,a – Längengrad, E/W;
    5. x.x – Geschwindigkeit in Knoten;
    6. x.x – Kurs in Grad;
    7. xxxxxx – Datum: TT/MM/JJ (Tag/Monat/Jahr);
    8. x.x,a – magnetische Deklination in Grad, O/W;
    9. a – Modusanzeige: A = autonome Beobachtung, D = Differentialmodus, N = ungültige Daten.

    GSA – Genfür Navigationssatelliten

    $GPGSA,a,x,xx, … ,xx,x.x,x.x,x.x*hh

    Die Bereiche dieses Angebots sind:
    1. a – Steuermodus für die Anzahl der definierten Koordinaten: M = manuell, Modus angegeben, A = automatische Umschaltung;
    2. x – Betriebsart: 1 = Beobachtung ist nicht möglich, 2 = zwei Koordinaten werden bestimmt, 3 = drei Koordinaten werden bestimmt;
    3. xx...xx – Anzahl der Satelliten, die zur Lösung des Navigationsproblems verwendet werden. Die Anzahl der Felder entspricht der Anzahl der Empfängerkanäle. Die Nummern 1–32 werden für GPS, 33–64 für WAAS und 65–96 für GLONASS verwendet.
    4. x.x – allgemeiner Verschlechterungsfaktor der geometrischen Genauigkeit (PDOP);
    5. x.x – horizontaler geometrischer Verschlechterungsfaktor (HDOP);
    x.x – vertikaler geometrischer Degradationsfaktor (VDOP).

    GSV – Sichtbare Satelliten

    Anzahl der Satelliten in der Funksichtzone, Satellitenanzahl, Höhenwinkel, Azimut und Signal-Rausch-Verhältnis. Ein Satz kann Informationen über 1 bis 4 Satelliten enthalten, weitere Satellitendaten werden in den folgenden Sätzen übertragen. Die Angebotsnummer wird in den ersten beiden Datenfeldern angegeben. Für Satellitensysteme sind folgende Nummern reserviert: für GPS 1-32, für WAAS 33-64, für GLONASS 65-96.

    $GPGSV,x,x,xx,xx,xx,xxx,xx, … ,xx,xx,xxx,xx*hh

    Die Bereiche dieses Angebots sind:
    1. x – Gesamtzahl der Nachrichten;
    2. x – Nachrichtennummer;
    3. xx – Gesamtzahl der Satelliten in der Funksichtzone;
    4. xx – Satellitennummer;
    5. xx – Höhenwinkel des Satelliten, Grad 00-90;
    6. xxx – wahrer Azimut, Grad 000–360;
    7. xx – Signal-Rausch-Verhältnis 00-99 dB, wenn der Satellit nicht begleitet wird, wird er nicht gesendet.

    Hinweis: Die Felder 4, 5, 7 werden für 2, 3 und 4 Satelliten wiederholt.

    Nun, da Sie eine Beschreibung des NMEA-Protokolls und des Treibers „direct_ruki.sys“ haben, können Sie mit der zeilenweisen Analyse von Paketen beginnen und ein Megaprogramm erstellen)))).

    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
    gastroguru 2017