数据字典与状态字
协议总览
各协议对应的接口和选用建议见选择输出,各型号提供哪些接口见适用产品。下面的数据类型、字节序和数据字典对所有协议通用。
CANopen 为定制固件,如需使用请联系我司,要点见附录。
数据类型与比例因子
数据类型
| 记号 | 含义 | 字节 |
|---|---|---|
| u8 / u16 / u32 / u64 | 无符号整型 | 1 / 2 / 4 / 8 |
| i8 / i16 / i32 | 有符号整型(二进制补码) | 1 / 2 / 4 |
| float | IEEE-754 单精度浮点 | 4 |
字节序
| 协议 | 字节序 |
|---|---|
| HI91 / HI83、J1939、CANFD83 | 小端(低字节在前) |
| Modbus RTU | 大端(每个寄存器 2 字节,高字节在前;32 位量高字在前) |
位编号:所有位字段(MAIN_STATUS、HI83 位图等)以 bit0 为最低位。
比例因子:整型协议(Modbus、J1939)用比例因子还原物理量,物理值 = 原始值 × 比例因子。例如 Modbus 加速度原始值 1000,比例因子 0.00048828,物理值 = 0.488 G。浮点协议(HI91、HI83、CANFD83)已是工程单位。同一物理量在不同协议中的类型、比例因子和单位不同,解码前先对照下面的数据字典。
数据字典
下表按物理量列出各协议的类型、比例因子和单位。括号里是 HI83 位号、Modbus 寄存器地址和 J1939 PGN。
| 物理量 | HI91 | HI83(位号) | Modbus(寄存器) | J1939(PGN) |
|---|---|---|---|---|
| 加速度 XYZ | float,G | float,m/s²(bit0) | i16 × 0.00048828 → G(0x0034–0x0036) | i16 × 0.00048828 → G(0xFF34) |
| 角速度 XYZ | float,deg/s | float,rad/s(bit1) | i16 × 0.061035 → deg/s(0x0037–0x0039) | i16 × 0.061035 → deg/s(0xFF37) |
| 磁场 XYZ | float,μT | float,μT(bit2) | i16 × 0.030517 → μT(0x003A–0x003C) | i16 × 0.030517 → μT(0xFF3A) |
| 横滚 / 俯仰 | float,deg | float,deg(bit3) | i32 × 0.001 → deg(0x003D–0x0040) | i32 × 0.001 → deg(0xFF3D) |
| 航向 yaw | float,deg,±180° | float,deg,±180°(bit3) | i32 × 0.001 → deg,±180°(0x0041–0x0042) | 0xFF41 前 4 字节 i32 × 0.001 → deg,罗盘航向 0–360°;后 4 字节 i32 × 0.001 → deg,±180° |
| 四元数 WXYZ | float | float(bit4) | i16 × 0.0001(0x0046–0x0049) | i16 × 0.0001(0xFF46) |
| 温度 | i8,°C(整数) | float,°C(bit8) | i16 × 0.01 → °C(0x0043) | i16 × 0.01 → °C(0xFF43,以型号为准) |
| 气压 | float,Pa | float,Pa(bit7) | i32 × 0.01 → Pa(0x0044–0x0045) | — |
| 系统时间 | u32,ms | u64,μs,开机累计(bit5) | i32,ms,开机累计(0x004C–0x004D) | — |
| UTC 日期时间 | — | 8 字节(bit6) | — | 年月日时分秒毫秒(0xFF2F) |
| 倾角 X / Y | — | float,deg(bit9,见下) | i16 × 0.011 → deg(0x004A–0x004B) | i32 × 0.001 → deg(0xFF4A) |
| MRU 位移 | — | float,m(bit10) | i16 × 0.01 → m(0x004E–0x0050) | — |
| MRU 频率 | — | float,Hz(bit11) | i16 × 0.01 → Hz(0x0051–0x0053) | — |
| 姿态 1σ(att_std) | — | float × 3,deg(bit21,见下) | — | — |
| 状态字 MAIN_STATUS | u16 | u16 | u16(0x0009) | — |
- 整型输出(Modbus、J1939)固定按 ±16 G、±2000 deg/s、±1000 μT 换算,超出后停在满量程,不再增大,见量程与带宽。
ACC_SAT/GYR_SAT按传感器当前量程判断,可能大于整型输出的量程。整型读数接近满量程时,直接视为不可信,不必等状态位。需要精确数据或完整量程时,用 HI91 / HI83 / CANFD83 的浮点输出。- 无气压计或无磁力计的型号,对应字段读数无意义,忽略即可。
- 需要 0.01 °C 的温度分辨率时,用 HI83 或 Modbus 的温度字段。HI91 的温度是整数 °C。
- HI83 只输出位图中选中的字段,帧长随字段变化。解析时按每帧的
data_bitmap逐段累加偏移,不写死帧长和各字段位宽,见 HI83。UTC 段何时有效,看UTC_UNSYNC。 - HI83 bit21
att_std是姿态的 1σ 不确定度,三个 float,单位 deg。它是导航轴上的旋转误差,不是欧拉角误差;三个值不按 roll / pitch / yaw 顺序排列,轴序见 HI83 位定义。 - 航向的正方向和零点见航向约定。
- 倾角和罗盘航向始终按右-前-上计算,不受
COORD影响;使用 MRU 输出时保持COORD 0,见输出数据轴向。
跨协议解码易错点
数值与预期相差固定倍数(如 9.8、57.3 或 100 倍)时,先核对下面几处的协议、单位和比例因子:
- 加速度:HI91 是 G,HI83 是 m/s²,相差约 9.8 倍。CANFD83 与 HI83 一样是浮点 m/s²,不能套用 J1939 的定点比例因子,见 CANFD83。
- 角速度:HI91 是 deg/s,HI83 是 rad/s,相差约 57.3 倍。CANFD83 同样是 rad/s。
- 航向:J1939 PGN
0xFF41前 4 字节是罗盘航向,后 4 字节才与其他协议的 yaw 一致。取错字段,方向和符号会相反,见航向约定。 - 气压:Modbus 气压带 0.01 比例因子,不乘会差 100 倍。
- 时间:HI91 的
system_time随对时状态变化,Modbus 的 CPU 时间始终是开机累计,两者不能互换或相减,见时间与时间戳。
倾角输出
倾角输出直接给出载体相对水平面的倾斜,适合平台调平和角度监测:
- X 轴倾角是横滚,±180°;Y 轴倾角是俯仰,±90°。单轴倾角仪型号 X 轴为 0–360°。
- 输出位置:HI83 bit9、Modbus 寄存器
0x004A/0x004B、J1939 PGN0xFF4A,比例因子见上表。HI83 的 bit9 含 roll、pitch、yaw 三个值,倾角取前两个。 - 倾角输出默认不开启。HI83 用
LOG HI83 MAP加上 bit9,见 HI83 字段选择。J1939 开启 PGN0xFF4A的周期,见配置协议。Modbus 寄存器0x004A/0x004B随时可读,无需开启。 - 配合工作模式 7,读数更平滑,见工作模式。
- 零点:把载体放到基准姿态,执行
CONFIG ATT RST 2,见姿态零点与校平。
MRU 输出
MRU 输出仅 MRU 型号提供,其他型号读数为 0。它估计船舶或海上平台的周期性运动,输出三轴位移和对应频率:
| 运动轴 | 方向 | 输出 |
|---|---|---|
| Heave 垂荡 | 垂向 | 位移(m)、频率(Hz) |
| Surge 纵荡 | 沿载体前后 | 位移(m)、频率(Hz) |
| Sway 横荡 | 沿载体左右 | 位移(m)、频率(Hz) |
输出位置:HI83 bit10(位移)和 bit11(频率),Modbus 寄存器 0x004E–0x0050(位移)和 0x0051–0x0053(频率)。
注意
MRU 输出是周期运动的估计,不能当作绝对位置或航迹。它只适用于周期性往复运动。典型海浪周期为 3–20 s,超出范围精度下降;初始化需要 5–20 个稳定的海浪周期。周期超过 30 s 的运动、单向线性运动和阶跃位移无法准确测量。
MAIN_STATUS 状态字
MAIN_STATUS 是 16 位状态字,出现在 HI91、HI83、CANFD83 和 Modbus 寄存器 0x0009 中。它是一组状态位,不是错误码,非零不等于故障。按用途检查相关位:姿态应用看 ATT_CONV,9 轴航向再看 MAG_DIST,需要绝对时间看 UTC_UNSYNC。
| 位 | 名称 | =1 的含义 | 置位时怎么办 |
|---|---|---|---|
| 0–2 | COORD | 3 位数值,不是标志:0 = 右-前-上,4 = ROS。所有带状态字的输出都携带 | 判断轴向时,连接后读一次 COORD 配置,见输出数据轴向。ROS 下它为 4,不表示异常 |
| 3 | WB_CONV | 陀螺零偏未收敛,精度较差 | 保持静止 3–5 s。持续置位时,检查模块是否在振动或移动,见上电过程 |
| 4 | MAG_DIST | 9 轴模式下磁场异常,航向精度可能降低;上电后磁基准尚未经转动确认前也为 1。6 轴模式下为 0 | 远离铁磁物体和电流,转动模块。反复置位则重新校准,见故障排查流程 |
| 5 | ACC_SAT | 当前或最近 2 s 内加速度计量程饱和 | 这段时间的加速度和姿态不可信。检查冲击是否超出量程,见量程与带宽 |
| 6 | GYR_SAT | 当前或最近 2 s 内陀螺仪量程饱和 | 同上,对象是角速度和航向 |
| 7 | ATT_CONV | 横滚、俯仰未充分收敛,精度较差;不含航向 | 保持静止片刻再用姿态。上电初期该位置位属正常,见上电过程 |
| 8 | 保留 | — | 屏蔽,不解析 |
| 9 | STATIC | 模块被判定为静止 | 信息位,无需处理 |
| 10 | MAG_AIDING | 工作模式使用磁力计(9 轴);航向是否可靠还要看 MAG_DIST | 信息位。需要磁航向却为 0,检查工作模式 |
| 11 | UTC_UNSYNC | UTC 未同步。UTC 字段只在本位为 0 时有效;HI91 的 system_time 此时是本地毫秒计数 | 检查 PPS 与 RMC 接入,见 PPS 对时。清零后 system_time 才是当日 UTC 毫秒,各接口时间戳的含义见时间与时间戳 |
| 12 | SOUT_PULSE | 本帧对应一次 SOUT 脉冲;仅出现在 HI91 / HI83 帧中,CANFD83 和 Modbus 寄存器 0x0009 中恒为 0 | 信息位,见 SOUT 同步输出 |
| 13–15 | 保留 | — | 屏蔽,不解析 |
WB_CONV、ATT_CONV 和 UTC_UNSYNC 置 1 表示「未收敛 / 未同步」,名称容易读反。保留位取值不保证为 0,解析时必须屏蔽。只关心状态标志(bit3–7 和 bit9–12)时,先与掩码 0x1EF8 相与,去掉 COORD 和保留位。
比较不同协议的状态字时,屏蔽 bit12:它只在跟随 SOUT 脉冲的串口帧中置 1。
出厂默认配置
下表是各配置项的出厂默认值。型号差异按接口标注,未标注的行对所有型号适用。「生效时机」列只是索引,规则见生效时机。
| 配置项 | 出厂默认 | 可选范围 | 生效时机 |
|---|---|---|---|
| 串口参数 | 115200 8N1 | 9 档(4800–921600),见 SERIALCONFIG | SERIALCONFIG 立即;Modbus 写波特率寄存器重启后 |
| 默认输出帧 | COM1 以 100 Hz 输出 HI91 | 周期和帧类型见串口与数据输出 | 立即 |
| 带 RS-485 接口的型号 | COM1 出厂不主动输出数据帧,只应答命令和 Modbus 请求 | 需要主动输出时用 LOG 命令开启 | 立即 |
| HI83 输出 | 关闭;字段位图 0x000000FF(bit0–7,不含温度) | bit0–11 和 bit21,见HI83 | 立即,无需重启 |
| -I2C 型号的 HI83 字段 | 字段位图 0x0000003B(加速度、角速度、欧拉角、四元数、系统时间) | 同上 | 同上 |
| 工作模式 | 0(6 轴);以 LOG USRCONFIG 读回的 PROFILE 为准 | 0 / 1 / 4 / 5 / 7,见工作模式 | 重启后 |
| 输出数据轴向 | COORD 0(右-前-上) | 0 / 4 | 重启后 |
| 安装方向 | URFR 024 | 24 种三位码,见安装方向 | 重启后 |
| 姿态零点 | 无偏置 | 见姿态零点与校平 | RST 后保存 |
| IO 映射 | SYNC_IN = IO1,SOUT = IO2 | 可选引脚以产品硬件手册为准,见多功能 IO 复用 | 重启后 |
| Modbus 从站 ID | 80(0x50);-I2C 型号同一个值兼作 I2C 设备地址 | Modbus 1–247;I2C 设备地址 0x08–0x77 | 立即(旧 ID 随即不再应答) |
| CAN 节点地址 | 8 | 1–127 | 重启后 |
| CAN 标称速率 | 500 kbit/s(所有带 CAN 接口的型号,含 CAN FD 型号) | 速率码 0 / 2 / 3 / 4,见配置协议 | 重启后 |
| J1939 周期输出 | 加速度、角速度、横滚俯仰、航向,每 10 ms 一帧(100 Hz),总开关开;其余 PGN(含倾角 PGN 0xFF4A)关闭 | 周期 0 = 关闭,见配置协议 | 立即 |
| CANFD83(CAN FD 型号) | 关闭;字段位图 0x12B;数据段 4 Mbit/s | 见CANFD83 | MAP 下一帧、周期立即;数据段速率保存并重启后 |
