汪阳雄,张向文
WANG Yangxiong,ZHANG Xiangwen
桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004
School of Electronic Engineering andAutomation,Guilin University of ElectronicTechnology,Guilin,Guangxi 541004,China
在环境污染和能源危机日益严重的今天,纯电动汽车无疑是最理想的新型交通工具[1]。但是,由于电池技术的限制,电动汽车的推广与应用显得十分困难。目前纯电动汽车动力电池关键的技术障碍在于电池性能与管理技术,其中,电池状态的监测与故障诊断,电池状态信息的传输与远程监控,电池充放电的管理等都是纯电动汽车电池管理的关键技术[2-6]。
电池管理系统上位机模块是电池管理的重要组成部分,目前的上位机模块功能都比较简单,通过液晶屏显示的信息比较少。主流的上位机触摸屏主要采用并口触摸显示屏[7],但是并口显示屏的外部接口多,物理连接繁琐,数据传输是八位同步传输,只要一位传输错误,全部重新传输,显示界面设置也相对复杂[8]。蒋晓峰等[9]基于施耐德XBTGT系列触摸屏采用工业以太网Modbus TCP/IP方式,其显示屏驱动及配置较为复杂。齐继阳等[10]的触摸屏采用多功能面板MP277,配置Windows CE V3.0操作系统,没有内部存储单元,界面刷新速度慢。顾波飞等[11]的触摸屏LEVI 777T基于Modbus协议,其界面制作仅有单一的控件与文本添加,显示效果不理想。黄松涛等[12]的并口液晶屏需要全部程序化控制,没有相应控件的界面制作。随着纯电动汽车动力电池管理上位机功能的增加,上位机显示屏需要显示的内容逐渐增加,原来的并口触摸屏界面设计逐渐复杂。另外,为了将电池状态信息传输到远程监控终端和其他车载控制单元,需要考虑传输信息的安全性和可靠性。
图1 上位机设计整体框架图
为了能直观反映电池的各种参数(电压、温度、电流、电荷状态(State of Charge,SOC))和故障诊断,并且设置相关阈值来控制电池检测,本文基于飞思卡尔K60主控制器设计了一种HMI(Human Machine Interface),利用CAN总线通信和串口通信实现上位机和BMS(Battery Management System)之间信息的实时交互。采用TJC8048T070_011R串口触摸屏,实现BMS上位机丰富的人机交互功能,简化人机交互界面的设计。
本文首先给出整体方案设计,然后重点对CAN总线通信和串口HMI通信设计进行介绍,并给出相应的实验结果,最后,利用实验室的电池组和BMS下位机模块,对设计的上位机模块进行整体的实验测试,验证了设计的有效性。
BMS上位机模块的主要功能包括下位机数据的接收与显示、充放电管理、故障诊断与报警、无线通信和CAN总线通信几部分,根据功能要求,本文设计整体方案如图1所示,包括主控制器、GPRS无线通讯模块和HMI触摸显示屏,主控制器选用MK60DN512ZVLQ10芯片,该芯片是飞思卡尔32位微控制器,集成了丰富的功能和特性,具有很好的低功耗性能和功能扩展性。该芯片集成了CAN控制器,通过外接的CAN收发器可以搭载在CAN总线,可以实现BMS下位机模块以及其他车载电子控制单元与主控制器之间的数据交互。
电池状态和故障信息的显示、充放电的管理都是通过HMI触摸显示屏实现的,主控制器通过串口与HMI显示屏之间进行信息交互。充放电管理是通过HMI面板控制按键实现充放电选择的,故障诊断与报警是根据事先设定好的系统阈值与采集数据的比较确定故障并通过蜂鸣器实现报警的。
HMI触摸显示屏选用的是基于串口通信的电容式触摸感应显示屏,在前期将所需显示内容图片加载与存储在显示屏自带内存区,传输过程只需传输界面显示的数据部分,这样在页面刷新过程中,显示图片无需通过串口传输就能自动更新,只需更新界面所要显示参数,提高页面刷屏速度,消除视觉上的刷屏延迟现象。
主控制器通过串口与GPRS无线通信模块相连,进行电池状态数据的无线传输[13],本文采用的是一款拥有GPRS无线数据传输功能的低功耗的SIM908模块作为汽车上位机终端和远端服务器之间的无线通讯模块。GPRS网络提供UDP和TCP两种传输协议,UDP协议无法提供可靠的数据传输,不能保证数据传输的正确性,而TCP协议则提供的是一种面向连接的、可靠的、基于字节流的传输层通信服务[14]。为了保证数据传输的准确性,本文选用TCP/IP协议进行移动终端与服务器之间的通讯。
CAN总线是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准,是国际上应用最广泛的现场总线之一。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性[15-18]。
本文选用的飞思卡尔K60主控制器上的FlexCAN模块包含一个CAN控制器,外部添加一个CAN收发器才能接入CAN总线进行通信,FlexCAN模块支持CAN2.0协议里的标准帧和拓展帧。本文选用高速收发器TJA1050,该器件提供了CAN控制器与物理总线之间的接口,以及对CAN总线的差动发送和接收功能。在CANH和CANL之间连接接入一个120 Ω的电阻用作终端匹配,可以降低传输中的出错率,提高CAN总线传输的稳定性[19]。CAN收发器电路原理如图2所示。
图 2 CAN收发器电路原理图
CAN总线的物理层采用两条差分信号线来组成一个数据通道。在CAN总线报文传输中,帧格式有含11位标识符的标准帧和含29位标识符的扩展帧,本文选用了11位的标准帧格式。帧类型有4种:数据帧、远程帧、错误帧和过载帧。数据帧是将所传数据从发送器传输到接收器,远程帧是请求发送相应数据帧,错误帧是总线传输出现错误时发送的,过载帧是在相邻数据帧或远程帧之间传输来提供附加延时的。
报文缓冲区是CAN模块发送/接收中最关键的一个环节,报文缓冲区的组成如图3所示[19]。
在图3中,各个字段都有其相应的含义。CODM表示报文缓冲区码,接收和发送时报文缓冲区码的意义不同,在程序实现中,本文通过宏定义进行重命名。SRR位只存在于扩展格式,用于代替标准格式中的RTR位。IDE位用于区分标准格式(逻辑“0”)与扩展格式(逻辑“1”)。RTR位用于区分数据帧(逻辑“0”)和远程帧(逻辑“1”)。4位的DLC段用于表示报文中数据段的数据字节数,从高位开始输出,可选范围为0~8。TIME STAMP表示时间戳,开始发送报文或接收报文时,从自由计时计数器获取时间加载到此时间戳段。PRIO字段用于定义发送优先级,只有相应寄存器位段置1,且报文缓冲区为发送报文缓冲区时,此字段才有效。Data段即数据段,是数据的内容,由DLC段决定可发送0~8个字节的数据。
在CAN协议中,ID起着重要的作用,决定数据帧发送的优先级,也决定其他节点是否接收该数据帧。优先级的仲裁是根据CAN总线的逻辑“线与”特性来实现的,ID从高位开始输出,ID越低,优先级越高。由于CAN总线的数据以广播形式发送,每个连接到总线的CAN节点收发器都能接收到数据,因此CAN控制器具有根据报文ID过滤报文的功能,仅接收某些符合指定ID的报文,过滤不相关的报文。
本文协定总线传输波特率为1 MB/s,需设置应用层协议。CAN总线通信双方都必须约定使用相同的波特率才能进行同步、正常通信,CAN协议的波特率需要考虑位时间和采样点时间。CAN协议是把1位的时间分成同步段、传播时间段、相位缓冲段1和相位缓冲段2,每段的时间都是以时间份额为单位,时间份额是CAN协议最小的时间单位。本文时钟源选择的是BUS时钟,传播时间段(PROPSEG)为2,同步跳转宽度(RJW)为2,相位缓冲段1(PSEG1)为2,相位缓冲段2(PSEG2)为2,分频系数(PRESDIV)为4,这样才能保证CAN协议波特率为1 MB/s。
在飞思卡尔K60主控制器中,CAN模块一共有16个报文缓冲区(MB),有全局掩码寄存器和各个报文缓冲区独立的掩码寄存器。掩码,也叫屏蔽码,用于控制相应位的ID是否参与过滤匹配。CAN模块接收报文时,首先接收移位寄存器把报文数据移位接收,再由掩码寄存器根据ID判断是否过滤报文,若是需要接收的报文,则最终存储在指定的报文缓冲区。
表1是下位机和主控制器之间通过CAN总线传输的主要数据内容及其相应数据长度;表2是21种故障诊断的故障等级设定,不同故障等级会有不同的报警方式及处理方式。
表1 CAN总线传输主要数据内容和长度设定表
图3 报文缓冲区
表2 故障等级设定表
将飞思卡尔K60主控制器的CAN收发器同CAN总线调试工具进行物理层连接,主控制器中的CANH引脚与调试器的CANH引脚相连,CANL引脚与调试器的CANL引脚相连,将CAN总线调试工具的CANR+和CANR-引脚短接,模拟在总线接入的120 Ω电阻用来匹配总线阻抗。经过主控制器程序设置,控制HMI触摸显示屏的触摸热区的返回数据通过CAN总线发送出来,同时,通过CAN总线调试器发送相应指令能改变显示器的相应参数。CAN总线调试工具[20]测试结果,如图4所示。
图4 CAN模块收发实验效果图
实验结果表明CAN模块能正常发送和接收,从接收的数据可以得出HMI显示屏所显示的界面ID、所需设定参数的值等信息。通过调试工具发送相应指令,也能改变HMI显示屏的相应显示界面。
本文选用的串口HMI为TJC8048T070_011R串口触摸屏,其分辨率为800×480,屏幕大小为7.0寸,FLASH存储器存储空间为16 MB,运行内存为3 584 Byte,串口指令缓存为1 024 Byte。串口HMI是设备封装好HMI的底层功能,通过串口(USART 232)与用户MCU进行交互,MCU可以随时通过USART发指令通知设备切换某个页面或者改变某个组件的属性。设备也可以随时通过USART通知用户MCU操作者,目前触摸了页面上的某个组件或者设备当前进入某个页面。相比于RGB接口和MCU总线接口的显示屏而言,串口HMI是最简单的显示方案,对用户的硬件没有任何要求。因为界面的显示是设备内部自己实现的,提前将所要显示的界面通过专用制作软件制作完成,存储在设备内部,USART只需要传输界面显示的数据信息,所以没有速度瓶颈。界面制作软件USART HMI,如图5所示。
图5 USART HMI软件界面图
首先,通过Photoshop图像制作软件制作所需显示与切换界面,主要包括主界面、单体电池界面、总体电池界面、故障报警界面、系统设置界面(报警时间信息显示界面、时间设置界面和3个系统配置界面)和HOME界面等。然后,通过USART HMI界面制作软件将所需显示界面整合与设置按键链接,并实现数据输入、处理、输出等功能。数据输入有两种形式:第一种是触摸按键输入;第二种是外接串口输入。触摸按键输入中,本文设计了一个触摸数字输入按键,通过按键输入整个系统运行的最初设定值,并且,对于其中的部分数据都有范围设置与输错报警;外接串口输入中,本文在主控制器部分的程序设计上做出了各个数据的显示对应关系。最后,将HMI模块的串口输入与输出都做了统一规定,保证其和主控制器的串口数据输入与输出的格式一致。
在使用界面制作软件USART HMI时,本文主要应用了该软件工具箱里的文本、数字、按钮、进度条等。加载进显示屏自带内存的主要界面类型如表3所示。在事件的程序指令中使用了串口HMI指令集里的page、sendme、get、if等,详细介绍如表4所示。使用到的系统变量有sys0、sys1、sys2,均为内置数值变量。
表3 加载界面列表
在人机交互时,每次对触摸屏的操作都会伴随着相应事件的发生,这些事件是在该软件中由程序指令提前定义的。该软件主要包括4种类型的事件定义:前初始化事件、后初始化事件、按下事件和弹起事件。前初始化事件表示程序指令在所有控件刷新显示之前执行,后初始化事件表示程序指令在所有控件刷新显示之后执行,按下事件表示程序指令在按键按下后执行,弹起事件则表示在弹起后执行。
在页面切换功能的实现上,本文在按键弹起事件中使用了page指令,这样可以切换到任意界面。在每个界面的前初始化事件中使用了sendme指令,每次切换界面都会第一时间发送界面ID给串口,这样主控制器就能检测到显示屏所处的界面,从而发送相应界面所需显示的数据给显示屏。在参数输入设置的数字键盘中使用get指令,能将通过触摸屏输入的参数通过串口发送到主控制器,进而设定相应阈值。
本文设计的串口HMI设备输出数据主要有3种格式,如表5所示。
在数字输入按键的设计中,本文设计了输入错误报警提示,这样可以减少系统在使用过程中的人为操作错误,例如,在时间的输入设置中,事件输入数值严格遵循万年历法,输入错误则提示报警退出,致使输入无效。数字输入按键及错误报警提示界面,如图6所示。
表5 串口HMI设备输出数据格式列表
图6 输入数据错误报警提示界面
通过图像制作软件得到上位机主界面、单体电池相关信息显示界面、总体电池信息界面、故障诊断界面、系统参数配置界面以及HOME界面等,如图7所示。然后在上位机界面制作软件中,设置相应按键功能实现界面互通和参数设置。
通过串口调试助手观测HMI显示屏的串口输出数据,可以得出实际输出数据与理论输出数据一致,输出数据如图8所示。
在CAN通信和串口HMI调试完成后,利用实验室的ARBIN电池测试系统、磷酸铁锂动力电池组、BMS下位机模块、设计的上位机主控制器、HMI触摸显示屏和GPRS模块进行系统的整体实验测试,验证系统的可行性。
图7 上位机各界面设计图
图8 串口调试助手测试结果图
图9 系统整理物理连接调试图
实验测试的整体结构如图9所示,首先通过触摸屏选择充电管理,下位机BMS模块开启动力电池组的充电,ARBIN电池充电系统开始对动力电池组进行充电,主控制器接收BMS下位机的电池状态信息,通过触摸显示屏进行显示,结果能够正确地显示充电过程的电池状态变化。然后,通过触摸屏选择放电管理,利用ARBIN电池测试系统对电池组进行放电,主控制器接收BMS下位机的电池状态信息,通过触摸屏进行显示,结果能够正确反映电池状态的变化。另外,通过GPRS模块实现数据的无线远程传输,远程监控数据显示界面及单体电池电压监测曲线如图10所示。
图10 远程服务器接收信息
本文设计并实现了一种基于飞思卡尔微控制器的电动汽车动力电池管理系统上位机模块,包括飞思卡尔K60主控制器、CAN总线数据传输模块、HMI显示屏串口传输模块和GPRS无线传输模块。主控制器主要用来接收电池状态信息,并发送给HMI显示屏,同时,将显示屏发送来的相应指令发送给BMS下位机模块。CAN总线数据传输模块实现各BMS下位机模块与主控制器的实时双向数据交互,可以将信息传输给主控制器,或者接收相应执行指令。HMI显示屏串口传输模块实现液晶显示屏与主控制器的同步全双工数据通信,能将所需显示的数据从控制器传输给显示屏,也能从显示屏将相应指令传输给控制器。GPRS无线传输模块实现了电池状态信息的远程传输,能将移动终端的电池信息远程传输给服务器,以便进行远程监测。最终,整个系统实现了电池管理系统上位机的人机交互以及电池状态的远程传输。
通过对电池组的充放电过程的实验测试,本文系统运行稳定,人机交互性能优越,数据远程记录完整,较好地实现了对纯电动汽车动力电池的实时监测与人机交互操作,验证了该系统的有效性和实用性。
参考文献:
[1]张晨曦,文福拴,薛禹胜,等.电动汽车发展的社会综合效益分析[J].华北电力大学学报,2014,41(3):55-63.
[2]符晓玲,商云龙,崔纳新.电动汽车电池管理系统研究现状及发展趋势[J].电力电子技术,2011,45(12):27-30.
[3]夏正鹏,汪兴兴,倪红军,等.电动汽车电池管理系统研究进展[J].电源技术,2012,36(7):1052-1054.
[4]陈志楚,潘峰.电动汽车动力电池管理系统[J].电源技术,2013,37(2):255-258.
[5]辛喆,葛元月,薄伟,等.基于单片机的纯电动汽车电池管理系统设计[J].农业工程学报,2014,30(12):163-169.
[6]邝利丹,邓清勇,李哲涛.一种估算锂电池SOC的新型方法[J].计算机工程与应用,2013,49(6):249-252.
[7]汝正阳,张向文.基于J1939协议的电池管理系统的设计与实现[J].电源技术,2016,40(10):1950-1952.
[8]Yue Yajie,Sha Chenming,Zhang Xiaojing.Implementation of serial communication between host computer and PLC based on host link protocol[J].International Journal of Advancements in Computing Technology,2012,4(18):80-88.
[9]蒋晓峰,施伟峰,刘以建,等.基于触摸屏和PLC的船舶电站监控系统设计[J].电力自动化设备,2011,31(1):122-125.
[10]齐继阳,吴倩,何文灿.基于PLC和触摸屏的气动机械手控制系统的设计[J].液压与气动,2013(4):19-22.
[11]顾波飞,赵伟杰,吴开华.基于Modbus协议的单片机与触摸屏通信设计[J].机电工程,2012,29(1):104-107.
[12]黄松涛,耿琳,黄再辉,等.基于液晶和触摸屏的数字电源人机交互系统设计[J].电子测量技术,2012,35(12):87-98.
[13]Guo Shuli,Wang Chunxi,Si Quanjin,et al.GW27-e1174 a remote monitoring system of electrocardiogram based on GPRS network[J].Journal of the American College of Cardiology,2016,68(16):187-188.
[14]黄晓波,姜振军,熊树生,等.基于GPRS的远程诊断车载终端的设计与实现[J].工业仪表与自动化装置,2016(1):49-52.
[15]罗森侨,彭忆强,易威.基于PIC单片机和CAN总线的纯电动汽车电池管理系统设计[J].西华大学学报:自然科学版,2013,32(1):56-59.
[16]万晓凤,张燕飞,余运俊,等.基于嵌入式的纯电动汽车CAN总线通信及实现[J].计算机测量与控制,2013,21(10):2795-2798.
[17]杨辉前,王耀南,袁小芳,等.电动汽车CAN总线数据采集显示系统开发[J].计算机工程与应用,2006,42(20):228-232.
[18]Janković S,Kleut D,Blagojević I,et al.Application of vehicle’s CAN based on betwork in transmission service load data acquisition[J].Technical Gazette,2012,19(2):201-210.
[19]饶运涛,邹继军,王进宏,等.现场总线CAN原理与应用技术[M].2版.北京:北京航空航天大学出版社,2007:20-35.
[20]广州致远电子有限公司.USBCAN-Ⅱ智能CAN接口卡产品数据手册[Z].2008.