Описание протокола NMEA-0183 версии 2.1
NMEA – это формат передачи сообщений между корабельными приборами. Он включает в себя систему сообщений для обмена информацией между навигационными GPS приёмниками и потребителями навигационной информации. Все команды и сообщения передаются в текстовом ASCII виде, относящиеся к GPS приёмникам начинаются с $GP, в конце строки сообщения должны быть символы <CR><LF>. В последнем поле сообщения может быть указана контрольная сумма текущего сообщения, начинающаяся с разделителя *. Контрольная сумма 8 – ми битная (исключающая ИЛИ) всех символов сообщения, включая пробелы, расположенных между разделителями $ и *, не включая последних. Шестнадцатеричный результат переводится в два ASCII символа (0-9, A-F).
Содержание некоторых сообщений протокола NMEA версии 2.1
- $GPGGA Сообщение содержит GPS данные о местоположении, времени местоопределения, качестве данных, количестве использованных спутников, HDOP (Фактор Ухудшения Точности Плановых Координат), информацию о дифференциальных поправках и их возраст.
- $GPGLL Сообщение содержит GPS–данные о географической широте, долготе и времени определения координат.
- $GPGSA В этом сообщении отображается режим работы GPS приёмника, параметры спутников, используемых при решении навигационной задачи, результаты которой отображены в сообщении $GPGGA и значения факторов точности определения координат.
- $GPGSV В сообщении указывается количество видимых спутников, их номера, возвышение, азимут, и значение отношения сигнал/шум для каждого из них.
- $GPRMC Сообщение RMC содержит данные о времени, местоположении, курсе и скорости, передаваемые навигационным GPS приёмником. Контрольная сумма обязательна для этого сообщения, интервалы передачи не должны превышать 2 секунды. Все поля данных должны быть подготовлены, пока ещё нет самих данных. Недействительные поля могут быть использованы, пока данные временно не готовы.
- $GPVTG Сообщение VTG передает текущее истинное направление курса (COG) и скорость относительно земли (SOG).
- $GPZDA Сообщение ZDA содержит информацию о времени по UTC, календарный день, месяц, год и локальный часовой пояс.
GGA - GPS Данные о местоположении
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.
15. Контрольная сумма строки.
Пример сообщения:
$GPGGA,004241.47,5532.8492,N,03729.0987,E,1,04,2.0,-0015,M,,,,*31
GLL - географическое положение — Широта/Долгота
6 7 | |||||||
$GPGLL, | 1111.11, | a, | yyyyy.yy, | a, | hhmmss.ss, | A*hh | <CR><LF> |
1. Географическая широта местоположения.
2. Север/Юг (N/S).
3. Географическая долгота местоположения.
4. Запад/Восток (E/W).
5. Гринвичское время на момент определения местоположения.
6. Статус A = данные верны
V = данные не верны
7. Контрольная сумма строки.
Пример сообщения:
$GPGLL,5532.8492,N,03729.0987,E,004241.469,A*33
GSA - GPS факторы точности и активные спутники
В этом сообщении отображается режим работы GPS приёмника, параметры спутников, используемых при решении навигационной задачи, результаты которой отображены в сообщении $GPGGA и значения факторов точности определения координат.
17 18 | ||||||||||||||||||
$GPGSA, | a, | x, | xx, | xx, | xx, | xx, | xx, | xx, | xx, | xx, | xx, | xx, | xx, | xx, | x.x, | x.x, | x.x*hh | <CR><LF> |
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
GSV - видимые спутники GPS
В этом сообщении отображается число видимых спутников(SV), PRN номера этих спутников, их высота над местным горизонтом, азимут и отношение сигнал/шум. В каждом сообщении может быть информация не более чем о четырех спутниках, остальные данные могут быть расположены в следующих по порядку $GPGSV сообщениях. Полное число отправляемых сообщений и номер текущего сообщения указаны в первых двух полях каждого сообщения.
7 8 15 | 19 20 | |||||||||||
$GPGSV, | x, | x, | xx, | xx, | xx, | xxx, | xx..........., | xx, | xx, | xxx, | xx*hh | <CR><LF> |
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
$GPGSV,3,2,12,17,28,050,,29,21,314,,26,18,246,,08,10,153,*7F
$GPGSV,3,3,12,07,08,231,,10,08,043,,04,06,170,,30,00,281,*77
RMC – pекомендуемый минимум GPS / навигационных данных
$GPRMC, | Hhmmss.ss, | A, | 1111.11, | A, | yyyyy.yy, | a, | x.x, | x.x, | ddmmyy, | x.x, | A | *hh | <CR><LF> |
- Время фиксации местоположения UTC
- Состояние: А = действительный, V = предупреждение навигационного приёмника
- Географическая широта местоположения
- Север/Юг (N/S)
- Географическая долгота местоположения
- Запад/Восток (E/W)
- Скорость над поверхностью (SOG) в узлах
- Истинное направление курса в градусах
- Дата: dd/mm/yy
- Магнитное склонение в градусах
- Запад/Восток (E/W)
- Контрольная сумма строки (обязательно)
Пример сообщения:
$GPRMC,113650.0,A,5548.607,N,03739.387,E,000.01,255.6,210403,08.7,E*69
VTG – истинное направление курса и скорость относительно земли
$GPVTG, | x.x, | T, | x.x, | M, | x.x, | N, | x.x, | K, | i, | *hh | <CR><LF> |
- Направление курса в градусах, T
- Направление курса в градусах, T
- Магнитное склонение в градусах, М
- Магнитное склонение в градусах, М
- Скорость над поверхностью (SOG) в узлах, N = узлы
- Скорость над поверхностью (SOG) в узлах, N = узлы
- Скорость над поверхностью (SOG) в км/ч, К = км/ч
- Скорость над поверхностью (SOG) в км/ч, К = км/ч
- Контрольная сумма строки (обязательно)
- Контрольная сумма строки (обязательно)
Пример сообщения:
$GPVTG,217.5,T,208.8,M,000.00,N,000.01,K*4C
ZDA – время и дата
$GPZDA, | hhmmss.s, | xx, | xx, | xxxx, | xx, | xx | *hh | <CR><LF> |
- Время UTC
- День (01до 31)
- Месяц (01 to 12)
- Год
- Часовой пояс, смещение от GMT, от 00 до ± 13 часов
- Часовой пояс, смещение от GMT, минуты
- hh Контрольная сумма строки
Пример сообщения:
$GPZDA,172809,12,07,1996,00,00*45