跳转至

GNBIN 协议与联调

GNBIN协议

GNBIN协议概述

HiDiTing GNSS使用自定义的GNBIN(GNSS BINary)标准接口协议与外部主机进行数据通信,数据通过UART接口传输。

GNBIN协议框架

GNBIN协议框架分为两层,外层提供了分包机制,对应UART直接发送的数据结构,内层直接对应GNSS业务数据结构。

对于直接通过UART从芯片获取原始数据的用户,需要先按外层协议格式解析出GNSS业务数据,然后再按内层协议格式对具体的GNSS数据进行解析。反之,通过UART向芯片发送数据时,则需要先按内层协议格式组装出GNSS业务数据,再按外层协议格式组装成包数据,最后通过UART发送给芯片。

对于通过HiDiTing GNSS驱动接口获取和发送数据的用户,驱动接口已经实现了外层协议的适配,用户可以忽略外层协议,直接按内层协议解析或者组装GNSS业务数据。

表 1 GNBIN协议框架

消息头

消息类型

消息长度

消息载荷

消息尾

外层协议头

外层协议类型

外层数据长度

内层协议格式数据

外层协议尾

GNBIN所有多字符数据类型,均按小端格式(Little Endian)排列。协议中所用到的基本数据类型描述如表2

表 2 GNBIN基本数据类型

缩写

数据类型

字节数

备注

I1

int8

1

-

U1

uint8

1

-

I2

int16

2

-

U2

uint16

2

-

I4

int32

4

-

U4

uint32

4

-

I64

int64

8

-

U64

uint64

8

-

R4

float32

4

IEEE-754浮点数标准。

R8

float64

8

IEEE-754浮点数标准。

外层协议框架

外层协议消息包结构如表1所示。

表 1 GNBIN外层消息框架

消息头

消息号[1]

消息包长[2]

消息载荷

消息尾

1Byte

1Byte

2Byte

NByte

1Byte

0x7E

U1

U2

-

0x7E

说明:

  • [1]:消息号表示消息载荷对应的编号,包括:0x00(平台消息,可忽略)、0x02(业务消息首包)、0x03(业务消息中包)、0x04(业务消息尾包)。HiDiTing GNSS每包业务消息最大10KB,当实际业务消息小于4KB时,只会发送0x04数据类型,用户获取消息载荷后,直接按内层协议框架处理即可。当实际业务消息大于4KB时,会被拆包处理,最多被拆成3包,用户需要将0x02(如有)、0x03(如有)、0x04的消息载荷按先后顺序拼接在一起,然后按内层协议框架处理。用户向芯片下发超过4095Byte的内层协议数据时,也需要按外层协议进行分包处理后,再经过UART下发给芯片。
  • [2]:外层协议的消息包长包括外层协议框架长度和消息载荷长度,即消息长度=1+1+2+N+1。

内层协议框架

内层协议消息包结构,前8个字节统一称为消息头数据。

表 1 GNBIN内层协议框架

消息类

校验和

消息序列号

载荷长度

有效载荷

2Byte

2Byte

2Byte

2Byte

NByte

U2

U2

U2

U2

-

校验和采用按字节累加求和的方式计算,仅有效载荷字节参考累加计算,参考算法如下:

uint16_t checksum = 0;
uint16_t i = 0;
while (i++ < len) {
    checksum += *buff;
    buff++;
}
return checksum;

其中len为有效载荷buff对应的长度。

说明: 消息序列号为保留字段,可默认填充0值。

GNBIN业务消息类型

GNBIN支持的业务消息类(内层协议框架)分为下发消息(向芯片下发)和上报消息(从芯片获取),下发消息用于控制芯片的行为。

支持的下发消息类如表1所示。

表 1 GNBIN下行消息类型

消息类

消息名

载荷长度(Byte)

说明

0x0001

CTR-START

12

启动GNSS定位。

0x0002

CTR-STOP

0

停止GNSS定位。

0x0003

CTR-CFG

变长

配置GNSS参数,需在启动GNSS前发送。

0x0005

CTR-QRY

1

配置查询命令。

0x0101

CTR-HIS

变长

配置历史信息,辅助温启动。

0x0102

CTR-HIS-REQ

0

单次请求历史信息,历史信息会上报1次。

0x0201

CTR-PX-TIME

14

注入PGNSS时间,要求在位置星历前注入。

0x0202

CTR-PX-LOC

21

注入PGNSS位置。

0x0203

CTR-PX-EPHG

变长

注入PGNSS-GPS星历。

0x0204

CTR-PX-EPHA

变长

注入PGNSS-BDS/GLO/GAL星历。

0x0205

CTR-PX-UTCG

14

注入PGNSS-GPS UTC信息。

0x0206

CTR-PX-RTIG

变长

注入PGNSS-GPS RTI信息。

0x0207

CTR-PX-RTIA

变长

注入PGNSS-BDS/GLO/GAL RTI信息。

