NMEA0183(от " Национална асоциация по морска електроника”) е стандарт, който определя текстов протокол за комуникация на морско (обикновено навигационно) оборудване (или оборудване, използвано във влакове) едно с друго. Той стана особено популярен поради разпространението на GPS приемници, използващи този стандарт.

Общ изглед на низове в NMEA 0183

  • символът "$" или "!" (шестнадесетичен 24 или шестнадесетичен 21)
  • 5-буквен идентификатор на съобщението. Първите две букви са идентификаторът на източника на съобщението, следващите три букви са идентификаторът на формата на съобщението, съгласно протокола NMEA 0183 на определена версия.
  • списък с данни (букви, цифри и точки), разделени със запетаи. Ако липсват някакви данни вътрередове, все още се поставят запетаи (например ","). Някои полета в краялинии може изобщо да липсват.
  • символ "*".
  • осембитова XOR сума на всички знаци (включително "," и "^") в низа между "$" и "*", преобразувана в два ASCII знака в Главна букваза шестнадесетично представяне на байт (0-9, A-F).
  • (шестнадесетичен 0D, шестнадесетичен 0A).

Максималната дължина на съобщението е ограничена до 82 знака (NMEA 0183 rev 3.0)

Стандартът описва повече от 250 идентификатора на NMEA последователност. Стандартът определя скорости на предаване от 4800 бода. (За скорости на предаване от 38400 и повече има разширен стандарт NMEA-0183-HS).

Стандартът ви позволява да добавяте свои собствени идентификатори на последователности, които често се използват от производителите за прехвърляне Допълнителна информацияза работата на устройството.

RMC низ (специален пример)

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

Значение на полета:

  • "GP" - идентификатор на източника; в дадения пример това е GPS, "GL" - GLONASS, "GA" - Galileo, "GN" - GLONASS + GPS и т.н.
  • "RMC" - "Препоръчително минимално изречение C"
  • "hhmmss.sss" - UTC време за фиксиране на местоположението: "hh" - часове, "mm" - минути, "ss.sss" - секунди. Дължината на дробната част от секундите варира. Водещите нули не се пропускат.
  • "A" - състояние: "A" - данните са валидни, "V" - невалидни.
  • "GGMM.MM" - географска ширина. 2 цифри от градуси ("GG"), 2 цифри от цели минути, период и дробна частминути с променлива продължителност. Водещите нули не се пропускат.
  • "P" - "N" за северна ширина или "S" за южна ширина.
  • "ggmm.mm" - географска дължина. 3 цифри от градуси ("ggg"), 2 цифри от цели минути, период и дробна част от минути с променлива дължина. Водещите нули не се пропускат.
  • "J" - "E" за изток или "W" за запад.
  • "v.v" - хоризонталната компонента на скоростта над земята във възли. Число с плаваща запетая. Цели и дробни части с променлива дължина.
  • "b.b" - земен ъгъл (посока на скоростта) в градуси. Число с плаваща запетая. Цели и дробни части с променлива дължина. Стойност 0 съответства на движение на север, 90 на изток, 180 на юг, 270 на запад.
  • "ddmmyy" - дата: ден от месеца, месец, последните 2 цифри от годината (началните нули са задължителни).
  • "x.x" е магнитната деклинация в градуси (често липсва), изчислена от някакъв модел. Число с плаваща запетая. Цели и дробни части с променлива дължина.
  • "n" - посоката на магнитната деклинация: за да се получи магнитната деклинация, магнитната деклинация трябва да бъде "E" - извадете, "W" - добавете към истинския курс.
  • "m" - индикатор за режим: "A" - автономен, "D" - диференциален, "E" - приближение, "N" - ненадеждни данни (често липсващи, това поле, включително запетаята, липсва в по-старите версии на NMEA).
  • "hh" - контролна сума.
  • - байтът е 0x0D.
  • - байтът е 0x0A.

RMC примери за низове

Пример 1

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

Значение на полета:

  • 12 часа 55 минути 4.049 секунди UTC
  • "А" - надежден
  • ширина 55° 42.2389", север
  • дължина 37° 41.6063", изток
  • скорост 0,06 възела

Описание на протокола NMEA. Внедряване в приемници Garmin и GlobalSat

Въведение

Националната асоциация по морска електроника (NMEA) разработи специфичен протокол за поддържане на съвместимостта на морското навигационно оборудване различни производители. Този протокол NMEA описва не само данни, получени от GPS приемници, но и измервания от сонари, радари, електронни компаси, барометри и други навигационни устройства, използвани на кораби.

Повечето комуникационни интерфейси преносим GPSприемниците са изпълнени в съответствие с тази спецификация. Повечето програми за навигация, които предоставят показване на данни в реално време, поддържат и „разбират“ протокола NMEA. Тези данни съдържат пълните навигационни измервания на GPS приемника - позиция, скорост и време. Всички NMEA съобщения се състоят от последователен набор от данни, разделени със запетаи. Всяко отделно съобщение е независимо от останалите и е напълно „завършено“. Съобщението NMEA включва заглавка, набор от данни, представени от ASCII знаци, и поле "контролна сума" за проверка на валидността на предадената информация.

Заглавието на стандартните NMEA съобщения се състои от 5 знака, първите два от които определят типа на съобщението, а останалите три - неговото име. Например всички GPS NMEA съобщения имат префикс "GP". Съобщения, които не са описани в спецификацията на NMEA, но са внедрени в GPS приемници в съответствие с Общи правила, са с префикс „P“, последван от три знака, уникални за всяка компания. Например, "родните" NMEA съобщения на Garmin са с префикс "PGRM", Magellan е с префикс "PMGN"
Всяко NMEA съобщение започва с "$", завършва с "n" ("line feed") и не може да бъде по-дълго от 80 знака. Всички данни се съдържат в един ред и са разделени една от друга със запетаи. Информацията се представя като ASCII текст и не изисква специално декодиране. Ако данните не се побират в разпределените 80 знака, те се "разделят" на няколко NMEA съобщения.

Този формат ви позволява да не ограничавате точността и броя на знаците в отделните полета с данни. Например, дробната част от координатната стойност може да бъде представена с 3 или 4 знака след десетичната запетая, но това не трябва да влияе по никакъв начин на операцията. софтуер, който извлича необходимите данни от съобщението по номер на поле. В края на всяко NMEA съобщение има поле за контролна сума, отделено от данните с "*". По желание може да се използва за проверка на целостта и валидността на всяко получено съобщение.

Протоколът NMEA поддържа не само изходящи, но и входящи съобщения, които например могат да се използват за актуализиране или добавяне на маршрутни точки. Тези съобщения трябва да са вътре стриктно спазванес NMEA формат, в противен случай те просто ще бъдат игнорирани от GPS приемника. Трябва да се отбележи, че не всички навигационни програми и модели приемници поддържат този режим, тъй като те използват патентовани протоколи от производители - Garmin, Magellan и др. за зареждане на точки и маршрути.

От създаването си протоколът NMEA претърпя няколко модификации, свързани с добавянето на нови полета и съобщения. сегашна версияподдържана от повечето приемници е версия 2.3, въпреки че описанието вече е публикувано нова версия 3.0. Пълната спецификация на NMEA съобщенията не е свободно достъпна и не може да бъде официално изтеглена в електронен вид, нейните отделни секции, общо описание NMEA протокол и най-популярните съобщения могат да бъдат намерени в Интернет. Официалната документация на NMEA може да бъде закупена на www.nmea.org.

списък със съобщения

Протоколът NMEA описва голям списък от различни съобщения, от които могат да се разграничат две дузини съобщения, които се използват активно в навигационното оборудване. Благодарение на голямата популярност и опростеното представяне на данни, протоколът NMEA намери приложение не само в морско оборудване, но и в геодезически, битови и авиационни GPS приемници.

  • AAM - Пристигане в точка
  • ALM - Данни от алманаха
  • APA - Данни за автопилот "A"
  • APB - Данни за автопилот "B"
  • BOD - Пеленг към местоназначението
  • DTM - Използвана дата
  • GGA - Информация за фиксирано решение
  • GLL - Данни за географска ширина и дължина
  • GSA - Обща сателитна информация
  • GSV - Подробна сателитна информация
  • MSK - Предаване към основния приемник
  • MSS - Статус на основния приемник
  • RMA - препоръчан набор от данни на Loran
  • RMB - Препоръчителен набор от данни за GPS навигация
  • RMC - Препоръчителен минимален набор от GPS данни
  • RTE - Информация за маршрутизиране
  • VTG - вектор на движение и скорост
  • WCV - Данни за скорост близо до точка
  • WPL - Данни за точки
  • XTC - Грешка при изключване на проследяването
  • XTE - Измерена грешка при напускане на пистата
  • ZTG - UTC време и оставащо време до пристигане на местоназначението
  • ZDA - Дата и час.

Някои от NMEA съобщенията може да съдържат същите полета с данни или може да съдържат пълните данни на други, по-малки NMEA съобщения.

СъдържаниеNMEA съобщения

GGA - информация за фиксирано решение.
Най-популярното и използвано NMEA съобщение с информация за текущото фиксирано решение - хоризонтални координати, стойност на надморска височина, брой използвани сателити и тип решение.

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,*47
където:

  • GGA - Заглавка
  • 123519 -UTC време 12:35:19
  • 4807.038, N - Географска ширина, 48 градуса 7.038 минути северна ширина
  • 01131.000, E - Географска дължина, 11 градуса 31.000 минути изток
  • 1 - тип решение, StandAlone решение
    • 0 - няма решение,
    • 1-самостоятелен,
    • 2-DGPS,
    • 3-PPS,
    • 4 - фиксиран RTK,
    • 5 - не е фиксиран RTK,
    • 6 - използване на тези инерционни системи,
    • 7 - ръчно управление,
    • 8 - режим на симулация
  • 08 - брой използвани сателити
  • 0,9 - геометричен фактор, HDOP
  • 545.4, M - височина над морското равнище в метри
  • 46.9, M - височина на геоида над елипсоида WGS 84
  • [празно поле] - време, изминало от последната получена DGPS корекция. Попълва се, когато е активиран DGPS режим
  • [празно поле] - идентификационен номер основна станция. Попълва се, когато е активиран DGPS режим.

GSA- Главна информацияотносно сателитите.
Това NMEA съобщение съдържа списък на сателитите, използвани при изчисляването на позицията, и стойностите на геометричните фактори на DOP, които определят точността на изчисляването на позицията. Параметрите на DOP се определят от геометричното разположение на сателитите в небето. Колкото по-добре са "разпределени" сателитите в небето, толкова по-нисък е DOP и толкова по-добра е точността на позицията. Минимална стойност PDOP (= 1) съответства на ситуация, при която един сателит е точно над потребителя, а останалите 3 са равномерно разпределени наоколо на нивото на хоризонта. Стойността на PDOP се изчислява като корен квадратен от сумата на квадратите на HDOP и VDOP.

$GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39
където:

  • GSA - заглавка
  • A - вид избор между 2D и 3D решения, Автоматично (A-автоматично, M-ръчно)
  • 3 - тип решение, 3D решение (1 - няма решение, 2 - 2D решение, 3 - 3D решение)
  • 04,05… - PRN кодове, използвани при изчисляване на сателитната позиция (12 полета)
  • 2.5 - пространствен геометричен фактор, PDOP
  • 1.3 - хоризонтален геометричен фактор, HDOP
  • 2.1 - вертикален геометричен фактор, VDOP

GSV - Подробна сателитна информация
Това NMEA съобщение съдържа подробна информация за всички сателити, проследявани от GPS навигатора. Въз основа на ограничението от 80 знака, данни само за 4 сателита могат да бъдат предадени като част от едно NMEA съобщение. Съответно са необходими 3 GSV съобщения за 12 спътника.
Полето SNR (съотношение сигнал към шум) съдържа нивата на навигационните сигнали, получени от сателитите. Теоретично стойността му може да варира от 0 до 99 и се измерва в dB. Всъщност нивото на сигнала е в диапазона от 25 ... 35 dB. Тук си струва да се отбележи, че този параметър не е абсолютен и не е подходящ за сравняване на чувствителността на приемници от различни модели и производители. GPS навигаторите могат да използват различни алгоритми за изчисляване на нивото на приетия сигнал, което води до различни резултати при еднаква степен на чувствителност на приемниците.
За всеки видим GPS сателит се предава набор от информация, включително сила на сигнала, надморска височина и азимут на сателита. Броят на тези "набори" се определя от общия брой видими спътници, чиято стойност се предава в отделно поле.

$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75
където:

  • GSV - заглавка
  • 2 - брой GSV съобщения в пакет
  • 1 - номер на съобщението в пакета (от 1 до 3)
  • 08 - брой видими спътници
  • 01 - сателитен номер
  • 40 - ъгъл на повдигане, в градуси
  • 083 - азимут в градуси
  • 46 - SNR, ниво на сигнала

RMC - препоръчителен минимален набор GPS данни
Това NMEA съобщение съдържа целия набор от така наречените „PVT“ данни. „PVT“ е често срещано съкращение за „позиция, скорост, време“ (позиция, скорост, време).

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

  • RMC - заглавие
  • 123419 - UTC време, 12:34:59
  • A - състояние (A - активно, V - игнориране)
  • 4807.038,N - Географска ширина, 48 градуса 07.038 минути северна ширина
  • 01131.000,E - Географска дължина, 11 градуса 31.000 минути изток
  • 022.4 - Скорост, във възли
  • 084.4 - Посока на движение, в градуси
  • 230394 - Дата 23 март 1994 г
  • 003.1,W - Магнитни вариации

GLL - данни за географска ширина и дължина

NMEA съобщение със стойността на координатите на географската ширина и дължина и времето, когато е изчислено това решение.

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

  • GLL - заглавка
  • 4916.46,N - ширина, 49 градуса 16.45 минути северна ширина
  • 12311.12 W-дължина, 123 градуса 11.12 минути запад
  • 225444 - Коригирайте времето в UTC скала, 22:54:44

AT OD - Азимут до местоназначението
Това NMEA съобщение показва посоката към дестинацията в режим на навигация.

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

  • BOD - заглавка
  • 045.,T - истинска посока към точката
  • 023.,M - магнитна посока към точката
  • DEST - идентификационен номер крайна точка
  • СТАРТ - идентификационен номер на началната точка

$GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*20

  • RMB - заглавка
  • A - Тип данни, (A - активно, V - игнориране)
  • 0,66,L - отклонение от коловоза. Параметърът се определя в морски мили. (L-ляво, R-дясно)
  • 003 - идентификационен номер на началната точка
  • 004 - идентификационен номер на крайна точка
  • 4917.24,N - стойност на ширината на крайната точка, 49 градуса 17.24 минути северна ширина
  • 12309.57,W - стойност на дължината на крайната точка, 123 градуса 09.57 минути запад
  • 001.3 - разстояние до точката, в морски мили
  • 052.5 - посока към точката
  • 000.5 - скорост, във възли
  • V - информация за пристигане (A - пристигане, V - точка, която все още не е достигната)

RTE - Информация за маршрутизиране

Съобщението NMEA RTE изброява точките по активния маршрут. Има два вида RTE съобщения. В първия случай се показват всички точки. Във втория, само списък на оставащите точки, които все още трябва да бъдат посетени, докато се движите по маршрута. Като се има предвид, че протоколът NMEA има ограничение дължината на съобщението да не надвишава 80 знака, RTE съобщението може да се състои от няколко реда.

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

  • RTE - заглавка
  • 2 - общ брой съобщения за показване на пълния списък с данни
  • 1 - номер на съобщение от общия списък
  • c - RTE тип съобщение (c - пълен списъкточки, w - списък с точки, които предстои да бъдат посетени)
  • 0 - ID на маршрута
  • W3IWI,DRIVWY,.. - списък с точки

Функции на Garmin

Приемниците на Garmin поддържат повечето NMEA съобщения, съдържащи GPS измервания, координати и време - GGA, GLL, GSA, GSV, RMC. Както и навигационни съобщения - RMB, BOD

За да покажете тези съобщения, трябва да промените интерфейса от „Garmin“ на „NMEA“ в настройките на приемника и евентуално да зададете желаната скорост. Същата скорост трябва да бъде зададена в навигационната програма в настройките на серийния порт, към който е свързан навигаторът.

За съжаление, приемниците с USB порт не поддържат протокола NMEA, ограничавайки настройките му само до протокола Garmin.

За да изведете информация, постъпваща през серийния порт на компютъра, можете да използвате терминала Windows програма, или една от навигационните програми, които поддържат тази функция.

По-долу е даден списък с NMEA съобщения на Garmin eMap приемник, които се съдържат в една и съща епоха.

$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

В допълнение към стандартните NMEA съобщения, приемниците на Garmin прилагат свой собствен набор от съобщения, всяко от които съдържа префикс "GRM" в заглавката, идентификатор "M" или "Z", идентифициращ типа данни и един знак за името.

PGRME - Оценка на грешката на позицията

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

  • 15.0,M - оценка на грешката на хоризонталното позициониране, в метри
  • 45.0,M - оценка на вертикалната грешка, в метри
  • 25.0,M - еквивалентна грешка на сферичното позициониране

ПГРМЗ - измервания на височина

$PGRMZ,93,f,3*21

  • 93,f - стойност на височината, в паундове
  • 3 - условия за измерване на позицията (2 - височина, дефиниран от потребителя, 3 - височина, изчислена от GPS)

PGRMM - текуща дата

$PGRMM,NAD27 Канада*2F

  • NAD27 Канада - името на текущата хоризонтална дата

ОсобеностиСърф

Sirf GPS чиповете се използват в различни GPS навигацияоборудване, вариращо от конвенционални табла, завършващи с преносими и автомобилни GPS навигатори. Но за разлика от навигаторите, те поддържат само NMEA съобщения, свързани с GPS измервания, изчисляване на позиция и време - GGA, GLL, GSA, GSV, RMC, VTG, ZDA.

"Sirf" поддържа и няколко "входящи" NMEA съобщения за конфигуриране и настройка на различни параметри. В допълнение, "Sirf" прилага свой собствен двоичен протокол, който ви позволява да променяте много повече настройки. Тези 5 "входящи" NMEA съобщения започват с префикса $PSFR, според правилата. Всички съобщения съдържат фиксиран набор от данни и завършват със знака "n" (подаване на ред)

За да конфигурирате параметрите "Sirf", използвайте специална програма Sirftech. Настройките за NMEA съобщения се конфигурират в отделен елемент от менюто.

$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

Както може да се види от горния пример, "фабричните" настройки съдържат по-малко NMEA съобщения в сравнение с настройките на Garmin. Ако е необходимо, този набор може да бъде разширен чрез задаване на периода в липсващите NMEA съобщения.

$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,20.05.2007,*5A

PSFR100, PSFR102 - конфигурация на сериен порт

NMEA съобщение номер 100 се използва за настройка на порт A, съобщение 102 - порт B. Съобщение 100 има допълнително поле, което ви позволява да превключите интерфейса към двоичния протокол Sirf.

Съответно в двоичния протокол има команда, която превключва порта обратно към NMEA формат. Преди да преминете към двоичен протокол, трябва да разберете дали има програма, която по-късно ще ви позволи да възстановите NMEA протокола.

$PSRF100.0.9600.8.1.0*0C

$PSRF102.9600.8.1.0*3C

  • PSRF100 - хедер
  • 0 - параметър, показващ в кой режим е променен протоколът (0-Sirf, 1-NMEA)
  • 9600 - скорост на порта (4800, 9600, 19200, 38400)
  • 8 - битове за данни (7, 8)
  • 1 - стоп битове (0,1)
  • 0 - двойка (0 - не, 1-нечетно, 2-четно)

PSFR101, PSFR104 - инициализация на параметрите на приемника

NMEA съобщенията с номера 101 и 104 са предназначени за инициализиране на параметри за GPS приемане. Дефинирането на тези параметри може да ускори времето за придобиване на GPS сателити. Съобщение 101 задава текущите координати във формат XYZ, съобщение 104 - във формат BLH (дължина, ширина).

$PSRF101,-2686700,-4304200.3851624.95000.497260.921.12.3*22

$PSRF104.37.3875111,-121.97232.0.95000.237759.922.12.3*3A

  • PSRF101 - заглавка
  • 37.3875111 - географска ширина в градуси
  • -121.97232 - географска дължина в градуси
  • 0 - височина, в метри
  • 95000 - смяна на часовника
  • 237759 - GPS време, в секунди
  • 922 - GPS номер на седмицата
  • 12 - брой канали
  • 3 - тип инициализация на данните (1 - горещ старт, 2 - топъл старт, 3 - инициализация на данни, 4 - студен старт с пълно изчистване на данните, 8 - студен старт с възстановяване на фабричните настройки)

PSFR103 - конфигурация на поколение NMEA съобщения

Това NMEA съобщение ви позволява да зададете или поискате периода на генериране за всяко „изходящо“ NMEA съобщение.

$PSRF103.05.00.01.01*20

  • PSRF103 - заглавка
  • 05 - заглавие на съобщението
    • 00-GGA
    • 01-GLL
    • 02-GSA
    • 04-RMS
    • 05-VTG
  • 00 - режим (0 - настройка на периода, 1 - заявка)
  • 01 - период, в секунди (0-255)
  • 01 - наличие на контролна сума (0 - да, 1 - не)

Резултати от експеримента

При нормални условия на сателитна видимост приемникът Garmin eMap извежда следния набор от 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

$PGRM,WGS 84*06

$GPRTE,1,1,c,*37

От анализа на съобщенията се вижда, че в момента приемникът проследява 10 (GSV) спътника, от които 7 (GGA) се използват за изчисляване на позицията. Грешката при хоризонтално позициониране е 6 метра (RME), а индикаторът за тип разтвор е 1 (GGA)

Ако създадете условия, при които GPS сигналняма да бъде приет, тогава GGA съобщенията ще съдържат "празни" полета и индикаторът за тип решение ще приеме стойност 0 (GGA)

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

$GPGSA,A,1,,*1E

В "нормален" режим съобщенията RMB и BOD съдържат празни полета. След като точката „Път“ беше избрана като крайна дестинация, тези полета бяха „попълнени“ с данни. Както следва от анализа на съобщението, разстоянието до точката е 1620 мили, азимутът на движение е 6,3 градуса (BOD). В този случай азимутът на съобщенията BOD и RMB се различава с 0,1 градуса.

$GPRMB,A,0.00,R,Път ,5524.501,N,03710.445,E, 1.620 ,6.4 ,V,A*59

$GPBOD, 6.3 ,T,357.0,M,Път,*74

След като началният маршрут беше избран за навигация, в списъка с RTE съобщения беше показан списък с всички точки на маршрута. И в съобщението RMB - идентификационни номераначална и крайна (следваща) точка на маршрута.

$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

Заключение

В повечето случаи потребителят не се нуждае и не се интересува да знае какви данни и в какви полета се предават. Повечето програми за навигация "анализират" данните от NMEA съобщения и ги представят в удобна за потребителя форма - графики, диаграми, таблици и т.н.

От особен интерес са съобщенията NMEA за потребители, които биха искали да проучат GPS данни, да изчислят оценка на получените измервания или да анализират поведението на навигационни приемници при различни условия. Има редица програми, с които можете да разрешите тези проблеми.

з Но все пак, за дълбок анализ на GPS данни, форматът NMEA не е предназначен, тъй като не съдържа така наречените "сурови" измервания - псевдодиапазони, фази, Доплер. Всеки производител на навигационно оборудване има свой собствен "отворен" или "затворен" протокол, който извежда тази информация.

NMEA е прост и разбираем формат, който позволява не само обмен на данни между GPS приемници и навигационни програми, но също така дава на потребителите известна представа за принципите на работа на сателитното навигационно оборудване

Имах нужда да тествам приложение, което използва GNSS данни през NMEA протокола. Това се дължи на факта, че работех върху проект за програма за навигация на самолети, тестването във въздуха е естествено скъпо, шофирането на кола с GNSS приемник на земята не е особено удобно, така че исках да имам данни от NMEA протокол на виртуален паралелен порт от уж движещо се оборудване. Първоначално търсих различен софтуер, мислех, че ще намеря нещо подходящо, но повечето са платени и контролът на емулация на данни не е много удобен, въпреки че емулират почти всички параметри на стандарта NMEA. Но имах нужда от нещо просто, емулиращо координати, скорост, по принцип нищо повече, и имах нужда от доста удобно и логично управление. Така че трябваше да напиша приложение от този вид на C#.

Fly_nmea


NMEA ("National Marine Electronics Association") - пълното име е "NMEA 0183" - текстов протокол за комуникация на морско (обикновено навигационно) оборудване помежду си.
Данните се предават под формата на оферти. Форматът на предложението е следният:
$AAAA[,<данные>]*хх , където:
$ - знак за начало на изречението (код 24h);
AAAAA - Петсимволен адрес (име) на офертата;
[, <данные>] - списък с полета с данни, разделени със запетаи (код 2Сh);
* - знак на контролната сума (код 2Ah);
hh - контролна сума.

Пример за предложение:
GGA - Данни за GPS позициониране
Време, място и данни, свързани с наблюдението.
$GPGGA,hhmmss.sss,llll.ll,a,yyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxx*hh

Трябваше да емулирам четири реда:

  • GLL - Координати на местоположението
  • GSV- Видими сателити
  • RMC - Препоръчителен минимален набор от данни за GPS и GLONASS
  • GSA - Коефициент на влошаване на точността, използван за навигационни спътници
Емулацията е организирана в следния ред:
  • задаваме началните координати в системата WGS-84
  • след това преминаваме към плоска проекция, например Mercator (използвах готова C# библиотека за координатна трансформация)
  • знаейки плоските координати x, y, h, ние прилагаме физиката на движението на самолета по отношение на променливи параметри чрез GUIкато: ролка, стъпка, скорост
  • преобразувайте плоски координати в B, L, H координати на системата WGS-84
  • формираме пакет от съобщения на стандарта NMEA от необходимите четири реда
  • изпратете ги към виртуалния паралелен порт
Fly_nmea+Android сензор
За по-удобно тестване настройвам и получаване на данни от Android сензори(ъгли на наклон). Android изпраща два низа като този през UDP:
  • "Ъгъл:\t236.04152\t-1.0\t-3.0"
  • "acc:\t-0.46309182\t-0.14982383\t-10.56939"
В приложението за емулация ги приемам и въз основа на ъглите на наклон променям параметрите:
  • Стъпка
В приложението за емулация можете да превключите от управление чрез програмния интерфейс към Android Sensor.
Fly_nmea връзка
За да емулирате COM портове, емулаторът на виртуални серийни портове също е полезен, ще трябва да конфигурирате връзката на два виртуални COM порта, например: COM1<->COM6 и програмата Fly_nmea ще изпрати данни до COM6, а на COM1 програма, използваща протокола NMEA, ще ги вземе.

Заключение

Като цяло прекарах повече време в търсене на такъв софтуер и не намирайки, че ще бъда напълно доволен, го написах сам по-бързо. В допълнение към проекта, върху който работих, успях също така доста успешно да свържа емулатора с програми, които разбират NMEA протокола, като: 2Gis и SAS planet.



FlyNMEA и android сензор (проект за предаване на данни от сензори чрез UDP)

NMEA0183– протокол за текстова комуникация, използван в GPS приемни модули. Този стандарт е създаден за комуникация на морско навигационно оборудване. Протоколът осигурява предаване на текстови команди и съобщения с помощта на ASCII знаци. По този начин, за да получавате съобщения, е достатъчно да използвате сериен интерфейс UART, докато всички съобщения могат да се предават директно към компютър, използвайки COM порт за това, но без да забравяме необходимостта от преобразуване на нивата на сигнала.

GPS модулът предава съобщения в различни формати, съдържащи различен набор от данни: географска ширина и дължина, скорост, посока, време, брой сателити и др. Съобщенията се предават последователно и се разделят на няколко вида, като форматът на всеки тип съобщение съдържа строго определена информация в своите полета. Нека разгледаме по-подробно общата структура на съобщенията, които GPS модулът издава.

$ - всяко съобщение започва с този знак

Следван от идентификатор 5 текстови знаци. Първите две букви показват типа на навигационната система, например "GP" - GPSили " GL" - Глонасси т.н. Следващите 3 знака са идентификаторът на формата на съобщението, който напълно определя съдържанието на последващите предадени данни. Например "RMC"- това са препоръчителните минимални данни, които съдържат информация за час и дата, географска ширина и дължина, скорост, посока и магнитно отклонение в градуси (може да липсва). Или G.S.A., тук ще се предават сателитни данни. Структурата на основните видове съобщения ще бъде разгледана по-долу.

След това следва «,» - запетая, след която непосредствено следва тялото на съобщението с различни данни, които са разделени една от друга със същата запетая. Ако предаденото число не е цяло число, разделителят между целите и дробните части е точка «.» .

Краят на тялото на съобщението се обозначава със символа «*» . Това е последвано от контролна сума на всички знаци, съдържащи се между "$" и "*", т.е. цялото тяло на съобщението, включително самите данни и идентификаторите в началото на съобщението. Контролната сума се изчислява като XOR (изключително ИЛИ) на всички ASCII шестнадесетични кодове на знаците в съобщението.

И в самия край на всяко съобщение трябва да следват знаци за извеждане на ред

Помислете за предназначението и структурата различни видовесъобщения.

RMC– препоръчителни минимални навигационни данни. Съобщението съдържа минимално необходимото количество информация. Това са данни за географска ширина и дължина, дата и час, скорост. За много задачи не е необходимо повече, например в модула Quectel L50Изключих предаването на всички други видове съобщения, тъй като абсолютно не се нуждая от информация за сателитите и нивото на техните сигнали. А получаването на излишна информация изисква усложняване на програмата за обработка на тези данни. Структурата на съобщението е:

$GPRMC, хммсс.ссс,А,ддмм.мммм,Н,ддмм. Мммм , д,v.v,° С. ° С, ддммммйгг,x.x,n,м*чч

Това съобщение съдържа следните данни:

  • GPRMCсателитна система GPS, RMC ИД на съобщение
  • хммсс.ссс– време (средно време по Гринуич), където hh – часове, mm – минути, ss.sss – секунди
  • А- данните са верни или V- данните са невалидни. Символ Ав съобщението ще бъде, когато сателитното приемане е достатъчно силно, за да изчисли данните за позицията. Символ Vще бъде, когато приемникът не вижда спътниците или когато броят на намерените сателити не е достатъчен за надеждно изчисляване на координатите. Например, ако включите GPS модула някъде в панелна къща и далеч от прозорците, най-вероятно ще видите символа Vв полученото съобщение.
  • ддмм.мммм- географска ширина, градуси и минути
  • нили С- север или юг. Полукълбото, в което се намирате. Ако сте в Австралия, ще се види С. В Екатеринбург моят GPS модул не работи н.
  • ддмм.мммм- дължина, градуси и минути
  • дили У- западно или източно полукълбо
  • v.v- скорост във възли
  • ° С. ° С– посока над земята в градуси. Когато се движите право на север, ще бъде 0 градуса.
  • ддммммйгг- датата
  • x.x– магнитна деклинация
  • не посоката на магнитната деклинация. За последните два параметъра не мога да обясня нищо. Например моят модул GPS Quectel L50когато получавах в апартамента на прозореца, тези данни изобщо не се показваха, просто ги пропуснах.
  • м– режим на навигация: н- невалидни данни А- автономна, д– диференциал

Ето едно примерно RMC съобщение:

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

  • часова зона 10 ч. 59 мин. 54 сек
  • А- данните са верни
  • Географска ширина 31 градуса и 50.6371 минути
  • н– северен
  • Географска дължина 117 градуса 11,9399 минути
  • д– източен
  • Скорост 0,00 възела
  • добре 96,1 градуса
  • датата 25 март 2013 г
  • Данни за магнитна деклинациялипсва
  • Режим - автономен
  • Контролна сума на знаците в съобщението 0x053

Тук е необходимо да се отбележи един нюанс. Данните за географската ширина и дължина съдържат дробна част от минутите, която изобщо не съответства на броя на "секунди", тъй като е десетична дроб. Тези програми за работа с GPS, които съм пробвал, показват точно координатите на картата. Но ако въведете тези числа в лентата за търсене Google Maps, тогава местоположението на картата ще се окаже на няколко километра от действителното. Когато въвеждате получените координати в този случай, е необходимо да разделите дробната част на географската ширина и дължина на 60, за да преобразувате тези числа в "секунди". При свързване на модула Quectel L50 за първи път и въвеждане на получените координати на ширина и дължина в реда Търсене в Googleкарти, получих позицията на картата със значителна грешка, картата показваше място някъде в района на Уралмаш.

Ето още няколко типа съобщения, използвани в този протокол:

  • VTG- истински курс и земна скорост
  • GGA- данни за фиксиране на последната позиция
  • GSA- данни за активни спътници
  • GSV- данни за видимите спътници, тяхната позиция и номера, както и силата на сигнала
  • GLL- данни за географска ширина, дължина и време
  • САЩ- данни за час и дата

Не анализирах подробно от какво се състои всяко съобщение, в края на статията е дадена връзка към документ, описващ протокола. Определен тип GPS модул може да не предава всички изброени данни. Можете да забраните или разрешите предаването на различни видове данни, както и да зададете период за издаването им. За конфигуриране на модула има специални команди, които започват с идентификатор $PSRFxxx, където xxxопределя типа и формата на командата, точно както при изходящите съобщения.

Например командата $PSRF100.0.9600.8.1.0*0C задава протокола за обмен и конфигурира параметрите на серийния порт.

  • $PSRF100 -Идентификатор на команден протокол SIRF
  • 0 – двоичен протокол SIRF, 1 - NMEA протокол
  • 9600 – bps скорост
  • 8 бит за данни
  • 1 стоп бит
  • 0 - проверката на паритета е деактивирана

Екип $PSRF103.00.00.02.01*26 конфигурира изходни параметри за различни типове модулни съобщения:

  • $PSRF103– Идентификатор на командата на родния протокол SIRF
  • тогава след запетаята има две цифри, които определят вида на персонализираното съобщение: 00 - GGA
    01-GLL
    02-GSA
    03-ГСВ
    04-RMC
    05-VTG
  • следващите две цифри задават реда, в който се издават съобщенията, например: 00 - периодично
    01 - по заявка
  • следните числа задават периода на отчитане в секунди: 00 = Изключено (съобщенията са деактивирани)
    1-255 - интервал между съобщенията от този типза секунди
  • след това активирайте/деактивирайте предаването на контролната сума в NMEA съобщението, предадено от модула: 00 – предаването на контролната сума е деактивирано
    01 - предава се контролна сума
  • след знака „*“, както в изходящото NMEA съобщение, се предават контролна сума и знаци за подаване на ред.

Това е всичко, което исках да опиша накратко протокола NMEA 0183 и командите за управление на модула на чипсета SIRF. По-подробно обяснение на всички тези съобщения и команди е дадено например в описанието на протокола на модула Quectel L50, което може да бъде изтеглено от връзката по-долу.

Описание на протокола NMEA.

Внедряване в приемници Garmin и GlobalSat

Въведение

Националната асоциация за морска електроника (NMEA) разработи протокол за поддържане на оперативна съвместимост между морско навигационно оборудване от различни производители. Този протокол NMEA описва не само данни, получени от GPS приемници, но и измервания от сонари, радари, електронни компаси, барометри и други навигационни устройства, използвани на кораби. Интерфейсът за обмен на данни на повечето преносими GPS приемници е реализиран в съответствие със спецификацията NMEA. Повечето програми за навигация, които предоставят показване на данни в реално време, поддържат и „разбират“ протокола NMEA. Тези данни съдържат пълните навигационни измервания на GPS приемника - позиция, скорост и време. Всички NMEA съобщения се състоят от последователен набор от данни, разделени със запетаи. Всяко отделно съобщение е независимо от останалите и е напълно „завършено“. Съобщението NMEA включва заглавка, набор от данни, представени от ASCII символи, и поле "контролна сума" за проверка на валидността на предадената информация. Заглавието на стандартните NMEA съобщения се състои от 5 знака, от които първите два определят типа на съобщението, а останалите три - неговото име. Например всички GPS NMEA съобщения имат префикс "GP". Съобщенията, които не са описани в спецификацията на NMEA, но са внедрени в GPS приемници съгласно общи правила, имат префикс "P", последван от три знака, уникални за всяка компания. Например „собствените“ NMEA съобщения на Garmin имат префикс „PGRM“, Magellan има префикс „PMGN“. Всяко NMEA съобщение започва с „$“, завършва с „\n“ („подаване на ред“) и не може да бъде по-дълго от 80 знака. Всички данни се съдържат в един ред и са разделени една от друга със запетаи. Информацията се представя като ASCII текст и не изисква специално декодиране. Ако данните не се побират в разпределените 80 знака, те се "разделят" на няколко NMEA съобщения. Този формат ви позволява да не ограничавате точността и броя на знаците в отделните полета с данни. Например, дробната част на стойността на координатата може да бъде представена с 3 или 4 знака след десетичната запетая, но това не трябва да засяга работата на софтуера, който извлича необходимите данни от съобщението чрез номер на поле. В края на всяко NMEA съобщение има поле за контролна сума, отделено от данните с "*". По желание може да се използва за проверка на целостта и валидността на всяко получено съобщение. Протоколът NMEA поддържа не само изходящи, но и входящи съобщения, които например могат да се използват за актуализиране или добавяне на маршрутни точки. Тези съобщения трябва да бъдат формирани в строго съответствие с NMEA формата, в противен случай те просто ще бъдат игнорирани от GPS приемника. Трябва да се отбележи, че не всички навигационни програми и модели приемници поддържат този режим, тъй като те използват собствени протоколи от производители като Garmin, Magellan и др. за зареждане на точки и маршрути. От създаването си протоколът NMEA претърпя няколко модификации, свързани с добавянето на нови полета и съобщения. Текущата версия, поддържана от повечето приемници, е версия 2.3, въпреки че описанието на новата версия 3.0 вече е публикувано. Пълната спецификация на NMEA съобщенията не е свободно достъпна и не може да бъде официално изтеглена в електронен вид.Неговите отделни секции, общо описание на NMEA протокола и най-популярните съобщения могат да бъдат намерени в Интернет. Можете официално да закупите документация за NMEA на http://www.nmea.org/.

списък със съобщения

Протоколът NMEA описва голям списък от различни съобщения, от които могат да се разграничат две дузини съобщения, които се използват активно в навигационното оборудване. Благодарение на голямата популярност и опростеното представяне на данни, протоколът NMEA намери приложение не само в морско оборудване, но и в геодезически, битови и авиационни GPS приемници.

    AAM - Пристигане в точка

    ALM - Данни от алманаха

    APA - Данни за автопилот "A"

    APB - Данни за автопилот "B"

    BOD - Пеленг към местоназначението

    DTM - Използвана дата

    GGA - Информация за фиксирано решение

    GLL - Данни за географска ширина и дължина

    GSA - Обща сателитна информация

    GSV - Подробна сателитна информация

    MSK - Предаване към основния приемник

    MSS - Състояние на основния приемник

    RTE - Информация за маршрутизиране VTG - Вектор на движение и скорост

    WCV - Данни за скорост близо до точка

    WPL - Данни за точки

    XTC - Грешка при изключване на проследяването

    XTE - Измерена грешка при напускане на пистата

    ZTG - UTC време и оставащо време до пристигане на дестинацията

    ZDA - Дата и час.

Някои от NMEA съобщенията може да съдържат същите полета с данни или може да съдържат пълните данни на други, по-малки NMEA съобщения.

GGA - информация за фиксирано решение.

Най-популярното и използвано NMEA съобщение с информация за текущото фиксирано решение - хоризонтални координати, стойност на надморска височина, брой използвани сателити и тип решение.

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,*47

GGA - NMEA заглавка

123519 – UTC време 12:35:19

4807.038, N - Географска ширина, 48 градуса 7.038 минути северна ширина

01131.000, E - Географска дължина, 11 градуса 31.000 минути изток

1 - тип решение, StandAlone решение

08 - брой използвани сателити

0,9 - геометричен фактор, HDOP

545.4, M - височина над морското равнище в метри

46.9, M е височината на геоида над елипсоида WGS 84

[празно поле] – време, изминало от последната получена DGPS корекция. Попълва се, когато е активиран DGPS режим

[празно поле] – идентификационен номер на базовата станция. Попълва се, когато е активиран DGPS режим.

GSA - обща информация за сателитите.

Това NMEA съобщение съдържа списък на сателитите, използвани при изчисляването на позицията, и стойностите на геометричните фактори на DOP, които определят точността на изчисляването на позицията. Параметрите на DOP се определят от геометричното разположение на сателитите в небето. Колкото по-добре са "разпределени" сателитите в небето, толкова по-нисък е DOP и толкова по-добра е точността на позицията. Минималната стойност на PDOP (= 1) съответства на ситуацията, когато един сателит е точно над потребителя, а останалите 3 са равномерно разпределени около нивото на хоризонта. Стойността на PDOP се изчислява като корен квадратен от сумата на квадратите на HDOP и VDOP.

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

    GSA - NMEA заглавка

    A - вид избор между 2D и 3D решения, Автоматично (A-автоматично, M-ръчно)

    3 – тип решение, 3D решение (1 – няма решение, 2 – 2D решение, 3 – 3D решение)

    04,05… - PRN кодове, използвани при изчисляване на сателитната позиция (12 полета)

    2.5 - пространствен геометричен фактор, PDOP

    1.3 - хоризонтален геометричен фактор, HDOP

    2.1 - вертикален геометричен фактор, VDOP

GSV - Подробна сателитна информация

Това NMEA съобщение съдържа подробна информация за всички сателити, проследявани от GPS навигатора. Въз основа на ограничението от 80 знака, данни само за 4 сателита могат да бъдат предадени като част от едно NMEA съобщение. Съответно са необходими 3 GSV съобщения за 12 спътника. Полето SNR (съотношение сигнал към шум) съдържа нивата на навигационните сигнали, получени от сателитите. Теоретично стойността му може да варира от 0 до 99 и се измерва в dB. Всъщност нивото на сигнала е в диапазона от 25 ... 35 dB. Тук си струва да се отбележи, че този параметър не е абсолютен и не е подходящ за сравняване на чувствителността на приемници от различни модели и производители. GPS навигаторите могат да използват различни алгоритми за изчисляване на нивото на приетия сигнал, което води до различни резултати при еднаква степен на чувствителност на приемниците. За всеки видим GPS сателит се предава набор от информация, включително сила на сигнала, надморска височина и азимут на сателита. Броят на тези "набори" се определя от общия брой видими спътници, чиято стойност се предава в отделно поле.

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

    GSV - NMEA хедър

    2 - брой GSV съобщения в пакет

    1 – номер на съобщението в пакета (от 1 до 3)

    08 - брой видими спътници

    01 - сателитен номер

    40 - ъгъл на повдигане, в градуси

    083 - азимут в градуси

    46 - SNR, ниво на сигнала

Това NMEA съобщение съдържа целия набор от така наречените „PVT“ данни. „PVT“ е често срещано съкращение за „позиция, скорост, време“ (позиция, скорост, време).

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

    RMC - NMEA заглавка

    123419 - UTC време, 12:34:59

    A - състояние (A-активно, V-игнориране)

    4807.038,N - Географска ширина, 48 градуса 07.038 минути северна ширина

    01131.000,E - Географска дължина, 11 градуса 31.000 минути изток

    022.4 - Скорост, във възли

    003.1,W - Магнитни вариации

GLL - данни за географска ширина и дължина

NMEA съобщение със стойността на координатите на географската ширина и дължина и времето, когато е изчислено това решение.

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

    GLL - NMEA заглавка

    4916.46,N - ширина, 49 градуса 16.45 минути северна ширина

    12311.12 W-дължина, 123 градуса 11.12 минути запад

    225444 - Коригирайте времето в UTC скала, 22:54:44

BOD - Азимут до местоназначението

Това NMEA съобщение показва посоката към дестинацията в режим на навигация.

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

    BOD - заглавка на NMEA

    045.,T – истинска посока към точката

    023.,M – магнитна посока към точката

    DEST - идентификационен номер на крайна точка

    СТАРТ - идентификационен номер на началната точка

$GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*20

    RMB - NMEA заглавка

    A - Тип данни, (A - активно, V - игнориране)

    0,66,L - отклонение от коловоза. Параметърът се определя в морски мили. (L-ляво, R-дясно)

    003 - идентификационен номер на началната точка

    004 - идентификационен номер на крайна точка

    4917.24,N е стойността на географската ширина на крайната точка, 49 градуса 17.24 минути северна ширина

    12309.57,W е стойността на дължината на крайната точка, 123 градуса 09.57 минути запад

    001.3 – разстояние до точката, в морски мили

    000.5 - скорост, във възли

    V - информация за пристигане (A - пристигане, V - точка, която все още не е достигната)

RTE - Информация за маршрутизиране

Съобщението NMEA RTE изброява точките по активния маршрут. Има два вида RTE съобщения. В първия случай се показват всички точки. Във втория, само списък на оставащите точки, които все още трябва да бъдат посетени, докато се движите по маршрута. Като се има предвид, че протоколът NMEA има ограничение дължината на съобщението да не надвишава 80 знака, RTE съобщението може да се състои от няколко реда.

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

    RTE - NMEA хедър

    2 - общ брой съобщения за показване на пълния списък с данни

    1 – номер на съобщение от общия списък

    с – тип RTE съобщение (с – пълен списък с точки, w – списък с точки за посещение)

    0 - ID на маршрута

    W3IWI,DRIVWY,.. - списък с точки

Функции на Garmin

Приемниците на Garmin поддържат повечето NMEA съобщения, съдържащи GPS измервания, координати и време - GGA, GLL, GSA, GSV, RMC. Както и навигационни съобщения - RMB, BOD

За да покажете тези съобщения, трябва да промените интерфейса от „Garmin“ на „NMEA“ в настройките на приемника и евентуално да зададете желаната скорост. Същата скорост трябва да бъде зададена в навигационната програма в настройките на серийния порт, към който е свързан навигаторът.

За съжаление, приемниците с USB порт не поддържат протокола NMEA, ограничавайки настройките му само до протокола Garmin.

За да покажете информация, идваща към серийния порт на компютъра, можете да използвате терминалната програма на Windows или една от навигационните програми, които поддържат тази функция.

По-долу е даден списък с NMEA съобщения на Garmin eMap приемник, които се съдържат в една и съща епоха.

$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

В допълнение към стандартните NMEA съобщения, приемниците на Garmin прилагат свой собствен набор от съобщения, всяко от които съдържа префикс "GRM" в заглавката, идентификатор "M" или "Z", идентифициращ типа данни и един знак за името.

PGRME - Оценка на грешката на позицията

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

    15.0,M - оценка на грешката на хоризонталното позициониране, в метри

    45.0,M - оценка на вертикалната грешка, в метри

    25.0,M - еквивалентна грешка на сферичното позициониране

ПГРМЗ - измервания на надморска височина

$PGRMZ,93,f,3*21

    93.f е стойността на височината в паундове

    3 - условия за измерване на позиция (2 - височина, определена от потребителя,

    3 - височина, изчислена от GPS)

PGRMM - текуща дата

$PGRMM,NAD27 Канада*2F

    NAD27 Канада е името на текущата хоризонтална дата

Характеристики на Sirf

GPS чиповете Sirf се използват в различни GPS навигационни съоръжения, вариращи от конвенционални платки до преносими и автомобилни GPS навигатори. Но за разлика от навигаторите, те поддържат само NMEA съобщения, свързани с GPS измервания, изчисляване на позиция и време - GGA, GLL, GSA, GSV, RMC, VTG, ZDA.

"Sirf" поддържа и няколко "входящи" NMEA съобщения за конфигуриране и настройка на различни параметри. В допълнение, "Sirf" прилага свой собствен двоичен протокол, който ви позволява да променяте много повече настройки. Тези 5 "входящи" NMEA съобщения започват с префикса $PSFR, според правилата. Всички съобщения съдържат фиксиран набор от данни и завършват с "\n" (подаване на ред)

За конфигуриране на параметрите "Sirf" се използва специална програма "SirfTech". Настройките за NMEA съобщения се конфигурират в отделен елемент от менюто.

$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

Както може да се види от горния пример, "фабричните" настройки съдържат по-малко NMEA съобщения в сравнение с настройките на Garmin. Ако е необходимо, този набор може да бъде разширен чрез задаване на периода в липсващите NMEA съобщения.

$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,20.05.2007,*5A

PSFR100, PSFR102 - конфигурация на сериен порт

NMEA съобщение номер 100 се използва за настройка на порт A, съобщение 102 - порт B. Съобщение 100 има допълнително поле, което ви позволява да превключите интерфейса към двоичния протокол Sirf.

Съответно в двоичния протокол има команда, която превключва порта обратно към NMEA формат. Преди да преминете към двоичен протокол, трябва да разберете дали има програма, която по-късно ще ви позволи да възстановите NMEA протокола.

$PSRF100.0.9600.8.1.0*0C

$PSRF102.9600.8.1.0*3C

    PSRF100 - NMEA хедър

    0 - параметър, показващ в кой режим е променен протоколът (0-Sirf, 1-NMEA)

    9600 - скорост на порта (4800, 9600, 19200, 38400)

    8 - битове за данни (7, 8)

    1 - стоп битове (0,1)

    0 - сдвояване (0 - не, 1-нечетно, 2-четно)

PSFR101, PSFR104 - инициализация на параметрите на приемника

NMEA съобщенията с номера 101 и 104 са предназначени за инициализиране на параметри за GPS приемане. Дефинирането на тези параметри може да ускори времето за придобиване на GPS сателити. Съобщение 101 задава текущите координати във формат XYZ, съобщение 104 - във формат BLH (дължина, ширина).

$PSRF101,-2686700,-4304200.3851624.95000.497260.921.12.3*22

$PSRF104.37.3875111,-121.97232.0.95000.237759.922.12.3*3A

    PSRF101 - NMEA хедър

    37.3875111 - географска ширина в градуси

    121.97232 - географска дължина в градуси

    0 - височина, в метри

    95000 - смяна на часовника

    237759 - GPS време, в секунди

    922 - GPS номер на седмицата

    12 - брой канали

    3 – тип инициализация на данните (1 – горещ старт, 2 – топъл старт, 3 – инициализация на данни, 4 – студен старт с пълно изчистване на данните, 8 – студен старт с възстановяване на фабричните настройки)

PSFR103 - Конфигурация за генериране на NMEA съобщения

Това NMEA съобщение ви позволява да зададете или поискате периода на генериране за всяко „изходящо“ NMEA съобщение.

$PSRF103.05.00.01.01*20

    PSRF103 - NMEA хедър

    05 - заглавие на съобщението

    01 - период, в секунди (0-255)

    01 – наличие на контролна сума (0- да, 1 - не)

Резултати от експеримента

При нормални условия на сателитна видимост приемникът Garmin eMap извежда следния набор от 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

$PGRM,WGS 84*06

$GPRTE,1,1,c,*37

От анализа на съобщенията се вижда, че в момента приемникът проследява 10 (GSV) спътника, от които 7 (GGA) се използват за изчисляване на позицията. Грешката на хоризонталната позиция е 6 метра (RME), а индикаторът за тип разтвор е 1 (GGA)

Ако създадете условия, при които GPS сигналът няма да бъде получен, тогава GGA съобщенията ще съдържат "празни" полета, а индикаторът за тип решение ще приеме стойност 0 (GGA)

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

$GPGSA,A,1,,*1E

В "нормален" режим съобщенията RMB и BOD съдържат празни полета. След като точката "Път" беше избрана като крайна дестинация, тези полета бяха "попълнени" с данни. Както следва от анализа на съобщението, разстоянието до точката е 1620 мили, азимутът на движение е 6,3 градуса (BOD). В този случай азимутът на съобщенията BOD и RMB се различава с 0,1 градуса.

$GPRMB,A,0.00,R,Път,5524.501,N,03710.445,E,1.620,6.4,V,A*59

$GPBOD,6.3,T,357.0,M,Път,*74

След като началният маршрут беше избран за навигация, в списъка с RTE съобщения беше показан списък с всички точки на маршрута. И в съобщението RMB - идентификационните номера на началната и крайната (следващата) точка на маршрута.

$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

Заключение

В повечето случаи потребителят не се нуждае и не се интересува да знае какви данни и в какви полета се предават. Повечето навигационни програми "парсират" данните от NMEA съобщението и ги представят в удобна за потребителя форма - графики, диаграми, таблици и т.н.

От особен интерес са съобщенията NMEA за потребители, които биха искали да проучат GPS данни, да изчислят оценка на получените измервания или да анализират поведението на навигационни приемници при различни условия. Има редица програми, с които можете да разрешите тези проблеми.

Но все пак, за дълбок анализ на GPS данни, форматът NMEA не е предназначен, тъй като не съдържа така наречените "сурови" измервания - псевдообхват, фаза, доплер. Всеки производител на навигационно оборудване има свой собствен "отворен" или "затворен" протокол, който извежда тази информация.

NMEA е прост и разбираем формат, който не само позволява обмен на данни между GPS приемници и навигационни програми, но също така дава на потребителите известна представа за принципите на работа на сателитното навигационно оборудване.

внимание!

Като изходен материализползвана статия от сайта " GPS портал"