基于CAN总线的新能源汽车实时数据监控平台

2018-07-09 12:27王伟王茜曲辅凡吴春颖
汽车零部件 2018年6期
关键词:调用报文总线

王伟,王茜,曲辅凡,吴春颖

(1.中国汽车技术研究中心,天津 300300;2.天津大学电气与自动化工程学院,天津 300072)

0 引言

新能源汽车是汽车行业的发展趋势、低碳经济发展的必然选择。通过国内外新能源车的对标试验,可以分析国内外新能源汽车的设计与研发差异,提高我国新能源汽车的竞争力。新能源车大量采用电子控制系统,这些复杂的控制系统通过CAN(Controller Area Network)总线来进行数据通信[1]。LabVIEW是NI公司推出的一种创新软件产品,具有图形化语言开发环境,能够便捷地构建与外部通信的软件界面平台[2]。通过USBCAN接口卡将CAN网络与PC(Personal Computer)连接,在PC上用LabVIEW搭建与CAN总线通信的界面,可以实现实时监控CAN总线中的数据。除了报文监控功能外,此平台提供了报文解析功能和信号监控功能,将数据位发生变化的报文提取出来,辅助CAN报文的解析,以便显示需要监控的汽车信号。

1 系统硬件设计

此系统由周立功公司生产的USBCAN-II接口卡和一台PC机以及用LabVIEW开发的监控解析平台组成,如图1所示。车上安装多种传感器用来采集车辆信号,将采集的数据按照某种协议规则转化成报文形式传入CAN总线,通过CAN接口卡实现PC机与CAN总线网络的连接。用户可以通过对PC机操作实现与CAN总线数据的交互,对从CAN总线接收的数据进行分析处理,在基于LabVIEW开发的监控平台上显示CAN总线上报文信息和相关的车辆信号变化情况[3]。

图1 系统硬件结构

CAN接口卡采用USBCAN-II智能接口卡,此接口卡兼容USB2.0全速规范,具有体积小、便携、即插即用的特点,并且支持车载协议解析,自带保护功能,增强设备的安全性与可靠性。

2 系统软件设计

软件设计是此系统设计的核心,采用LabVIEW作为软件开发平台。LabVIEW带有大量可视化图形控件,可以选择不同的控件来实现不同的功能,在前面板实现人机交互功能,在程序界面对控件编程实现所需要的功能。CAN接口卡与PC通过USB来连接,USB驱动由周立功公司提供,只需下载安装即可使用。

2.1 总体设计

如图2所示:主要功能程序有主控程序、接收数据程序、发送数据程序和分析显示数据程序。若将上述4个任务在同一线程顺序执行,则当执行其中一个任务时其他任务处于等待状态,每个功能程序的执行时间不同,必定造成数据的不完整性。为解决这一问题,利用LabVIEW的自动优化多线程机制,将主控程序、接收数据、发送数据、分析显示数据分别放在并行独立的While循环内,来提高数据的处理速度[4]。

图2 软件总体设计图

在主控程序里主要实现对USBCAN接口卡配置、启动、关闭等操作。在主控程序的循环结构中加入一个事件结构,事件结构类似于硬件的中断,事件结构发送中断请求给CPU,CPU收到信号便处理事件结构内的程序代码。在事件结构中响应相关操作,如设置波特率、打开设备、打开CAN通道等;在事件结构的用户事件中将接收或者要发送的数据传送到队列,供分析显示数据程序调用。周立功公司提供函数接口库文件control.dll,利用LabVIEW自带的“调用库函数节点”来调用control.dll中的函数去驱动USBCAN接口卡并完成数据的接收和发送。队列函数用于各个线程之间的数据传递,从CAN总线接收的数据或将要发送的数据通过调用入队列函数传入队列中,在分析显示程序里调用出队列函数取出数据进行处理[5]。

2.2 接口库函数的调用

接口库函数control.dll供用户进行上位机二次开发,control.dll函数库中包含多种功能函数,这些函数驱动USBCAN-II接口卡工作,包括启动或关闭USBCAN接口卡、启动和复位某路CAN通道、初始化某CAN、清除接收缓冲区、从CAN网络接收数据和发送数据。

每种功能函数都预留了接口,只需要对这些接口进行参数配置就可以实现函数的功能。图3为接口库函数调用流程图。

图3 接口库函数调用

调用这些功能函数前,需要定义相应的数据结构体来确保功能函数正常实现。此系统中需要定义两个结构体:VCI_CAN_OBJ结构体(如图4所示)被用来传送CAN信息帧;VCI_INIT_CONFIG结构体(如图5所示)被用来完成初始化CAN配置,调用初始化CAN函数前,需要填充此结构体。

图4 VCI_CAN_OBJ结构体

图5 VCI_INIT_CONFIG结构体

函数的调用方法都是类似的,以VCI_Receive为例来说明。此函数为接收函数,用来读取指定的设备CAN通道中的缓存数据。使用之前,一般先调用 VCI_GetReceiveNum函数来获取缓存帧数,以便对应接收[6]。

