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

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

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 възела

Вероятно сега сте заети с решаването на проблема с хакването на поредния мега-супер-хипер сървър, но знаете ли какво е GPS и как да се справите с него?! Ако не, значи сте тук! В тази статия ще ви разкажа как работят GPS приемниците, как да получавате информация от тях, както и как сами да напишете проста програма за работа с GPS модула.

GPS (глобална система за позициониране, глобална система за позициониране) е въведена от Съединените щати през 1994 г. Състои се от 24 сателита и наземни приемни комплекси, които могат да бъдат вашият GPS-навигатор или GPS-модул (наричан по-нататък навигатор). За точно определяне на координатите вашият навигатор трябва да вижда поне 4 спътника. В близкото минало точността на определяне на координатите извън Съединените щати (или по-скоро за потребители извън САЩ) беше изкуствено намалена, но не толкова отдавна това ограничение беше премахнато и сега можете да определите местоположението си дори в тайгата с точност от няколко метра.

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

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

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

Е, сега е време да разберете как да направите софтуер, който да работи с цялата тази икономия. Ще кажа веднага, че всъщност не искам да обяснявам сега как да натискам бутони в същото
VB, статията е по-скоро с информативна цел. За тези, които са в резервоара, ще обясня по подобен начин процеса на създаване на програма в следващите статии.
Ще подчертая само най-много важни точкии мисля, че ще успеете. Веднага ще кажа, че можете да изваете програма на всеки език за програмиране, стига да е възможно да работите със сериен порт и с низове.
Първото нещо, с което трябва да започнете, е да отворите COM порт. Почти всички приемници по подразбиране са 9600 bps, 8/N/1. Веднага щом отворите порта, веднага ще получите навигационна информация като тази на интервал от секунда:

$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

Сега нека започнем да анализираме:

Данните се предават под формата на оферти. Форматът на предложението е следният:

$AAAA[,<данные>]*хх , Където

$ - знак за начало на изречението (код 24h);
AAAAA - петсимволен адрес (име) на офертата;
[, <данные>] — списък с полета с данни, разделени със запетаи (код 2Сh);
* — знак на контролната сума (код 2Ah);
hh - контролна сума;
, е крайният ограничител (кодове 0Dh и 0Ah).

Типове полета за данни.

Тип поле Обозначаване Определение

Специален формат на полето

Статус А Поле с един знак. A = да, данни
надежден предупредителен сигнал
Не. V= не, данните не са надеждни, има
предупредителен сигнал.
Географска ширина llll.ll
градуси-минути части от минута. 2 знака

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




с висока резолюция.
Географска дължина yyyyy.yy Поле с фиксирана/променлива дължина:
градуси-минути и части от минутата. 3 знака
градуси, 2 цифри минути и променлива
брой дробни минутни цифри. Ако първото
знаци или първият знак на протокола липсва,
след това те се заменят с нула, за да
поддържайте броя на знаците постоянен.
Десетична точка и последващи знаци
части от минути не са задължителни и
може да не се използва, ако не е необходимо
с висока резолюция.
време хммсс.сс Поле с фиксирана/променлива дължина: часове/минути/секунди
и части от секундата. 2 часовникови знака, 2 знака
минути, 2 цифри за секунди и променливо число
знаци за дробна секунда. Като първи
знак за часове, минути, секунди може да бъде
настройте на нула, за да запазите
постоянен брой знаци. Ако не
изисква се висока точност
десетичната запетая и дробните секунди могат
бъдат пропуснати.
Дефинирани полета Някои полета са специални
предназначени за предварително поставяне
определени постоянни стойности, по-често
Обща сума писма. знак
такива полета е наличието на едно или
няколко знака.

Полета на цифровите стойности

Информационни полета

Бележки:

1. Интервалите могат да се използват само в текстови полета с променлива дължина.

2. Отрицателният знак “-” (код 2Dh) е първият знак на полето, ако то съдържа отрицателни стойности. Когато се използва отрицателен знак в полета с фиксирана дължина, тяхната дължина се увеличава с единица. За положителни стойности знакът се пропуска.

GGA - Данни за GPS позициониране

Време, място и данни, свързани с наблюдението.

$GPGGA,hhmmss.sss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh

1. hhmmss.sss – време на дефинициите за навигация;
2. llll.ll,a – географска ширина, N/S;
3. yyyyy.yy,a – географска дължина, E/W;
4. x – индикатор за качество на наблюдението: 0 = няма данни, 1 = получено наблюдение, 2 = наблюдение в диференциален режим;
5. xx – брой използвани спътници;
6. x.x е стойността на хоризонталния геометричен фактор (HDOP);
7. x.x,M – височина на антената над морското равнище (геоид), m;
8. x.x,M – ексцес на геоида над елипсоида WGS84, m;
9. x.x – стареене на диференциалните корекции, т.е. времето в секунди от получаването на последната диференциална корекция, използва се нулево поле в случай на забрана на диференциалния режим;
10. xxxx – идентификатор на диференциалната станция 0ё1023.

Час, дата, координати и посока, изчислени от оборудването.

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

Полетата на това предложение са:

1. hhmmss.ss - време;
2. A – състояние (A/V);
3. llll.ll,a – географска ширина, N/S;
4. yyyyy.yy,a – географска дължина, E/W;
5. x.x – скорост във възли;
6. x.x – заглавие в градуси;
7. xxxxxx – дата: дд/мм/гг (ден/месец/година);
8. x.x,a – магнитна деклинация в градуси, E/W;
9. a - индикатор за режим: A = автономно наблюдение, D = диференциален режим, N = невалидни данни.

GSA - Коефициент на влошаване на точността, използван за навигационни спътници

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

Полетата на това предложение са:
1. a - режим на управление за броя на определените координати: M = ръчно, режимът е зададен, A = автоматично превключване;
2. x - режим на работа: 1 = наблюдението е невъзможно, 2 = определени са две координати, 3 = определени са три координати;
3. xx…xx - номера на сателитите, използвани за решаване на навигационния проблем, броят на полетата е равен на броя на приемните канали, за GPS числата са 1ё32, за WAAS 33ё64, за GLONASS 65ё96;
4. x.x е общият геометричен фактор на влошаване на точността (PDOP);
5. x.x е коефициентът на хоризонтална геометрична деградация на точност (HDOP);
x.x е вертикалната геометрична деградация на точност (VDOP).

GSV - Видими спътници

Броят на сателитите в зоната на радиовидимост, номерът на сателита, ъгълът на издигане, азимутът и съотношението сигнал/шум. Едно изречение може да съдържа информация за 1 до 4 сателита, допълнителни сателитни данни се предават в следващите изречения. Номерът на офертата е посочен в първите две полета с данни. За сателитни системизапазени са следните номера: за GPS 1-32, за WAAS 33-64, за GLONASS 65-96.

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

Полетата на това предложение са:
1. x – общ брой съобщения;
2. x – номер на съобщението;
3. xx е общият брой спътници в зоната на радиовидимост;
4. xx – сателитен номер;
5. xx – ъгъл на издигане на спътника, градуси 00-90;
6. xxx - истински азимут, градуси 000-360;
7. xx - съотношение сигнал/шум 00-99 dB, ако спътникът не е придружен, той не се предава.

Забележка: полета 4, 5, 7 се повтарят за 2, 3 и 4 сателита.

Е, сега, като имате описание на протокола NMEA и драйвера direct_hands.sys, можете да започнете да анализирате пакетите ред по ред и да създавате мега програма)))).

NMEA (Национална асоциация на морската електроника) 2000 е стандарт за предаване на данни за навигационни, комуникационни и други информационни мрежи.

В повечето случаи NMEA2000 се използва в морската индустрия. Този протокол се основава на протокола за пренос на данни МОГА(Controller Area Network), който се използва главно в корабната автоматизация.

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

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

NMEA съобщения

NMEA 2000 описва не само данни, получени от, но и измервания , , барометри и други навигационни устройства, използвани на кораби. Комуникационният интерфейс на повечето преносими GPS приемници е реализиран в съответствие със спецификацията NMEA. Повечето програми за навигация, които предоставят показване на данни в реално време, поддържат и „разбират“ протокола NMEA. Тези данни съдържат пълните навигационни измервания на GPS приемника - позиция, скорост и време.

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

Изходящи NMEA съобщения

Всички NMEA съобщения се състоят от последователен набор от данни, разделени със запетаи. всеки отделно съобщениене зависи от другите и е напълно "завършен". NMEA съобщението включва:

  • заглавие,
  • набор от данни, представени от ASCII знаци,
  • поле за контролна сума за проверка на точността на предадената информация.

заглавка

По правило заглавието се състои от пет знака. Първите два знака определят типа съобщение, а останалите три знака определят името на съобщението. Например заглавката на GPS NMEA съобщението започва с "GP". Съобщения, които не са описани в спецификацията на NMEA, но са внедрени в GPS приемници в съответствие с Общи правила, са с префикс „P“, последван от три знака, уникални за всяка компания. Например NMEA съобщенията имат префикс "PGRM", Magellan има префикс "PMGN".

Данни

Всяко NMEA съобщение започва с "$", завършва с "\n" (подаване на ред) и не може да бъде по-дълго от 80 знака. Всички данни се съдържат в един ред и са разделени една от друга със запетаи. Информацията се представя като ASCII текст и не изисква специално декодиране. Ако данните не се побират в разпределените 80 знака, те се "разделят" на няколко съобщения. Този формат ви позволява да не ограничавате точността и броя на знаците в отделните полета с данни. Например, дробната част от координатната стойност може да бъде представена с три или четири знака след десетичната запетая, но това не трябва да влияе по никакъв начин на операцията. софтуер, който извлича необходимите данни от съобщението по номер на поле.

Поле за контролна сума

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

Входящи NMEA съобщения

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

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

Протоколът 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 съобщения.

1. 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 режим.

* Видове решения:

2. 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

3. 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-игнориране)

Описание на протокола 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

IN 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 Канада - името на текущата хоризонтална дата

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

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 - хедер
  • 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 приемници и навигационни програми, но също така дава на потребителите известна представа за принципите на работа на сателитното навигационно оборудване

Описание на протокола 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 портал"