基于SAE1939标准的CAN通信网络在汽车动力传动系统中的应用

2013-12-14 07:07朱小龙
关键词:标识符报文总线

朱小龙

(1.重庆理工大学 重庆汽车学院,重庆 400054;2.奇瑞汽车股份有限公司,安徽芜湖 241006)

由Bosch提出的CAN标准最早在欧洲汽车上被广泛采用,后来美国、日本的汽车行业也使用它作为B级或C级汽车网络,而且也被其他行业采用。CAN是目前应用最广泛、支撑元件最丰富的汽车网络标准,因此CAN总线已经成为几乎所有汽车厂商都采用的控制器联网手段。为此,美国汽车工程师协会于1994年12月制定并发布了以CAN总线为核心的车辆控制系统总线串行通信和控制协议,即SAE J1939标准。这个标准为车辆上各传感器、执行器和控制器提供了建立在CAN总线之上的标准化的高速网络连接,使得不同厂商生产的部件可以使用统一的结构方式实现数据共享,从而为整车一体化控制奠定了基础。

另外,车辆动力系统和传动系统是相互影响、相互关联的,只有对发动机和变速器进行协调控制,才可充分发挥它们各自的优良性能。而采用CAN通信方式实现动力传动一体化控制,可协调控制发动机、离合器、变速器以提高整车的行驶性能,同时机械式自动变速器(AMT)电子控制单元和电喷柴油机电子控制模块可共用传感器,实现资源共享,减少了汽车整车的硬件数目,降低了汽车生产成本,并可进一步通过数据共享和发动机的协调控制,有效地提高自动变速汽车起步和换挡的品质。

1 通信协议与标准

1.1 CAN 2.0B协议

1991年9月博世(Bosch)公司制定并发布了完整的CAN技术规范(Version 2.0),1993年11月ISO颁布了道路交通运载工具-数字信息交换-高速通信控制器局域网国际标准(ISO11898),使CAN总线正式成为一种标准化、规范化的官方现场总线协议。为保证CAN总线技术的开放性,上述CAN协议仅定义了物理层子协议和数据链路层子协议,并未对CAN总线结构体系中的应用层做出具体规定,用户可以按照各自的需要自行定义应用层子协议。因此,可以将上述CAN协议视为是CAN总线的基本协议。

CAN 2.0B版本中规定CAN控制器的标志符长度可以是11位或29位,遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文,但必须使用能辨别帧种类的位代码。图1为CAN标准帧报文,在仲裁场中标识位为11位;图2为CAN扩展帧报文(即SAE J1939标准帧格式),在仲裁场中标识位为29位。

1.2 SAE1939标准简介

SAE J1939标准的全称是车辆控制系统总线串行通信和控制标准化协议。它采用CAN通信协议作为网络核心,按照OSI模型对通信的分层制定相关子标准,特别是在应用层子协议中对通信所传输的有效信息做出了统一明确的定义,因而它属于CAN总线的高层协议。SAE根据技术发展和应用状况不定期地对该标准进行更新,目前版本的 SAE J1939标准共由 J1939——车辆网络串行通信和控制总标准、J1939/11——物理层子标准、J1939/21——数据链路层子标准、J1939/71——车辆应用层子标准等10个子标准组成。

SAE J1939标准在CAN总线的基础上为用户提供了一套既有完整性又不失开放性的现代车辆电子控制标准化网络通信协议。SAE J1939标准规定的数据传输速率为250 kbps,每个数据帧的最大长度为150位,其中有效数据位64位,优先级最高的节点的数据等待时间小于134 μs。在传送64位有效数据的情况下,传输时间最小为1 ms。数据的刷新率根据其特定用途使用不同的时间值,例如对于高速控制报文要求刷新率为20 ms,而对于另一些数据,其刷新率可以长达1 s。不使用CAN总线最高速率(1 Mbps)并且规定参数刷新率的原因是为了在保证数据传输实时性的基础上为尽可能多的参数留有足够带宽,避免当总线节点较多时由于需要传输的数据量很大而造成总线拥堵,也为控制设备提供更加可靠的参数来源。

由以上分析可知:SAE J1939标准的特点使得它成为车辆控制系统实现信息共享的重要手段,可以满足车辆控制的实时性、可靠性和可扩展性要求,并规定了一系列动力传动控制参数,为建立车辆动力传动一体化通信控制系统奠定了基础。