LabVIEW自带调用库函数节点函数,可以直接调用DLL库或共享库。将此函数加入到程序界面,双击打开配置界面,选择调用的动态接口库函数路径,再选择需要调用的函数,然后打开参数界面,进行参数配置,函数调用成功。接收到的数据存入队列中,供数据分析处理和显示子程序调用。

2.3 数据的分析与处理

接收的报文存入队列中,利用出队列函数将存入队列中的数据取出来进行分析处理,放在两个并行的While循环中,分别完成报文解析和报文解码。

2.3.1 报文解析

新能源汽车对标试验中亟需解决的问题就是解析CAN协议时需要经过一系列分析判断,才能方便开展后续的研究,报文解析的目的就是帮助破解信号。

报文解析循环中主要完成报文数据分析处理并在列表中显示,解析过程如图6所示。列表包括数据报文监控列表和报文解析监控列表,两个显示列表均采用“ID固定,其他变化”的显示方式,列表中显示的报文信息有报文的ID、传输方向、时间标识、报文类型、数据位长度和数据位内容。

图6 报文解析过程

在数据监控列表中,显示的是所有接收到的数据,数据位用十六进制的方式显示。通过此列表可以实时观察到CAN总线中所有报文的信号变化情况。

在解析列表中,显示的是数据位变化的报文,数据位用二进制的方式显示。在解析列表中可以实时观察发生变化的帧ID及具体的数据位变化,变化数据位会被标红高亮显示。此系统为实时监控系统,通过观察发生变化的报文,再配合观察实际物理量的变化,通过计算和分析可以大致确定车辆信号变化和变化ID及数据位的关系,去缩小未知协议的范围,有利于初步分析协议。

2.3.2 报文解码

通过报文解析获取某些协议后,此系统提供交互面板,可以选择帧ID和定义相关换算,选择监控的信号量,通过报文解码在该监控平台实时观察传感器传送的实际信号量的变化。

报文解码过程如图7所示。按已知协议将需要检测的物理量的相关数据帧ID筛选出来,根据协议内容去定义换算方法,将换算好的数据传送给显示相应信号的控件来显示[7]。

图7 报文解码过程

3 应用举例

利用开发的监控软件,在某款新能源车辆上进行测试验证,图8为实车系统连接图。

图8 系统连接图

车辆经过上电操作之后,车辆CAN线全部报文监控数据如图9所示;经过驾驶员不同的操作之后,解析列表中发生变化的数据位用虚线框圈住,如图10所示。通过观察对比解析列表中ID的数据位与实际信号的变化情况,可以缩小ID可能的范围,再通过计算和分析最终确定了电机转速和车速信号的ID和定义方法。

图9 报文监控结果

图10 报文解析列表

根据解析出来的电机转速和车速信号,通过信号监控界面对它们进行监控验证,信号监控结果如图11和图12所示。

图11 信号实时监控结果

图12 信号历史曲线结果

4 结束语

系统能够很好地实现实时显示数据、跟踪数据的变化、辅助解析CAN报文,提高了车辆采集分析数据的效率。在新能源车辆CAN信号分析方面,提供多种显示方式来观察车辆信号,对于车辆性能分析具有良好适用性。

参考文献:

[1]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2010.

[2]宋铭.LabVIEW编程详解[M].北京:电子工业出版社,2017.

[3]邵斌,朱茂桃,张彤,等.混合动力汽车CAN网络信号监测与故障诊断系统的开发[J].汽车技术,2009(2):46-50.

SHAO B,ZHU M T,ZHANG T,et al.Development of CAN Network Signal Monitoring and Diagnosing System for Hybrid Electric Vehicle Based on Labview[J].Automobile Technology,2009(2):46-50.

[4]王成刚,杜润生.计算机监控系统实时多任务调度策略在LabVIEW平台上的实现[J].测控技术,2001,20(3):47-49.

WANG C G,DU R S.Scheduling the Real-time Multitasks of Computer Measurement and Control System by Using LabVIEW[J].Measurement & Control Technology,2001,20(3):47-49.

[4]LIU X T,WANG Z W,WEI D,et al.Design of Fuel Cell Monitoring and Control System Based on LabVIEW and CAN Bus Communication[J].Applied Mechanics & Materials,2015,727/728:721-724.

[6]广州致远电子有限公司.CAN测试软件与接口函数使用手册[EB/OL].(2017-08-07)[2018-2-5].http://www.zlg.cn/data/upload/software/Can/CAN_test_um.pdf.

[7]NAN J R,HE L,LIN C,et al.Development of end of Line CAN Bus Test System in Electric Vehicles Based on LabVIEW[J].Applied Mechanics & Materials,2014,455:491-494.

猜你喜欢
调用报文总线
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
基于Python的汽车CAN总线报文格式转换系统的设计与实现
关于CAN总线的地铁屏蔽门控制思路论述
基于报文类型的限速值动态调整
基于Android Broadcast的短信安全监听系统的设计和实现
利用RFC技术实现SAP系统接口通信
Q&A热线
PCI9030及其PCI总线接口电路设计
C++语言中函数参数传递方式剖析