0x0208

CTR-PX-IONG

8

注入PGNSS-GPS ION信息。

0x0209

CTR-PX-AUXA

变长

注入PGNSS-BDS/GLO/GAL AUX信息。

0x0301

CTR-AX-TIME

变长

注入AGNSS时间,要求在位置星历前注入。

0x0302

CTR-AX-LOC

43

注入AGNSS位置。

0x0303

CTR-AX-EPHG

变长

注入AGNSS-GPS星历。

0x0304

CTR-AX-IONG

8

注入AGNSS-GPS ION信息。

0x0305

CTR-AX-UTCG

20

注入AGNSS-GPS UTC信息。

0x0306

CTR-AX-RTIG

变长

注入AGNSS-GPS RTI信息。

0x0308

CTR-AX-IONA

9

注入AGNSS-BDS ION信息。

0x0309

CTR-AX-EPHA

变长

注入AGNSS-BDS/GLO/GAL星历。

0x030a

CTR-AX-RTIA

变长

注入AGNSS-BDS/GLO/GAL RTI信息。

0x030c

CTR-AX-AUXA

变长

注入AGNSS-GLO AUX信息。

0x0401

CTR-PDR-LOC

82

注入PDR推算出的参考位置。

0x0403

CTR-DEL-AID

2

配置删除芯片内辅助数据。

0x0404

CTR-AST-TIME

10

注入UTC时间,要求在所有辅助数据前注入。

支持的上报消息类列表如表2所示。

表 2 GNBIN上行消息类型

消息类

消息名

载荷长度

说明

0x1002

RPT-NAV

82

周期上报导航定位信息。

0x1005

RPT-HIS

变长

单次上报定位历史信息。

0x1006

RPT-QRY

变长

单次上报查询信息。

0x100b

RPT-PDR-CMN

21

周期上报PDR融合所需的时间同步信息。

0x100c

RPT-PDR-MEA

2+8×n

周期上报PDR融合所需的观测值信息。n为观测值数量。

0x100d

RPT-PDR-LSQ

60

周期上报PDR融合所需的定位结果信息。

0xff01

RPT-ACK

4

单次上报回执信息,响应下发类消息。

GNBIN业务控制类消息

说明: 下文消息示例表中,加粗的5个字节(消息头4字节+消息尾1字节),为GNBIN外层协议框架,当使用串口工具直接对通控制GNSS芯片时,需要发送此类型指令;在主控芯片上使用API接口控制GNSS芯片时,无需添加这5个字节。

CTR-START

表 1 CTR-START消息格式

消息类

CTR-START

说明

启动GNSS芯片定位功能。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0001

U2

0x0000

12

表2所示。

表 2 CTR-START有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U4

-

period

定位周期,默认为1。

4

U2

-

count

定位次数,固定为1。

6

U2

-

timeout

超时设置,默认为1。

8

U4

-

resv

保留字段,默认为0。

表 3 CTR-START常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0001 CTR-START

7e 04 19 00 01 00 03 00 00 00 0c 00 01 00 00 00 01 00 01 00 00 00 00 00 7e

启动GNSS定位。

CTR-STOP

表 1 CTR-STOP消息格式

消息类

CTR-STOP

说明

停止GNSS芯片定位功能。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0002

U2

0x0000

0

表2所示。

表 2 CTR-STOP有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

-

-

-

-

-

表 3 CTR-STOP常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0002 CTR-STOP

7e 04 0d 00 02 00 00 00 00 00 00 00 7e

停止GNSS定位。

CTR-QRY

表 1 CTR-QRY消息格式

消息类

CTR-QRY

说明

配置单次查询信息。

类型

查询

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0005

U2

0x0000

1

表2所示。

表 2 CTR-QRY有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U1

-

type

查询信息类别:

  • 0:查询版本号(上报字符串)。
  • 1:查询PPS配置。
  • 2:查询GNSS星座配置。
  • 3:查询NMEA输出配置。
  • 4:查询TSENSOR温度信息。

表 3 CTR-QRY常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x00 VERSION

7e 04 0e 00 05 00 00 00 00 00 01 00 00 7e

查询固件版本号。

0x01 PPS-STATUS

7e 04 0e 00 05 00 01 00 00 00 01 00 01 7e

查询PPS状态。

0x02 GNSS-MODE

7e 04 0e 00 05 00 02 00 00 00 01 00 02 7e

查询GNSS星座模式。

0x03 NMEA-MODE

7e 04 0e 00 05 00 03 00 00 00 01 00 03 7e

查询NMEA配置模式。

0x04 TSENSOR

7e 04 0e 00 05 00 04 00 00 00 01 00 04 7e

查询TSENSOR温度。

CTR-CFG

CTR-CFG是配置消息类,包含多个消息子类,HiDiTing GNSS支持的CFG配置消息子类列表如表1所示。

表 1 CTR-CFG消息子类列表

消息子类ID

消息子类名

说明

