打印

J1939协议应用设计编程说明

[复制链接]
1326|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
J1939协议应用设计编程说明
一、J1939协议简介
J1939协议是目前在大型汽车中应用最广泛的应用层协议,可达到250Kbit/s的通讯速率。J1939协议由美国SAE( Society of Automotive Engineer)组织维护和推广。
J1939协议具有如下特点:
1)以CAN2.0B协议为基础,物理层标准与ISO11898规范兼容并采用符合该规范的CAN控制器及收发器。通讯速率最高可达到250Kbit/s
2)采用PDU( Protocol Data Unit协议数据单元)传送信息,每个PDU相当于CAN协议中的一帧。由于每个CAN帧最多可传输8个字节数据,因此PDU的传输具有很高的实时性。
3)利用CAN2.0B扩展帧格式的29位标志符定义每一个PDU的含义及该PDU的优先级。
4J1939协议主要作为汽车中应用的通讯协议,对汽车中应用到的各类参数都进行了规定。参数的规定符合ISO11992标准。
J1939协议通讯报文内容解析
J1939协议实质是将CAN扩展帧格式中未明确定义的11ID18位扩展ID进行了明确定义,紧随ID的是8个字节的数据。
为了实现J1939协议报文的正确接收,必须首先明确其仲裁场(如上所示)是如何确定的。下面将逐一介绍:
优先级:29位标志符的前3位用于在仲裁过程中决定报文的优先级P。值000是最高的优先级。高的优先级用于高速要求的报文。低的优先级用于时间要求不紧迫的数据。
标志符位(R)保留位。在传输报文时此位置为0。此位留作将来SAF委员会定义其它目的使用。
数据页( DP)位:DP位用于选择两页参数组中的其中一页。0页包含现在被定义的所有报文。1页预备将来额外的扩展能力。在0页用完后才被分配。
PDU格式(PF)PDU代表协议数据单元。PF场识别能被传送的两个PDU格式。
SRRIDE位:CAN 2. 0B己被详细定义。它们被置为隐性位。这使扩展帧的优先级低于标准格式数据帧的优先级。
PDU专用(PS)它们由PF的值决定。如果PF的值在0239之间( PDU 1)PS场包含一个目的地址;如果PF的值在240255之间(PDU 2)PS场包含一个对PF的组扩展。组扩展提供更大的一组值以标识网络中能被广播的所有ECU的报文。在J1939标准下,要被广播的大多数报文用PDU 2格式。用PDU 2格式在网络中传输的数据不能被直接到达一个明确目的地。当报文必须要直接传送到一个专用ECU,必须在PDU1格式数的范围分配一个PGN(参数组数),以至少在报文标志符内能包括一个专用的目的地址。
源地址(SA)标志符的最后8位包含ECU传送报文的地址。对于一个给定的网络,每一个地址必须是唯一的,两个不同的ECU不能同时用同一个地址。
29ID生成说明
基于以上分析,只要将相关参数填入如下的表中,即可得到相应的29ID。此类参数可以从SAE J1939-71文档中得到,该文档介绍了J1939应用层上,路面车辆的推荐操作规程。
下面以获取发动机为例说明。从SAE J1939-71Jun 2006496页中,可以得到发动机转速的相关J1939协议参数,如下所示:
优先级(P):3
数据页面(DP):0
PDU格式(PF)240
PDU专用(PS)4
另外,以康明斯发动机为例,发动机源地址(SA)被定义为0值。
因此,可以得到PGN61444的扩展ID信息为:
所以,其ID0C F0 04 00。识别出该ID的报文后,可以在随后跟随的8个字节的数据域中的第45字节,得到发动机转速值。

相关帖子

沙发
vivilzb1985| | 2018-3-25 22:03 | 只看该作者
J1939协议是目前在大型汽车中应用最广泛的应用层协议,可达到250Kbit/s的通讯速率。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入TI MCU论坛      21ic TI技术交流1群:61549143(已满),  21ic TI技术交流2群:311421422 我的博客:http://blog.timcu.com/

1180

主题

34818

帖子

1116

粉丝