# NMEA 0183

NMEA 0183 ist ein Standard für die Kommunikation zwischen Navigationsgeräten auf Schiffen, der von der National Marine Electronics Association (NMEA) definiert wurde und auch für die Kommunikation zwischen GPS-Empfänger und PCs sowie mobilen Endgeräten genutzt wird. Er besteht aus einer RS422-Schnittstelle und einer Definition von Datensätzen.
Die erste Version des nicht öffentlichen Standards wurde im März 1983 freigegeben; aktuell ist die im November 2018 erschienene Version 4.11, sowie die High-Speed Erweiterung NMEA 0183-HS (High Speed) V 1.01, jedoch ist die Version 3.01 vom Januar 2002 nach wie vor weit verbreitet. Der Nachfolger NMEA 2000 setzt auf dem CAN-Bus auf.

## Schnittstelle

Als Schnittstelle wird die RS422-Schnittstelle empfohlen, eine Benutzung der RS-232-Schnittstelle ist jedoch zulässig. Es sind folgende Parameter für die Schnittstelle definiert:
* Symbolrate: 4800 Baud
* Data Bits: 8
* kein Parity Bit
* Stop Bits: 1 (oder mehr)
* kein Handshake
Seit der Version 3.01 umfasst der Standard die Erweiterung NMEA 0183-HS (Version 1.0). Sie definiert einen Hochgeschwindigkeitsmodus, der die Kommunikation zwischen Empfangseinheit und Endgerät mit 38.400 Baud erlaubt, und häufig für AIS-Daten verwendet wird.
Einige Geräte arbeiten jedoch auch mit 9600 Baud.

## Datensätze

Bei den NMEA-Daten handelt es sich um ASCII-basierte Datensätze, die jeweils 80 druckbare Zeichen umfassen können. Jeder Datensatz wird durch eine Kombination aus Wagenrücklauf und Zeilenvorschub abgeschlossen (<CR><LF>).
Der Anfang eines Datensatzes wird durch ein „$“ oder „!“ markiert. Nach diesem Startzeichen folgt die Geräte-ID (normalerweise zwei Zeichen) und die Datensatz-ID (meist drei Zeichen) als eine Zeichenkette. Darauf folgen, jeweils durch Kommata getrennt, die Datenfelder gemäß der Datensatzdefinition. Optional kann zusätzlich eine durch ein „*“ abgetrennte hexadezimale Prüfzahl angehängt werden. Diese wird durch die XOR-Verknüpfung der ASCII-Werte aller Zeichen zwischen dem $ und dem * errechnet.
Beispiel:

### Geräte-IDs