0x0000

CFG-FIX-GNSS

配置参与定位的星座。

0x0001

CFG-START-MODE

配置冷热启动模式。

0x0002

CFG-EXTEND

配置项拓展接口。

0x0003

CFG-NMEA

配置输出的NMEA语句类型。

0x0004

CFG-ACQ-LPW

配置捕获低功耗。

0x0005

CFG-TRK-LPW

配置跟踪低功耗。

0x0006

CFG-ANTIJAM

配置抗干扰。

0x0007

CFG-UPDATE-RATE

配置定位频率。

0x0008

CFG-PPS

配置PPS功能。

0x000a

CFG-FIX-PRIO

配置定位优先级模式。

0x1009

CFG_SYNC_INFO

配置开始时间同步。

0x100e

CFG-PDR-RPT

配置PDR上报信息。

0x1012

CFG-ALT-CSTR

配置高动态模式。

HiDiTing GNSS支持的详细配置消息类型如下。

CFG-FIX-GNSS

表 2 CFG-FIX-GNSS消息格式

消息类

CTR-CFG

消息子类

CFG-FIX-GNSS

说明

配置需要使能的GNSS星座。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

8

表3所示。

表 3 CFG-FIX-GNSS有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0000。

2

U2

-

len

消息子类载荷字节:4。

4

U4

-

fixmode

星座掩码:默认0x001f

  • 0x0001:GPS
  • 0x0002:GLONASS
  • 0x0004:BDS
  • 0x0008:GAL
  • 0x0010:QZSS

表 4 CFG-FIX-GNSS常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0000 CFG-FIX-GNSS

7e 04 15 00 03 00 05 00 00 00 08 00 00 00 04 00 01 00 00 00 7e

配置使能的GNSS星座:GPS。

7e 04 15 00 03 00 06 00 00 00 08 00 00 00 04 00 02 00 00 00 7e

配置使能的GNSS星座:GLO。

7e 04 15 00 03 00 08 00 00 00 08 00 00 00 04 00 04 00 00 00 7e

配置使能的GNSS星座:BDS。

7e 04 15 00 03 00 0c 00 00 00 08 00 00 00 04 00 08 00 00 00 7e

配置使能的GNSS星座:GAL。

7e 04 15 00 03 00 23 00 00 00 08 00 00 00 04 00 1f 00 00 00 7e

配置使能的GNSS星座:QZSS/GAL/BDS/GLO/GPS(芯片默认)。

CFG-START-MODE

表 5 CFG-START-MODE消息格式

消息类

CTR-CFG

消息子类

CFG-START-MODE

说明

配置冷热启动模式。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

5

表6所示。

表 6 CFG-START-MODE有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0001。

2

U2

-

len

消息子类载荷字节:1。

4

U1

-

mode

启动模式:

  • 0:自动。
  • 1:冷启。

表 7 CFG-START-MODE常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0001 CFG-START-MODE

7e 04 12 00 03 00 02 00 00 00 05 00 01 00 01 00 00 7e

配置启动模式:自动模式,有历史信息时执行热启动(芯片默认)。

7e 04 12 00 03 00 03 00 00 00 05 00 01 00 01 00 01 7e

配置启动模式:冷启动模式。

CFG-EXTEND

表 8 CFG-EXTEND消息格式

消息类

CTR-CFG

消息子类

CFG-EXTEND

说明

配置NMEA输出语句类型。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

32

表9所示。

表 9 CFG-EXTEND有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0002。

2

U2

-

len

消息子类载荷字节:28。

4

U1

s

tcxoHoldTime

配置STOP后TCXO维持时长,有效范围[5,255]。

5

U1

-

qopThreshold

配置质量控制门限,有效范围[3,200],算法默认为20,实际定位评估指标QOP超门限时,定位结果被拦截。

6

U1

-

interceptStrategy

配置初始定位结果的拦截策略,掩码形式,默认0x00。

0x01:reserved

0x02:reserved

0x04:reserved

0x08:reserved

0x10:reserved

0x20:reserved

0x40:正常定位后选择性拦截

0x80:正常定位后不拦截

7

U1

-

reserve3

-

8

U2

-

reserve4

-

10

U2

-

reserve5

-

12

U2

-

reserve6

-

14

U2

-

reserve7

-

16

U4

-

reserve8

-

20

U4

-

reserve9

-

24

U4

-

reserve10

-

28

U4

-

reserve11

-

表 10 CFG-EXTEND常用消息示例

消息子类 / 消息子类名

消息内容(HEX)

消息描述

0x0002 CFG-EXTEND

7e 04 2d 00 03 00 23 00 00 00 20 00 02 00 1c 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e

配置STOP后,TCXO维持5s。

7e 04 2d 00 03 00 e6 00 00 00 20 00 02 00 1c 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e

配置QOP拦截门限为200。

CFG-NMEA

表 11 CFG-NMEA消息格式

消息类

CTR-CFG

消息子类

