第三天-如何在DBC中描述CAN Signal的“负数/值”
CAN信号负值编码艺术:从温度到扭矩的工程智慧
当一辆电动车在-30℃的漠河严寒中启动,BMS系统读取的电池温度值在CAN总线上如何穿越“正负结界”?方向盘扭矩传感器如何用二进制表达左转与右转?在DBC文件中描述负数,远非简单的数学问题,而是一场精密的数据编码革命。
血泪教训:一次由负数引发的“幽灵刹车”
2022年某自动驾驶测试中,车辆在零下环境突然触发紧急制动:
- 雷达输出障碍物距离:-1.5米(实际为前方无目标)
- 原因:DBC中未正确定义负值范围
// 错误定义(未声明负值)
SG_ ObjDist : 16|12@1+ (0.1,0) [0|40.95] "米" // 仅支持正数
一、认知颠覆:二进制世界的“负号”本质
信号负值三要素
要素 | 作用 | 示例 |
---|---|---|
编码格式 | 决定数值表示规则 | 补码/符号位 |