基于CANoe的汽车CAN总线通信及诊断设计

2015-12-02 03:49胡艳峰邹利宁
汽车电器 2015年6期
关键词:主机厂报文总线

胡艳峰,唐 键,邹利宁

(西安兰德新能源汽车技术开发有限公司,陕西 西安 710043)

随着汽车技术的快速发展,汽车性能不断提高,汽车电器与电子控制装置在汽车上的应用越来越多,传统的汽车布线难以满足汽车技术发展的要求,因此汽车总线技术越来越受到主机厂的关注。在汽车总线的发展历史上,出现了若干种总线。其中一些总线已经被淘汰或正在被淘汰中,如K-Bus、K-Line等;一些总线正处于研究或发展阶段,如FlexRay、MOST等;还有一些总线已经发展成熟并且得到了广泛应用,如CAN、LIN等。目前CAN总线已广泛应用于汽车中,已经成为汽车行业不可或缺的一部分。

1CAN概述

CAN (Controller Area Network) 即控制器局域网络,由于其高性能、高可靠性及独特的设计,已在各型汽车上得到普遍应用。CAN最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。现代汽车越来越多地采用电子装置控制,如发动机的点火正时、喷油控制,加速、制动控制 (ASC)及复杂的防抱死制动系统 (ABS)等。这些控制需检测及交换大量数据,若采用硬线连接的方式,不但烦琐、昂贵,而且实时性难以保证。采用CAN总线,上述问题便得到很好地解决。

CAN总线其本质是一种串行数据通信协议,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等工作。

2 CAN通信网络设计

2.1 整车功能定义

在设计整车CAN网络之前,首先要确定整车功能,即根据立项的情况,首先分析整理目标车辆的电器架构及相应要实现的电气功能,然后确定出整车需要通过CAN网络进行通信的部件,为进一步CAN网络拓扑规划做铺垫。本文以陕汽集团通家福牌6400车系的基础上开发的纯电动微型车 (图1)为例,进行CAN总线的设计说明。根据整车功能需求,该车为纯电动车,实现整车部件之间的协调控制,并通过工程师的进一步分析,最终确定该车辆有整车控制器 (VMS)、 电池及管理系统 (BMS)、电机及控制系统 (MCS)及仪表 (DPLY)4个节点需要通过CAN网络进行数据传输,因此,CAN网络拓扑规划时就以这4个节点进行规划。

2.2 CAN网络定义设计

网络定义设计的目的,是将需要通过CAN网络进行通信的节点进行合理的资源分配,其基本思路是:首先确定节点的节点地址,然后对收发信号及报文进行定义,最后通过估算网络负载率来确定整个CAN总线网络的拓扑结构。

2.2.1 节点地址分配

节点地址是确保该节点在网络中的惟一性要求,节点地址分配如表1所示。

表1 节点地址分配

2.2.2 拓扑规划

拓扑规划即整车CAN网络的总体设计。根据确定出的CAN网络上的部件节点,站在整车全局的角度上规划整车CAN网络拓扑结构。规划整车CAN网络拓扑结构时,需要从以下几点考虑。

1)信号分析。确定每个部件节点必须的网络收发信号及整车控制需要的必要信号。

2)封装报文。根据部件节点的收发信号的实时性、重要性等要求,对信号进行合理分配封装成报文,并给每个报文规划适当的通信周期及进行ID分配。

3)网络负载率计算。根据打包报文的数目计算每个节点的负载率及总负载率,根据负载率情况合理规划CAN线数量。当节点较多负载率较高时,可以规划2条或多条CAN线。

4)根据计算的网络负载率,规划CAN总线的拓扑结构。

信号分析主要分为两个方面:一是从单个控制器的角度进行分析,二是从整车网络的角度进行分析。从整车网络角度分析信号,要根据具体车型的控制要求来进行。本文中报文格式采用29位标示符,总线波特率250kb/s。表2以电机及其控制系统(MCS)为例,分析其相关信号参数。

表2 电机及其控制系统信号分析

由以上信号分析得知,电机及其控制系统相关的信号要进行发送,要至少3个报文才可以实现。用同样的方法对其他节点进行信号分析并封装报文,得到该车型4个节点的网络通信报文发送的情况,如表3所示。

表3 整车通信网络发送报文

由表3可看出,4个节点总的负载率为22.2%,因此规划4个节点在一条CAN线上即可。需要注意的是,CAN总线两端需配备120 Ω的终端电阻,以保证总线正常通信。该车型中将在CAN总线线束中外置终端电阻。总线拓扑结构见图2。

2.3 CAN总线网络仿真

整车信号定义及网络拓扑结构定义完成后,整个车辆的网络架构就建立起来了。当然这只是刚开始。定义的架构是否合理,报文的收发是否能够不丢帧地准确进行,在没有实车测试之前,网络仿真是必不可少的一个环节。

本文中CAN总线的仿真开发应用德国VECTOR公司的总线开发工具CANoe。CANoe是网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统开发过程。CANoe丰富的功能和配置选项被OEM和供应商的网络设计工程师、开发工程师和测试工程师所广泛使用。利用CANoe工具建模,可以进行完整的总线系统仿真和残余总线仿真,分析总线通信,并且用户可以运用类C的CAPL编程语言编程,实现仿真、分析和测试。

首先需要建立网络数据库DBC文件,然后在CANoe中通过调用DBC文件建立整车CAN网络模型,再利用类C语言的CAPL编程来实现网络的仿真。

2.3.1 DBC数据库建立

首先打开CANdb++Editor,新建一个后缀名为.dbc的数据库文件并保存。然后将定义好的信号录入数据库中。在CANdb++Editor左侧导航树中Signals上右键点击New新建信号,然后再完善信号属性参数,如图3所示。

