锂电池管理系统软件设计_第1页
锂电池管理系统软件设计_第2页
锂电池管理系统软件设计_第3页
锂电池管理系统软件设计_第4页
锂电池管理系统软件设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

锂电池管理系统软件设计

Software

Design

of

ManagementSystem

of

TheLithium

Battery

锂电池管理系统软件设计[摘要]本文所设计系统以AT89C51单片机为控制核心,以18B20温度检测芯片及TLC549数模转换模块,专业的锂电池充电芯片和LED显示模块及报警模块构成了一种新型的智能锂电池的充电器,该智能充电器能很好的实现以下几个功能:实时显示充电量的多少,过温保护,温度过高的报警,过流过压保护。本文主要是研究了温度检测,数模转换,LED显示及报警电路的软件设计。[关键词]温度检测;充电器;数模转换;锂电池

Software

Design

of

ManagementSystem

of

the

Lithium

BatteryAbstract:Thisdesignofthisarticlethesystemtakethe89C51single-chipmicrocomputerasthecontrollingcore,thiskindofbatterychargerofanewintelligentlithiumbatterycontainsthe18B20temperatureexaminationchip,theTLC549digital-analogconversionmodule,thespecializedlithiumbatterychargechip,theLEDrealisticmoduleandthewarningmodule.Thisintelligentbatterychargercanrealizethefollowingseveralfunctionssmoothly:howmuchchargequantitycanbedisplayedreallytime,excessivelywarmprotection,hyperpyrexiawarning,overflowovervoltageprotection.Thisarticlemainlyresearchedthesoftwaredesignoftemperatureexamination,theD/Aconversion,LEDdisplayandalarmcircuit.Keywords:TemperatureExamination;BatteryCharger;Digital-analogConversion;LithiumBattery目录1引言 11.1课题的背景及意义 11.2锂电池的发展阶段及发展趋势 11.3锂电池管理系统的整体设计 32温度检测模块的软件设计 42.1温度检测转换 42.2DS1820测量温度 42.3存储器操作命令 72.4温度检测流程图 93充电电压检测电路软件设计 103.1电压检测电路 103.2A/D时序 103.3A/D转换软件设计 114数码显示模块和报警模块的软件设计 124.1数码显示模块软件设计 124.1.1数码管驱动模块 124.1.274LS47译码器原理 124.1.3七段数码管显示流程图 134.3报警电路软件设计 14结束语 15参考文献 15附录 16致谢 211引言1.1课题的背景及意义锂离子电池充电管理芯片的发展反映了当今信息时代锂离子电池的广泛应用。近年来,随着科学技术的不断进步与发展,越来越多的便携式电子产品如移动电话、笔记本电脑、个人数字助理(PDA)、摄录像机等逐渐普及,为人们的日常工作和生活带来便利。由于这些产品均朝向无线化、可携带化方向发展,其关键性零组件——电源,也往轻、薄、短、小的目标迈进,团此对于体积小、重量轻、能量密度高的二次电池需求相当迫切。小型二次电池包括镍镉电池、镍氢电池及锂电池。在防止镉污染的环保需求下,镍镉电池慢慢被取代已成趋势。镍氢电池虽无环保问题,但是能量密度低,高温特性差及少许记忆效应等缺点,在3C产品应用上,己逐渐被锂离子电池所取代。锂电池具有工作电压高(3.7Volt)、能量密度大(175Wh/Kg),重量轻、寿命长及环保性佳等优点,目前已大量应用于可携带式电子产品上,包括笔记型计算机、PDA、移动电话、摄录像机、数字相机、迷你光驱、掌上型终端机及游戏机等,未来更可作为电动工具、电动自行车、电动机车的动力来源,其未来需求及发展前景是相当看好的。总的来说,锂离子电池具有以下优点。

(1)工作电压高:通常单节锂离子电池的电压为3.7V,单体电池即可为3V的逻辑电路供电。对于要求较高供电电压的电子设备,电池组所需串联电池数也可大大减少。(2)体积小、重量轻、比能量高:通常锂离子电池的比能量可达镍镉电池的2倍以上,与同容量镍氢电池相比,体积可减少30%,重量可降低50%,有利于便携式电子设备小型轻量化。(3)寿命长:锂离子电池采用碳负极,在充放电过程中,碳负极不会生成金属锂,从而可以避免电池因内部金属锂短路而损坏。目前,锂离子电池的寿命可达1200次以上,远远高于各类电池。(4)安全快速充电:锂离子电池与金属锂电池不同,它的负极用特殊的碳电极代替金属锂电极,因此允许快速充电。在特定情况下可在短时间内充足电,而且安全性能大大提高。本文所设计系统以AT89C51单片机为核心,可实现电池的过流过压保护,过温保护。能实时显示充电量的多少,同时带有LED灯指示,充满电后能自动提示。1.2锂电池的发展阶段及发展趋势锂电池(LithiumBattery,简写成LB)分为锂一次电池(又称锂原电池,PrimaryLB)与锂二次电池(又称锂可充电电池,RechargeableLB)。锂原电池通常以金属锂或者锂合金为负极,用MnO2,SOCl2,(CF)n等材料为正极。锂二次电池研发分为金属锂二次电池、锂离子电池与锂聚合物电池三个阶段。(1)锂电池概念与锂原电池发展(1960-1970)1960-1970年代的石油危机迫使人们去寻找新的替代能源,同时军事、航空、医药等领域也对电源提出新的要求。当时的电池已不能满足高能量密度电源的需要。由于在所有金属中锂比重很小(M=6.94g/mol,ρ=0.53g/cm3)、电极电势极低(-3.04V相对标准氢电极),它是能量密度很大的金属,锂电池体系理论上能获得最大的能量密度,因此它顺理成章地进入了电池设计者的视野。与其他碱金属相比较,锂金属在室温下与水反应速度比较慢,但要让锂金属应用在电池体系中,“非水电解质”的引入是关键的一步。(2)锂金属二次电池(1972-1984)锂原电池的成功激起了二次电池的研究热潮。除Exxon等零星几家公司继续氟化碳的理论问题研究外,学术界的目光都集中在“如何使该电池反应变得可逆”这个问题上,锂二次电池的研究正式拉开了序幕。当锂原电池由于其高能量密度迅速被应用到如手表、计算器以及可植入医学仪器等领域的时候,众多无机物与碱金属的反应显示出很好的可逆性。这些后来被确定为具有层状结构的化合物的发现,对锂二次电池的发展起到极为关键的作用。事实上,嵌入化合物化学、固体材料化学、固体离子学的发展,为锂二次电池正极材料的选择带来解决方案,从而使锂二次电池的研发迈出了决定性一步。(3)锂离子电池(1980-1990)鉴于各种改良方案不奏效,锂金属二次电池研究停滞不前,研究人员选择了颠覆性方案。第一种方案是抛弃锂金属,选择另一种嵌入化合物代替锂。这种概念的电池被形象地称为“摇椅式电池”(RockingChairBattery,简称RCB)。将这一概念产品化,花了足足十年的时间,最早到达成功彼岸的是索尼公司,他们把这项技术命名为“Li-ion”(锂离子技术)。(4)锂聚合物电池(1978-1999)除了抛弃金属锂电极的第一种方案之外,研发人员还做出了另一种选择,那就是抛弃液体电解质的第二种方案,选择离子导电聚合物电解质取代液体电解质。聚合物电解质同时还兼有液态锂离子电池中隔膜的作用。按照锂电池中应用的不同,它大致可以划分成两种类型:(1)固体聚合物电解质,简称SPEs;(2)凝胶聚合物电解质,简称GPEs。(5)展望从1958年开始,经过了30多年的研发,终于迎来了锂离子二次电池的诞生。未来,锂电池将会朝着低成本、高能量、大功率、长寿命、微型化的方向发展。在这个过程中,除了制造工艺等的技术创新,最根本的还在于电池设计与电池材料的革新。电池中每一部件的技术突破都会带来电池性能的飞跃。1.3锂电池管理系统的整体设计锂电池管理的整体设计如图1所示,包含了锂电池充电模块,温度检测模块,模数转换模块,数码显示模块,报警模块和单片机处理模块。其中锂电池充电模块是采用市面上专用的锂电池充电芯片,而A/D转换模块则是采用片型小,采样速度快,功耗低,价格便宜,控制简单的TLC549芯片,主要用来采集锂电池的充电量的多少,并把这个模拟量转化为数字量,然后送入AT89C51单片机进行处理,温度检测模块采用18B20芯片,该芯片具有转换速度快、测量精度高、多点检测、测量范围宽和不需外部电源等优点。主要是用来检测锂电池充电模块充电时的温度,然后送入处理器处理。设计的核心器件是AT89C51单片机,处理A/D转换模块和温度检测模块送过来的数据,同时,驱动LED灯显示A/D转换模块测得的锂电池充电量。数码显示部分则是用两个数码管,用来显示0~99,分为100份,表示充电量占所需充电的百分比。而蜂鸣器则是当充电完毕后报警所用。图1锂电池管理系统硬件设计框图图2锂电池管理的软件设计流程图本设计主要包括A/D转换软件设计,温度检测软件设计,数码显示和报警软件设计部分,上电复位之后分为温度采集和电量采集两部分,温度检测部分:当温度高于设定值时,发出报警信号。不然则继续检测。A/D转换部分:先是电量采集,然后进过ADC转换,送入单片机进行处理。报警部分是利用蜂鸣器,当温度高达一定程度时单片发出指令,蜂鸣器报警。电量显示则利用两个七段数码管,实时显示电量采集到得电量。其整体流程图如图2所示:2温度检测模块的软件设计2.1温度检测转换温度检测模块主要是要在锂电池充电时完成对电池的温度检测,同时把检测到得温度值转换成二进制数送入单片机,当检测到得温度值大于一定值的时候,单片机会发出报警信号。本设计用专用温度检测芯片DS1820作为本模块的检测芯片,DS1820具有以下特性,能很好的适应本设计的要求。(1)独特的单线接口,只需1个接口引脚即可通信(2)多点(multidrop)能力使分布式温度检测应用得以简化(3)不需要外部元件(4)可以数据线供电(5)不需备份电源(6)测量范围从-55℃至+125℃,增量值为0.5℃。等效的华氏温度范围是-67℉至257℉,增量值为0.9℉。(7)以9位数字值方式读出温度(8)在1秒(典型值)内把温度变换为数字(9)用户可定义的,非易失性的温度告警设置(10)告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)(11)应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统2.2DS1820测量温度DS1820通过使用在板(on-board)温度测量专利技术来测量温度。DS1820通过门开通期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决定。计数器予置对应于-55℃的基数,如果在门开通期结束前计数器达到零,那么温度寄存器也被予置到-55℃的数值-将增量,指示温度高于同时,计数器用钭率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的。时钟再次使计数器值至它达到零。如果门开通时间仍未结束,那么此过程再次重复。钭率累加器用于补偿振荡器温度特性的非线性,以产生高分辨率的温度测量。通过改变温度每升高一度,计数器必须经历的计数个数来实行补偿。因此,为了获得所需的分辨率,计数器的数值以及在给定温度处每一摄氏度的计数个数(钭率累加器的值)二者都必须知道。此计算在DS1820内部完成以提供0.5℃的分辨率。温度读数以16位,符号扩展的二进制补码读数形式提供。表1说明输出数据对测量温度的关系。数据在单线接口上串行发送。DS1820可以以0.5℃的增量值,在0.5℃至+125℃的范围内测量温度。对于应用华氏温度的场合,必须使用查找表或变换系数。注意,在DS1820中,温度是以1/2℃LSB(最低有效位)形式表示时,产生以下如图3所示的9位格式:图3符号扩展位最高有效(符号)位被复制到存储器内两字节的温度寄存器中较高MSB的所有位,这种“符号扩展”产生了如表1所示的16位温度读数。以下的过程可以获得较高的分辨率。首先,读温度,并从读得的值截去0.5℃位(最低有效位)。这个值便是TEMP-READ。然后可以读留在计数器内的值。此值是门开通期停止之后计数剩余TEMPRATURE(温度)=TEMP_READ-0.25+[(COUNT_PER_C-COUNT_REMAIN)/(COUNT_PER_C)](COUNT_REMAIN)。所需的最后一个数值是在该温度处每一摄氏度的计数个数(COUNT_PER_C)。于是,用户可以使用下式计算实际温度:表1温度/数据关系温度数字输出/(二进制)安息字输出(十六进制)+125000000001111101000FAh+2500000000001100100032h+1/200000000000000010001h+000000000000000000000h-1/21111111111111111FFFFh-251111111111001110FFCEh-1251111111110010010FF92h(1)CRC检验DS1820有一存贮在64位ROM的最高有效字节内的8位CRC。总线上的主机可以根据64位ROM的前56位计算机CRC的值并把它与存贮在DS1820内的值进行比较以决定ROM的数据是否已被主机正确地接收,CRC的等效多项式函数为:CRC=X8+X5+X4+1。DS1820也利用与上述相同的多项式函数产生一个8位CRC值并把此值提供给总线的主机以确认数据字节的传送。在使用CRC来确认数据传送的每一种情况中,总线主机必须使用上面给出的多项式函数计算CRC的值并把计算所得的值或者与存贮在DS1820的64位ROM部分中的8位CRC值(ROM读数),或者与DS1820中计算得到的8位CRC值(在读暂存存贮器中时,它作为第九个字节被读出)进行比较。CRC值的比较和是否继续操作都由总线主机来决定。当存贮在DS1820内或由DS1820计算得到的CRC值与总线主机产生的值不相符合时,在DS1820内没有电路来阻止命令序列的继续执行。移位寄存器的所有位被初始化为零。然后从产品系列号编码的最低有效位开始,每次移入移位。当产品系列编码的8位移入以后,接着移入序列号。在序列号的第48位进入之后,移位寄存器便包含了CRC值。移入CRC的8位应该使移位寄存器返回至全零。(2)存贮器的读写DS1820的存贮器如图所示那样被组织。存贮器由一个高速暂存(便笺式)RAM和一个非易失性,电可擦除(E2)RAM组成,后者存贮高温度和低温度和触发器TH和TL。暂存存贮器有助于在单线通信时确保数据的完整性。数据首先写入暂存存贮器,在那里它可以被读回。当数据被校验之后,复制暂存存贮器的命令把数据传送到非易失性(E2)RAM。这一过程确保了更改存贮器时数据的完整性。暂存存贮器是按8位字节存储器来组织的。头两个字节包含测得温度信息。第三和第四个字节是TH和TL的易失性拷贝,在每一次上电复位时被刷新。接着的两个字节没有使用,但是在读回时,它们呈现为逻辑全1。第七和第八个字节是计数寄存器,它们可用于获得较高的温度分辨率。其存贮器映像图如图4所示。图4DS1820存贮器映像图还有第九个字节,它可用readscratchpad(读暂存存贮器)命令读出。该字节包含一个循环冗余校验(CRC)字节,它是前面所有8个字节的CRC值。2.3存储器操作命令存储器读写命令如表2所示:表2DS1820命令集指令说明约定代码发出约定代码后单总线的操作注温度变换命令温度变换启动温度变换44h读温度“忙“状态1存储器命令读暂存存储器从暂存存储器读字节BEh<读9字节数据>写暂存存储器写字节至暂存存储器地址2和3处(TH和TL温度触发器)4Eh<数据至地址2和地址3的2个字节>复制暂存存储器把暂存存储器复制入非异性存储器(仅地址2和地址3)43h<读复制状态>2重新调出E2把贮存在非易失性存储器内的数值重新调入暂存存储器(温度触发器)E3h<读温度“忙”状态读电源发DS1820电源方式的信号至主机B4h<读电源状态>a温度变换需要2秒钟。在接收到温度变换命令之后,如果器件未从VDD引脚取得电源,那么DS1820的I/O引线必须至少保持2秒的高电平以提供变换过程所需的电源。这样,在温度变换命令发出之后,至少在此期间内单线总线上不允许发生任何其他的动作。b在接收到复制暂存存储器的命令以后,如果期间没有从VDD引脚取得电源,那么DS1820的I/O引脚必须至少维持10ms的高电平,以便提供复制过程中所需的电源,这样,在复制暂存存储命令发出之后,至少在这一期间之内单线总线上不允许发生任何其他的动作。此命令写至DS1820的暂存存储器,以地址2开始。接着写的两个字节将被保存在暂存存储器地址2和3之间中。发出一个复位便可字任何处终止写操作。读暂存存储器(ResdScratchpad)[BEh]此命令读暂存存储器的内容。读开始于字节0,并继续经过暂存存储器,直至第九个字节(字节8,CRC)被读出为止。如果不是所有位置均可读,那么主机可以再任何时候发出一复位以中止读操作。复制暂存存储器(CopyScratchpad)[48h]此命令把暂存存储器复制入DS1820的E2存储器,把温度触发器字节存贮入非易失性存储器。如果总线主机在此命令之后发出读时间片,那么只要DS1820正忙于把暂存存储器复制入E2,它就会在总线上输出“0”;当复制过程完成之后,它将返回“1”。如果由寄生电源供电,总线主机在发出此命令之后必须能立即强制上拉至少10ms。温度变换(ConvertT)[44h]此命令开始温度变换。不需要另外的数据。温度变换将被执行,接着DS1820便保持在空闲状态。如果总线主机在此命令之后发出读时间片,那么只要DS1820正忙于进行温度变换,它将在总线上输出“0”;当温度转换完成时,它便返回“1”。如果由寄生电源供电,那么总线主机在发出此命令之后必须立即强制上拉至少2秒。重新调出E2(RecallE2)[B8h]此命令把贮存在E2中温度触发器的值重新调至暂存存储器,这种重新调出的操作在对DS1820上电时也自动发生,因此只要器件一接电,暂存存储器内就有有效的数据可供使用。在此命令发出之后,对于发出的第一个读数据时间片,器件都将输出其忙的标志“0”=忙,“1”=准备就绪。读电源(ReadPowerSupply)[B4h]对于在此命令送至DS1820之后发出的第一读出数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源供电,“1”=外部电源供电。(3)读/写时间片通过使用时间片(timeslots)来读出和写入DS1820的数据,时间片用于处理数据位和指定进行何种操作的命令字。a写时间片(writetimeslots)当主机把数据线从高逻辑电平拉至低逻辑电平时,产生写时间片。有两种类型的写时间片:写1时间片和写0时间片。所有时间片必须有最短为60微秒的持续期,在各写周期之间必须有最短为1微秒的恢复时间。在I/O线由高电平变为低电平之后,DS1820在15us至60us的窗口之间对I/O线采样。如果线为高电平,写1就发生。如果线为低电平,便发生写0。对于主机产生些1时间片的情况,数据线必须先被拉直逻辑低电平,然后就被释放,使数据线在写时间片开始之后的15微秒之内拉至高电平。对于主机产生写0时间片的情况,数据线必须被拉至逻辑低电平且至少保持低电平60us。b读时间片当从DS1820读数据时,主机产生读时间片。当主机把数据线从逻辑高电平拉至低电平时,产生读时间片。数据线必须保持在低逻辑电平至少1微秒;来自DS1820的数据在读时间片下降沿之后15微秒有效。因此,为了读出从读时间片开始算起15微秒的状态主机必须停止把I/O引脚驱动至低电平。在读时间片结束时,I/O引脚进过外部的上拉电阻拉回至高电平。所有读时间片的最短持续期限为60微秒,各个读时间片之间必须有最短为1微秒的恢复时间。2.4温度检测流程图温度检测部分主要是利用DS1820采集锂电池的充电时的温度。具体流程图如图5所示,首先检测DS1820是否存在,如果存在则继续检测锂电池的温度,读取温度值,如果不存在则返回,继续查找DS1820是否存在。图5温度检测流程图3充电电压检测电路软件设计3.1电压检测电路本模块的是要实现对锂电池的充电电压的采集,同时转换成数字量,送入单片机进行处理,本设计采用美国德州仪器公司生产的8位串行A/D转换芯片-TLC549,该芯片可与通用微处理器、控制器通过I/OCLOCK、/CS、DATAOUT三条口线进行串行接口。具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17us,TLC549允许的最高转换速率为40000次/s,总失调误差最大为±0.5LSB,典型功耗值为6mW,采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+-VREF-≥1V,可用于较小信号的采样。3.2A/D时序TLC548、TLC549均有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无需特殊的速度或相位匹配。其工作时序如图6所示。图6工作时序图当/CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。这种/CS控制作用允许在同时使用多片TLC548、TLC549时,共用I/OCLOCK,以减少多路(片)A/D并用时的I/O控制端口。一组通常的控制时序为:(1)将/CS置低。内部电路在测得/CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上。(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入。(3)接下来的3个I/OCLOCK的周期的下降沿将移出第6、7、8(D2、D1、D)个转换位。(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。第8个I/OCLOCK后,/CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果/CS为低时I/OCLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步,若/CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。在36个内部系统时钟周期结束之前,实施步骤(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行转换结果。若要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样,却在第8个I/OCLOCK的下降沿开始保存。3.3A/D转换软件设计TLC548、TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也可与51系列通用单片机连接使用。与51系列单片机采样程序框图如图7所示。图7采样程序流程图实际应用程序清单如下:初始化:SETBP1.2;CLRP1.0;MOVR0,#00H;A/D过程:A/DP:CLRP1.2NOP;NXT:SETBP1.0MOVC,P1.1RLCACLRP1.0INCR0CJNER0,#8,NXTMOVRO,#00SETBP1.2MOV-DTSVRM,A;DTSVRM:DATASAVERAM.RETTLC549片型小,采样速度快,功耗低,价格便宜,控制简单,适用于低功耗的袖珍仪器上的单路A/D或多路并联采样。4数码显示模块和报警模块的软件设计4.1数码显示模块软件设计4.1.1数码管驱动模块74LS47是BCD-7段数码管译码器/驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它解码,可以直接把数字转换为数码管的显示数字,从而简化了程序,节约了单片机的I/O开销。4.1.274LS47译码器原理译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表3列出了74LS47的真值表,表示出了它与数码管之间的关系。(1)LT(-):试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT(-)=0时,无论输入A3,A2,A1,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。(2)BI(-):灭灯输入,是为控制多位数码显示的灭灯所设置的。BI(-)=0时。不论LT(-)和输入A3,A2,A1,A0为何种状态,译码器输出均为高电平,使共阳极7段数码管熄灭。(3)RBI(-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3=A2=A1=A0=0时,本应显示0,但是在RBI(--)=0作用下,使译码器输出全1。其结果和加入灭灯信号的结果一样,将0熄灭。(4)RBO(-):灭零输出,它和灭灯输入BI(-)共用一端,两者配合使用,可以实现多位数码显示的灭零控制。表3<74LS47功能表>输入输出显示数字符号LTRBIA3A2A1A0BIRBOabcdefg1100001000000101X00011100111111X00101001001021X00111000011031X01001100110041X01011010010051X01101110000061X01111000111171X10001000000081X1001100011009XXXXXX01111111熄灭10000001111111熄灭0XXXXX1000000084.1.3七段数码管显示流程图数码显示部分主要是利用七段数码管来显示TLC549所测得的电池充电量的百分比,经过单片机的处理,在七段数码管上显示出来,用两个数码管来显示,分别为00-99,表示已充电量占所需充电量的百分比,其流程图如图8所示,具体程序如附录。图8七段数码管显示流程图4.3报警电路软件设计此模块实现的功能是当电池充电时,电池温度超过一定值的时候,系统会延迟一段时间再次检测,当这次检测与上次检测都显示温度高于一定值的时候,系统才会发出报警信号,驱动蜂鸣器报警,提醒人们电池现在的温度很高。监控程序流程图如图9所示。具体软件程序见附录。图9报警电路流程图结束语本文针对锂离子电池组在便携设备中的日益广泛应用,及锂离子电池组管理系统的现状与应用问题,开发设计了一种安全可靠、经济适用的三节锂离子电池组智能管理系统。尽管锂离子电池问世只有十多年的时间,但己经普遍应用于各种便携式电子设备中,如笔记本计算机、摄像机、掌上电脑和智能电话等。随着信息化社会的不断发展,锂离子电池将会在通信、汽车电子、仪器仪表、航空和海洋探索等各个领域得到更深层次的开发应用。因此研究锂离子电池的特点,掌握其应用方法,对扩展其在电子设备中的应用,有着重要而实际的意义。文中详细阐述了本课题设计过程中使用的技术基础和要点,通过学习和研究,确定了本系统中使用的具体算法和实现方式。在此基础之上,综合考虑系统实际应用需求,提出了电池管理系统的总体设计方案,并从硬件与软件两方面进行了设计实现。时代的进步,科技的发展,使得越来越多的电子产品出现在人们的生活当中。随着这些电子产品的日益普及,其对化学电源提出了更高更新的要求:体积小、质量轻、能量大、安全性好、无污染。锂离子电池作为本世纪90年代新发展起来的绿色能源,也是我国能源领域重点支持的高新技术产业,以其高可逆容量、高电压、高循环性能和高能量密度等优异性能而备受世人青睐,成为这些电子产品的理想电源,并得到广泛应用。本系统由TLC549数模转换器,DS1820数字温度计,AT89C51单片机和7段数码管,报警器构成。初步验证了采样电路、充电电路及控制电路的正常工作,单片机系统完成了对模拟信号的采集与转换,按照软件流程设计,基本实现系统主要功能。但由于受实验条件、设备及时间的限制,尚不能对系统所有功能进行完整而全面的验证。因此,在接下来的时间里,仍需继续努力,不断优化系统软硬件设计,以期取得更大的研究成果。参考文献[1]潘靖.锂电池智能管理系统学位论文.浙江大学.2004.7[2]周志敏,周纪海,纪爱华.便携式电子设备电源设计与应用.第1版.北京二人民邮电出版社2007.[3]王国华,王鸿麟,羊彦,周小军.便携电子设备电源管理技术.第1版.西安:西安电子科技大学出版社.2004.[4]沙占友.新型单片开关电源的设计与应用.第1版.北京电子工业出版社.2001.[5]周志敏,周纪海,纪爱华.充电器电路设计与应用.第1版.人民邮电出版社.2005.[6]刘霞,邹彦艳,金梅,李玉春.锂电池电量的动态预测.大庆石油学院学报.2004.[7]郭炳馄,徐徽,王先友,肖立新.锂离子电池.第1版.中南大学出版社.2002[8]马潮.AVR单片机嵌入式系统原理与应用实践四.第1版.北京航空航天大学出版社.2007.[9]习耿德根,宋建国,马潮,叶勇建.AVR高速嵌入式单片机原理与应用.第1版.北京航空航天大学出版社.2001.[10]鸿麟等.智能快速充电器设计与制作.科学出版社.1998.[11]罗光毅.蓄电池智能管理系统.浙江大学硕士学位论文.2003.[12]CaoXi-wu,ChengYa-ming,LuoLi-hui.Adesignofchargingforlithium-ionbatteryofambulatorymedicalinstruments[M].ChineseJournalofMedicalPhysics.2003.1[13]MAXIM.Switch-Mode,liner,andPulseChargingTechniquesforLi+BatteryinMobilePhoneandPDAs.MAXIMApplicationNote913[M].Dec27.2001附录(1)A/D转换模块软件程序#DEFINEADCDATARll#DEFINECounterR12P2INEQU00028H;//P20UT-EQU00029H;//P2口输出寄存器P2DIR-EQU0002AH;//P2口方向寄存器WDTCTL-EQU00120H;//看门狗定时控制器WDTHOLDEQU00080H;//看门狗保持位WDTPWEQUOSAOOH;//看门狗写入控制字CSEQUOOlH;//芯片片选CLKEQU002H;//芯片时钟DOEQU008H;//数据输出ORGOFOOOh;//编程起始地址RESETMOV.W#0300H,SP;//初始化X112X堆栈STOPWDTMOV.W#WDTPW+WDTHOLD,&WDTCTL;//关闭看门狗定时器SETUPP2MOV.B#CS,&P20UT;///CS设置,P2.X初始化BIS.B#CS+CLK,&P2DIR;///CS和CLK输出MAINLOOPCALL#MEAS549;//调用Meas549子程序jmpMainloop;//重复调用Meas549子程序MWAS-549;//采样TLC549的数据,数据移入ADCData(Rl1),二计数器(R12)记录移位的位数MOV.W#B,COUNTER;//8位数据的位数CLR.WADCDATA;//清除数据缓冲区BIC.B#CS,&P20UT;///CS复位,使能ADCADC-OOPBIT.B#DO,&P2IN;//(4)DO移入c(进位)BIS.B#CLK,&P20UT;//(4)时钟变高电平BIC.B#CLK,&P20UT;//(4)时钟变低电平RLC.WADCDATA;//(1)C移入ADCDataDEC.WCOUNTER;//8位全部移入否?JNZADC-OOP;//(2)如果没有,调用ADC少oopBIS.B#CS,&P20UT;///CS设置,关闭ADCRET;//调出子程序ORGOFFFEh;DWRESET;//MSP430复位向量END(2)DS1820程序TEMPER_LEQU36HTEMPER_HEQU35HTEMPER_NUMEQU60HFLAG1BIT00HDQBITP3.3AAA:

MOVSP,#70HLCALLGET_TEMPERLCALLTEMPER_COVLJMPAAANOP读出转换后的温度值GET_TEMPER:

SETBDQ;BCD:

LCALLINIT_1820

JBFLAG1,S22

LJMPBCD;S22:

LCALLDELAY1

MOVA,#0CCH;

MOVA,#44H;

LCALLWRITE_1820

NOP

LCALLDELAY

LCALLDELAYCBA:

LCALLINIT_1820

JBFLAG1,ABC

LJMPCBAABC:

LCALLDELAY1

MOVA,#0CCH;

LCALLWRITE_1820

MOVA,#0BEH;

LCALLWRITE_1820

LCALLREAD_18200;READ_1820

RET读DS18B20的程序,从DS18B20中读出一个字节的数据READ_1820:

MOVR2,#8RE1:

CLRC

SETBDQ

NOP

NOP

CLRDQ

NOP

NOP

NOP

SETBDQ

MOVR3,#7DJNZR3,$MOVC,DQMOVR3,#23DJNZR3,$RRCADJNZR2,RE1RET写DS18B20的程序WRITE_1820:

MOVR2,#8

CLRCWR1:

CLRDQ

MOVR3,#6

DJNZR3,$

RRCA

MOVDQ,C

MOVR3,#23

DJNZR3,$

SETBDQ

NOP

DJNZR2,WR1

SETBDQ

RET读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_18200:

MOVR4,#2;

MOVR1,#36H;RE00:

MOVR2,#8RE01:

CLRC

SETBDQ

NOP

NOP

CLRDQ

NOP

NOP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论