基于LabVIEW的智能汽车自动驾驶开发平台数据采集监测系统
2020-03-25毋青松钟兵罗映许本博
毋青松,钟兵*,罗映,许本博
1.山东交通学院汽车工程学院,山东济南 250357;2.山东建筑大学机电学院,山东济南 250101
0 引言
随着新一代信息技术、人工智能等的飞速发展[1],智能化、网联化已经成为汽车产业新的战略制高点[2-3]。智能汽车集成了大量先进的传感器、雷达等设备[4-6],对这些设备数据的实时采集监测是智能驾驶汽车开发、维护和检修的重要工作之一[7-9]。传统数据采集监测系统一般由检测仪表、示波器和频率分析仪等组成[10-12],其系统体积大、成本高、智能化程度低,采集数据不稳定[13-15],难以满足智能化装备对数据采集系统实时化、标准化的需求[16-18]。LabVIEW图形化编程软件作为目前测控领域的主流技术之一,基于数据流的编译型图形编程环境[19-20],利用简单的图形编程方式替代复杂而繁琐的语言编程,可方便的完成信号的调理、采集与测量[21-22],广泛应用于军事、工业、通信等行业[23-25]。
本文基于已有的智能汽车开发平台,设计该平台数据采集监测系统,以期满足智能化装备对数据采集系统的实时化、标准化需求。
1 系统总体设计
智能汽车自动驾驶开发平台数据采集监测系统的基本任务是完成车辆平台信息的读取和显示。系统的整体设计架构如图1所示,主要包括底层硬件和工控机软件部分。硬件部分由传感器模块、信号处理模块以及数据采集设备(CAN分析仪、数据采集板卡、工控机等)组成;工控机软件部分主要由基于LabVIEW设计的程序显示界面构成。根据图1所示的数据采集监测系统架构,在EV150车辆基础上搭建如图2所示的数据采集系统监测平台。
图1 系统整体架构图 图2 数据采集系统监测平台
1.1 系统工作原理
数据采集监测系统以车辆开发平台传感器模块为基础,通过信号处理模块对传感器采集到的原始信号数据进行预处理,将其转化为数据采集设备可识别的电压信号,并完成信号的稳压滤波处理,得到数字I/O信号、模拟信号和CAN总线信号;数据采集板卡完成数字信号和模拟信号的数据采集,并通过USB接口将信号上传至工控机,CAN总线信号经过CAN分析仪由USB接口上传至工控机;工控机为微型电脑,集成了数据采集板卡、CAN分析仪驱动程序、数据采集板卡驱动程序及LabVIEW图形化编程软件的平台,可以实现信号的读取、显示和存储,并最终将采集到的信号通过数据采集监测系统显示面板展示给用户,完成对车辆状态的实时监测。
1.2 系统的组成
1)传感器模块
表1 传感器参数
车辆开发平台集成了多个测量用传感器,传感器的具体参数如表1所示。
2)信号调理模块
LabVIEW通过滤波器对数据采集板卡采集的传感器原始信号进行相应处理,去除不符合预期实验结果的频率成分,提高采集信号的准确性。通常可选用的滤波器有Elliptic滤波器、Chebyshev滤波器和InverseChebyshev滤波器,因各滤波器对数据处理方式的不同,滤波波形呈现出较明显的差别,因此,在实际程序设计过程中,应根据实际需要选择合适的滤波器对信号进行处理。
3)采集设备
采集设备由工控机、数据采集板卡和CAN分析仪组成。
根据数据采集系统的设计要求,选用PCIe-6320数据采集板卡。PCIe-6320板卡输入阻抗达10 GΩ,能有效减小干扰电流对输入信号的影响,提高数据采集的精确度;灵敏度极高,能检测到最小电压为4 mV的输入信号;PCIe-6320提供多种不同模式的连接信号方法,包括8个差分信号及16路模拟输入通道的非接地单端模式等,可实现模拟和数字量的输入和输出、A/D转换、定时和计数等。
CAN分析仪具有较强的数据分析能力,体积小巧、即插即用,符合车辆平台的设备布置要求;CAN接口卡自带USB接口,集成了CAN接口电气隔离保护模块,可以避免由于瞬间过流/过压对设备造成损坏,可靠性好;CAN兼容的USB2.0接口符合相关协议规范,通过USB接口可快速连接至整车CAN局域网络,进行数据采集处理。
图3 工控机工作流程图
4)工控机
所选MIC-7700型工控机支持2千兆级传输速率的局域网口、8个USB3.0端口、6个串行端口、3个独立显卡和各种可选模块,通过英特尔第七代桌上型处理器提供高度灵活的扩展能力、良好的计算能力和可选I/O模块。
工控机主要包括虚拟仪器显示面板、板卡驱动程序和CAN分析仪驱动程序、LabVIEW软件编程环境和LabVIEW函数库。工控机的工作流程图如图3所示,在数据采集系统开始工作之前,首先要确保车辆处于正常状况,动力电池电量充足,整车平台无错报故障等情况发生,检查工控机、数据采集板卡和CAN分析仪是否连接正常、供电是否正确。在确认硬件设备连接正常之后,启动车辆,开启数据采集系统,在CAN分析仪驱动程序中,对CAN总线进行配置,完成初始化设置,之后启动系统进行数据采集。
2 系统工控机软件设计
本文基于LabVIEW图形化编程软件设计数据采集监测系统的程序。系统的软件设计采用模块化和分类化思想,针对不同的信号采集类型设计不同的数据采集方法,以便于程序编写,增加程序的可读性和可维护性[26],避免大量重复的编程工作。
2.1 模拟信号与数字信号采集
PCIe-6320数据采集卡配备的模拟输入和数字I/O接口,可方便的对模拟信号和数字信号进行采集和读取。正确安装PCIe-6320数据采集卡及驱动程序,利用LabVIEW数据采集模块中的DAQ助手设计模拟信号和数字I/O信号的数据采集程序。
数据采集系统需采集的模拟信息包括:油门踏板和方向盘扭矩信号。数字信号包括:转向灯拨杆、挡位信息;电池管理系统(battery management system,BMS)使能信号,微控制器(micro controller unit,MCU)高压主继电器、MCU高压预充继电器、高/低压使能转换信号;整车控制器(vehicle control unit,VCU)/仿真机模式切换、刹车、防抱死刹车系统(antilock brake system,ABS)电子泵开关等信号。
在测量和自动化资源管理器(measurement & automation explorer,MAX)中对各信号的采集通道信息进行配置,以油门踏板信号的采集通道信息配置为例说明。为了有效提高油门踏板信号的采集精度,消除共模噪声的影响,对数据采集板卡的油门踏板输入信号采用差分输入。经测定,油门踏板两差分信号的输入频率为1000 Hz,电压变化范围为0.3~4.7 V,两差分信号采用连续采样模式。在MAX中对油门踏板信号采集通道的采样频率、电压范围、采样模式等配置信息依次选择1000 Hz、0~5 V、连续采样。在LabVIEW前面板中使用DAQ助手和索引数组将数据采集板卡采集到的信号依次显示出来。
对于数字信号部分,除挡位信号外,其余数字信号如转向灯拨杆、BMS使能信号、MCU高压主继电器、MCU高压预充继电器、高/低压使能转换信号、VCU/仿真机模式切换信号、刹车信号、ABS电子泵开关等信号的采集处理方式与模拟信号相同。挡位信号是由B2、B3、B4、B5等4路信号通过不同真值表示。如表2所示,当系统检测到的电压信号大于3.5 V时,将其置为高电平1;当检测到的电压信号小于3.5 V时,将其置为低电平0。当变速杆分别置于R(倒车挡)、D(前进挡)、E(经济模式)不同位置时,B2~B5分别呈现高、低不同的电平。根据表2,采用While循环和条件判断结构,依次循环检测所采集到的信息并进行判断,当采集到的挡位信号为1100、1001、0101、0110时,控制数据采集系统分别显示出R、N、D、E挡。
表2 挡位信号真值
在实际数据采集过程中,通过采集板卡采集到的转向拨杆信息处于高低电平不断变化的状态且变化周期为21 ms。为解决此问题,添加While循环结构和条件判断结构,并设置左右转向灯控件为局部变量。当系统的条件判断结构检测到1次转向灯信号变化周期为21 ms时,说明系统处于正常状态,即转向灯拨杆没有拨动。利用While循环结构依次不断地采集转向拨杆信号,并定时将所采集到的信号清零;反之,当系统检测到转向灯信号变化频率大于21 ms时,说明转向灯拨杆已经拨动,此时控制左右转向灯控件进行相应动作。模拟信号和数字I/O信号的程序如图4所示。
图4 模拟信号与数字I/O信号程序框图
2.2 CAN总线数据采集
2.2.1 CAN总线协议
CAN总线协议是智能驾驶汽车开发平台监控软件、转向控制器、制动控制器、整车控制器的网络通讯协议,主要包括通道定义和报文格式。
1)通道定义
如表3所示,采用7通道数据采集模式。通道代码由固定的2个标志位“0X”和3个数字的端口标识位组成,主要用于识别不同的通道,防止数据出现重复解析。
2)报文格式
如表4所示,每一通道的最长报文长度为8个字节,即Byte 0~Byte 7,Byte 0为收到或发送的第一个字节,即Byte 0位是最低有效位(least significant bit,LSB),Byte 7位为最高有效位(most significant bit,MSB),共包含64位有效数据。表4中,方括号内第1位数据为数据起始位,第2位数据为数据结束位,每一字节包含8位有效数据。
表3 CAN协议通道定义
表4 整车CAN协议报文格式
2.2.2 CAN总线数据解析方案
对于CAN总线数据解析的要求是系统可以准确读取到各通道的数据信息,且不能出现重复解析的情况。在数据解析时,系统识别需要采集的通道代码后,根据帧数和字节顺序确定数据的位置和数据类型,将读取到的十六进制数还原为十进制数显示在LabVIEW界面中。按照整车CAN总线通讯协议,每组通道内的数据计算方式为:实际物理地址等于其数据域数值与数据采集精度的乘积加上数据的偏置量。
依照数据采集监测系统要求,CAN总线部分需采集的数据包括车辆的当前车速,方向盘转角,BMS模块总电压、总电流、当前剩余电量(state of charge,SOC),MCU温度,1~4号电机的温度、母线电流、母线电压、给定扭矩、反馈扭矩、转速及电机状态。根据整车CAN总线协议,通道1~4分别对应4个驱动电机的运行状态信息;通道5对应当前车速信息,为-120 ~120 km/h;通道6对应方向盘转角信息,为-470°~ 470°;通道7对应BMS模块的总电压、总电流和当前剩余电量,分别为0~255 V、0~255 A、0~100%。
通道1即OX120通道的数据解析如图5所示。
图5 0X120通道数据解析代码
利用PCAN Driver工具包中的PCAN-INIT和PACAN-READ模块分别完成对CAN总线信号的初始化和数据读取,在系统接收到CAN总线数据后,按照整车CAN总线通讯协议一次对相应通道的电机状态数据进行解析。图5通道1中0~7表示通道数据的第1~8位,0~5分别表示1号电机的反馈扭矩、母线电压、母线电流、MCU温度、故障代码、电机温度,6、7共同表示电机的转速信息。
3 试验验证
3.1 模拟信号与数字信号验证
在接线盒中外接滑动变阻器来验证数字信号与模拟信号采集的准确性。将滑动变阻器一端接12 V直流稳压电源,另一端接数据采集板卡的信号输入端67、68引脚。改变滑动变阻器的电阻,使其输出电压值稳定在0~6 V。使用高精度万用表量取滑动变阻器两端的真实电压,与数据采集监测系统采集的实际电压对比。
试验共测得8组数据,数据采集监测系统读取的实际电压与高精度万用表量取的真实电压如表5所示。 表5中:绝对误差是指实际电压与真实电压之间的差值,绝对误差与真实电压的比为相对误差。
表5 系统采集数据与万用表测试数据对比
由表5可知:8组数据中绝对误差最大为0.15 V,最小为0.01 V;相对误差最大为5.0%,最小为1.0%。数据采集系统绝对误差标准为0.18 V,相对误差标准为5.2%,误差均在系统允许范围之内,由此可知数据采集监测系统数字I/O、模拟量部分的数据采集程序精度符合系统设计要求,满足智能驾驶车辆平台对数据采集的需求。
3.2 CAN总线数据解析程序验证
使用CAN分析仪驱动程序将整车CAN通讯总线数据上发至工控机,之后利用LabVIEW图形化编程软件编写的数据解析程序完成对CAN总线数据的解析。将CAN分析仪读取的CAN总线真实值与数据采集监测系统解析出的实际数据进行对比,通过两者间的误差验证CAN总线数据采集程序的准确性。
图6 CAN数据读取示意图
在工控机中安装好CAN分析仪驱动程序之后,按照图2所示的连接方式连接好CAN分析仪,图6所示为CAN分析仪驱动程序实际读取的CAN通讯总线数据。在LabVIEW图形化编程软件中设计的工控机交互界面如图7所示,图7所示信息即为数据采集监测系统解析出的最终呈现给用户的CAN总线数据。
由于4个电机的状态信息基本一致,本文仅对系统采集到的和CAN分析仪驱动程序读取到的1号电机的运行状态信息和当前车速、方向盘转角、BMS模块的总电压、总电流和SOC的信息进行对比,如表6所示。
图7 数据采集监测系统仪表盘
表6CAN总线数据对比
参数CAN总线数据系统采集数据绝对误差系统允许误差当前车速/(km·h-1)131302BMS总电压/V14514613BMS总电流/V363602BMS当前SOC/%596123电机转速/(r·min-1)135130510参数CAN总线数据系统采集数据绝对误差系统允许误差电机温度/℃262513MCU温度/℃252613母线电流/ A6713母线电压/ V14214645反馈扭矩/ (N·m)353235
将表6中数据采集监测系统采集的数值误差与系统允许误差对比可知,系统实际误差均在系统允许误差范围内。由此可知,对CAN通讯总线部分的程序设计能够精准反映车辆平台的实时状态信息,满足数据采集监测系统的实际需求。
4 结论
本文设计了一种基于LabVIEW的智能驾驶汽车开发平台数据采集监控系统,该系统借助数据采集板卡和分析仪完成车辆模拟信号、数字I/O信号以及整车CAN通讯总线数据的读取和解析,利用LabVIEW实现车辆平台实时状态信息的读取、显示和监测任务,主要解决了智能车辆平台测试开发过程中数据实时采集与显示的问题。
试验验证结果显示,系统能够精确地采集车辆自动驾驶平台数字和模拟信号,并且能够对整车CAN总线信号进行分析采集、显示,能够完成智能车辆开发平台的实时状态监测,相对于传统的数据采集系统具有采集数据精确、界面直观简洁的优点,具有一定的工程应用价值。