GPS-позиционирование и анализ протокола связи

1. Введение

На картинке выше показан модуль GPS позиционирования одной фирмы, делюсь с вами знаниями, полученными в процессе использования его для GPS позиционирования.

Основные параметры следующие

◆Полудуплексный интерфейс UART (уровень 3.3V_TTL)/RS232/IIC/CAN, более быстрое применение;

◆Принять высокоточный TCXO KDS 0.5PPM;

◆Высокая скорость вывода данных: 115200 бит/с (по умолчанию) [опционально: 9600/38400];

◆Выходное предложение: протокол NMEA 0183 V3.0/UBX;

◆Поддержка регулируемой частоты обновления данных: 1–10 Гц;

◆Независимые исследования, разработка и проектирование антенного вибратора для обеспечения совпадения фазового центра с геометрическим центром и минимизации влияния антенны на ошибки измерения ◆Поддержка дополнительного сервиса A-GPS, геомагнитного датчика, датчика давления;

◆опционально смешанный двигатель GPS, BD, GLONASS;

◆ Изготовлено по бессвинцовой технологии и соответствует стандартам RoHS.

Он поддерживает два протокола:

Общий протокол NMEA 0183 и протокол связи UBX

 

2. Протокол NMEA 0183

NMEA 0183 — это стандартный формат для морской электроники, разработанный Национальной ассоциацией морской электроники. В настоящее время он стал унифицированным стандартным протоколом RTCM (Радиотехническая комиссия по морским службам) для навигационного оборудования GPS. Протокол NMEA0183 использует коды ASCII для передачи информации о местоположении GPS, которую мы называем кадрами. Формат кадра следующий:

$aaccc,ddd,ddd,„,ddd*hh(CR)(LF)

1. "$": стартовый бит команды кадра

2. "aaccc": адресное поле, первые две цифры - идентификатор (aa), а последние три цифры - название выписки (ccc)

3. "ддд, ддд": содержание данных

4. "*": префикс контрольной суммы (также может использоваться как знак конца данных оператора)

5. "hh": контрольная сумма (checksum), контрольная сумма всех кодов ASCII между $ и * (каждый байт подвергается операции XOR, и после получения контрольной суммы она преобразуется в ASCII в символе шестнадцатеричного формата)

6. "(CR)(LF)": конец кадра, возврат каретки и перевод строки

Основная команда:

Описание команды порядкового номера Максимальная длина кадра (байт)

1 Информация о местоположении, рекомендованная $GPRMC 70

2 $GPGGA Информация о местоположении GPS 72

3 $GPVTG Информация о скорости относительно земли 34

4 Геомагнитная информация $RHXZ 24

5 $GPGSA текущая спутниковая информация 65

6 $GPGSV Количество видимых спутников 210

7 $GPGLL Информация о геодезических координатах

Анализ инструкции:

1. $GPRMC (рекомендуемый минимум специальных данных GPS/транзита) Основной формат оператора $GPRMC следующий: $GPRMC,(1),(2),(3),(4),(5),(6), (7),(8),(9),(10),(11),(12)*hh(CR)(LF)

(1) Время UTC, ччммсс (час, минута и секунда)

(2) Состояние позиционирования, A=действительное позиционирование, V=недействительное позиционирование

(3) Широта ддмм.мммммм градусы и минуты)

(4) Широта полушария N (северное полушарие) или S (южное полушарие)

(5) Долгота дддмм.мммммм градусы и минуты)

(6) Долгота полушария E (восточная долгота) или W (западная долгота)

(7) Скорость относительно земли (000,0~999,9 узлов)

(8) Курс земли (000,0~359,9 градусов, с истинным севером в качестве точки отсчета)

(9) Дата UTC, ддммгг (день месяц год)

(10) Магнитное склонение (000,0~180,0 градусов, введите 0, если количество первых цифр недостаточно)

(11) Направление магнитного склонения, E (восток) или W (запад) (12) Индикация режима (A=автономное позиционирование, D=дифференциальное, R=RTK, E=оценка, N=неверные данные) Примеры: $ GPRMC ,084103.00,A,2233.395441,N,11356.556656,E,0,035,,220618,,,A*7A

 

2. $GPGGA (информация о местоположении GPS, фиксированные данные глобальной системы позиционирования) Основной формат оператора $GPGGA следующий (где M относится к единице M, то же самое ниже): $GPGGA,(1),(2),( 3),(4),(5),(6),(7),(8),(9),М,(10),М,(11),(12)*hh(CR)(LF)

