NMEA 0183

редактировать
Стандарт связи для морской электроники

NMEA 0183 - это комбинированная электрическая спецификация и данные для связи между морской электроника, такая как эхолот, сонары, анемометр, гирокомпас, автопилот, Приемники GPS и многие другие виды приборов. Он был определен и контролируется Национальной ассоциацией морской электроники. Он заменяет более ранние стандарты NMEA 0180 и NMEA 0182 . В морских приложениях для отдыха от него постепенно отказываются в пользу нового стандарта NMEA 2000, хотя NMEA0183 остается нормой в коммерческом судоходстве.

Используемый электрический стандарт - EIA-422, хотя большая часть оборудования с выходами NMEA-0183 также может управлять одним портом EIA-232. Хотя стандарт требует изолированных входов и выходов, существуют различные серии оборудования, которые не соответствуют этому требованию.

Стандарт NMEA 0183 использует простой протокол ASCII, последовательной связи, который определяет, как данные передаются в «предложении» от одного «говорящего» к нескольким »слушателям. " вовремя. Благодаря использованию промежуточных расширителей, говорящий может вести однонаправленный разговор с почти неограниченным количеством слушателей, а с помощью мультиплексоров несколько датчиков могут общаться с одним портом компьютера.

На уровне приложения стандарт также определяет содержимое каждого типа предложения (сообщения), чтобы все слушатели могли точно анализировать сообщения.

Хотя NMEA0183 определяет только транспорт RS422, также существует стандарт де-факто, в котором предложения из NMEA0183 помещаются в дейтаграммы UDP (одно предложение на пакет) и отправляются по IP-сети..

Стандарт NMEA является патентованным и продается по крайней мере за 2000 долларов США (за исключением членов NMEA) по состоянию на сентябрь 2020 года. Однако большая часть его была реконструирована из открытых источников.

Содержание
  • 1 Последовательная конфигурация (уровень канала передачи данных)
  • 2 Структура сообщения
  • 3 Расширения поставщика
  • 4 Совместимость программного обеспечения
  • 5 Образец файла
  • 6 C реализация генерации контрольной суммы
  • 7 Статус
  • 8 См. Также
  • 9 Ссылки
  • 10 Внешние ссылки
Последовательная конфигурация (уровень канала данных)
Типичная Скорость передачи 4800
Биты данных8
ЧетностьНет
Стоповые биты1
Подтверждение связиНет

Существует вариант стандарта под названием NMEA-0183HS, который определяет скорость передачи 38 400 бод. Обычно это используется устройствами AIS.

Структура сообщения
  • Все передаваемые данные печатаются символы ASCII от 0x20 (пробел) до 0x7e (~)
  • Символы данных - это все указанные выше символы, кроме зарезервированных символы (см. следующую строку)
  • Зарезервированные символы используются NMEA0183 для следующих целей:
ASCIIHexDecИспользовать
0x0d13Возврат каретки
0x0a10Перевод строки, конечный разделитель
!0x2133Начало разделителя предложения инкапсуляции
$0x2436Начальный разделитель
*0x2a42Разделитель контрольной суммы
,0x2c44Разделитель полей
\0x5c92Разделитель блока TAG
^0x5e94Разделитель кода для HEX-представления символов ISO / IEC 8859-1 (ASCII)
~0x7e126Зарезервировано
  • Сообщения имеют максимальную длину 82 символа, включая символы $ или! начальный и конечный символы
  • Начальным символом для каждого сообщения может быть либо $ (для обычных сообщений с разделителями полей), либо! (для сообщений со специальной инкапсуляцией)
  • Следующие пять символов идентифицируют говорящего (два символа) и тип сообщения (три символа).
  • Все поля данных, которые следуют, запятые -delimited.
  • Если данные недоступны, соответствующее поле остается пустым (оно не содержит символов перед следующим разделителем - см. раздел Образец файла ниже).
  • Первое Символ, который следует сразу за последним символом поля данных, является звездочкой, но он включается только в том случае, если указана контрольная сумма.
  • За звездочкой сразу же следует контрольная сумма, представленная в виде двух цифр шестнадцатеричное число. Контрольная сумма - это поразрядное исключающее ИЛИ кодов ASCII всех символов между $ и *, не включительно. Согласно официальной спецификации, контрольная сумма является необязательной для большинства предложений данных, но обязательна для RMA, RMB и RMC (среди прочего).
  • заканчивает сообщение.

