测绘地理信息   2017, Vol. 42 Issue (6): 60-64
0
基于STM32的多通道锂电池充放电测试系统[PDF全文]
许贤泽1, 白翔1, 徐逢秋1, 吕云1, 翁名杰1    
1. 武汉大学电子信息学院,湖北 武汉,430072
摘要: 锂电池组的应用十分广泛,但是其质量良莠不齐。针对便携式电动工具锂电池组,设计了一个基于STM32的多通道锂电池充放电测试系统,旨在提高电动工具电池电压和电流检测精度,能更加合理地选择充放电策略,并提供过流、过充、过放等保护功能。介绍了系统的软硬件设计方法,其中,硬件包括双量程的电流采样模块,双探测器的温度采样模块、电压采样模块和保护电路等。通过上位机软件实现锂电池充放电数据的实时显示及数据分析。
关键词: 锂电池组     嵌入式STM32     充放电检测     实时显示    
A Miltichannel Lithium Battery Charging and Discharging System Based on STM32
XU Xianze1, BAI Xiang1, XU Fengqiu1, LV Yun1, WENG Mingjie1    
1. Electronic Information School, Wuhan University, Wuhan 430072, China
Abstract: Lithium battery pack is widely used, but its quality varies greatly. A multichannel lithium battery charging and discharging test system based on STM32 is designed to improve the accuracy of voltage and current detection of battery for power tools, to choose charging and discharging strategy more rationally and to provide over current, over charge and over discharge protection functions for portable power tools with lithium batteries.The design method of software and hardware of the system was proposed in this paper, including the two-range sampling module, the temperature sampling module of two detectors, the voltage sampling module and the protection circuit.And the upper computer software is used to realize the real-time display and data analysis of the charging and discharging data of the lithium battery.
Key words: lithium battery pack     embedded STM32     charge and discharge detection     real-time display    

便携式电动工具的应用越来越广泛[1, 2]。锂电池作为便携式电动工具的首选电池电源,无论是电池容量还是充放电性能,都必须符合不同功率的电动工具的使用要求,若锂电池选用或充放电策略选择不合适,都将会造成锂电池过充或过放,长期使用将影响锂电池的使用寿命,导致电动工具无法发挥应有的作用,甚至发生人身危险[3]。因此,需要进行锂电池充放电测试来选择最合适的充放电策略。

本文设计了一个拥有多通道的锂电池充放电测试系统,以STM32F429为主控芯片,配合双量程的电流采集、充放电控制、双探测器的温度检测以及电压检测等电路,实现了同时对多个串联动力锂电池组的充放电测试及保护。在测试过程中,通过上位机程序,可对多个锂电池组的充放电测试过程进行监视,并将锂电池充放电测试数据实时显示。

1 系统的硬件设计

本系统采用STMicroelectronics公司所生产的高性能、低功耗、高性价比的STM32F429作为整个系统的核心控制器,通过SPI(serial peripheral interface)总线以及SMBus(system management bus)总线分别与电流、温度、电压检测模块通信,通过普通IO引脚控制充放电回路的开断,实现相应的保护功能,并且将采集到的数据通过串口转USB模块发送给上位机电脑,通过上位机实现采集数据的实时监控和数据分析与处理,系统结构图如图 1所示。本系统拥有8个独立监控通道,每个通道能监控1~8节锂电池的充放电状态,并且通道1和2、通道3和4、通道5和6、通道7和8还可两两组合,实现监控9~16节串联的锂电池组。

图 1 系统结构图 Figure 1 System Structure Diagram

系统的硬件设计主要包括锂电池电压检测模块设计、温度检测模块设计、电流检测模块设计以及充放电保护功能模块设计。

1.1 电流检测及充放电控制硬件设计

