产品类别
联系我们
bob鲍勃体育下载
联系电话:15062200231
Email:yin_zhiping@qdsy-sensor.cn
基于单片机锂离子电池的电量检测系统模块设计doc
来源:bob鲍勃体育下载    发布时间:2023-11-14 14:19:27

  南 昌 工 程 学 院 毕 业 设 计 (论 文) 机械与电气工程学院 系(院) 电气工程及其自动化 专业 毕业设计(论文)题目 基于单片机的锂离子电池的电量检测系统模块设计 完成日期 2013 年 5 月 20 日 基于单片机的锂离子电池的电量检测系统模块设计 Lithium-ion battery detection system design based on MCU 总计 毕业设计(论文) 34 页 表 格 7 个 插 图 15 幅 摘 要 锂离子电池与其他种类的电池相比有着诸多优势,慢慢的变成了我们日常生活中必不可少的一部分。相信在使用锂离子电池的过程中,我们常会考虑还剩多少电量的问题,但是又找不到好的电量检测方法,针对该要求,本文设计了一种基于单片机的锂离子电池电量检测系统,该检测系统可以满足我们日常生活中对锂离子电池电量检测的需求,以全面掌握锂离子电池的电量状态。 本文主要叙述了基于单片机的锂离子电池电量检测系统的研究和设计,该系统主要由模拟量采集、锂离子电池检测模块、单片机模块、以及LED驱动显示电量等相应的部分组成,介绍了锂离子电池的特点、电池电量检测原理、系统的结构及性能,重点介绍了该系统的软硬件设计等。 考虑到检测系统的复杂程度、精确性、可靠性等各个方面,本文介绍的设计方案能够满足我们对锂离子电池电量检测的要求。 关键字:锂离子电池 BQ2040 电池检测 单片机 LED显示 Abstract Compared with other types of batteries, the lithium-ion battery have many advantages, becoming an indispensable part of our daily lives. I believe that in the process of using lithium-ion battery, we often consider the question of how much power is left, but they can not find a good power detection method. for the requirements, we design a lithium-ion battery detection system based on MCU, the detection system can meet the demand for lithium-ion battery detection in our daily lives , in order to fully grasp the charge status of the lithium-ion battery. This paper describes the research and design of lithium-ion battery detection system based on MCU The system consists of a Analog acquisition module, battery detection module, MCU module and LED drive power display modules. the article describes the characteristics of the lithium-ion battery, the battery detection principle, structure and performance of the system,, focusing on the system hardware and software design. Taking into account the complexity of the detection system, accuracy, reliability, and other aspects, the article describes the design can meet the requirements of our lithium-ion battery detection. Key words:Lithium-ion battery BQ2040 Battery detection MCU LED display 目录 摘 要 I Abstract II 第一章 绪论 1 1.1 本课题研究的目的及意义 1 1.2 本课题研究内容 1 1.3 锂离子电池的放电及温度特性 2 1.4 锂离子电池电量检测系统的发展方向 3 第二章 系统总体结构设计 4 2.1 系统总体结构框图 4 2.2 单片机的选择 5 2.2.1 W78E365A40PL引脚说明 5 2.2.2 W78E365特性介绍 6 2.3 电池电量检测芯片BQ2040 7 2.3.1 BQ2040 引脚说明 7 2.3.2 BQ2040的检测原理 8 2.4 LED驱动控制芯片TM1629 9 2.4.1 TM1629引脚说明 9 2.4.2 TM1629特性介绍 10 2.5 数据传输存储芯片24C64 11 2.5.1 24C64概述 11 2.5.2 24C64引脚说明 11 2.5.3 24C64特性介绍 12 2.6 时钟芯片DS1302 12 2.6.1 DS1302概述 12 2.6.2 DS1302引脚说明 12 第三章 硬件系统设计 14 3.1 单片机与时钟电路部分 14 3.1.1 W78E365概述 14 3.1.2 电路图设计 14 3.2 BQ2040部分 15 3.2.1 BQ2040概述 15 3.2.2 电路图设计 16 3.3 TM1629驱动控制LED显示部分 16 3.3.1 TM1629概述 16 3.3.2 LED数码管 16 3.3.3 电路图设计 17 第四章 软件系统设计 18 4.1 程序设计流程 18 4.1.1 初始化 18 4.1.2 主程序流程图 19 4.1.3 A/D转换与中断服务 20 4.2 BQ2040总线 致 谢 26 附 录 27 第一章 绪论 1.1 本课题研究的目的及意义 锂离子电池自问世以来,到现在已经发展是我们每个人众多生活必需品当中的一部分,是如今人们在日常生活中使用极其广泛的一种电池。我国通讯、电力电子等相关行业的飞速发展,使人们对锂离子电池的利用率和维护工作的重视程度不断提高,锂离子电池电量检测的市场需求随之越来越大。然而现在的实际情况却是由于国内目前的一些检测设备的检测的新方法不精确等原因,使其不能完全满足我们对锂离子电池的电量检测的需求,同时国外的同类检测设备虽然性能较好,但是价格太高,不适合我们日常检测使用。微处理器技术的发展与电池的电量检测方法的不断改善,为提高锂离子电池的电量检测系统的性能和降低其制造成本提供了可能。针对该要求,本文设计了一种基于单片机的锂离子电池的电量检测系统,该检测系统的设计对全面掌握锂离子电池的电量状态,提高其利用率具有现实意义。本设计的研究成果如果能够得到大家的一致认同,以致今后被广泛应用于我们的日常生活当中,比如应用于生活中常用的或常见的便携式电子产品领域,这必将提高人们的日常生活质量,并且还能起到提高锂离子电池利用率的作用,从另一方面看,这也是从某种程度上响应了国家“节能减排”政策。 1.2 本课题研究内容 该课题是设计一个锂离子电池电量检测系统,研究对象为符合国标GB/T 18287-2000的锂离子电池,其主要参数有:标称电压3.7V,标称容量1050mAH,充电电压4.2V。在做毕业设计的这段时间里,自己通过互联网查询、图书馆书籍资料搜索等多种途径,对该课题的研究内容进行了充分的理解与学习,使我对锂离子电池的电量检测原理,以及一些基于单片机的C程序编写等内容,都有了进一步的了解与掌握。 本课题研究如何设计一个满足我们日常生活要求的锂离子电池电量检测系统,要求适用于日常使用,必须控制成本,并且需要满足精度的要求。本文的设计思路是利用单片机及一些市场上常见的功能芯片,经过综合所有应考虑的重要因素后,最终确定了该检测系统里的一些重要器件类型,其中单片机部分就选用W78E系列中的W78E365A40PL,锂离子电池的电量检测部分就选用流行于目前市场上并且较专业的电池电量检测芯片BQ2040,输出部分决定采用TM1629驱动控制LED数码输出显示。TM1629是一款专业用于驱动控制LED数码输出显示的芯片,已经被广泛应用于目前的市场中,其次,输出采用数码显示,易于用户读取所需要的锂离子电池的电量信息,更加人性化。综上,最终设计出基于W78E365A40PL,利用电池电量检测芯片BQ2040,并且数码输出显示我们所需数据的锂离子电池电量检测系统,该系统由模拟量参数采集部分、电量检测部分、中央处理控制部分(单片机)以及LED驱动显示等相应模块组成,前两部分可由BQ2040完成。至此,该基于单片机的锂离子电池电量检测系统的整体框架便已明了。 本文重点介绍了该锂离子电池电量检测系统的硬件设计和软件设计。硬件设计的主要职责就是将系统分割成的各个功能部分组合成一个合理的可行性方案;软件设计则负责根据系统相关的功能要求,进行模块的编程等,最后用Protel等相关软件画出原理图,并利用Proteus仿真,对检测结果的准确性进行测试。 1.3 锂离子电池的放电及温度特性 放电特性 本文必须先对锂离子电池的放电特性进行简单说明,因为如果要检测锂离子电池的电量,对锂离子电池进行放电检测是检测过程中必须经过的一道程序,大部分我们所需要的参数都是在对锂离子电池进行放电过程中得到的,但是对锂离子电池进行放电测试时,其放电力度必须要得到精确的控制,锂离子电池对过放电相当的敏感,一旦放电电压或放电电流超过了本身的承受范围,将会导致锂离子电池自身快速升温,影响锂离子电池的使用寿命及使用性能。 温度特性 虽然在检测过程中需要控制锂离子电池的温度在一定的范围之内,因为不适合的温度,将导致锂离子电池内部生成许多影响检测结果的无用化合物,这是锂离子电池内部化学反应的结果,而且温度影响着锂离子的迁移速度,但是日常生活中的环境温度不会超过锂离子电池正常使用的温度范围,在进行锂离子电池电量检测的过程中,我们不用对锂离子电池所在环境温度进行严格控制。不可以将锂离子电池置于温度过高或过低的环境中存储或使用,不然严重影响锂离子电池的使用寿命及使用性能。 另外附带一句,如果我们要存储锂离子电池时,必须将温度范围控制在(-15一+55)℃,如果是使用锂离子电池或对其进行放电测试,最好将温度范围控制在(-35一+75)℃。 1.4 锂离子电池电量检测系统的发展方向 人性化设计是任何产品能否面向市场并取得成功的决定因素之一。需要为用户提供直观易懂方便操作的界面,锂离子电池电量检测系统的发展方向应从以下几个方面考虑: 人机互动。在用户进行操作使用的过程中,系统会根据用户的操作反馈显示出诸多的相关提示信息,用户使用起来简单,提升该系统的用户体验。 系统的内部结构须采用插板式形式。这样就可以打消用户担心产品不易维修的顾虑,对于自己有相关维修经验及能力的用户,也提供了让用户维修的机会,解决了与维修相关的一连串问题。 相关功能的延伸。善于挖掘、开发出锂离子电池电量检测系统应具备的功能,使产品具备更多有实用价值的相关功能,以适应不同用户对锂离子电池电量检测要求,进一步完善用户体验。 当然,在锂离子电池的使用过程中,还存在诸多的实际性问题,比如说老化,诸多其他不确定性因素也会对检测结果有所影响。未来在开发锂离子电池电量检测系统时,必须全面考虑会对检测过程中或者检测结果造成多多少少影响的因素。这样才能使该锂离子电池电量检测系统一直发展下去,随着时间的推移而不被淘汰。 第二章 系统总体结构设计 2.1 系统总体结构框图 该系统总体结构可以划分为几个重要部分:锂离子电池模拟量参数采集部分、电量检测部分、中央处理控制部分(单片机)和2-1 系统总体结构框图 2.2 单片机的选择 2.2.1 W78E365A40PL引脚说明 在能够很好的满足锂离子电池的电量检测系统相关功能的前提下,如何选择一款合适的单片机是关键。本设计采用了W78E系列中的W78E365A40PL,其引脚如下图所示 图2-2 W78E365A40PL引脚 表2.1 W78E365A40PL引脚说明 引脚符号 引脚名称 引脚描述 EA 外部访问使能端 接低电平时,只读取外部程序存储器中的内容;接高电平时,先读取片内存储器,若地址超出,自动读取片外程序存储器中的内容。 PSEN 程序存储使能端 片外程序存储器读选通信号 ALE 地址锁存使能端 CPU访问外部ROM或RAM时,输出低八位地址锁存信号。 RST 复位端 高电平复位 XTAL1 晶体振荡器输入端 由一个外部时钟驱动 续表2.1 引脚符号 引脚名称 引脚描述 XTAL2 晶体振荡器输出端 XTAL2是XTAL1的反相端 VSS 接地 接地 VDD 电源 接电源工作电压 P0.0-P0.7 端口0 功能与标准8052相同 P1.0-P1.7 端口1 功能与标准的8052相同 P2.0-P2.7 端口2 带有内部上拉电路的双向I/O口,扩展外部存储器时,作为高八位地址总线 分时复用功能的双向I/O口 2.2.2 W78E365特性介绍 电气特性: 表2.2 W78E365电气特性 参数 符号 最小值 最大值 单位 直流电源电压 VDD?VSS -0.3 +6.0 V 输入电压 VIN VSS-0.3 VDD+0.3 V 工作温度 TA 0 70 ℃ 贮存温度 TST -55 +150 ℃ 注释:使用过程中若长时间超出最大额定值,将会对器件的使用寿命、使用性能、使用可靠性等多方面均造成严重损害。 (2)功能特性: 全静态设计的CMOS 8位微处理器 64KB带ISP功能的Flash EPROM 4KB辅助Flash EPROM用于存储装载程序 4个8位双向I/O口,一个附加4位I/O口 3个16位定时器 一个增强型全双工串行口 看门狗定时器 8个中断源,2级中断能力 电源管理带空闲模式和掉电模式 代码保护 2.3 电池的电量检测芯片BQ2040 2.3.1 BQ2040引脚说明 BQ2040引脚分布如下图所示: 图2-3 BQ2040引脚分布 表2.3 BQ2040引脚说明 引脚符号 引脚名称 引脚描述 VCC 电源电压输入端 电源电压输入 ESCL 时钟存储端 与外部存储器间进行传输 ESDA 地址数据存储端 双向传输 LED1~LFD4 指示灯1-4显示端 LED数码输出显示 VSS 逻辑地端 接地 SR 电阻器检测输入端 接锂离子电池负极和检测电阻 续表2.3 引脚符号 引脚名称 引脚描述 DISP 显示控制输入端 接高电平时LED显示无效; 接低电平时LED显示有效。 SB 第二电池输入端 监测锂离子电池的充电参数 PSTAT 数据保护输入端 锂离子电池保护 SMBD SM数据总线,即数据总线连接端 地址和数据的双向传输 SMBC SM时钟总线,即时钟总线连接端 双向传输,锁定数据传输 REF 基准电压,即参考电压端 为场效应管输出提供参考电压 VOUT 供电输出端 为外围电路提供电压 2.3.2 BQ2040的检测原理 BQ2040的电量检测原理我们也需要做简单的了解,BQ2040内置了温度传感器,它通过内置的温度传感器和内部计数器来估算被测锂离子电池的放电程度,放电的同时还可以根据温度需要进行温度补偿,并且能够通过锂离子电池的放电周期,校准锂离子电池的实际容量,外接内部写有初始化程序的EEPROM,负责控制电池的管理工作,串口和外部EEPROM可以用来编程。 在日常生活中,使用锂离子电池是一般都不需要进行温度保护,因为日常情况下,锂离子电池工作所在环境温度不会超过其工作温度范围之外,除非需要该锂离子电池一直处于长期的持续的工作状态,这时候应该采取适当的温度保护措施。但是BQ2040是一款流行与目前市场上相当专业的电池的电量检测芯片,BQ2040对被测锂离子电池进行电量检测的同时,会检测锂离子电池的温度情况,因为BQ2040内置了温度传感器,可以进行过热保护等控制措施,不需要外接热敏电阻,如果检测到温度过低,这时候BQ2040还可以进行温度补偿,不需要外接谐振器等相关器件,进一步减少了器件,降低了设计成本。 2.4 LED驱动控制芯片TM1629 2.4.1 TM1629引脚说明 图2-4 TM1629引脚分布 表2.4 TM1629引脚说明 引脚符号 引脚名称 引脚描述 DI0 数据输入/输出端 在时钟上升沿从低位开始输入/输出串行数据 STB 片选端 STB为低电平时,其后的第一个字节作为指令;STB为高电平时,CLK被忽略。 CLK 时钟输入端 在时钟上升沿输入/输出串行数据。 K0~K3 键盘扫描输入 输入该脚的数据在显示周期结束后被锁存。 SEG1/KS1~SEG8/KS8 段输出端 段输出 SEG9~SEG16 段输出端 段输出 引脚符号 引脚名称 引脚描述 GRID1~GRID8 位输出端 位输出 逻辑电源端 5V±10% VSS 逻辑地端 接系统地 NC 空脚端 内部未连线 注意:在DIO端口输出数据的时候,该引脚需要外接一个带有一定阻值上拉电阻,推荐使用10K的上拉电阻,并且读数时要选择在时钟的上升沿进行,这样才能保证读数的稳定性。读数时若选择在时钟的下降沿,此时读数并不稳定,影响数据准确性。 图2-5 芯片内部电路 2.4.2 TM1629特性介绍 采用功率CMOS工艺 显示模式16段×8位 键扫描(8×4bit) 辉度调节电路 串行接口(CLK,STB,DIO) 内置上电复位电路 采用QFP44封装 2.5 数据传输存储芯片24C64 2.5.1 24C64概述 24C64芯片属于24C系列里面常见的一款,该系列的主要功能是数据的存储及传输。既然是数据传输存储芯片,那么就会有每款芯片带有多少存储位的问题,该系列的芯片拥有多少存储位可以从24C后面的数字读出来。如ATMEL的24C64,从后面的数字可以读出其存储位为64K。这个系列的芯片具有许多的优势,例如能重复擦写1百万次以上,并且在其内部已经存储成功的数据能够长期保持,时间达100年之久。24C64具有多种封装形式可供选择,现如今已被广大电子行业从业者所接受,广泛应用于电力电子各个领域。 ATMEL的24C64是I2C 总线C总线(Inter Integrated Circuit 内部集成电路总线)是两线式串行总线个I/O 引脚,仅需要时钟和数据两根线就可以进行数据传输,令用户使用起来十分便捷。 2.5.2 24C64引脚说明 图2-6 24C64引脚分布 表2.5 24C64引脚说明 引脚符号 引脚名称 引脚描述 A0到A2 地址输入端 确定连接器件的地址 SDA 串行数据端 需要附加一个上拉电阻,双向引脚,可以输出或输入地址及数据。 SCL 串行时钟输入端 产生串行同步时钟信号 VCC 电源输入端 电源电压输入 GND 接地端 接地 2.5.3 24C64特性介绍 低功耗器件 2线串行接口 双向数据传输协议 写保护引脚用于硬件数据保护 高可靠性 2.6 时钟芯片DS1302 2.6.1 DS1302概述 DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。通过简单的串行接口,采用三线接口与CPU进行同步通信,内部有一个31×8的用于临时性存放数据的静态RAM。它具有主电源/后备电源双电源引脚,VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,DS1302由VCC2供电;当VCC2小于VCC1时,DS1302由VCC1供电。 DS1302功能:①日期时间信息;②每月的天数和闰年的天数可自动调整;③通过AM/PM指示决定采用24或12小时格式;④保持数据和时钟信息时功率小于1mW。 2.6.2 DS1302引脚说明 图2-7 DS1302引脚分布 表2.6 DS1302引脚说明 引脚符号 引脚名称 引脚描述 X1、X2 晶振引脚 32.768KHz GND 接地引脚 接地 CE 复位脚 在读/写数据期间必须为高 I/O 数据输入/输出 三线接口时的双向数据线 SCLK 串行时钟引脚 控制数据的输入与输出 VCC1、VCC2 电源供电引脚 VCC1:主电源;VCC2:备份电源 第三章 硬件系统设计 3.1 单片机与时钟电路部分 3.1.1 W78E365概述 W78E365是带有在线编程(In System Program)功能的低功耗8位微控制器。在线编程功能使其具有开发门槛较低的便捷性,只需要一条ISP并行下载线,就可以把程序写入单片机。 W78E365既含有主ROM,同时也带有从ROM;既含有片内RAM,同时也带有从RAM。从ROM为Flash EPROM,这些存储器的存储容量分别为:64K字节主ROM;4K字节从Flash EPROM;256字节片内RAM;1K字节从RAM。 W78E365具有高速和高可靠性,其I/O口功能强、驱动能力大,并且低功耗。同时具有程序保护性好等诸多有点,当用户写入了程序后,单片机会对其进行数据保护,使用户编写的程序不被读出,防止用户的成果被窃取。 3.1.2 电路图设计 单片机与时钟电路部分的电路图如图3-1所示,W78E365A40PL接口分别与DS1302时钟电路部分、BQ2040锂离子电池的电量检测部分及LED驱动显示部分相连,构成一个完整的锂离子电池的电量检测系统。 DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,图中VCC1为备用电源。外接32.768kHz晶振,为芯片提供计时脉冲。 此处添加DS1302时钟电路部分的目的是为了定时读取测锂离子电池的电量时对应的时间,然后存储于24C64芯片中,以便在我们需要的时候,如系统出错,需对其进行检修时,就可以把这些时间结果全部调用出来,为排查故障提供条件。 图3-1 单片机与时钟电路原理图 3.2 BQ2040部分 3.2.1 BQ2040概述 作为一款电池的电量检测芯片,BQ2040负责完成锂离子电池的电量检测模块的功能,它先采集所需被测锂离子电池的信号参数,然后按照原先已经设定好的算法检测计算出被测锂离子电池的电量,通过I2C总线与单片机部分进行数据交换,最终通过LED驱动显示部分数码输出显示锂离子电池的电量信息给用户。电量检测结果用LED数码输出显示,从而让我们及时了解电量信息,完全掌握锂离子电池的用电状态,提高利用率。 本系统电量检测部分采用电池的电量检测芯片BQ2040,除了支持对锂离子电池的高精度电量检测,还满足其他多种电池的电量检测工作,比如能够很好的检测镍镉电池、镍氢电池的电量。 3.2.2 电路图设计 图3-2 BQ2040电路图 3.3 TM1629驱动控制LED显示部分 3.3.1 TM1629概述 TM1629是一款专业LED驱动控制的芯片,支持驱动的点数较多,其内部集成了串行接口、RC振荡器、键盘扫描存储单元、命令译码器、显示存储器、辉度调节器、断锁存器、段驱动器等部分,已经被大范围的应用于各种驱动电路中,特别是专用于驱动控制LED数码显示输出。 3.3.2 LED数码管 在实际的应用中,如果需要显示出的内容只有数字和字母,则LED数码管是不错的选择,LED数码管分为共阴极与共阳极两种,如图3-3所示。LED数码管具有成本低廉、显示清晰的优点。综上,本文选择LED数码管作为输出显示部分。输出显示模块将系统检测出的锂离子电池剩余电量数码显示出来,通过两个数码管就可以显示出剩余电量的百分比。这样我们就可以对当前锂离子电池的电量信息有一个更加直观的了解。 图3-3 LED数码管共阳极和共阴极示图 3.3.3 电路图设计 图3-4 TM1629电路图 第四章 软件系统设计 软件设计包括主程序和中断服务程序。主程序完成单片机的初始化,以及等待中断,中断跳转等;中断服务程序包括上电中断服务程序、定时器/计数器中断服务程序等。 4.1 程序设计流程 4.1.1 初始化 初始化程序流程图如图4-1所示: 图4-1 初始化程序流程图 初始化程序的功能就是初始化各个端口,使其各部件完成先前的准备工作。设置好各个端口的功能,比如哪些端口设置为中断的输入口,哪些设置为外部模块。设置完成以后就可以打开各个中断使能,使系统响应相对应的中断跳转程序。 4.1.2 主程序流程图 图4-2 主程序流程图 主程序完成初始化后,便等待定时器中断状态或外部中断的到来,然后完成锂电池电压、电流和温度值的信号采集,最后完成锂离子电池的电量的计算,并在LED输出显示屏上显示出来。 A/D转换与中断服务 图4-3 A/D转换与中断服务流程图 我们可以通过读时钟信息得到每一次锂离子电池的电量检测时的时间,当然还有另外一个重要作用,如果知道了每次电量检测的结果及相对应的时间,就能帮助我们有效地监测该锂离子电池的电量检测系统的工作情况是否正常,方便我们排查故障原因,及时对该系统进行维护和检修。 参考子程序(以每50ms中断一次举例): void time0(void) interrupt 1 using 2 { TH0=0x3c; TL0=0xb0; TIME_count++; if(TIME_count==21) { TIME_count = 0; TIME_seconds++; // 秒寄存器加1 } } 4.2 BQ2040总线采用电源系统管理Veil.0(SMBus)协议,支持智能电池数据管理命令(SBData)和智能电池充电控制(SBData)功能,通过串行接口可以检测锂离子电池的充电状态、剩余电量、放电剩余时间、电池材料等信息。 SMBus是System Management Bus的缩写,译为系统管理总线,SMBus是一种二线制串行总线C(Inter-Integrated Circuit)总线C两线(串行数据SDA和串行时钟SCL线)式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线C是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。和I2C一样,SMBus不需增加额外引脚,但是工作频率只能在10kHz到最高100kHz范围内,且专门面向智能电池管理应用。SMBus为系统电源管理等任务提供了一条控制总线,使用SMBus的系统,设备之间发送和接收消息都是通过SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。 SMBus最初的目的是为智能电池、充电电池和与其他系统通信的微控制器之间的通信链路而定义的,如今也被用来连接各种设备,包括电源相关设备,系统传感器,EEPROM通讯设备等等,但SMBus最适用于笔记本电脑上,检测各元件状态并更新硬件设置。 图4-4 BQ2040总线 时序特性 符号 参数 最小 最大 单位 FSMB SMBus工作频率 10 100 KHz TBUF 总线停止和启动间的空闲时间 4.7 μs THD:STA 启动后保持时间 4.0 μs TSU:STA 重复启动时间 4.7 μs TSU:STO 停止时间 4.0 μs THD:DAT 数据保持时间 300 ns TSU:DAT 数据建立时间 250 ns TLOW 低电平时间 4.7 μs THIGH 高电平时间 4.0 μs TF 时钟/数据下降时间 300 ms TR 时钟/数据上升时间 1000 ms TLOW:SEXT 低电平累积时间 25 TTIMEOUT 25 35 第五章 系统测试 硬件设计完成将待设计的系统分割成各个功能模块,然后组合成一个合理的可行性方案的任务,用Protel等相关软件完成硬件原理图的设计后,制成PCB板。软件设计则负责根据系统相关的功能要求,进行模块的编程等,完成硬件设计后,我们可以通过Keil4.0等类似软件对单片机烧入程序,最后便可进行锂离子电池的电量检测系统的检测试验,定时记录相关数据,对锂离子电池的电量检测结果的准确性进行测试。 系统测试的思路可以针对BQ2040内的三个重要寄存器:Full Charge Capacity()≤ FCC。 放电的逆过程即充电,充电期间,若RM数值停止递增,则RM=FCC,这时我们读取的RM应近似等于FCC,此时DCR=0。若要锂离子电池充分充电,我们还可以根据BQ2040进行充电控制,向RM写入一个用户自定义的值。 DCR随着RM的递减逐渐增大,直到RM=0,锂离子电池放电和自放电都会使DCR增大,但当RM=0后,只有放电才使DCR增大。 结 论 本文针对基于单片机的锂离子电池的电量检测系统的设计进行研究,对该系统的总体设计等方面进行了详细叙述,硬件系统设计主要包括模拟量信号采集部分,电量检测部分,中央处理控制部分,LED驱动输出显示等各个部分的设计,检测结果采用了直观的数码显示,可直接显示锂离子电池的剩余电量信息,避免了人工计算。另外本文还完成了软件系统的设计,用C语言进行编程,实现数据的采集、转换、存储和传输,进一步证实了本设计的有效性和可行性,同时本文给出了硬件原理图、软件流程图及源程序设计。 在设计过程当中,充分考虑了锂离子电池的性能特点,本系统的电路设计结构简单,基于W78E365单片机,用BQ2040进行锂离子电池的电量检测,以TM1629驱动控制LED数码输出显示锂离子电池的剩余电量,用较少的外部元件实现高精度测量,降低了开发成本,提高了锂离子电池的电量检测效率。经过反复多次的设计及修改,该系统的各项指标均达到了设计要求,具有很高的实用价值。 由于毕业设计的时间限制,希望今后在以下方面进行更深一层的研究: 硬件方面:硬件抗干扰能力上还需得到进一步的提高。 软件方面:增加锂离子电池的电量检测更多相关功能。 参考文献 [1] 赵灵智,汝强.锂离子电池材料的研究现状[Z],2009:3~4. [2] 李申飞,易菊兰.电池的电量精确测量方法的研究与实现[J].计算机工程与应用,2009,45(17):244~224. [3] 郭炳焜,锂离子电池.长沙:中南大学出版社,2002. [4] 王海明,郑绳楦,刘兴顺.锂离子电池的特点及应用[Z],2004:132~134. [5] 张俊谟.单片机中级教程[M].北京:北京航空航天大学出版社,2006.3. [6] 张友德,赵志英,涂时亮.单片机微型机原理、应用与实验.上海:复旦大学出版社,2004. [7] 张培根,孙占辉,张欣,张村峰.MCS-51单片机原理与应用.北京:清华大学出版社. [8] 戴仙金.51单片机及其C语言程序开发实例[M]北京:清华大学出版社,2008. [9] 朱清慧等.Proteus教程—电子线路设计、制版与仿真[M].北京:清华大学出版社,2008. [10] bq2040 Gas Gauge IC With SMBus Interface, Texas Instruments Incorporated,2005. [11] Anbuky A.H,Pascoe P.E,ustrial Electronics, IEEE Transactions on Volume 47, Issue 3, June 2000 Page(s):565~573. 致 谢 毕业设计象征着大学生涯的结束,这也是一个至关重要的环节,它能有效地检验我们的学习成果,也是我们理论联系实际的一次机会。在这几个月的时间里,饶繁星老师严谨的治学态度和热忱的工作作风使我十分佩服,其渊博的专业知识,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。虽然在毕业设计的整个过程中我遇到过很多的问题,但他的指导让我受益匪浅,和我同一组的同学也给我了我极大的帮助,加上自己不断的努力摸索,最终完成了毕业设计。在此对帮助我的老师和同学们表示深深的感谢。 经过这次毕业设计,我在理论知识、研究能力及外语水平等各方面的能力都有了很大的提升,并且还提高了我的动手能力与设计能力,同时还学会了使用Protel、KeilC、Autocad等软件的常用操作。这些都是我在平时学习和生活中所得不到的锻炼,更是我人生中宝贵的经历。 大学四年,学到的不仅是书本上的知识,对我来说最重要的是学会如何做人,这才是这几年得到的最宝贵,最值得珍惜的财富,相信在以后的人生道路上,会有我的一番作为。感谢母校四年来对我的培养与教导。 最后,我在此感谢在百忙之中为我的毕业设计评阅并提出宝贵意见的专家们! 由于水平有限,本文难免有遗漏和错误之处,恳请各位老师批评指正,谢谢! 附 录 #include AT89X51.H #include absacc.h #include intrins.h sbit SMBC=P1^6;//sbit SMBC=P1^4; //bq2040中SMbus的时钟端 sbit SMBD=P1^7;//sbit SMBD=P1^5; //bq2040中SMbus的数据端 unsigned char bq2040_Command_RC=0x0f; //读剩余电量的指令 signed char bq2040_Command_C=0x0a; //读电流的指令 unsigned char bq2040_Command_BS=0x16; //读电池状态 unsigned char ReceiveData_L, ReceiveData_H, Current_H_7, BatteryStatus_L_6, BatteryStatus_L_5; //从BQ2040接收数据的低位,高位,电流正负位(正表示充电,负表示放电),电池状态充放电判断(0表示充电,0x40表示放电),电池状态满充判断(0表示未充满,0x20表示充满) unsigned char ack; //用于判断接收确认是否超时,超时为1,未超时为0 void Delay(void) //延时子程序 { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } //以下函数详见SMbus原理 void Star(void) //开始子程序 当SMBC为高电平时,SMBD上出现一个下降沿。该条件启动一次传输过程 { SMBC=0; Delay(); SMBD=1; Delay(); SMBC=1; Delay(); SMBD=0; Delay(); } void Stop(void) //停止子程序 当SMBC为高电平时,SMBD上出现一个上升沿。该条件停止一次传输过程 { SMBC=0; Delay(); SMBD=0; Delay(); SMBC=1; Delay(); SMBD=1; Delay(); } void Ackw(void) //ACKNOWLEDGE写子程序 SMBC为高时,采样到SMBD为低电平 { unsigned char a=0; ack=0; SMBC=0; Delay(); SMBD=1; Delay(); SMBC=1; Delay(); } void Ackr(void) //ACKNOWLEDGE读子程序 SMBC为高时,采样到SMBD为低电平 { SMBC=0; Delay(); SMBD=0; Delay(); SMBC=1; Delay(); } void Nack(void) //NOT ACKNOWLEDGE子程序 SMBC为高电平时,采样到SMBD为高电平 { SMBC=0; Delay(); SMBD=1; Delay(); SMBC=1; Delay(); } void Send(unsigned char b) //发送子程序 将b按从最高位到最低位的顺序,逐位的发送给bq2040 { unsigned char i,x,y,z; z=0x80; for(i=1;i9;i++) { x=b if(x==0) y=0; else y=1; SMBC=0; Delay(); SMBD=y; Delay(); SMBC=1; Delay(); z=1; } } unsigned char Receive(void) //接收子程序 将bq2040中的数据逐位的读出 { unsigned char i,g=0x00; for(i=1;i9;i++) { SMBC=0; _nop_(); _nop_(); SMBD=1; Delay(); SMBC=1; Delay(); g=1; if(SMBD) g++; Delay(); } return g; } void Read(unsigned char Command) //读剩余电量子程序 { unsigned int a; Star(); //开始 a=0x16; Send(a); //发送器件地址0x16 Ackw(); //发送确认 if(ack) //未确认则重新发送 return; Send(Command); //发送读剩余电量指令 Ackw(); //发送确认 if(ack) //未确认则重新发送 return; Star(); a=0x17; //发送器件地址0x17 Send(a); Ackw(); //发送确认 if(ack) //未确认则重新发送 return; ReceiveData_L=Receive(); //接收剩余电量低8位数据 Ackr(); //接收确认 ReceiveData_H=Receive(); //接收剩余电量高8位数据 Nack(); //非确认 Stop(); //结束 } void Delay2(void) //4s显示延时 { unsigned char i,j,k; for(i=0;i255;i++) for(j=0;j255;j++) for(k=0;k20;k++); } main() { unsigned char RemainingCapacity_H,RemainingCapacity_L,Current_H,BatteryStatus_L; TMOD=0x20; //串口波特率9600bps,方式3,无校验,数据位8,停止位1. TH1=0xFD; TL1=0xFD; PCON=0x00; TR1=1; SCON=0xD8; power_led=0; while(1) { Read(bq2040_Command_C); // 向串口发送当前电流,利用串口助手可以看到 if(ack==0) //读数据成功,则执行赋值 Current_H=ReceiveData_H; SBUF=bq2040_Command_C; while(!TI); TI=0; SBUF=Current_H; while(!TI); TI=0; SBUF=ReceiveData_L; while(!TI); TI=0; Current_H_7=Current_H Read(bq2040_Command_BS); // 向串口发送电池状态,利用串口助手可以看到 if(ack==0) //读数据成功,则执行赋值 BatteryStatus_L=ReceiveData_L; SBUF=bq2040_Command_BS; while(!TI); TI=0; SBUF=ReceiveData_H; while(!TI); TI=0; SBUF=BatteryStatus_L; while(!TI); TI=0; BatteryStatus_L_6=BatteryStatus_L BatteryStatus_L_5=BatteryStatus_L Read(bq2040_Command_RC); // 向串口发送剩余电量,利用串口助手可以看到 if(ack==0) //读数据成功,则执行赋值 { RemainingCapacity_H=ReceiveData_H; RemainingCapacity_L=ReceiveData_L; } SBUF=bq2040_Command_RC; while(!TI); TI=0; SBUF=RemainingCapacity_H; while(!TI); TI=0; SBUF=RemainingCapacity_L; while(!TI); TI=0; if(ack==0) LedDisplay_Battery(RemainingCapacity_H,RemainingCapacity_L); else if(ERROR==0xEE) LedDisplay_Adapter(); } } 第一章 绪论 南昌工程学院本科毕业设计(论文) 第二章 系统总体结构设计 第三章 硬件系统设计 第四章 软件系统设计 第五章 系统测试 结论 参考文献 致谢 附 录 锂电池 模拟量参数采集 电量 检测 中央处理控制部分 LED 驱动 电压 温度 电流 I T U 初始化 初始化堆栈 初始化各个端口 输入端使能 等待/响应中断 DS1302时钟电路 LED数码显示电量 开始 系统初始化 采样锂离子电池电信号及温度等参数,BQ2040检测电池的电量 W78E365单片机控制 TM1629驱动控制LED 结束返回 启动AD 是 数据 清标志位 返回 中断返回 置读数标志位 读时钟信息 定时中断 开中断 否 初始化 开始 AD转换 tR tF THIGH TSU:STO TSU:STA THD:STA TLOW TSU:DAT THD:DAT SMBC SMBD TBUF 2 I II 1 IV III 4 5

  固体废物处理与处置 TRENTMENT AND DISPOSAL OF SOLID WASTE.ppt

  2023年四川省成都市郫都区机关单位编制外聘用人员招聘辅助岗位编外人员1人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023年贵州省安顺镇宁县事业单位招聘应届生14人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023年吉林长白朝鲜族自治县事业单位招聘43人发放笔试历年难、易点深度预测(共500题含答案解析)模拟试卷.docx

  2023江苏经贸职业技术学院招聘专任教师及专职辅导员46人笔试历年难、易点深度预测(共500题含答案解析)模拟试卷.docx

  2023年广东省佛山市南海区狮山国土招聘招聘21人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023下半年四川省遂宁河东新区教师招聘79人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023年北京市丰台区卫计委所属事业单位招聘116人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023年福建省龙岩永定区医疗卫生事业单位招聘71人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023广东广州市海珠区住房和建设水务局招聘高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023年广东省开平市妇女联合会招聘2人高频笔试、历年难易点考题(共500题含答案解析)模拟试卷.docx

  2023年全国中药学传统名堂文化技能知识考试题库(附含答案410题).pdf

  传动运动控制 驱动器Mega-Fabs驱动器使用说明(英诺伺服驱动器 可驱动直线电机).pdf

  NBT 33001-2018- 电动汽车非车载传导式充电机技术条件.pdf

  原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者

相关新闻