图1 CAN标准帧格式

图2 CAN扩展帧格式(SAE J1939标准帧格式)

2 通信网络设计及SAE1939标准的实现

2.1 通信网络总体结构

本文建立的车辆动力传动一体化通信控制网络采用SAE1939规定的基本网络拓扑结构,即总线型拓扑。

动力传动一体化控制系统需要在车辆行驶过程中实时控制电控柴油机、自动变速器,使三者协调动作以顺利完成起步和换挡过程,系统主要控制目标应为柴油机转速、离合器行程和变速器挡位。因此机械式自动变速器 (AMT)电子控制单元、电喷柴油机电子控制模块是通信网络中的2个主要节点。同时,为了实时观测网络中的重要数据,如发动机转速等,特设计了液晶显示节点。最后出于对系统可靠性的考虑,建立了总线监控节点。各节点通过CAN总线有机地连接起来,可以使电控柴油机和AMT作为一个整体来控制,并且实现节点间的数据共享。

根据SAE1939标准规定,总线速率为250 kb/s,连接线采用屏蔽双绞线,总线两端采用120 Ω电阻终结。该动力传动一体化通信控制网络结构如图3所示。

在组建CAN通信网络的过程中,应注意使屏蔽双绞线接地,否则,会导致通信的失败。

2.2 通信网络内报文的组织和共享

2.2.1 报文标识符的确定

在符合SAE1939标准的通信过程中,报文标识符的确定是第1步,也是关键的一步。随后的报文封装和发送、接受时的标识符过滤都需要用到标识符,因此标识符的正确与否至关重要。以下给出了根据SAE1939标准规定的参数组的信息确定标识符的过程。

一个SAE J1939标准帧报文(即CAN扩展帧报文,如图2所示)包含1个单独的协议数据单元(PDU)。协议数据单元由7个预定义的场组成,见图4。这些场包含应用层提供的信息,它们是优先权(P)、保留位(R)、数据页(DP)、协议数据单元格式(PF)、协议数据单元特性(PS)、源地址(SA)和数据场。除数据场外,其他场正好组成29位标识符。

图3 动力传动一体化通信控制网络结构

图4 SAE J1939标准协议数据单元格式

但SAE J1939标准并没有直接给出CAN网络中可以通信的PDU的格式,只是给出了可以通信的参数组和参数组号。参数组号以24位二进制码表示,用于参数的分类和参数信息在数据帧中的封装。参数组号由以下几部分组成:6位0、保留位、数据页位、协议数据单元格式场(8位)和组扩展场(8位)。参数组号大部分由SAE J1939标准规定,还有一部分参数组号可以由制造商按照需要分配。SAE J1939/71子标准(应用层子标准)中对参数和参数组进行了更为具体的说明。

下面以发动机控制参数组2为例加以说明。

从标准中查得发动机控制参数组2的参数组号为61443,再从SAE J1939/71子标准中得到该参数组的规定:

刷新率:50 ms

数据长度:8字节

数据页:0

协议数据单元格式:240

协议数据单元特性:3

默认优先级:3参数组号:61443(00F00316)

字节1:状态_EEC2位:

8~5未定义

4,3加速踏板降档开关

2,1加速踏板低怠速开关

字节2:加速踏板位置

字节3:当前转速下载荷百分比

字节4~8:未定义

那么根据标准规定便可得出29位标识符中的优先权(P)、数据页(DP)、协议数据单元格式(PF)、协议数据单元特性(PS),再从SAE1939总标准的源地址的列表中查得发动机的地址为0002。另外所有报文传送时应将SAE保留位设为0。这样便得该参数组对应的29位标识符为:0CF0030016。

同理可得到所使用的其他参数组的标识符。

2.2.2 通信网络中所用参数

本通信网络里主要采用了2个典型参数在机械式自动变速器(AMT)电子控制单元、电喷柴油机电子控制模块、液晶显示节点、总线监控节点之间进行通信,其方向如表1所示。

以下对这2个参数进行说明。

油门位置,即油门实际位置与油门最大位置的比值。此项参数除作为确定动力传动系要求的输入之外,还向变速器及其他控制系统提供驾驶员动作的信息。在油门内部锁止开关和远程油门激活开关均处于关闭状态下,此参数用于柴油机和变速器的控制。这是动力传动系统中非常重要的参数。

