O colecție de programe pentru lucrul cu protocolul nmea. Caracteristicile protocolului NMEA2000 și utilizarea acestuia. Mesaje NMEA trimise

Aveam nevoie să testez o aplicație care folosește date GNSS prin protocolul NMEA. S-a datorat faptului că lucram la un proiect pentru un program de navigație a aeronavei, testarea în aer este în mod natural costisitoare, conducerea unei mașini cu un receptor GNSS la sol nu este deosebit de convenabilă, așa că am vrut să am date de protocol NMEA de la presupusa mutare a echipamentelor pe un port paralel virtual în timp ce stăteam la biroul meu. La început am căutat un software diferit, m-am gândit să găsesc ceva potrivit, dar majoritatea sunt plătite și controalele de emulare a datelor nu sunt foarte convenabile, deși emulează aproape toți parametrii standardului NMEA. Dar aveam nevoie de ceva simplu care să emuleze coordonatele, viteza, practic nimic mai mult, și aveam nevoie de controale destul de convenabile și logice. Așa că a trebuit să scriu o aplicație de acest fel în C#.

Fly_nmea


NMEA („National Marine Electronics Association”) - numele complet este „NMEA 0183” - un protocol text pentru comunicarea între echipamentele marine (de obicei de navigație).
Datele sunt transmise sub formă de propoziții. Formatul propunerii este următorul:
$AAAAA[,<данные>]*hh , Unde:
$ - simbolul începerii propoziției (cod 24h);
AAAAA - adresa (numele) din cinci caractere a ofertei;
[, <данные>] - lista câmpurilor de date separate prin virgule (cod 2Сh);
* - semnul sumei de control (cod 2Ah);
hh - suma de control.

Exemplu de propoziție:
GGA – date de locație GPS
Timpul, locul și datele legate de observație.
$GPGGA,hhmmss.sss,llll.ll,a,aaaa.aaa,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxx*hh

Trebuia să emulez patru rânduri:

  • GLL – Coordonatele locației
  • GSV – Sateliți vizibili
  • RMC – Setul minim de date recomandat pentru GPS și GLONASS
  • GSA - Factor de degradare a preciziei utilizat pentru sateliții de navigație
