缩写:
PGN:参数组(群)编号
PDU:协议数据单元
SPN:可疑参数编号
SOF:帧起始位
SRR:代用远程请求
RTR:远程传输请求
IDE:标识符扩展为
DLC:数据长度码
J1939-21 数据链路层:
数据链路层:为物理链接之间提供一种可靠的数据传输(发送CAN数据帧必需的同步、出错控制、顺序控制和流控制)。
有几个概念先介绍下:
帧 (Frame):组成一个完整信息的一系列有序的数据位;
其中CAN帧以帧起始(SOF)开始,以帧结束(EOF)结尾;
标准帧:定义为11位标识符
扩展帧:定义为29位标识符
报文(Message):一个或多个具有相同参数组编号(PGN)的CAN数据帧;(一个或多个
CAN数据帧具有相 同PGN号,就是报文)
包(Packet):一个单一的CAN数据帧就是1个包;(一个报文包含参数组的长度小于等
于8字节,也称为包)
多包报文:当具有相同参数组编号(PGN)的所有数据需要使用多个CAN数据帧来传输时使
用的一种J1939报 文。(每个CAN数据帧拥有相同的标识符,但每个包中数据不同)
协议数据单元(PDU):
格式如下图:
|
优先级 |
扩展数据页(保留) |
数据页位 |
PDU格式 |
PDU特定域 |
源地址 |
数据域 |
|
域 |
P |
R |
DP |
PF |
PS |
SA |
DATA |
|
位 |
3 |
1 |
1 |
8 |
8 |
8 |
8Byte |
|
其中,
优先级(P):3位用来表示优先级范围,所有控制 消息的缺省值是3(0112),其他所有信息、专用、请求和ACK的缺省优先级是6(1102)
数据页位(DP):数据页位选择参数群描述的辅助页。在分配页一的PGN之前,先分配完页零的可用PGN。
数据扩展页(EDP)和数据页(DP)关系:
扩展数据页位 (EDP) |
数据页位 (DP) |
功能描述 |
0 |
0 |
SAE J1939 第0页PGN |
0 |
1 |
SAE J1939 第1页PGN |
1 |
0 |
SAE J1939 保留 |
1 |
1 |
定义位ISO 15765-3报文 |
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 |
目标地址 |
|
EDP |
DP |
PF |
PS |
PDU2时参数组编号 |
0 |
0或者1 |
240-255共16个数 |
组扩展值0-255 (共256个数) |
2X16X256=8192 |
其中PGN计算公式为:
例:数据页位:0,PDU格式:235,特定PDU段:目标地址(对于TP.CM_BAM数据传送使用全局地址(DA=255))(对于RTS/CTS数据传送不允许用全局地址)
多包发送:
BAM:广播通知/公告消息
DT:数据传送消息
多包数据发送拆装与重组:大于8字节消息发送,必须拆分,
拆分原则:数据域的首字节定义为数据包序列编号:1-255;
其中,RTS(发送者),请求发送
广播数据传送次序如下图:
missed
上图中广播公告消息格式为(TP.CM_BAM):全局目标地址
字节: |
1 |
控制字节=32,广播公告消息(BAM) |
字节: |
2,3 |
整个消息大小,字节数目 |
字节: |
4 |
全部数据包的数目 |
字节: |
5 |
保留给SAE设定使用,该字节应设为FF16 |
字节: |
6-8 |
所装载数据的参数群编号 |
而数据传送消息格式(TP.DT):
故障诊断
故障诊断代码DTC构成:
其中,DM1:当前故障码(正在发送的所有故障)
DTC由四个字节构成
DTC |
|||||
字节3 SPN低8位 (第8位为最高有效位) |
字节4 SPN第2字节 (第8位为最高有效位) |
字节5 SPN高3位(第8位为最高有效位) FMI低5位(第5位为最高有效位) |
字节6 |
||
SPN |
FMI |
CM |
OC |
||
8bit |
3bit |
5bit |
1bit |
7bit |