SAE193921协议.docx
《SAE193921协议.docx》由会员分享,可在线阅读,更多相关《SAE193921协议.docx(75页珍藏版)》请在冰豆网上搜索。
SAE193921协议
商用车控制系统局域网络(CAN)通信协议
第4部分:
数据链路层
(英文名称)
(SAE1939-21:
1999MOD)
前言
GB/T××××《商用车控制系统局域网络(CAN总线)通信协议》包括11个部分:
—第1部分:
物理层—屏蔽双绞线(250K比特/秒)
—第2部分:
物理层—非车载诊断连接器
—第3部分:
物理层—非屏蔽双绞线(250K比特/秒)
—第4部分:
数据链路层
—第5部分:
应用层—车辆
—第6部分:
应用层—诊断
—第7部分:
网络管理
—第8部分:
参数组分配
—第9部分:
地址和标识分配
—第10部分:
可疑参数编号(SPN)
—第11部分:
网络层
本标准为GB/T××××的第4部分,对应于SAE1939-21:
2001《数据链路层》,本标准与SAE1939-21的一致性程度为修改采用(技术内容完全等同),主要差异如下:
—增加了“范围”及“规范性引用文件”
—原文引用了1939概述部分的术语,本标准将适用的大部分术语抄写过来,并给出了
定义.
本标准的附录A、B、C、D均为资料性附录。
汽车控制系统局域网络(CAN总线)通信协议
1范围
第4部分:
数据链路层
本部分规定了CAN总线的数据链路层的技术要求。
本部分适用于M2、M3及N类车辆。
2规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。
凡是注日期的引用文件,其随后所
有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而鼓励根据本标准达成协议的各
方研究是否可使用这些文件的最新版本。
凡是不注日期的引用文
GB/T××××.5应用层—车辆GB/T××××.7网络管理GB/T××××.8参数组分配GB/T××××.9地址和标识分配
3术语和定义
本标准采用下列术语和定义。
3.1
帧Frame
组成一个完整消息的一系列数据位。
帧又被划分成几个域,每个域包括了预定义类型的数据。
3.2
3.3
CAN数据帧CANDataFrame
组成传输数据的CAN协议帧所必需的有序位域,以帧起始(SOF)开始以帧结束(EOF)结尾。
扩展帧ExtendedFrame
CAN2.0规范中定义的使用29位标志符的CAN数据帧;
3.4
标准帧StandardFrame
CAN2.0b规范中定义的使用11位标识符的CAN数据帧;
3.5
包Packet
一个单一的CAN数据帧就是一个包。
当一条消息包含参数组的数据长度小于等于8个字节时,这样的消息也称为包。
3.6
消息Message
指一个或多个具有相同参数组编号的“CAN数据帧”。
3.7
多包消息MultipacketMessages
当具有相同参数组编号的所有数据需要使用多个CAN数据帧来传输时使用的一种J1939消息。
每个CAN数据帧拥有相同的标识符,但在每个包中数据不同。
3.8
参数组ParameterGroup(PG)
在一消息中传送参数的集合。
参数组包括:
命令、数据、请求、应答和否定应答等。
不论是单包消息还是多包消息,参数组都被看作数据。
因为参数组与源地址无关,因此可以从任何源地址发送任意的参数组。
3.9
参数组编号ParameterGroupNumber(PGN)
3字节,24位,包括保留位、数据页、PDU格式和组扩展域等。
参数组编号唯一标识一个参数组;
3.10
协议数据单元ProtocolDataUnit(PDU)协议数据单元是一种特定的CAN数据帧格式。
3.11
协议数据单元格式ProtocolDataUnitFormat(PF)
29位标识符中的一个8位数据域,用于识别协议数据单元的格式,并且全部或部分用作参数组的标号。
另外,它还是PGN的一个域。
3.11
特定协议数据单元PDUSpecific(PS)
29位标识符中的一个8位数据域,其具体定义由协议数据单元格式(PF)的值决定。
该域可能是表示目标地址(DA),也可能是组扩展(GE)。
另外,它还是PGN的一个域。
3.12
1型协议数据单元PDU1Format
用于发送到指定目标地址(DA)的消息。
特定协议数据单元(PS)中包含了目标地址(特定或全局);
3.13
2型协议数据单元PDU2Format
用于发送使用组扩展技术的消息。
这种协议数据单元不包含目标地址。
对于这种格式的协议数据单元,特定协议数据单元(PS)域表示组扩展;
3.14
标识符Identifier
CAN仲裁域的标识部分
3.15
数据域DataField
CAN数据帧中包含应用层定义的0-64位数据;
3.16
数据页DataPage
CAN数据帧标识符中用来选择两页参数组编号中一页的一个位。
它为参数组编号将来的扩展提供了可能。
另外,它还是PGN的一个域。
3.17
目标地址DestinationAddress,DA
29位CAN标识符中的PS域,表明需要接收该消息ECU的地址。
3.18
帧起始StartofFrame(SOF)
CAN数据帧中用来表示帧开始的第一个数据位;
3.19
帧结束EndofFrame,EOF
标志CAN数据帧结束的7位的域;
3.20
组扩展GroupExtension(GE)
CAN数据帧PDU中的一个域,是决定参数组编号时必不可少的信息;
3.21
优先权Priority
在标识符中一个3位的域,设置了传输过程中的仲裁优先级。
最高优先级为0,最低优先级为7。
3.22
保留位ReservedBit
在29位标识符中为将来定义而保留的一个数据位。
另外,它还是PGN的一个域。
3.23
肯定应答Acknowledgement,ACK
确认所请求的动作已经被理解并完成;
3.24
否定应答Negative-AcknowledgmentNACK
表明某个设备不能理解一个消息或者无法实现一个请求操作。
3.25
节点Node
将电控单元与网络相连的硬件。
一个节点在网络中可能拥有多个地址;
3.26
地址Address
8位位域,用于决定消息源(或者目标)。
3.27
位填充BitStuffing
用于保证发送或接收的消息具有保持最小数量的显性位或隐性位跳变的处理程序,进而实现CAN
数据帧中的位流正确的再同步。
更详细的讨论参见CAN的说明;
3.28
空闲状态Idle
没有节点传输或试图传输数据时的CAN总线状态;
3.29
首选地址PreferredAddress
在声明地址时,电控单元首先尝试使用的地址。
3.30
仲裁Arbitration
解决一个或多个ECU在获取对共用总线的访问权时冲突的过程。
4符号缩写的含义
ACK
确认
NACK
否定
BAM
广播公告消息
P
优先级
CAN
控制器局域网
PDU
协议数据单元
CRCCTS
循环冗余码校验
清除发送
PFPGN
PDU格式
参数组编号
DADLC
目标地址
数据长度码
PSGE
特定PDU
组扩展
DP
数据页
DA
目标地址
EOF
帧结束
R
保留
ID
标识符
RTR
远程传输请求
IDE
标识符扩展位
SA
源地址
LLC
逻辑链路控制
SOF
帧起始
LSB
最低有效字节或位
SRR
代用远程请求
MAC
介质访问控制
TP
传输协议
MF
制造商
Th
保持时间
MSB
最高有效字节或位
Tr
响应时间
NA
禁用
un
未定义
5要求
数据链路层为物理连接之间提供可靠数据传输。
包括发送CAN数据帧所必需的同步、顺序控制、出错控制和流控制。
流控制是以统一的消息(帧)格式实现的。
5.1消息/帧格式
消息格式遵循CAN规范。
本标准参考的CAN规范是1991年9月的“CAN2.0B”。
但必须分清本标准与CAN规范的差别,二者有冲突的地方必须以本标准为准。
比如,在消息路由部分,CAN规范中定义不使用节点地址,而在本标准中规定必须使用节点地址。
本标准定义的网络要求采用节点地址寻址以防止多个节点使用同一个标识符(ID)。
另外,本标准中有许多在CAN规范中没有定义的附加要求。
“CAN2.0B”包括两种消息格式:
标准帧和扩展帧。
与“CAN2.0B”的兼容性意味着,在同一网络
中通过采用位编码的方式可以识别出这两种格式的消息。
因此,在本标准定义的网络中这两种格式的消息都可以存在。
但本标准只针对扩展帧格式定义了一套完整的标准化通信策略。
所有标准帧格式消息都必须按照本标准中定义的规则作为专用消息使用。
采用本标准的设备必须使用扩展帧格式。
网络中可以有标准帧格式消息,但仅限于本标准中定义的部分。
注:
标准帧设备不响应网络管理消息,不支持标准化通信。
如图1所示,CAN数据帧被分成不同的位域。
CAN标准帧和扩展帧格式消息的区别在于仲裁域和控制域的位数和对位域的识别不同。
CAN标准帧消息如A所示,仲裁域有11位标识符。
CAN扩展帧消息如B所示,仲裁域有29位标识符。
本标准将CAN数据帧格式的仲裁域的29位标识符作了进一步的定义,如表1。
在表1中分别描述了CAN网络的29位标识符、本标准的29位标识符、CAN网络的11位标识符和本标准的11位标识符中的仲裁域和控制域。
本标准每个位分配的详细定义见5.2。
在本标准中,CAN数据帧数据域包括从字节1到字节8。
字节1的最高位(位8)是紧接着DLC域发送的第一位,字节8的最低位(位1)是最后发送的数据位,紧接着的是CRC域。
5.1.1消息帧格式—CAN2.0B扩展帧格式
CAN扩展帧的格式如图1所示,包含一个单(个)一的协议数据单元(PDU)。
PDU包含7个域。
这些域的信息由应用层提供,包括优先级、保留位、数据页、PDU格式、特定PDU(目标地址、组扩展或专用)、源地址和数据域。
PDU将被封装在一个或多个CAN数据帧中,通过物理介质传输到其他网络设备。
本标准支持的开放系统互连(OSI)模型如图2所示。
注:
某些参数组定义要求使用一个以上的CAN数据帧来发送消息。
A.CAN标准帧格式
CAN数据帧
位填充为127位的最大帧长度
仲裁段12位
控制段6位
数据段
CRC分隔符
S
O标识符
位F
RI
TDr
RE0
DLC数据段
CRC
ACKE
段O
F
111
111
40-64
15127
位填充无位
填充
B.CAN扩展帧格式
CAN扩展数据帧
位填充为150位的最大帧长度
仲裁段32位
控制段
6位数据段
CRC分隔符
S
O标识符
位F
S
I
RD标识符
RE扩展
R
Trr
R10
DLC
数据段
CRC
ACKE
段OF
111
1118
1114
0-64
15127
位填充
图1CAN数据帧
节点1节点5
无`位填充
应用层
优先级,R,DP,PF,SA,数据
优先级,R,DP,PF,SA,数据应用层
网络层
网络层
数据链路逻辑链接控制
介质访问控制
定义:
R
物理层
一个或多个PDU
一个或多个CAN数据帧
一个或多个PDU
一个或多个CAN数据帧
数据链路逻辑链接控制
介质访问控制
物理层
定义:
R是保留位,DP是数据页,PF是PDU格式,PS是特定PDU,SA是源地址
图2OSI在本标准中的应用表1本标准和CAN的仲裁域与控制域的对照表
29位标识符
CAN
29位标识符本标准
帧位位置
11位标识符
CAN
11位标识符
本标准
(1)
SOF
(2)
SOF
SOF
(2)
1
SOF
ID28
P3
2
ID11
P3
ID27
P2
3
ID10
P2
ID26
P1
4
ID9
P1
ID25
R1
5
ID8
SA8
ID24
DP
6
ID7
SA7
ID23
PF8
7
ID6
SA6
ID22
PF7
8
ID5
SA5
ID21
PF6
9
ID4
SA4
ID20
PF5
10
ID3
SA3
ID19
PF4
11
ID2
SA2
ID18
PF3
12
ID1
SA1
SRR(r)
SRR
(2)
13
RTR(x)
IDE(r)
IDE
(2)
14
IDE(x)
RTR
(2)(d)
ID17
PF2
15
r0
IDE
(2)
ID16
PF1
16
DLC4
DLC4
ID15
PS8
17
DLC3
DLC3
ID14
PS7
18
DLC2
DLC2
ID13
PS6
19
DLC1
DLC1
ID12
PS5
20
ID11
PS4
21
ID10
PS3
22
ID9
PS2
23
ID8
PS1
24
ID7
SA8
25
ID6
SA7
26
ID5
SA6
27
ID4
SA5
28
ID3
SA4
29
ID2
SA3
30
ID1
SA2
31
ID0
SA1
32
RTR(x)
RTR
(2)(d)
33
r1r1
(2)34
r0r0
(2)35
DLC4
DLC4
36
DLC3
DLC3
37
DLC2
DLC2
38
DLC1
DLC1
39
1.专用11位标识符的要求格式。
2.在CAN中定义的位,在本标准中定义不变。
3.备注:
SOF-帧起始位P#-本标准优先级位#n
ID##-标识位#nR#-本标准保留位#nSRR-代用远程请求SA#-本标准目标地址#nRTR-远程传输请求位DP-本标准数据页
IDE-标识符扩展位PF#-本标准PDU格式位#nr#-CAN保留位PS#-本标准特定PDU位#nDLC#-数据长度码位#n
(d)-显性位
(r)-隐性位
(x)-消息状态位
5.1.2参数组编号(PGN)
在识别CAN数据帧的数据域属于哪个参数组时,需要一个24位的值。
这个24位的值首先发送最低字节(见表2,最低字节先发送,其次是中间字节,最后是最高字节)。
PGN是一个24位的值,包括以下部分:
保留位、数据页位、PDU格式域(8位)和组扩展域(8位)。
这些位域转换到PGN的过程如下。
若PF值小于240(F016),PGN的低字节置0。
否则,将其值设为组扩展域的值。
表2是PGN及其组成部分位域对应的十进制值示例。
注意:
用本文档规定的范例,并非全部131,071种组合都可用于分配(计算如下:
2页*[240+(16*256)]=8,672)。
见GB/T××××.8,可查现行的最新分配。
参见PGN表,表2,PGN位域和其相应的十进制值的转换。
5.1.3本标准支持的“CAN2.0B”标准帧格式消息
本标准网络中的控制器可以支持CAN标准帧(11位标识符)消息格式。
虽然与本标准消息结构不兼容,但为了协调这两种格式的共存,在最底层做了定义。
在该层定义中允许使用此格式的设备与其他设备不发生干扰。
CAN标准帧格式消息是用来专用的,参见表1,11位标识符功能分析如下:
最高三位用作优先级位,最低八位定义PDU的源地址。
优先级位的定义见5.2.1。
源地址在源地址表中定义(见GB/T××××.9)
备注:
两个不同格式的消息试图同时访问总线时可能产生错误的总线仲裁。
标准帧消息中的源地址(SA)比扩展帧消息中的优先级高。
含有11位标识符的消息(标准帧)含有源地址,其优先级比含有保留位、数据页位和PF的29位标识符消息(扩展帧)高。
三位优先级位是用来实现正确的总线仲裁的。
本标准只针对扩展帧格式定义了一套完整的标准化通信策略。
符合CAN2.0A规范的硬件一定不能用在本网络中,因为这种硬件禁止扩展帧格式的消息进行通信。
表2参数组编号(PGN)示例
PGN子部
PGN
PGN子部
PGN
PGN子部
PGN
PGN子部
PGN
PGN子部
PGN
(MSB)
(MSB)
(MSB)
(LSB)
字节1
字节1
字节1
字节2
字节3
在CAN数
在CAN数
在CAN数
据帧中第
据帧中第
据帧中首
三发送
R
DP
二发送
先发送
PGN
Dec10
PGN
Hex16
可分配PG
的数目
累加的PG
数目
位8-3
位2
位1
位8-1
PS
位8-1
0
0
0
0
0
0
00000016
0
0
0
238
0
60928
239239
00EE0016
0
0
0
239
0
61184
00EF00161240
0
0
0
240
0
61440
00F00016
3840
0
0
0
254
255
65279
00FEFF16
4080
0
0
0
255
0
65280
00FF0016
256
0
0
0
255
255
65535
00FFFF16
4336
0
0
1
0
0
65536
01000016
240
0
0
1
239
0
126720
01EF0016
4576
0
1
240
0
126976
01F00016
0
0
1
255
255
131071
01FFFF16
4096
8672
CATARC
或制造商分配
PF
SAE
MFSAE
MFSAE
SAE
共
86728672
5.2协议数据单元(PDU)
协议数据单元由七部分组成,分别是优先级,保留位,数据页,PDU格式,特定PDU(可作为目标地址、组扩展或专用),源地址和数据域。
PDU被封装在一个或多个CAN数据帧中,通过物理介质传送到其他网络设备。
每个CAN数据帧只能有一个PDU。
需要指出的是,有些参数组编号定义需要多个CAN数据帧才能发送其数据。
注:
某些CAN数据帧的域不是在PDU中定义,它们完全由CAN规范决定,对OSI数据链路层以上的层是不可见的。
它包括SOF,SRR,IDE,RTR,控制域部分,CRC域,ACK域和EOF域。
这些域由CAN协议定义的,本标准不作修改。
这七个PDU域如图3所示。
PDU中的每一段在后继的章节中定义。
J1939PDU
R
DP
...
P
PF
PS
SA
数据段
3
1
1
8
8
8
0-64
位
P是优先级,R是保留位,DP是数据页,PF是PDU格式,PS是特定PDU,SA是源地址
定义:
5.2.1优先级(P)
图3协议数据单元(PDU)
这三位仅在总线传输中用来优化消息延迟,接收机必须对其做全局屏蔽(即忽略)。
消息优先级可从最高0(0002)设置到最低7(1112)。
所有控制消息的缺省优先级是3(0112)。
其他所有信息、专用、请求和ACK消息的缺省优先级是6(1102)。
当定义新的参数组编号,或总线上通信量变化时,优先级可以升高或降低。
当消息被添加到应用层,将给出一个推荐的优先级。
OEM可以对网络做相应调整,优先级域应当是可重编程的。
5.2.2保留位(R)
保留此位以备今后开发使用。
不能将此位与CAN保留位混淆。
所有消息应在传输中将SAE保留位置0。
今后新的定义可能扩展PDU格式域,定义新的PDU格式,扩展优先级段或增加地址空间。
5.2.3数据页(DP)
数据页位选择参数组描述的辅助页。
在分配页一的PGN之前,先分配完页零的可用PGN。
5.2.4PDU格式(PF)
PF域,8位。
确定PDU的格式,也是确定数据域对应参数组编号的域之一。
参数组编号用来确定或标识命令、数据、请求、确认和否定等。
参数组编号所确定或标识的信息需要一个或多个CAN数据帧进行通信。
若消息长于8字节,必须将消息分包发送(见5.10)。
如消息长小等于8字节,则使用单个CAN数据帧。
参数组编号可以包含一个或多个参数,这里参数是指如发动机转速之类的数据。
尽管一个参数组编号可以只包含一个参数,我们推荐对多个参数进行组合以利用数据域的全部8字节。
已经定义好了两种专有参数组编号,允许使用PDU1和PDU2两种格式(共定义了两种PDU格式:
PDU1格式和PDU2格式)。
专有信息的解释因制造商而异。
例如,即使两个不同的发动机使用同一个源地址,制造商A的专用通信极可能与制造商B不同。
5.2.5特定PDU(PS)
特定PDU是一个8位域,它的定义取决于PDU格式,根据PDU格式它可能是目标地址或者组扩展。
若PDU格式(PF)域的值小于240,特定PDU域是目标地址。
若PF域的值在240和255之间,特定PDU包含组扩展(GE)值,见表3。
参数组编号的范围参见图4。
表3特定PDU
PDU格式(PF)域特定PDU(PS)域
PDU1格式
PDU2