发动机转速,即发动机曲轴的转速,体现发动机的工作状态。

表1 通信网络中所用参数及传输方向

SAE1939标准中对这2个参数所在的参数组及性质进行了进行了详细的规定:

油门位置

所在参数组:61443

参数在数据场的位置: 第2字节

参数范围:0%至100%

分辨率:0.4%

刷新率:50 ms

29位标识符:0CF0030016

发动机转速

所在参数组:61444

参数在数据场的位置: 第4~5字节

参数范围:0~8 031.875 r/min

分辨率:0.125 r/min

刷新率:20 ms

29位标识符:0CF0040016

2.2.3 通信程序设计

通信网络中共有4个节点,其中柴油机采用的是美国康明斯公司(CUMMINS)生产的共轨喷射柴油发动机ISBe25030。柴油机电控单元与外界通信采用符合SAE J1939标准的接口。总线监控接点采用周立功单片机公司生产的USBCAN智能接口卡,带有2路CAN接口,可以使PC机通过USB总线连接至CAN网络,因此,这2个节点不需要再进行软件设计,只需要针对AMT节点和液晶显示节点进行程序编写。

通信系统的软件采用结构化程序设计方法编写,软件应具有良好的模块性、可修改性及可移植性。本研究采用C语言进行编程。

软件分两大部分:AMT节点通信程序和液晶显示节点的通信程序和显示程序。AMT节点通信程序又包括初始化程序、发送程序、接收中断程序;液晶显示接点的通信程序结构与AMT节点相同,而显示程序包括初始化程序、清屏程序、写指令程序、写数据程序和写字符程序。

在接收程序中有一个问题需要注意,那就是:无论是AMT节点的单片机MC68376所带的CAN控制模块——TOUCAN,还是液晶显示节点的单片机 MC68HC912D60的CAN控制模块——MSCAN12,其消息缓冲器的标识符存放寄存器都是32位的,这时程序就要将29位标识符按照CAN控制模块的要求转化为32位标识符,否则通信便无法正常进行。

AMT节点的接受中断程序和液晶显示节点的写字符程序的流程如图5、6所示。

3 试验和结论

为了验证该通信网络的可行性、可靠性和有效性,在某宇通样车上进行了试验。在汽车行驶情况下,该通信网络工作正常,油门位置和发动机转速在机械式自动变速器(AMT)电子控制单元、电喷柴油机电子控制模块之间实现了共享,并且液晶显示节点也能正常显示(见图7)。

结论:

1)在符合SAE1939标准的前提下,利用CAN总线可以实现电控发动机和自动变速器的通信,使车辆动力传动一体化成为可能。

2)机械式自动变速器(AMT)电子控制单元和电喷柴油机电子控制模块可以共享参数,减少了传感器的数目,同时也减少了连接线束,因而降低了动力传动系统的成本。

3)基于SAE1939标准的CAN通信网络具有高速率、高可靠性,符合车辆动力传动一体化的实时性和可靠性要求。

图5 液晶显示节点写字符程序流程

图6 AMT节点受中断程序流程

图7 液晶显示节点的工作情况

[1]康建辉,张庆顺.单片机控制液晶显示器在汽车仪表盘的应用[J].西安:现代电子技术,2002(3).

[2]孙勇俊,鲁统利,张建勇.基于CAN总线的AMT通信模块设计[J].微计算机信息,2007(2):284-286.

[3]高小玲.CFA6470G越野车动力传动系统振动研究[J].四川兵工学报,2004(5):26-27.

[4]袁晨恒,邓兆祥,姜艳军,等.轿车传动系扭转振动模型分析与计算[J].重庆理工大学学报:自然科学版,2010(7):18-22.

[5]张勇,陆勇.CAN总线在车身低速电器中的应用[J].重庆理工大学学报:自然科学版,2010(6):5-8.

[6]陈国强.基于CAN总线的客车电气系统设计与ASR故障诊断[J].客车技术与研究,2012(2):43-45.

猜你喜欢
标识符报文总线
基于J1939 协议多包报文的时序研究及应用
基于底层虚拟机的标识符混淆方法
CTCS-2级报文数据管理需求分析和实现
基于区块链的持久标识符系统①
浅析反驳类报文要点
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
ATS与列车通信报文分析
科研人员唯一标识符的理论研究现状剖析
CAN总线并发通信时下位机应用软件设计