配置模块
配置用 ASCII 命令完成。命令格式见 命令格式与响应,全部命令见 命令速查。
配置流程与保存
推荐流程:修改 → 读回 → SAVECONFIG → 需要时 REBOOT → 重启后再次读回,并检查实际输出。
- 读回命令是
LOG COMCONFIG(串口与输出)和LOG USRCONFIG(工作模式、安装方向、输出数据轴向),见 查询命令。 OK、ERR和无应答的含义见 应答规则。回显或OK只表示命令已收到,不表示已写入、已生效:以读回的值和实际输出为准,关键参数改后都要读回。Modbus、J1939 的写入回显和 I2C 的写事务成功也是如此,各协议的具体表现见各页。LOG USRCONFIG读到的是已保存的值,不一定是正在运行的值。需要重启的项,重启后再读回一次。REBOOT、FRESET等复位类命令常来不及应答。等约 1 s 后用LOG VERSION确认模块恢复通信,不要重发命令。- 数据帧和应答共用串口。用脚本配置时,先发
LOG DISABLE暂停输出,配置完再发LOG ENABLE。LOG DISABLE不保存,复位后输出自动恢复。 - 读回正常但输出不对、丢帧时,见 按现象排查。
各配置项何时生效
| 生效时机 | 配置项 |
|---|---|
| 立即生效 | 串口波特率(SERIALCONFIG)、数据帧输出开关 / 周期 / 触发方式、HI83 字段选择(LOG HI83 MAP)、姿态零点与校平、地磁校准结果 |
保存并 REBOOT 后生效 | 工作模式、输出数据轴向、安装方向、多功能 IO 映射 |
经 Modbus 或 J1939 写入的串口波特率,保存并复位后才生效;写入后读回的值不代表已经生效。其他页命令表和寄存器表里的「生效」列只是索引,以本表为准。
三种接口怎么改配置
同一组设置可以用三种接口修改,各型号提供哪些接口见适用产品。本页以 ASCII 命令为主线:
- ASCII 命令:用任意串口终端操作,见本页和 ASCII 命令。
- Modbus RTU:按寄存器读写,寄存器地址、取值和示例见 寄存器列表。作为从站使用前的准备见 使用前准备。
- J1939 配置帧:通过 CAN 总线读写,见 配置协议。CAN 输出只设置周期,周期为 0 表示关闭。
三种接口的保存、复位和恢复出厂操作对应如下:
| 操作 | ASCII | Modbus | J1939 |
|---|---|---|---|
| 保存配置 | SAVECONFIG | 向寄存器 0x0000(CTRL)写 0x0000 | 向参数地址 0x0000 写 0x00000000 |
| 复位 | REBOOT | 向寄存器 0x0000(CTRL)写 0x00FF | 向参数地址 0x0000 写 0x000000FF |
| 恢复出厂 | FRESET | 向寄存器 0x0000(CTRL)写 0x0001 | 向参数地址 0x0000 写 0x00000001 |
HI83 字段用 ASCII 的 LOG HI83 MAP 设置。-I2C 型号还可以写 HI83_MAP 寄存器,见 配置寄存器。
SAVECONFIG — 保存配置
配置完成后执行一次。
SAVECONFIG应答 OK。保存结果用重启后的读回确认。
REBOOT — 复位模块
复位模块。需要重启生效的配置在复位后加载。
REBOOT应答和确认方法见 配置流程与保存。
FRESET — 恢复出厂
把用户配置恢复为该型号的出厂默认,随后自动复位。
FRESET应答和确认方法见 配置流程与保存。
- 恢复为出厂默认的项:输出配置、工作模式、安装方向、输出数据轴向、姿态零点、HI83 字段、多功能 IO 映射。各型号的具体默认值见 出厂默认配置,随型号接口不同的行按该表为准。
- 不受影响:加速度计和陀螺仪的出厂校准、地磁校准结果。
恢复出厂后的检查清单。固件升级后同样按这份清单检查,升级步骤见 固件升级:
- 执行前记录:当前通信参数(各串口波特率、Modbus 从站 ID、CAN 速率和节点地址),并用
LOG COMCONFIG、LOG USRCONFIG保存一份输出配置。 - 重启后先用原参数连接。恢复出厂后没有应答,再用出厂默认参数连接,仍然失联见 失联恢复。
- 读回确认:
LOG COMCONFIG、LOG USRCONFIG与 出厂默认配置 对照(固件升级后与升级前的记录对照)。不一致的项,按本页对应小节逐项重新设置并保存;仍然异常,按 联系技术支持前 准备资料。 - 检查航向:使用 9 轴的模块,按 航向旋转验证 检查;航向不对,按 地磁校准 重做。
- 重新设置并验证:按 设置顺序 重新设置安装方向、输出数据轴向和姿态零点,并验证。
警告
恢复出厂可能使主机失联;之前设置的姿态零点和安装方向都会丢失。排查通信问题时,先按 故障排查 核对接线、波特率和从站地址,恢复出厂不是第一步。
串口与数据输出
模块的串口既接收 ASCII 命令,也输出二进制数据帧。串口参数固定为 8N1,默认输出和各接口的出厂默认见 出厂默认配置。
SERIALCONFIG — 串口波特率
设置串口波特率。
SERIALCONFIG [<COM>] <BAUD>| 参数 | 取值 |
|---|---|
<COM> | 可选,COM1 或 COM2;省略时配置当前连接的串口 |
<BAUD> | 共 9 档:4800 9600 19200 38400 57600 115200 230400 460800 921600 |
命令成功时立即切换,波特率同时已保存,断电重启不会回到原来的值。配置结束时仍按流程执行一次 SAVECONFIG。
示例:SERIALCONFIG 921600、SERIALCONFIG COM2 460800。完整的发送与应答见 典型配置示例。
警告
只设置表中的 9 档,其他取值会被拒绝并返回 ERR。
修改当前连接的串口时,主机和模块按下面的时序切换:
- 发送前,记录当前波特率,确认主机支持目标波特率,并按 输出带宽与波特率 确认放得下已配置的输出。
- 模块在 原波特率 下返回
OK后立即切换。主机收到OK后切换波特率,短暂等待再清空接收缓冲。 - 模块可能在新波特率下再发一个
OK,所以按内容(KEY=行和结尾的OK)匹配之后的应答,而不是数OK的个数。
修改其他串口时,当前连接不受影响。切换后收不到应答,通常是主机波特率没有跟上,处理见 失联恢复。
LOG — 数据帧输出
设置某个串口输出哪种数据帧、多久输出一次。
LOG [<COM>] <MSG> ONTIME <秒>
LOG [<COM>] <MSG> ONMARK 1
LOG [<COM>] <MSG> ONMARK ONCE
LOG [<COM>] ENABLE
LOG [<COM>] DISABLE| 参数 | 取值 |
|---|---|
<COM> | 可选,仅 COM1、COM2;省略时配置当前连接的串口 |
<MSG> | HI91(定长浮点帧)或 HI83(可配置变长帧),格式见 HI91、HI83 |
ONTIME <秒> | 周期输出。推荐 0.001(1 kHz)到 1(1 Hz),最大 32.767;0 关闭 |
ONMARK 1 | 改为由 SYNC_IN 脉冲触发 |
ONMARK ONCE | 软件触发一次 |
两条 ONMARK 的含义和限制见 SYNC_IN 触发输出;它与 PPS 对时互斥,见 用途选择。
周期按整毫秒取整,帧率只能是 1000/N Hz。0.0025 这类值同样返回 OK,但实际周期不是 2.5 ms,以 LOG COMCONFIG 读回的 ONTIME(毫秒)为准。
设置立即生效,配置完成后按流程执行一次 SAVECONFIG。LOG ENABLE / LOG DISABLE 只临时恢复或暂停当前串口的全部输出,不改变周期配置。
示例:
→ LOG HI91 ONTIME 0.01
← OK更多取值:
| 命令 | 说明 |
|---|---|
LOG HI91 ONTIME 0.01 | 当前串口 HI91 以 100 Hz 输出 |
LOG COM2 HI91 ONTIME 0.002 | COM2 上 HI91 以 500 Hz 输出;须先把 COM2 波特率提高到 921600 |
LOG HI91 ONTIME 0 | 关闭 HI91 |
LOG HI83 ONTIME 0.01 | 先 LOG HI91 ONTIME 0 关闭原周期帧,再设置 HI83 100 Hz;波特率须满足所选字段的帧长 |
LOG HI91 ONMARK 1 | HI91 改为 SYNC_IN 脉冲触发 |
设置命令不检查带宽,估算和实测方法见 输出带宽与波特率。使用 SOUT 同步输出时对 COM1 的限制见 SOUT 同步输出。
LOG HI83 MAP — HI83 字段选择
选择 HI83 帧包含哪些数据段。
LOG HI83 MAP <BITMAP><BITMAP>:十六进制写0x前缀,否则按十进制处理;十进制不带前导零。每一位对应一个数据段。- 只置位 data_bitmap 位定义 表里的公开位(掩码见该表),其余位保持为 0。置位其他位时,模块不一定返回
ERR,输出的帧无法解析。 - 选择字段时,按 输出带宽与波特率 估算帧长。
- 默认
0x000000FF;-I2C 型号的出厂字段不同,见 出厂默认配置。
MAP 是全局设置,各串口共用。命令立即生效,下一帧就使用新的位图,并自动保存,无需 REBOOT(再执行 SAVECONFIG 也无妨)。用 LOG COMCONFIG 读回 MAP,再检查实际输出帧的 data_bitmap,两者一致才算完成。
示例:
→ LOG HI83 MAP 0x000000FF
← OK更多取值:
| 命令 | 输出内容 |
|---|---|
LOG HI83 MAP 0x000000FF | 加速度 / 角速度 / 磁场 / 欧拉角 / 四元数 / 系统时间 / UTC / 气压 |
LOG HI83 MAP 0x0000001F | 加速度 / 角速度 / 磁场 / 欧拉角 / 四元数 |
LOG HI83 MAP 0x00000C1B | 加速度 / 角速度 / 欧拉角 / 四元数 / MRU 位移与频率(MRU 型号) |
LOG HI83 MAP 0x002000FF | 默认字段 + 姿态 1σ(ATT_STD) |
修改 MAP 后,帧长立即变化,接收端的解析规则见 帧头与解析规则。
查询命令
| 命令 | 返回内容 |
|---|---|
LOG VERSION | PNAME(型号)、BUILD、UUID、SN、APP_VER(固件版本)、BL_VER |
LOG COMCONFIG | 当前串口的 BAUD,各数据帧的 ONTIME(单位 ms)或 ONMARK,HI83 的 MAP |
LOG USRCONFIG | PROFILE(工作模式)、URFR(安装方向)、COORD(输出数据轴向) |
LOG MCAL STAT | 地磁校准的 STAT 和 PROGRESS |
→ LOG COMCONFIG
← COM=COM1
← BAUD=115200
← MSG=HI83, ONTIME=0
← MSG=HI83, MAP=0xFF
← MSG=HI91, ONTIME=10
← OKLOG COMCONFIG 的 ONTIME 单位是毫秒,设置命令的单位是秒:读回 ONTIME=20 对应 LOG HI91 ONTIME 0.02。应答里还可能有其他 MSG= 行,示例已省略,可以忽略。应答按 KEY 名解析,规则见 应答规则;LOG VERSION 的应答示例见 用串口命令验证。
工作模式
工作模式决定姿态解算使用哪些传感器和运动约束。
CONFIG ATT MODE <VAL>| VAL | 模式 | 适用场景 |
|---|---|---|
| 0 | 6 轴(VRU) | 只用加速度计和陀螺仪,输出 相对航向,见 航向约定;不受磁场影响,适合室内、机器人、近电机等场景 |
| 1 | 9 轴(AHRS) | 融合磁力计,输出 绝对航向(参考磁北);需要洁净磁环境并完成 地磁校准 |
| 4 | 人形机器人 | 双足 / 人形机器人 |
| 5 | 室内低速机器人 | 扫地 / 清洁机器人等:静止判定更积极,停车时航向更稳 |
| 7 | 低动态 / 倾角仪 | 静态或准静态测量,输出更平滑 |
示例:CONFIG ATT MODE 0。保存并重启后生效,流程见 配置流程与保存;重启后 LOG USRCONFIG 应返回 PROFILE=0。Modbus 用寄存器 0x0006(PROFILE)设置,见 寄存器列表。
- 只设置表中的取值。
- 9 轴模式需要磁传感器。不带磁传感器的型号设为 9 轴后,
MAG_AIDING为 1 而MAG_DIST一直为 1,见 MAIN_STATUS 状态字。 - 更换工作模式后,姿态零点的处理见 设置顺序。
6 轴与 9 轴的选择见下图:

