什么是 CAN 报文解码?
CAN 总线传输的原始数据是十六进制的字节序列。要知道这些字节代表什么含义(车速、转速、温度、SOC 等),需要按照 DBC 文件中的信号定义,从指定的位位置提取数据,再经过 Factor/Offset 换算得到物理值。这个过程就是 CAN 报文解码。
手动算太容易出错
手动解码需要关注起始位、位长度、字节序(Intel 小端 / Motorola 大端)、有无符号、缩放公式等细节,稍不注意就算错。尤其是 Motorola 字节序的位编号方式和 Intel 完全不同,混起来很容易出问题。本工具自动处理这些细节,输入 hex 报文即可看到所有信号的原始值和物理值。
解码公式
物理值 = 原始值 × Factor + Offset。例如一个温度信号 Factor=0.5、Offset=-40,原始值 180,则物理值 = 180 × 0.5 + (-40) = 50°C。