双 CAN 车速信号网关
本例用 BMCLI 原生信号网关配置完成双 CAN 车速适配:从底盘侧读取 km/h,在传感器侧按 m/s 编码发送,并配置有效性与目标保护规则。
sensor-speed.bmgw 是 BMCLI 原生网关工程,逻辑网络为 chassis 与 sensor;实际设备、速率和接线在本机 Bench 中配置。随文两个 DBC 说明线上布局,工程已经包含对应编码定义。
| 项目 | 配置 |
|---|---|
| 输入 | chassis,标准 CAN 0x100,8 字节,Speed 位于 bit 0,16 位 Intel,0.01 km/h |
| 变换 | m/s = km/h ÷ 3.6 |
| 输出 | sensor,标准 CAN 0x200,8 字节,Speed 位于 bit 0,16 位 Intel,0.01 m/s |
| 有效性 | 源 100 ms 后过期;Speed 无效 raw 为 65535,目标 Valid 位于 bit 16 |
| 发送 | 目标独立周期 20 ms |
| 教学保护 | 8 位 Counter 位于 bit 24,CRC8 位于 byte 7,参数在工程 e2e 配置中 |
保护规则演示目标独立生成 Counter/CRC。DBC 定义字段位置,工程 e2e 配置定义教学保护算法。用于项目时,按正式规范配置算法或插件,并通过独立测试向量校验。
在本目录运行:
bmcli gateway validate --file=sensor-speed.bmgw --format=json该命令在离线环境中检查网关工程的结构与定义。
准备两个互相独立的测试 CAN 网络:一个产生 0x100,另一个接收 0x200。物理发送源与目标接收方正常应答,速率和终端按台架配置。
- 用源 DBC 依次产生 0、36、72、108 km/h;目标应解码为 0、10、20、30 m/s,以上为预期值。
- 观察目标周期、Counter 与 CRC,再中断源超过 100 ms;目标应输出约定的无效编码并清除有效位。
- 恢复输入并检查有效状态恢复,同时保存原始帧以独立验证编码和保护字段。
正常值、超时、恢复和目标接收结果都符合预期后,再连接实际传感器。部署到树莓派时使用匹配系统架构的 BMCLI/BMAPI 包;有原生插件时一并提供对应 ARM 构建。
详见第十二篇教程。