J1939协议理解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

J1939协议理解

今天读了J1939协议的介绍文档,下面主要说说我的理解:

1、网络应用分为几个层

物理层SAE J1939-11

数据链路层SAE J1939-21

网络层SAE J1939-31

应用层SAE J1939-71

故障诊断SAE J1939-73

网络管理层SAE J1939-81

2、下面主要说说数据链路层和应用层

数据链路层:为物理连接之间提供可靠的数据传输。包括发送CAN 数据帧所必需的同步、顺序控制、

出错控制和流控制。

首先要明白几个概念

PGN:参数组编号

帧(Frame): 组成一个完整信息的一系列有序的数据位。帧又被划分成几个域,每个域包括了预定义类型的数据。

CAN 数据帧(CAN Data Frame):组成CAN 协议帧所必需的有序位域,以帧起始(SOF)开始以帧结束(EOF)结尾。

标准帧(Standard Frame):CAN2.0A规范中定义的使用

11 位标识符的CAN 数据帧。

扩展帧(Extended Frame):CAN2.0 B规范中定义的使用29 位标志符的CAN 数据帧。

包(Packet):一个单一的CAN 数据帧就是一个包。当一条报文包含参数组的数据长度小于等于8个字节时,这样的报文也称为包。

报文(Message):指一个或多个具有相同参数组编号的(PGN)数据帧。也就是说只要一个或多个CAN数据帧具有相同的PGN号,那他们就是属于一个报文。

多包报文(Multipacket Messages):当具有相同参数组编号的所有数据需要使用多个CAN 数据帧来传输时使用的一种J1939报文。每个CAN 数据帧拥有相同的标识符,但在每个包中数据不同。

协议数据单元PDU的格式

PDU是J1939传输数据的格式,它基于CAN协议的扩展帧传输方式。即它的标识符是29位的。

优先级:最高0(000)设置到最低7(111 )。所有控制报文的缺省优先级是3(011 )。

扩展数据页(EDP)和数据页(DP)的关系:

什么是第0页PGN,什么是第1页PGN?作用有什么不同?还不是太清楚

PDU 格式(PF)和PDU 特定域(PS)的关系

PDU 格式

(PF)

PDU

格式

PDU 特定域

(PS)

PF<240

PDU1

格式

PS是目标地址

(DA)

PF=240‾255

PDU2

格式

PS是组扩展

(GE)值

PDU1和PDU2时的参数组编号(PGN)数目

EDP DP PF PS PDU1时参数组编号0

0或者

1

0-239

目标地

2X240(PF的值)=480 EDP DP PF PS PDU2时参数组编号0

0或

者1

240-255

共16个数

组扩展值

0-255

(共256

个数)

2X16X256=8192在说说J1939的标识符合CAN协议的对应格式:

J1939的29位标识符格式

CAN协议扩展帧格式

首先,J1939的标识符是29位的,所以它使用的是CAN协议的扩展帧格式来传输数据。29位的标识符在寄存器中的存放位置,正好对应CAN的

ID28-ID0的29位。我们主要在ID18和ID17直接有两个位,SRR和IDE要求是必须写1的,它不包括在我们的J1939的标识符,还

有ID0的后一位RTR位也不包括在我们的标识符中,这一位是无效位,应该写0。

标识符对应的CAN扩展帧的位数:

优先权3位-----------------ID28 ID27 ID26

扩展数据页EP-------------ID25

数据页DP-------------------ID24

PDU格式PF------------- ID23~ID16

PDU特定域PS----------ID15~ID8

源地址SA-----------------ID7~ID0

如果ECU读回来一串数据怎么判断参数组编号PGN呢?

首先,把数据的前29个字节(标识符)提取出来。

然后进行解析,解析方式:

把ID28~ID24提取出来组成一个字节(对应优先权位、EP、DP)把ID23~ID16提取出来组成一个字节(对应PF的8位)

把ID15~ID8提取出来组成一个字节(对应PS的8位)

上述ID25~ID8就组成了数据的PGN(参数组编号)

例如:

收到的前29个字节是0x67,0x98,0x1c,0xa2

看看它们的存储方式:

BI

T7

6543210

ID R0ID

28

ID

27

ID

26

ID

25

ID

24

ID

23

ID

22

ID

21 01100111

0x

67

ID R1ID

20

ID

19

ID

18

SR

R=1

ID

E=1

ID

17

ID

16

ID

15 10011000

0x

98

ID R2ID

14

ID

13

ID

12

ID1

1

ID

10

ID

9

ID

8

ID

7

相关文档
最新文档