Emularea este organizată în următoarea ordine:
  • setăm coordonatele inițiale în sistemul WGS-84
  • apoi mergem la o proiecție plată, de exemplu Mercator (pentru a converti coordonatele am folosit o bibliotecă gata făcută în C#)
  • Cunoscând coordonatele plane x, y, h, implementăm fizica mișcării aeronavei folosind parametri variabili printr-o interfață grafică, cum ar fi: ruliu, pas, viteză.
  • convertiți coordonatele plate în coordonatele B, L, H ale sistemului WGS-84
  • formăm un pachet de mesaje standard NMEA din cele patru linii necesare
  • trimite-le la portul paralel virtual
Fly_nmea + Senzor Android
Pentru o testare mai convenabilă, am ajustat și recepția datelor de la senzorii Android (unghiuri de înclinare). Android trimite două linii precum:
  • „Unghi:\t236.04152\t-1.0\t-3.0”
  • „Acc:\t-0.46309182\t-0.14982383\t-10.56939”
În aplicația de emulare, le accept și, pe baza unghiurilor de înclinare, modific parametrii:
  • Pas
În aplicația de emulare, puteți trece de la control prin interfața programului la Senzor Android.
Fly_nmea conexiune
Pentru a emula porturi COM, Virtual Serial Ports Emulator este de asemenea util, va trebui să configurați conexiunea a două porturi COM virtuale, de exemplu: COM1;<->COM6, iar programul Fly_nmea va trimite date către COM6, iar către COM1 un program care utilizează protocolul NMEA le va primi.

Concluzie

În general, am petrecut mai mult timp căutând astfel de software și negăsind ceva care să mă mulțumească pe deplin, l-am scris eu rapid. Pe lângă proiectul la care lucram, am reușit să conectez cu succes emulatorul la programe care înțeleg protocolul NMEA, precum 2Gis și SAS planet.



FlyNMEA și senzor Android (proiect pentru transmiterea datelor de la senzori prin UDP)

NMEA 0183(din " Asociația Națională de Electronică Marină") - un standard care definește un protocol text pentru comunicarea între ele a echipamentelor maritime (de obicei de navigație) (sau a echipamentelor utilizate pe trenuri). A devenit deosebit de popular datorită proliferării receptoarelor GPS care utilizează acest standard.

Vedere generală a liniilor în NMEA 0183

  • "$" sau "!" (hex 24 sau hex 21)
  • ID-ul mesajului din 5 litere. Primele două litere sunt identificatorul sursei mesajului, următoarele trei litere sunt identificatorul formatului mesajului, conform protocolului NMEA 0183 al unei anumite versiuni.
  • o listă de date (litere, cifre și puncte) separate prin virgule. Dacă lipsesc date interior linii, virgulele sunt încă plasate (de exemplu, „,”). Unele domenii la sfârșitul liniile pot lipsi cu totul.
  • simbolul „*”.
  • XOR pe opt biți - suma tuturor caracterelor (inclusiv "," și "^") din linia dintre "$" și "*" convertită în două caractere ASCII majuscule pentru reprezentarea hexazecimală a octetului (0–9, A –F).
  • (hex 0D, hex 0A).

Lungimea maximă a mesajului este limitată la 82 de caractere (NMEA 0183 rev 3.0)

Standardul descrie mai mult de 250 de identificatori de secvențe NMEA. Standardul definește ratele de schimb de date la 4800 baud. (Pentru viteze de 38400 baud și mai mari, există un standard extins NMEA-0183-HS).

Standardul vă permite să adăugați propriile identificatoare de secvență, care sunt adesea folosite de producători pentru a transmite informații suplimentare despre funcționarea dispozitivului.

șir RMC (exemplu special)

$GPRMC,hhmmss.sss,A,GGMM.MM,P,gggmm.mm,J,v.v, b.b, ddmmyy, x.x, n,m*hh

Valorile câmpului:

  • „GP” - identificatorul sursei; în exemplul dat, acesta este GPS, „GL” - GLONASS, „GA” - Galileo, „GN” - GLONASS+GPS etc.
  • „RMC” - „Propoziție minimă recomandată C”
  • „hhmmss.sss” - timpul de fixare a locației conform UTC: „hh” - ore, „mm” - minute, „ss.sss” - secunde. Lungimea fracțiilor de secundă variază. Zerourile inițiale nu sunt omise.
  • „A” - stare: „A” - datele sunt de încredere, „V” - nesigure.
  • "GGMM.MM" - latitudine. 2 cifre de grade („GG”), 2 cifre de minute întregi, o perioadă și o parte fracțională de minute de lungime variabilă. Zerourile inițiale nu sunt omise.
  • "P" - "N" pentru nord sau "S" pentru latitudine sudică.
  • "gggmm.mm" - longitudine. 3 cifre de grade (“ggg”), 2 cifre de minute întregi, o perioadă și o parte fracțională de minute de lungime variabilă. Zerourile inițiale nu sunt omise.
  • „J” - „E” pentru est sau „W” pentru longitudine vestică.
  • „v.v” este componenta orizontală a vitezei relativ la sol în noduri. Număr în virgulă mobilă. Părți întregi și fracționale de lungime variabilă.
  • "b.b" - unghiul de urmărire (direcția vitezei) în grade. Număr în virgulă mobilă. Părți întregi și fracționale de lungime variabilă. O valoare de 0 corespunde mișcării la nord, 90 la est, 180 la sud, 270 la vest.
  • „ddmmyy” - data: ziua lunii, luna, ultimele 2 cifre ale anului (sunt necesare zerouri inițiale).
  • „x.x” este declinația magnetică în grade (deseori lipsă), calculată folosind un anumit model. Număr în virgulă mobilă. Părți întregi și fracționale de lungime variabilă.
  • „n” - direcția declinației magnetice: pentru a obține un curs magnetic, declinația magnetică trebuie să fie „E” - scăzută, „W” - adăugată la cursul adevărat.
  • „m” - indicator de mod: „A” - autonom, „D” - diferențial, „E” - aproximare, „N” - date nesigure (deseori lipsesc, acest câmp, inclusiv virgula, lipsește în versiunile mai vechi de NMEA).
  • "hh" - suma de control.
  • - octetul este 0x0D.
  • - octetul este 0x0A.

Exemple de șiruri RMC

Exemplul 1

$GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,*17

Valorile câmpului:

  • 12 ore 55 minute 4.049 secunde UTC
  • "De încredere
  • latitudine 55° 42,2389", nord
  • longitudine 37° 41,6063", est
  • viteza 0,06 noduri

Probabil că acum ești ocupat să rezolvi problema piratarii unui alt mega-super-hiper server, dar știi ce este GPS-ul și cum să-l folosești?! Dacă nu, atunci acesta este locul pentru tine! În acest articol vă voi spune despre cum funcționează receptorii GPS, cum să obțineți informații de la ele și cum să scrieți un program simplu pentru a lucra singur cu modulul GPS.

GPS (Global Positioning System) a fost introdus de Statele Unite în 1994. Este format din 24 de sateliți și sisteme de recepție la sol, care pot fi navigatorul dvs. GPS sau modulul GPS (denumit în continuare navigator). Pentru a determina coordonatele cu precizie, navigatorul trebuie să vadă cel puțin 4 sateliți. În trecutul recent, acuratețea determinării coordonatelor în afara Statelor Unite (sau mai degrabă pentru consumatorii din afara SUA) a fost redusă artificial, dar nu cu mult timp în urmă această limitare a fost eliminată și acum vă puteți determina locația chiar și în taiga cu o precizie. de câțiva metri.

Așa funcționează totul: navigatorul tău primește informații de la fiecare dintre sateliții vizibili, care sunt ca niște balize pentru el. În interiorul navigatorului există un microprocesor cu un program încorporat, care, pe baza datelor primite, calculează locația dvs.

În prezent, există un număr mare de navigatoare GPS și module GPS pentru PDA-uri și laptopuri la vânzare. Un navigator GPS este un receptor GPS cu un ecran care afișează informații despre locația dvs., iar un modul GPS este un receptor GPS care se conectează la un computer și transmite toate informațiile de navigare către programul care funcționează cu acesta. Toate, în principiu, diferă doar prin factorul de formă și nu au diferențe fundamentale în funcționare. Dar tu și pe mine suntem mai interesați de modul în care comunică cu computerul și de cum să extragem informații din acesta. Acum o să-ți spun și să-ți arăt totul.

Indiferent de factorul de formă (COM, USB, BlueTooth etc.) modulul GPS este, acesta va fi conectat logic la computer printr-un port COM, de exemplu. Când este conectat, o conexiune este creată prin portul serial. Informațiile de navigare în majoritatea cazurilor sunt transmise prin protocolul NMEA. Acesta este cel mai comun protocol de transmisie pentru modulele GPS. Deși există și alte protocoale, nu le vom lua în considerare.

Ei bine, acum este momentul să aflați cum să faceți software să funcționeze cu toate aceste echipamente. Voi spune imediat că nu vreau să explic acum cum să pun butoanele în același timp
VB, articolul este mai mult cu scop informativ. Pentru cei care sunt în rezervor, voi explica procesul de creare a unui program în articolele următoare.
Voi acoperi doar cele mai importante puncte și cred că veți reuși. Voi spune imediat că puteți crea un program în orice limbaj de programare, atâta timp cât este posibil să lucrați cu un port serial și cu șiruri.
Primul lucru cu care trebuie să începeți este deschiderea portului COM. Aproape toate receptoarele au setări implicite: viteză 9600 bps, 8/N/1. De îndată ce deschideți portul, veți primi imediat informații de navigare aproximativ astfel, la intervale de o secundă:

$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

Acum să începem analiza:

Datele sunt transmise sub formă de propoziții. Formatul propunerii este următorul:

$AAAAA[,<данные>]*hh , Unde

$ este simbolul pentru începutul unei propoziții (cod 24h);
AAAAA - adresa (denumirea) din cinci caractere a ofertei;
[, <данные>] — listă de câmpuri de date separate prin virgule (cod 2Сh);
* — semnul sumei de control (cod 2Ah);
hh - suma de control;
, este limitatorul final (codurile 0Dh și 0Ah).

Tipuri de câmpuri de date.

Tipul câmpului Desemnare Definiție

Format de câmp special

stare A Câmp cu un singur caracter. A= da, date
semnal de avertizare fiabil
Nu. V= nu, datele nu sunt de încredere, da
semnal de avertizare.
Latitudine llll.ll
grade-minute fracțiuni de minute. 2 caractere

numărul de fracțiuni de minut. Dacă primul
nu există nici un semn de grade sau minute, atunci
este înlocuit cu zero astfel încât




Rezoluție înaltă.
Longitudine aaaaa.aaa Câmp cu lungime fixă/variabilă:
grade-minute și fracțiuni de minute. 3 caractere
grade, semne 2 minute și variabile
numărul de fracțiuni de minut. Dacă primul
semne sau semnul primului minut lipsește,
apoi sunt înlocuite cu zero pentru a
păstrați constant numărul de caractere.
Punct zecimal și semne ulterioare
fracţiunile de minute sunt suplimentare şi
nu poate fi folosit dacă nu este necesar
Rezoluție înaltă.
Timp hhmmss.ss Câmp de lungime fixă/variabilă: ore/minute/secunde
și o fracțiune de secundă. 2 semne de ceas, 2 semne
semne minute, 2 secunde și număr variabil
semne de fracțiuni de secundă. Ca primul
poate semnul ore, minute, secunde
setați la zero pentru a salva
număr constant de caractere. Dacă nu
atunci este necesară o mare precizie
virgulă zecimală și fracțiuni de secundă pot
fi omis.
Câmpuri specifice Unele domenii sunt speciale
destinat a fi plasat în prealabil
anumite valori constante, mai des
totalul denumirilor de litere. Semn
astfel de câmpuri este prezența unuia sau
mai multe personaje.

Câmpuri cu valori digitale

Câmpuri de informații

Note:

1. Spațiile pot fi utilizate numai în câmpuri de text cu lungime variabilă.

2. Semnul negativ „-” (cod 2Dh) este primul caracter al câmpului dacă conține valori negative. Când utilizați un semn negativ în câmpuri cu lungime fixă, lungimea acestora este mărită cu unu. Pentru valorile pozitive, semnul este omis.

GGA – date de localizare GPS

Timpul, locul și datele legate de observație.

$GPGGA,hhmmss.sss,llll.ll,a,aaaaa.aaa,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh

1. hhmmss.sss – definițiile timpului de navigare;
2. llll.ll,a – latitudine, N/S;
3. yyyyy.yy,a – longitudine, E/V;
4. x – indicator de calitate a observației: 0 = fără date, 1 = observație primită, 2 = observație în mod diferențial;
5. xx – numărul de sateliți utilizați;
6. x.x – valoarea factorului geometric orizontal (HDOP);
7. x.x,M – înălțimea antenei deasupra nivelului mării (geoid), m;
8. x.x,M – cota geoidului peste elipsoidul WGS84, m;
9. x.x – îmbătrânirea corecțiilor diferențiale, adică timpul în secunde de când a fost primită ultima corecție diferențială, se folosește un câmp zero dacă modul diferențial este dezactivat;
10. xxxx – identificator de stație diferențială 0е1023.

Ora, data, coordonatele și cursul calculate de echipament.

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

Domeniile acestei oferte sunt:

1. hhmmss.ss – timp;
2. A – status (A/V);
3. llll.ll,a – latitudine, N/S;
4. yyyyy.yy,a – longitudine, E/V;
5. x.x – viteza în noduri;
6. x.x – curs în grade;
7. xxxxxx – data: zz/ll/aa (zi/luna/an);
8. x.x,a – declinația magnetică în grade, E/V;
9. a – indicator de mod: A = observație autonomă, D = mod diferențial, N = date invalide.

GSA - Factor de degradare a preciziei utilizat pentru sateliții de navigație

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

Domeniile acestei oferte sunt:
1. a – mod de control pentru numărul de coordonate definite: M = manual, mod specificat, A = comutare automată;
2. x – mod de funcționare: 1 = observarea este imposibilă, 2 = se determină două coordonate, 3 = se determină trei coordonate;
3. xx...xx – numere de sateliți folosiți pentru rezolvarea problemei de navigație, numărul de câmpuri este egal cu numărul de canale receptor, numerele 1е32 sunt folosite pentru GPS, 33е64 pentru WAAS, 65е96 pentru GLONASS;
4. x.x – factor general de deteriorare a preciziei geometrice (PDOP);
5. x.x – factor de deteriorare geometric orizontal (HDOP);
x.x – factorul de degradare geometrică verticală (VDOP).

GSV – Sateliți vizibili

Numărul de sateliți din zona de vizibilitate radio, numărul satelitului, unghiul de elevație, azimut și raportul semnal-zgomot. O propoziție poate conține informații despre 1 până la 4 sateliți. Datele suplimentare ale satelitului sunt transmise în propozițiile ulterioare. Numărul ofertei este indicat în primele două câmpuri de date. Următoarele numere sunt rezervate pentru sistemele prin satelit: pentru GPS 1-32, pentru WAAS 33-64, pentru GLONASS 65-96.

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

Domeniile acestei oferte sunt:
1. x – numărul total de mesaje;
2. x – numărul mesajului;
3. xx – numărul total de sateliți în zona de vizibilitate radio;
4. xx – numărul satelitului;
5. xx – unghi de elevație satelit, grade 00-90;
6. xxx – azimut adevărat, grade 000-360;
7. xx – raport semnal-zgomot 00-99 dB, dacă satelitul nu este însoțit, acesta nu este transmis.

Notă: câmpurile 4, 5, 7 se repetă pentru 2, 3 și 4 sateliți.

Ei bine, acum, având o descriere a protocolului NMEA și a driverului direct_ruki.sys, puteți începe analizarea linie cu linie a pachetelor și crearea unui mega program)))).

