基于LabVIEW和CAN总线的汽车参数采集监控系统
2018-05-24梁浩
梁 浩
(华北水利水电大学,河南 郑州 450045)
近20年来,随着现代电子的快速发展,大量的电子元器件在汽车上被广泛应用。为了满足汽车各个子系统对汽车运行参数的共享和实时性的要求,CAN总线逐渐成为当代汽车普遍使用的总线协议。
1 系统的硬件组成
本监控系统由一块CAN卡(沈阳广成 USBCAN-Ⅱ)和PC机组成,PC机里装有基于LabVIEW开发的应用软件。通过数据线的连接,PC机可以对汽车发动机运行参数数据的接收和发送,从而实现用户对汽车发动机运行参数的监控。如图1所示。
图1 系统硬件组成
2 系统软件设计
监控系统的软件设计是基于LabVIEW平台。LabVIEW是一种程序开发环境,由美国国家(NI)公司研制开发,类似于C和BASIC开发环境,显著特点是:不需要采用基于文本的语言代码,使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
2.1 软件的主要功能
汽车数据采集监控系统主要包括以下功能:
1)从车辆的ECU接收发动机运行状态参数;
2)对接收到的状态参数进行解读,以数字,图表等形式显示;
3)根据用户需要,对发动机状态运行参数进行修正,发送指令给车辆ECU;
以上3个功能只需随软件运行时打开主程序,两个并列的While结构中运行数据接收程序和数据发送程序。其中,在数据接收子程序后要添加一个条件结构对接收到的数据进行解读显示;在数据发送程序中添加事件结构,监控控件动作变化。当然,只有在主程序不报错的情况下,其余程序才能顺利进行。软件程序结构如图2所示。
图2 软件程序结构
2.2 程序工程实现
沈阳广成科技的USBCAN-Ⅱ产品提供了Ecan动态库,这个动态库里包括了大量的动态函数,通过驱动文件Control CAN.dll导出,可以作为LabVIEW的VI调用,从而实现对USBCAN-Ⅱ的打开、初始化设置等操作。
2.2.1 主程序
软件系统中的基础是主程序,只有主程序打开 CAN卡初始化后,CAN通信正常,其它的子程序才能顺利进行,而主程序包括:打开CAN卡、初始化CAN卡、CAN通信打开,启动子程序等。为了提高软件的运行效率,打开 CAN卡后,只需进行一次初始化,随后的数据操作都是在数据发送和数据接收中进行,所以对主程序使用了平铺结构,只要CAN通信打开后,CAN卡不再进行初始化,这样既可以保证CAN卡顺利打开,又可以保证CAN通信的正常运行。
2.2.2 数据接收程序
VCI_Receive是CAN卡的接收函数,在LabVIEW中使用调用库函数的指令进行调用。通过设置timing0和timing1可以设置CAN通信的波特率。而CAN_OBJ结构体表示帧的数据结构。在接收函数Receive中被用来传送CAN信息帧。
2.2.3 数据解读程序
VCI_Receive函数的输出量是以结构体形式的数组,故需要调用 LabVIEW 中“簇”将其解压,将数据从结构体中释放出来,再根据 ID将具体的数据进行解压和显示。在显示过程中调用了选择结构,将根据 ID的不同将不同的数据以不同的方式解读和显示。
2.2.4 数据发送程序
VCI_Transmit是CAN卡的发送函数,由于数据发送程序是在一个While结构中,所以在While结构中加入了事件结构,由事件发生源作为While结构的触发事件,这样就可以减少数据发送程序的不必要运行,同时保证数据发送指令的即时执行。而数据自动填充报文是在事件结构中进行,并且使用了局部变量将得到的报文以结构体的形式发出,实现CAN通信的发送。
3 系统运行
汽车数据采集监控系统是通过PC机和CAN卡的连接且可以正确接收和发送报文实现的,进而可以实现对发动机运行参数的检测和控制。在软件的试验过程中,将 CAN卡与发动机 ECU通过双绞线连接,实现发动机和监控系统的通信,从而验证软件的实用性。
3.1 系统的运行界面
本监控系统运行后,会直接显示系统的运行,如图3所示:
图3 系统运行界面
图中为试验过程中系统的运行状态,均达到预期设计目的,运行稳定。
4 结束语
在汽车试验中,通过LabVIEW和CAN总线建立的汽车数据采集监控系统,可以实时监测和控制车辆的运行参数,且通过试验进行验证。结果表明,系统运行稳定、可靠,软件操作简单,达到预期设计目的。
参考文献
[1] 沈阳广成科技有限公司.接口函数库(EcanVCI.dll)动态使用手册[Z].2015.
[2] 周竹朋,王欢.基于 CAN总线的新能源汽车通信网络设计[J].机电工程技术,2017.
[3] 钟文浩.电动汽车CAN报文的解析及应用[J].汽车电器,2017.
[4] 王堃,奚煜.基于LabVIEW的CAN总线通信系统的设计与实现[J].工业控制计算机,2017.