摘 要:面向对象编写CAN总线驱动接口程序,运用VC++6.0实例化,并在此基础上开发上层用户界面。在车载CAN网络通讯协议监测程序中,封装实现CAN总线通讯的功能,为监测人员提供交互式的程序接口,并在PC机上实现网络通讯协议的检测功能。最后将PC机作为虚拟ECU通过CAN总线与被测ECU相连接,利用MATLAB/Simulink建立仿真测试模型,利用该测试模型控制MACS565通过总线进行通讯,实现CAN总线高层协议监测平台的构建。
关键词:CAN总线;车载网络;实时监控
随着汽车电子技术的不断发展,车辆上电控系统的数量不断增多,且功能越来越复杂。很多汽车采用了多个电脑,如奔驰600SEL采用了超过20个电控模块。每一个电脑都需要与多个传感器及执行器之间发生通信,而每一个输入、输出信号又可能与多个电脑之间发生通信。如果每一个电控系统都独立配置一整套相应的传感器和执行器,汽车的各个部位将产生大量的线束、插件,这样不仅会增加汽车生产车间组装工人的装配困难以及车身重量,也会增加汽车售后维修人员对故障诊断、维修的难度。另外,为了提高汽车综合控制的准确性,综合控制系统也迫切需要输入、输出信号及数据的共享。当电控模块共享输入信息时,就能对汽车进行更为复杂的控制[1]。
控制器局域网络(CAN)是一种串行数据通信总线,其通信速率达到1 MB/s。CAN总线的最大特点之一是任一节点所传送的数据信息不包含传送节点或接收节点的地址。信息的内容通过一个标识符(ID)作上标记,在整个网络中,该标识符有且只有一个。网络上的其他节点接收到信息后,每一节点都对这个标识符进行测试,以判断信息内容是否与己相关。若是相关信息.它将得到处理;否则即被忽略。采用该方式的优点是可使网络内的节点个数在理论上不受限制,也可使不同的节点同时接收到相同的数据[2]。
另外,标识符还决定了信息的优先权。ID值越小,其优先权越高。当存在2个或2个以上节点争用总线时,CAN将采用ID进行仲裁,确保具有最高优先权信息的节点优先获得总线使用权。
一、监控平台的基本架构
(一)总体结构
在汽车电控系统的通讯网络中,根据实际需要,使用了OSI所定义的七层标准通讯协议层次结构中的四层:物理层、数据链路层、网络传输层和网络应用层,其层次结构如图1-1所示。其中物理层和数据链路层的功能,在CAN总线及其控制器中实现,ISO11898对其做了具体定义[3],而传输层和应用层则需要用户自行定义和设计。
通讯协议自动诊断测试系统主要由以下几部分功能部件组成:(1)CAN总线驱动程序,它是测试系统与CAN总线硬件在物理层和数据链路层上的接口程序;(2)模拟OSEK操作系统应按照OSEK操作系统中的任务调度算法,控制CAN总线上消息的发送和接收;(3)作为传输层的TP2.0传输协议动态链接库应能够实现全功能的ECU传输协议;(4)作为应用层的关键字协议KWP2000,从用户界面接收用户定义数据,按照各自协议的规定产生格式化的数据,并交给下层的传输协议传送到CAN总线上;(5)最上层的Windows图形用户界面,则为测试人员提供了交互式的程序接口。本文完成了最下层的物理层和数据链路层上的CAN总线驱动接口程序,以及最上层的用户界面的设计和实现,最终实现了CAN总线通讯协议监测平台的搭建。
(二)硬件结构
为了实现实时的闭环监测与控制,监测平台的硬件应该包括:
1.能实现网络通讯协议的PC机;
2.与汽车电气控制系统兼容的CAN总线和总线控制器;
3.必需的接入总线节点的IO接口;
在該系统中使用的接口卡是Vector公司出产的CANcaseXL USB2.0接口卡。该接口卡具备高性能的处理器、USB 2.0接口、32位微处理器、灵活的硬件设计、外壳稳固、连接强壮,能够满足高端应用,也适用于野外环境[4]。
4.总线节点ECU,即实节点;
该系统中使用的实节点包括MACS565主控模块和电子节气门控制模块。MACS565是由荷兰TNO公司开发的一套汽车电控系统快速原型开发平台,主要有主控制器、WinSpecs监控软件、I/O模块、发动机控制、电子节气门专用模块ETC-Node等模块组成,几个模块之间可通过CAN总线或以太网进行数据通讯。
(三)软件结构
建立CAN总线通讯协议监测平台,使用到的软件有:
1.MATLAB/Simulink
2.WinSpecs监控软件
3.车载CAN网络通讯协议监测程序
开发过程中采用的操作系统为Windows XP Professional;软件开发工具为Microsoft Visual C++6.0。系统上位机软件运行环境为安装了Microsoft Visual C++6.0的Windows 2000/XP操作系统。
二、设计与实现
在本文中,用户界面是采用Visual C++开发工具中的MFC来设计的。MFC中应用程序的编写可以分为两个阶段,可视化设计阶段和代码设计阶段。可视化设计,就是设计对话框,在其中适当的位置添加或删除适当的控件,使其外观符合设计者的要求。代码设计,就是为每一个控件设计相应的代码,使其完成相应的动作[5]。本文研发的车载CAN网络通讯协议监测程序可分为两个模块:界面模块和功能模块。功能模块内封装了实现CAN总线通讯功能的功能接口函数,而界面模块内封装了与实现用户界面上的控件功能相关的成员函数[6]。
运行后,用户界面如图1所示。
图1 车载CAN网络通讯协议监测平台用户界面
三、功能验证与评价
(一)监测对象
为了验证CAN网络通讯协议监测程序是否满足设计时提出的功能需求,并进行通讯监测试验,分析数据信息,根据第一章中提出的CAN网络通讯协议监测平台的基本构架,借助Vector CANcaseXL接口卡和MACS565快速原型开发平台,搭建了车载CAN网络通讯协议监测平台。
利用MATLAB/Simulink建立仿真测试模型,通过WinSpecs软件将MATLAB/Simulink建立的模型写入MACS565汽车电控系统快速原型开发平台的主控制器ECU的FLASH或者RAM存储器中。该测试模型控制ETC-Node与主控制器之间通过CAN总线进行通讯,相互交换数据信息。ETC-Node通过对主控制器发送来的节气门开度的期望值信号进行计算,把相应的控制信号发送到驱动电路模块,由驱动控制电机使节气门达到相应开度位置。同时将电子节气门的模拟量信号、内部信息和状态、标定信号等以CAN数据信息的形式返回给主控制器。测试人员可以通过车载CAN网络通讯监测程序和Vector CANcaseXL接口卡实时控制CAN总线上数据信息的读取和导出,针对所采集的数据信息进行分析后,可以了解电子节气门的工作情况。
(二)功能验证
基于车载CAN总线网络协议监测程序的功能需求,针对监测程序四个方面的功能,设计了相关功能验证用例,以验证监测程序是否能够满足相应的功能需求:硬件配置功能、通讯功能、数据提取功能和数据导出功能。功能验证用例在此不做累述。
(三)监测结果及评价
根据功能验证结果,车载CAN网络通讯协议监测程序能够较好地实现CAN总线的基本通讯功能,监测过程中能够实现数据信息的实时显示、读取和导出,车载CAN网络通讯协议监测平台能够进行初步的监测试验,通过对导出数据的分析,测试人员能够了解到监测过程中的电子节气门硬件的工作情况,从而为电子节气门的性能检测提供了手段。
参考文献:
[1](法)胡思德(Daniel ROUCHE)主编.汽车车载网络(VAN/CAN/LIN)技术详解[M].机械工业出版社.2006年版
[2]李刚炎,宋叶琼,金海松.CAN及其在轿车中央控制系统中的应用[J]武汉汽车工业大学学报,2000,(2):6-9
[3]Robert Bosch. CAN Specification Version 2.0[R],Technical Report, ISO11898,Robert Bosch GmbH,1991
[4]恒潤科技.CANcaseXL.http://www.hirain.com
[5]陈孟英主编,Visual C++6.0中文入门图解教程[M],清华大学出版社,2000
[6]古乐,史九林编著.软件测试案例与实践教程[M],清华大学出版社,2007
赞(0)
最新评论