NMEA 0183– protocol de comunicare text utilizat în modulele de recepție GPS. Acest standard a fost creat pentru comunicarea echipamentelor de navigație maritimă. Protocolul prevede transmiterea de comenzi text și mesaje folosind caractere ASCII. Astfel, pentru a primi mesaje, este suficient să folosiți interfața serială UART, în timp ce toate mesajele pot fi transmise direct către computer folosind portul COM, fără a uita însă nevoia de a converti nivelurile de semnal.

Modulul GPS transmite mesaje de diferite formate care conțin diferite seturi de date: latitudine și longitudine, viteză, direcție, oră, număr de sateliți etc. Mesajele sunt transmise secvențial și sunt împărțite în mai multe tipuri; formatul fiecărui tip de mesaj conține informații strict definite în câmpurile sale. Să aruncăm o privire mai atentă asupra structurii generale a mesajelor pe care le produce modulul GPS.

$ - fiecare mesaj începe cu acest simbol

Acesta este urmat de un identificator de 5 caractere text. Primele două litere indică tipul de sistem de navigație, de ex. „GP” - GPS sau " GL" - Glonass etc. Următoarele 3 caractere sunt identificatorul formatului mesajului, care determină complet conținutul datelor transmise ulterioare. De exemplu "RMC"- acestea sunt datele minime recomandate, care conțin informații despre oră și dată, latitudine și longitudine, viteză, curs și abaterea magnetică în grade (poate lipsi). Sau „GSA”, datele satelitare vor fi transmise aici. Structura principalelor tipuri de mesaje va fi discutată mai jos.