CFG-NMEA

说明

配置NMEA输出语句类型。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

6

表12所示。

表 12 CFG-NMEA有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0003。

2

U2

-

len

消息子类载荷字节:2。

4

U2

-

mask

使能掩码:默认0x00ff

  • 0x0001:GGA
  • 0x0002:GLL
  • 0x0004:GSA
  • 0x0008:GSV
  • 0x0010:RMC
  • 0x0020:VTG
  • 0x0040:ZDA
  • 0x0080:PN(自定义消息)

表 13 CFG-NMEA常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0003 CFG-NMEA

7e 04 13 00 03 00 16 00 00 00 06 00 03 00 02 00 11 00 7e

配置上报NMEA类型:RMC/GGA。

7e 04 13 00 03 00 84 00 00 00 06 00 03 00 02 00 7f 00 7e

配置上报NMEA类型:ZDA/VTG/RMC/GSV/GSA/GLL/GGA。

7e 04 13 00 03 00 04 01 00 00 06 00 03 00 02 00 ff 00 7e

配置上报NMEA类型:PNT/ZDA/VTG/RMC/GSV/GSA/GLL/GGA(芯片默认)。

CFG-ACQ-LPW

表 14 CFG-ACQ-LPW消息格式

消息类

CTR-CFG

消息子类

CFG-ACQ-LPW

说明

配置捕获低功耗特性。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

6

表15所示。

表 15 CFG-ACQ-LPW有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0004

2

U2

-

len

消息子类载荷字节:2

4

U1

-

enable

使能开关:默认1

  • 0:关闭。
  • 1:开启。

5

U1

-

reserved

使能低功耗时,此字段固定填2。

表 16 CFG-ACQ-LPW常用消息示例

消息子类 / 消息子类名

消息内容(HEX)

消息描述

0x0004 CFG-ACQ-LPW

7e 04 13 00 03 00 06 00 00 00 06 00 04 00 02 00 00 00 7e

配置禁用ACQ低功耗。

7e 04 13 00 03 00 09 00 00 00 06 00 04 00 02 00 01 02 7e

配置使能ACQ低功耗(芯片默认)。

CFG-TRK-LPW

表 17 CFG-TRK-LPW消息格式

消息类

CTR-CFG

消息子类

CFG-TRK-LPW

说明

配置跟踪低功耗特性。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

6

表18所示。

表 18 CFG-TRK-LPW有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0005。

2

U2

-

len

消息子类载荷字节:2。

4

U1

-

enable

使能开关:默认1。

  • 0:关闭。
  • 1:开启。

5

U1

-

reserved

使能低功耗时,此字段固定填2。

表 19 CFG-TRK-LPW常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0005 CFG-TRK-LPW

7e 04 13 00 03 00 07 00 00 00 06 00 05 00 02 00 00 00 7e

配置禁用TRK低功耗。

7e 04 13 00 03 00 0a 00 00 00 06 00 05 00 02 00 01 02 7e

配置使能TRK低功耗(芯片默认)。

CFG-ANTIJAM

表 20 CFG-ANTIJAM消息格式

消息类

CTR-CFG

消息子类

CFG-ANTIJAM

说明

配置跟踪抗干扰特性。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

8

表21所示。

表 21 CFG-ANTIJAM有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0006。

2

U2

-

len

消息子类载荷字节:4。

4

U1

-

enable

使能开关:默认1。

  • 0:关闭。
  • 1:开启。

5

U1

-

periodWork

周期性扫描:默认1。

  • 0:关闭。
  • 1:开启。

6

U1

-

weakScan

弱细扫:默认0。

  • 0:关闭。
  • 1:开启。

7

U1

-

reserved

保留字段,配置0。

表 22 CFG-ANTIJAM常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0006 CFG-ANTIJAM

7e 04 15 00 03 00 0a 00 00 00 08 00 06 00 04 00 00 00 00 00 7e

配置禁用抗干扰特性。

7e 04 15 00 03 00 0b 00 00 00 08 00 06 00 04 00 01 00 00 00 7e

配置使能抗干扰特性(芯片默认)。

CFG-UPDATE-RATE

表 23 CFG-UPDATE-RATE消息格式

消息类

CTR-CFG

消息子类

CFG-UPDATE-RATE

说明

配置定位频率(1Hz-5Hz-10Hz)。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

5

表24所示。

表 24 CFG-UPDATE-RATE有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x0007。

2

U2

-

len

消息子类载荷字节:1。

4

U1

-

rate

定位频率:默认0。

  • 0:1Hz。
  • 1:5Hz。
  • 2:10Hz。

表 25 CFG-UPDATE-RATE常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0007 CFG-UPDATE-RATE

7e 04 12 00 03 00 08 00 00 00 05 00 07 00 01 00 00 7e

配置定位频率:1Hz。

7e 04 12 00 03 00 09 00 00 00 05 00 07 00 01 00 01 7e

