时间:2024-07-28
张 军
(上海交通大学机械与动力工程学院,上海200030)
CAN总线是德国BOSCH公司在20世纪80年代初为解决汽车中众多的控制与测试仪器之间的数据交换而开发的一种通讯协议。由于CAN总线具有突出的可靠性、实时性和灵活性,因而得到了业界的广泛认同和运用,并在1993年正式成为国际标准和行业标准,被誉为“最有前途的现场总线”之一。以CAN为代表的总线技术在汽车上的应用不但减少了车身线束,也提高了汽车的可靠性。在国外现代轿车的设计中,CAN已经成为了必须采用的技术,奔驰、宝马、大众、沃尔沃及雷诺等轿车也都将CAN作为控制器联网的方式。由于纯电动汽车动力平台部件之间通讯较多,若单纯使用车身线束,必然导致线束杂乱,给整车布置以及故障诊断带来了一定的困难,采用CAN总线网络可以很好的解决这些问题。
本文研究的对象是一款纯电动汽车,该电动汽车的CAN总线网络架构如图1所示。
图1 电动汽车CAN总线网络架构Fig.1 Electric vehicle CAN bus network architecture
该款汽车的网络架构由诸多控制系统组成,考虑到电池管理系统、电机控制器、组合仪表、电动空调系统及整车控制器等节点都搭载在同一条CAN总线上,目前采用波特率为250Kbps的高速CAN总线。该总线协议遵循CAN BUS 2.0B技术规范所规定的扩展帧格式(29位标识符)以及SAE J1939的技术协议。SAE J1939协议主要运用于载货车和客车系统,它是在CAN BUS 2.0B的基础上进一步扩展实现具体应用的,J1939的网络通讯报文标识符结构如图2所示。
图2 J1939网络通讯报文标识符结构Fig.2 J1939network communication message ID structure
J1939对CAN BUS 2.0B规范中的29位标识符(0~28)做了更为具体的定义。其中优先级P用于总线传输时的报文优先级别;保留位R作为今后开发使用,此处必须默认为0;数据页DP用于数据页位选择参数群描述的辅助页;PDU格式是一个8位构成的域,用于确定数据域对应的参数群编号;特定PDU是一个8位域,他的定义取决于PDU格式;源地址SA是一个8位的域,网络中一个特定的源地址只能匹配一个设备或系统。
CANoe是德国VECTOR公司开发的功能强大的仿真及测试软件,使用时需要借助其它硬件测试工具配合使用,常使用的硬件包括CANcaseXL,CANScope,CANStress等。
该测试系统具备三大功能:
第一,在线实时监测。在实车运行过程中,该系统可以实时监测各个部件的运行参数情况。并根据在网络上传输的报文中所涉及的故障信息进行分析,判断车辆可能存在的故障信息。
第二,离线分析功能。CANoe采集大量实时的报文信息并存储于电脑硬盘中,通过回放功能重现采集时的数据信息,以便后期分析验证。
第三,系统模拟仿真。当网络中的某个或某些节点掉线或出现异常时,CANoe的仿真功能可以实现在仿真环境下对正常的节点进行功能测试。
采用CANoe搭建测试系统平台需要完成几项工作,包括建立数据库,编写CAPL语言程序,编辑面板编辑器以及调试运行等。
3.2.1 创建CANdb++数据库
CANdb++是集成在CANoe中的数据库编辑软件,由它创建的CAN网络数据库文件又称为DBC文件。在创建DBC文件时,需要将网络应用层所定义的参数按照从高到低的层次依次输入数据库中,即从创建网络节点开始,根据网络应用层定义的节点信息创建各节点,再在各个节点下创建属于该节点的报文,同时明确该节点需要接收的报文和信号;最后在每条报文下创建属于该报文的信号内容、编码格式和换算公式——根据换算公式,可将实际的物理值信号换算成适于计算机辨认和发送的十六进制值信号值,便于网络间的传输。
另外,还需定义与各节点相关的环境变量,将其作为该节点的信号输入设备或信号输出设备。信号输入设备例如传感器,开关,按钮等,信号输出设备例如执行器、灯光、显示屏等。
数据库建完后将其添加到CANoe软件中,实现CANoe网络架构的搭建,如图3所示。
3.2.2 编写CAPL语言程序
对于控制系统的仿真功能,需要通过CAPL语言编程实现。CAPL全称为CAN Access Programming Language,它是一种和C语言类似的编程语言,用它可以对每一个虚拟的控制系统进行编程。CAPL语言程序是基于事件触发的程序,可由总线事件,键盘事件或时间事件实现触发功能。
3.2.3 编辑面板编辑器
CANoe软件集成了人性化的面板编辑器(Panel)窗口,并且预先存入了诸如开关、车窗、仪表盘、点火开关、门锁和按钮等大量的图片组件。利用环境变量为媒介,将这些图片与对应的信号一一链接,就实现了形象化的图形界面,部分的Panel窗口如图4所示。
图3 CANoe软件搭建电动汽车CAN总线网络架构图Fig.3 The CAN bus network architecture of the electric vehicle build by CANoe
图4 部分测试系统的Panel窗口界面Fig.4 Part of the test system on Panel window
3.2.4 CAN网络的仿真和测试
完成上述步骤后,可以实现CANoe的仿真和测试功能。需要强调的是,当进行仿真调试时,需要激活虚拟节点;而当进行实车测试时,则要屏蔽这些虚拟节点。
(1)网络仿真
评价网络性能的技术指标一般包括网络传输速率、报文平均发送频次、网络负载率,信号延迟时间(网络响应时间)、报文周期等因素。网络仿真时需要对这些因素进行逐一的分析,了解其对于网络性能的影响程度并根据设计要求进行调整,这对于前期进行网络设计和开发时起到了一定的借鉴作用,CAN总线仿真界面如图5所示。
图5 CANoe的仿真界面图Fig.5 The simulation interface figure of CANoe
为改善网络负载率,需要对报文平均发送频次、网络负载率,信号延迟时间(网络响应时间)和报文周期等进行合理的调整。一般情况下,经过调整后的网络负载率建议是在30%左右,可有效地防止出现网络拥堵的情况。
(2)网络测试
为了保证CAN总线网络的正确性和鲁棒性,需要对其进行网络性能测试和实车诊断测试,主要包括以下几个方面:
a.物理层测试
由于信号传输波形的质量决定了CAN总线数据传输的可靠性,所以需要对物理层进行测试评价,确保各节点或系统在电路设计、物理电平特性等方面的性能,也是保证节点能够正确连接入总线的基础。测试主要包括了节点的电阻电容特性、总线终端电阻、CAN线上的物理电平特性、工作电压范围及节点掉电测试等。
b.数据链路层测试
数据链路层测试包括网络实时性测试、位定时测试、采样点测试、SJW测试等内容。其中最重要的是网络实时性测试。由于影响CAN总线网络实时性的主要因素是总线传输速率、总线负载率、消息传输延迟等,所以虽然在理论设计时进行了仿真验证,在测试阶段还是需对其进行测试分析。
c.应用层测试
应用层测试包括了上层应用层协议的测试、网络管理功能的测试以及故障诊断测试等方面的内容。其包括的内容可以是:数据库使用正确性测试、通讯周期准确性测试、节点休眠唤醒功能测试、网络管理功能测试、电压影响测试、总线物理故障测试、节点故障自恢复能力测试等内容。由于CAN总线使用背景的不同,其应用层的内容也有很大差别,因此应用层测试的内容也存在较大差异,需要根据项目的设计需求以及设计文档仔细制定应用层测试的内容。值得注意的是,对于CAN总线网络测试,其应用层测试一般不涉及功能测试的范围,功能测试一般属于模块测试的范畴。
在测试过程中还需要注意整车的实验环境及车舱内的布置环境对过程的影响,例如电磁干扰、过热、噪声或震动等都可能影响网络的正常通讯功能及测试的结果,严重时还可能造成电子控制模块的损坏。
在任一阶段的测试出现异常情况时,排故流程基本如下:
1.先检查通讯线路是否出现故障,例如对地短路,对电压短路或开路故障;
2.再考虑电子控制模块内部可能出现的短路故障;
3.最后考虑实车环境的影响,可通过更改线路走向或增加屏蔽措施等改善实车环境。
d.实车诊断测试
实车诊断测试是对图4的实时监测测试系统的应用,该测试系统通过捕获整车网络中传输的报文并从中解析出信号内容,将其换算成实际的信号值显示在该系统中,同时该测试系统会对较为重要的信号进行实时监测,判断其是否在正常范围内,如果参数出现异常,则在测试系统的“故障信息”一栏中相应警告灯会点亮,提示测试人员可能是由于对应的硬件系统或设备存在故障,需要进行诊断排故。
同时该系统还能实现实时的数据采集,便于测试人员进行离线分析。
3.2.5 CAN总线网络分析
在整车正常通讯的情况下,通过CANoe软件还可以实时监测网络的性能参数,包括网络报文每秒钟的平均发送频次、总线通讯情况和总线负载率等,如图6,图7及图8所示。
图6 报文每秒钟的平均发送频次Fig.6 The average delivery frequency of message per second
本文通过CANoe软件完成了电动汽车总线测试系统的程序开发,实现了对电动汽车CAN总线的节点仿真功能;通过网络测试,实现了对整车网络性能的确认;利用Panel窗口的编辑,实现了良好的人机交互功能;借助CANcaseXL板卡的配合,实现了数据的实时显示、采集及离线分析功能。
图7 总线实际通讯情况Fig.7 CAN bus actual communication situation
图8 总线负载率情况Fig.8 CAN bus loading rate
[1] 饶云涛等.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.
[2] 张新波等.使用CANoe对车身控制器局域网络仿真的研究[J].江苏:江苏大学学报(自然科学版),2003.
[3] 王立萍,汽车CAN网络控制系统的设计研究[D].广东工业大学,2008.
[4] 魏雄武,CAN与汽车网络技术[J].上海汽车,2005(7):35-38.
[5] 姜开,基于CAN总线的测试系统研究与设计[D].南京航空航天大学,2004.
[6] 陆孟雄,汽车舒适系统的CAN总线性能分析与仿真[D].南京农业大学,2004.
[7] BOSCH.CAN Specification Version 2.0[Z].Germany:Robert Bosch GmbH,1991.
[8] SAE.Recommended Practice for a Serial Control and Communication Vehicle Network SAE J1939Issued 2000[Z].America:Society of Automotive Engineers,2000.
[9] Vector,CANoe_Manual_EN(Version 7.2)[M].Germany:Vector Informatik GmbH.
[10] Vector,CANdb++_Manual_EN(Version 7.2)[M].Germany:Vector Informatik GmbH.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!