以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告.docx
《以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告.docx》由会员分享,可在线阅读,更多相关《以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告.docx(45页珍藏版)》请在冰豆网上搜索。
以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告
以AT89S52单片机为核心的智能充电器设计与实现项目可行性研究报告
摘要:
随着移动电话用户数量的不断增长,相应的电池和电池充电器需求也将会有较大的增加。
电子技术的快速发展使得人们对高性能、小尺寸、重量轻的智能电池充电器的需求也越来越大。
目前,使用较多的是镍镉电池(Nicd)、镍氢电池(NiMH)和锂离子电池。
由于不同类型电池的充电特性不同,通常对不同类型,甚至不同容量等级和电压的电池使用不同充电器,实际使用中会带来诸多不便。
于是设计一种以AT89S52单片机为核心的智能充电器,较好地解决了上述电池的充电问题。
在设计上,选择了简洁、高效的系统硬件,包括单片机电路、充电控制电路、电压转换及光耦隔离电路。
实践证明,设计的充电器功耗低、成本低、系统工作稳定可靠,智能化程度高,具有推广价值。
关键词:
智能充电器;AT89S52单片机;硬件构成
前言
现在社会信息化的不断加快,人们对自己使用的各种家电设备、仪表以及工业生产中的数据采集与控制设备要求很高。
尤其随着手机在世界范围内的普及,手机电池充电器的使用越来越广泛的时候人们对高性能、小尺寸、重量轻的智能电池充电器的需求也越来越大,所以智能充电器有它的巨大发展空间。
所谓智能充电器是单片机参与处理和控制的充电器,能根据用户的需要自主选择充电方式,并且在充电过程中能对被充电电池进行保护从而防止过电压、电流和温度过高的一种智能化充电器。
该智能充电器具有检测锂离子电池的状态;自动切换充电模式以满足充电电池的充电需要;充电器短路保护功能;充电状态显示的功能。
在生活中更好的维护了充电电池,延长了它的使用寿命。
因此,研究智能充电器的设计及推广其应用,有着非常现实的意义。
·单片机模块:
实现充电器的智能化控制,比如自动断电、充电完成报警提示等。
·充电过程控制模块:
采用专用的电池充电芯片实现对充电过程的控制。
·充电电压提供模块:
采用电压转换芯片将外部+12V电压转换为需要的+5V电压。
该电压在送给充电控制模块之前还需经过一个光耦模块。
·C52程序:
单片机控制电池充电芯片实现充电过程的自动化,并根据充电的状态给出有关的输出指示。
本论文从锂离子电池技术特性、充电技术、充电器电路结构、充电器典型电路和电池保护等方面,多角度地阐述了充电技术发展和应用的智能化。
绪论
1.1课题研究的背景
社会信息化进程的加快对电力、信息系统的安全稳定运行提出了更高的要求。
而各种用电设备都离不开可靠的电源,如果在工作中间电源中断,人们的生产和生活都将受到不可估量的经济损失。
对于由交流供电的用电设备,为了避免出现上述不利情况,所以要设计一种电源系统,它能不间断地为人们的生产和生活提供以安全和操作为目的可靠的备用电源。
为此,以安全和操作为目的的备用电源设备上都使用可充电池。
电池是一种化学电源,是通过能量转换而获得电能的器件。
二次电池是可多次反复使用的电池,它又称为可充电池或蓄电池。
二次电池的工作原理:
当对二次电池充电时,电能转变为化学能,实现向负荷供电,伴随吸热过程。
普通充电器多采用大电流的快速充电法,在电池充满后如果不及时结束会使电池发烫,过度的充电也会严重损害电池的寿命。
一些低成本的充电器采用电压比较法,为了防止过充,一般充电到90%就停止大电流快充,接着采用小电流涓流补充充电,这样就使充电时间加长了。
好的充电器不但能在短时间内将电量充足,而且对锂电池起到一定维护作用,修复由于记忆造成的记忆效应。
于是设计出的智能充电器是采用单片机控制的,可以检测出电池充电饱和时发出的电压变化信号,比较精确的停止充电工作,通过单片机对充电芯片的控制实现充电过程的智能化,以缩短充电时间,延长电池使用寿命。
智能充电器还增加了充电电压的显示,让我们能看到电池的预充、快充、满充充电阶段,从而加强对电池的维护。
1.1.1课题研究的意义
此课题研究的对象主要是锂离子电池的充电原理和充电控制。
锂离子电池的充电设备需要解决的问题有:
·通过单片机的控制,简化外围电路的复杂性,增加自动化管理设置,减轻充电过程的劳动强度和劳动时间,从而使充电器具有更大的灵活性、更高的可靠性和成本低。
·改善充电控制不合理而造成过充、欠充等问题,提高电池的使用性能和使用寿命。
·可以进行充电前处理,包括电池充电状态的鉴定和预处理。
·需解决充电时间长、效率低等问题。
研究课题的意义:
·掌握锂离子电池的充放电方式和特点,从中找到最佳充电方式及电池管理途径。
·完善充电设备的适时处理功能和自诊断功能。
·实现充电器具备强大的功能扩展性,为智能充电器的功能升级提供平台。
1.2课题研究的主要工作
本课题主要研究锂离子电池的充放电方法,在此基础上进行硬件设计和软件设计,并通过调试结果对充电控制方法测试验证。
为了完成智能充电器的设计,我需做如下工作:
·了解锂离子电池的特点和在应用中存在的主要问题从而分析实现电池的充放电方法和智能充电器的实现方法,从而选择合适的充电电池芯片。
·进行硬件电路的设计,绘制充电电路原理图。
·进行软件设计,以C语言为开发工具,进行详细设计和编写程序代码。
·调试硬件和软件电路,验证整个设计。
2充电技术
2.12种电池的充电特性
2.1.1镍氢/镍镉电池充电模式
这2种镍类电池具有相似的充电特性曲线,因而可以用一样的充电算法。
这2种电池的主要充电控制参数为-ΔV和温度θ.
对镍氢/镍镉电池由预充电到标准充电转换的判据为:
①单节电池电压水平0.6~1V;②电池温度-5~0oC.
电池饱和充电的判据为:
①电池电压跌落或接近零增长–ΔV=6~15mV/节;②电池最高温度θmax>50℃;③电池温度上升率dθ/dt≥1.0℃/min。
由于温度的变化容易受环境影响,因而实际用于判别充电各阶段的变量主要为–ΔV、θmax,其中对–ΔV的检测需要有足够的A/D分辨率和较高的电流稳定度.-△V的测量与A/D分辨率、充电电流的稳定性与电池内阻之间有以下关系:
当电池内阻等于50Ω(接近饱和充电)时,充电电流=1200mA,电流漂移等于5%,单节电池的最高充电电压为1.58V,则此时电流漂移可能引起的电池电压变化为3mV。
2.1.2锂离子电池的特点及充电方式
锂离子电池的正极材料通常由锂的活性化合物组成,常见的正极材料主要成分为LiCo02,负极则是特殊分子结构的碳。
充电时,加在电池两级的电势迫使正极化合物释出锂离子,嵌入在负极分子排列呈片层结构的碳中。
放电时,锂离子则从片层结构的碳中析出,重新与正极的化合物结合。
于是锂离子的移动产生了电流。
重量方面:
锂离子电池为3.6V,锂离子电池的电压是镍氢、镍镉电池的3倍。
但锂离子电池因端电压为3.6V,在输出同电池的情况下,单个电池组合时数目可减少2/3从而使成型后的电池组重量和体积都减小。
自放电率:
镍镉电池为15%~30%,镍氢电池为25%~35%,锂离子电池为2%~5%。
镍氢电池的自放电率最大,而锂离子电池的自放电率最小。
记忆效率:
锂离子电池很少有镍镉电池的记忆效应,记忆效应的原理是结晶化,但在锂电池中几乎不会出现这种反应。
锂离子电池在几次充电放电后容量仍然会下降,主要的原因从分子层里来看,正负极材料本身的变化,正负极上容纳锂离子的空穴结构会逐渐塌陷,堵塞;从化学角度来看,是正负极材料活性钝化,出现副反应生成稳定的其他化合物。
在物理上还会出现正极材料逐渐剥落等情况,降低了电池中可以自由在充放电过程中移动的锂离子数目。
记忆效应一般认为是长期不正确的充电导致的,它可以使电池早衰,使电池无法进行有效的充电,出现一充就满、一放就完的现象。
严格遵循“充足放光”的原则,即在充电前最好将电池内残余的电量放光,充电时要一次充足,可防止电池出现记忆效应。
对于由于记忆效应而引起容量下降的电池,可以通过一次充足再一次性放光的方法反复数次,大部分电池都可以得到修复。
充电方式:
过度充电和过度放电,将对锂离子电池的正负极造成永久的损坏,从分子层面看,过度放电导致负极碳过度释放出锂离子而使得其片层结构出现塌陷,过度充电将把太多的锂离子硬塞进负极碳结构里去,而使得其中一些锂离子再也无法释放出来。
这就是锂离子电池为什么通常配有充放电的控制电路的原因。
锂离子电池以恒流转恒压方式进行充电。
采用1C充电速率充电至4.1V时,充电器应立即转入恒压充电,充电电流逐渐减小;当电池充足电后,进入涓流充电过程。
为避免过充电或过放电,锂离子电池不仅在内部设有安全机构,充电器也必须采取安全保护措施,以监测锂离子电池的充放电状态。
2.2智能充电器
在人们日常工作和生活中,充电器的使用越来越广泛。
从随身听到数码相机,从手机到笔记本电脑,几乎所有用到电池的电器设备都需要用到充电器。
充电器为人们的外出旅行和出差办公提供了极大的方便。
随着手机在世界范围内的普及使用,手机电池充电器的使用也越来越广泛。
所谓智能充电器是单片机参与处理和控制,能根据用户的需要自主选择充电方式,并且在充电过程中能对被充电电池进行保护从而防止过电压、电流和温度过高的一种智能化充电器。
本课题将通过一个典型实例介绍AT89S52单片机在实现手机电池充电器方面的应用。
此次设计所要实现的充电器是一种智能充电器,它在单片机的控制下,具有预充、充电保护、自动断电、电压显示和充电完成报警提示功能。
2.3设计的功能模块
2.3.1单片机模块
智能的实现需要利用单片机控制,经过分析后单片机芯片可以选择Atmel公司的AT89S52,通过中断控制光耦器件通电和断电。
2.3.2充电过程控制模块
锂离子电池一般都具有管理芯片和充电控制芯片。
其中管理芯片中有一系列的寄存器,用来存储电容容量、温度、ID、充电状态、放电次数等数值。
这些数值在使用中会逐渐变化。
充电控制芯片主要控制电池的充电过程。
锂离子电池的充电过程分为两个阶段,恒流快充阶段(电池指示灯呈黄色时)和恒压电流递减阶段(电池指示灯呈绿色闪烁)。
恒流快充阶段,电池电压逐步升高到电池的标准电压,随后在控制芯片下转入恒压阶段,电压不再升高以确保不会过充现象,电流则随着电池电量的上升逐步减弱到0,而最终完成充电。
电量统计芯片通过记录放电曲线(电压、电流、时间)可以抽样计算出电池的电量。
而锂离子电池在多次使用后,放电曲线是会改变的,如果芯片一直没有机会再次读出完整的一个放电曲线,其计算出来的电量也就是不准确的。
所以我们需要深充放来校准电池的芯片。
定时电容C和充电时间Tchg的关系式满足:
C=34.33×Tchg
最大充电电流Imax和限流电阻Rset的关系式满足:
Imax=1400/Rset
2.3.3充电电压提供模块
由于一般家用电压是+220V交流电压,需要设计一个电压转换电路将+220V交流电压转换成+5V直流电压。
首先用变压器将220V交流电压转换成7V交流电压,经过桥式整流变成直流电压,再利用电压转换芯片LM7805将7V直流电转换为5V直流电压。
2.3.4光耦模块
为了在充满电后能及时关断充电电源,则需要引入一个光耦模块芯片6N137。
6N137光耦合器是一款用于单通道的高速光耦合器,其内部由一个850nm波长AlGaAsLED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。
具有温度、电流和电压补偿功能,高的输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd),5mA的极小输入电流。
工作参数:
·最大输入电流,低电平:
250uA
·最大输入电流,高电平:
15mA
·最大允许低电平电压(输出高):
0.8v
·最大允许高电平电压:
Vcc
·最大电源电压、输出:
5.5V
·扇出(TTL负载):
8个(最多)
·工作温度范围:
-40°Cto+85°C
·典型应用:
高速数字开关,马达控制系统和A/D转换等
6N137光耦合器的内部结构、管脚如下图所示
图16N137光耦合器
6N137光耦合器的电源管脚旁应有—个0.1uF的去耦电容。
在选择电容类型时,应尽量选择高频特性好的电容器,如陶瓷电容或钽电容,并且尽量靠近6N137光耦合器的电源管脚;另外,输入使能管脚在芯片内部已有上拉电阻,无需再外接上拉电阻。
6N137光耦合器的引脚:
第6脚Vo输出电路属于集电极开路电路,必须上拉一个电阻;第2脚和第3脚之间是一个LED,必须串接一个限流电阻。
6N137光耦合器的真值表如下:
6N137光耦合器的真值
输入“+”
EN
OUTPUT
输入“+”
EN
OUTPUT
1
1
0
0
0
1
0
1
1
1
NC
0
1
0
1
0
NC
1
表16N137光耦合器的真值
2.3.5电压测试模块
该部分采用AD转换来实现充电电压的现实。
采用中断触发,基本原理是将一段时间内的输入模拟电压Ui和参考电压UR通过两次积分,变换成与输入电压平均值成正比的时间间隔,再变换成正比于输入模拟信号的数字量。
把模拟信号转换成数字信号,转换原理为:
其中,n为准换后的二进制位数,dn-1—d0为具体二进制位。
UR为参考电压,UA为显示电压。
3设计方案充电过程
3.1预充
在安装好电池之后,接通输入直流电源,当充电其检测到电池时将定时器复位,从而进入预充过程,在此期间充电器以快充电流的10%给电池充电,使电压、温度恢复到正常状体,预充电时间由外接电容C9确定,如果在预充时间内电池电压达到2.5V,且电池温度正常,则进入快充过程;如果超过预充时间后,电池电压低于2.5V,则认为电池不可充电,充电器显示电池故障,由单片机发出故障指令,LED指示灯闪烁。
3.2快充
快充就是以恒定电流对电池充电,恒流充电时,电池的电压缓慢上升,一旦电池电压达到所设定的终止电压时,恒流充电终止,充电电流快速递减,充电进入满充过程。
3.3满充
在满充过程中,充电电流逐渐递减,直到充电速率降到设置值以下,或满充超时时,转入顶端截止充电,顶端截止充电时,充电器以极小的充电电流为电池补充能量,由于充电器在检测电池电压是否达到终止电压时有充电电流通过电池电阻,尽管在满充和顶端截至充电过程中充电电流逐渐下降,减小了电池内阻和其它串联电阻对电池端电压的影响,但串联在充电回路中的电阻形成的压降仍然对电池终止电压的检测有影响,一般情况下,满充和顶端截止充电可以延长电池5%~10%的使用时间。
3.4断电
当电池充满后,MAX1898芯片的2脚/CHG发送的脉冲电平会由低变高,这将会被单片机检测到,引起单片机的中断,在中断中,如果判断出充电完毕,则单片机将通过P2.O口控制光耦切断L7805向MAX1898供电,从而保证芯片和电池的安全,同时也减小功耗。
3.5报警
当电池充满后,MAX1898芯片的2引脚/CHG发送。
LED灯会闪烁。
但是,为了安全起见,单片机在检测到充满状态的脉冲后,不仅会自动切断MAX1898芯片的供电,而且会通过蜂鸣器报警,提醒用户及时取出电池。
4锂离子电池充电器硬件设计
4.1单片机电路
单片机控制设计,电路如下图:
图2单片机控制电路
电路说明如下:
·P3.1脚控制发出报警声提示。
·P3.0脚输出控制光耦器件,在需要的时候可以及时关断充电电源。
·外部中断0由充电芯片MAX1898的充电状态输出信号经过反向后触发。
4.1.1AT89S52
图3AT89S52
AT89S52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89S52单片机在电子行业中有着广泛的应用。
主要功能特性:
·兼容MCS51指令系统
·8kB可反复擦写(大于1000次)FlashROM
·32个双向I/O口
·256x8bit内部RAM
·3个16位可编程定时/计数器中断
·时钟频率0-24MHz
·2个串行中断,可编程UART串行通道
·2个外部中断源,共8个中断源
·2个读写中断口线,3级加密位
·低功耗空闲和掉电模式,软件设置睡眠和唤醒功能
·有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口,如下表2所示:
管脚
备选功能
P3.0/RXD
(串行输入口)
P3.1/TXD
(串行输出口)
P3.2/INT0
(外部中断0)
P3.3/INT1
(外部中断1)
P3.4T0
(记时器0外部输入)
P3.5T1
(记时器1外部输入)
P3.6/WR
(外部数据存储器写选通)
P3.7/RD
(外部数据存储器读选通)
表2P3口
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
4.2充电部分
该部分为设计的主核心部分,电路图如下:
图4智能充电器的主核心电路
4.3充电电压转换,实现电路模块如下:
图6充电电压转换电路
首先用变压器将220V交流电压转换成7V交流电,经过桥式整流变成直流电,再利用电压转换芯片LM7805将7V直流电压转换为5V直流电压。
4.4光耦控制部分,实现电路如下:
图76N137光耦控制电路
充电电压显示,该部分其实就是一个AD转换,原理图如下:
图8
5锂离子电池充电器软件设计
5.1程序功能
单片机AT89S2052和LM7805的智能电池充电器的程序需要完成以下的功能:
·通过CHG信号引起INT0外中断。
·在两次中断中使用T0计数,判断是否充电完毕。
·如果充电完毕,则控制P1.2和P1.3引脚,输出低电平。
5.2程序流程图
智能充电器的程序流程图简介:
外部中断0设为边沿触发;
中断
第一个下降沿
T0开始计数
第二次下降沿
停止T0计数
读取T0计数器
中断返回
图9等待外部信号输入
图10外部中断程序
图11定时程序
5.3程序代码及说明
#include
#include//lcd12864相关控制
#include
#include
sbitCTRL_UP=P2^0;
sbitCTRL_DOWN=P2^1;
sbitADCOE=P2^6;
sbitADCSTART=P2^7;
sbitADCALE=P2^5;
sbitADCA=P2^4;
sbitADCB=P2^3;
sbitPOWERKK=P1^4;
#defineADCDATEP0
sbitKEY1=P3^7;
sbitKEY2=P3^5;
sbitKEY3=P3^6;
voidInitSys();//初始化系统
voidInitInt();//初始化外部中断
voidInitTimer();//初始化定时器,串口中断
voidSendSerialData();//启动并发送一组串口数据
voidStartADC();//选择通道n,开始转换
voidShowAllTime();//显示完整的时间
unsignedcharg_myPar[15],g_CurSend;
//g_t10,g_t11,g_t20,g_t21,g_t30,g_t31,g_n,g_U0,g_U1p,g_U1f,g_U2,g_U3,g_Th,g_Tm,g_Ts;参数顺序
bitbSerialSending;
unsignedcharg_time[6];
unsignedcharg_CurIn;
unsignedcharcodeg_adda[]={0,1,1,0,1};
unsignedcharcodeg_addb[]={1,0,0,0,1};
unsignedcharcodeg_ctrlu[]={1,1,1,0,0};
unsignedcharcodeg_ctrld[]={0,1,0,1,1};
unsignedcharg_tt10,g_tt11,g_tt20,g_tt21,g_tt30,g_tt31;
unsignedcharCutState;
bitCurTR0,Curctrlu,Curctrld;
floatSqrtDuty;
unsignedcharg_Percent;
voidmain