基于CANDTU和LabVIEW的远程车载参数监控系统的实现

2019-09-10 07:22陈华春古茂兢
现代信息科技 2019年16期
关键词:CAN总线

陈华春 古茂兢

摘  要:本文介绍了一种基于CANDTU硬件和LabVIEW软件平台的远程车载参数监控系统的实现。系统按功能模块可以分为CAN报文采集、4G上传云服务器、LabVIEW数据处理分析三部分。通过CANDTU可将汽车总线各单元的数据上传到指定云服务器,完成数据采集和存储,然后在本地计算机上通过LabVIEW调用CANDTU提供的接口函数连接云服务器,有的CAN数据会被传输到计算机上进行后续的处理和分析,借助LabVIEW可以生成专业的分析图表,并通过图表判断是否满足设计标准。

关键词:CAN总线;LabVIEW;车载参数监控

中图分类号:TP277;U469.72     文献标识码:A 文章编号:2096-4706(2019)16-0004-03

Abstract:This paper introduces a remote vehicle parameter monitoring system based on CANDTU hardware and LabVIEW software platform. According to function modules,the system can be divided into CAN message collection,4G cloud server uploading and LabVIEW data processing and analysis. The data of each unit of automobile bus can be uploaded to the designated cloud server through CANDTU to complete data acquisition and storage. Then the interface function provided by CANDTU is called by LabVIEW to connect the cloud server on the local computer. Some CAN data will be transferred to the computer for subsequent processing and analysis. With the help of LabVIEW,professional analysis charts can be generated,and the charts can be used to determine whether the design standards are met.

Keywords:CAN bus;LabVIEW;vehicle parameter monitoring

0  引  言

汽車是当今最重要的交通工具之一。但是近年来,能源和环境污染问题日益严峻,国务院在2012年发布《节能与新能源汽车产业发展规划(2012—2020年)》,规划了以电驱动形式的汽车为主的新能源汽车的发展方向,以及整个汽车工业转型的战略方向。如今,中国已经成为新能源汽车产销第一大国。汽车性能检测是现代汽车行业评价汽车性能的主要手段,新能源汽车的检测需求也越来越多[1]。

汽车生产商每生产或升级一款新车,都需要做路测收集汽车行驶时各单元的实时状态,做具体的性能分析。CANDTU利用4G信号远距离传输CAN数据,结合LabVIEW简单且强大的界面编辑功能,可以缩短测试软件开发周期,降低测试人力成本,结果也能及时反馈。

1  系统设计

如图1所示,系统主要由三个部分构成:CAN报文采集、4G上传云服务器、LabVIEW数据处理分析。

CANDTU支持4G通信,可将CAN总线上的数据上传到指定的服务器上。CANDTU的CAN口并入待测总线,使用CANDTU配置工具配置对应总线波特率、服务器IP和端口。

CANDTU云数据平台具有远程管理设备、配置设备、实时转发数据等功能。设备通过4G无线连接到云数据平台后,将设备ID添加到云数据平台后,用户即可远程管理设备。同时,云数据平台还支持CAN、GPS数据实时转发,可通过LabVIEW调用二次开发函数库开发应用,免去用户搭建服务器的工作,从而快速搭建用户应用。

2  软件设计

2.1  软件功能结构

如图2所示,软件系统由1个主控程序与4个功能子程序组成。

主控程序实现用户登录服务器、获取设备列表、启动设备、断开服务器连接、复位设备等人机交互操作,LabVIEW是事件结构类似硬件的中断方式,在降低CPU的占用率的情况下,能够快速地响应用户事件,所以主界面的程序使用事件结构编写。其他4个子程序主要完成数据的接收、发送、显示和存储、解析,分4个独立的线程运行。主控程序随软件启动运行,它可以根据用户的需求,通过选项卡选择其余4个子程序,并将各子程序的运行结果传递给相关功能面板的显示控件。

2.2  二次封装接口函数

LabVIEW调用DLL也有一定的局限性,无法调用包含赋值或者返回值包含复杂数据结构的DLL[2]。由于CANDTU提供的DLL包含上述复杂数据结构,所以需要重新封装函数。构建一个新的DLL,把复杂的数据结构转换成LabVIEW易于调用的数据类型。

使用Visual Studio 2013软件重新编译生成zlgcan_wrap.dll二次封装函数。

2.3  软件主界面实现

LabVIEW通过使用调用库函数节点调用DLL,在调用库函数节点的配置窗口的功能选项卡上,输入DLL的路径并选择需要调用的功能,按照DLL的头文件说明,手动添加定义函数原型,类似的调用方法如图3所示。

