郭健忠 吴建立 谢斌 程峰 唐华亮
摘要:为实现汽车仪表全功能检测及显示策略验证,利用实车数据搭建仿真测试环境。通过上位机读取实车数据脚本,经串口将数据发送给电控单元,电控单元控制产生仪表信号,实现仪表功能测试。利用步进电机带动滑动变阻器模拟油浮子采集油量阻值原理,实现实车油量数据的仿真。基于win32平台开发数据分析环境,对实车数据提取分析,为仪表中控制策略、显示算法提供数据依据。根据信号源制定通用的脚本协议,可以满足多种仪表规范的测试需求。通过多款仪表测试,本平台具有良好的实用性、通用性,且能大大缩短液晶仪表的研发、测试周期。
关键词:仪表;实车数据;测试;win32平台;数据分析
中图分类号:TP33 文献标志码:A文章编号:1000-582X(2018)05-037-07
Abstract: In order to realize the full function test and display strategy verification of the automobile instrument, a simulation test environment is built by using the actual vehicle data. The host computer reads the real data script, and the serial data are sent to the electronic control unit, and then the electronic control unit controls instrument signal to realize instrument function test. The stepper motor is used to drive the sliding rheostat to simulate the oil fuel consumption value of the oil float and realize the simulation of the actual fuel quantity data. Based on win32 platform development data analysis environment, the actual vehicle data extraction analysis is realized to provide data basis for the instrumentation control strategy and display algorithm. A common script protocol is developed according to the source to meet a variety of instrument specifications test requirements. A variety of instrumentation tests show the platform has a good practicality, versatility, and can greatly shorten the LCD instrument research, development and testing cycle.
Keywords: instrument; real vehicle data; test; win32 platform; data analysis
現代汽车电子技术的发展使得仪表显示信息更加复杂多元化,嵌入式技术在仪表中的应用使得仪表从传统的单一显示功能到现在多功能集成系统的转变[1-4]。液晶仪表与传统仪表的显示原理差异导致传统仪表测试设备无法满足现代仪表的测试需求[5-6]。汽车车型、车系的增多导致仪表不尽相同,增加了仪表通用性测试台开发的难度。
在仪表开发过程中,软件、硬件等各方面都会存在各种问题,及时地对仪表进行功能校验,可以提高仪表研发效率。在仪表不能正常显示或显示误差过大,需要利用测试工具进行系统检测以确认问题来源。在油量、续航里程等涉及仪表多信号协同工作时,测试台要满足多种类型信号实时发送要求。现有的仪表测试技术主要实现功能检测,对涉及复杂控制策略的显示时,测试信号协同工作处理不够完善。
与传统仪表测试台对比,本开发平台只需提供仪表的实车数据就可以模拟实际工况下的仪表工作,而不需要进行大量的实车测试,避免人力、物力的损失。汽车仪表在设计和工作原理各不相同,但仪表的信号类型主要还是CAN、硬线和电阻信号[7]。将3种不同信号用统一的脚本协议定义,使测试台更具有灵活性、通用性,可以满足绝大部分汽车仪表的测试。
1 数据测试平台的总体设计
在汽车仪表不同类型的数据信号中,燃油表、冷却液、温度表的信号源为电阻信号。信号报警指示灯、手刹、机油温度等类型为高低电平的硬线信号。车速表、转速表等仪表的大部分信号源为脉冲信号,一般通过CAN数据帧进行传输[8]。为了便于测试脚本的编写及测试的简便性,上位机将电阻信号及硬线信号转成CAN信号格式。
Win32 API是Microsoft 32位平台的应用程序编程接口,它们为Windows提供应用程序和操作系统[9],通过调用封装好的API函数可以开发各种界面丰富,功能多样的应用程序。通过设置对话框及相关操作说明,达到良好的人机交互作用。本测试台上位机选用Win32平台,程序语言选用C语言,通过交互界面设计,研发测试人员能够方便使用本平台(如图1所示)。
1.1 CAN信号、硬线信号数据的来源
CAN信号主要通过CAN分析仪采集实车在各种工况下的数据,通过对录取的CANlog文件数据的解析及回放实现CAN信号检测。硬线信号主要是根据硬性信号控制策略录取硬性信号的不同控制状态。
1.2 电阻信号的获取
电阻信号主要由仪表自定义CAN ID将实车采集的电阻信号经过AD转换器转为数字信号,将数字信号经过自定义的ID号通过CAN收发器输出,从而得到在各种工况下的油量阻值数据,油量数据采集框架图(如图2所示)。
2 仿真平台电控单元的搭建及上位机程序的控制方法
实车数据测试平台主要包括2个部分,一是数据解析部分,主要是CAN数据解析,另一部分是仪表实车数据仿真及测试。CAN数据解析主要对目前汽车主流CAN协议传输数据格式解析;数据仿真及测试主要有上位机控制、串口通信及电控单元等部分。
2.1 CAN数据解析
根据汽车厂商提供的CAN协议规范,可以将需要的仪表信息从实车数据log中提取出来。由于仪表信号占据的数据位及数据长度不同,需要开发工具进行数据的解析。一般情况下CAN数据主要信息有时间戳、接收发送标志、通道选取、ID号、数据位数、具体8个字节的数据[10](如图3所示)。
CAN解析工具实现的功能主要有对某一或某几个ID号的数据位进行数据提取,因为汽车大多数仪表信号占用的数据位很少,一般一个ID号包含多个显示信息。通过仪表功能规范查找显示信息对应的ID号及数据位。根据CAN协议的数据传输格式,对Inter数据格式类型,只需输入ID号和起始位及数据长度,并勾选Inter格式选项框,输入要解析的时间段。在Motorola格式里,需要手动勾选数据位进行数据解析工作(如图4所示)。
对实车仪表数据解析,可以快速找到导致仪表显示异常的数据,对数据修订后可以重新回放数据,验证数据优化的有效性。另外在实车验证燃油指示算法时,提取实车燃油真实数据和实际显示数据做比较可以直观显示燃油算法的可靠性(如图5所示)。
由于车辆运行过程中,油量采集值是波动变化的,尤其在上下坡、颠簸路等工况下,直接显示油量的实时数据是不准确的。目前采取策略控制方法实现油量的平稳指示[11]。通过车速,转速,点火状态等信号判断汽车的行驶状态和实际油量显示。图中平滑曲线代表着通过油量控制策略算法后实现油量的均匀输出,波动较大的曲线代表实车实时采集油浮子阻值对应的油量值。通过数据分析可以得出实际显示的油量数据和真实值有一定差距,有进一步优化的空间。
2.2 CAN数据log文件回放
上位机软件通过读取CAN log文件里的脚本数据,严格按照时间戳的时间差值将数据以精确的间隔时间回放出来,将采集的CAN log文件作为CAN信号源,只需要通过上位机读取并通过USB CAN盒子将数据发送给仪表,便可测试CAN数据相关的仪表显示功能是否正常。
在数据回放功能开发过程中,为了便于测试人员的使用,对USB_CAN分析仪进行二次开发。通过调用封装好的发送函数将数据通过USB CAN盒子发送到仪表或者电控单元中去。在窗体内设置输入端口,实现和不同仪表匹配的波特率。为了尽可能真实的模拟仿真数据发送过程,选用高精度时控函数QueryPerformanceFrequency和QueryPerformanceCounte函数,可以将数据精确地按时间戳回放。根据测试需求,数据回放可以是整个CAN log文件脚本数据的回放,也可以是脚本中某几个ID的某几位数据回放。
2.3 电阻信号模拟的实现
目前针对滑动电阻值的模拟主要有2种:一类为通过控制继电器的开断改变电阻矩阵的串并联实现阻值调整。第二类为通过程序控制電压的变化进而模拟阻值的变化[12]。两类电阻指的模拟在一定程度上满足测试需求,但输出离散信号和实际油量阻值有本质区别。本测试台采用步进电机控制线性旋转电位器的方式实现阻值线性变换,更切合实际油量的变化。
实车采集各种工况下的油量波动阻值数据,主要工况有:加速、减速、弯道、上下坡等特殊工况。根据获取的实际工况油量电阻信号,利用上位机程序将脚本数据读取后按照单位时间差值将数据通过CAN工具发送到单片机内[13]。经过单片机程序对数据的处理,控制单片机引脚产生脉冲信号,并在单位时间内产生所需要的脉冲数保证电机在单位时完成转动角度。步进电机通过联轴器控制多圈电位器的旋转角度进而实现燃油电阻模拟的线性阻值输出。
2.4 脚本协议的制定
脚本协议的制定是实现通用化测试的关键,通过将不同类型信号以同一种脚本语言编写,实现不同类型信号在一种协议下的发送。通过对协议的语法校验、脚本解析,完成不同仪表的测试。脚本分为CAN信号格式脚本:主要从车上录取的实车数据类型。测试信号脚本:自定协议类型脚本,主要包括CAN协议和IO协议,完成仪表特定功能测试。
CAN协议:以CAN 为标志符,逗号为间隔,第一位是内容发送类型标志位,第二位S为直接发送给仪表的CAN数据,N为发送给电控单元的CAN数据,第三位为发送CAN的ID,第四位为发送数据长度,CAN数据的长度一般为8位,第五位为CAN数据内容,第六位是时间标志位作为发送时间间隔,时间以ms为单位。
示例:
IO协议:以IO为标识符,逗号间隔,第一位为第几个硬线IO口,冒号后为IO状态,0为低,1为高,2为悬空状态,以尖括号结束。
示例:
脚本协议可以兼容数据和字符串,如在第一个IO口时,可以是P1也可以是数字1表示。在编制脚本后可以通过上位机开发的脚本编译器编译脚本格式是否正确。
无论测试脚本还是实车log脚本,最终上位机转为CAN信号格式,通过CAN盒子将数据发送出去。将编制好的脚本数据通过Win32 API edit_box工具在上位机交互界面显示出来,可有效地观察脚本数据执行的具体情况。
2.5 硬线信号的实现
在模拟仿真硬线信号时,硬线信号的实现和电阻模拟平台类似。不同仪表的硬线信号种类不同,数量不同,控制策略不同,脚本数据的格式可以充分发挥数据控制的灵活自主性。
硬线信号类型主要有高电平,低电平及悬空状态。不同状态及硬线信号显示仪表的不同硬线信息(如图6所示)。
2.5.1 电源模块电路设计
测试台电源选型,汽车测试芯片需要的电压为5.5 V,测试台芯片选用STM32F105VCT6,该芯片具有2路CAN满足多路CAN仪表的测试,具有DAC引脚。电压由12 V转5 V选用LM2596S-5.0芯片,该芯片具有高负载转换效率高的特点,自身有一定功率损耗。5 V转3.3 V电压转换芯片选用LM1117-3.3,该芯片具有低负载时转换效率高,自身功率消耗小的特点(如图7所示)。
2.5.2 输出端电路的控制要求
普通硬线信号只要提供高低电平,对负载能力要求很小,不需要增加功率晶体管。对仪表需要的ING电及BAT电不仅要提供高电平还要满足大电流的需求,满足仪表的正常供电情况。因此在点火和常电的输出端加载功率晶体管U403BE311,以满足仪表的工作需求。为实现仪表供电的实车仿真环境,考虑实车运行中汽车蓄电池电压不稳有可能会对仪表的正常工作造成一定影响。本平台利用芯片的DAC引脚控制输出电压的波动以仿真实车蓄电池电压不稳的情况。一般仪表电压工作范围在7-18 V之间,通过调节电压芯片LM2596进而调节电压的变化,LM2596芯片支持3A电流输出,满足仪表供电需求。电源调压芯片的原理如下(如图8、9所示),(Vo-Vf)/R2 + (V-Vd-Vf)/Rx=Vf/R1,(1)其中:Vo为输出电压;Vf为反馈电压;V为单片机输出;Vd为二极管压降。
通过控制芯片引脚的高低电平控制三极管的中断导通,进而控制输出高低电平实现硬线信号的模拟。在硬性输出端加装贴片LED灯,用以表示输出端的电压状态。
3 仪表测试
测试平台搭建完成后,通过实车录取的相关仪表数据,配置仪表的波特率连接CAN收发工具。进行数据检测,检测目的主要是观察经过台测后仪表在各种工况下仪表显示的效果仪表是否满足仪表设计规范要求。进而对仪表控制策略进行修订。
3.1 平台测试规范
通过Win32平台开发后,适用于研发阶段的测试平台人际交互界面(如图10所示)。
操作界面主要分为2部分,一部分为实车仿真,主要实现实车数据回放,验证实车数据下仪表是否正常;第二部分为测试部分,主要实现一些特定功能的测试,如仪表下点火电进低功耗测试,需要通过控制上下ING电时间判断仪表是否进入低功耗,还有需要长期进行上下电的操作验证仪表工作的稳定性。
在仪表测试过程中要参考仪表测试规范的要求,检测仪表指示等是否按仪表规范策略亮灭,报警音是否合乎要求,指针的旋转精度,变换速度及是否有抖动现象等都是在仪表开发过程中需要测试的(如图11所示)。产品开发过程中的测试要严格遵守仪表规范进行。
4 结 论
针对液晶仪表开发特点设计的仪表测试系统满足仪表开发测试需求,有别于传统的仪表测试方法。另外本测试平台可移植性较好,对其它嵌入式产品的测试工作提供方法借鉴。针对基于控制策略的通用化测试台的研究主要有:
1)将仪表信号源数据脚本化,减少受控单片机资源占用,实现测试台的通用性 。
将汽车仪表信号源做成脚本数据的形式,通过搭建仪表信号发送的软、硬平台,仿真实车运行环境,实现信号控制。减少受控单片机的资源占用,提高单片机的使用效率。通过脚本数据的替换,使得數据源数据更改灵活方便,可适用现代汽车仪表的开发检测使用。
2)利用步进电机控制电阻变化,实现各种工况下油量数据模拟。
创新性地利用步进电机带动线性旋转电位器的方法,实现实车油量阻值线性变化的模拟。通过模拟各种工况下的油量波动阻值,可以对油量显示算法及续航里程算法的研究提供数据依据。对控制策略信号的协同发送,使得仪表设计多信号控制的显示得到良好验证。
3)本平台操作简单、功能多样化。
通过Win32开发平台设定的交互界面,测试人员可以简单快捷操作本测试台。采用实车数据做为信号源可以再现仪表在汽车不同工况下的显示效果,为研发人员在后期界面优化及显示效果的改进提供测试依据。同时本平台可提供实车CAN数据解析工作,提取实车数据进行数据分析优化处理。通过对硬线信号脚本数据控制策略的更改测试仪表的工作稳定性,辅助研发人员进行仪表研发工作。
参考文献:
[1] 陈新,张桂香,肖奇云,等. 电动汽车液晶数字仪表的设计[J].汽车工程,2013,35(3):272-276.
CHEN Xin, ZHANG Guixiang, XIAO Qiyun, et al. Design of LCD digital instrument for electric vehicles[J].Automotive Engineering, 2013,35(3):272-276.
[2] Yuan H J, Liu W, Hu W, et al. Design of universal detection system for automobile combination dashboard[C]/ /2012 International Conference on Mechanical Design and Power Engineering, ICMDPE2012.[S.l.]:IEEE,2012:38-42.
[3] Bellotti F A, Gloria D, Poggi A, et al. Designing configurable automotive dashboards on liquid crystal displays[J].Cognifying Techndogy Work, 2004, 6: 247-265.
[4] 江学焕,张金亮,樊红莉,等. 基于CAN/LIN双总线电动汽车数字仪表系统的设计[J]. 计算机工程与科学,2015,37(11):2182-2187.
JIANG Xuehuan, ZHANG Jinliang, FAN Hongli, et al. A design of electric vehicle digital instrument system based on CAN/LIN dual bus[J]. Computer Engineering& Science,2015,37(11):2182-2187.(in Chinese)
[5] 周桂成,秦贵和,陈筠翰,等. 通用汽车仪表检测平台的设计与实现[J]. 计算机工程,2012,38(20):228-231.
ZHOU Guicheng, QIN Guihe, CHEN Yunhan, et al. Design and implementation of general auto dashboard detection platform[J]. Computer of Engineering,2012,38(20):228-231.
[6] Huang Y,Mouzakitis A, Mcmurran R, et al. Design validation testing of vehicle instrument cluster using machine vision and hardware-in-the-loop[C]/ / 2008 IEEE International Conference onVehicular Electronics and Safety. USA:IEEE, 2008:265-270.
[7] 邱淑贤, 王登峰,陈晓春,等. 汽车数字组合仪表检测系统研发[J].汽车工程,2010, 32(10):910-913.
QIU Shuxian, WANG Dengfeng,CHEN Xiaochun, et al. Research and development of inspection system for automotive digital instrument clusters[J].Automotive Engineering,2010, 32(10):910-913.
[8] 车晓镭 ,王登峰 ,曹晓琳,等. 乘用车CAN总线数字仪表测试系统设计[J].汽车工程,2010, 32(10) :906-908.
CHE Xiaolei, WANG Dengfeng, CAO Xiaolin, et al. Design of test system for the cAN-bus digital instruments of a passenger car[J]. Automotive Engineering, 2010, 32(10) :906-908.
[9] 丁國兴,高琴,高伟,等. 基于 Win32 API 的通用串口通信组件的开发[J] 工业控制计算机,2013.26(11):33-37.
DING Guoxing ,GAO Qing, GAO Wei, et al. Development of generic serial communication component based on Win32 APIs[J].Industrial Control Computer,2013,26(11):33-37.
[10] Kocian J, Skovajsa L, Vojcinak P, et al. Robotic arm controlled by CAN Bus[C]/ /IEEE 2007 Interational Conference.[S.l.]:IEEE, 2009: 92-93.
[11] Rashmi R, Durgale R. The novel of embedded based digital fuel gauge[J].Digital Signal Processing, 2012,9:23-30.
[12] 王春武,刘春玲,王欢,等. 程控可变电阻的设计与应用[J].电子测量技术,2007.30(5):182-183.
WANG Chunwu, LIU Chunling, WANG Huan. Design and application of variable resistances by program controlling[J].Electronic Measurement Technology, 2007,30(5):182-183.
[13] Wang J. Research of vehicle digital meter based on CANbus[J].International Electronic Elements, 2008(12):59-61.
(编辑 侯 湘)