TRACE
DE
NMEA 0183 · XOR-Prüfsumme

NMEA-Prüfsummen-Rechner

Füge einen oder mehrere NMEA-0183-Sätze ein, einen pro Zeile. Zu jedem siehst du die richtige Prüfsumme, ob die übertragene stimmt, und den korrigierten Satz.

Ein Satz pro Zeile, mit oder ohne *Prüfsumme. Sätze dürfen mit $ oder ! (AIS) beginnen.

    Läuft vollständig in deinem Browser — nichts, was du eingibst, wird übertragen.

    So funktioniert es

    So funktioniert die NMEA-Prüfsumme

    Die Prüfsumme ist ein einfaches XOR über alle Zeichen zwischen dem führenden $ (oder !) und dem *. Beide Zeichen zählen nicht mit, das Zeilenende ebenso wenig.

    1. Mit 0 beginnen und den ASCII-Code jedes Zeichens nach dem $ nacheinander per XOR einrechnen.
    2. Am * aufhören — es beendet den gesicherten Bereich.
    3. Das Ergebnis als zwei Hex-Ziffern in Großbuchstaben hinter das * schreiben: GGA … ,M,,*47.
    C

    Dasselbe in C

    Ein paar Zeilen genügen. Vergleiche das Ergebnis mit den zwei Hex-Ziffern hinter dem *, bevor du den Feldern traust.

    /* XOR from after '$' up to '*' */
    uint8_t nmea_checksum(const char *sentence)
    {
        uint8_t sum = 0;
        for (const char *p = sentence + 1; *p && *p != '*'; p++)
            sum ^= (uint8_t)*p;
        return sum;   /* print as "%02X" after the '*' */
    }
    FAQ

    Häufige Fragen

    Welche Zeichen zählen zur Prüfsumme?

    Alles genau zwischen $ (oder !) und * — Talker und Satzkennung, jedes Komma und jedes Feld. Das $, das * und das CR LF am Ende zählen nicht mit.

    Ist die Prüfsumme Pflicht?

    Praktisch ja: aktuelle Empfänger senden sie bei jedem Satz, und viele Parser verwerfen Sätze ohne sie. Ältere NMEA-Fassungen erlaubten, sie bei manchen Sätzen wegzulassen — deshalb kommt dieses Werkzeug auch mit Zeilen ohne Prüfsumme zurecht.

    Gilt dieselbe Prüfsumme für AIS (!AIVDM)?

    Ja. AIS-Sätze beginnen mit ! statt $, nutzen aber dieselbe XOR-Prüfsumme über die Zeichen bis zum *.

    Mehr als ein Satz zu prüfen?

    Trace liest die serielle Leitung eines GPS-Empfängers oder Kartenplotters, prüft die Prüfsumme jedes $-Satzes und zeigt Talker und Satztyp — live und durchsuchbar.