Apoi urmează «,» - o virgulă, după care urmează imediat corpul mesajului cu diverse date, care sunt separate între ele prin aceeași virgulă. Dacă numărul transmis nu este un număr întreg, atunci separatorul dintre părțile întregi și fracționale este un punct «.» .

Sfârșitul corpului mesajului este indicat prin simbol «*» . Ceea ce urmează este suma de control a tuturor caracterelor cuprinse între „$” și „*”, adică întregul corp al mesajului, inclusiv datele în sine și identificatorii de la începutul mesajului. Suma de control este calculată ca XOR (SAU exclusiv) al tuturor codurilor ASCII hexazecimale ale caracterelor mesajului.

Și la sfârșitul fiecărui mesaj trebuie să existe caractere newline

Să ne uităm la scopul și structura diferitelor tipuri de mesaje.

R.M.C.– date minime de navigare recomandate. Mesajul conține cantitatea minimă necesară de informații. Aceste date includ latitudinea și longitudinea, data și ora și viteza. Pentru multe sarcini, nu este nevoie de mai mult, de exemplu, în modul Quectel L50 Am oprit transmiterea tuturor celorlalte tipuri de mesaje, deoarece nu am absolut nevoie de informații despre sateliți și nivelul semnalelor acestora. Iar primirea de informații inutile necesită complicarea programului de prelucrare a acestor date. Structura mesajului este următoarea:

$GPRMC hhmmss.sss,A,ddmm.mmmm,N,ddmm. mmmm , E,v.v.c. c, ddmmyaaa,x.x,n,m*hh

Acest mesaj conține următoarele informații:

  • GPRMC– Sistem satelit GPS, identificator de mesaj RMC
  • hhmmss.sss– timp (Greenwich Mean Time), unde hh – ore, mm – minute, ss.sss – secunde
  • A– datele sunt de încredere sau V– datele sunt nesigure. Simbol A se va furniza mesajul că există o recepție sigură a semnalelor de la sateliți necesare pentru calcularea datelor de locație. Simbol V va apărea atunci când receptorul nu vede sateliții sau când numărul de sateliți găsiți nu este suficient pentru a calcula cu încredere coordonatele. De exemplu, dacă porniți modulul GPS undeva într-o casă de panouri și departe de ferestre, cel mai probabil veți vedea simbolul Vîn mesajul primit.
  • ddmm.mmmm– latitudine, grade și minute
  • N sau S- nord sau sud. Emisfera în care te afli. Dacă ești în Australia, se va arăta S. În Ekaterinburg, modulul meu GPS dă N.
  • ddmm.mmmm– longitudine, grade și minute
  • E sau W– emisfera vestică sau estică
  • v.v– viteza in noduri
  • c. c– îndreptându-se deasupra solului în grade. Când vă deplasați spre nord, vor fi 0 grade.
  • ddmmyaaa- Data
  • x.x– declinație magnetică
  • n– direcția declinației magnetice. Nu pot explica nimic despre acești ultimi doi parametri. De exemplu, modulul meu GPS Quectel L50în timpul recepției în apartament, aceste date nu au fost afișate deloc pe fereastră, au fost pur și simplu omise.
  • m- modul de navigare: N- date inexacte, A– autonom, D– diferential

Iată un exemplu de mesaj RMC:

$GPRMC,105954.000,A,3150.6731,N,11711.9399,E,0.00,96.10,250313,A*53

  • GMT 10h 59m 54s
  • A– datele sunt de încredere
  • Latitudine 31 de grade și 50,6371 minute
  • N- de Nord
  • Longitudine 117 grade 11,9399 minute
  • E– estic
  • Viteză 0,00 noduri
  • Bine 96,1 grade
  • Data 25 martie 2013
  • Date despre declinație magnetică nici unul
  • Mod - autonom
  • Suma de verificare a caracterelor mesajului 0×053

Un punct trebuie remarcat aici. Datele de latitudine și longitudine conțin o fracțiune de minute, care nu corespunde deloc cu numărul de „secunde”, deoarece este o fracțiune zecimală. Programele GPS pe care le-am încercat arată coordonatele de pe hartă cu precizie. Dar dacă introduceți aceste numere în bara de căutare Google Maps, locația de pe hartă va fi la câțiva kilometri de cea actuală. Când introduceți coordonatele obținute în acest caz, trebuie să împărțiți partea fracțională a latitudinii și longitudinii la 60 pentru a converti aceste numere în „secunde”. Când am conectat prima dată modulul Quectel L50 și am introdus coordonatele de latitudine și longitudine obținute în bara de căutare Google Maps, am primit o poziție pe hartă cu o eroare semnificativă, harta indica un loc undeva în zona Uralmash;

Iată câteva alte tipuri de mesaje utilizate în acest protocol:

  • VTG- direcția reală a cursului și viteza la sol
  • G.G.A.- ultimele date de locație
  • G.S.A.- date despre sateliții activi
  • GSV- date despre sateliții vizibili, poziția și numerele acestora, precum și puterea semnalului
  • GLL- date despre latitudine, longitudine și oră
  • ZDA- informatii despre ora si data

Nu am intrat în detaliu în ce constă fiecare mesaj un link către un document care descrie protocolul este dat la sfârșitul articolului. Este posibil ca un anumit tip de modul GPS să nu transmită toate datele enumerate. Puteți dezactiva sau activa transmiterea diferitelor tipuri de date și, de asemenea, puteți seta perioada de livrare a acestora. Pentru a configura modulul, există comenzi speciale care încep cu un identificator $PSRFxxx, Unde xxx specifică tipul și formatul comenzii, la fel ca în mesajele trimise.

De exemplu, comanda $PSRF100.0.9600.8.1.0*0C setează protocolul de comunicație și configurează parametrii portului serial.

  • $PSRF100 – identificatorul de comandă a protocolului SIRF nativ
  • 0 – protocol binar SIRF, 1 – Protocolul NMEA
  • 9600 – viteza de biți/sec
  • 8 bit de date
  • 1 oprește puțin
  • 0 – verificarea parității este dezactivată

Echipă $PSRF103.00.00.02.01*26 configurează parametrii de ieșire pentru diferite tipuri de mesaje de modul:

  • $PSRF103– Identificator de comandă de protocol nativ SIRF
  • apoi după virgulă sunt două cifre care determină tipul de mesaj personalizat: 00 - GGA
    01 - GLL
    02 - GSA
    03 - GSV
    04 - RMC
    05 - VTG
  • următoarele două cifre configurează ordinea în care sunt emise mesajele, de exemplu: 00 - periodic
    01 - la cerere
  • Următoarele numere setează perioada mesajului în secunde: 00 = Off (mesajele sunt dezactivate)
    1-255 – interval între mesaje de acest tip în secunde
  • atunci transmisia sumei de control este activată/dezactivată în mesajul NMEA transmis de modul: 00 – transmiterea sumei de control este dezactivată
    01 – se transmite suma de control
  • după caracterul „*”, ca în mesajul NMEA de ieșire, sunt transmise o sumă de control și caractere de avans de linie.

