ST M32处理器的锂电池组保护电路设计
2012-10-13张洪涛
张洪涛,吴 芬
(湖北工业大学电气与电子工程学院,湖北 武汉430068)
由于锂离子电池对充放电过程中的电压和电流要求很高,一旦电压或电流超过安全范围则会导致电池温度升高使电池报废,严重的将导致电池爆炸.所以锂电池的保护电路设计一直是锂电池使用中的重点问题[1-2].
本文提出一种基于ST M32系列芯片的锂离子电池组保护电路设计方案.以ST M32F103 VET6嵌入式控制器为核心,使用X3100V28锂电池保护芯片实现对锂电池组的过充、过放、过流及温度保护.
1 硬件电路设计
本设计(图1)主要分为ST M32微控制器模块、X3100保护芯片模块两个主要部分.X3100将采集的数据输出给ST M32中的ADC模块来监测各电池的电压、电流,而ST M32通过SPI与X3100通信,发送控制指令,实现保护动作.通过电流值可判断电池为充电、放电、过流或静置状态;通过电压值可判断各电池为充电、放电、过充或过放,还可判断电池组电压是否均衡,并决定是否启动均衡模块;通过温度值可判断电池为正常或危险,并决定是否停机冷却.ST M32将所有采集到的信息通过DMA存储在ST M32F103中的FLASH中,方便以后查阅及维修.
图1 总体结构图
1.1 ST M32微控制器模块
ST M32系列控制器由意法半导体公司(ST)推出.ST M32F103是增强型系列,工作在72 MHz带有片内RA M和丰富的外设[3].内核为高性能的32位ARM Cortex-M3,含有高速存储器(高达128 K字节的闪存和20 K字节的SRA M),具有睡眠、停机和待机三种模式,满足低功耗要求.该器件有多达80个通用I/O端口,3个通用16位定时器和一个PWM定时器,9个标准和先进的通信接口.选用ST M32F103 VET6微控制器主要考虑其高速可靠、资源丰富、工作温度宽和供电电压宽、功耗低、性价比高的特点.尤其是其内部集成的12位双路AD转换器,含有16个通道,最快转换时间1μs.微控制器模块主要包含了ST M32的基本外围电路、电源电路、通信模块和LED电路.其中ST M32的基本外围电路如图2所示.
图2 ST M32外围电路设计
外围电路包括I/O引脚的扩展、晶振、滤波电容、开关等.开关JP1为电源开关,J1为模式选择开关,USER(用户)模式为正常工作状态,SYS(系统)模式为调试及维修状态.电源电路为ST M32芯片供电,由锂电池组通过X3100输出电压为其主电源,采用BL8503作电源稳压.当X3100无法供电时,可以打下开关S1选择由VBAT(备用电池)供电.JTAG芯片用来实现与上位机的通信,方便在线调试及维修.LED灯显示电路的工作状态.
1.2 X3100保护芯片模块
X3100是Intersil公司生产的专用于4节锂离子电池保护和监测芯片(图3).它内部集成了过放、过充和过电流保护电路、EEPROM存储器、电压校准器、FET驱动电路等.X3100可通过一个3 MHz的SPI接口与微控制器通信[4],可人为地修改过压、过放及过流的限值,还可由微控制器发送控制指令实现各种保护动作.而内部的模拟多路转接器使X3100输出指定的电池参数给A/D转换器,根据这些参数微控制器可通过软件算法来实现电压平衡等功能.
在正常工作模式下X3100芯片由电池组供电,当电池组处于欠压状态时,芯片通过D6、D7由外接电源供电.X3100对电池组的保护功能由开关电路完成,开关电路由放电FET(Q1)和充电FET(Q2)构成.当电池在充(放)电过程中达到保护条件时,将关断Q2(Q1),切断充(放)电回路,进而达到保护电池的目的.当处于Sleep模式时,Q1和Q2都被关断,此时电路电流小于0.5μA,满足低功耗要求.对电池组的电压均衡功能由4个均衡FET(Q6~Q9)实现,当某个单体电池达到均衡条件时,微控制器输出指令给X3100使其对应的均衡FET开通,切断其充电回路并通过旁接电阻降压.与ST M32的通信功能由多路选择器接口和SPI接口实现.ST M32通过GPIO口控制X3100的引脚AS0~AS2的高低电平,进而控制其内部的模拟多路选择器,引脚AO输出参数给ST M32的A/D接口.
图3 X3100电路
2 软件设计
本电路由C语言编写,使用Keil软件编写调试.主要由初始化模块、功能指令定义模块、电压电流保护模块、均衡模块和温度保护模块构成.流程见图4.
2.1 X3100功能指令及上电模块
在本模块中定义X3100的所有功能指令,X3100上电时序控制.设定X3100配置寄存器、控制寄存器、状态寄存器的初值.
图4 软件流程图
2.2 电压、电流保护
定时读取每节电池的电压值,当某节电池电压高于(低于)设定电压限值并达到延迟时间时,关断充电(放电)控制FET.而后则周期性地检测每节电池电压,当所有电池电压达到释放条件时,打开充电(放电)控制FET.但若电池处于欠压状态低于Sleep电压时,则关断充电和放电控制FET并进入Sleep模式.
周期性地检测电池组电流,当电流超过设定限值时,关断放电控制FET,并在X3100的OVP引脚输出7.5μA的恒定电流测试外部负载,当负载大于250 KΩ时释放过流保护模式.
2.3 平衡功能
在电池组进行充电时,由于各单节电池性能存在差异,所以各单电池电压不能保持一致.在正常充电过程中,若某一单电池先于其他电池充至上限值,此时继续让电池组充电将导致该单电池过充.首先通过读状态寄存器判断是否处于充电状态,然后通过控制指令使X3100循环输出各单体电池电压,判断电压最高和最低的两个电池,当电压差超过设定值时开通电压高的电池对应的平衡FET,切断其充电回路直至电压差回落在限值内.
2.4 温度保护
锂电池对温度的要求非常高,使用范围为-20℃~+60℃,但大于45℃时自放电增大,容量下降,同时也不宜快速充电.本设计中电池组环境温度的测量采用ST M32F103中的数字温度传感器,测温范围为-55℃~+125℃.温度保护分以下几种情况:正常工作温度范围为-20℃~+60℃,超出此范围时切断充电和放电回路进入Sleep模式;允许大电流充电范围为+10℃~+45℃;放电温度范围为-10℃~+50℃;温升大于1.5℃/min时切断充电回路;温度高于80℃则关闭系统电源,停止工作等待温度回落重新启动系统.
3 实验结果
经过软硬件调试,该电路在电池充放电过程中均很好地完成了所有保护动作.图5a为该电路在充电过程中当某单节电压高于4.2 V时进行电压均衡的时序图,曲线1为限值4.2 V,曲线2为电池电压,曲线3为微控制器输出开关管控制信号.由图可知,当电池电压高于限值时,微控制器输出高电平驱动平衡FET.图5b为电路在放电过程中当某单节电池低于2.25 V时进行欠压保护的时序图,曲线1为限值2.25 V,曲线2为电池电压,曲线3为微控制器输出开关管控制信号.由图可知,当电池电压低于限值时,微控制器输出低电平关断充放电FET.
图5 时序图
4 结束语
本文给出了一种基于ST M32F103和X3100芯片的锂电池组充放电保护电路,采用嵌入式系统软硬件设计,实现了对电池组的过充电电压、过放电电压、过充电电流、过放电电流、短路和温度保护,以及电池组单体电池间电压均衡功能.本电路使用范围广,符合时下新兴电子产品设计趋势.
[1]董翠颖,马 季.动力锂电池智能管理系统设计[J].电子设计应用,2009(10):98-101.
[2]张志贤,刘培德.电动自行车用锂离子电池保护板的设计[J].山东科技,2005,18(1):62-65.
[3]张舞杰,南亦民.基于ST M32F103 VB的应用编程技术的实现[J].计算机应用,2009(10):2 820-2 822.
[4]Intersil.X3100 Datasheet FN8110.1[EB/OL].[2022-11-15]www.intersil.com/products/deviceinf o.asp?pn=X3100.