NMEA 0183 (от «National Marine Electronics Association») — стандарт, определяющий текстовый протокол связи морского (как правило, навигационного) оборудования (или оборудования, используемого в поездах) между собой. Стал особенно популярен в связи с распространением GPS-приёмников, использующих этот стандарт.
Общий вид строк в NMEA 0183
- символ «$» или «!» (hex 24 или hex 21)
- 5-буквенный идентификатор сообщения. Первые две буквы — идентификатор источника сообщения, следующие три буквы — идентификатор формата сообщения, согласно протоколу NMEA 0183 определённой версии.
- список данных (буквы, цифры и точки), разделённых запятыми. Если какие-либо данные отсутствуют внутри строки, запятые всё равно ставятся (например «,,»). Некоторые поля в конце строки могут отсутствовать вовсе.
- символ «*».
- восьмибитная XOR-сумма всех символов (включая «,» и «^») в строке между «$» и «*» приведенная к двум ASCII-символам в верхнем регистре для 16-ричного представления байта (0–9, A–F).
- <CR><LF> (hex 0D, hex 0A).
Максимальная длина сообщения ограничена 82 символами (NMEA 0183 rev 3.0)
Стандарт описывает более 250 идентификаторов NMEA-последовательностей. Стандарт определяет скорости обмена данными в 4800 бод. (Для скоростей в 38400 бод и выше есть расширенный стандарт NMEA-0183-HS).
Стандарт позволяет добавлять собственные идентификаторы последовательностей, что часто используется производителями для передачи дополнительной информации о работе устройства.
NMEA синтаксис
Сообщения начинаются с заголовка. Заголовок делится на две части: ID и тип.
ID - идентификатор источника (Спутниковая система)
ID | Система спутников |
---|---|
GP | GPS |
GL | GLONASS |
GA | Galileo |
BD | BeiDou |
GB | BeiDou |
Стандарт определяет ID начинающиеся с символа P, как ID для кодирования по усмотрению производителя GNSS приемника
RMC-строка (частный пример)
$GPRMC,hhmmss.sss,A,GGMM.MM,P,gggmm.mm,J,v.v,b.b,ddmmyy,x.x,n,m*hh<CR><LF>
Значение полей:
- «GP» — идентификатор источника; в приведенном примере это GPS, «GL» — ГЛОНАСС, «GA» — Галилео, «GN» — ГЛОНАСС+GPS и т. п.
- «RMC» — «Recommended Minimum sentence C»
- «hhmmss.sss» — время фиксации местоположения по Всемирному координированному времени UTC: «hh» — часы, «mm» — минуты, «ss.sss» — секунды. Длина дробной части секунд варьируется. Лидирующие нули не опускаются.
- «A» — статус: «A» — данные достоверны, «V» — недостоверны.
- «GGMM.MM» — широта. 2 цифры градусов(«GG»), 2 цифры целых минут, точка и дробная часть минут переменной длины. Лидирующие нули не опускаются.
- «P» — «N» для северной или «S» для южной широты.
- «gggmm.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» — контрольная сумма.
- <CR> — байт равен 0x0D.
- <LF> — байт равен 0x0A.
Примеры RMC-строки
Пример 1
$GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,,,*17
Значение полей:
- 12 часов 55 минут 4,049 секунд UTC
- «A» — достоверно
- широта 55° 42,2389', северная
- долгота 37° 41,6063', восточная
- скорость 0,06 узлов
- направление движения 25,82 градуса
- 20 сентября (20)06 года
- магнитное склонение не указано
- направление магнитного склонения не указано
- индикатор режима отсутствует
- контрольная сумма 0x17
Пример 2
$GPRMC,,V,,,,,,,080907,9.6,E,N*31
Значение полей:
- «V» — недостоверно
- 8 сентября (20)07 года
- магнитное склонение восточное, 9,6°
- «N» — недостоверные данные
- контрольная сумма 0x31
Все остальные поля отсутствуют (нет сигнала от спутников).
Пример приёмника
Карманный коммерческий приёмник Garmin eTrex поддерживает обмен следующими строками:
- NMEA 0183 версия 3.0:
- GPGGA — данные о последнем определении местоположения
- GPGLL — координаты, широта/долгота
- GPGSA — DOP (GPS) и активные спутники
- GPGSV — наблюдаемые спутники
- GPWPL — параметры заданной точки
- GPBOD — азимут одной точки относительно другой
- GPRMB — рекомендуемый минимум навигационных данных для достижения заданной точки
- GPRMC — рекомендуемый минимум навигационных данных (см. выше)
- GPRTE — маршруты
- HCHDG — данные от компаса
- Собственные () строки фирмы Garmin:
- PGRME — оценка ошибки измерений
- PGRMM — картографические данные
- PGRMZ — высота
- PSLIB — контроль приёма маяков
Примечания
- . www.nmea.org. Дата обращения: 29 июня 2022. Архивировано из оригинала 31 марта 2022 года.
- http://www8.garmin.com/support/pdf/NMEA_0183.pdf от 27 сентября 2007 на Wayback Machine (англ.)
Ссылки
- Протокол NMEA 0183 от 22 марта 2007 на Wayback Machine (англ.) (неофициальное и неполное описание)
- (англ.)
- Список протоколов NMEA от 4 января 2007 на Wayback Machine (нем.) (англ.)
- LGPL C библиотека для разбора и генерации NMEA протокола от 8 марта 2022 на Wayback Machine
- Библиотека, входящая в стандартную библиотеку языка tcl для работы с NMEA от 12 февраля 2012 на Wayback Machine
- Библиотека с полной поддержкой протокола NMEA 0183 2.0 (C#) от 12 сентября 2020 на Wayback Machine
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер
NMEA 0183 ot National Marine Electronics Association standart opredelyayushij tekstovyj protokol svyazi morskogo kak pravilo navigacionnogo oborudovaniya ili oborudovaniya ispolzuemogo v poezdah mezhdu soboj Stal osobenno populyaren v svyazi s rasprostraneniem GPS priyomnikov ispolzuyushih etot standart Obshij vid strok v NMEA 0183simvol ili hex 24 ili hex 21 5 bukvennyj identifikator soobsheniya Pervye dve bukvy identifikator istochnika soobsheniya sleduyushie tri bukvy identifikator formata soobsheniya soglasno protokolu NMEA 0183 opredelyonnoj versii spisok dannyh bukvy cifry i tochki razdelyonnyh zapyatymi Esli kakie libo dannye otsutstvuyut vnutri stroki zapyatye vsyo ravno stavyatsya naprimer Nekotorye polya v konce stroki mogut otsutstvovat vovse simvol vosmibitnaya XOR summa vseh simvolov vklyuchaya i v stroke mezhdu i privedennaya k dvum ASCII simvolam v verhnem registre dlya 16 richnogo predstavleniya bajta 0 9 A F lt CR gt lt LF gt hex 0D hex 0A Maksimalnaya dlina soobsheniya ogranichena 82 simvolami NMEA 0183 rev 3 0 Standart opisyvaet bolee 250 identifikatorov NMEA posledovatelnostej Standart opredelyaet skorosti obmena dannymi v 4800 bod Dlya skorostej v 38400 bod i vyshe est rasshirennyj standart NMEA 0183 HS Standart pozvolyaet dobavlyat sobstvennye identifikatory posledovatelnostej chto chasto ispolzuetsya proizvoditelyami dlya peredachi dopolnitelnoj informacii o rabote ustrojstva NMEA sintaksisSoobsheniya nachinayutsya s zagolovka Zagolovok delitsya na dve chasti ID i tip ID identifikator istochnika Sputnikovaya sistema ID Sistema sputnikovGP GPSGL GLONASSGA GalileoBD BeiDouGB BeiDou Standart opredelyaet ID nachinayushiesya s simvola P kak ID dlya kodirovaniya po usmotreniyu proizvoditelya GNSS priemnikaRMC stroka chastnyj primer GPRMC hhmmss sss A GGMM MM P gggmm mm J v v b b ddmmyy x x n m hh lt CR gt lt LF gt Znachenie polej GP identifikator istochnika v privedennom primere eto GPS GL GLONASS GA Galileo GN GLONASS GPS i t p RMC Recommended Minimum sentence C hhmmss sss vremya fiksacii mestopolozheniya po Vsemirnomu koordinirovannomu vremeni UTC hh chasy mm minuty ss sss sekundy Dlina drobnoj chasti sekund variruetsya Lidiruyushie nuli ne opuskayutsya A status A dannye dostoverny V nedostoverny GGMM MM shirota 2 cifry gradusov GG 2 cifry celyh minut tochka i drobnaya chast minut peremennoj dliny Lidiruyushie nuli ne opuskayutsya P N dlya severnoj ili S dlya yuzhnoj shiroty gggmm mm dolgota 3 cifry gradusov ggg 2 cifry celyh minut tochka i drobnaya chast minut peremennoj dliny Lidiruyushie nuli ne opuskayutsya J E dlya vostochnoj ili W dlya zapadnoj dolgoty v v gorizontalnaya sostavlyayushaya skorosti otnositelno zemli v uzlah Chislo s plavayushej tochkoj Celaya i drobnaya chasti peremennoj dliny b b putevoj ugol napravlenie skorosti v gradusah Chislo s plavayushej tochkoj Celaya i drobnaya chasti peremennoj dliny Znachenie ravnoe 0 sootvetstvuet dvizheniyu na sever 90 vostok 180 yug 270 zapad ddmmyy data den mesyaca mesyac poslednie 2 cifry goda vedushie nuli obyazatelny x x magnitnoe sklonenie v gradusah chasto otsutstvuet rasschitannoe po nekotoroj modeli Chislo s plavayushej tochkoj Celaya i drobnaya chasti peremennoj dliny n napravlenie magnitnogo skloneniya dlya polucheniya magnitnogo kursa magnitnoe sklonenie neobhodimo E vychest W pribavit k istinnomu kursu m indikator rezhima A avtonomnyj D differencialnyj E approksimaciya N nedostovernye dannye chasto otsutstvuet dannoe pole vklyuchaya zapyatuyu otsutstvuet v staryh versiyah NMEA hh kontrolnaya summa lt CR gt bajt raven 0x0D lt LF gt bajt raven 0x0A Primery RMC strokiPrimer 1 GPRMC 125504 049 A 5542 2389 N 03741 6063 E 0 06 25 82 200906 17 Znachenie polej 12 chasov 55 minut 4 049 sekund UTC A dostoverno shirota 55 42 2389 severnaya dolgota 37 41 6063 vostochnaya skorost 0 06 uzlov napravlenie dvizheniya 25 82 gradusa 20 sentyabrya 20 06 goda magnitnoe sklonenie ne ukazano napravlenie magnitnogo skloneniya ne ukazano indikator rezhima otsutstvuet kontrolnaya summa 0x17Primer 2 GPRMC V 080907 9 6 E N 31 Znachenie polej V nedostoverno 8 sentyabrya 20 07 goda magnitnoe sklonenie vostochnoe 9 6 N nedostovernye dannye kontrolnaya summa 0x31 Vse ostalnye polya otsutstvuyut net signala ot sputnikov Primer priyomnikaKarmannyj kommercheskij priyomnik Garmin eTrex podderzhivaet obmen sleduyushimi strokami NMEA 0183 versiya 3 0 GPGGA dannye o poslednem opredelenii mestopolozheniya GPGLL koordinaty shirota dolgota GPGSA DOP GPS i aktivnye sputniki GPGSV nablyudaemye sputniki GPWPL parametry zadannoj tochki GPBOD azimut odnoj tochki otnositelno drugoj GPRMB rekomenduemyj minimum navigacionnyh dannyh dlya dostizheniya zadannoj tochki GPRMC rekomenduemyj minimum navigacionnyh dannyh sm vyshe GPRTE marshruty HCHDG dannye ot kompasa Sobstvennye stroki firmy Garmin PGRME ocenka oshibki izmerenij PGRMM kartograficheskie dannye PGRMZ vysota PSLIB kontrol priyoma mayakovPrimechaniya neopr www nmea org Data obrasheniya 29 iyunya 2022 Arhivirovano iz originala 31 marta 2022 goda http www8 garmin com support pdf NMEA 0183 pdf ot 27 sentyabrya 2007 na Wayback Machine angl SsylkiProtokol NMEA 0183 ot 22 marta 2007 na Wayback Machine angl neoficialnoe i nepolnoe opisanie angl Spisok protokolov NMEA ot 4 yanvarya 2007 na Wayback Machine nem angl LGPL C biblioteka dlya razbora i generacii NMEA protokola ot 8 marta 2022 na Wayback Machine Biblioteka vhodyashaya v standartnuyu biblioteku yazyka tcl dlya raboty s NMEA ot 12 fevralya 2012 na Wayback Machine Biblioteka s polnoj podderzhkoj protokola NMEA 0183 2 0 C ot 12 sentyabrya 2020 na Wayback Machine