摘要:为了满足电动汽车故障信息诊断和道路实验数据采集的需求,开发了车载式CAN总线信息显示装置。系统硬件采用便携式笔记本和NI USB-8473 CAN卡,LabVIEW作为软件开发平台。实现了对电动汽车CAN网络信息的数据采集、报文解析、数据存储和数据回放的功能,系统开发以柔性测试技术为核心理念。通过实验表明,系统能够满足设计要求,具有可靠性、灵活性、适用性和可扩展性等优点。
关键词:电动汽车 CAN总线 虚拟仪器 柔性测试技术
由于传统汽车带来的环境污染等方面的问题日趋严重,电动汽车的研发已经成为汽车行业的热点。目前的电动汽车一般都采用基于CAN(Control
Area
Network)总线的整车通讯控制系统。CAN总线是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种有效支持分布式控制或实时控制的串行通信网络,具有实时性强、传输距离远、抗干扰能力强、成本低的特点,在汽车通讯网络中得到了广泛的应用。
电动汽车在开发过程中需要对整车运行参数进行采集和监控,以便分析各部件的运行状况,优化和改进整车控制策略。在整车耐久性考核中也需要全程采集和记录运行数据,以便对整车及部件性能变化进行分析。因此车载CAN总线监控系统是电动汽车研究和开发的重要工具,本文重点论述车载CAN总线监控系统的开发以及柔性测试技术在系统开发中的应用。
近10年来我国电动车辆技术得到了重大进展,但是动力电池及电机控制技术仍然是电动车辆发展的技术瓶颈[3]。在实际应用中,电动汽车对电机提出的功率需求是动态变化的,瞬间的大电流冲击以及充放电之间的瞬间切换,对动力电池动态性能提出了要求。而电机的启动不仅要考虑节能指标还要兼顾平稳性和快速性,因此也需要通过测试数据得出最优化控制策略。由于CAN网络包含了整车控制器信息、电池信息和电机控制信息等,基于此,开发了一种能够监测汽车CAN网络的车载装置对电动汽车的研究具有很重要的意义。
下图为整车网络拓扑结构,该网络基于J1939协议,报文采用29位ID的扩展帧格式,其通讯速率为250kbps,该网络包含CAN节点为整车控制器、电池管理系统、电机控制器、组合仪表、高低压直流转换、充电机。
图 1 整车CAN网络拓扑图
其中29位ID的分配表如下表1所示,优先级为3位,可以有8个优先级;R一般固定为0;DP现固定为0;8位的PF(PDU
Format)为报文的代码;8位的PS(PDU Specific)为目标地址或组扩展;8位的SA(Source
Address)为发送此报文的源地址。每帧CAN报文信息包含ID和8字节数据,解析报文数据时,根据ID号解析对应的数据信息。
表 1
CAN总线网络报文结构图
优先级 |
R |
DP |
PF |
SRR |
IDE |
PF |
PS |
SA |
3 |
1 |
1 |
6 |
2 |
8 |
8 |
为了满足电动汽车开发人员在路况下对汽车进行故障信息诊断和分析汽车控制策略,以及道路实验数据采集的需求,系统硬件在设计时必须考虑方便车载和移动性比较强。本装置采用笔记本作为控制主机,实现CAN信息的数据记录、分析和存储等功能。考虑到供电等因素,虽然PXI CAN卡具有很多优越性,但由于需要PXI机箱,因此,设计中CAN卡采用NI USB-8473卡,其具有以1 Mb/s的速率记录100%总线载荷且不掉帧、通过USB总线接口供电和硬件时间标注为1 μs分辨率等优点,非常适合本系统应用场合。
本系统的开发和使用环境相同,操作系统为Windows XP SP2,开发环境为LabVIEW 2010。
LabVIEW是高效图形化应用开发环境,结合了简单易用的图形化开发方式和灵活强大的编程语言的优势合而为一。它可以提供:直观明了的图形化开发环境;开放且符合工业标准的软件;内置编译器加快运行速度;多平台兼容;可与大量硬件接口(I/O)紧密结合。
软件主要功能包含4部分:通讯功能、数据分析、数据管理和故障管理。CAN总线通讯速率可配置,配置范围为0~1Mbit/s,适用不同速率的CAN总线网络,可以记录CAN网络上的报文,标注每帧报文的接收时间,其标注分辨率为1μs,可以根据通讯协议,将监测到的CAN报文解析为对应的物理量,CAN报文与物理量之间的对应关系可配置。监测的数据需保存并可以实现数据回放和分析的功能,同时可以统计故障及报警信息数量。
软件系统采用基于生产者消费者的架构,生产者循环主要用来监测用户请求等事件,程序流程主要基于事件触发。包括系统初始化、参数配置、CAN信息采集解析、CAN信息显示、报表生成、错误信息统计和数据回放等功能。其程序流程图如图2所示。
图 2 系统程序流程图
为了各线程能够独立的运行,CAN报文采集线程由响应点击开始按钮事件后动态调用,其停止由主程序通过队列发送停止命令来控制,采集的CAN报文数据通过队列的方式上传至主程序,以供解析报文vi进行数据处理;显示界面线程则直接通过引用对控件赋值,从而提高了程序的可读性和扩展性。
为了使CAN报文解析程序能够适应不同车型和不同物理量,是整个系统一个重点和难点,作为以柔性测试技术为核心理念的测试系统,开发的系统应该具有准确性、可靠性、灵活性、适用性和扩展性等优点[4]。因此在对报文解析时应该充分考虑可扩展性和可配置性,这样可以不更改程序代码或者只需要修改一小部分代码就能够很方便的使程序适用不同车型的监控中。由于CAN报文的数据场包含的数据信息比较多且通讯协议可以被用户或者开发人员更改,因此程序的灵活性和扩展性至关重要。
NI-XNET提供了强大的CAN数据库配置工具,因此只需要将CAN数据库与物理量对应关系做好配置,即可很容易解析数据。但是,NI-XNET不支持NI
USB-8473卡,且选用的CAN卡只支持NI-CAN Frame
API函数。为了能够很方便的使用NI-XNET下的CAN报文解析工具包,需要将采集到的NI-CAN Frame数据报文转换为X-NET
Frame数据报文。由于CAN报文解析与底层硬件无关,所以只需要转换CAN报文格式即可,其程序如下图3。
图 3 NI-CAN Frame数据报文转换为X-NET
Frame
图所示4为报文解析程序和CAN数据库配置图,其中Cluster为CAN数据库配置中所有CAN
Frame组成的簇,限于篇幅CAN数据库组成在本文不展开探讨;Interface为物理接口;X-NET Frame为转换后的CAN数据报文;Signal
data为根据配置的CAN数据库解析出来的CAN实际信息,其顺序按照数据库Signal的顺序依次解析,其数据类型为DBL类型。在程序设计时,对于状态量的解析还需要根据Comment配置的信息进行翻译。例如某个Signal的数据为0,0表示继电器开,1表示继电器关,那么Comment的配置信息应该包含0和1分别表示什么含义,解析报文数据时,通过获得Signal的值和Comment的信息,则可解析得出继电器开。从而方便用户自定义物理量。,在实际应用中可以根据不同的车型,配置成不同的Cluster,这样根据测试的车型选择对应的Cluster即可实现CAN报文信息的解析,从而使系统更加柔性。
图 4 CAN报文解析程序和数据库配置图
在实验场路况下,采用转矩闭环控制,对某车型进行实验,其实验运行监测图如下图5所示。实验表明程序运行正确可靠,能够满足实时监控电动汽车的运行情况,同时采集的数据可以很方便的为研究人员优化整车控制器算法提供实验数据。同时,通过配置不同车型的CAN数据库,即可实现对不同车型的CAN报文信息解析,真正将柔性测试技术融入到测试系统中。本装置具有故障诊断能力,因此还可作为整车售后的检测装置使用。
图 5 实验运行监测图
参考文献
[1] 金振华,卢青春,魏红军等.基于虚拟仪器的车载CAN
总线监控系统开发.自动化技术,2006,(11).
[2]
黄向东,汪胜勇,赵克刚等.基于CAN总线的HEV集散控制系统的通信.华南理工大学学报,2004,(5).
[3]
孙逢春,孟祥峰,林程等.电动汽车动力电池动态测试工况研究.北京理工大学学报,2010,Vol.30,No.3.
[4] 张宝刚,
顾飞.基于“柔性测试”技术的笔式点火线圈综合测试系统.国外电子测量技.2008,27(10).
北京泛华恒兴科技有限公司 黄得铭 武鹏
(版权所有 请勿转载)