介绍
针对目前市场上镍镉电池和锂电池并存的现状,本文设计的充电器可以对这两种电池进行充电,对镍镉电池组采用脉冲充电,对锂电池组采用恒流充电,这是根据电池的不同机理而设计的,真正做到了一举两得,这是该充电器的创新之处,也是设计的难点。该充电器的宽屏液晶屏可以同时显示4组充电器的充电状态,也可以分别显示一组充电器上电池的各项参数,从而实现对电池充电过程的实时监控。
总体系统设计
系统设计目标是:
1、可同时对4组8.4V锂离子电池或9.2V镍镉电池进行充放电。
2、它可以与电池组中的芯片进行通信,以确定电池的化学特性。
3、针对不同化学性质的电池,会采用相应的充电方法。
4、可以与电池组内的芯片进行通讯,获取电池组的电压、充电电流、容量等参数。
5、充电器配有LCD显示屏,可显示电池的各项数据。
充电器功能框图如图1所示。
图1 系统总体设计结构图
系统硬件设计
主控单元的设计与实现
主控单元由微控制器和键盘控制芯片组成,其主要任务是与各充电单元进行通信并处理用户输入和LCD显示信息,键盘控制芯片负责6个按键和12个LED的控制。
通过SPI总线与微控制器进行双向通信,主控单元每秒查询一次每个充电单元,获取当前充电单元信息,如电池是否存在、电池属性、电池电压等,然后LCD模块显示给用户。
充电单元的设计与实现
锂离子电池
充电控制芯片
它是一款高效独立开关模式锂离子电池充电控制器。该控制器有 4.2V 和 8.4V 版本。
-8.4 具有开关频率,是一款高效电流模式 PWM 控制器。通过驱动外部 P 通道,它可以提供 4A 的充电电流,效率高达 90%。输出电压设置为 8.4V,最终浮动电压精度为 1%,充电精度为 5%。此外,该器件可在 9V~22V 范围内的各种壁式适配器上工作。与滞后拓扑充电器相比,-8.4 的快速工作频率和电流模式架构允许使用小型电感器和电容器。
锂离子/镍镉电池
充电装置整体设计
从上面的分析我们知道这个芯片是锂离子电池的充电控制器。要实现镍镉电池的充电需要解决以下几个问题:首先,要监视电池电压,保证电池电压不超过8.4V。但是对于镍镉电池组来说,充电截止电压可达9.2V。其次,当镍镉电池即将结束充电时,需要以正常电流的30%和10%对电池进行涓流充电。因此,需要解决的第二个问题就是如何控制恒流充电的电流大小。另外,对镍镉电池充电应采用脉冲充电。即以1s为一个周期,95%的时间用于充电,1%的时间用于放电,其余时间既不充电也不放电。 最后如何判断电池是锂离子电池还是镍镉电池,因为如果锂离子电池被误判为镍镉电池,那么充电电压会高于8.4V,这对于锂离子电池来说是非常危险的,而如果镍镉电池被误判为锂离子电池,那么可能造成电池充电不足,所以必须保证非常低的误判率。
本部分根据工作原理,设计了一种既能对锂离子电池进行恒流恒压充电,又能对镍镉电池进行脉冲充电的电路。充电单元总体功能框图如图2所示。其中,信号调理电路使该充电器既能对8.4V锂电池充电,又能对9.2V镍镉电池充电,同时也起到控制充电电流的作用。
图2 充电单元整体功能框图
该充电器利用单片机控制工作状态,配合放电电路,对镍镉电池进行脉冲充电。
微控制器通过一定的通信协议(HDQ16)与智能电池进行通信,确定其容量、化学特性等关键参数。
信号调理电路设计
为了能够对电压高于8.4V的电池进行恒流充电,并调整充电电流,在BAT和SENSE端与取样电阻之间增加了一个信号调理电路。此电路的主要作用是对取样电阻两端的信号进行运算,将相应的信号发送给不同化学性质的电池。信号调理电路如图3所示。
图3 信号调理电路功能图[!--.page--]
这里,设取样电阻两端的电压值为VBAT,则充电电流在取样电阻上的压降VRS为:VRS=-VBAT,此信号即为减法器的输出。设乘法器的乘法系数为K,则乘法器的输出为KVRS。对于锂电池,双选开关会选择电池电压VBAT;对于镍镉电池,双选开关会选择7V恒压。这里,设双选模拟开关的输出为V1,则加法器的输出Vs应为:Vs=KVRS+V1,这样送往BAT与SENSE的电压差就应为KVRS。只要正确控制K值,就可以使充电电流为正常充电电流的1/K。因此,电流可由双选开关控制为恒流充电的10%或30%。
对于BAT输入值,当开关选择锂离子电池时,BAT输入为电池电压。此时,整个锂离子充电过程可由外部控制,无需任何干预。
当开关选择7V恒压时,BAT端输入恒定在7V,此时无法得知电池的真实电压,只认为电池电压为7V。因此,即使电池电压高于8.4V,仍会以恒流方式对电池进行充电。此时需要单片机的介入,否则会导致电池过充。由于单片机内部带有ADC,可以监测电池电压的变化,当电池电压达到规定值时,减小充电电流,直至电池充满。这样就可以对9.2V的镍镉电池进行充电。
脉冲充放电电路设计
由于是恒流充电控制芯片,所以它的充电使能引脚COMP必须由单片机控制,当需要输出充电脉冲时,控制COMP引脚的端口变为高阻态,当COMP引脚上升到360mV以上时,输出充电电流。放电时必须将COMP引脚拉低,关断充电电流,此后再开启放电电路。选用的单片机是基于Flash的8位单片机,内部有定时器、看门狗电路、10位ADC等模块。
图4 充电单元主程序流程图
单片机对镍镉电池进行周期为1s的脉冲充电、放电。
系统软件设计
系统软件总体设计
充电单元中的微控制器主要负责控制充电过程以及与主控板的通信,程序流程如图4所示。充电单元首先判断是否有电池,若插入电池则判断充电、放电状态,默认为充电状态,可通过主控单元进行更改。若充电单元处于充电状态,则继续判断电池的化学性质,针对不同的电池采用不同的充电方式。若处于放电状态,则对电池组进行放电,直至电池电压低于阈值电压,再切换到充电状态。
主控单元与充电单元的通讯除主程序外,在中断服务程序中实现,当充电单元接收到主控单元的指令后,进入中断,若该指令为数据查询指令,则将所需数据发送给主控单元,若为充电状态设置指令,则根据该指令设置充电单元的充电状态。
通信协议实现
通过与电池组中的能量计量芯片进行通信来确定电池的属性,本系统可以与遵循HDQ16接口协议的智能电池组进行通信,除了可以获取电池组的化学属性外,还可以读取电池组的容量、电压、充电电流、序列号等数据,供充电器显示。
充电单元可以通过HDQ总线读取智能电池。HDQ16接口协议是一种基于命令的协议。处理器向智能电池发送8位命令代码。这个8位命令代码由两部分组成,一个7位HDQ16命令代码(位0至6)和一个1位读/写命令。读/写命令指示智能电池将接下来的16位数据存储到指定的寄存器中,或者从指定的寄存器输出16位数据。在HDQ16中,首先传输数据字节(命令)或字(数据)的最低有效位。
块的传输由三个不同的部分组成。第一部分从主机或智能电池将 HDQ16 引脚设置为逻辑低状态并持续 tSTRH:B 时间开始。下一部分是实际的数据传输。数据位在 tDSU:B 时间间隔内有效,负边界用于启动通信。数据位保持 tDH:DV 时间间隔,以允许主机或智能电池对数据位进行采样。
在负边界上启动通信后,最后一部分通过将逻辑高状态返回到 HDQ16 引脚至少 tSSU:B 间隔来停止传输。最后一个逻辑高状态必须保持 tCYCH:B 间隔,以便有时间让块传输完全停止。
如果发生通信错误(例如,tCYCB>250ms),主机将向智能电池发送 BREAK 信号以控制串行接口。当 HDQ16 引脚处于逻辑低状态一段时间或更长时间时,智能电池将检测到 BREAK。然后,HDQ16 引脚在 tBR 时间间隔内返回其正常预设高逻辑状态。然后,智能电池即可接收来自主机的命令。
HDQ16 引脚为漏极开路,需要外部上拉电阻。
图5是逻辑分析仪显示的HDQ总线上的通信波形。
图5 HDQ总线通信波形
结论
本文提出的充电系统从技术角度很好的解决了上述问题,通过LCD显示屏可以清晰方便的读出电源剩余容量、充放电次数、充放电电流、电池电压、容量统计、电池特性等重要信息,此外通过设置可以判断电源是否达到报废标准,并提醒操作人员及时更新电源。