【看点】浅析SAE-J1939与CAN2.0B之间的关系

描述

什么是SAE-J1939?

SAE-J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,广泛用于是商用车(重卡、大客车等道路车辆和工程机械、农业机械、轨道机车、船舶等非道路车辆及设备)上电子部件间的数字通讯。

SAE-J1939与CAN2.0的关系

CAN2.0(前文指路)是一种总线规范,是数据链路层的技术。J1939是SAE(美国汽车协会)基于CAN总线定义的的规范,主要用于解决不同发动机厂商、不同ECU厂商之间的兼容性问题。

 

J1939定义了一系列的PGN和SPN,这些PGN包含了发动机、变速器、车轴等汽车上各部件的信息;对参数的表示方法(状态和值)又定义了SLOT(Scaling—比例、Limit—界限、Offset—偏移、Transfer—传送)。ECU厂商开发设备时都应该遵循这个规范。ECU模块的功能不同、厂商不同,在J1939的基础上,又表现出其多样性:支持或者不支持某些PGN、SPN和SLOT;新增了某些J1939未定义的PGN和SPN。

SAE-J1939与CAN2.0B消息帧格式

CAN2.0规范包括CAN2.0A(标准帧格式),CAN2.0B(扩展帧格式),二者使用不同的帧格式位码。J1939是在CAN2.0B的基础上进一步封装,对仲裁场部分的29位ID的重新定义。SAE-J1939中只为扩展帧格式定义了标准化的通信,因此,SAE-1939设备必须使用扩展帧格式。

 

SAE-J1939将每个数据帧(PDU,协议数据单元)融合进一个CAN2.0数据帧中,其结构如下:

CANCANCAN扩展帧的数据帧格式与SAE-J1939协议数据单元对比如下图:
CAN

参数群编号(PGN):

PGN对于制定基于SAE-J1939的CAN协议来说十分重要,很多ECU厂商规定在接受CAN报文时识别的就是PGN而不是整个报文的ID。参数群编号是由24位组成的(其实是18位),主要包括下面几个部分:保留位(R,1bit,默认为:0),数据页位(DP,1bit,多数情况下为:0),PDU格式(PF,8bit)和特定PDU(PS,8bit,目标地址是否群扩展)。当PF值为:0~239之前时PGN的低字节将被设置为:0;当PF值为240~254之时,PGN的低字节为PS的值。PGN结构如下表:

CAN

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分