В качестве примера тревога прибытия в точку маршрута имеет форма:

$ GPAAM, A, A, 0.10, N, WPTNME * 32

Другой пример сообщений AIS:

! AIVDM, 1,1`` A, 14eG; o @ 034o8sd 062D, 0 * 7D
Расширения поставщика

Большинство производителей GPS включают специальные сообщения в дополнение к стандартным сообщениям NMEA, установленным в их продуктах, для целей технического обслуживания и диагностики. Расширенные сообщения начинаются с «$ P». Эти расширенные сообщения не стандартизированы.

Совместимость программного обеспечения

NMEA 0183 поддерживается различным программным обеспечением для навигации и картографии. Среди известных приложений:

Образец файла

Образец файла, созданный регистратором GPS Tripmate 850. Этот файл был создан в Leixlip, County Kildare, Ireland. Рекорд длится две секунды.

$ GPGGA, 092750.000,5321.6802, N, 00630.3372, W, 1,8,1.03,61.7, M, 55.2, M,, * 76 $ GPGSA, A, 3,10,07,05,02, 29,04,08,13,,,,, 1.72,1.03,1.38 * 0A $ GPGSV, 3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157, 30 * 70 $ GPGSV, 3,2,11,02,39,223,19,13,28,070,17,26,23,252`` 04,14,186,14 * 79 $ GPGSV, 3,3,11,29,09,301, 24,16,09,020`` 36`` * 76 $ GPRMC, 092750.000, A, 5321.6802, N, 00630.3372, W, 0,02,31.66,280511`` A * 43 $ GPGGA, 092751.000,5321.6802, N, 00630.3371, W, 1,8,1.03,61.7, M, 55.3, M,, * 75 $ GPGSA, A, 3,10,07,05,02,29,04,08,13,,,,, 1,72,1.03, 1,38 * 0A $ GPGSV, 3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30 * 70 $ GPGSV, 3,2,11,02,39,223, 16,13,28,070,17,26,23,252`` 04,14,186,15 * 77 $ GPGSV, 3,3,11,29,09,301,24,16,09,020`` 36`` * 76 $ GPRMC, 092751.000, A, 5321.6802, N, 00630.3371, W, 0.06,31.66,280511,,, A * 45

Обратите внимание на некоторые пустые поля, например:

  • GSV записи, которые описывают видимые спутники ', отсутствует поле SNR (отношение сигнал / шум) для спутника 16 и все данные для спутника 36.
  • GSA запись, в которой перечислены спутники Литера, используемая для определения точки (положения) и дает DOP точки, содержит 12 полей для номеров спутников, но только 8 спутников были приняты во внимание, поэтому остается 4 поля пусто.
C реализация генерации контрольной суммы

Контрольная сумма в конце каждого предложения - это XOR всех байтов в предложении, исключая начальный знак доллара. Следующий код C генерирует контрольную сумму для строки, введенной как «mystring», и выводит ее в выходной поток. В примере используется предложение из файла-образца.

#include контрольная сумма int (const char * s) {int c = 0; в то время как (* s) c ^ = * s ++; return c; } int main () {char mystring = "BNALF, 1,1,0,, B, W, V,, 220003,, 0,0, ВИЗУАЛЬНАЯ СИГНАЛИЗАЦИЯ"; printf ("Строка:% s \ nChecksum: 0x% 02X \ n", mystring, контрольная сумма (mystring)); возврат 0; }
Статус

NMEA 0183 продолжал поддерживаться отдельно: версия 4.10 была опубликована в начале мая 2012 г., а 12 мая 2012 г. была обнаружена ошибка. Неясно, ведется ли какая-либо активная разработка. Последнее объявление NMEA по этому вопросу старше стандарта V4.10. Есть обновление от 27 ноября 2018 г. до 4.11.

См. Также
Справочная информация
Внешние ссылки
Последняя правка сделана 2021-05-31 07:11:07
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте