Skip to content

HiPNUC GNSS/INS 组合导航指令与编程手册 ​

Rev 2.0

适用于 HiPNUC GNSS/INS 组合导航产品

版本与适用范围 ​

本手册主要面向当前在售的 HiPNUC HIxxN 系列 GNSS/INS 组合导航产品。不同型号的物理接口和可选功能可能不同,请以具体产品规格书和交付配置为准。旧 HI32 产品的指令、寄存器和部分数据字段不能无条件套用本手册,应以适用的交付资料为准。

首次接入或排查问题时,可通过 LOG VERSION 查询产品名称和固件版本。

接口数据与协议适用说明
串口(RS-232 或 RS-422)HI81、GGA、RMC、RTCM3、ASCII 配置命令物理电平和端口数量以具体型号为准
以太网HI81、GGA、RMC、ASCII 配置命令仅适用于配有以太网接口的型号
CANSAE J1939CAN 波特率和节点地址可配置
PPS/SYNCPPS 输出引脚、电平和时序指标以具体型号规格书为准

快速接入 ​

连接 COM1 ​

  1. 按产品规格书确认供电、COM1 电气接口、接线和天线连接。
  2. 将接收端设置为 115200 bps、8N1,即 8 个数据位、无校验、1 个停止位。
  3. 上电后直接接收 COM1 数据。产品默认输出 HI81 二进制数据,周期为 0.01 s(100 Hz)。

验证 HI81 数据 ​

接收端应按帧头 0x5A 0xA5 搜索数据帧,再根据数据域长度取出完整帧并校验 CRC。通信接入成功应同时满足:

  • 能够持续收到 CRC 正确的数据帧;
  • 数据域中包含标签为 0x81 的 HI81 数据;
  • 帧周期约为 10 ms。

ins_status 未进入组合导航状态不代表通信失败。完成通信验证后,再根据 HI81 数据定义和后续状态说明检查安装、天线、GNSS 定位及组合导航状态。

接入其他协议 ​

GGA、RMC、RTCM3 和 J1939 按实际应用配置。相关命令、字段和验证方法见后续协议章节;快速接入不修改设备的默认输出配置。

文档变更历史 ​

版本日期作者变更内容
V2.02026年9月13日HiPNUC重构适用范围、快速接入、差分数据与协议说明
V1.02023年10月1日HiPNUC初始版本

安装与坐标系 ​

机体系 ​

本手册使用右手直角坐标系描述设备机体系(b 系):Y 轴指向载体前方,X 轴指向载体右侧,Z 轴指向上方。按默认方向安装时,b 系与产品外壳上的 X / Y / Z 坐标标识一致;按其他水平方向安装时,用下文的安装方向码声明外壳箭头在载体上的指向,设备据此把输出对齐到载体。

设备、天线和载体之间应刚性固定,运行中相对位置和方向不得变化;天线杆臂应测量到天线相位中心。

HI81 的 ins_lon、ins_lat 和 ins_msl 表示 IMU 原点的组合导航位置。GGA、RMC 的位置来源见对应消息说明。

导航系 ​

组合导航工作模式下导航系固定为东北天(ENU):X 轴指东、Y 轴指北、Z 轴指天。vel_enu 和 acc_enu 均按东、北、天顺序输出,航向以真北为 0°、顺时针为正。输出数据轴向固定为右-前-上,CONFIG IMU COORD 只接受 0,LOG USRCONFIG 读回 COORD=0。

ENU 下的欧拉角采用 3-1-2(Z-X-Y)旋转顺序,即依次为航向、俯仰、横滚。四元数表示机体系到导航系的旋转,顺序为 W、X、Y、Z。

水平安装方向(HIxxN) ​

HIxxN 水平安装时,用 CONFIG IMU URFR <CODE> 声明外壳上印的 X、Y 箭头分别指向载体的哪个方向,Z 箭头保持向上。方向以载体为准:前 = 车头方向,右 = 驾驶员的右手边。

方向码X 箭头指向Y 箭头指向
24右(默认)前
304前左
214后右
134左后

配置后保存并重启,再读回确认:

text
CONFIG IMU URFR 24
SAVECONFIG
REBOOT
LOG USRCONFIG

双天线基线与杆臂设置 ​

A 为定位主天线,B 为双天线定向天线,天线接口与 ANTA、ANTB 坐标不得交换。ANTA 和 ANTB 分别表示 A、B 天线相位中心相对 IMU 原点的位置矢量,坐标采用设备机体系(安装方向修正后的载体右、前、上:X 向右、Y 向前、Z 向上),单位为米。双天线基线向量为 ANTB - ANTA。

设置 A 天线杆臂:

SETBASELINE ANTA <X,Y,Z>

设置 B 天线杆臂:

SETBASELINE ANTB <X,Y,Z>

参数必须使用逗号分隔,不能包含空格。每个天线杆臂的长度不得超过 1000 m,双天线基线长度应为 0.05–1000 m。

例如,A、B 天线相对 IMU 的坐标分别为 (-1.5, -1.2, -0.3) 和 (1.5, -1.2, -0.3):

text
SETBASELINE ANTA -1.5,-1.2,-0.3
SETBASELINE ANTB 1.5,-1.2,-0.3
SAVECONFIG
REBOOT

设备重启后,发送 LOG INSCONFIG,确认返回的 ANTA 和 ANTB 与实际安装一致。准确的杆臂参数可减小载体转动时天线位置与 IMU 位置不同所引入的误差。

杆臂也可通过寄存器读写:ANTA 的 X / Y / Z 位于 0x03D0 / 0x03D2 / 0x03D4,ANTB 位于 0x03D6 / 0x03D8 / 0x03DA,每个值为 IEEE-754 单精度浮点数的 32 位位模式,单位为米。J1939 按配置 J1939 逐个写入,保存并重启后生效。单个值的绝对值超过 1000 m 时写入被拒绝;逐个写入时不检查两根天线的间距,写入前由主机确认间距不小于 0.05 m。CHCenter 配置对话框的「安装设置」页可直接读写杆臂。

常用操作 ​

设备使用 ASCII 配置命令。每条命令必须以回车换行 \r\n 结束。命令执行成功通常返回 OK;ERR 或以 ERROR 开头的文本均表示失败。通信参数切换、重启或超时时,应以读回和有效数据作为最终验证。

命令总览 ​

命令用途
REBOOT重启设备
LOG查询信息或控制指定串口的数据输出
CONFIG配置组合导航工作参数
UNLOGALL关闭当前串口的全部周期消息
SAVECONFIG保存需要长期保留的配置
FRESET恢复默认用户配置
SETBASELINE设置 A、B 天线杆臂
SERIALCONFIG设置指定串口的波特率

LOG 和 SERIALCONFIG 可在命令后加入目标端口,例如 LOG COM2 COMCONFIG 或 SERIALCONFIG COM2 460800。省略 COMx 时作用于命令所在串口;可用端口以具体型号为准。

重启设备 ​

发送 REBOOT 后,设备立即重启,作用等同于重新上电。需要长期保存的参数应先执行 SAVECONFIG。

查询与控制串口输出 ​

暂停或恢复数据输出 ​

  • LOG ENABLE:恢复命令所在串口的数据输出;
  • LOG DISABLE:暂停命令所在串口的数据输出。

这两个命令只控制当前运行时的端口输出,不修改其他串口的配置。

查询版本 ​

发送 LOG VERSION 查询产品名称和固件版本。PNAME、APP_VER 和 BL_VER 分别表示产品名称、应用固件版本和 Bootloader 版本。返回内容还可能包含序列号、编译日期等信息,接收程序不应依赖固定字段数或固定行数。

查询串口配置 ​

发送 LOG [COMx] COMCONFIG 查询当前或指定串口的波特率和消息周期。返回的 ONTIME 单位为毫秒,例如:

text
COM=COM1
BAUD=115200
MSG=HI81, ONTIME=10

设备可能继续列出该端口支持的其他消息。

查询双天线配置 ​

发送 LOG INSCONFIG 查询 A、B 天线杆臂。主要字段为:

text
ANTA=0.000,0.000,0.200
ANTB=0.000,1.000,0.200

返回内容可能包含其他配置字段,接收程序不应依赖固定字段数或固定行数。

配置周期消息 ​

格式:LOG [COMx] <MSG> ONTIME <PERIOD>。

参数说明
MSGHI81、GGA 或 RMC
PERIOD输出周期,单位为秒;统一使用范围为 0–32.767 s,设为 0 时关闭该消息

常用示例:

text
LOG HI81 ONTIME 0.01
SAVECONFIG

上例将当前串口的 HI81 周期设为 10 ms(100 Hz)。GGA、RMC 通常使用 0.1 或 1 秒周期。请根据消息长度、各消息周期和串行数据格式,自行核算全部启用消息的总带宽,并在端口波特率允许范围内留出余量。OK 仅表示配置已接受,不保证实际输出周期;带宽不足或发送拥塞时可能跳过周期消息。

配置组合导航工作模式 ​

格式:CONFIG MODEL <MODEL>。

MODEL说明
CAR车载模式,启用车辆运动约束;出厂默认
SHIP船载模式
PLANE飞行器模式,不使用车辆运动约束

配置后保存并重启:

text
CONFIG MODEL CAR
SAVECONFIG
REBOOT

配置 NTRIP ​

仅具备受支持网络接口或配套 DTU 的型号可以直接使用 NTRIP。接口接线、网络接入方式和配套设备以具体产品规格书及交付配置为准。

格式:

text
CONFIG NTRIP <SERVER> <PORT> <MOUNTPOINT> <USERNAME> <PASSWORD>
参数说明
SERVERCORS/NTRIP 服务地址,可以是域名或 IP 地址
PORT服务端口
MOUNTPOINT挂载点
USERNAME账号用户名
PASSWORD账号密码

凭据安全

LOG NTRIPCONFIG 的返回内容可能包含用户名和密码。保存终端日志、截图或请求技术支持前,请先删除凭据信息。

示例中的地址和账号仅用于说明格式:

text
CONFIG NTRIP caster.example.com 2101 MOUNT1 demo_user demo_password
SAVECONFIG
REBOOT

重启后发送 LOG NTRIPCONFIG 读回服务器、端口、挂载点和账号配置,再通过 HI81 中的 GNSS 定位状态确认是否进入 RTK。进入 RTK 所需时间取决于天线环境、差分服务、网络质量和基准站距离。

关闭当前串口的全部周期消息 ​

UNLOGALL 将命令所在串口的全部周期消息设为不输出,包括默认 HI81。该命令不影响其他串口;需要掉电保持时,在命令后执行 SAVECONFIG。

保存配置 ​

需要长期保留的配置在完成后执行 SAVECONFIG。

只有明确要求重启生效的设置才需要继续执行 REBOOT。

恢复默认配置 ​

恢复前记录配置

FRESET 会用默认值覆盖用户配置。执行前记录所需的杆臂、网络、输出和总线配置;终端日志中的 NTRIP 凭据应先做脱敏处理。

FRESET 仅用于常规排查无法恢复的配置问题:

  1. 记录必要配置后发送 FRESET。
  2. 等待设备重新启动;若连接未恢复,重新上电。
  3. 使用 COM1、115200 bps、8N1 重新连接,确认持续收到 100 Hz HI81。
  4. 读回配置,恢复实际应用所需参数,并重新验证导航与通信数据。

若重启后部分配置未恢复默认(例如 HI81 没有输出),不要反复发送 FRESET:按第 4 步手动设置缺失的项(例如 LOG HI81 ONTIME 0.01),再执行 SAVECONFIG。

修改串口波特率 ​

可使用 115200、460800 和 921600:

text
SERIALCONFIG [COMx] <BAUD>

切换步骤:

  1. 发送 LOG [COMx] COMCONFIG 记录目标串口的当前配置。
  2. 发送 SERIALCONFIG [COMx] <BAUD>。如果修改的是命令所在串口,收到 OK 后将主机切换到新波特率。
  3. 在仍可通信的串口发送 SAVECONFIG。
  4. 发送 LOG [COMx] COMCONFIG,确认返回的 BAUD 与目标值一致;再在目标串口验证有效数据。

串口与网络协议 ​

简介 ​

串口和适用型号的网络接口可传输 NMEA 0183 ASCII 消息和 HiPNUC 二进制消息。两类消息可以在同一端口输出,接收端应分别按 $ 和 0x5A 0xA5 识别帧起始位置。

传输接口 ​

  • RS-232 和 RS-422 使用相同的串行数据格式。设备与接收端必须使用相同的波特率;默认波特率为 115200 bps。
  • 部分型号配有以太网接口并通过 DHCP 获取 IP 地址。默认数据连接为 TCP,端口为 5944;连接建立后,命令和数据格式与串口相同。具体网络能力以产品规格书和交付配置为准。

NMEA 消息(ASCII) ​

NMEA 消息以 $ 开始,以 * 和两位十六进制校验和结束,最后发送回车换行 0x0D 0x0A:

text
$<Talker><Type>,<Field1>,<Field2>,...*<Checksum><CR><LF>
字段字段说明
$起始符,ASCII 码 0x24
Talker两字符发送者标识;当前产品默认使用 GP。接收端应按消息类型识别数据,不应据此限制卫星系统
Type三字符消息类型,本手册公开 GGA 和 RMC
,字段分隔符,ASCII 码 0x2C;空字段仍保留分隔符
*数据与校验和的分隔符
Checksum$ 与 * 之间全部字符逐字节异或的结果,以两位大写十六进制 ASCII 表示
<CR><LF>终止符,ASCII 码 0x0D 0x0A

NMEA 消息列表 ​

NMEA 协议描述数据来源
GGA定位数据、UTC 时间、定位质量和参与定位的卫星数定位结果
RMC时间、位置、地面速度和地面航向定位与速度结果

GGA 和 RMC 的位置来源可能随产品实现而不同,可来自 GNSS 天线位置或组合导航结果。需要稳定获取以 IMU 原点为参考的组合导航位置、速度和姿态时,请解析 HI81。

外部时间发生变化时,时间字段可能暂时无效;接收端应持续检查字段有效性,确认新历元后再使用绝对时间。

GGA ​

接收机的时间、位置和定位相关数据。

定位质量字段为空或为 0 时,应将该语句视为定位无效,不应依赖其他字段的固定填充值。时间字段为空时表示 UTC 无效;语句仍可能按配置周期输出。

$GPGGA,062134.00,2813.9908005,N,11252.6285300,E,1,28,0.5,83.684,M,-17.038,M,0.0,0000*54
ID示例格式描述
1$GPGGA帧头
2062134.00hhmmss.ssUTC 时间
32813.9908005ddmm.m…纬度,前两位为度,后续为分,范围 0°~90°
4N-纬度方向:N 为北纬,S 为南纬
511252.6285300dddmm.m…经度,前三位为度,后续为分,范围 0°~180°
6E-经度方向:E 为东经,W 为西经
71x0:无效解;1:单点或 PPP;2:伪距差分;4:RTK 固定;5:RTK 浮点
828xx参与定位解算卫星数
90.5x.xHDOP:水平位置精度因子
1083.684x.xxx海拔高(平均海平面高度)
11MU海拔高单位:m
12-17.038x.xxx高程异常值:WGS84 椭球高减海拔高
13MU高程异常值单位:m
140.0x.x差分龄期,单位:s
150000xxxx差分站 ID
1654hh校验和

经纬度使用“度分”格式,不包含独立的秒字段。转换为十进制度时使用:十进制度 = 度 + 分 / 60,再根据 N/S/E/W 确定正负号。小数位数可能随固件版本变化,接收端应按逗号分隔的十进制数值解析,不应按固定字符宽度截取。

RMC ​

最简导航传输数据。

定位状态字段为空或为 V 时,应将该语句视为定位无效,不应依赖位置、速度和航向字段的固定填充值。时间或日期字段为空时表示 UTC 无效;语句仍可能按配置周期输出。

$GPRMC,020550.00,A,2813.9891299,N,11252.6278784,E,0.03,315.70,161117,0.0,E,A,V*49
ID示例格式描述
1$GPRMC帧头起始符+消息类型标识
2020550.00hhmmss.ssUTC 时间
3Ax.x定位状态:A-有效定位,V-无效定位
42813.9891299ddmm.m…同 GGA 语句纬度格式
5N-同 GGA 语句纬度格式
611252.6278784dddmm.m…同 GGA 语句经度格式
7E-同 GGA 语句经度格式
80.03x.xx水平地面速度,单位:节
9315.70x.xx地面航向,以真北为参考,顺时针为正,范围 0°~360°
10161117ddmmyy日期,日月年
110.0x.x保留字段,接收端忽略
12E-保留字段,接收端忽略
13A-模式指示:N=数据无效;A=自主定位;D=差分;E=估算;F=RTK浮点;R=RTK固定
14V-扩展状态字段,不得据此单独判断定位是否有效
1549hh校验和

判断 RMC 定位是否有效时,以字段 3 的 A/V 为主,并结合字段 13 的定位模式。字段 14 不作为定位有效性的独立依据。

HiPNUC 二进制消息 ​

HI81 是 HiPNUC GNSS/INS 产品的通用二进制输出。串口使用 8N1 格式;具体物理接口以产品规格书为准。

除另有说明,协议表中整数字段的物理值等于原始值乘以比例因子。

数据帧格式 ​

COM1 默认以 100 Hz 输出 HI81。多字节整数和 CRC 均按小端顺序传输。

帧内顺序值长度(字节)说明
同步字 10x5A1固定值
同步字 20xA51固定值
数据域长度HI81 为 0x00682仅表示数据域长度,不包含同步字、长度字段和 CRC
CRC-2小端;计算时跳过本字段
数据域首字节为 0x81HI81 为 104字段定义见下表

因此,一个 HI81 完整帧固定为 110 字节:CRC 位于帧偏移 4–5,数据域从帧偏移 6 开始。下表的字节偏移均从数据域首字节 0x81 开始计算。

数据域内容 ​

组合导航数据(HI81) ​

HI81 数据域固定为 104 字节。

组合导航状态 ​

ins_status 是判断组合导航工作阶段的统一状态字段:

值状态含义
0无效尚未获得完成初始化所需的信息
1对准中已开始初始化,但尚未进入组合导航
3组合导航组合导航已初始化,GNSS 辅助有效
6惯性递推组合导航已初始化,但当前 GNSS 辅助失效,正在惯性递推
字节偏移名称数据类型大小(Byte)单位比例因子说明
0taguint8_t1--数据包标签:0x81
1statusuint16_t2--保留;接收端不应解释
3ins_statusuint8_t1--组合导航状态,见上表
4gpst_wnuint16_t2week1GPS 周
6gpst_towuint32_t4s0.001GPS 周内秒
10reserveduint8_t[2]2--保留;接收端忽略
12gyr_bint16_t[3]6rad/s0.001机体系 X、Y、Z 轴角速度,出厂校准后的 IMU 测量数据
18acc_bint16_t[3]6m/s²0.0048828机体系 X、Y、Z 轴加速度,出厂校准后的 IMU 测量数据
24mag_bint16_t[3]6μT0.030517机体系 X、Y、Z 轴磁场,出厂校准后的 IMU 测量数据
30air_pressureint16_t2Pa1实际气压 = 字段值 + 100000 Pa;例如 2000 表示 102000 Pa
32reserveduint8_t[2]2--保留;接收端忽略
34temperatureint8_t1°C1温度
35utc_yearuint8_t1year1UTC 年份减 2000;例如 24 表示 2024 年
36utc_monthuint8_t1month1UTC 月
37utc_dayuint8_t1day1UTC 日
38utc_houruint8_t1h1UTC 时
39utc_minuint8_t1min1UTC 分
40utc_msecuint16_t2s0.001UTC 秒及毫秒
42rollint16_t2deg0.01横滚角,范围 -180°~180°
44pitchint16_t2deg0.01俯仰角,范围 -90°~90°
46yawuint16_t2deg0.01航向角,以真北为 0°,顺时针为正,范围 0°~360°
48quatint16_t[4]8-0.0001机体系到导航系的四元数,顺序为 W、X、Y、Z
56ins_lonint32_t4deg1e-7组合导航经度
60ins_latint32_t4deg1e-7组合导航纬度
64ins_mslint32_t4m0.001组合导航海拔高
68pdopuint8_t1-0.1GNSS 位置精度因子
69hdopuint8_t1-0.1GNSS 水平位置精度因子
70solq_posuint8_t1--GNSS 定位质量:0 无效;1 单点或 PPP;2 伪距差分;4 RTK 固定;5 RTK 浮点
71nv_posuint8_t1--参与 GNSS 定位的卫星数
72solq_headinguint8_t1--双天线定向质量:4 表示固定解;其他值表示定向不可用
73nv_headinguint8_t1--参与双天线定向的卫星数
74diff_ageuint8_t1s1RTK 差分龄期
75undulationint16_t2m0.01高程异常值,即 WGS84 椭球高减海拔高
77reserveduint8_t1--保留;接收端忽略
78vel_enuint16_t[3]6m/s0.01导航系东、北、天速度
84acc_enuint16_t[3]6m/s²0.0048828导航系东、北、天加速度
90reserveduint8_t[14]14--保留;接收端忽略

获得有效 GNSS/UTC 历元后,gpst_wn、gpst_tow 和 UTC 字段才可作为绝对时间使用。时间无效时,不应依赖这些字段的固定填充值;HI81 仍可能按配置周期输出。

保留字段必须按固定长度跳过,不应依据其值改变解析布局。

CRC ​

HI81 使用 CRC-16/XMODEM:生成多项式为 0x1021,初值为 0x0000,输入和输出均不反射,无最终异或。CRC 覆盖帧头、长度字段和数据域,不包含 CRC 字段自身。

c
static void crc16_update(uint16_t *currentCrc, const uint8_t *src,
                         uint32_t lengthInBytes)
{
    uint32_t crc = *currentCrc;
    for (uint32_t j = 0; j < lengthInBytes; ++j)
    {
        crc ^= (uint32_t)src[j] << 8;
        for (uint32_t i = 0; i < 8; ++i)
        {
            uint32_t temp = crc << 1;
            if (crc & 0x8000)
                temp ^= 0x1021;
            crc = temp;
        }
    }
    *currentCrc = (uint16_t)crc;
}

uint16_t crc = 0;
crc16_update(&crc, frame, 4);       /* 5A A5 LEN_L LEN_H */
crc16_update(&crc, frame + 6, 104); /* HI81 payload */

uint16_t receivedCrc = (uint16_t)frame[4] | ((uint16_t)frame[5] << 8);
bool crcOk = (crc == receivedCrc);

RTCM3 差分数据 ​

RTCM3 用于传输 GNSS 差分改正数据。建议保留 COM1 的默认 HI81 输出,使用可用的 COM2 传输 RTCM3。基站输出与移动站差分输入是两种独立的应用流程。

移动站差分输入 ​

将差分源输出的原始 RTCM3 字节流直接送入 COM2,不添加 ASCII 命令、行结束符或其他封装。差分源与 COM2 必须使用相同波特率。

同时只使用一路差分源。连接后持续检查 HI81:diff_age 应随差分数据更新,solq_pos 进入 4(RTK 固定)或 5(RTK 浮点)时才表明定位解已使用 RTK。

基站 RTCM3 输出 ​

将设备切换为基站前,先记录当前工作模式和端口配置。在 COM2 执行:

text
UNLOGALL
CONFIG MODEL BASE
LOG RTCM3 ONTIME 1
SAVECONFIG
REBOOT

LOG RTCM3 ONTIME 1 中的非零值只用于开启 RTCM3 转发,不设置 RTCM 消息的生成频率。内置 GNSS 模块生成并由设备转发以下消息:

RTCM3 消息输出频率
10051 Hz
10741 Hz
10941 Hz
11241 Hz

重启后,在 COM2 检查完整且校验正确的 RTCM3 帧。恢复组合导航应用时,重新选择 CAR、SHIP 或 PLANE 模式,并恢复所需的端口输出。

CAN 接口:SAE J1939 ​

配有 CAN 接口的 INS 产品使用 SAE J1939,默认 CAN 波特率为 500 kbit/s,默认设备地址为 0x08。具体接口能力以型号和交付配置为准。

FF10 和 FF14 中的组合导航位置参考点为 IMU 原点,与 HI81 一致。

J1939 使用 29 位扩展帧 ID,结构为:优先级 P(3 bit)、保留位 R(1 bit)、数据页 DP(1 bit)、PDU 格式 PF(8 bit)、PDU 特定域 PS(8 bit)和源地址 SA(8 bit)。本节测量 PGN 的 PF 为 0xFF,属于 PDU2 广播帧,PS 是 PGN 的低 8 位,SA 是设备地址。

项目约定
通信模式测量 PGN 周期广播
数据长度本节各测量 PGN 均为 8 字节
PF0xFF
优先级3
默认源地址0x08
数据格式多字节数值均为小端;除明确标为无符号或状态的字段外,均为有符号整数

各 PGN 的发送周期独立配置,不同产品的默认周期可能不同。集成时应以配置读回值和实际接收周期为准,不应假定统一默认周期。

PGN 消息列表 ​

PGN 65296(FF10):经纬度 ​

默认地址下 CAN ID 为 0x0CFF1008。

SPN 名称字节位置说明
纬度0–3int32_t,单位 deg,比例因子 1e-7
经度4–7int32_t,单位 deg,比例因子 1e-7

PGN 65300(FF14):高度及差分龄期 ​

默认地址下 CAN ID 为 0x0CFF1408。

SPN 名称字节位置说明
海拔高0–3int32_t,单位 m,比例因子 0.01
高程异常值4–5int16_t,单位 m,比例因子 0.01
差分龄期6–7int16_t,单位 s,比例因子 0.01

PGN 65304(FF18):定位状态与卫星数 ​

默认地址下 CAN ID 为 0x0CFF1808。

SPN 名称字节位置说明
GNSS 定位质量00 无效;1 单点或 PPP;2 伪距差分;4 RTK 固定;5 RTK 浮点
双天线定向质量14 表示固定解;其他值表示定向不可用
定位卫星数2参与 GNSS 定位的卫星数
定向卫星数3参与双天线定向的卫星数
ins_status4组合导航状态,定义与 HI81 相同
保留5–7接收端忽略

PGN 65318(FF26):速度 ​

默认地址下 CAN ID 为 0x0CFF2608。

SPN 名称字节位置说明
东向速度0–1int16_t,单位 m/s,比例因子 0.01
北向速度2–3int16_t,单位 m/s,比例因子 0.01
天向速度4–5int16_t,单位 m/s,比例因子 0.01
水平地面速度6–7int16_t,单位 m/s,比例因子 0.01

PGN 65327(FF2F):时间 ​

默认地址下 CAN ID 为 0x0CFF2F08。

SPN 名称字节位置说明
UTC 年0年份减 2000,例如 24 表示 2024 年
UTC 月1
UTC 日2
UTC 时3
UTC 分4
UTC 秒5
UTC 毫秒6–7uint16_t,单位 ms,比例因子 1

日期合理且非零时,FF2F 才可作为 UTC 使用。绝对时间有效前应忽略该 PGN,不应依赖无效时间的固定填充值。

PGN 65332(FF34):加速度 ​

默认地址下 CAN ID 为 0x0CFF3408。

SPN 名称字节位置说明
加速度 X0–1int16_t,单位 g,比例因子 0.00048828
加速度 Y2–3int16_t,单位 g,比例因子 0.00048828
加速度 Z4–5int16_t,单位 g,比例因子 0.00048828
保留6–7接收端忽略

PGN 65335(FF37):角速度 ​

默认地址下 CAN ID 为 0x0CFF3708。

SPN 名称字节位置说明
角速度 X0–1int16_t,单位 deg/s,比例因子 0.061035
角速度 Y2–3int16_t,单位 deg/s,比例因子 0.061035
角速度 Z4–5int16_t,单位 deg/s,比例因子 0.061035
保留6–7接收端忽略

PGN 65341(FF3D):横滚角和俯仰角 ​

默认地址下 CAN ID 为 0x0CFF3D08。

SPN 名称字节位置说明
横滚角(Roll)0–3int32_t,单位 deg,比例因子 0.001
俯仰角(Pitch)4–7int32_t,单位 deg,比例因子 0.001

PGN 65345(FF41):航向角 ​

默认地址下 CAN ID 为 0x0CFF4108。

SPN 名称字节位置说明
航向角(顺时针)0–3uint32_t,以真北为 0°,顺时针为正,范围 0°~360°,单位 deg,比例因子 0.001
保留4–7接收端忽略

PGN 65347(FF43):温度 ​

默认地址下 CAN ID 为 0x0CFF4308。

SPN 名称字节位置说明
温度0–1int16_t,单位 °C,比例因子 0.01
保留2–7接收端忽略

配置 J1939 ​

配置使用 PDU1 的 PGN 0xEF00,配置主机固定使用源地址 0x55。设备保持默认地址 0x08 时:

  • 主机请求 ID:0x0CEF0855,目的地址为设备 0x08,源地址为主机 0x55;
  • 设备应答 ID:0x0CEF5508,目的地址为主机 0x55,源地址为设备 0x08。

配置帧固定为 8 字节:

字段字节说明
ADDR0–116 位寄存器地址,小端
CMD20x06 写入,0x03 读取
STATUS3保留,主机发送 0x00
VAL4–732 位值,小端;读取请求时发送 0

普通写入成功时,设备回显请求;读取成功时,设备在 VAL 中返回当前值。非法地址或参数可能不返回应答,主机应设置超时,不要无限等待。

配置寄存器 ​

地址对象值
0x0110FF10 经纬度周期0:关闭;10–1000:周期,单位 ms
0x0114FF14 高度及差分龄期周期0:关闭;10–1000:周期,单位 ms
0x0118FF18 定位状态周期0:关闭;10–1000:周期,单位 ms
0x0126FF26 速度周期0:关闭;10–1000:周期,单位 ms
0x012FFF2F 时间周期0:关闭;10–1000:周期,单位 ms
0x0134FF34 加速度周期0:关闭;10–1000:周期,单位 ms
0x0137FF37 角速度周期0:关闭;10–1000:周期,单位 ms
0x013DFF3D 横滚角和俯仰角周期0:关闭;10–1000:周期,单位 ms
0x0141FF41 航向角周期0:关闭;10–1000:周期,单位 ms
0x0143FF43 温度周期0:关闭;10–1000:周期,单位 ms
0x009ACAN 波特率0:1000 kbit/s;1:800 kbit/s;2:500 kbit/s;3:250 kbit/s;4:125 kbit/s
0x009C设备地址范围 1–64,默认 8
0x009DJ1939 周期输出总开关0:关闭;1:开启
0x03D0–0x03DA天线杆臂 ANTA、ANTB每轴一个地址,浮点位模式,单位 m,见双天线基线与杆臂设置;保存并重启后生效
0x0000控制0x00000000:保存配置;0x000000FF:重启