配置定位频率:5Hz。

7e 04 12 00 03 00 0a 00 00 00 05 00 07 00 01 00 02 7e

配置定位频率:10Hz。

CFG-PPS

表 26 CFG-PPS消息格式

消息类

CTR-CFG

消息子类

CFG-PPS

说明

配置PPS特性,仅支持1Hz定位频率下使能PPS。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

8

表27所示。

表 27 CFG-PPS消息格式有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

描述

0

U2

-

type

消息子类ID:0x0008。

2

U2

-

len

消息子类载荷字节:4。

4

U1

-

enable

使能开关:默认0。

  • 0:关闭。
  • 1:开启。

5

U1

ms

width

PPS脉冲上高电平维持时间:默认20ms,最大值255ms。

6

U1

-

reserved1

此字段固定填0。

7

U1

-

reserved2

此字段固定填0。

表 28 CFG-PPS常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x0008 CFG-PPS

7e 04 15 00 03 00 0c 00 00 00 08 00 08 00 04 00 00 00 00 00 7e

配置禁用1PPS(芯片默认)。

7e 04 15 00 03 00 0d 00 00 00 08 00 08 00 04 00 01 00 00 00 7e

配置使能1PPS。

CFG-FIX-PRIO

表 29 CFG-FIX-PRIO消息格式

消息类

CTR-CFG

消息子类

CFG-FIX-PRIO

说明

配置定位优先级模式。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

5

表30所示。

表 30 CFG-FIX-PRIO有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x000a

2

U2

-

len

消息子类载荷字节:1

4

U1

-

mode

优先级模式:默认0

  • 0:自动模式。
  • 1:TTFF优先。
  • 2:定位精度优先。

表 31 CFG-FIX-PRIO常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x000a CFG-FIX-PRIO

7e 04 12 00 03 00 0b 00 00 00 05 00 0a 00 01 00 00 7e

配置定位优先级:自动。(芯片默认)

7e 04 12 00 03 00 0c 00 00 00 05 00 0a 00 01 00 01 7e

配置定位优先级:TTFF优先。

7e 04 12 00 03 00 0d 00 00 00 05 00 0a 00 01 00 02 7e

配置定位优先级:定位精度优先。

CFG_SYNC_INFO

表 32 CFG_SYNC_INFO消息格式

消息类

CTR-CFG

消息子类

CFG_SYNC_INFO

说明

配置开始时间同步。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

5

表33所示。

表 33 CFG_SYNC_INFO有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x1009。

2

U2

-

reserved

保留字段

4

U1

-

isCalib

使能标志位。

  • 0:不使能。
  • 1:使能。

表 34 CFG_SYNC_INFO常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x1009 CFG_SYNC_INFO

7e 04 12 00 03 00 1b 00 00 00 05 00 09 10 01 00 01 7e

配置开始时间同步,用于PDR融合定位。

CFG-PDR-RPT

表 35 CFG-PDR-RPT消息格式

消息类

CTR-CFG

消息子类

CFG-PDR-RPT

说明

配置芯片上报PDR的信息。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

5

表36所示。

表 36 CFG-PDR-RPT有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x100e。

2

U2

-

len

消息子类载荷字节:1。

4

U1

-

mask

使能掩码:默认0x00。

  • 0x01:COMMON信息。
  • 0x02:LSQ定位结果。
  • 0x04:观测值信息。

表 37 CFG_PDR_RPT常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x100e CFG_PDR_RPT

7e 04 12 00 03 00 1f 00 00 00 05 00 0e 10 01 00 00 7e

配置上报PDR消息:NONE(芯片默认)。

7e 04 12 00 03 00 26 00 00 00 05 00 0e 10 01 00 07 7e

配置上报PDR消息:观测值/LSQ结果/COMMON信息。

CFG-ALT-CSTR

表 38 CFG-ALT-CSTR消息格式

消息类

CTR-CFG

消息子类

CFG-ALT-CSTR

说明

配置高动态模式。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0003

U2

0x0000

5

表39所示。

表 39 CFG-ALT-CSTR有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

type

消息子类ID:0x1012。

2

U2

-

len

消息子类载荷字节:1。

4

U1

-

mode

高低动态模式:默认1。
  • 0:配置高动态模式。
  • 1:配置低动态模式。

表 40 CFG-ALT-CSTR常用消息示例

消息子类/消息子类名

消息内容(HEX)

消息描述

0x1012 CFG-ALT-CSTR

7e 04 12 00 03 00 24 00 00 00 05 00 12 10 01 00 01 7e

配置低动态模式(芯片默认)。

7e 04 12 00 03 00 23 00 00 00 05 00 12 10 01 00 00 7e

配置高动态模式。

CTR-HIS-REQ

表 1 CTR-HIS-REQ消息格式

消息类

CTR-HIS-REQ

说明

单次请求历史信息数据。

类型

单次请求

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0102

U2

0x0001

0

表2所示。