(1) время UTC, формат ччммсс.сс;

(2) Широта в формате ддмм.мммммм градусы-минуты);

(3) Широта полушария, северная или южная (северная или южная широта);

(4) долгота в формате дддмм.мммммм градусы-минуты);

(5) Долгота полушария, E или W (восточная или западная долгота);

(6) статус GPS, 0=нет определения местоположения, 1=недифференциальное определение местоположения, 2=дифференциальное определение местоположения;

(7) Количество спутников, используемых для позиционирования (00~12)

(8) Коэффициент точности уровня HDOP (0,5~99,9)

(9) Высота над уровнем моря (от -9999,9 до 9999,9 метров)

(10) Высота геоида (от -9999,9 до 9999,9 метров)

(11) Дифференциальное время (количество секунд с момента получения последнего дифференциального сигнала, недифференциальное позиционирование, этот пункт пуст)

(12) Номер дифференциальной опорной базовой станции (от 0000 до 1023, первый 0 также будет передан, недифференциальное позиционирование, этот элемент пуст) Например: $GPGGA,070343.90,2236.360900,N,11352.021690,E,1,04 ,68,82,- 72,83,М,- 1,00,М,,*68

3. $GPVTG (информация о путевой скорости, путевая скорость и путевая скорость) Основной формат оператора $GPVTG следующий: $GPVTG,(1),T,(2),M,(3),N,(4) ,К,( 5)*hh(CR)(LF)

(1) Направление на земле на основе истинного севера (000~359 градусов, также будет передаваться начальный 0)

(2) Направление на земле на основе магнитного севера (000~359 градусов, также будет передаваться начальный 0)

(3) Скорость относительно земли (000,0~999,9 узлов, также будет передаваться начальный 0)

(4) Скорость относительно земли (0000,0~1851,8 км/ч, также будет передаваться начальный 0)

(5) Индикация режима (A=автономное позиционирование, D=разность, E=оценка, N=неверные данные). Примеры: $GPVTG,,T,,M,0,106,N,0,196,K,A*2A

 

4. $RHXZ (информация геомагнитного датчика) Основной формат оператора $RHXZ следующий: $RHXZ,(1),(2),(3) *hh(CR)(LF)

(1) Шестнадцатеричное значение оси X геомагнитного датчика (старший бит идет первым, например, 0057 означает 0x0057, диапазон 0000~FFFF, также будет передаваться передний 0)

(2) Шестнадцатеричное значение оси Y геомагнитного датчика (старший бит идет первым, например, FE6E означает 0xFE6E, диапазон 0000~FFFF, также будет передаваться передний 0)

(3) Шестнадцатеричное значение оси Z геомагнитного датчика (старший бит находится впереди, например, 0210 означает 0x0210, диапазон 0000~FFFF, также будет передаваться передний 0) Например: $RHXZ, 0057,ФЭ6Э,0210*45

 

5. $GPGSA (текущая спутниковая информация) Основной формат оператора $GPGSA следующий: $GPGSA,(1),(2),(3),(3),(3),(3),(3), (3), (3), (3), (3), (3), (3), (3), (4), (5), (6) * hh (CR) (LF)

(1) Режим, M = ручной, A = автоматический.

(2) Тип позиционирования, 1=без позиционирования, 2=2D-позиционирование, 3=3D-позиционирование.

(3) Номер спутника, используемый для позиционирования (01~32)

(4) Коэффициент комплексной точности положения PDOP (0,5–99,9)

(5) Коэффициент горизонтальной точности HDOP 1 (0,5–99,9)

(6) Коэффициент вертикальной точности VDOP (0,5–99,9) Например: $GPGSA,A,3,26,02,05,29,15,21,,,,,,,2,45,1,49,1,94*0E

 

6. $GPGSV (количество видимых спутников, спутники GPS в поле зрения) Основной формат оператора $GPGSV следующий: $GPGSV,(1),(2),(3),(4),(5),(6 ),(7) ,...,(4),(5),(6),(7)*hh(CR)(LF)

(1) Общее количество заявлений GSV.

(2) Номер GSV в этом предложении.

(3) Общее количество видимых спутников (00~12, предыдущий 0 также будет передаваться).

