NMEA 0183
NMEA 0183 este un standard utilizat în principal în domeniul marin și în comunicarea datelor prin satelit GPS . Entitatea care dezvoltă și gestionează protocolul este National Marine Electronics Association .
Structura generală a propozițiilor
Toate propozițiile au o structură de tipul:
$ PREFIX, datum1, datum2 ... datumN-1, datumN * CHECKSUM
Propoziția începe întotdeauna cu $ și se termină întotdeauna cu CR LF . Fiecare propoziție are maximum 80 de caractere.
Prefix
Prefixul este prima parte a șirului, care este utilizată pentru a specifica ce tip este vorbitorul , de exemplu, pilot automat, dispozitiv GPS, control viteză, control direcție etc.
În cazul utilizării unui dispozitiv GPS , prefixul este GP urmat de tipul propoziției. Toate frazele sunt identificate cu 3 litere (ex: RMC , RMB etc.). Un dispozitiv GLONASS folosește prefixul GL , în timp ce un receptor GNSS folosește prefixul GN
Suma de control
Suma de verificare se calculează excluzând începutul caracterului șir și caracterul * . Algoritmul utilizat este exclusiv SAU 8 biți , compunând rezultatul în 2 litere sau cifre. Cele mai semnificative dintre cele două vor fi trimise mai întâi.
Exemplu de funcție pentru calcularea sumei de control a unui șir NMEA în Python: [1]
def Checksum_NMEA ( input_string ):
# Calculul sumei de control în format NMEA - atenție, pentru simplitate, excepțiile nu sunt gestionate
payload_start = stringa_input. find ( '$' ) + 1 # găsește primul caracter după $
payload_end = stringa_input. găsiți ( '*' ) # găsiți caracterul *
payload = stringa_input [payload_start: payload_end] # date referite la XOR
ck = 0
pentru ch în sarcină utilă : # ciclu sumă de control
ck = ck ^ ord ( ch ) # XOR
str_ck = ' % 02X ' % ck # transformă valoarea calculată într-un șir de 2 caractere
return ( str_ck )
Propoziții
Frazele sunt mai mult de 50 în total, majoritatea deținând fiecare dispozitiv. Frazele standard și cele mai frecvente ale protocolului sunt:
- $ GPRMC
- $ GPRMB
- $ GPGGA
- $ GPGSA
- $ GPGLL
- $ GPGSV
- $ GPRTE
Notă
linkuri externe
- National Marine Electronics Association , la nmea.org .
- NMEA 0183 descriere standard v. 4.10 , pe nmea.org . Adus la 30 august 2013 (arhivat din original la 21 octombrie 2013) .
- Exemple de propoziții NMEA 0183 de la receptoare GPS, GNSS și Glonass , la gnss-info.blogspot.com .