CAN协议中的PGN
PGN是参数组编号,对于制定CAN协议来说十分重要,很多ECU在接受报文时识别的就是PGN而不是报文的ID,
报文ID作为报文的名字,是没一条报文专有的名字,而一个PGN不仅仅对应一条报文。CAN的扩展帧使用29位标识符,报文ID共有四个字节32位,PGN共有3个字节24位,两者有重合但是PGN并不是ID的一部分。
PGN的24位分别是:6个bits的0,一个扩展数据页(EDP)、数据页(DP)、PF、GE。当PF<240的时候,GE=0,否则GE正常取值。下面是两个例子:
报文ID:18FECA17
第一个字节是18,转换为二进制是0001 1000 ,可以看到优先级是110(十进制的6),DP=0,R=0
第二个字节是PF=FE(十进制是254>240),
第三个字节是GE,
第四个字节是17
这里因为PF>240,所以GE=CA,所以PGN=FECA
报文ID:0CDAEE17
第一个字节是0C,转换为二进制为 0000 1100,优先级011(十进制的3),DP=0,R=0
第二个字节是PF=DA(十进制是218<240)
第三个字节是GE
第四个字节是17
这里因为PF<240,所以GE=0,所以PGN=DA00