表 2 CTR-HIS-REQ有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

-

-

-

-

-

表 3 CTR-HIS-REQ常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0102 CTR-HIS-REQ

7e 04 0d 00 02 01 00 00 01 00 00 00 7e

单次请求历史信息数据,用于温启动。

CTR-PX-TIME

表 1 CTR-PX-TIME消息格式

消息类

CTR-PX-TIME

说明

PGNSS注入参考时间功能,要求其他辅助数据前注入。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x0201

U2

0x0000

14

表2所示。

表 2 CTR-PX-TIME有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

weekNumber

GPS时间系统,周数;每过一周,周数+1,数值范围0~65535,持续累加计数不清零。

2

U4

s

tow

GPS时间系统,周内秒。

6

U4

-

timeUnc

置信度,数值范围0~100,数值越高表示精度越高。

10

U4

-

source

时间源,默认填1:

  • 0:无有效时间源,时间无效。
  • 1:网络时间。
  • 2:PVT时间。

表 3 CTR-PX-TIME常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0201 CTR-PX-TIME

7e 04 1b 00 01 02 11 02 00 00 0e 00 f6 00 21 a1 05 00 53 00 00 00 01 00 00 00 7e

注入PGNSS参考时间,北京时间2023-12-28 14:28:49.000。

CTR-AX-TIME

表 1 CTR-AX-TIME消息格式

消息类

CTR-AX-TIME

说明

AGNSS注入参考时间功能,要求其他辅助数据前注入。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷

0x0301

U2

0x0000

19

表2所示。

表 2 CTR-AX-TIME有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U1

-

weekRound

GPS时间系统,周计数;从0开始,GPS周数满一个周期,周计数+1。

1

U2

-

weekNumber

GPS时间系统,周数;每过一周,周数+1,数值范围0~1023,满一个周期后周数清零。

3

U4

ms

tow

GPS时间系统,周内秒。

7

U4

-

towUnit

固定填1。

11

U4

-

timeUnc

置信度,数值范围0~100,数值越高表示精度越高。

15

U4

-

resv

固定填0。

表 3 CTR-AX-TIME常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0301 CTR-AX-TIME

7e 04 20 00 01 03 75 03 00 00 13 00 00 f6 00 d8 41 fd 15 01 00 00 00 53 00 00 00 00 00 00 00 7e

注入AGNSS参考时间,北京时间2023-12-28 14:28:39.000。

CTR-AST-TIME

表 1 CTR-AST-TIME消息格式

消息类

CTR-AST-TIME

说明

注入UTC时间,要求在所有辅助数据前注入。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x0404

U2

0x0000

10

表2所示。

表 2 CTR-AST-TIME有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

year

当前年份,如2023。

2

U1

-

month

当前月份,数据范围1~12。

3

U1

-

day

当前日期,数据范围1~31。

4

U1

-

hour

当前小时数,数据范围0~23。

5

U1

-

minute

当前分钟数,数据范围0~59。

6

U1

s

second

当前秒数,数据范围0~59。

7

U2

ms

ms

当前秒内的毫秒数,数据范围0~999。

9

U1

-

valid

数据有效性:

  • 0:无效。
  • 1:有效。

表 3 CTR-AST-TIME常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0404 CTR-AST-TIME

7e 04 17 00 04 04 bc 01 00 00 0a 00 e7 07 0c 1c 06 1c 15 6c 02 01 7e

注入UTC时间,北京时间2023-12-28 14:28:21.620,换算成UTC时间2023-12-28 6:28:21.620。

CTR-AX-LOC

表 1 CTR-AX-LOC消息格式

消息类

CTR-AX-LOC

说明

注入AGNSS位置。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x0302

U2

0x0001

43

表2所示。

表 2 CTR-AX-LOC有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U4

(2-24/180)deg

latitude

接收机纬度。

4

I4

(2-23/180)deg

longitude

接收机经度,通过正负号区分东西经:

  • 正值代表东经。
  • 负值代表西经。

8

I4

-

altInfoValid

海拔信息有效标志:

  • 0代表无效。
  • 1代表有效。

12

I2

m

altitude

海拔高度。

14

U1

-

latitudeSign

纬度符号:

  • 0代表北纬。
  • 1代表南纬。

15

I4

-

reserved1

保留配置,配置0

19

U1

-

altSign

海拔高度符号:

  • 0代表正号。
  • 1代表负号。

20

U1

-

reserved2

保留配置,配置0。

21

U1

-

reserved3

保留配置,配置0。

22

U1

-

reserved4

保留配置,配置0。

23

I4

-

reserved5

保留配置,配置0。

27

U1

-

reserved6

保留配置,配置0。

28

U1

-

reserved7

保留配置,配置0。

29

U1

-

reserved8

保留配置,配置0。

30

U1

-

reserved9

保留配置,配置0。

31

U2

-

reserved10

保留配置,配置0。

33

U2

-

reserved11

保留配置,配置0。