(4) Номер спутника (01~32, предыдущий 0 также будет передаваться).

(5) Угол места спутника (00~90 градусов, предыдущий 0 также будет передаваться).

(6) Азимут спутника (000~359 градусов, предыдущий 0 также будет передан)

(7) Отношение сигнал/шум (00~99 дБ, пусто, если спутник не отслеживается).

Примечание. Каждый оператор GSV включает информацию не более чем о четырех спутниках, а информация о других спутниках будет выводиться в следующем операторе $GPGSV.

Например: $GPGSV,3,1,12,02,39,117,25,04,02,127,,05,40,036,24,08,10,052,*7E $GPGSV,3,2,12,09,35,133,,10 ,01,073,,15,72,240,22,18,05,274,*7B $GPGSV,3,3,12,21,10,316,31,24,16,176,,26,65,035,42,29,46,277,18*7A

 

7. $GPGLL (Географическое положение) Основной формат оператора $GPGLL следующий: $GPGLL,(1),(2),(3),(4),(5),(6),(7)*hh (CR)(НЧ)

(1) Широта ддмм.мммммм (градусы и минуты)

(2) Широта полушария N (северное полушарие) или S (южное полушарие)

(3) Долгота дддмм.ммммм (градусы и минуты)

(4) Долгота полушария E (восточная долгота) или W (западная долгота)

(5) Время UTC: ччммсс (час, минута, секунда).

(6) Состояние позиционирования, A=действительное позиционирование, V=недействительное позиционирование

(7) Индикация режима (A=автономное позиционирование, D=разница, E=оценка, N=неверные данные)

Например: $GPGLL,2308.28715,N,11322.09875,E,023543.00,A,A*6A

 

3. Эталонная программа проверки протокола NMEA0183

unsigned char Calc_GPS_Sum( const char* Buffer )
{
unsigned char i, j, k, sum;
sum = 0;
for ( i = 1; i < 255; i++ ) //i 从 1 开始是闪过$开始符
{
if ( ( Buffer[i] != '*' ) && ( Buffer[i] != 0x00 ) ) //判断结束符
{
sum ^= Buffer[i];//GPS 校验和算法为 XOR
}
else
{
break;
}
}
j = Buffer[i + 1];//取结束符后两位字符
k = Buffer[i + 2];
if ( isalpha( j ) ) //判断字符是否为英文字母,为英文字母时返回非零值,否则返回零
{
if ( isupper( j ) ) //判断字符为大写英文字母时,返回非零值,否则返回零
{
j -= 0x37;//强制转换为 16 进制
}
else
{
j -= 0x57;//强制转换为 16 进制
}
}
else
{
if ( ( j >= 0x30 ) && ( j <= 0x39 ) )
{
j -= 0x30;//强制转换为 16 进制
}
}
if ( isalpha( k ) ) //判断字符是否为英文字母,为英文字母时返回非零值,否则返回零
{
if ( isupper( k ) ) //判断字符为大写英文字母时,返回非零值,否则返回零
{
k -= 0x37;//强制转换为 16 进制
}
else
{
k -= 0x57;//强制转换为 16 进制
}
}
else
{
if ( ( k >= 0x30 ) && ( k <= 0x39 ) )
{
k -= 0x30;//强制转换为 16 进制
} }
j = ( j << 4 ) + k; //强制合并为 16 进制
// gps_sum = j;
if ( sum == j )
{
return Valid; //校验和正常
}
else
{
return Invalid; //校验和错误
} }

 

4. Программное обеспечение для тестирования модуля GPS

Модуль gps можно протестировать с помощью тестового программного обеспечения u-center, которое может поддерживать последовательный порт и сетевой порт.

Вы также можете использовать последовательный порт SSCOM для сбора данных GPS и сохранения их в файл для дальнейшего использования.

5. Загрузка соответствующего программного обеспечения

Адрес загрузки программного обеспечения Digital Earth: https://download.csdn.net/download/xipengbozai/19774250

Адрес загрузки программного обеспечения для тестирования GPS: https://download.csdn.net/download/xipengbozai/19774233

Инструмент преобразования данных GPS: https://download.csdn.net/download/xipengbozai/19774213

 

Прикрепленное изображение (скриншот программы для создания скриншотов цифровой земли)

Supongo que te gusta

Origin blog.csdn.net/xipengbozai/article/details/118103147
Recomendado
Clasificación