电流是锂电池组充放电状态的重要参数之一,是直接判断是否出现过流的依据,同时也是安时积分法估算充放电总量的重要参数[4, 5],所以电流检测精度直接影响到充放电量的估算以及充放电数据的处理和分析。因为便携式电动工具所用的锂电池包容量、型号以及性能上的差异,系统中的电流检测模块必须具有通用性。本系统采用双量程的电流检测方案设计[6],这样既保证了在小电流和大电流情况下的检测精度,也提高了系统检测电流大小的能力。考虑到闭环霍尔电流传感器具有测量动态范围宽、测量精度高、响应速度快和隔离测量的特点,所以本系统各个通道均采用一个闭环电流霍尔传感器MMI-200B来实现充放电电流的采集。锂电池充放电电流Ip作为原边电流从MMI-200B传感器通孔输入,副边输出电流IoutIp的关系为:

$ n \times {I_p} = K \times {I_{{\rm{out}}}} $ (1)

式中,K为比例系数,其大小与霍尔传感器型号有关,MMI-200B中K=1 000;n为原边线圈的匝数,本系统n=2。

通过测量采样电阻上的电压,即可测得充放电电流Ip的大小。系统为了保证在大小电流情况下的检测精度,通过主控芯片STM32的IO引脚的高低电平来控制三极管的通断,从而控制继电器G6K-2P的开关状态选择阻值不同的采样电阻,再经过具有两路差分输入的高精度、24位ADC芯片ADS1247进行AD转换,最后主控芯片通过SPI总线读取各个电流检测模块的ADC芯片的转换值, 计算出各个通道的充放电电流大小。

锂电池充放电控制结构如图 2所示。考虑到若采用充放电负极分离控制电路,锂电池组正极直接与充电器或负载正极相连,当锂电池组节数较多,总体电压较大时,存在损坏充电器或负载的风险。本系统采用充放电正极分离控制电路,即电池组、充电器和负载的负极保持连接,锂电池正极通过两路PMOS开关电路分别与充电器和负载正极相连。充放电控制电路结构基本一致,充电控制电路图如图 3所示。采用具有光耦的MOSFET驱动电路,以使主控芯片STM32的IO口来驱动PMOS管。利用光耦具有的良好的电绝缘能力,使主控芯片以及检测模块与锂电池充放电回路电气隔离,增加整个系统的安全性和稳定性。

图 2 锂电池充放电控制结构图 Figure 2 Structure Diagram of Lithium Battery Charge and Discharge Control

图 3 充电控制电路图 Figure 3 Circuit Diagram of Charge Control

1.2 电压检测硬件设计

电压是锂电池组充放电状态的重要参数之一,是检测电池是否损坏最直观的参数,只有检测到足够精确的电压值,才能判断出充放电过程中电池是否过度充电或放电,及时启动系统保护功能,停止对锂电池组的充电或放电。本系统选用凌特公司的多节电池组监控芯片LTC6804-1,可测量多达12节串联电池的电压,同时还可以通过菊花链把多个LTC6804器件串接起来,实现测量12节以上串联电池电压的功能[7, 8]

本系统共使用8个LTC6804-1电压检测模块,每个电压检测模块负责一个通道最多8节电池电压的测量,其中,通道1与通道2、通道3与通道4、通道5与通道6、通道7与通道8的电压检测模块均采用菊花链级联连接,因此,在通道组合情况下,可以测量多达16节电池电压,电压检测结构如图 4所示。

图 4 电压检测结构图 Figure 4 Structure Diagram of Voltage Detection

1.3 温度检测硬件设计

锂电池对温度范围的要求很高,通常情况下,其理想的工作温度范围在20 ℃~35 ℃,当温度超过40 ℃后会影响电池的使用寿命,当温度低于0 ℃会影响电池的充放电性能[9],当锂电池在过充阶段和过放阶段时,其温度也会明显上升。因此,实时监控充放电过程中电池温度才能更好地选择合适的充放电策略,更加及时地保护锂电池。