35

U2

-

reserved12

保留配置,配置0。

37

U2

-

reserved13

保留配置,配置0。

39

U2

-

reserved14

保留配置,配置0。

41

U2

-

reserved15

保留配置,配置0。

表 3 CTR-AX-LOC常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0302 CTR-AX-LOC

7e 04 38 00 02 03 d2 01 00 00 2b 00 f5 49 1f 00 11 11 51 00 01 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e

注入接收机位置(北纬22°,东经114°,海拔高度0m)。

CTR-DEL-AID

表 1 CTR-DEL-AID消息格式

消息类

CTR-DEL-AID

说明

配置删除芯片内辅助数据。

类型

设置

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x0403

U2

0x0001

2

表2所示。

表 2 CTR-DEL-AID有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

delAid

删除辅助信息掩码:

  • 0x0001:删除星历信息。
  • 0x0002:删除历书信息。
  • 0x0004:删除位置信息。
  • 0x0008:删除时间信息。
  • 0xFFFF:删除所有辅助信息。

表 3 CTR-DEL-AID常用消息示例

消息类/消息类名

消息内容(HEX)

消息描述

0x0403 CTR-DEL-AID

7e 04 0f 00 03 04 fe 01 00 00 02 00 ff ff 7e

删除芯片内所有辅助信息。

GNBIN业务上报类消息

RPT-QRY

RPT-QRY消息用于上报CTR-QRY配置单次查询结果,对应CTR-QRY的消息子类,RPT-QRY消息也支持相应的子类。

QRY-PPS-CFG

表 1 QRY-PPS-CFG消息格式

消息类

RPT-QRY

消息子类

QRY-PPS-CFG

说明

上报PPS配置信息。

类型

查询上报

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x1006

U2

0x0000

4

表2所示。

表 2 QRY-PPS-CFG有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U1

-

type

消息子类ID:0x01。

1

U2

-

len

消息子类载荷字节:1。

3

U1

-

enable

使能开关:默认0。

  • 0:关闭。
  • 1:开启。

QRY-GNSS-CFG

表 3 QRY-GNSS-CFG消息格式

消息类

RPT-QRY

消息子类

QRY-GNSS-CFG

说明

上报GNSS星座配置信息。

类型

查询上报

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x1006

U2

0x0000

7

表4所示。

表 4 QRY-GNSS-CFG有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U1

-

type

消息子类ID:0x02。

1

U2

-

len

消息子类载荷字节:4。

3

U4

-

fixmode

星座掩码:默认0x001f

  • 0x0001:GPS
  • 0x0002:GLONASS
  • 0x0004:BDS
  • 0x0008:GAL
  • 0x0010:QZSS

QRY-NMEA-CFG

表 5 QRY-NMEA-CFG消息格式

消息类

RPT-QRY

消息子类

QRY-NMEA-CFG

说明

上报NMEA输出配置信息。

类型

查询上报

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x1006

U2

0x0000

5

表6所示。

表 6 QRY-NMEA-CFG有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U1

-

type

消息子类ID:0x03。

1

U2

-

len

消息子类载荷字节:2。

3

U2

-

mask

使能掩码:默认0x0011。

0x0001:GGA

0x0002:GLL

0x0004:GSA

0x0008:GSV

0x0010:RMC

0x0020:VTG

0x0040:ZDA

0x0080:PN(自定义消息)

QRY-TSENSOR-INFO

表 7 QRY-TSENSOR-INFO消息格式

消息类

RPT-QRY

消息子类

QRY-TSENSOR-INFO

说明

上报Tsensor温度传感器信息

类型

查询上报

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x1006

U2

0x0000

5

表8所示。

表 8 QRY-TSENSOR-INFO有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U1

-

type

消息子类ID:0x04。

1

U2

-

len

消息子类载荷字节:2。

3

I2

degree Celsius

temper

Tsensor传感器温度。

RPT-ACK

表 1 RPT-ACK消息格式

消息类

RPT-ACK

说明

回复主机下发的配置信息。

类型

配置回执

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0xFF01

U2

0x0000

4

表2所示。

表 2 RPT-ACK有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

cmd

主机下发的控制类消息ID:CTR-XXX。

2

U2

-

status

芯片对该消息的处理状态:

  • 0x0000:配置消息正常。
  • 0x0001:配置消息长度无效。
  • 0x0002:配置消息参数无效。
  • 0x0003:配置消息类型无效。
  • 0xFFFF:内存错误,处理异常。

RPT-NAV

表 1 RPT-NAV消息格式

消息类

RPT-NAV

说明

上报导航定位信息。

类型

周期性上报

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x1002

U2

0x0000

82

表2所示。

表 2 RPT-NAV有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

U2

-

flag

对应下述各字段有效性:

  • 0:invalid。
  • 1:valid。

2

U8

ms

unixTime

1970-01-01 00:00:00 开始的UTC连续时间计数。

10

I8

2-24deg

