张德俊 段明海
摘 要:为了实现对汽车双电池系统隔离器(BSR)出厂测试功能,设计了隔离器测试系统上位机控制控制平台。该平台基于MFC设计界面,采用多线程技术。通过CAN总线和USB通信实现数据交互功能,并通过图形化方式表现测试过程。下位机单片机以英飞凌XC2234芯片为核心,将采集到的继电器技术参数通过CAN报文发送到上位机。实现对继电器的吸合电压、断开电压、延时时间等主要技术参数的检测。经工厂实际运行调试,人机交互体验良好,测量数据精准,能很好满足隔离器的测试要求。
关键词: 隔离器;CAN总线;参数测试;界面交互
文章编号: 2095-2163(2019)03-0137-05 中图分类号: TM933 文献标志码: A
0 引 言
双电池隔离器设计用于双电池系统,用以保护车辆电池充电放电。 双电瓶隔离器有2种基本的操控特性: 辅助发动机启动,当启动开关打开时,优先采用主电瓶启动。如果主电池电压低于辅助电池电压,电瓶隔离器将接通辅电瓶以辅助发动机启动。主电瓶满电电压达到13~13.5 V时,电瓶隔离器会接通2个电瓶给副电瓶充电。如果主电瓶从接通的电瓶系统中取电致使系统电压降至低于12.4~12.9 V时,双电池分离器将断开2个电瓶间的通联,可以保护另一个电瓶的电不被耗尽。在控制电路中整合了延迟功能,可避免电瓶隔离器对瞬间的电压波动做出响应。该隔离器广泛应用于汽车供电系统中。测试系统模拟实际工况,上位机测试软件控制程控电源的输出,在一个测试周期内根据继电器的型号,电压有一个相应范围上升阶段和下降阶段。电压上升阶段由下位机采集硬件检测到继电器吸合,捕捉对应的吸合电压。转而进入电压下降阶段,同理捕捉断开电压。测试完毕后显示出吸合电压(Pick Up Voltage)、断开电压(Drop Out Voltage)和时间延迟(Time Delay)等结果,并通过和设定的吸合电压范围、断开电压范围比较来判断产品是否合格。
1 测试系统总体设计
测试系统工作原理图如图1所示。上位机软件、程控电源、BSR测试对象、下位机等组成一个完整的双电池系统分离器测试系统。上位机与程控电源采用USB通信(支持SCPI命令),下位机与BSR之间采用CAN通信。整个测试系统合理排布在测试台架上。
1.1 程控電源
可编程任意电源就是某些功能或参数可以通过计算机软件编程控制的电源。例如,当超过最大输出电压的时候为恒流输出,当超过最大输出电流的时候,电源就变成了稳压源等等。“可编程”即意指电源内部主要功能通过上位机设定状态字实现可控,大部分的电源是通过串口连接的。可通过通讯规约,设定“最大电流、最大电压、最大功率、实际电压”等等。可编程任意电源的主要指标是编程时间、编程精度、编程分辨率等等。在普通模式下,电压通过导线直接加载在负载上,从而保持负载电压的稳定。由于负载电流会在连接导线上产生压降,因而实际负载电压应等于电源输出电压减去该压降。
在一些输出为低电压、大电流的场合,电源的输出连接导线上形成的压降已不能忽略。如电源设定输出为3.3 V/1 A,假设输出线的电阻是0.3 Ω,就会在导线上形成0.3 V的压降,那么实际到达的电压变为3.0 V,这足以导致输出到隔离器的电压不精确。类似于万用表测电阻时的四线测量法,研究需要对导线压降进行补偿。为此,可使用SENSE端子直接测量负载两端电压。由于SENSE导线中的电流很小,因而产生的电压降可以忽略,即电源设备感应的电压实际上就是真正的负载电压,这样电源设备将提高自己的输出,使其等于导线压降和所需负载电压之和,从而实现对于导线压降的补偿,使负载真正获得所设定电压值。有以下优点:
(1)DH1766系列直流电源可提供优异的输出精度及置信度,在特定应用场合可替代电压表、电流表和基础供电电源的组合,一台电源完成全部测试;并且拥有超低的纹波噪声,纹波有效值低于1 mV,峰值小于6 mV。
(2)DH1766系列直流电源具有超快的瞬态响应,响应时间小于50 uS,可为动态负载提供稳定的输出电压。当负载快速变化引起输出跌落或过冲时,DH1766系列电源可快速恢复到稳定状态,满足动态负载的正常测试。
1.2 双电池隔离器
本文测试对象为一种新型双电池隔离器,其输出端分别与主电池和辅助电池的正极连接,双电池隔离器包括微控制器以及分别与微控制器连接的信号输出电路、电压监测电路以及机械开关电路,机械开关电路分别与主电池和辅助电池的正极连接。使得驾驶员能够获得更多关于汽车电池的信息,让整个电池管理系统更易于管理与控制。
2 下位机硬件设计
数据的采集与处理,通信模块的接收与发送是基于英飞凌公司XC2234控制器设计的。XC2234是一款16/32位单芯片微控制器,该控制器片上有MultiCAN接口,带有2个可同步的A/D转换器,可以提供多达16个通道,16路捕获/比较通道。完全能够满足本系统的要求。
2.1 A/D采集电路与状态检测电路
A/D采集电路如同图2所示,模拟最大输入设计电压为36 V,精密电阻分压R46/R70=6.2,R70=1 K,R46=6.2 K。模拟量电压经分压和跟随电路输入到12位A/D,A/D模拟电压输入范围0~5 V,状态检测电路如图3所示,同时采集继电器状态量高位为12 V,单片机不能直接检测,故用肖特基二极管BAT54S钳位在0~5 V。
MCU将采集的信号通过CAN总线传入上位机。状态检测电路如图4所示。实时采集继电器输入端(Point a)和输出端(Point b)的电压继电器状态捕捉:继电器设计有状态测点,测点出现上升沿,继电器吸合;测点出现下降沿,继电器断开。下位机捕捉2种测试点对应时刻的输入点的电压、即为动作电压,上升沿对应吸合电压,下降沿对应断开电压。下位机采集与处理的数据打包通过CAN总线,实现与上位机的实时通信。
2.2 电源电路
电源电路如图5所示,在电源输入端加了一个二极管,如若电源正负极接反,就可以使得电路不会导通,从而保护后级电路。由于本系统中传感器最低驱动电压为9 V,因此选用了电压可调的开关型降压稳压器LM2576-5,固定输出5 V电压。给主芯片和和CAN收发器等IC供电。
2.3 CAN通信电路
CAN通讯节点由CAN控制器、CAN收发器、终端电阻、防静电(Electro-Static Discharge, ESD)保护电路组成。微控制器Infineon XC2234集成了MultiCAN模块 CAN总线收发模块选用英飞凌公司TLE6250GV33,该器件可为总线和 CAN 控制器分别提供差分发射能力和差分接收能力,信号传输速率高达 1 兆位每秒 (Mbps)。 CAN通信电路如图6所示。图6中,CAN0-TxD和CAN0-RxD分别对应CAN控制器的发送与接收。在CANL和CANH接入阻值为120 Ω的终端保护电阻即为图6中R17,并增强CAN总线通讯的可靠性与抗干扰能力。
3 下位机软件设计
3.1 通信协议设计
数据有线传输时,主控制器等待CAN进入中断。进入中断后,通过CAN收发器CAN高和CAN低进行数据的发送与接收。采集的数据以CAN报文的形式发送到上位机,报文格式见表1。下位机接收到上位机发送的Stop/Start后,下位机回复相应Stop/Star。如果接收到Start命令后则发送相应的数据报文,数据帧类型采用标准帧,帧ID为11位二进制。不同ID代表不同的参数。CAN通信的流程图如图7所示。
3.2 数据采集电路软件设计
采集端软件设计主要任务可分述如下:
(1)配置好驱动底层电路,实现对电压信号进行A/D转换处理。
(2)对采集到的数据,采用中位值平均滤波法进行滤波处理,消除因脉冲干扰引起的采样偏差。
(3)将滤波处理过的数据进行数据打包处理,然后通过CAN将数据传输至上位机。
A/D转换请求模式采用扫描的转换启动模式,扫描请求源可以处理多路的转换信号,本次设计用到CH0和CH1两个通道。利用ADC0_vStartParReq ChNum()开启对应的通道,ADC0_vSetLoadEvent()产生加载事件。2个通道的转换结果保存在对应结果寄存器。但在模拟量采集时,信号存在误差与干扰,软件设计时必须去除这些因素,即软件滤波处理。构造数组,依次采集5个A/D值存入数组,采用中值滤波函数,去掉最大和最小值后求得A/D值的平均值,有CAN报文转发到上位机。其设计流程如图8所示。
4 上位机软件设计
上位机是基于MFC开发的,MFC是微软公司推出的类库,以C++类的形式封装。这些类库封装了丰富的Windows应用程序编程接口(API)、ODBC数据访问的功能。因此选用MFC作为GUI界面的界面工具。
4.1 用户测试界面交互设计
如图9所示。友好的人机交互界面可以使操作人员对不同的产品参数进行方便配置,在测试中动态地监测系统的运行状态。同时,对研发得到的功能设计可阐释解析如下。
(1)界面图像显示功能:输入端(Point a)和输出端(Point b)的电压,和继电器测试点电压图像实时显示功能,操作人员观察电压走势就可大致判断隔离器合格性。
(2)继电器状态示意功能:单刀单掷模拟继电器的开合。直观观察继电器在测试周期的状态。在配置页面根据不同的产品型号,可设置程控电源输出电压上升和下降的范围。测试结果判定的吸合电压范围、断开电压范围和延时时间。一个测试周期结束后,继电器的相关的测试参数(吸合电压,断开电压,延时时间),测试通过性(PASS和FAIL)在结果区显示。
4.2 文件管理
文件管理主要是继电器参数数据输出功能。
每次测试的结果自动记录到按照日期为文件名的Excel表格,做到产品检测结果记录与可追溯。使用技术ODBC是基于Windows环境的一种数据库访问的接口标准。也可以访问Excel表这类非数据库对象。
4.3 上位机软件结构设计
上位机软件基于 VS C++语言开发的用户界面程序,由于需要处理大量的IO操作(CAN通信和USB),提高程序的运行效率,故采用多线程编程。对此可做探讨论述如下。
(1)主线程:主线程的核心功能是一些通信配置,主要包括与下位机CAN转USB通信和与程控电源USB通信。界面相关参数的初始化。MFC的应用程序都是基于事件驱动而工作的,消息映射是一种把消息映射到相应的消息函数的机制。例如,处理不同按钮消息(Config,list等)對应不同消息响应函数。利用TeeChart控件实现绘图功能。
(2)第二线程:为了进行CAN报文的实时接收与解析,USBCAN卡采用ZLG的USB接口CAN卡,并且提供了封装好的CAN相关的二次开发函数库,如:VCI_StartCAN()用来启动USB-CAN,VCI_Receive()用来接收CAN数据,VCI_Transmit()用来发送CAN数据。
(3)第三线程:单独开辟一个线程,控制程控电源的电压输出,电压输出的设计流程如图10所示。
首先在初始化中选择BSR的型号。根据上、下限和步长,会生成一个电压上升数组Array_VolDataRise和电压下降数组Array_VolDataFall,并通过数组指针Num_ArrayPoint调用,一旦检测到按时按钮按下,上位机通过USB通信向程控电源发送电压输出命令,每隔500 ms调用一次。在电压上升阶段,会持续判断来自下位机发送的测试点状态量,一旦接收到上升沿。记录对应的电压值、即为吸合电压,并立即转向电压下降阶段,同理发送下降电压,接收到下降沿的时刻所对应的电压、即为断开电压。由于
BSR有延时功能,计时器开始计时,记为TimeEnd1,直到继电器完全断开时刻,记为TimeEnd2。则该产品的延时时间为:
Gauge_DelayTime=TimeEnd2-TimeEnd1
5 结束语
本文通过分析汽车双电池系统隔离器的工况,提出了一种利用上位机控制程控电源输出到测试对象(BSR),下位机采集相关技术参数的测试方案。与采用传统手动控制电源相比,操作更加方便,测量更加准确,极大地提高了生产率。
参考文献
[1]杜华程, 许同乐, 黄湘俊, 等. 基于CAN总线的智能传感器节点设计与应用[J]. 传感器与微系统,2015,34(2):82-84.
[2] 董佳星,刘妹琴, 董臻,等. 基于Qt的电子提花机控制器上位机控制系统软件设计[J]. 轻工机械,2018,36(1):58-61,70.
[3] 杨备备,张文超,杨波,等. 基于ARM的电磁继电器参数检测仪[J]. 物联网技术 2013(12):16-18.
[4] 黄奕,戴旭涵,苗晓丹,等. 基于LabView的继电器电阻连续自动测试系统[J]. 电子测量技术,2012,35(12):94-98.
[5] 张强,于中伟,刘宏达. 电压继电器电参数自动测试装置[J]. 低压电器,2010 (10) :30-34.