系统采用一种双探测器锂电池表面温度检测方法,来确保锂电池温度在发生突变情况下,温度检测能够及时响应, 并且兼顾较高的温度检测精度,防止在极端测试条件下损坏锂电池。检测硬件包括PT1000铂热电阻温度传感器、热敏电阻转换模块、MLX90614红外温度传感器、SMBus缓冲模块以及主控芯片STM32。热敏电阻温度检测可以获取较高的温度检测精度,但其温度检测需要电池与热电阻达到热平衡状态,当电池温度持续上升时,存在响应时间慢,不能及时反映电池实际温度的情况,因此,加入对温度反应迅速的红外温度探测器加以弥补。当电池温度较稳定时,以铂热电阻传感器检测出的温度为电池实际温度,当电池温度变化较快时,以红外温度传感器所检测出的温度作为过温和低温情况的判断值,及时关闭电池充放电回路,以防止锂电池的进一步损坏。双探测器温度检测结构如图 5所示。系统加入SMBus缓冲模块,用以延长SMBus通信距离以及提高通信的可靠性。热敏电阻转换模块将铂热电阻阻值转换为相应电压值,主控芯片STM32通过SPI总线获取其电压值后,先将电压值转换为铂热电阻的电阻值,再计算出热电阻所对应的温度值。

铂热电阻阻值与温度的关系可由Callendar-Van Dusen方程表示为:

$ R\left( T \right) = {R_0}\left( {1 + aT + b{T^2} + c\left( {T - 100} \right){T^3}} \right) $ (2)
图 5 双探测器温度检测结构图 Figure 5 Structure Diagram of Dual Detector Temperature Detection

式中,T为温度;R(T)为T温度下的阻值;a=3.908 30×10-3b=-5.775 00×10-7;当-200 ℃≤T≤0 ℃时,c=-4.183 01×10-12;当T≥0 ℃时,c=0。

2 系统的软件设计 2.1 下位机软件设计

本系统下位机软件流程如图 6所示[10]。下位机共开启了两处中断功能,一是串口接收中断,其目的是将上位机发送的命令存储在一个环形数组中;二是定时器中断,定时器每隔50 ms触发一次中断,并将tt置1,程序通过不断查询tt值来决定是否进行采样。系统在第一次运行时会进行系统的初始化,并完成与上位机的通信握手,随后在无限循环中运行。在整个循环过程中,下位机会不断解析环形数组里面的数据即上位机所发送命令,一旦有定义好的命令被解析出来后,就会进行相对应的操作,如配置通道1的充放电状态、通道1的保护参数,开启或关闭通道1采样等等。随后,通过判断变量tt值是否为1,从而选择是否进入采样、保护功能函数并将tt清零,count值加1,等待定时器刷新tt值进行下一次采样。当count值等于multiple值时,系统就会将采样数据发送给上位机。multiple值由上位机发送特定的命令修改,通过改变multiple的值,即可控制下位机发送数据的间隔,时间为50 ms的multiple倍,上位机将下位机传送的数据保存并实时显示出来。

图 6 下位机软件流程 Figure 6 Flow chart of Lower Computer Software

为了提高系统的抗干扰能力,在优化硬件设计的同时,在软件中也加入中值滤波,避免出现粗大误差,导致保护功能开启[11, 12]

2.2 上位机软件设计

系统上位机软件是基于PyQt库设计的,运行软件后,系统将处于设备查找状态,等待下位机响应后,系统进入主界面进行锂电池充放电测试,主界面如图 7所示,能实时显示各节电池单体电压、通道总电压、通道电流、通道温度、充放电电量、保护参数以及测试时间等。

图 7 上位机软件主界面 Figure 7 Main Interface of Host Computer Software

3 测试结果

在实际测试过程中,使用BOSCH 18 V 5.0 Ah的锂电池包作为充放电电池,大功率电子负载作为放电负载,通过不断改变电子负载放电电流,分别对8个通道进行测试。其中,通道3的测试数据如表 1所示。

表 1 通道3的测试数据 Table 1 Test Data of Channel 3

