Wednesday, 26 May 2021 05:35

J1939协议与CAN2.0对应关系图表 Featured

CAN2.0B协议数据定义与SAE J 1939协议消息中R,DF,PF,PS,SA,PGN,SPN的对应的关系.
CAN2.0是一种总线规范,是数据链路层的技术。J1939是SAE(美国汽车协会)定义的基于CAN总线的规范,目的是解决不同发动机厂商、不同ECU厂商的兼容性问题。

J1939应用层协议详细描述了用于J1939网络的每个参数,包括其数据长度、数据类型、分辨率、范围及参考标签,并为每个参数分配了一个编号(SPN)。由于J1939协议是以协议数据单元(PDU)的形式进行传输,而一个PDU包含8个字节数据,因此,需要对这些参数进行组合。在J1939应用层协议中还详细定义了参数组,包括每组参数的更新率、有效数据长度、数据页、PDU格式、PDU细节、默认优先权及参数组的内容,并为每个参数组分配一个参数组编号(PGN)。

       PGN(parameter group number)是一个24位的值,包括保留位(R)、数据页位(DP)、PF(PDU格式场)和PS(群扩展场)等要素。

       SPN(SPN:Suspect Parameter Number)是PG(参数组)下面的具体参数的一个编号,而PGN是参数组编号,可以理解为一个PGN包含了按一定方法分类的一组参数,而每个具体参数又有它自己的编号(就是SPN)。
      SAE J1939的应用层以PGN和SPN的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率和数据范围等。

1、J1939和CAN2.0的关系

J1939是在CAN2.0B的基础上,对仲裁场部分的29位ID的重新解释;其它部分完全一样。
29位ID分为:3位的优先级、8位的PF(帧格式)、8位的PS(帧扩展)、8位的SA(源地址)、1位的DP(Data Page数据页)、1位的保留位。
其中1位的DP、8位的PF、8位的PS组成了PGN;
PGN是Parameter Group Number;是参数组列表。
在J1939中,将消息分为了PDU1和PDU2两种格式。
PDU1格式的消息发送给特定地址的ECU,地址用8位的PS记录;PDU2格式的消息则发送给所有的ECU,8位的PS用于扩展。
当PF的值在0-239时,表示该消息为PDU1格式,PS为DA(目地地址)。
当PF的值在240-255时,表示该消息为PDU2格式,PS为扩展地址。

2、J1939的物理特性:

总线最大长度为40M;最大支持30个节点;节点最大长度为1M;传输速率最大为250Kbps;3根线(CAN_H、CAN_L、GND)
J1939的分层:
J1939/11:物理层:物理介质、总线设计、长度、节点;
J1939/21:数据层:PGN信息、帧格式;
J1939/31:网络层;
J1939/71/73:应用层;信息分享、控制、广播、故障诊断;

3、PGN

PGN是Parameter Group Number的简称。J1939中最大支持(240+16×256)×2个PGN。
当消息为PDU1格式时,PGN=DP×256×256+PF;
当消息为PDU2格式时,PGN=DP×256×256+PF*256+PS;
在J1939中,消息的传递以参数组的形式,每个参数组中有若干参数,每个参数是一个SPN;

4、SPN

SPN:Suspent Parameter Number:特定的参数编号;例如:SPN 190表示发动机转速。

5、CAN2.0与J1939的关系、J1939与特定的厂商协议的关系

CAN2.0是一种总线规范,是数据链路层的技术。J1939是SAE(美国汽车协会)定义的基于CAN总线的规范,目的是解决不同发动机厂商、不同ECU厂商的兼容性问题。J1939定义了 一系列的PGN和SPN,这些PGN包含了发动机、变速器、车轴等汽车上各部件的信息;对参数的表示方法(状态和值)又定义了SLOT(Scaling比例、Limit界限、Offset偏移、Transfer传送)。ECU厂商都应该遵循这个规范。ECU模块的功能不同,厂商不同,在J1939的基础上,又表现出其多样性:支持或者不支持某些PGN、SPN和SLOT;新增了某些J1939未定义的PGN和SPN。

6、PDU消息包在CAN2.0上的拆包和重组

CAN2.0的数据场最多支持8字节的数据,如果PDU的数据小于等于8字节,1个PDU用1个CAN2.0帧传输即可;如果PDU的数据大于8字节,就需要在发送时进行拆包,在接收时进行重组。接收端如何识别是否需要重组以及怎么重组呢?J1939的做法是在拆包的情况下,将8字节的数据区的第一个字节用于表示拆包后的序号(1-255);因此,最长的PDU为255×7字节。

7、PDU的内容解析

PDU:Protocol Data Unit:协议数据单元。
在数据链路层CAN之上的就是PDU,包含了CAN2.0中仲裁场、控制场和数据场部分的内容。对J1939协议的解析其实就是对PDU的协议解析,先对接收到的包进行重组,构建一个完整的PDU包;再从PDU中数据包中提取出PGN和SPN对应的值。

      下表展示了CAN2.0B协议数据定义与SAE J 1939协议消息中R,DF,PF,PS,SA,PGN,SPN的对应的关系


定义: P 是优先级, R 是保留位, DP 是数据页, PF 是PDU 格式, PS 是特定PDU, SA 是源地址

示例:
ID:18DB33F1
 110   0   0   11011011  00110011  11110001  (//18 = 00011000,前面补3个000)
 P3~1  R1  DP    PF8~1    PS8~1     SA8~1
PGN = R1 | DP | PF | PS = 56115  (//if PF<=240,PS = 0)

P Priority
R Reserved
PS PDU Specific
SA Source Address
PF PDU Format
DLC Data Length Code 

DTC (4字节)有四个部分组成:

1、可疑参数码:SPN19位;

2、失效模式标识符:FMI   5位;

3、故障发生次数: OC 7位;

4、SPN转换方式: CM 1位;

 

CAN扩展数据帧:

j1939 can extended 0
PDU = ID+数据场;

PGN:

j1939 can extended 01

 

例子2:

;----------------------------------------------------------------------  (特定目标地址通讯)
                                 PDU1

      P    R     DP      PF       PS(DA)          SA      Data Field
      3    1     1       8         8              8       0-64

;----------------------------------------------------------------------  (广播)
                                 PDU2
      P    R     DP      PF       PS(GE)          SA      Data Field
      3    1     1       8        8               8       0-64

;---------------------------------------------------------------------
18FEDF00

110| 0 0 | 11111110 11011111 | 00000000
优 |     |                   |
先 |     |        PGN        |  源地址
级 |     |                   |

优先级:110 or 6
参数组:FEDF or 65247DEC
源地址:00H

j1939 can extended 2
j1939 can extended 3

Read 19625 times Last modified on Wednesday, 26 May 2021 07:03

GPS singal acquisition,replay and test equipment

Portable singal acquisition and replay

AI intelligent tongue imager

Tongue imager rafavi
 
Please support our site by viewing this advertisement.

Please support our site by viewing this advertisement

Free Content