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

NMEA — это формат передачи сообщений между корабельными приборами. Он включает в себя систему сообщений для обмена информацией между навигационными GPS-приемниками и потребителями навигационной информации. Все команды и сообщения передаются в текстовом ASCII-виде. Сообщения относящиеся к GPS-приемнику начинаются с $GP, в конце строки сообщения должны быть символы. В последнем поле сообщения может быть указана контрольная сумма текущего сообщения, начинающаяся с разделителя *. Контрольная сумма всех символов сообщения, включая пробелы, расположенных между разделителями $и *, не включая последних. Шестнадцатеричный результат переводится в два ASCII-символа (0-9, A-F).

Содержание некоторых сообщений протокола NMEA

$GPGGA. Сообщение содержит данные о местоположении, времени определения местоположения, качестве данных, количестве использованных спутников, фактор ухудшения точности плановых координат, информацию о дифференциальных поправках и их возраст.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$GPGGA hhmmss.ss 1111.11 a yyyyy.yy a x xx x.x xxx M x.x M x.x xxxx *hh
  1. — Гринвичское время на момент определения местоположения.
  2. — Географическая широта местоположения.
  3. — Север//Юг (N/S).
  4. — Географическая долгота местоположения.
  5. — Запад//Восток (E/W).
  6. — Индикатор качества GPS сигнала:
    0 — Определение местоположения не возможно или не верно;
    1 — GPS режим обычной точности, возможно определение местоположения;
    2 — Дифференциальный GPS режим, точность обычная, возможно определение местоположения;
    3— GPS режим прецизионной точности, возможно определение местоположения.
  7. — Количество используемых спутников (00 12, может отличаться от числа видимых).
  8. — Фактор ухудшения точности плановых координат ((HDOP).
  9. — Высота антенны приемника над уровнем моря.
  10. — Единица измерения высоты расположения антенны, метры.
  11. — Геоидальное различие — различие между земным эллипсоидом WGS 84 и уровнем моря (геоидом), «–» — уровень моря ниже эллипсоида.
  12. — Единица измерения различия, метры.
  13. — Возраст дифференциальных данных GPS — время в секундах с момента последнего обновления SC104 типа 1 или 9, заполнено нулями, если дифференциальный режим не используется.
  14. — Идентификатор станции, передающей дифференциальные поправки, ID, 0000 1023. Эти поправки может принять любой желающий, но чтобы ими воспользоваться, необходимо иметь соответствующий приемник с названием BoB (Beacon on a Belt) в дополнение к стандартному.
  15. — Контрольная сумма строки.

Пример сообщения: $GPGGA, 004241.47, 5532.8492, N, 03729.0987, E, 1, 04, 2.0, -0015,M,,,,*31

$GPGLL. Сообщение содержит данные о географической широте, долготе и времени определения координат.

  1 2 3 4 5 6 7
$GPGLL 1111.11 a ууууy.уу a hhmmss.ss A *hh
  1. — Географическая широта местоположения.
  2. — Север//Юг (N/S).
  3. — Географическая долгота местоположения.
  4. — Запад//Восток (E/W).
  5. — Гринвичское время на момент определения местоположения.
  6. — Статус: A — данные верны, V — данные не верны.
  7. — Контрольная сумма строки.

Пример сообщения: $GPGLL, 5532.8492, N, 03729.0987, E, 004241.469, A*33

$GPGSA. В этом сообщении отображается режим работы GPS-приемника, параметры спутников, используемых при решении навигационной задачи, результаты которой отображены в сообщении $GPGGA, и значения факторов точности определения координат.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
$GPGSA A x xx xx xx xx xx xx xx xx xx xx xx xx x.x x.x x.x *hh
  1.     1 — Режим: M — ручной, принудительно включен 2D или 3D режим,
    A — автоматический, разрешено автоматически выбирать 2D или 3D режим.
    2 — Режим:
    1 — Местоположение не определено;
    2 — 2D;
    3 — 3D.
    3 –14 — PRN номера спутников, использованных при решении задачи определения местоположения (нули для неиспользованных спутников).
    15 — Фактор PDOP.
    16 — Фактор HDOP.
    17 — Фактор VDOP.
    18 — Контрольная сумма строки.

Пример сообщения: $GPGSA, A, 3,01, 02, 03, 04,,,,,,,,,2.0, 2.0, 2.0*34

$GPGSV. В сообщении указывается количество видимых спутников, их номера, возвышение, азимут и значение отношения «сигнал — шум » для каждого из них.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
$GPGSV x x xx xx xx xxx xx xx xx xxx xx xx xx xxx xx xx xx xxx xx *hh
  1. — Полное число сообщений, от 1 до 9.
  2. — Номер сообщения, от 1 до 9.
  3. — Полное число видимых спутников.
  4. — PRN номер спутника.
  5. — Высота, градусы,(90 ° максимум).
  6. — Азимут истинный, градусы, от 000 ° до 359 °.
  7. — Отношение «сигнал — шум » от 00 до 99 дБ, ноль — нет сигнала.
    8 –11 — Тоже, что в 4 –7 для второго спутника.
    12 –15 — Тоже, что в 4 –7 для третьего спутника.
    16 –19 — Тоже, что в 4 –7 для четвертого спутника.
    20 — Контрольная сумма строки.

Пример сообщения: $GPGSV, 3, 1, 12, 02, 86, 172,, 09, 62, 237,, 22, 39, 109,, 27, 37, 301, *7A

$GPRMC. Сообщение содержит данные о местоположении, времени и дате определения координат, скорости, направлении движения и магнитном склонении.

  1 2 3 4 5 6 7 8 9 10 11 12
$GPRMC hhmmss.ss A 1111.11 a yyyyy.yy a x.x x.x ddmmyy x.x a *hh
  1. — Гринвичское время на момент определения местоположения.
  2. — Статус: A — данные верны, V —данные не верны.
  3. — Географическая широта местоположения.
  4. — Север//Юг (N/S).
  5. — Географическая долгота местоположения.
  6. — Запад//Восток (E/W).
  7. — Скорость в узлах.
  8. — Направление движения в градусах.
  9. — Дата на момент определения местоположения.
  10. — Магнитное склонение в градусах.
  11. — Магнитное склонение на Запад//Восток (E/W).
  12. — Контрольная сумма строки.

Пример сообщения: $GPRMC, 225446, A, 4916.45, N, 12311.12, W, 000.5, 054.7, 191194, 020.3, E*68

$GPZDA.Сообщение содержит информацию о времени, календарном дне, месяце, годе и локальном часовом поясе.

  1 2 3 4 5 6 7
$GPZDA hhmmss.s xx xx xxxx xx xx *hh
  1. — Гринвичское время на момент определения местоположения.
  2. — День (от 01до 31).
  3. — Месяц (от 01 до 12).
  4. — Год.
  5. — Часовой пояс, смещение от GMT, от 00 до ±13 часов.
  6. — Часовой пояс, смещение от GMT, минуты.
  7. — Контрольная сумма строки.

Пример сообщения: $GPZDA, 172809, 12, 07, 1996, 00, 00*45

$GPVTG. Сообщение содержит информацию о направлении и скорости движения.

  1 2 3 4 5 6 7 8 9
$GPVTG x.x T x.x M s.ss N s.ss K *hh
  1. — Направление движения в градусах.
  2. — Относительно Северного полюса.
  3. — Направление движения в градусах (может не использоваться).
  4. — Относительно северного магнитного полюса (может не использоваться).
  5. — Скорость.
  6. — Единица измерения скорости, узлы.
  7. — Скорость.
  8. — Единица измерения скорости, км/ч.
  9. — Контрольная сумма строки.

Пример сообщения: $GPVTG, 360.0, T, 348.7, M,000.0, N, 000.0, K*43

Специальная литература