采用Altera的FPGA器件实现电池管理系统的设计

可编程逻辑

1334人已加入

描述

便携式设备的便携性是与电池的发展息息相关的,从最初的铅酸电池、镍镉(Ni-Cd)电池发展到镍氢(Ni-H)、锂离子(Li-ion)电池一直到最近的锂聚合物(Li-polymer)电池,能量密度逐步提高,移动性能越来越强,电池的缺点也不断被克服。本文就将介绍一个便携式锂聚合物电池的管理系统设计。

系统整体结构

本设计的应用实体是一个工业上使用的便携式设备,采用Altera的FPGA和其上的NIOS II嵌入式处理器,并使用USB接口与电脑相连接,面向的是大数据量应用。这个设备需要30V直流电压,所以计划使用4个1000mAh锂聚合物电池串联的电池组;另外,出于防水防尘的考虑,对外只使用一个方形的USB接口(USB B Type Socket),这个USB口同时兼具数据传输和充电的功能。

整体结构如图1所示。控制核心包括FPGA及其所连的接口、显示电路,需要3.3V的低电压,由高效率的DC/DC芯片从4芯锂电池组直接降压得到。这个电压很重要,所以需要保持稳定且连续,除非电池组低电量或者过流保护,否则此电压一直供给。

电池

图1 系统整体结构框图

执行机构需要30V直流电压,电流大约80mA左右,使用一个升压DC/DC电路,这个电路由控制核心操纵,平时是不工作的,只在需要动作之前开启。

充电使用外部20V电源,通过USB接口连接。使用这种电源的考虑是为了进行1C或0.5C大电流高速充电。由于与普通USB共用一个端口,为了避免接入普通USB时进入充电程序,需要一个电压判断电路进行判断。

由于合乎需要的芯片解决方案市场上很难寻觅,决定使用FPGA的剩余逻辑资源来实现充电器的控制功能,添加少量的模拟电路来辅助。这就要求对控制电路的供电不能中断,电池组必须一直在线,并且电池负极需要一直与GND连接。

电池电路

1 电压采样

最重要的部分就是电压采样电路的设计,要求精度高并且受温度影响小。这个设计难点在于电池电压对于GND而言是浮动的。很多方案采取了差分运放转换到对地电压然后输入专用ADC进行AD变换的方案。但这个方案由于引入了差分运放,产生了许多问题。首先,电压比较高,运放很难找;其次,运放的电源与输入电压使用同一个电源,这样一来就要求运放需要轨到轨输入的功能;再次,可能还需要一个负电源,使用DC/DC又引入了噪声;另外,运放及使用匹配的电阻使得精度降低。

电池

图2 RC充电电路

为了尽量简化电路,这里构造了积分型的ADC,将FPGA定时的高精度转化为电压测量的高精度。

这是一个简单的RC充电电路(见图2)。其工作流程是:J1先闭合,释放C1上的电荷;然后J1打开,由R1对C1进行充电;电压比较器U1将C1上的电压与参考电压V2比较,当C1电压超过V2时输出高电平。统计从J1打开到U1输出高电平之间的时间,便可以确定V1的电压大小。可以直观地看出,V1越高,这段时间越短。

实际的电路如图3所示,注意这幅图只画出了第一个电池的测量电路。其中,R1与C1便是积分使用的电阻与电容,Q1是常用的P-MOSFET,这里用来实现J1给电容放电的功能,U5同时实现电压基准与电压比较器双重功能。X1是放电控制,来自FPGA,X2是开关量输出,去往FPGA。电压比较器选用的是美信公司的MAX921。

电池

图3 实际取样电路图

这个电路在静态时仅仅消耗MAX921的4μA电流和C1、Q1、Q2的漏电流,基本可以忽略不计,非常省电。

这个电路另外一个特色是省掉了经常使用的光电耦合器,而使用电容C2代替。静态时,C2两端达到电压平衡,不消耗电能,此时,X2电压为0。U5输出高电平时,因为C2两端电压不能瞬变,故X2电压被提升。D1与D2两个肖特基二极管是起限幅作用的。仔细调整C2与R4的值就能够顺利地传递开关量信息。

2 平衡充电

平衡充电是所有锂电池组所需要的充电方式,但是很多小功率的应用中实际是没有平衡充电的,如大多数的笔记本电脑电池组,这样做实际上对电池寿命的影响是相当大的。

现有的均衡技术主要分为电池间能量传递均衡和外部能量输入均衡。电池间能量均衡就是把高电量电池的能量给低电量电池充电。这种方法最大的问题就是控制起来很复杂。

现在很多专用芯片或者单片机解决方案使用的是外部均衡的方式,这种方式是通过可控制的耗能来实现的。这种方式中一般都是使用一个耗能元件来消耗能量,从而等待其他电池单元充满或者降低某些单元的电压。这种方案的缺陷在于稳压二极管上的耗能太大,造成的发热量是不能忍受的。

电池

图4 实际充电方式图

实际使用的充电方式如图4所示,当然,这只是一个示意图,不包括电流检测电路(输入到变压器之间)和电压检测电路(变压器次级绕组)。其中,开关阵列是用功率MOSFET实现。

这种做法,管子都工作在开关状态,耗能很少,另外电池没有串联二极管,可以获得最大输出。不足之处还是电路比较复杂,由于要匹配每个电池的电压,所以要求输入充电电路是隔离的。这里采用T1变压器作为隔离,因为开关频率可以做得很高,T1变压器的体积很小。

整个充电电路工作在开关状态,不再添加任何的控制模块,由FPGA直接控制场效应管,电流检测和电压检测电路的输出也转化为开关量直接传给FPGA。

充电分为四个步骤:

a) 检测是否有电池单体低于2.5V,如有,使用5%的占空比对低于2.5V的电池轮流充电,使其升压到2.5V;

b) 打开J1和J8,对整体进行大电流充电,同时测量电池单体的电压,如果有电池单体达到4.2V,进入下个步骤;

c) 逐渐降低占空比,使单体电池的最高电压维持在4.2V,直到占空比《5%;

d) 对未到4.2V的电池进行轮流充电,当占空比均下降到5%时,充电结束。

这里需要说明的是,a)和d)步骤中轮流充电是通过开关矩阵实现的,并且轮流充电并不会延长充电时间,这是因为此时的占空比远远小于25%,可以在一个充电周期内分别给四个电池充电。

3 过流和低压保护

为了保证电池组的绝对安全,电池组的过流和低压保护是独立设置的,当出现问题时可直接切断电池组的输出,这种类型的电路也非常普遍,这里不再赘述。

另外需要说明的是,控制系统里面也含有非易失存储器和电池输出探测电路,当探测到保护电路动作的时候,当前的信息将保存到非易失存储器中,以供日后分析。

总结

多节锂电池组成电池组是现在便携式较大功率设备的必然选择,如何管理和维护这个电池组使其高效长寿命地工作也是摆在电子设计师面前的任务。

本文提供了一个新思路,即采用简单而精确的电路,将复杂的模拟量转化为数字量,从而简化外部电路的设计,把复杂的充电时序控制交给可编程逻辑来处理。这样做不仅非常灵活,精度高,而且还降低了成本。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分