Asta este tot ce am vrut să subliniez pe scurt despre protocolul NMEA 0183 și comenzile de control al modulelor de pe chipset-ul SIRF. O decodare mai detaliată a tuturor acestor mesaje și comenzi este dată, de exemplu, în descrierea protocolului modulului Quectel L50, care poate fi descărcată din linkul de mai jos.

Descrierea protocolului NMEA. Implementare în receptoarele Garmin și GlobalSat

Introducere

National Marine Electronics Association (NMEA) a dezvoltat un protocol special pentru a menține compatibilitatea între echipamentele de navigație marină de la diferiți producători. Acest protocol NMEA descrie nu numai datele primite de la receptoarele GPS, ci și măsurătorile de la sonare, radare, busole electronice, barometre și alte dispozitive de navigație utilizate pe navele maritime.

Interfața de schimb de date a majorității receptoarelor GPS portabile este implementată în conformitate cu această specificație. Majoritatea programelor de navigare care oferă suport pentru afișarea datelor în timp real și „înțeleg” protocolul NMEA. Aceste date conțin măsurătorile complete de navigare ale receptorului GPS - poziție, viteză și timp. Toate mesajele NMEA constau dintr-un set secvenţial de date separate prin virgule. Fiecare mesaj individual este independent de celelalte și este complet „complet”. Un mesaj NMEA include un antet, un set de date reprezentat de caractere ASCII și un câmp de sumă de control pentru a verifica validitatea informațiilor transmise.

Antetul mesajelor standard NMEA este format din 5 caractere, dintre care primele două determină tipul mesajului, iar celelalte trei indică numele acestuia. De exemplu, toate mesajele GPS NMEA sunt prefixate cu „GP”. Mesajele care nu sunt descrise în specificația NMEA, dar sunt implementate în receptoarele GPS conform regulilor generale, sunt prefixate cu un „P” urmat de trei caractere unice pentru fiecare companie. De exemplu, mesajele NMEA „native” de la Garmin au prefixul „PGRM”, Magellan - „PMGN”
Fiecare mesaj NMEA începe cu „$”, se termină cu „n” („line feed”) și nu poate fi mai lung de 80 de caractere. Toate datele sunt cuprinse pe o singură linie și sunt separate între ele prin virgule. Informațiile sunt prezentate sub formă de text ASCII și nu necesită decodare specială. Dacă datele nu se încadrează în cele 80 de caractere alocate, atunci sunt „împărțite” în mai multe mesaje NMEA.

Acest format vă permite să nu limitați acuratețea și numărul de caractere în câmpurile individuale de date. De exemplu, partea fracțională a valorii coordonatei poate fi reprezentată cu 3 sau 4 zecimale, dar acest lucru nu ar trebui să afecteze în niciun fel funcționarea software-ului, care selectează datele necesare din mesaj după numărul câmpului. La sfârșitul fiecărui mesaj NMEA există un câmp „checksum” separat de date printr-un caracter „*”. Dacă este necesar, poate fi utilizat pentru a verifica integritatea și validitatea fiecărui mesaj primit.

Protocolul NMEA acceptă nu numai mesajele de ieșire, ci și de primit, cu care, de exemplu, puteți actualiza sau adăuga puncte de referință ale rutei. Aceste mesaje trebuie generate în strictă conformitate cu formatul NMEA, altfel vor fi pur și simplu ignorate de receptorul GPS. Este de remarcat faptul că nu toate programele de navigație și modelele de receptor acceptă acest mod, deoarece folosesc protocoale proprietare ale producătorilor - Garmin, Magellan etc. - pentru a încărca puncte și rute.

De la începuturile sale, protocolul NMEA a suferit mai multe modificări asociate cu adăugarea de noi câmpuri și mesaje. Versiunea actuală acceptată de majoritatea receptoarelor este versiunea 2.3, deși o nouă versiune 3.0 a fost deja publicată. Specificația completă a mesajelor NMEA nu este disponibilă public și nu poate fi descărcată oficial în formă electronică. Secțiunile sale individuale, o descriere generală a protocolului NMEA și cele mai populare mesaje pot fi găsite pe Internet. Puteți achiziționa oficial documentația NMEA de la www.nmea.org.

lista de mesaje

Protocolul NMEA descrie o listă mare de mesaje diferite, din care pot fi identificate două duzini de mesaje care sunt utilizate în mod activ în echipamentele de navigație. Datorită popularității mari și prezentării simple a datelor, protocolul NMEA și-a găsit aplicație nu numai în echipamentele marine, ci și în receptoarele GPS geodezice, de uz casnic și de aviație.

  • AAM - Sosire la Waypoint
  • ALM - date almanahului
  • APA - Date autopilot „A”
  • APB - Date autopilot „B”
  • BOD - Derulare către destinație
  • DTM - Date în uz
  • GGA - Informații despre soluții fixe
  • GLL - Date de latitudine și longitudine
  • GSA - Informații generale despre satelit
  • GSV - Informații detaliate despre sateliți
  • MSK - Transferul controlului către receptorul de bază
  • MSS - Stare de bază a receptorului
  • RMA - Setul de date Loran recomandat
  • RMB - Set de date de navigare GPS recomandat
  • RMC - Setul minim de date GPS recomandat
  • RTE - Informații despre rută
  • VTG - Vector de mișcare și viteză
  • WCV - Date de viteză în apropierea punctului de trecere
  • WPL - Date pentru punctele de trecere
  • XTC - Eroare off-Track
  • XTE - Eroare de urmărire măsurată
  • ZTG - ora UTC și timpul rămas până la sosirea la destinație
  • ZDA - Data și ora.

Unele dintre mesajele NMEA pot conține aceleași câmpuri de date sau pot conține complet datele altor mesaje NMEA mai mici.

ConţinutMesaje NMEA

GGA - informații despre o soluție fixă.
Cel mai popular și mai folosit mesaj NMEA oferă informații despre soluția fixă ​​curentă - coordonatele orizontale, valoarea altitudinii, numărul de sateliți utilizați și tipul soluției.

