解析CAN的J1939协议PDU报文


PF用来确定PDU格式:0——239表示PDU1格式;240——255表示格式2。

PDU1格式报文表示向特定或全局地址发送

PDU2格式报文表示向全局地址发送

PS由PF决定其含义

DA表示报文要发送的目标地址

GE表示PS在PDU2中与PF的4个最低有效位能够共同确定4096个PDU2格式参数组

数据场

数据场包含了参数组中的数据内容,通常控制类参数组数据长度等于8;其中未定义的字节以0xFF填充,已备将来分配;如果参数组数据长度超过8,要使用传输协议。

参数组与PGN

参数组数目=[240(PDU1)+16*256(PDU2)]*2(DP)=8672

PGN计算

PDU1格式

PGN=PF*256

PDU2格式

PGN=PF*256+GE

使用举例

报文解析

SPN(可疑参数编号)

SPN使用演示

物理数值=比列系数*总线数值+偏移量

根据上面图片,假如读取到报文中总线数值为100,则其物理温度为=100*1-40=60°

总线数值=(物理数值-偏移量)/比例系数