| ID | Bedeutung |
| AG | Autopilot - General |
| AP | Autopilot - Magnetic |
| CC | Computer - Programmed Calculator (veraltet) |
| CD | Communications - Digital Selective Calling (DSC) |
| CM | Computer - Memory Data (veraltet) |
| CS | Communications - Satellite |
| CT | Communications - Radio-Telephone (MF/HF) |
| CV | Communications - Radio-Telephone (VHF) |
| CX | Communications - Scanning Receiver |
| DE | DECCA Navigation |
| DF | Direction Finder |
| EC | Elektronische Seekarte (ECDIS) |
| EP | Emergency Position Indicating Beacon (EPIRB) |
| ER | Engine Room Monitoring Systems |
| GA | Galileo |
| GB | Beidou (Satellitennavigation) |
| GL | GLONASS |
| GN | kombinierte Positionslösung mehrerer GNSS |
| GP | Global Positioning System (GPS) |
| GQ | Quasi-Zenit-Satelliten-System (QZSS) |
| HC | Heading - Magnetic Compass |
| HE | Heading - North Seeking Gyro |
| HN | Heading - Non North Seeking Gyro |
| II | Integrated Instrumentation |
| IN | Integrated Navigation |
| LA | Loran A |
| LC | Loran C |
| MP | Microwave Positioning System (veraltet) |
| OM | OMEGA Navigation System |
| ID | Bedeutung |
| OS | Distress Alarm System (veraltet) |
| P | proprietäre Erweiterungen |
| PF | FLARM |
| RA | RADAR and/or ARPA |
| SD | Sounder, Depth |
| SN | Electronic Positioning System, other/general |
| SS | Sounder, Scanning |
| TI | Turn Rate Indicator |
| TR | TRANSIT Navigation System |
| VD | Velocity Sensor, Doppler, other/general |
| DM | Velocity Sensor, Speed Log, Water, Magnetic |
| VW | Velocity Sensor, Speed Log, Water, Mechanical |
| WI | Weather Instruments |
| YC | Transducer - Temperature (veraltet) |
| YD | Transducer - Displacement, Angular or Linear (veraltet) |
| YF | Transducer - Frequency (veraltet) |
| YL | Transducer - Level (veraltet) |
| YP | Transducer - Pressure (veraltet) |
| YR | Transducer - Flow Rate (veraltet) |
| YT | Transducer - Tachometer (veraltet) |
| YV | Transducer - Volume (veraltet) |
| YX | Transducer |
| ZA | Timekeeper - Atomic Clock |
| ZC | Timekeeper - Chronometer |
| ZQ | Timekeeper - Quartz |
| ZV | Timekeeper - Radio Update, WWV (Zeitzeichensender) oder WWVH |
Die ID „P“ wird für proprietäre Erweiterungen verwendet. Auf das „$P“ folgt ein aus drei Zeichen bestehender Herstellercode, die herstellerspezifischen Daten und die Prüfzahl mit vorgestelltem „*“. Letztere wird, entgegen der Festlegung im NMEA Standard, oft auch nicht verwendet.
Beispiel:

### Einheiten und Datenformate
#### Dezimalzahlen

    Dezimaltrennzeichen ist der Punkt („.“)

#### Position

    Die von NMEA 0183 verwendeten Positionsdaten basieren auf dem World Geodetic System 1984 (WGS84). Bei WGS84 handelt es sich um ein der Erdoberfläche angenähertes Referenzellipsoid, das die geodätische Grundlage des Global Positioning Systems (GPS) darstellt. NMEA 0183 benutzt eine Darstellung aus Grad und Minuten. Für die geographische Breite „XXYY.ZZZZ“ und für die geographische Länge „XXXYY.ZZZZ“; mit „X“ für Grad, „Y.Z“ für Minuten (inklusive Nachkommastellen). Die Anzahl der Dezimalstellen für die Minutenangabe kann variieren.
    Die erste Minuten-Nachkommastelle entspricht auf dem Großkreis einer Genauigkeit von etwa 185 Meter. Die dritte Nachkommastelle entspricht 1,8 Meter. Alle weiteren Stellen liegen außerhalb der Messgenauigkeit von normalen GPS-Geräten.
    Die Achsenrichtung der geographischen Koordinate (E, W, N oder S für östliche bzw. westliche Länge oder nördliche bzw. südliche Breite) wird durch das dem Positionsdatum folgende Datenfeld angezeigt.

#### Zeit

    Uhrzeiten werden in UTC angegeben, jeweils zweistellig die Werte für Stunde, Minute und Sekunde aneinandergereiht: HHMMSS Sekunden können auch mit Dezimalstellen angegeben werden: HHMMSS.ss

#### Datum

    Das Datum wird immer mit Tag, Monat und Jahr angegeben, jeweils zweistellig und in dieser Reihenfolge: DDMMYY
Umrechnung der Positionsdarstellung: Entsprechend der oben beschriebenen Darstellung kann die Umrechnung nach Grad, Minuten und Sekunden folgendermaßen durchgeführt werden: XXYY.ZZZZ ⇒ XX°YY'(0.ZZZZ * 60)". Zum Erhalt von Grad-Werten: XXYY.ZZZZ ⇒ XX° + (YY.ZZZZ / 60)°.