$GPGGA,123519,4807.038,N,01131.000,E,1.08,0.9,545.4,M,46.9,M,*47
Unde:

  • GGA - Antet
  • 123519 - ora UTC 12:35:19
  • 4807.038, N - Latitudine, 48 de grade 7.038 minute latitudine nordică
  • 01131.000, E - Longitudine, 11 grade 31.000 minute longitudine estică
  • 1 - soluție de tip, soluție StandAlone
    • 0 - nicio soluție,
    • 1 - StandAlone,
    • 2 - DGPS,
    • 3 - PPS,
    • 4 - RTK fix,
    • 5 - RTK nu este fix,
    • 6 - utilizarea datelor sistemelor inerțiale,
    • 7 - modul manual,
    • 8 - modul de simulare
  • 08 - numărul de sateliți utilizați
  • 0,9 - factor geometric, HDOP
  • 545,4, M - altitudinea deasupra nivelului mării în metri
  • 46,9, M - înălțimea geoidului deasupra elipsoidului WGS 84
  • [câmp gol] - timpul scurs de când a fost primită ultima corecție DGPS. Completat când modul DGPS este activat
  • [câmp gol] - numărul de identificare al stației de bază. Completat când modul DGPS este activat.

GSA - informații generale despre sateliți.
Acest mesaj NMEA conține o listă de sateliți utilizați în calculul poziției și valorile DOP-urilor geometrice care determină acuratețea calculului poziției. Parametrii DOP sunt determinați de aranjarea geometrică a sateliților pe cer. Cu cât sateliții sunt „distribuiți” mai bine pe cer, cu atât DOP-ul este mai scăzut și precizia poziției este mai bună. Valoarea minimă PDOP (= 1) corespunde unei situații în care un satelit este direct deasupra utilizatorului, iar ceilalți 3 sunt distribuiti uniform la nivelul orizontului. Valoarea PDOP este calculată ca rădăcină pătrată a sumei pătratelor HDOP și VDOP.

$GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39
Unde:

  • GSA - antet
  • A - tip de alegere între soluții 2D și 3D, automat (A-auto, M-manual)
  • 3 - tip de soluție, soluție 3D (1 - fără soluție, 2 - soluție 2D, 3 - soluție 3D)
  • 04.05... - coduri PRN utilizate la calcularea pozițiilor satelitului (12 câmpuri)
  • 2.5 - factor geometric spațial, PDOP
  • 1.3 - factor geometric orizontal, HDOP
  • 2.1 - factor geometric vertical, VDOP

GSV - Informații detaliate despre sateliți
Acest mesaj NMEA conține informații detaliate pentru toți sateliții urmăriți de navigatorul GPS. Pe baza limitei de 80 de caractere, un mesaj NMEA poate transmite date doar pentru 4 sateliți. În consecință, 12 sateliți necesită 3 mesaje GSV.
Câmpul SNR (Signal to Noise Ration) conține valorile nivelurilor semnalelor de navigație primite de la sateliți. Teoretic, valoarea sa poate varia de la 0 la 99 și este măsurată în dB. De fapt, nivelul semnalului se află în intervalul 25 ... 35 dB. Este demn de remarcat aici că acest parametru nu este absolut și nu este potrivit pentru compararea sensibilității receptoarelor de diferite modele și producători. Navigatoarele GPS pot folosi diferiți algoritmi pentru calcularea nivelului semnalului primit, ceea ce duce la rezultate diferite cu același grad de sensibilitate al receptorilor.
Pentru fiecare satelit GPS vizibil, este transmis un set de informații, inclusiv puterea semnalului, unghiul de elevație și azimutul satelitului. Numărul acestor „seturi” este determinat de numărul total de sateliți vizibili, a căror valoare este transmisă într-un câmp separat.

$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75
Unde:

  • GSV - antet
  • 2 - numărul de mesaje GSV din pachet
  • 1 - numărul mesajului din pachet (de la 1 la 3)
  • 08 - numărul de sateliți vizibili
  • 01 - numărul satelitului
  • 40 - unghi de elevație, în grade
  • 083 - azimut în grade
  • 46 - SNR, puterea semnalului

RMC - set minim recomandat date GPS
Acest mesaj NMEA conține întregul set de așa-numitele date „PVT”. „PVT” este o abreviere comună pentru „poziție, viteză, timp”.

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

  • RMC - antet
  • 123419 - ora UTC, 12:34:59
  • A - stare (A - activ, V - ignorare)
  • 4807.038,N - Latitudine, 48 grade 07.038 minute latitudine nordică
  • 01131.000,E - Longitudine, 11 grade 31.000 minute longitudine estică
  • 022.4 - Viteză, în noduri
  • 084.4 - Direcția de mișcare, în grade
  • 230394 - Data, 23 martie 1994
  • 003.1,W - Variații magnetice

GLL - date de latitudine și longitudine

Mesaj NMEA cu coordonatele de latitudine și longitudine și ora la care a fost calculată această soluție.

$GPGLL,4916.45,N,12311.12,W,225444,A,*31

  • GLL - antet
  • 4916.46,N - latitudine, 49 grade 16.45 minute latitudine nordică
  • 12311.12, longitudine W, 123 grade 11.12 minute longitudine vestică
  • 225444 - Ora de fixare pe scara de timp UTC, 22:54:44

ÎN OD - Azimut până la destinație
Acest mesaj NMEA indică direcția către o destinație în modul de navigare.

$GPBOD,045.,T,023.,M,DEST,START*01

  • BOD - antet
  • 045.,T - direcția adevărată spre punct
  • 023.,M - direcția magnetică către un punct
  • DEST - numărul de identificare a punctului final
  • START - numărul de identificare a punctului de plecare

$GPRMB,A,0,66,L,003,004,4917,24,N,12309,57,W,001,3,052,5,000,5,V*20

  • RMB - antet
  • A - Tip de date, (A - activ, V - ignorare)
  • 0,66,L - abatere de la pistă. Parametrul este definit în mile marine. (L - stânga, R - dreapta)
  • 003 - numărul de identificare a punctului de plecare
  • 004 - numărul de identificare a punctului final
  • 4917.24,N - valoarea latitudinii punctului final, 49 grade 17,24 minute latitudine nordică
  • 12309.57,W - valoarea longitudinii punctului final, 123 grade 09.57 minute longitudine vestică
  • 001.3 - distanță până la punct, în mile marine
  • 052.5 - direcție spre punct
  • 000,5 - viteza, in noduri
  • V - informații despre sosire (A - sosire, V - punctul neatins încă)

RTE - Informații despre rută

