Skip to content

配置模块 ​

配置用 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 表示关闭。

三种接口的保存、复位和恢复出厂操作对应如下:

操作ASCIIModbusJ1939
保存配置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 — 保存配置 ​

配置完成后执行一次。

text
SAVECONFIG

应答 OK。保存结果用重启后的读回确认。

REBOOT — 复位模块 ​

复位模块。需要重启生效的配置在复位后加载。

text
REBOOT

应答和确认方法见 配置流程与保存。

FRESET — 恢复出厂 ​

把用户配置恢复为该型号的出厂默认,随后自动复位。

text
FRESET

应答和确认方法见 配置流程与保存。

  • 恢复为出厂默认的项:输出配置、工作模式、安装方向、输出数据轴向、姿态零点、HI83 字段、多功能 IO 映射。各型号的具体默认值见 出厂默认配置,随型号接口不同的行按该表为准。
  • 不受影响:加速度计和陀螺仪的出厂校准、地磁校准结果。

恢复出厂后的检查清单。固件升级后同样按这份清单检查,升级步骤见 固件升级:

  1. 执行前记录:当前通信参数(各串口波特率、Modbus 从站 ID、CAN 速率和节点地址),并用 LOG COMCONFIG、LOG USRCONFIG 保存一份输出配置。
  2. 重启后先用原参数连接。恢复出厂后没有应答,再用出厂默认参数连接,仍然失联见 失联恢复。
  3. 读回确认:LOG COMCONFIG、LOG USRCONFIG 与 出厂默认配置 对照(固件升级后与升级前的记录对照)。不一致的项,按本页对应小节逐项重新设置并保存;仍然异常,按 联系技术支持前 准备资料。
  4. 检查航向:使用 9 轴的模块,按 航向旋转验证 检查;航向不对,按 地磁校准 重做。
  5. 重新设置并验证:按 设置顺序 重新设置安装方向、输出数据轴向和姿态零点,并验证。

警告

恢复出厂可能使主机失联;之前设置的姿态零点和安装方向都会丢失。排查通信问题时,先按 故障排查 核对接线、波特率和从站地址,恢复出厂不是第一步。

串口与数据输出 ​

模块的串口既接收 ASCII 命令,也输出二进制数据帧。串口参数固定为 8N1,默认输出和各接口的出厂默认见 出厂默认配置。

SERIALCONFIG — 串口波特率 ​

设置串口波特率。

text
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 — 数据帧输出 ​

设置某个串口输出哪种数据帧、多久输出一次。

text
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 只临时恢复或暂停当前串口的全部输出,不改变周期配置。

示例:

text
→ LOG HI91 ONTIME 0.01
← OK

更多取值:

命令说明
LOG HI91 ONTIME 0.01当前串口 HI91 以 100 Hz 输出
LOG COM2 HI91 ONTIME 0.002COM2 上 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 1HI91 改为 SYNC_IN 脉冲触发

设置命令不检查带宽,估算和实测方法见 输出带宽与波特率。使用 SOUT 同步输出时对 COM1 的限制见 SOUT 同步输出。

LOG HI83 MAP — HI83 字段选择 ​

选择 HI83 帧包含哪些数据段。

text
LOG HI83 MAP <BITMAP>
  • <BITMAP>:十六进制写 0x 前缀,否则按十进制处理;十进制不带前导零。每一位对应一个数据段。
  • 只置位 data_bitmap 位定义 表里的公开位(掩码见该表),其余位保持为 0。置位其他位时,模块不一定返回 ERR,输出的帧无法解析。
  • 选择字段时,按 输出带宽与波特率 估算帧长。
  • 默认 0x000000FF;-I2C 型号的出厂字段不同,见 出厂默认配置。

MAP 是全局设置,各串口共用。命令立即生效,下一帧就使用新的位图,并自动保存,无需 REBOOT(再执行 SAVECONFIG 也无妨)。用 LOG COMCONFIG 读回 MAP,再检查实际输出帧的 data_bitmap,两者一致才算完成。

示例:

text
→ 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 VERSIONPNAME(型号)、BUILD、UUID、SN、APP_VER(固件版本)、BL_VER
LOG COMCONFIG当前串口的 BAUD,各数据帧的 ONTIME(单位 ms)或 ONMARK,HI83 的 MAP
LOG USRCONFIGPROFILE(工作模式)、URFR(安装方向)、COORD(输出数据轴向)
LOG MCAL STAT地磁校准的 STAT 和 PROGRESS
text
→ LOG COMCONFIG
← COM=COM1
← BAUD=115200
← MSG=HI83, ONTIME=0
← MSG=HI83, MAP=0xFF
← MSG=HI91, ONTIME=10
← OK

LOG COMCONFIG 的 ONTIME 单位是毫秒,设置命令的单位是秒:读回 ONTIME=20 对应 LOG HI91 ONTIME 0.02。应答里还可能有其他 MSG= 行,示例已省略,可以忽略。应答按 KEY 名解析,规则见 应答规则;LOG VERSION 的应答示例见 用串口命令验证。

工作模式 ​

工作模式决定姿态解算使用哪些传感器和运动约束。

text
CONFIG ATT MODE <VAL>
VAL模式适用场景
06 轴(VRU)只用加速度计和陀螺仪,输出 相对航向,见 航向约定;不受磁场影响,适合室内、机器人、近电机等场景
19 轴(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 放不下,只会丢帧,估算见 输出带宽与波特率。

text
→ 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

检查要点:

  • BAUD=921600、MSG=HI91, ONTIME=2(毫秒)、PROFILE=0 三项与设置一致。URFR、COORD 取模块当前的设置,示例只展示读回格式,出厂值见 出厂默认配置。
  • 恢复输出后,相邻 HI91 帧的 system_time 间隔应为 2 ms;出现整倍数间隔即丢帧,判据见 输出带宽与波特率。
  • 带 RS-485 接口并作 Modbus 从站使用的型号,跳过步骤 5,原因见 使用前准备。
  • 接入 ROS 时,输出数据轴向(COORD 4)和姿态零点的设置顺序见 输出数据轴向,输出帧的选择见 选择输出。

最后更新:

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