latitude

接收机纬度。

18

I8

2-24deg

longitude

接收机经度。

26

I8

2-20m

clockBias

接收机钟差。

34

I8

2-20Hz

clockDrift

接收机钟漂(相对于1575.42M)。

42

I8

2-20m/s

velocityE

接收机东方向速率。

50

I8

2-20m/s

velocityN

接收机北方向速率。

58

I8

2-20m/s

velocityU

接收机天方向速率。

66

R4

m

altitude

接收机高度。

70

R4

rad

heading

接收机速度真北方向。

74

R4

m

positionAcc

接收机位置精度。

78

R4

m/s

velocityAcc

接收机速度精度。

RPT-PDR-CMN

表 1 RPT-PDR-CMN消息格式

消息类

RPT-PDR-CMN

说明

上报PDR消息:COMMON信息

类型

周期性上报

消息结构

消息类

校验和

消息序号

载荷长度(Byte)

有效载荷。

0x100B

U2

0x0000

21

表2所示。

表 2 RPT-PDR-CMN有效载荷内容

字节偏移

数据类型

比例因子/单位

字段名

说明

0

I4

ms

deltaTime

观测量时间与下发时间同步命令时刻的时间差。

4

U1

-

context

场景识别:

  • 0:未知场景。
  • 1:隧道场景。
  • 2:遮挡场景。
  • 3:CBD场景。
  • 4:开阔场景。
  • 5:纯室内场景。
  • 6:半边天空场景。
  • 7:室内窗边场景。

5

U1

-

isStatic

是否静态标识:

  • 0:非静态。
  • 1:静态。

6

U1

-

pvtState

PVT状态:

  • 0:最小二乘。
  • 1:卡尔曼滤波。

7

U2

-

inuseNum

参与定位卫星个数。

9

R4

-

qop

定位精度评估。

13

R4

-

hdop

水平方向定位精度因子。

17

R4

m

ems

伪距残差均方根。

GNBIN业务消息交互

当接收机接收到一个控制类消息时,会根据当前消息处理状态,回复一个RPT-ACK消息,在接收机回复RPT-ACK之前,用户不得再发送另一条控制类消息,否则会导致接收机对下发的消息处理失败。

MCU(主机)与GNSS(芯片)的消息交互机制如图1所示。

图 1 消息交互机制

消息交互机制

  1. 可选,主机向芯片下发配置项/注入辅助信息/删除历史信息。
  2. 必须,主机向芯片下发启动GNSS的命令。
  3. 可选,主机向芯片注入辅助信息,查询信息。
  4. 可选,芯片根据配置情况,向主机上报信息。
  5. 必选,主机向芯片下发停止GNSS的命令。

联调与排障

现象 检查方法
未收到 NMEA 数据 确认已通过 uapi_gnss_register_callback 注册 GNSS_CALLBACK_NMEA,并已完成 GNSS 启动。检查语句起始符、校验和与 <CR><LF>
二进制数据无法解析 SDK 驱动回调交付的是 GNBIN 内层数据;UART 直连数据需要先处理外层 0x7E 帧和分包,再解析内层 8 字节消息头。
控制消息无响应或返回错误 核对消息类、载荷长度、载荷校验和和小端字节序;等待当前控制类消息的 RPT-ACK 后再下发下一条控制类消息。具体状态码见 RPT-ACK
查询结果未到达 CTR-QRY 的结果通过 RPT-QRY 上报,检查二进制回调和查询子类 ID 是否匹配。
只收到一个业务分包 UART 直连时按 0x02、0x03、0x04 的顺序拼接消息载荷后再解析内层协议;使用 SDK 驱动时不要自行重复分包。

联调前建议分别验证 NMEA 文本输出、GNBIN CTR-START/RPT-ACK 流程及查询上报流程,再叠加辅助数据注入或 PDR 业务。硬件、串口和定位状态的检查流程见 GNSS集成开发指南

注意事项

  • GNBIN 的多字节数据按小端格式排列;内层校验和只对有效载荷做按字节累加,NMEA 校验和按 $* 之间的字节异或计算。
  • 使用公开驱动接口时,向 uapi_gnss_config 传入内层 gnss_message_t,不要把外层 0x7E 封装再次传入。
  • 对于直接 UART 接入,单个业务消息的分包、帧长和消息尾均必须符合 GNBIN 外层协议;不能仅复制某个示例的十六进制字节后任意替换字段。
  • 当前 NMEA 标准消息以本指南的“NMEA消息类型列表”为准:GGA、RMC、GSV、GSA、VTG、ZDA、GLL;自定义消息为 TH000、TH001、TH002。
  • 需在定位启动前执行的配置、时间或辅助数据注入应遵守各消息章节的时序要求。涉及 PGNSS、AGNSS 或 RTK 的业务还应参见 XGNSS开发指南
  • 集成、烧录、运行和日志确认应使用 GNSS集成开发指南 中的流程。