例如,将 FF37 角速度周期设置为 100 ms:

text
ID   = 0x0CEF0855
DATA = 37 01 06 00 64 00 00 00

随后读取 0x0137 验证:

text
ID   = 0x0CEF0855
DATA = 37 01 03 00 00 00 00 00

关闭全部 J1939 周期输出时,写入:

text
ID   = 0x0CEF0855
DATA = 9D 00 06 00 00 00 00 00

将 VAL 改为 01 00 00 00 可重新开启。配置后先读回目标寄存器,再向 0x0000 写入 0x00000000 保存、写入 0x000000FF 重启,最后检查实际 CAN 报文的 ID 和周期。修改 CAN 波特率时,重启后使用新波特率验证。重启命令可能在应答发出前生效,主机应以新参数下重新出现有效报文作为成功依据。

状态与故障定位 ​

组合导航初始化 ​

通信正常不等于组合导航已经初始化。设备先使用有效 GNSS 定位建立位置,再使用双天线固定定向解或连续运动形成的速度航向完成初始化。没有双天线定向时,在良好卫星环境中保持稳定运动,并通过 ins_status 判断初始化结果。

初始化和运行状态统一查看 ins_status:0 表示无效,1 表示对准中,3 表示组合导航,6 表示惯性递推。进入状态 6 后,设备仍连续输出导航数据,但误差会随失锁时间和运动状态累积;GNSS 辅助重新有效后,设备自动恢复组合导航。

排查顺序 ​

现象优先检查判定与处理
COM1 收不到 HI81供电、接口电平、TX/RX、共地和 115200 8N1能持续找到 0x5A 0xA5、取得 110 字节完整帧且 CRC 正确,才表示通信正常;必要时用 LOG COMCONFIG 核对当前配置
ins_status 长期为 0 或 1A 天线视野、solq_pos、卫星数、工作模式和杆臂参数双天线产品还应检查 A/B 天线连接、基线方向及 solq_heading 是否为 4;没有固定定向解时,保持稳定运动完成航向初始化
ins_status 由 3 变为 6solq_pos、差分龄期、天线遮挡和 GNSS 数据连续性使用 NTRIP 时同时检查网络、服务器、挂载点和账号;恢复有效 GNSS 辅助后观察状态是否回到 3
航向方向或偏差明显错误设备 Y 轴前向、A/B 天线顺序、ANTA、ANTB 和安装刚性确认航向以真北为 0°、顺时针为正;双天线定向应以 solq_heading=4 为有效条件
RTK 长期不能固定天线环境、差分数据、diff_age、网络和 NTRIP 配置先确认设备持续接收差分数据,再排查账号、基准站距离和卫星遮挡,不以固定等待时间作为成功条件
J1939 无报文型号是否配有 CAN、500 kbit/s、29 位扩展帧、总线终端、设备地址和配置周期先读回目标 PGN 周期,再按实际设备地址检查 CAN ID;不要假定所有固件具有相同默认周期

联系技术支持前 ​

请准备产品名称和 APP_VER、LOG COMCONFIG、LOG INSCONFIG,以及一小段原始 HI81 或 CAN 报文。涉及航向或 RTK 时,同时说明天线安装、卫星环境、差分龄期和网络状态。

固件升级与技术支持 ​

固件升级 ​

如需升级,请联系技术支持并提供产品型号和 LOG VERSION 查询结果,由技术支持确认适用的 .hex 文件;请勿使用其他型号的固件。在 CHCenter 的“工具 > 固件升级”中选择该文件,连接设备后执行升级。升级期间应保持供电和通信稳定;完成后重新连接设备,并通过 LOG VERSION 核对 APP_VER。

开发资源 ​

C/C++、Python、STM32、ROS 和 DBC 资源见 SDK 与开发资源。协议定义以本手册为准。

技术支持 ​

最新资料与技术支持渠道如下:

微信
Telegram

最后更新:

IMU · AHRS · INS · RTK 技术支持中心