基于CANoe软件的电动汽车CAN总线测试系统的研究
张军
【摘 要】介绍了CAN总线在电动汽车上的应用,通过CANoe软件搭建实时的测试系统,该系统包含总线网络的实车测试、离线分析及节点模拟仿真功能.
【期刊名称】《传动技术》
【年(卷),期】2012(026)003
【总页数】5页(P10-13,42)
【关键词】CANoe;电动汽车;CAN总线;测试系统
长安马自达3三厢【作 者】张军
【作者单位】上海交通大学机械与动力工程学院,上海200030
【正文语种】中 文
【中图分类】U463.2
1 引言
CAN总线是德国BOSCH公司在20世纪80年代初为解决汽车中众多的控制与测试仪器之间的数据交换而开发的一种通讯协议。由于CAN总线具有突出的可靠性、实时性和灵活性,因而得到了业界的广泛认同和运用,并在1993年正式成为国际标准和行业标准,被誉为“最有前途的现场总线”之一。以CAN为代表的总线技术在汽车上的应用不但减少了车身线束,也提高了汽车的可靠性。在国外现代轿车的设计中,CAN已经成为了必须采用的技术,奔驰、宝马、大众、沃尔沃及雷诺等轿车也都将CAN作为控制器联网的方式。由于纯电动汽车动力平台部件之间通讯较多,若单纯使用车身线束,必然导致线束杂乱,给整车布置以及故障诊断带来了一定的困难,采用CAN总线网络可以很好的解决这些问题。
2 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位的域,网络中一个特定的源地址只能匹配一个设备或系统。
3 总线测试系统的实现
CANoe是德国VECTOR公司开发的功能强大的仿真及测试软件,使用时需要借助其它硬件测试工具配合使用,常使用的硬件包括CANcaseXL,CANScope,CANStress等。
3.1 测试系统的功能
该测试系统具备三大功能:
第一,在线实时监测。在实车运行过程中,该系统可以实时监测各个部件的运行参数情况。并根据在网络上传输的报文中所涉及的故障信息进行分析,判断车辆可能存在的故障信息。
晶锐报价进口宝马523第二,离线分析功能。CANoe采集大量实时的报文信息并存储于电脑硬盘中,通过回放功能重现采集时的数据信息,以便后期分析验证。
第三,系统模拟仿真。当网络中的某个或某些节点掉线或出现异常时,CANoe的仿真功能可以实现在仿真环境下对正常的节点进行功能测试。
3.2 测试系统的实现过程
采用CANoe搭建测试系统平台需要完成几项工作,包括建立数据库,编写CAPL语言程序,编辑面板编辑器以及调试运行等。
油价3.31
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总线网络测试,其应用层测试一般不涉及功能测试的范围,功能测试一般属于模块测试的范畴。
在测试过程中还需要注意整车的实验环境及车舱内的布置环境对过程的影响,例如电磁干扰、过热、噪声或震动等都可能影响网络的正常通讯功能及测试的结果,严重时还可能造成电子控制模块的损坏。