量程与带宽
量程:模块自动完成量程适配,用户无需手动配置。使用时,以对应型号数据手册中规定的加速度和角速度测量范围为准,按其最小值与最大值确定测量上下限。
采用 ICM-45686 的产品会在大动态时自动把量程切到 32 G / 4000 deg/s。HI91、HI83 和 CANFD83 的浮点输出携带完整量程;Modbus 和 J1939 的 i16 定点输出固定按 ±16 G、±2000 deg/s 换算,超出部分饱和在满量程,不会继续增大。
带宽:模块根据所选工作模式(PROFILE)自动调整带宽相关参数,优化响应延迟与输出噪声,兼顾低延迟和低噪声的应用需求,用户无需单独配置。具体带宽指标请查阅对应型号的数据手册。
典型配置示例
目标:6 轴模式,COM1 以 921600 bps 输出 500 Hz 的 HI91,并保存。顺序要点:先把波特率提到 921600,再把帧率提到 500 Hz。921600 bps 放得下 500 Hz 的 HI91,115200 bps 放不下,只会丢帧,估算见 输出带宽与波特率。
→ LOG DISABLE (1 暂停输出,应答不被数据帧打断)
← OK
→ CONFIG ATT MODE 0 (2 选 6 轴,重启后生效)
← OK
→ SERIALCONFIG 921600 (3 主机仍为 115200)
← OK
(主机切换到 921600,稍等片刻后清空接收缓冲;可能还会收到一个 OK,丢弃)
→ LOG DISABLE (4 在新波特率下再暂停一次)
← OK
→ LOG HI91 ONTIME 0.002 (5 周期 2 ms,即 500 Hz)
← OK
→ SAVECONFIG (6 保存)
← OK
→ REBOOT (7 复位,可能无应答;主机保持 921600,等待重启完成)
→ LOG DISABLE (8 重启后输出已恢复,先暂停再读回)
← OK
→ LOG COMCONFIG
← COM=COM1
← BAUD=921600
← MSG=HI83, ONTIME=0
← MSG=HI83, MAP=0xFF
← MSG=HI91, ONTIME=2
← OK
→ LOG USRCONFIG
← PROFILE=0
← URFR=24
← COORD=0
← OK
→ LOG ENABLE (9 恢复输出)
← OK检查要点:
