




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课题名称:锂离子电池充电器小组成员:万鸿儒、鄂辰丰项目技术指标:(1)电池充电功能,完成基本的充电功能,能按电池的充电曲线,完成恒流/恒压充电(2) LED指示,电池正在充电,充电器的LED指示灯为红色;充电后,充电器的LED指示灯为绿色(3) 保护机制,当电池和充电器的工作温度超出设定范围,或者充电电压出现异常时,系统的红色LED指示灯闪烁,其间隔为0.5s。此外,对于过压和过流状态采取相应的保护措施,保证充电的正常运行(4) 异常处理,系统能在排除异常后,重新恢复充电通过锂离子电池充电器的设计,可以很好的理解51系列单片机EM78P458的I/O与A/D转换技术的综合使用方法,这主要体现在
2、以下5个方面(1) 锂离子电池充电器结构简洁,并且具备了单片机控制系统较完备的构成。通过充电器设计实例,清楚的知道如何构建一个基于单片机的控制系统,利用那些技术和实现机制完成核心电路和软件系统的设计(2) 锂离子电池充电器使用了单片机的I/O监控功能:利用I/O监控模块驱动系统指示灯:利用I/O端口技术采样充电电源电压和环境温度值;综合利用TL431芯片产生系统必须的精确基准电源(3) 锂离子电池充电器使用了单片机的A/D转换功能:利用A/D功能采样系统电源电压和环境温度值,利用A/D转换功能和PWM调制实现机制实现系统开关控制,了解A/D采样的基本实现技术,同时拓展该功能(4) 锂离子电池充
3、电器软件系统设计提供了关于恒流、恒压控制和环境温度监控的软件处理机制,掌握实用的单片机控制流程软件的编写方法(5) 锂离子电池充电器最能体现单片机端口处理功能的优势,并集中展示了单片监控、端口信号采样以及数模转换的集成和综合处理。锂离子电池充电器的设计主要依靠单片机I/O和A/D转换功能完成具体分工:首先是确定题目,由万鸿儒、鄂辰丰同学各自去图书馆查阅相关资料,共同讨论,最终统一了题目,第2步是整理相关资料,做成电子档,此过程主要由万鸿儒完成,鄂辰丰同学负责核对文档的正确性,并提出相关的修改意见。第3步是认真学习文档,并努力理解此项目的具体技术实现原理、过程,从中对所学知识有进一步认识,这是一
4、个相互学习、相互交流的过程。还有就是硬件的搭建和软件的调试,暂分工为万鸿儒同学负责硬件方面的工作,鄂辰丰负责软件的调试。系统设计框架与技术参数1. 系统设计框架:锂离子电池在充、放电使用中必须注意保护。用一个形象的肥皂泡沫做比喻,锂离子电池如同一堆肥皂泡沫,泡内储存的就是电能。充电时,气泡会随着充电时间的加长而不断增大,当超过其极限值时气泡就会破裂,此时即损坏了锂电晶型,造成永久性损坏;若过度放电,则会造成气泡塌陷、消失,这样下次充电时气泡也充不起来,导致锂电池失效。设计系统框架时,除了技术参数外,系统的可靠性和安全性也是至关重要的,为力保证充电不对电池造成永久性损坏,在设计中必须考虑保护措施
5、(包括过流保护、过压保护和温度保护)。另外,充电器充电过程包括了恒流工作阶段和恒压工作阶段,且系统必须保证恒流、恒压的稳定性。下图是系统的设计框架,包括电压/温度采样模块、开关控制模块、保护机制模块和充电模块 这4类模块的功能介绍如下:(1) 保护机制。该模块将系统的工作状态实时显示出来,并根据事先编写的软件响应监控信号。在实现时,该模块电路被分散在其他3个模块的实现电路中(2) 开关控制。该模块利用A/D采样检测充电恒流,在非法工作时关断系统电源(3) 充电功能模块。该模块的主要功能是产生精确的基准电压,完成电池充电,并实时采样系统状态(4) 温度/电压采样。该模块完成充电器电源电压和环境温
6、度的采样,并根据采样值决定系统的工作状态。“保护机制”实现对应的“系统指示灯电路”,“开关控制”实现对应的“开关控制电路”,“充电功能”模块实现对应的“精确基准电源产生电路”,“温度/电压采样”实现对应的“电源电压与环境温度采样”2. 锂离子电池充电原理 1.锂离子电池基本参数特性锂离子电池可以分成两大类:不可充电型和可充电型,其最大特点是比能量高。比能量指的是单位重量或单位体积能量,用Wh/kg或Wh/L表示,总的来说,锂离子电池具有如下参数特性: 高工作电压一般锂离子电池的放电电压为3.7V 高负载特性锂离子电池的最大连续放电电流可以达到2CmA 放电特性稳定即使在电池寿命接近终止时,光宇
7、锂离子电池仍保持着良好的放电稳定性 快速充电特性锂离子电池可接受的最大充电电流可达1CmA,而且恒流充电时间达到50分钟以上 长循环寿命重复使用次数多,循环充电特性好,可以重复5001000次充放电 2.锂离子电池放电特性 锂离子电池在使用中不可过充、过放,否则将损坏电池,使之报废。因此,电池上一般有保护元器件或保护电路以防止昂贵的电池损坏。正确使用锂离子电池对延长电池寿命是十分重要的。锂离子电池是目前应用最为广泛的锂电池,它根据不同的电子产品的要求可以做成扁平长方形、圆柱形、长方形及扣式,并且有由几个电池串联在一起组成的电池组。锂离子电池的额定电压为3.6V 锂离子电池对充电要求很高,必须保
8、证充电终止电压精度在1%之内。充电完成时的终止充电电压与电池阳极材料有关:阳极材料为石墨材料的电池为4.2V;阳极材料为焦炭材料的电池为4.1V。不同阳极材料的内阻也不同,焦炭阳极的内阻略大,齐放电曲线也略有差别,如下图所示。一般工程上称这些电池为4.1V锂离子电池及4.2V锂离子电池。现在使用的电池大部分是4.2V的,锂离子电池的终止放电电压为2.52.75V。低于终止放电电压继续放电称为过放,过放对电池会有损害 锂离子电池不适用作大电流放电,过大电流放电时会降低放电时间(由于电池内部会产生较高的温度而损耗能量)。因此电池厂家给出最大放电电流,在使用中应在小于最大放电电流的状态下工作。锂离子
9、电池对温度有一定的要求,厂家也给出了充电温度范围、放电温度范围及保存温度范围。锂离子电池对充电的要求是很高的,它要求精密的充电电路以保证充电的安全。终止充电电压精度允差为额定的±1%(例如,对4.2V的锂离子电池进行充电,其允许的误差为±0.042V),过压充电会造成锂离子电池永久性损坏。锂离子电池充电电流应以电池厂家的建议为准,并要备有限流电路以免发生过流(过热)。一般常用的充电率为0.25C1C(C是电池的容量,如C=800mAh,1C充电率表示充电电流为800mA)。在大电流充电时往往要检测电池温度,以防止过热损坏电池或发生爆炸。 3.锂离子电池充电特性锂离子电池易受
10、到过充电、深放电以及短路所造成的损害,其充电电压必须严格限制。 充电速率通常不超过1C,最低放电电压为2.73.0V,如再继续放电则会损坏电池。锂离子电池以恒流转恒压方式进行充电。采用1C恒流充电至4.1V(或4.2V)时,充电器应立即转入恒压充电,充电电流逐渐减小,当电池充足电后,进入涓流充电过程,如图5-4所示。为避免过充电或过放电,锂离子电池不仅在内部设有安全部分,充电器也必须采取安全保护措施,以监测锂离子电池的充放电状态。 锂离子电池充电应分为两个阶段。首先恒流充电,当接近终止电压时改为恒压充电。假设容量为800mAh的锂离子电池,其终止充电电压为4.2V。电池以800mA(充电率为1
11、C)横流充电,开始充电时电池电压以较大的斜率升压;当接近4.2V时,改为4.2V恒压充电,电流渐降,电压变化不大;当充电电流降为0.1C(约80mA)时,认为接近充满,可以终止充电(有的充电器到0.1C后启动定时器,过一定时间后结束充电)。锂离子电池在充电或放电过程中若发生过充、过放或过流时,会造成电池的损坏或降低使用寿命。 了解锂离子电池的充放电特性后,就可以结合锂离子电池的充电特性设计充电器的系统技术参数,并设定充电器的适用范围。 1.充电器技术参数的设定 本例根据图5-3和图5-4所示设定了技术参数:充电时间(即充电阶段划分)、充电电压/电流参数和系统充电曲线。(1) 充电曲线分析。由系
12、统的充电曲线可以看出,本系统分3个阶段进行,在图中用A、B、C标明。此外,充电曲线A阶段部分与图5-4所示的曲线有所不同。A阶段的充电过程是根据应用需要自定义的一个充电阶段,它是准备阶段。从充电曲线可以看出,A阶段的充电电流较小,充电电压从3V以线性方式增加,增幅稳定且快速。 这一阶段称为“预充电”过程,它用来检测电池是否正常。 (2) 系统参数设定。充电过程分为3个阶段:A为预充电阶段;B为快速充电阶段;C为涓流充电阶段。各个充电阶段的技术参数和充电时间程度均可通过充电曲线得到。下面将详细分析各充电阶段具体技术参数的设定。 A阶段: 预充电阶段 这是快速充电之前的阶段,检测电池是否正常工作。
13、充电至电压为3.8±0.05V时,充电器转到快速充电阶段,在此期间充电电流维持在80±30mA。如果充电器在60分钟内没有达到3.0V也将进入快速充电阶段。 B阶段: 快速充电阶段 本阶段充电电流维持在650±50mA。当有如下两个条件发生时,结束快速充电阶段:充电电流小于50±15mA而电池电压超过4.23V;电池电压大于3.9±0.1mA而充电时间大于4小时(包括预充电时间)。 C阶段: 涓流充电阶段 本阶段电池电压维持在4.2±0.03V,充电电流小于50±15mA。 在上述3各阶段中,A、B阶段是恒流充电,C阶段是恒
14、压充电。 (3) 充电器的适用范围由充电器的技术参数设定可以看出,它可以对大部分中小概率的锂离子电池充电,其充电电压限定为4.2V,最大电流为650mA。该充电器适用于移动电话电池类型。 2. 参数设定注意事项充电器采用恒流/恒压方式工作。首先进行恒流充电,充电至系统设定的充电电压后,转为恒压充电,充电电流不断下降。采用这种方式充电可以防止过充和过流。在各个充电阶段需要对电池的温度进行检测,电池或环境温度过高都会引起严重的后果。电池在0(±3)43(±3)温度范围可以正常充电,当超出这个温度的时候应该停止充电。5.2.4 系统技术方案1.单片机 单片机用作系统的主控单元,它
15、控制所有的输入输出,并根据A/D采样的结果做出充电状态的判断和指示。由于充电器要求I/O端口支持双向模式,且需要单片机内自带A/D转换功能和监控“看门狗”功能,因此,在这里选用了EM78P458型单片机,它具有如下特性: 工作电压范围: 2.2V6.0V。 工作温度范围: 080。 低功耗: 5V/4MHz工作条件下,电流小于1.5mA;3V/32kHz条件下,电流值为15A;休眠模式下,电流值为1A。 4KB×13位片内ROM;96字节片内寄存器(SDRAM)。 两个双向I/O端口:P5x和P6x。 8位实时定时/计数器(TCC),其信号源、触发沿可编程选择,溢出产生中断。 8位多
16、路A/D转换器,精度达13位。 两个脉冲宽度调制器(PWM),精度达10位。 6个中断源:TCC中断、输入引脚状态变化中断(从休眠模式中唤醒)、A/D转换结束中断、PWM周期匹配结束中断、比较器输出高电平中断和外部中断。 可编程自由运行看门狗定时器(WDT)。 8个I/O管脚可编程设置位上拉。 8个I/O管脚可编程设置位下拉。 8个I/O管脚可编程设置位漏极开路。 每个指令周期为两个时钟周期。 具有电压检测器,检测范围为2.0V±0.15V。如图5-6所示,EM78P458单片机有20个管脚,P5x和P6x端口作为A/D双向端口管脚,其具体的功能设定和寄存器描述可以查看单片机手册。需
17、要注意的是,由于该单片机自带A/D转换器,大大简化了系统的结构和电路元器件,其A/D转换器为8通道(即8位)A/D转换器,且通道1和通道5带增益放大,因此,P6x端口既为单片机的I/O端口,也为A/D转换器。 2.单片机外部扩展 选好单片机后,按照图5-7所示的外部电路连接单片机的外部扩展。系统只用了单片机的12个管脚。由单片机的外部连线可知,下列端口具有独立的功能,需要连接外部电源来实现。 管脚3:P57/CO,连接定义为I_AD,外部电路完成充电电流A/D转换。管脚4:P60/ADC1,连接定义为U_AD,外部电路完成电池电压A/D转换。管脚6:P62/ADC3,连接定义为T_AD,外部电
18、路完成系统环境温度采样。管脚7:P63/ADC4,连接定义为P_AD,外部电路完成系统电源电压A/D转换。管脚13:P51/PWM1,连接定义为PWM,外部电路为PWM调制电路,完成系统的开关控制。管脚14:P52/PWM2,连接定义为GREEN,外部电路控制绿色LED指示灯,显示系统工作状态。管脚15:P53/Vref,连接定义为Vref,外部电路提供系统充电恒流、恒压控制所需的基准电压。管脚19:P54/TCC,连接定义为RED,外部电路控制红色LED指示灯,显示系统工作状态。管脚17、18:连接晶振,产生4MHz的频率,该频率为系统的时钟周期。5.3 充电器硬件设计 包括充电器硬件设计以
19、及最终的电路板布线。系统整体电路按照实际电路功能可划分为系统指示灯电路、电源电压与环境温度采样电路、精确基准电压产生电路和开关控制电路 5.3.1 系统指示灯电路 系统指示灯有两个:红色LED和绿色LED 当电池处于充电状态时,充电器的红色指示灯亮,绿色指示灯熄灭;当电池充电基本完成,进入涓流状态时,充电器的绿色指示灯亮,红色指示灯熄灭;若出现异常状况,则红色指示灯闪烁,绿色指示灯熄灭。如表5-1所示,可将系统指示灯的工作状态进行简单的归纳 表5-1 系统指示灯说明绿色LED指示灯红色LED指示灯系统工作状态保持亮度熄灭涓流充电阶段,电池已基本充满,可取出使用保持亮度保持亮度系统工作异常,或者
20、电池不可充电熄灭保持亮度电池正在充电熄灭闪烁电池过热或者恒流/恒压控制失败如图5-8所示,LED直接连接至单片机I/O口,RES2电阻利用分压原理得到LED的工作电位差,并利用与LED串联的特点限制其工作电流,起过载保护的作用。5.3.2 电源电压与温度环境采样电路 如图5-9所示,该电路完成充电器电源电压与环境温度的采样。当电源适配器电压或环境温度超出设定范围时,系统应该报警提示并立即停止充电。图5-9中的电路配置了一个滑动变阻器,这只是原理符号,在实际工程中应配置为热敏电阻(提示:在许多工程实践中,经常会遇到测量温度、湿度、质量这些不能直接利用电路测量得到其数值的物理量。解决此类问题可以利
21、用相应的电子元器件,将测量它们得到的数值换成那些不可直接测量的物理量数值。在本例中,利用一个热敏电阻来测量环境的温度,在工作环境要求不严格的情况下,这种设计方案是可行的,同时也节约了不少成本)电路原理与器件功能描述如下:(1) Vref连接精确基准电源产生电路,为温度采样提供可靠的标准值(2) 连接Vref的10k电阻为分压电阻(3) 系统利用热敏电阻的压降计算得到温度值,利用T-AD连接至单片机的P62/ADC3管脚,再利用该管脚的A/D转换器向单片机输入温度采样值(4) 电压利用电路作左半部分的分压电路得到,利用T-AD连接至单片机的P62/ADC4管脚,再利用该管脚的A/D转换器向单片机
22、输入电压采样值(5) 利用分压电路取数据可使采样值处在A/D转换器的允许范围内(6) 电容102起滤波作用,防止采样点电压的波动5.3.3 精确基准电源产生转换电路如图5-10所示,该电路为单片机电源提供基准电源。系统使用了由德州仪器公司生产的TL431三端可调分流基准源,其基准电压为2.5V,可以根据外部的精密电阻网络得到2.536V之间任意的电压。1. TL431简介 德州仪器公司生产的TL431是一个具有良好热稳定性能的三端可调分流基准源,用两个电阻就可以在2.5V至36V的范围内任意设定其输出电压,该器件的典型动态阻抗为0.2,在很多应用中可以用它代替齐纳二极管,例如,数字电压表、运放
23、电路、可调压电源、开关电源等 该器件具有3个引脚(如图5-11所示):阴极(CATHODE)、阳极(ANODE)和参考端(REF)。TL431的具体功能如图5-12所示。其中,V1(ref)(2.5V)时,三极管才会有一个稳定的非饱和电流通过,而且随着REF电压的微小变化(小于±0.1V)。通过三极管的电流变化范围将是1100mA(说明:图5-12所示不是TL431的实际内部结构,不能简单地用这个组合来代替它。但如果再设计、分析应用TL431的电路时,这个模块图对开启思路、理解电路都是很有帮助的,本文的一些分析也将基于此模块展开)2. 恒压电路应用TL431内部含有一个2.5V的基准
24、电压,所以当REF端引入输出反馈时,器件可以通过从阴极到阳极很宽范围的分流,控制输出电压。如图5-13所示的电路,当R1和R2的阻值确定时,它们对VO的分压引入反馈,若VO增大,反馈量增大,TL431的分流也就增加,从而又导致VO下降。因此,这个深度的负反馈电路必然在V1(ref)等于基准电压处稳定。此时可以利用公式(5.1)计算得到VO:VO=(1+ R1/ R2)V1(ref) (5.1)选择不同的R1和R2可以得到2.536V范围内的任意电压输出。当R1=R2时,VO=5V。需要注意的是,在选择电阻时必须要满足TL431的工作条件:通过阴极的电流要大于1mA。5.3.4 开关控制电路 本
25、小结将分析系统的最后一个外部功能模块电路开关控制电路。如图5-14所示。1. A/D采样电路 图5-14右边电路是两个A/D采样子模块。一个用于采样电池的电压(U-AD标号):另一个用于采样充电电流(I-AD标号)。(1) 电路原理与器件功能描述。 A/D采样电路由以下器件组成。 R4为一个小阻值电阻,与锂离子电池连接 系统利用R4的升降值计算得到充电电流,利用I-AD连接至单片机的P60/ADC1管脚,再利用该管脚的A/D转换器向单片机输入充电电流采样值。 U-AD电压值实际为与之相连的1M电阻的压降值,连接至单片机的P61/ADC2管脚,再利用该管脚的A/D转换器向单片机输出充电电压采样值
26、。 电容102为滤波电容,防止采样点电压的波动(2) A/D采样工作原理充电电流的采样是利用一个0.25阻值的电阻,通过电流产生的压降进行的。这个形成压降的电阻不能很大,否者会形成过大的压降。在U-AD的电压入口处连接了阻值为1M的电阻,它主要起放电的作用:在实际测试中,发现电池拿走后其残留的电压比较大。不能检测到电池已被移出,因此利用这个电阻放电2. 开关控制电路如图5-14所示,系统利用两个三极管(Q1和Q2)做开关控制,对电流进行充电。(1) 电路原理与器件功能描述。开关控制电路主要利用了PWM调制技术,其实现电路包含如下器件: Q1为NPN三极管,其基极连接定义为PWM,连接至P51/
27、PWM1,作为充电开关信号。 Q2为PNP三极管,它响应Q1的动作,在电路层面上关断充电电流。 R2为Q1提供稳定的静态工作点 R3为Q1提供分压 最左端的104电容为滤波电容(2) 开关控制原理当NPN三极管处在高电平时,三极管导通:PNP三极管的基极接地。于是PNP三极管也导通,5V的电源电压对电池进行充电,相反,当NPN三极管的基极为低电平时,PNP三极管关断,停止充电。所以根据0.25电阻上的电流大小,控制三极管导通和关断时间,可以做到恒流控制:同理根据电池电压可以做到恒压控制。5.4充电器软件设计本节集中讲解系统的软件设计,主要集中在单片机功能流程的设计上,要确定主要系统充电阶段的转
28、换、保护机制的开启和充电各阶段的系统流程等。系统的软件设计是系统编程实现的基础,编程实现是对流程的汇编语言描述。5.4.1 系统软件总体设计思路充电器是一个实用的中、小型单片机案例,其软件设计建立在系统功能时序分析的基础上,下面分析充电器上电后将如何完成系统功能,并根据这个时序分析定出系统软件总体设计思路。充电器接上电源后,系统首先要检查是否有电池放入,准备充电,同时还必须检测电池是否可用。然后系统需连续数次检测各个A/D通道,进行电源电压,环境温度等数据的初始化,设定系统初始值。如果电池电压采样通道连续3次检测到电压值大于1.0V,则认为充电器已放入电池,且电池可用,开始充电。整个充电过程按
29、照图5-5所示的充电曲线分为3个阶段进行,每一个充电阶段的数据独立(初始值由系统设定),但它们的处理机制基本一致,对于这3个充电阶段,A、B两阶段必须做到恒流控制,C阶段必须对I/O口的数据做出判断,并根据判断向外部电路发出正确的动作指示。1. 恒流控制处理恒流控制的基本原理是脉宽控制,其实现主要有两种方式:定频调宽和定宽调频,本案例采用定宽调频的方式(1) 控制原理 理论上,假设定宽度为3mS,即如果用5V的电压对电池进行充电3mS,系统将即时检测充电电流。如图5-14所示,如果从0.25(R4)电阻上读到的电压值为0.2V,那么可以算出充电电流为0.2V/0.25=800mA。此充电电流比
30、系统设定的最高充电电流(650mA)要高出150mA,充电器需要停止一段时间t后重新开始充电,该停止时间t可由公式(5.2)计算得到:Icurrent×Tchg=Isys-set(t+Tchg) (5.2)其中,Icurrent为当前系统检测到的充电电流;Tchg为宽度时间;Isys-set为系统设定的最高充电电流。将各数值带入公式(5.2)中,则有800mA×3mS=650mA×(t+3)ms,得到停止时间t=0.69ms。(2) 具体实现由上面的分析可知,只要根据图5-14中阻值为0.25电阻上电压可能出现的最大值与最小值即可得到停止时间区间,将该区间进行采样
31、,制作一个停止时间表格,系统每对电池充电3mS时间后,检测充电电流,即检测0.25电阻上的电压,根据此电压值查表得到充电暂停时间长度值,充电器暂定相应时间,电池不充电。通过此方法能做到从宏观上的恒流控制。2. 恒压控制处理与恒流控制处理的原理相同,制作一张表格,通过查表得到充电暂定时间长度,作出恒压控制,其原理实现机制如下: 假设电池充电至4.2V后进入C阶段,则系统需要对4.2V做恒压控制 。实际调试中,0.25电阻上的电压很小,可以忽略不计,如果对电池充电3mS后,电池电压采样通道读出的电压是4.55V,那么可得到停止时间:4.55V×3mS=4.2V×(T+3)ms,
32、得到T=0.25ms。根据理论计算,事先做好停止时间表格,即可做到恒压控制。(提示,利用上述原理事先得到的表格要经过实际测试修正后,才能达到理想的效果。)3. 恒流、恒压控制实现充电器在充电期间,单片机每隔3ms做一次采样,轮流采集电源电压、电池温度、电池充电电压、充电电流和时间的计数,每检测一次后进行判断,系统采集的数值是否在正常的范围内。如果这些采集值超出设定范围,系统将报警指示,否则正常充电。5.4.2 系统主流程图5-15所示为系统主流程,它包括初始化函数、电池检测函数、预充电子程序、快速充电子程序和涓流充电子程序,该流程图给出了软件的执行时序。 按照系统主程序的时序设计,各函数的调用
33、机制为:(1) 单片机上电后,初始化寄存器。单片机上电后完成系统主程序的主函数将使用CALL指令调用初始化函数,初始化工作包括3个方面:定义全部寄存器和单片机接口。初始化片内寄存器和端口状态。系统监控系统复位并启动,中断复位并等待。初始化过程将清除上次充电的所有记录,同时启动系统的监控函数,并复位中断系统。通常这一过程十分迅速,一般会在用户放置电池前完成。(2)调用检测电池子程序,完成检测。检测电池的子程序将用当前的状态值覆盖先前无电池时采样的无效值,然后对取得的状态值判断此刻充电器放置的电池是否可用。一般来说,系统将连续做4次电源电压、电池电压、电池温度和充电电流的采样,将采样的状态值与系统
34、预设的正常参数进行比较;若4次比较的结果全部无误,则进入电池检测子程序;若4次比较的结果存在错误,则系统一直检测下去,直到连续4次比较的结果全部无误。(说明,如果充电器没能完成检测电池的子程序,也不能完全说明是系统设计的问题,因为,如果放置于充电器的电池不是预先设计的对象,充电器将拒绝为其充电,以免发生危险。)(3)确认充电器中存在电池后,再根据电池电压是否大于3V的条件,决定采用预充电还是快速充电。确认充电器内的电池可以进行充电,系统将进入电池检测子程序:如果程序检测到电池的电压大于1V,则认为充电器内有可用的充电电池;否则系统认为无电池或电池不可用,并退出函数,再重新开始执行检测电池的子程
35、序。这一过程依然用CALL指令来完成。 如果电池检测子程序确认充电器内放置了有效的电池,那么系统将做进一步的检测。检测当前的电压是否大于3V,如果电池电压大于3V,考虑电路采样和单片机端口的损耗,电池的实际电压很可能已达到快速充电的电压要求,因此,可以跳过预充阶段,直接进行快速充电。(3) 在相应的充电阶段,子程序内部保持循环,不断检测,直至相应阶段充电完毕,推出相应的子程序。充电子程序包括预充充电子程序,快速充电子程序和涓流充电子程序。可根据电池电压的值跳过预充充电子程序,直接进入快速充电子程序。当系统进入到充电子程序后,如果不跳过预充充电子程序,则其正常执行时序是:预充充电子程序快速充电子
36、程序涓流充电子程序。图5-15中各充电子程序模块均表明电池充好后退出。是否退出当前充电子程序,重新调用检测电池的子程序,由各充电子程序的内部CALL指令决定:如果充电正常,只退出该子程序,设立进入下一充电子程序;如果充电异常,将不进入下一充电子程序,重新调用检测电池的子程序。需要说明的是,检测电池子程序将检测充电器内是否有电池:若果没有电池则子程序保持内部循环,直至检测到有电池放入充电器内,才退出子程序。5.4.3 充电流程设计充电分A阶段(预充阶段)、B阶段(快速充电阶段)和C阶段(涓流充电阶段)3个阶段完成,虽然它们的名称和作用不同,但是对于单片机控制来说,它们的流程是一致的。这3个阶段的
37、程序流程如图5-16所示。 各充电阶段的子程序流程描述如下:(1) 进入充电流程后,子程序开始检测充电器中有无电池,置标志信号,如果没有电池则退出子程序(2) 随后系统I/O口的高电平使开关控制电路的三极管导通,5V电源电压直接为电池充电3ms,并采样电池充电电流;中间的流程定义为阶段1,它对电池充电3ms,并采样电池和环境温度;右边的流程定义为截断,它对电池充电3ms,采样电池充电电压。这3个充电阶段的执行顺序是固定的:阶段0阶段1阶段2阶段0。采样阶段的流程完全相同,可分解为6步: 根据系统预先设定的次数选择电池的充电电压,充电电流,对电池进行充电。延时1ms,即步骤(1)持续1ms。采样
38、电池状态值。延时2ms,即整个充电时间持续3ms。读取采样结果并保存,完成4次采样后计算平均值。修改采样阶段号,进入下一采样阶段。(3) 系统充电3ms后,暂停,并关断充电。(4) 进行查表,根据查表结果进入相应的延时。(5) 如果总的采样时间超过3s,系统将不查表延时,选择电压通道并进行处理。完成处理后将时间标志清零,进入采样数据分析阶段。如果系统充电3s超时,将采用如下处理步骤: 令充电电压为低电平,停止充电。 延时15ms,稳定电池状态。 选择电池电压的采样通道,即P61/ADC2管脚,开启充电。延时1ms,即充电持续1ms。采样电池电压值。延时2ms,即整个充电时间持续3ms。然后保存
39、最后读取的电压值,将其作为后续处理的电池采样状态值。清除3s超时标志,进行采样数据处理。(6) 判断电池电压是否小于1V:如果小于1V,则表明电池被移走,置相应标志位,程序结束;否则继续处理采样数据。(7) 判断电池电压是否大于4.4V:如果大于4.4V,则表明电池出现故障,置相应的标志位,开启LED指示,程序将回到BACK1处:否则继续处理采样数据。(8) 判断电池温度是否处于043之间:如果处于该数值范围,电池正常,继续处理采样数据;否则表明电池温度过高,置相应的标准位,开启LED指示,程序将回到BACK1处。(9) 判断电池电压是否等于4.2V:如果等于4.2V,则表明电池完成充电,程序
40、结束;否则继续处理采样数据。(10) 判断充电时间是否超时:如果超时,则表明电池完成充电,程序结束;否则回到BACK2处。5.5 方案的编程实现 完成了系统框架设计、电路设计和软件流程设计后,即可利用汇编语言来实现。1. 系统变量定义本案例使用到的变量很多,如图5-6所示,单片机的外部信号和相应的外部参数均需要在单片机内部存放,同时内部寄存器也需要定义。(1) 外部信号变量。 外部信号变量基本与图5-6所示中的I/O接口保持一致。 RED = 4 ;红色LED指示灯 GREEN = 2 ;绿色LED指示灯 CTRL = 1 ;控制信号 I_AD = 0X10 ;充电电流 U_AD = 0X11
41、 ;电源电压 T_AD = 0X12 ;环境温度 P_AD = 0X13 ;充电电压 FLAG = 0X14 ;标志信号(2) 内部状态标志变量。内部状态标志变量将根据外部信号的采样数据,通过逻辑判断或组合判断得到系统的动作指示标志。_60MFLAG = 1 ;延时标志 _180MFLAG = 2 ;延时标志FNOBATT = 3 ;无电池标志FTIME = 4 ;时间超出异常FABNORMALT = 5 ;温度异常 FABNORMALP = 6 ;电源异常 FABNORMALB = 7 ;电池异常 (3) 内部寄存器定义与A/D采样变量。这一部分包括了单片机内部寄存器的定义以及单片机I/O口
42、进行A/D采样所利用到的变量。每个状态的A/D采样次数为4次。 A_R =0x15 ;电阻变量 R3_R =0x16 ;开关电阻R3 B =0x17 ;寄存器 S =0x18 U_AD1 =0x19 ;电池电压采样寄存器 U_AD2 =0x1A U_AD3 =0x1B U_AD4 =0x1C T_AD1 =0x1D ;环境温度采用寄存器 T_AD2 =0x1E T_AD3 =0x1F T_AD4 =0x20 P_AD1 =0x21 ;充电电压采样寄存器 P_AD2 =0x22 P_AD3 =0x23 P_AD4 =0x24 R_ADL =0x25 ;A/D采样的电阻寄存器 R_ADH =0x2
43、6 C250 =0x27 C240 =0x28 PRE_TC =0x29 PAP_TC =0x2A CNT =0X2B ;系统计数/计时器 C1 =0X2C D_CNT =0x2D I_AD1 =0x2E ;充电电流采样寄存器 I_AD2 =0x2F I_AD3 =0x30 I_AD4 =0x31(4) 系统状态变量及其他在进入各充电阶段的子程序时,系统需要根据各种状态寄存器的值来判定下一步的动作,本节定义了这些状态寄存器。另外,本节代码还包括其他可用局部变量,多数用于进行比较或作为状态常量。 S_BOBATT = 0 ;无电池状态 S_PRE = 1 ;与充电阶段 S_RAP = 2 ;快速
44、充电阶段 S_FULL = 3 ;涓流充电阶段 S_ERRORE = 4 ;充电阶段出错 ;系统以4.5V为参考电压,计算下面对应的数值 _3V0 = 161 ;3V电压的参数值 _4V2 = 215 ;4.2V电压的参数值,以下类推 _4V4 = 236 ;4.4V参数值 _3V9 = 209 _0V2 = 10 _0V44 = 23 _0V14 = 7 _0V26 = 13 _2V4 = 129 _2V8 = 150 _5V4 = 242 _4V8 = 215 _2V0 = 107;环境温度参数化 _43C = 87 ;43参数值 _0C = 186 ;0参数值2. 初始化程序模块系统上电
45、后的第一个步骤是初始化单片机寄存器及系统变量,本节将详细讲述初始化汇编代码INIT: MOV A,217 MOV TCC,A CLRA MOV R3,A ;检测电池电压 BC R4,6 ;bank0:202F MOV R9,A ;通道0 MOV A,0B00000111 ;允许中断,预分频给TCC,1:256 CONTW MOV A,0B00001001 IOW IOC50 ;P50仅为输入端口,P53为Vref输入,其他设为输出 IOW IOC60 MOV A,0XFF IOW IOCB0;禁止内部下拉 IOW IOCC0 IOW IOCD0 MOV A,0B10000000 ;使能看门狗,P50做输入 IOW IOCE0 MOV A,0b00000001 ;TCC初始化 IOW IOC90 P53/Vref为参考电压;P60/1/23/4为A/D采样输入;倍频1:64 MOV A,0B00001110 IOW IOCA0 BS R9,5 ;选择SEGMENT1(通道1) ;选择PWM1/2分频,其中PWM1在放入电池的时候在使能 MOV A,0B00000000 IOW IOC51 CLRA IOW OC71 ;禁止矫正 BC R9,5 ;外部信号与内部寄存器初始化
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高龄工作协议书
- 华保险托管协议书
- 2025年个人实习工作总结模版
- 行政法学基础知识点试题与答案
- 防疫责任协议书
- 二手车购买协议书
- 航空救助协议书
- 驾驶陪练协议书
- 隰县离婚协议书
- 货物追加协议书
- 中国医院质量安全管理 第4-13部分:医疗管理住院患者健康教育 T∕CHAS 10-4-13-2020
- DB35_T 88-2022伐区调查设计技术规程
- 《航空专业英语》课件维修专业基础英语R1
- 【课件】第17课实验与多元——20世纪以来的西方美术课件高中美术人教版(2019)美术鉴赏
- 张沟煤矿打钻着火事故概述
- 孔子练精神聪明不忘开心方_医心方卷二十六引_金匮录_方剂加减变化汇总
- 欧宾电梯货梯电气原理图
- 政务服务顾客意见簿(竖)[2]
- Module-9-Unit-1-could-I-ask-if-youve-metioned-this-to-her
- NJB-2综合监测仪说明书
- 残魄点穴术(秘
评论
0/150
提交评论