CAN ID 中的J1939-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




例如:0x18 FE DF 00   = 110   | 0      0   | 11111110 | 11011111      | 00000000

                                              P       R     DP         PF               PS                SA

        具体参数即为数据段(0-64).

优先级为 P = 110(2)或6(10)

PF>240则参数组(PGN)编号为 FEDF(16)或65247(10)


注意:PF<240 , PGN低字节置零.



个人练习:

EEC1  0x0CF00400   PGN = F004(16)   61444(10)    

EEC2  0x0CF00300   PGN = F003(16)   61443(10)   

EEC3  0x18FEDF00  PGN = FEDF(16)   65247(10)

LFE     0x18FEF200  PGN = FEF2(16)   65266(10)

应答消息 0x18E8FF00  PGN = E800(16)  59392(10)          (PF<240)




SAE J1939-71-2020是一项关于车辆应用层通信的技术标准。它是由汽车工程师学会(SAE)制定的,用于描述车辆控制系统之间的通信协议和数据交换格式。 该标准定义了在车辆系统使用的消息协议、通信速率、数据字段和识别的方法。它为不同的设备和通信系统提供了一个统一的规范,确保了数据的一致性和兼容性。 车辆应用层通信是指车辆控制系统之间的数据交换和信息传输。它可以用于诸如发动机控制、传动系统控制、车辆监控和故障诊断等方面。 根据SAE J1939-71-2020标准,车辆应用层通信主要基于控制器局域网络(CAN)技术。CAN总线是一种高度可靠、高效的数据通信系统,广泛应用于汽车领域。 在车辆应用层通信,SAE J1939-71-2020标准提供了一种灵活的消息传输方法,使得不同的控制器可以通过CAN总线进行相互之间的信息传递。这些消息可以是控制指令、传感器数据、故障代码等。 SAE J1939-71-2020标准还定义了数据协议的格式和编码方式。它使用16进制表示数据,其包括了识别码(PGN)、源地址(SA)、目标地址(DA)和数据内容。 总而言之,SAE J1939-71-2020是一个用于车辆应用层通信的标准,它提供了一种统一的协议和数据格式,使得车辆控制系统之间的通信更加简单和可靠。它在汽车工程领域具有广泛的应用,为车辆的控制和监测提供了基础。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值