程序主界面如图4所示,程序中的各个子程序的调用都要根据用户按需操作,即典型的HMI人机交互,要处理的事件包括:登录服务器、获取设备操作句柄、启动接口卡、启动各子程序等。为了提高程序运行效率,在While结构中避免对这些事件不必要的轮询操作,使用事件结构来响应用户的操作。对于登录服务器、初始化其相关参数等硬件加载过程,可以参考DLL的调用流程,其中有些是固定的流程,可以使用顺序结构执行,程序简单易读。

2.4  接收发送实现

本系统的设计主要目的是远程获取汽车总线数据,登录服务器以后,从设备列表中选取在线设备,打开设备即可获取对应的设备索引。ZCAN_Receive是CANDTU接口卡用于接收数据的函数,在LabVIEW中可以利用Calling Library Function Node对它进行调用。在按照函数规定的调用格式配置好相关参数后,即可通过接口卡进行数据的接收。ZCAN_Receive函数的输出量具有规定的数据结构,在LabVIEW构建类似C语言的结构体,需要用到簇构建。簇的构建需要注意的是字节对齐问题,LabVIEW是单字节对齐方式,这意味着LabVIEW中的簇的内存映射是无间隙的,簇实际占用空间等于簇中各个元素占用空间之和,如果不满足对齐条件,可以通过空的占位符解决。为了缓存收到的数据帧,在数据接收子程序中创建一个队列,当ZCAN_Receive函数接收到数据后,使用Lossy Enqueue Element将结果存入其中,以供其他子程序调用。发送和接收并行处理的,同理可以创建ZCAN_Transmit函数,完成对CAN数据的接收和发送,最终结果如图5所示。

2.5  数据保存实现

数据列表与保存子程序用于显示系统所采集到的数据,并根据用户需求保存结果。当该子程序运行时,使用Dequeue Element向保存接收数据的队列读取结果。对于数据采集和分析系统,在尽可能快速采集数据的同时,也不能因为显示和处理的开销导致采集丢帧。所以接收部分,使用的是生产者消费者结构,ZCAN_Receive接收数据作为生产者,消费者从数据缓存中提取所需要数据,用于显示和解析。显示部分,可以通过多列表框(Multicolumn Listbox)以文本的方式显示。通过字符串选项卡目录下的功能节点,将所接收到的数据转换成字符串,并显示在多列表控件中。当用户要求保存数据时,程序会把每一帧接收到的数据按照列表中的格式写入到指定的TXT文件中,以供其他软件的调用与分析。

2.6  数据解析实现

從CANDTU上传的数据是真实物理量经过相关传感器编码及CAN协议转换后得到的,一帧报文包括IP和最大8位数据。同一帧可能定义了不同含义的数据,所以原始数据并不利于用户的直观观测和理解,需要对帧ID进行筛选归类,数据按位进行解析换算,将结果直接输出显示。需要对各数据帧的数据内容进行设置、指定换算方法等,在汽车电子中,有DBC文件可供解析CAN节点的有效信息,在此构建的是类似DBC解析的工作。包括:数据名称、数据单位、数据类型,数据有效值在数据帧中所占据的字节位,以及如何处理换算等。对于数据处理换算的方法定义,采用Matlab Script实现。定义数据及换算方法、启动监测功能后,系统即可以将指定数据的真实物理量在监测面板中实时显示。

用USBCAN卡模拟汽车总线数据,往CANDTU的CAN0口发送数据,可以正常地接收和解析数据,功能正常,运行稳定,如图6所示。

4  结  论

本文介绍的远程车载参数监控方案与传统的随车或者离线测试系统相比有明显的优势,它提供了简便快速的汽车路况参数分析方案,结合了4G技术和LabVIEW快速开发的特点。本系统提供了实时数据传输和分析功能,因此在车辆测试时可及时修正系统参数。此方案的提出可有效降低测试人力和软件开发成本。

参考文献:

[1] 王怀兴.基于LabVIEW技术的汽车发动机实时远程网络测试系统研究 [D].武汉:武汉理工大学,2005.

[2] 陈树学,刘萱.LabVIEW宝典 [M].北京:电子工业出版社,2011.

作者简介:陈华春(1989-),男,汉族,广西玉林人,本科,技术支持工程师,研究方向:嵌入式系统设计;古茂兢(1990-),男,汉族,广东茂名人,本科,技术支持工程师,研究方向:嵌入式系统设计。

猜你喜欢
CAN总线
论网络通信技术
基于嵌入式的汽车辅助制动系统研究
CAN总线通信技术在电梯监控系统中的应用
基于CANoe的J1939协议在ECU通信中的应用
利用MC9S12(X)单片机构建CAN总线网络的研究
基于CAN总线的智能微喷灌监控系统中下位机的硬件电路组成与设计
基于CAN总线的变电站通讯网络设计
一种航空交换机中CAN总线的自动化测试方法