Mesajul NMEA RTE afișează o listă de puncte de referință pe ruta activă. Există două tipuri de mesaje RTE. În primul caz, sunt afișate toate punctele de traseu. În al doilea, există doar o listă a punctelor rămase care mai trebuie vizitate în timp ce se deplasează de-a lungul traseului. Având în vedere că protocolul NMEA are o limitare conform căreia lungimea mesajului nu trebuie să depășească 80 de caractere, un mesaj RTE poate consta din mai multe linii.

$GPRTE,2,1,c,0,W3IWI,DRIVWY,32CEDR,32-29,32BKLD,32-I95,32-US1,BW-32,BW-198*69

  • RTE - antet
  • 2 - numărul total de mesaje pentru a afișa lista completă de date
  • 1 - numărul mesajului din lista generală
  • c - tipul mesajului RTE (c - lista completă a punctelor de traseu, w - lista punctelor care nu au fost încă vizitate)
  • 0 - identificatorul rutei
  • W3IWI,DRIVWY,.. - listă de puncte de referință

Caracteristici Garmin

Receptoarele Garmin acceptă majoritatea mesajelor NMEA care conțin măsurători GPS, poziții și timp - GGA, GLL, GSA, GSV, RMC. Precum și mesajele de navigare - RMB, BOD

Pentru a afișa aceste mesaje, trebuie să schimbați interfața din setările receptorului de la „Garmin” la „NMEA” și eventual să setați viteza dorită. Aceeași viteză trebuie setată în programul de navigație în setările portului serial la care este conectat navigatorul.

Din păcate, receptoarele cu port USB nu acceptă protocolul NMEA, limitându-i setările doar la protocolul Garmin.

Pentru a afișa informațiile care intră în portul serial al computerului, puteți utiliza un program de terminal Windows sau unul dintre programele de navigare care acceptă această caracteristică.

Mai jos este o listă de mesaje NMEA ale receptorului Garmin eMap care sunt conținute într-o singură epocă.

$GPRMC,135412,A,5522.8973,N,03710.1401,E,0.0,0.0,190507,9.3,E,A*1F

$GPRMB,A,,A,A*0B

$GPGGA,135412,5522.8973,N,03710.1401,E,1,04,5.4,205.2,M,15.8,M,*4A

$GPGSA,A,3,08,13,23,25,5.7,5.4,1.0*3C

$GPGSV,3,1,11,02,15,267,00,03,11,085,45,04,05,236,00,08,39,233,00*77

$GPGSV,3,2,11,10,32,308,00,13,63,109,43,16,17,037,00,23,31,111,38*77

$GPGSV,3,3,11,24,09,343.00,25,66,077,44,27,69,229.00*46

$GPGLL,5522.8973,N,03710.1401,E,135412,A,A*43

$GPBOD,T,M,*47

$PGRME,19.1,M,15.2,M,25.3,M*15

$ PGRMZ,673, f,3*19

$ PGRMM, WGS 84*06

Pe lângă mesajele standard NMEA, receptoarele Garmin au propriul set de mesaje, fiecare conținând un prefix „GRM” în antet, un identificator „M” sau „Z” care identifică tipul de date și un caracter pentru nume.

PGRME - Estimarea erorilor de poziționare

$PGRME,15.0,M,45.0,M,25.0,M*1C

  • 15.0,M - evaluarea erorii de poziţionare orizontală, în metri
  • 45.0,M - estimarea erorii verticale, în metri
  • 25.0,M - eroare de poziționare sferică echivalentă

PGRMZ - măsurători de înălțime

$PGRMZ,93,f,3*21

  • 93,f - valoarea înălțimii, în lire sterline
  • 3 - condiții de măsurare a poziției (2 - înălțime definită de utilizator, 3 - înălțime calculată de GPS)

PGRMM - date curente

$PGRMM,NAD27 Canada*2F

  • NAD27 Canada - numele datei orizontale curente

ParticularitățiSirf

Cipurile GPS de la Sirf sunt folosite în diverse echipamente de navigație GPS, de la plăci convenționale până la navigatoare GPS portabile și auto. Dar, spre deosebire de navigatoare, acestea acceptă doar mesaje NMEA legate de măsurători GPS, calcule de poziție și timp - GGA, GLL, GSA, GSV, RMC, VTG, ZDA.

„Sirf” acceptă, de asemenea, mai multe mesaje NMEA „incoming” destinate configurării și ajustării diferiților parametri. În plus, Sirf implementează propriul protocol binar, care vă permite să modificați semnificativ mai multe setări. Aceste 5 mesaje NMEA „intrat”, conform regulilor, încep cu prefixul $PSFR. Toate mesajele conțin un set fix de date și se termină cu caracterul „n” (line feed)

Pentru a configura parametrii „Sirf”, se folosește un program special „SirfTech”. Parametrii mesajelor NMEA sunt configurați într-un articol separat de meniu.

$GPGGA,100643.000,5522.9036,N,03710.1282,E,1.07,1.6,209.9,M,14.9,M,0000*52

$GPGSA,A,3,31,01,23,20,11,30,14,2.1,1.6,1.4*35

$GPGSV,3,1,12,20,84,187,41,01,49,067,46,23,46,238,45,31,45,073,50*7B

$GPGSV,3,2,12,11,25,194,34,13,16,240,04,15,319,30,17,14,273,21*7A

$GPGSV,3,3,12,30,10,026,33,14,05,063,22,05,04,009,25,25,03,195,*7F

$GPRMC,100643.000,A,5522.9036,N,03710.1282,E,0.16,119.11,200507,*0D

După cum puteți vedea din exemplul de mai sus, setările din fabrică conțin mai puține mesaje NMEA în comparație cu setările Garmin. Dacă este necesar, acest set poate fi extins prin setarea perioadei în mesajele NMEA lipsă.

$GPGGA,100833.000,5522.9076,N,03710.1270,E,1.07,1.3,222.4,M,14.9,M,0000*53

$GPGLL,5522.9076,N,03710.1270,E,100833.000,A*34

$GPGSA,A,3,31,01,23,20,11,30,17,2.1,1.3,1.6*31

$GPGSV,3,1,12,20,84,180,43,01,49,067,47,23,47,238,45,31,45,072,49*77

$GPGSV,3,2,12,11,24,193,26,13,16,240,26,04,15,319,24,17,13,273,31*78

$GPGSV,3,3,12,30,10,025,26,14,04,064,22,25,04,195,05,04,008,21*7C

$GPRMC,100833.000,A,5522.9076,N,03710.1270,E,0.18,4.86,200507,*00

$GPVTG,4,86,T,M,0,18,N,0,3,K*60

$GPZDA,100834.000,05/20/2007,*5A

PSFR100, PSFR102 - configurație port serial

Mesajul NMEA numărul 100 este folosit pentru a seta portul A, mesajul 102 - portul B. Mesajul 100 are un câmp suplimentar care vă permite să comutați interfața la protocolul binar Sirf.

