打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
基于ATmega8的新型柔性充电系统设计
类别:网文精粹  
 
The Design of Ni-MH Battery Charging Circuit Based on Atmega8

Abstract: In this paper, the demand of Ni-MH battery charging management is discussed, and thus a management method based on battery voltage, battery temperature, and charging time is put forward. A newer flexible charging system based on Atmega8 is designed. The hardware and software of the system are given.

Keywords: ATmega8;Battery; Charger

摘要:分析了镍氢电池充电管理系统的设计需求,提出了一种采用电压、温度和时间进行综合控制的充电管理方案。设计了基于ATmega8的新型柔性充电系统,同时给出了该系统的软硬件设计方法。

关键词:ATmega8;电池;充电器

随着科技的发展,对便携式仪器仪表的需求越来越多。为这些仪表选择充电电池并设计充电管理电路是这类产品设计的重要内容。镍氢电池与其它类型电池相比,具有比容量大(相当于镍镉电池的两倍),无污染、无记忆,重量轻,价格适中(只有锂电池的一半价格)等优点,在国内仪器仪表行业中越来越受到青睐。

1、镍氢电池充电系统设计的理论基础

镍氢电池采用贮氢合金,在充电时可以贮存大约数千倍其体积的氢气形成金属氢化物,将电能转换为化学能;在放电时又能将贮存的氢气释放出来,将化学能转换为电能。基本电化学反应为:

500)this.style.width=500;" border=0>

(M为贮氢合金,Hab为吸收的氢气)。

在电池充电后期和充电终了还伴随发生下列反应:

正极上:500)this.style.width=500;" border=0> ;

负极上:500)this.style.width=500;" border=0> 。

正极上析出氧气,负极上析出氢气[4]。这三个化学反应决定了对镍氢电池充电电路的要求如下:

1)电池充电终止电压:

电池充足电时,极板上的活性物质已经全部饱和,电池电压不再上升而是略有下降。此时,若继续大电流充电,将会大大影响电池的寿命,此时的电压称为充电终止电压,一般单节电池不超过1.6伏。充电终止电压与电池充电率、环境温度、电池生产工艺等因素有关。电压负增量控制方法是一种公认的比较先进的控制方法(-△V),电压从峰值下降5~10毫伏/节时应及时终止快速充电;最大电压控制方法可以作为辅助控制方法。

2)充电电流:

充电电流取决于电池容量C。现在新型镍氢电池可以达到1C以上的充电率,但充电电流过大会使电池内部压力升高较快,安全阀打开,电池漏液,引起安全问题[4]。在本设计中,充电电流取0.5C。

3)充电时间:

电池充电时间与充电电流的大小有关,充电电流取0.5C左右时,电池充满约需要2~3小时。

4)电池温度:

在电池充满电后会发生析氧和析氢反应,使电池内部压力增大,温度上升。当电池温度超过55℃或温升超过2℃/min时应及时终止快速充电。另外,如果环境温度低于5℃或高于40℃时不应启动快速充电。

目前,大多数充电电路仅采用上述的一个或两个参数进行控制,很难达到理想的控制要求。为此,本文设计了一种新型的柔性充电管理电路:通过对上述几个参数同时进行综合控制,可以更高效、更安全地完成充电管理过程。

2、镍氢电池充电管理电路的硬件设计

500)this.style.width=500;" border=0>

电池充电管理电路如图1所示,包括充电控制电路和充电状况检测电路。充电电路以ATmega8为核心,ATmega8是ATMEL公司2002年推出的一款新型AVR单片机,DIP28或TOFP/MLF32封装,8K字节FLASH,4通道(32引脚封装时为6通道)10位AD,2通道8位AD, 3个PWM输出通道,特别是定时器1控制的15脚和16脚,这两个PWM通道具有16种输出模式,在快速模式PWM输出频率可达100KHz以上,使ATmega8特别适用于电池充电管理系统。芯片内部集成了上电复位、欠压检测和看门狗电路,使用内部晶振(1M、2M、4M、8M,可以通过熔丝位选择,并带有频率校准功能),这些都极大地简化了外围电路的设计。

充电电路及充电过程:

ATmega8的15脚可以输出占空比可调的PWM脉冲信号控制NPN型三极管Q2的通断。启动15脚PWM功能即可对电池进行充电控制。电池充满时,停止PWM输出,15脚输出低电平,Q1截止,便可停止充电。

在一个PWM脉冲周期中,当Q2导通时,P型MOSFET管Q1的栅极(与R3下端相连)为低电位,Q1导通,外部电源经过Q1、电感L1、肖特基二极管D2、检测电阻R4给电池BT1充电;当Q2截止时,Q1的栅极与源极电位相等,Q1截止,外部电源停止充电。但是,由于电感L1上的电流不能突变,这时由D1、L1、D2、检测电阻R4 以及电池构成回路,由L1继续给电池充电。在下一个PWM脉冲周期,重复上述过程。

充电状况检测电路:

1) 电池端电压检测:通过精密电阻R9、R10分压获得电池端电压,将此信号接到ATmega8的23脚(AD0);

2) 电池温度检测:在电池组内内置一个具有负温度系数的热敏电阻RT1,通过测量RT1的端电压信号(ATmega8的24脚(AD1)),可以准确地测量到电池组的温度。为保证测量精度,回路中采用了精密稳压源TL431以产生精确的基准电压(5V)。此5V基准电压同时作为ATmega8芯片AD转换的参考电压接到ATmega8的21脚。

3) 充电电流检测:运算放大器U2与电阻R5、R6、R7、R8构成一个差动放大器,检测充电电流(ATmega8的25脚AD2)。充电电流过大时,应减小PWM的占空比;反之,应增大PWM的占空比,从而使充电电流维持在合适的范围内。

3、镍氢电池充电管理电路的软件设计

本系统利用电池电压、温升、充电时间以及电压变化量等参数来综合判断是否应该结束充电过程。软件按功能可分为PWM控制模块、计时模块以及电压检测、电流检测、温度检测模块等几部分。程序流程图见图2所示。

500)this.style.width=500;" border=0>

系统工作时,ATmega8不断检测电池组端电压。若此电压值低于1.25N伏时(N为电池节数),检测环境度,如果环境温度在5~40℃之内,则启动PWM开始充电。在充电过程中,CPU不断采集充电电流的大小,并将实测电流值与设定值相比较。若二者相差超过10%时,调整占空比,可使充电电流维持在设定值附近。另外,CPU还不断测量电池端电压、电池温度,并对充电时间进行计时。当这些参数满足下述的充电终止条件时,停止充电:当电池电压大于设定电压或电池电压出现5~10毫伏/分钟/节的负ΔV变化时;电池温度超过55℃,或出现0.5℃/min的温升时;充电时间大于180分钟(本系统采用0.5C充电),都应停止充电。

在电池长时间闲置或过放电情况下,在充电前期电压会出现起伏,形成伪-△V。通过设置延时定时器,在充电初始10分钟内不判断电池电压变化,可防止误判断终止充电。

本系统软件的核心部分为AD转换和PWM设置两个模块。下面给出这两部分的相应程序,编译环境为ICCAVR

AD初始化程序

Void adc_int (void)

{

DDRC=0X00;

//PORTC为输入口

PORTC=0X00;

ADCSRA=0X00;

//终止AD转换

ADMUX=adc_mux&0x0f;

//选择转换通道

ACSR= (1<<ACD);

//终止比较器功能

ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2);

//设定AD转换分频、AD中断允许、启动AD转换

}

AD转换中断函数

#pragma interrupt_handler adc_interrupt: 15

void adc_interrupt (void)

{

adc_result=ADC&0x3ff;

//读取转换数据

ADMUX=adc_mux&0x0f;

//启动选择通道

ADCSRA=(1<<ADSC);

//启动AD转换

}

PWM初始化程序

Void timer1_init (void)

{

DDRD=0X20;

//设定PWM引脚为输出脚

TCCR1B=0;

TCNT1=0X00;

//设定计数初值

OCR1A=0X80;

TCCR1A=(1<<WGM10)|(1<<COM1A1);

TCCR1B=(1<<WGM12)|(1<<CS10);

//启动PWM

}

4、结论

此充电电路经过实际调试,试验性能可靠,可很好地实现快速充电和电池保护等功能。而且简单实用。通过修改软件中相应的设定值,此电路不仅可以给不同节数的电池充电,也可以用来给铅酸、镍铬、锂离子等不同品种的电池充电。该电路具有很好的推广价值。若能进一步完善该电路,在充电过程中加入具有去极化功能的放电环节,将会提高电池的充电接收能力[5]。