### Recommended Minimum Sentence C (RMC)

Jeder GNSS-Empfänger muss mindestens den Recommended Minimum Sentence C (empfohlener Mindestdatensatz C, RMC) Datensatz ausgeben können, maximal alle zwei Sekunden. Er folgt folgendem Aufbau:
Seit NMEA In 2.3 wurden folgende Sätze um ein Feld erweitert (APB, BWC, BWR, GLL, RMA, RMB, RMC, VTG, WCV und XTE) das die Signalintegritätsinformation laut FAA darstellt. („F“ in untenstehender Tabelle)
| Symbol | Bedeutung |
| HHMMSS oder HHMMSS.SSS | Zeit (UTC) |
| A | Status (A für OK, V bei Warnungen) |
| BBBB.BBBB | Breitengrad |
| b | Ausrichtung (N für North, nördlich; S für South, südlich) |
| LLLLL.LLLL | Längengrad |
| l | Ausrichtung (E für East, östlich; W für West, westlich) |
| GG.G | Geschwindigkeit über Grund in Knoten |
| RR.R | Kurs über Grund in Grad bezogen auf geogr. Nord |
| DDMMYY | Datum (Tag Monat Jahr) |
| M.M | magnetische Abweichung (Ortsmissweisung) |
| m | Vorzeichen der Abweichung (E oder W) |
| F | Signalintegrität: A = Autonomous mode, D = Differential Mode, E = Estimated (dead-reckoning) mode M = Manual Input Mode S = Simulated Mode N = Data Not Valid |
| PP | hexadezimale Darstellung der Prüfsumme (Die Prüfsumme ergibt sich durch eine XOR-Verknüpfung aller Daten-Bytes zwischen (jeweils exklusive) dem Dollar-Zeichen '$' und dem Stern '*'.) |

### Datum Reference (DTM)

| Symbol | Bedeutung |
| GGG | Geodätisches Datum (Bezugssystem) der Positionsdaten: W84 – WGS84 W72 – WGS72 S85 – SGS85 P90 – PE90 999 – Benutzerdefiniert IHO Format |
| R | Regionales Datumsformat |
| BBBB.BBBB | Breitengrad |
| b | Ausrichtung des Breitengrades |
| LLLLL.LLLL | Längengrad |
| l | Ausrichtung des Längengrades |
| H | Höhe (immer leer bzw. null) |
| D | Datum im angegebenen Bezugssystem |
| PP | Prüfsumme |

### Global Positioning System Fix Data (GGA)

Dieses Format enthält die wichtigsten Angaben zur Position und deren Genauigkeit (beispielsweise die Anzahl der Satelliten), Höhe über Meeresoberfläche und andere Informationen.
| Symbol | Bedeutung |
| HHMMSS.ss | Uhrzeit des Position Fix (UTC) |
| BBBB.BBBB | Breitengrad in Grad und Minuten (ddmm.mmmmmm) |
| b | Ausrichtung des Breitengrades (North=Norden oder South=Süden) |
| LLLLL.LLLL | Längengrad in Grad und Minuten (dddmm.mmmmmm) |
| l | Ausrichtung des Längengrades (East=Osten oder West=Westen) |
| Q | GPS-Qualität: 0 für ungültig 1 für GPS fix 2 für DGPS fix 6 für geschätzt (nur bei NMEA-0183 ab Version 2.3) |
| NN | Anzahl der benutzten Satelliten (00 − 12) |
| D.D | horizontale Abweichung (dilution of precision) |
| H.H | Höhe der Antenne über Geoid oder MSL (mean sea level) |
| h | Einheit der Antennenhöhe (Meter) |
| G.G | geoidal separation |
| g | Einheit der geoidal separation (Meter) |
| A.A | Alter des DGPS-Datensatzes |
| RRRR | DGPS-Referenzstation (0000 bis 1023) |
| PP | Prüfsumme |

## Alternativen

* NMEA 2000
* Controller Area Network (CAN-Bus)
* Seatalk