În consecință, în protocolul binar există o comandă care comută portul înapoi în format NMEA. Înainte de a trece la protocolul binar, trebuie să înțelegeți dacă există un program care vă va permite să restaurați protocolul NMEA în viitor.

$PSRF100.0.9600.8.1.0*0C

$PSRF102.9600.8.1.0*3C

  • PSRF100 - antet
  • 0 - parametru care indică în ce mod a fost schimbat protocolul (0-Sirf, 1-NMEA)
  • 9600 - viteza portului (4800, 9600, 19200, 38400)
  • 8 - biți de date (7, 8)
  • 1 - biți de oprire (0,1)
  • 0 - împerechere (0 - niciunul, 1-impar, 2-par)

PSFR101, PSFR104 - inițializarea parametrilor receptorului

Mesajele NMEA numerotate 101 și 104 au scopul de a inițializa parametrii destinați recepției GPS. Determinarea acestor parametri poate accelera timpul de achiziție al sateliților GPS. Mesajul 101 setează coordonatele curente în format XYZ, mesajul 104 - în format BLH (longitudine, latitudine).

$PSRF101,-2686700,-4304200,3851624,95000,497260,921,12.3*22

$PSRF104.37.3875111.-121.97232.0.95000.237759.922.12.3*3A

  • PSRF101 - antet
  • 37,3875111 - latitudine în grade
  • -121.97232 - longitudine în grade
  • 0 - înălțime, în metri
  • 95000 - schimbare ceas
  • 237759 - Ora GPS, în secunde
  • 922 - numărul săptămânii GPS
  • 12 - numărul de canale
  • 3 - tip de inițializare a datelor (1 - pornire la cald, 2 - pornire la cald, 3 - inițializare a datelor, 4 - pornire la rece cu ștergerea completă a datelor, 8 - pornire la rece cu restabilirea setărilor din fabrică)

PSFR103 - configurație generație Mesaje NMEA

Acest mesaj NMEA vă permite să setați sau să interogați perioada de generare a fiecărui mesaj NMEA „ieșit”.

$PSRF103.05.00.01.01*20

  • PSRF103 - antet
  • 05 - titlul mesajului
    • 00 - GGA
    • 01 - GLL
    • 02 - GSA
    • 04 - RMS
    • 05 - VTG
  • 00 - modul (0 - setarea perioadei, 1 - cerere)
  • 01 - perioadă, în secunde (0-255)
  • 01 - prezența sumei de control (0 - da, 1 - nu)

Rezultatele experimentului

În condiții de vizibilitate normală prin satelit, receptorul Garmin eMap produce următorul set de mesaje NMEA:

$GPRMC,104644,A,5522.8965,N,03710.1389,E,0.0,0.0,200507,9.3,E,A*16

$GPRMB,A,,A,A*0B

$GPGGA,104644,5522.8965,N,03710.1389,E, 1 ,07 ,1,2,186,6,M,15,8,M,*44

$GPGSA,A,3,01,04,13,16,20,23,31,2.1,1.2,1.7*35

$GPGSV,3,1, 10 ,01,34,070,48,04,28,311,40,11,10,190,00,13,32,249,41*7E

$GPGSV,3,2, 10 ,16,11,111,40,20,68,142,50,23,64,247,49,25,21,196,00*70

$GPGSV,3,3, 10 ,30,05,012,00,31,36,055,52*7D

$GPGLL,5522.8965,N,03710.1389,E,104644,A,A*40

$GPBOD,T,M,*47

$PGRME, 6.0 ,M,7,7,M,9,8,M*29

$PGRMZ,612,f,3*1E

$PGRMM,WGS 84*06

$GPRTE,1,1,c,*37

Din analiza mesajelor reiese că receptorul urmărește în prezent 10 sateliți (GSV), dintre care 7 (GGA) sunt utilizați în calculul poziției. Eroarea de poziționare orizontală este egală cu 6 metri (RME), iar indicatorul tip soluție este 1 (GGA)

Dacă creați condiții în care semnalul GPS nu va fi recepționat, atunci mesajele GGA vor conține câmpuri „goale”, iar indicatorul tipului de decizie va lua valoarea 0 (GGA)

$GPGGA 0 ,00,M,M,*66

$GPGSA,A,1,,*1E

În modul „normal”, mesajele RMB și BOD conțin câmpuri goale. Odată ce punctul de trecere a drumului a fost selectat ca destinație finală, aceste câmpuri au fost populate cu date. După cum rezultă din analiza mesajului, distanța până la punct este de 1.620 mile, azimutul de mișcare este de 6,3 grade (BOD). În același timp, azimutul mesajelor BOD și RMB diferă cu 0,1 grade.

$GPRMB,A,0.00,R,Drum ,5524.501,N,03710.445,E, 1.620 ,6.4 ,V,A*59

$GPBOD, 6.3 ,T,357,0,M,Drum,*74

Odată ce ruta de acasă a fost selectată pentru navigare, lista de mesaje RTE afișează o listă cu toate punctele de referință de pe rută. Și în mesajul RMB - numere de identificare ale punctelor de pornire și finale (următoare) ale traseului.

$GPRTE,1,1,c,HOME,SLOBODA,IERUSALIM,INSTITUT*01

$GPRMB,A,9,99,R,SLOBOD,IERUSAL,5555.237,N,03649.976,E,34.346,340.6,V,A*1F

Concluzie

În cele mai multe cazuri, utilizatorul nu are nevoie și nu este interesat să știe ce date sunt transmise și în ce domenii. Majoritatea programelor de navigare „analizează” datele mesajelor NMEA și le prezintă într-o formă ușor de utilizat - grafice, diagrame, tabele etc.

De un interes deosebit sunt mesajele NMEA pentru utilizatorii care ar dori să efectueze cercetări asupra datelor GPS, să calculeze estimări ale măsurătorilor dobândite sau să analizeze comportamentul receptorilor de navigație în diferite condiții. Există o serie de programe care pot fi folosite pentru a rezolva aceste probleme.

N Cu toate acestea, formatul NMEA nu este destinat analizei profunde a datelor GPS, deoarece nu conține așa-numitele măsurători „brute” - pseudo-domeni, faze, Doppler. Fiecare producător de echipamente de navigație are propriul protocol „deschis” sau „închis” care afișează aceste informații

NMEA este un format simplu și ușor de înțeles, care nu numai că permite schimbul de date între receptoarele GPS și programele de navigație, dar oferă și utilizatorilor o idee despre principiile de funcționare a echipamentelor de navigație prin satelit.