经测试,本系统的各个通道均能保持高精度和稳定性。系统电流检测在0~50 A的整个范围内都保持着最大15 mA的检测精度,且电流在5 A以内时,电流检测误差控制在3 mA以内;电压检测最大误差为10 mV;温度检测最大误差不超过2 ℃,并且也验证了保护功能的有效性。通过以上测试现象,可以得出本系统能够准确检测电池的充放电状态,在各种测试条件下,能有效地保护锂电池不受破坏。

验证系统的检测精度达到要求后,利用BOSCH专用充电底座对锂电池进行充电,系统监控整个充电过程并自动绘制充电曲线如图 8所示。从图 8(a)可知,BOSCH充电器选择的充电阶段大致分为两个阶段,在电池充电的第一阶段,电池温度是持续上升的;第二阶段,由于充电电流不断减小,温度缓缓减低。从图 8(b)可知,充电结束时,充电电量为4.95 Ah,与电池容量5 Ah相符;电池电压随着充电的进行不断上升。从图 8(c)可知,系统运行稳定,能够实时准确监视电池的状态,电池组能够可靠、安全地工作。

图 8 通道3充电曲线 Figure 8 Charging Curve of Channel 3

4 结束语

本文提出和设计了一种基于STM32的多通道锂电池充放电测试系统,能够准确监视和记录锂电池组的状态,同时提供过充、过放、过温等保护。系统的电流检测设计采用双量程的设计方案,实现了小电流以及大电流检测的高精度,温度检测采用双探测器相结合的检测方案,获得了准确的温度采集以及对过温或低温的快速保护。本系统具有测试通道多、集成度高、精度高、量程大、反应快、抗干扰等优点。该设计的不足之处在于系统虽然支持组合模式,但最多也只能测试16节电池组的充放电。

参考文献
[1] 施宏, 周西峰, 郭前岗. 便携式电动工具锂电池管理系统的设计[J]. 微型机与应用, 2015, 34(21): 78–80, 84 DOI: 10.3969/j.issn.1674-7720.2015.21.024
[2] 杨新伟. 便携式电动工具锂电池组智能监控系统设计[D]. 武汉: 武汉理工大学, 2010
http://d.wanfangdata.com.cn/Thesis/Y1680906
[3] 黄其庆. 基于单片机的电动工具锂电池管理系统设计[J]. 电动工具, 2014, (1): 8–11
[4] 辛喆, 葛元月, 薄伟, 等. 基于单片机的纯电动汽车电池管理系统设计[J]. 农业工程学报, 2014, 30(12): 163–170 DOI: 10.3969/j.issn.1002-6819.2014.12.020
[5] 陈仕俊, 郑敏信, 满庆丰. 基于STM32和LTC6803的电池管理系统设计[J]. 电源技术, 2015, 39(2): 280–282
[6] 张治国, 孔庆, 崔纳新. 电动汽车电池组监测系统的设计[J]. 电源技术, 2011, 35(10): 1224–1226 DOI: 10.3969/j.issn.1002-087X.2011.10.014
[7] Xu Jun, Cai Xinrong. Lithium Battery SOC Application Research Based on LTC6804-2[J]. Instrumentation Technology, 2014, 134(6): 28–31
[8] 吕杰, 宋文吉, 林仕立, 等. 基于LTC6803-4的电池管理系统信号采集技术研究[J]. 测控技术, 2013, 32(1): 23–27
[9] 张兴福, 赵南, 田钧. 电动汽车电池包温度控制系统研究[J]. 电源技术, 2017, 41(4): 601–604
[10] 张文, 黄声享, 李洋洋. 基于测量机器人的碾压施工监控系统设计[J]. 测绘地理信息, 2017, 42(2): 94–97
[11] 邢文怡. 装料机圆度检测系统的设计与实现[J]. 测绘地理信息, 2017, 42(2): 76–79
[12] 许贤泽, 陈少阳, 刘盼盼, 等. 基于图像测量的花键套端面尺寸检测[J]. 测绘地理信息, 2015, 40(1): 51–54