NMEA 0183

Standardul NMEA 0183 este o specificație pentru comunicația între echipamentele marine, inclusiv echipamentele GPS . Este definit și controlat de National Marine Electronics Association ( NMEA ), o asociație americană de producători de dispozitive electronice marine, cu sediul în Severna Park, Maryland (Statele Unite ale Americii).

Principiu

Standardul 0183 utilizează o comunicare în serie simplă pentru a transmite o „frază” unuia sau mai multor ascultători. Un cadru NMEA folosește toate caracterele ASCII .

Exemplu:

Alarmă de sosire a punctului de trecere:

$GPAAM,A,A,0.10,N,WPTNME*32

sau:

AAM Arrival alarm A Arrival circle entered A Perpendicular passed 0.10 Circle radius N Nautical miles WPTNME Waypoint name *32 Checksum data

Noul standard NMEA 2000  (în) , permite mai multe „discuții” cu un randament mai rapid.

Standardul este proprietar și se plătește. Cu toate acestea, cea mai mare parte a protocolului a fost recuperată prin surse publice și prin utilizarea ingineriei inverse .

Structura cadrului

Cadrele NMEA sunt codificate în format ASCII și au forma:

$<talker ID><Trame type>[,<données>,<données>]*<checksum>

Decodare:

Câmpuri Lungime Sens
$ 1 Începutul marcatorului de cadre
ID-ul vorbitorului 2 Echipament care a generat cadrul NMEA
Cadru tipic 3 Cod care identifică conținutul cadrului
Date variabil Sarcină utilă al cărei conținut este definit de „Tipul cadrului”. Fiecare valoare este separată de caracterul „,”
* 1 Separator de sumă de verificare
Suma de control 2 Suma de verificare generată de unul sau exclusiv dintre toate caracterele între „$” și „*” (exclus)
Sfârșit de linie 2 Caractere „returnare transport” + „alimentare linie” care marchează un avans linie (<CR> <LF> sau <0x0D> <0x0A>)

Exemplu:

$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M,,,,0000*0E

ID-ul vorbitorului

Tipul de dispozitiv de la care a provenit semnalul (ID-ul vorbitorului) este definit de cele două caractere care urmează $. Principalele prefixe sunt:

Prefixul GN este utilizat în cazul semnalelor mixte GPS + GLONASS.

Tipul cadrului

Lungimea maximă a unui cadru este de 82 de octeți (inclusiv caractere de sfârșit de linie)

Există mai mult de treizeci de cadre NMEA diferite. Fiecare cadru are propria sintaxă, dar, în funcție de caz, poate sau trebuie să se încheie, după caracterul „*”, cu o sumă de control . Acest mecanism face posibilă verificarea faptului că cadrul nu a fost modificat în timpul transmisiei sale.

Un receptor GPS trimite adesea înapoi mai multe tipuri de cadre complementare (GGA și RMC sunt un exemplu) deoarece toate software-urile care interpretează NMEA nu cunosc toate cadrele. La fel, multe unități GPS transmit cadre nestandardizate specifice producătorului lor (de obicei aceste cadre proprietare nu încep cu $ GP. De exemplu, „GL” rezervat pentru GLONASS ).

Toate cadrele NMEA se referă la elipsoidul WGS84 ca bază a sistemului său de coordonate.

Câteva exemple de tipuri de cadre:

Cadrul GGA (Date corecte ale sistemului de poziționare globală)

Este foarte frecvent deoarece este unul dintre cele utilizate pentru a cunoaște poziția actuală a receptorului GPS.

$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M,,,,0000*0E $GPGGA  : Type de trame 064036.289 9: Trame envoyée à 06 h 40 min 36 s 289 (heure UTC) 4836.5375,N  : Latitude 48,608958° Nord = 48° 36' 32.25" Nord 00740.9373,E,: Longitude 7,682288° Est = 7° 40' 56.238" Est 1  : Type de positionnement (le 1 est un positionnement GPS) 04  : Nombre de satellites utilisés pour calculer les coordonnées 3.2  : Précision horizontale ou HDOP (Horizontal dilution of precision) 200.2,M  : Altitude 200,2, en mètres ,,,,,0000  : D'autres informations peuvent être inscrites dans ces champs *  : séparateur de checksum 0E  : Somme de contrôle de parité, un simple XOR sur les caractères entre $ et * Cadrul RMC (Informații minime de navigare recomandate)

Un alt cadru foarte comun pentru bărci este RMC, care oferă ora, latitudinea , longitudinea , data, precum și viteza și cursul peste sol, dar nu altitudinea.

$GPRMC,053740.000,A,2503.6319,N,12136.0099,E,2.69,79.65,100106,,,A*53 $GPRMC  : type de trame 053740.000 0: heure UTC exprimée en hhmmss.sss : 5 h 37 min 40 s A  : état A=données valides, V=données invalides 2503.6319  : Latitude exprimée en ddmm.mmmmm: 25° 03.6319' = 25° 03' 37,914" N  : indicateur de latitude N=nord, S=sud 12136.0099 9: Longitude exprimée en dddmm.mmmmm: 121° 36.0099' = 121° 36' 00,594" E  : indicateur de longitude E=est, W=ouest 2.69  : vitesse sur le fond en nœuds (2,69 nd = 3,10 mph = 4,98 km/h) 79.65  : route sur le fond en degrés 100106  : date exprimée en jjmmaa : 10 janvier 2006 ,  : déclinaison magnétique en degrés (souvent vide pour un GPS) ,  : sens de la déclinaison E=est, W=ouest (souvent vide pour un GPS) A  : mode de positionnement A=autonome, D=DGPS, E=DR *  : séparateur de checksum 53  : somme de contrôle de parité au format hexadécimal

Note și referințe

  1. OpenCPN, gpsdecode
  2. NMEA dezvăluit
  3. „  NMEA Revealed  ” , la gpsd.gitlab.io (accesat la 22 iulie 2021 )
  4. Caracterele care urmează „$” inițial până la „*” final (ambele excluse) sunt „ xoré ” (s ^ = * cp ++; en ' C ') ( Ger Rietman, „  Cum se calculează Suma de control NMEA  ” ).

Vezi și tu

Articole similare

  • NMEA 2000  ( standard CAN nu este conectat la GPS)

linkuri externe