信号创建完毕后,就要新建报文了。在导航树Messages上右键新建,逐一创建定义好的报文,创建报文编辑页面如图4所示。

最后创建节点,在导航树ECUs上右键新建,创建定义好的节点。在信号、报文、节点都创建完成后,最后关键的一步就是将信号关联到报文,报文关联到节点,建立起节点之间的报文收发关系。这样,就建立起了一个完整的数据库。

2.3.2 CAN总线网络的仿真

数据库建立完成后,接下来就是利用CANoe进行总线的仿真。首先新建一个配置文件 (.cfg文件),将定义好的数据库导入,这样就建立了CAN总线整车网络的仿真,如图5所示。

3 CAN总线诊断设计

3.1 诊断概述

故障诊断功能是CAN总线通信中关键的一部分,它不仅是主机厂对整车下线品质检测的一个重要手段,更是在车辆一旦出现故障时,为故障的排除提供了方向。目前主要应用的诊断协议是ISO15765与SAE J1939。

IS015765是欧洲汽车厂商推出的一种基于CAN总线的诊断系统通信标准,它以IS014229-1定义的服务为基础,规范了基于CAN总线的诊断服务 (即UDS on CAN)。IS015765符合现代汽车网络总线系统的发展趋势,已被许多汽车厂商采纳。

SAE J1939是美国汽车工程协会 (SAE)的推荐标准,可达到250 kb/s的通信速率。它描述了重型车辆现场总线的一种网络应用。目前,J1939是在商用车辆、舰船、轨道机车、农业机械和大型发动机中应用最广泛的应用层协议。

3.2 诊断系统总体设计

本文中该车型由于节点较少,只需规划一条CAN线就可以满足网络通信的需求。诊断设备接口采用标准的16针口直接与CAN网络相连接,诊断系统拓扑结构如图6所示。

在诊断过程中,诊断设备直接向CAN网络中所有的网络节点发送服务请求信息,当网络中某个控制器接收信息后返回服务响应,即该控制器与诊断设备之间就建立了通信连接,图7为诊断设备与CAN网络上电机及其控制系统节点的服务请求/响应信息发送图。诊断设备读取到响应的诊断信息后,最终将会在诊断设备界面上以故障码的形式出现。

3.3 诊断设计流程

诊断设计总体来讲,分为两大步骤:一是选择要遵循的诊断标准,即选定的是ISO15765还是SAEJ 1939。诊断标准选取后,接下来的工作就是在诊断标准众多的诊断服务中选取自身关心的诊断服务,并将这些诊断服务作为自己诊断程序。二是诊断参数的定义,即主机厂根据自身的需要,设定自己关心的故障参数,并最终用故障码的形式来体现。

3.3.1 诊断协议选取

本文中诊断协议选取ISO15765,主机厂根据自身需要在诊断协议中选取需要的诊断服务,并要形成自己的文件,以保证车型诊断具有延续性。同样以上述的纯电动车为例,图8简要说明诊断服务选取的过程。

需要注意的是,当某一请求不成功时,应该有一个否定应答表示请求不成功,需要诊断程序重新开始。

3.3.2 诊断参数定义

首先要确定故障码的格式。目前广泛流行通用的是OBDⅡ故障代码,由5位英文字母和数字组成,其中英文字母代码为P、C、B、U,分别代表动力系统代码、底盘系统代码、车身系统代码和通信网络系统代码,具体定义在SAE J2012中有详细说明定义,格式见表4。

表4 故障码格式

表4中,高字节的第15位和第14位决定了故障码的系统分类,第13位和第12位决定了该故障码区域是否可以由主机厂自行定义,具体定义见表5。

表5 故障码系统分类及故障码区域段分类

由表5可以看出,故障代码中的P1XXX、C1XXX、C2XXX、 B1XXX、 B2XXX、 U1XXX、 U2XXX系列均为留给主机厂进行自定义的区域,在这些区间内主机厂可以自行定义自己的故障码表。同样以上述纯电动车的电池及其管理系统故障为例,定义故障代码见表6。

表6 电池及其管理系统故障码表

读取故障码后,根据读取的故障码查故障码表,就可得到具体发生的故障的类型。根据查出的故障,进行故障分析,查找故障发生的原因并最终解决该故障。

4 总结

本文从主机厂的角度,理论联系实际,详细介绍了整车CAN总线通信网络的设计以及基于ISO15765的CAN网络诊断设计,并给出较为全面的设计过程,对主机厂在自主开发设计CAN总线网络及诊断时起到一定借鉴作用。

[1] ISO 11898-1 (2003) Controller area network (CAN)Part 1: Data link layer and physical signaling[S].

[2] ISO 11898-2 (2003) Controller area network (CAN)Part 2: High-speed medium access unit[S].

[3] CANoe介绍[EB].http://www.hirain.com/.

[4]田磊,赵玉超,贾敏,等.基于工具驱动的重型商用汽车总线的应用开发[J].汽车电器,2012(8):10-12.

[5]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2010.

[6]魏学哲,戴海峰.汽车嵌入式系统原理、设计与实现[M].北京:电子工业出版社,2010.

[7]夏雪松.新型汽车故障代码数据资料库[M].北京:人民邮电出版社,2012.

猜你喜欢
主机厂报文总线
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
时间触发通信总线监控技术研究
商用车排放升级、市场下滑之下主机厂和经销商如何共生
关于CAN总线的地铁屏蔽门控制思路论述
浅析反驳类报文要点
UDS诊断服务在气囊控制单元中的应用
基于CAN/LIN总线的LED车灯控制研究
揭开“审核”的神秘面纱(一)
——各大主机厂审核要求
创新与变革 2015各大主机厂发展新思路