J1939协议理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ):组成 开始以帧结束(EOF )结尾。
标准帧(Standard Frame ):CAN2.0A 扩展帧(Extended Frame ):CAN2.0 B
CAN 协议帧所必需的有序位域, 以帧起始(SOF )
规范中定义的使用 11位标识符的CAN 数据帧。
规范中定义的使用 29位标志符的CAN 数据帧。
当一条报文包含参数组的数据长度
包(Packet ):一个单一的 CAN 数据帧就是一个包。
小于等于8个字节时,这样的报文也称为包。
报文(Message ):指一个或多个具有相同参数组编号的(
PGN )数据帧。
也就是说只
要一个或多个 CAN 数据帧具有相同的 PGN 号,那他们就是属于一个报文。
):当具有相同参数组编号的所有数据需要使用多个 J1939报文。
每个CAN 数据帧拥有相同的标识符,
多包报文(Mult ip acket Messages CAN 数据帧来传输时使用的一种 但在每个包中数据不同。
协议数据单元PDU 的格式
it
■k
PDU 1
PDUy
■ M 嶋
1 EDP
0P PF
DATA
L L
1
3
时t 伽」
PGN
25仪苛歆幷
PDU是J1939传输数据的格式,它基于CAN协议的扩展帧传输方式。
即它的标识符是29位的。
优先级:最高0 (000 )设置到最低7(111 )。
所有控制报文的缺省优先级是
扩展数据页(EDP)和数据页(DP)的关系:
什么是第0页PGN,什么是第1页PGN ?作用有什么不同?还不是太清楚
■ EDP>
0D SAEJ1939^O^PGN
01SAEjl939^l!JfPGN
10SAEJ1939 优留
11定义为ISO 1576屛3的报文
PDU 格式(
PDU 格式(PF)PDU格式PDU特定域(PS)
PF<240P DU1格式PS是目标地址(DA)
PF=240 "255PDU2格式
PS是组扩展(GE)值
PDU1和PDU2时的参数组编号(PGN)数目
EDP DP PF PS P DU1时参数组编号
00或者10-239目标地址2X240 (PF 的值)=480
EDP DP PF PS PDU2时参数组编号
00或者1240-255 共16 个
数
组扩展值0-255 (共256个
数)
2X16X256=8192
J1939的29位标识符格式
3 (011 )。
瓦P DU略孔PDU J-Z■
1 EDP DP PF
■DATA
L L18時#伽丿
PDU
PGN
29拉垢叔幷
CAN 协议扩展帧格式
首先,J1939的标识符是29位的,所以它使用的是 CAN 协议的扩展帧格式来传输数据。
29位的标识符在寄存器中的存放位置,正好对应
CAN 的ID28-ID0的29位。
我们主要在
直接有两个位,SRR 和IDE 要求是必须写1的,它不包括在我们的 J1939的 ID0的后一位RTR 位也不包括在我们的标识符中,这一位是无效位,应该写 如果ECU 读回来一串数据怎么判断参数组编号 PGN 呢?
首先,把数据的前 29个字节(标识符)提取出来。
然后进行解析,解析方式:
把ID28~ID24提取出来组成一个字节(对应优先权位、 EP 、DP )
把ID23~ID16提取出来组成一个字节(对应 PF 的8位)
把ID15~ID8提取出来组成一个字节(对应 PS 的8位) 上述ID25~ID8就组成了数据的 PGN (参数组编号) 例如:
收到的前 29个字节是 0x67,0x98,0x1c,0xa2 看看它们的存储方式:
Rggitt»r 科3而
OF'Q
忘㈣
TEfiT
VJ
ID18 和 ID17 标识符,还有 0。
标识符对应的 CAN 扩展帧的位数: 优先权3位—— 扩展数据页EP-- 数据页DP --------- PDU 格式 PF---- PDU 特定域PS ,
ID28 ID27 ID26 ID25 ID24 ID23~ID16 ID15~ID8
ID7~ID0
Figure B-Z4.
Meiaagc Bufftr — Eklendtd ld«nMn»r Mappbrig
Bii 7
i
BItO
Vi Vi
IM
IDS
■04
I
閃
DJ
im HM
HTA
Vi
把ID28~ID24提取出来,其中标识符只包括ID25和ID24,即PGN 的第一个字节是 00 (二 进制), 把ID23~ID16 提取出来,组成二进制的:
11110000 ( PF 字节的8位)
把ID15~ID8 提取出来,组成 00001110 (对应 把上述3个字节连接起来组成一个二进制的数: 进制就是0XF00E ,转换成十进制是:
61454, 3、应用层
应用层为应用过程访问 0SI 环境提供了一种方法,包括支持应用的管理功能和通用的机制。
它以PGN 和SPN 的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率 和数据范围等。
应用层报文使用 PGN 作为一组参数的标号。
一组参数称为“参数组” ( PG ),PGN
唯一的标识号。
参数组内有一个或多个具体的参数, 每个具体参数都有一个唯一的标号,
为“怀疑参数编号”,即
以一个实例讲解 PGN 的使用
PGN 65213 (R) Fan Drfv^
假定我们只使用了协议中的前 3个参数,预计风扇转速比, 风扇驱动器状态,风扇转速。
下
面是这3个参数在字节中的存储方式,预计风扇转速比是一个字节的, 它占用了 byte1的8
位,风扇驱动器状态是 4个字节的,占用了 byte2的后四位,风扇转速是 2字节的,占用的 byte3和byte4.其他没有使用的位要写
1.
他们每一个参数对应一个 SPN ,在SPN 中都有它的斜率和分辨率的规定。
PS 的8位)
00 11110000 00001110 ,把它转换成 这就是它的PGN 号。
16
是其 称
SPN 。
以PGN65213 为例,首先是它的
J1939的协议定义:
Transmission R 导petiten Rale, □ata Length
Exteniled Data Page : Data Pager PDU Format POU SpeciNc:
iPiniorrt/:
Parafneter Group Number 1 S
8 0 0 25^ 189 e 65213
PGN Supporting Information; Stan Position Length
Parameter Name
SPN
1
1
EsiimBiftc Percent Fm Speed 975 21 4 bite Fan D 讹 &77 3-4 2 byins
Fan Sp««d
165ft
5■韦
2
Hydraui c Foo iMotor Pressy%
7 1 hyie
Fan Drive Bypflss Corni^ncl
4212
(OxFEBD)
PGN 65213 Fan Drive-FD Data Length J B
Start Posilion
Length
Parameter Name
SPN
1 1 byte Esttmated Percent Fan Speed 975 2,1 4 bits Fan Drive Slate 977 3-4
2 bytes
Fan Speed
11639
第一个参数 Estimated Perce nt Fan Sp eed
,我们看它的 SPN 号是975,我们再来查 看SPN975的内容,发现他是一个表示百分比的数,范围是 0%到100%,分辨率是0.4%, 偏移量是0。
如果我们想写个 50%进去,怎么把50%转换为二进制数放到字节中呢, 计算方式:50%/分辨率+偏移量=要写入的字节数,我们来计算下 50%/0.4%+0=125 ,这个
数是十进制的,把它转换为二进制就是:
0111 1101,我们把这数放到字节
1中就可以了。
SPN &75
Estimated Percent Fan Speed
E&timated fan spe 囲 as a ratio, lof the far cJiwe (current tjaedlJ lo the fully ergagec tan driufl (maximum fan &p9«dX A hvo slate fan (otffon)刃川
use 0% ard 100% respechvely. A ihre& stale fan (off^inlerr ed lats-'orn) vvnlH use 0%, 50% and 100% rasp^cTvely. A varia'tie 岂peed fan whl u&e a (% co IDO IMultiple fan systems will use Oto 100% la irtdicats Hie percent CCKJ I ng capacity teingiprovidedl.
Noie that lhe iiberned ate fan speed of a tn ret ; siale fan will vary ivitfi cilfeTenL Fan id'rivus. Ifwrefcxe 50% is being ustid to indicate lhal die intermediaie &p»ed is requiracl from itia fan drive.
Dat 曰 Length: Resolubon :
Dgta Range; Tjrp 日: SupfKxling
PGN
【本文档内容可以自由复制内容或自由编辑修改内容期待 你的好评和关注,我们将会做得更好】
例如 1 byle
0 4 啣bit. 0 offset Otq 100 % Status iotom^aton;
65213
Op 号中Range :
盟吨 a? dB 田 r^nge。