2020-04-26
FAQ200426:J1939人肉解码基础知识问答
作者:智维电子 点击:3319
J1939人肉解码基础知识十问十答
1、什么是字位(bit)?
答:位:计算机存储信息的最基本单位,以二进制显示,每一位的状态只能是0或1,一般称为比特(bit) 1111 1010 1111 1111
2、什么是字节(Byte)?
答:字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解
释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)
3、什么是字(Word)?
答:16位二进制位一个字,即两个字节
4、原始CAN Message格式
5、十六进制转二进制,二进制转十六进制 FEF1
F E F 1 (十六进制数)
1111
1110 1111 0001(二进制数)
6、PGN如何计算?
答:PGN:Parameter Group Number,参数组编号
例如:给出can-id=0x18FEF100
第一字节 18,转为二进制为0001 1000
priority = (can_id >> 26)
& 0x7
优先级为110,优先级为06
第二个字节 PF=FE (PF>240)
第三个字节 PS=F1
第四个字节 SA=00
7、CAN ID 与PGN 、SPN 之间有什么关系?
答:SPN:Suspect Parameter Number,怀疑参数数量
SPN需要通过计算出PGN的值,再到J1939DA_2020_01.xls进行查找
8、SAE J1939 PDU由多少个字段组成
答: 7个,分别是P(优先级)、EDP(扩展数据页)、DP (数据页)、PF(PDU格式)、 PS (特定协议数据单元)、SA(源地址)、DATA(数据)
9、PGN与CAN ID有什么关系?
答:从图中可以看出,29位的CAN ID 由P、PGN、SA组成,给出一个CAN
ID ,可以计算出PGN
10、PS的取值如何确定?
答:PS的取值由PF决定。
当PF小于240时,PS字段为 DA,根据 PGN= (can_id >> 8) & 0x3FF00,计算PS的值
当240≤PF<255,PS直接从can id 中对应字段取值
如:can-id=0x18FEF100,PS=F1
PGN=00FEF1