智能型充电器的电源和显示的设计.docx
《智能型充电器的电源和显示的设计.docx》由会员分享,可在线阅读,更多相关《智能型充电器的电源和显示的设计.docx(41页珍藏版)》请在冰豆网上搜索。
![智能型充电器的电源和显示的设计.docx](https://file1.bdocx.com/fileroot1/2023-2/3/be8b00da-6e3a-40f7-8641-ff2d6fe28b57/be8b00da-6e3a-40f7-8641-ff2d6fe28b571.gif)
智能型充电器的电源和显示的设计
前言
随着越来越多的手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。
电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。
因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。
AVR已经在竞争中领先了一步,被证明是下一代充电器的完美控制芯片。
AtmelAVR微处理器是当前市场上能够以单片方式提供Flash、EEPROM和10位ADC的最高效的8位RISC微处理器。
由于程序存储器为Flash,因此可以不用象MASKROM一样,有几个软件版本就库存几种型号。
Flash可以在发货之前再进行编程,或是在PCB贴装之后再通过ISP进行编程,从而允许在最后一分钟进行软件更新。
EEPROM可用于保存标定系数和电池特性参数,如保存充电记录以提高实际使用的电池容量。
10位A/D转换器可以提供足够的测量精度,使得充好后的容量更接近其最大容量。
而其他方案为了达到此目的,可能需要外部的ADC,不但占用PCB空间,也提高了系统成本。
AVR是目前唯一的针对像“C”这样的高级语言而设计的8位微处理器。
C代码似的设计很容易进行调整以适合当前和未来的电池,而本次智能型充电器显示程序的编写则就是用C语言写的。
第一章 概述
第一节 绪论
1.1.1课题背景
如今,随着越来越多的手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。
电池技术的持续进步也要求更复杂的充电算法以实现快速、安全的充电。
因此需要对充电过程进行更精确的监控,以缩短充电时间、达到最大的电池容量,并防止电池损坏。
与此同时,对充电电池的性能和工作寿命的要求也不断地提高。
从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电电池容量和性能得到了飞速的发展。
目前各种电器使用的充电电池主要有镍镉电池(NiCd)、镍氢电池(NiMH)、锂电池(Li-Ion)和密封铅酸电池(SLA)四种类型。
电池充电是通过逆向化学反应将能量存储到化学系统里实现的。
由于使用的化学物质的不同,电池有自己的特性。
设计充电器时要仔细了解这些特性以防止过度充电而损坏电。
目前,市场上卖得最多的是旅行充电器,但是严格从充电电路上分析,只有很少部分充电器才能真正意义上被称为智能充电器,随着越来越多的手持式电器的出现,对高性能、小尺寸、轻重量的电池充电器的需求也越来越大。
电池技术的持续进步也要求更复杂的充电算法以实现快速、安全地充电,因此,需要对充电过程进行更精确地监控(例如对充、放电电流、充电电压、温度等的监控),以缩短充电时间,达到最大的电池容量,并防止电池损坏。
因此,智能型充电电路通常包括了恒流/恒压控制环路、电池电压监测电路、电池温度检测电路、外部显示电路(LED或LCD显示)等基本单元。
其框图如下:
图1-1智能充电器基本框图
AtmelAVR微处理器是当前市场上能够以单片方式提供Flash、EEPROM和10位ADC的最高效的8位RISC微处理器。
由于程序存储器为Flash,因此可以不用象MASKROM一样,有几个软件版本就库存几种型号。
Flash可以在发货之前再进行编程,或是在PCB贴装之后再通过ISP进行编程,从而允许在最后一分钟进行软件更新。
EEPROM可用于保存标定系数和电池特性参数,如保存充电记录以提高实际使用的电池容量。
10位A/D转换器可以提供足够的测量精度,使得充好后的容量更接近其最大容量。
而其他方案为了达到此目的,可能需要外部的ADC,不但占用PCB空间,也提高了系统成本。
AVR是目前唯一的针对象“C”这样的高级语言而设计的8位微处理器。
1.1.2常见充电电池特性及其充电方式
电池充电是通过逆向化学反应将能量存储到化学系统里实现的,由于使用的化学物质的不同,电池的特性也不同,其充电的方式也不大一样。
电池的安全充电现代的快速充电器(即电池可以在小于3个小时的时间里充满电,通常是一个小时)需要能够对单元电压、充电电流和电池温度进行精确地测量,在充满电的同时避免由于过充电造成的损坏。
充电方法SLA电池和锂电池的充电方法为恒定电压法要限流;NiCd电池和NiMH电池的充电方法为恒定电流法,且具有几个不同的停止充电的判断方法。
最大充电电流最大充电电流与电池容量(C)有关。
最大充电电流往往以电池容量的数值来表示。
例如,电池的容量为750mAh,充电电流为750mA,则充电电流为1C(1倍的电池容量)。
若涓流充电时电流为C/40,则充电电流即为电池容量除以40。
过热电池充电是将电能传输到电池的过程。
能量以化学反应的方式保存了下来。
但不是所有的电能都转化为了电池中的化学能。
一些电能转化成了热能,对电池起了加热的作用。
当电池充满后,若继续充电,则所有的电能都将转化为电池的热能。
在快速充电时这将使电池快速升温,若不及时停止充电就会造成电池的损坏。
因此,在设计电池充电器时,对温度进行监控并及时停止充电是非常重要的。
现代消费类电器主要使用如下四种电池:
密封铅酸电池(SLA)
镍镉电池(NiCd)
镍氢电池(NiMH)
锂电池(Li-Ion)
在正确选择电池和充电算法时需要了解这些电池的背景知识。
密封铅酸电池(SLA)密封铅酸电池主要用于成本比空间和重量更重要的场合,如UPS和报警系统的备份电池。
SLA电池以恒定电压进行充电,辅以电流限制以避免在充电过程的初期电池过热。
只要电池单元电压不超过生产商的规定(典型值为,SLA电池可以无限制地充电。
镍镉电池(NiCd)NiCd电池目前使用得很普遍。
它的优点是相对便宜,易于使用;缺点是自放电率比较高。
典型的NiCd电池可以充电1000次。
失效机理主要是极性反转。
在电池包里第一个被完全放电的单元会发生反转。
为了防止损坏电池包,需要不间断地监控电压。
一旦单元电压下降到就必须停机。
NiCd电池以恒定电流的方式进行充电。
镍氢电池(NiMH)在轻重量的手持设备中如手机、手持摄象机,等等镍氢电池是使用最广的。
这种电池的容量比NiCd的大。
由于过充电会造成NiMH电池的失效,在充电过程中进行精确地测量以在合适的时间停止是非常重要的。
和NiCd电池一样,极性反转时电池也会损坏。
NiMH电池的自放电率大概为20%/月。
和NiCd电池一样,NiMH电池也为恒定电流充电。
锂电池(Li-Ion)和本文中所述的其他电池相比,锂电池具有最高的能量/重量比和能量/体积比。
锂电池以恒定电压进行充电,同时要有电流限制以避免在充电过程的初期电池过热。
当充电电流下降到生产商设定的最小电流时就要停止充电。
过充电将造成电池损坏,甚至爆炸。
1.1.3主要芯片的选择
ATMEL公司是世界上有名的生产高性能、低功耗、非易失性存储器和各种数字模拟IC芯片的半导体制造公司。
在单片机微控制器方面,ATMEL公司有AT89,AT90和ARM三个系列单片机的产品。
由于8051本身结构的先天性不足和近年来各种采用新型结构和新技术的单片机的不断涌现,现在的单片机市场是百花齐放。
ATMEL在这种强大市场压力下,发挥Flash存储器的技术特长,于1997年研发并推出了个新配置的、采用精简指令集RISC(ReducedInstructionSetCPU)结构的新型单片机,简称AVR单片机。
精简指令集RISC结构是20世纪90年代开发出来的,综合了半导体案成技术和软例-性能的新结构。
AVR单片机采用RISC结构,具有1MIPS/MHz的高速运行处理能力。
为了缩短产品进入市场的时间,简化系统的维护和支持,对于由单片机组成的嵌入式系统来说,用高级语言编程已成为一种标准编程方法。
AVR结构单片机的开发日的就在于能够更好地采用高级语言(例如C语言、BASIC语言)来编写嵌入式系统的系统程序,从而能高效地开发出目标代码。
为了对目标代码大小、性能及功耗进行优化,AYR单片机的结构中采用了大型快速存取寄存器组和快速的单周期指令系统。
AVR单片机运用Harvard结构,在前一条指令执行的时候就取出现行的指令,然后以一个周期执行指令。
在其他的CISC以及类似的RISC结构的单片机中,外部振荡器的时钟被分频降低到传统的内部指令执行周期,这种分频最大达12倍(8051)。
AVR单片机是用一个时钟周期执行一条指令的,它是在8位单片机中第一个真正的RISC结构的单片机。
由于AVR单片机采用了Harvard结构,所以它的程序存储器和数据存储器是分开组织和寻址的。
寻址空间分别为可直接访问8M字节的程序存储器和8M字节的数据存储器。
同时,由32个通用工作寄存器所构成的寄存器组被双向映射,因此,可以采用读写寄存器和读写片内快速SRAM存储器两种方式来访问32个通用工作寄存器。
AVR主要有单片机有ATtiny、AT90和ATmega三种系列,其结构和基本原理都相类似。
本次设计所用到的Atmega16L芯片便是ATmega系列中的一种,在这里作为充电器的核心部件。
它是一种具有40引脚的高性能、低功耗的8位微处理器。
其功能特性如下:
(1)8位CPU。
(2)先进的RISC结构:
131条指令–大多数指令执行时间为单个时钟周期
32个8位通用工作寄存器
全静态工作
(3)非易失性数据和程序存储器:
16K字节的系统内可编程Flash,擦写寿命可达到10,000次以上。
具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程。
512字节的EEPROM,可连续擦写100,000次。
1K字节的片内SRAM,可以对锁定位进行编程以实现用户程序的加密。
(4)可通过JTAG接口实现对FLASH、EEPROM的编程。
(5)32个可编程的I/O引线,40引脚PDIP封装。
(6)两个具有独立预分频器和比较器功能的8位定时器/计数器,一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器。
(7)片内/片外中断源。
(8)具有一个10位的AD转换器,能对来自端口A的8位单端输入电压进行采样。
(9)工作电压:
-。
速度等级:
0-8MHz。
AVR单片机的主要特点如下:
1.片内集成可擦写10000次以上的Flash程序存储器。
由于AVR采用16位的指令,所以一个程序存储器的存储单元为16位,即XXXX*1116(也可理解为8位,即2*XXXX*8)。
AVR的数据存储器还是以8个Bit(位)为一个单元,因此AVR还是属于8位单片机。
2.采用CMOS工艺技术,高速度(50ns)、低功耗、具有SLEEP(休眠)功能。
AVR的指令执行速度可达50ns(20MHz)。
AVR运用Harvard结构概念,具有预取指令的特性,即对程序存储和数据存取使用不同的存储器和总线。
当执行某一指令时,下一指令被预先从程序存储器中取出,这使得指令可以在每一个时钟周期内执行。
3.高度保密(LOCK)。
可多次擦写的FLASH具有多重密码保护锁死(LOCK)功能,因此可低成本高速度地完成产品商品化,并且可多次更改程序(产品升级)而不必浪费1C或电路板,大大提高了产品的质量及竞争力。
4.超功能精简指令。
具有32个通用作寄存器(相当于8051中的32个累加器),克服了单一累加器数据处理造成的瓶须现象,128~4K字节SRAM可灵活使用指令计算,并可用功能很强的C语言编程,易学、易写、易移植。
5.程序写入器件可以并行写入(用编程器写入),也可使用串行在线编程(ISP)方法下载写入,也就是说不必将单片机芯片从系统上拆下,拿到万用编程器上烧写,而可直接在电路板上进行程序的修改、烧写等操作,方便产品升级,尤其是采用SMD封装,更利于产品微型化。
6.工作电压范围为~,电源抗干扰性能强。
单片机还在片内集成了可擦写100000次的
PROM数据存储器,等于又增加了一个芯片,可用于保存系统的设定参数、固定表格和掉电后的数据,既方便了使用,减小了系统的空间,又大大提高了系统的保密性。
8.有8位和16位的计数器定时器(C/T),可作比较器、计数器、外部中断和PWM(也可作D/A)用于控制输出。
1.1.4液晶显示模块的选择
LCD显示模块是一种被动显示器,具有功耗低,显示信息大,寿命长和抗干扰能力强等优点,在低功耗的单片机系统中得到大量使用。
液晶显示模块和键盘输入模块作为便携式仪表的通用器件,在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计。
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形。
在单片机系统中使用液晶显示模块作为输出器件有以下优点:
(1)显示质量高
液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,因此液晶显示器画质高而且不会闪烁。
(2)数字式接口
液晶显示器都是数字式的,和单片机系统的接口更加简单。
(3)体积小,重量轻
(4)功率消耗小
液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因此耗电量比其它显示器要小得多。
第二节 毕业设计任务和要求
智能充电器的设计包括硬件和软件两大部分,本人的主要任务是完成充电器设计的LCD显示部分,其主要涉及的知识包括:
(1)自学AVR单片机的相关内容。
(2)设计电源电路。
(3)设计128*64液晶显示控制电路和用C语言编制LCD显示程序,用图形方式显示充电器电压、电流等参数。
(4)手工焊接和ICCAVR编译器的应用。
这次设计要解决的关键问题是如何用Atmega16L芯片控制LCD模块及用C语言编制相应的显示程序.随着单片机的开发应用,其相应的汇编编程和所暴露的问题也越来越多,逐渐引入了高级语言,C语言就是其中的一种。
在大一时就曾接触过C语言,由于时间较短,重视程度不够,后来又一直没用过,只能对它有一个大概的了解。
而对于AVR单片机的相关知识和液晶显示模块的使用,则完全是一片空白。
这次毕业设计,就不得不花大量的时间在这些基础知识的学习上。
为了更有效地完成这个课题,特列出了如下计划:
表1-1毕业设计进度表
起止时间
工作内容
第1~2周
熟悉课题的基本要求,查阅相关资料,初步拟定设计的整体方案,完成开题报告。
第3~8周
1.自学这次课题所涉及的相关内容,包括C语言基础知识,AVR单片机(主要是Atmega16L芯片)和ICCAVR编译器的使用以及液晶显示的相关内容。
并设计一些简单的实际电路,熟练所学内容并加以巩固。
2.熟悉绘图软件Protel99的使用。
第9~12周
1.设计LCD显示电路,电源电路,用Protel99绘制原理图,和同学一起完成整个充电电路原理图,并绘制印制电路板。
2.编写显示程序。
第13~15周
焊接调试电路,根据各部分的作用对硬件电路进行调试,最后联机调试。
最后数周
写毕业设计论文,完成全部毕业设计。
这次毕业设计是由郭伟同学和本人共同合作完成,由他完成充电部分的硬件电路的设计,和这边的显示部分相结合,共同完成智能充电器的设计。
第二章硬件电路设计
经过前面对充电器原理、液晶模块、ATmega16L等的总体了解和掌握以及对各种元器件和电路图的分析和比较后,现在就可以开始进入硬件电路的设计了。
在本章里,首先将介绍一下液晶模块访问方式的两种接口电路,然后对LCD显示电路原理图作一个详细的介绍,接着介绍充电电路中所用到的各种芯片和元器件的原理和一些功能,最后对PROTEL99的使用和PCB板的绘制以及焊接做一简单介绍,然后再将自己的设计思想和同组人所设计的两部分结合,达成统一。
第一节液晶显示模块两种访问方式接口电路的选择
单片机与液晶显示模块之间的连接方式分为直接访问方式和为间接控制方式两种。
如图2-1和图2-2所示,其中左为单片机,右为液晶显示模块。
(一)直接访问方式
数据总线
GND
+5V
电位器
负电源
1
3
274LS00
A11
A10
A9
A8
MPU图2-1直接访问方式电路图LCM接口
直接访问方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I/O设备的方式操作液晶显示模块的工作。
直接访问方式的接口电路如图2-1所示,在图中,单片机通过高位地址A11控制CSA,A10控制CSB,以选通液晶显示屏上各区的控制器;同时用地址A9作为R/W信号控制数据总线的数据流向;用地址A8作为D/I信号控制寄存器的选择,E(使能)信号由RD和WE共同产生,这样就实现了单片机对液晶显示模块的电路边接。
电位器用于显示对比度的调节。
(二)间接控制方式
10K
负电源
GND
MPULCM接口
图2-2间接控制方式电路图
间接控制方式是单片机通过自身的或系统中的并行接口与液晶显示模块连接。
单片机通过对这些接口的操作,以达到对液晶显示模块的控制。
这种方式的特点就是电路简单,控制时序由软件实现,可以实现高速单片机与液晶显示模块的接口。
电路图如图2-2所示。
在图中以P1口作为数据口,为CSA,为CSB,为使能端,为R/W和为D/I信号。
电位器用于显示对比度的调节。
通过比较再结合本次设计的实际条件,由于Atmega16L芯片没有WR、RD管脚,而且为了使电路简单且方便软件实现,所以最终决定采用间接控制的方式来设计LCD显示电路。
第二节硬件电路主要芯片
2.2.1ATmega16L主要引脚说明
以下是ATmega16L的引脚配置:
图2-3ATmega16L芯片引脚
引脚说明:
VCC 数字电路的电源
GND 地
端口A(PA7~PA0) 端口A作为A/D转换器的模拟输入端。
端口A为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口A处于高阻状态。
端口B(PB7~PB0) 端口B为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。
端口C(PC7~PC0) 端口C为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口C处于高阻状态。
如果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。
端口D((PD7~PD0)端口D为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。
RESET 复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
XTAL1 反向振荡放大器与片内时钟操作电路的输入端。
XTAL2 反向振荡放大器的输出端。
AVCC AVCC是端口A与A/D转换器的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC时应通过一个低通滤波器与VCC相连。
AREF A/D的模拟基准输入引脚。
2.2.2Atmega16L的存储器
AVR结构有两个主要的存储空间:
数据存储器空间和程序存储器空间,此外,Atmega16L还有一个EEPROM存储器以保存数据。
这三个存储器都为线性的平面结构。
(1)Atmega16L具有16K字节的在线编程Flash,用于存储程序指令代码。
因为AVR指令为16位或32位,故Flash组织成8K
16的形式。
用户程序的安全性要根据Flash程序存储器的两个区:
引导(Boot)程序区和应用程序区,分开来考虑。
Flash存储器至少可以擦写10,000次。
Atmega16L的程序存储器为13位,因此可以寻址8K的存储器空间。
关于用SPI或JTAG接口实现对Flash的串行下载,将在软件部分作详细的介绍。
(2)数据存储器的寻址方式分为5种:
直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。
ATmega16L的全部32个通用寄存器、64个I/O寄存器及1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问。
(3)ATmega16L包含512字节的EEPROM数据存储器。
它是作为一个独立的数据空间而存在的,可以按字节读写。
EEPROM的寿命至少为100,000次擦除周期。
EEPROM的访问由地址寄存器、数据寄存器和控制寄存器决定。
2.2.3Atmega16L的时钟电路
单片机的时钟用于产生工作所需要的时序,其连接电路如下图:
图2-4晶体振荡器连接图
XTAL1与XTAL2分别为用作片内振荡器的反向放大器的输入和输出,考虑到其最大频率不超过8MHz,这里选用的晶振为。
2.2.4Atmega16L的系统复位
Atmega16L有五个复位源:
(1)上电复位。
电源电压低于上电复位门限Vpot时,MCU复位。
如果在单片机加Vcc电压
的同时,保持RESET引脚为低电平,则可延长复位周期。
VccVpotVpot
RESETVrstVrst
TIME-OUT
INTERINALtTOUTtTOUT
RESET
图2-5RESET引脚与VCC相连时,图2-6RESET引脚由外部控制时,
单片机的复位电平单片机的复位电平
(2)外电复位。
引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位。
Vcc
RESETVrst
TIME-OUTtTOUT
INTERNAL
RESET
图2-7外部复位时序图
(3)看门狗复位。
看门狗使能并且看门狗定时器溢出时复位发生。
看门狗计数器溢出时,将产生一个晶振的复位脉冲。
Vcc
RESET
WDT1XTALCycle
TIME-OUT
RESETtTOUT
TIME-OUT
INTERNAL
RESET
图2-8看门狗复位时序图
(4)掉电检测复位。
掉电检测复位功能使能,且电源电压低于掉电检测复位门限Vpot时MCU即复位。
(5)JTAGAVR复位。
复位寄存器为1时MCU复位。
第三节 LCD液晶显示
2.3.1LCD的显示原理
液晶显示器是一种功耗极低的显示器。
随着液晶显示技术的发展,LCD显示器的规格众多,其专用驱动芯片也相互配套,使LCD在控制和仪表系统中广泛应用提供了极大的方便。
根据LCD显示原理的不同,常见和常用的LCD可以分为字符型LCD和点阵型LCD两种。
不同的显示原理使得这两种LCD的指令系统、接口和功能等是不相同的,各有优缺点,但结合到本次设计的实际要求,经过比较还是选用点阵型LCD。
现就点阵型LCD的显示原理、模块特点等做一简要介绍。
要想在液晶模块上显示一个汉字或字符,需要3个最基本的控制操作:
分别向3个控制器写指令代码、写显示数据和读显示数据。
这里要特别引起注意的是完成这3项操作的前提条件是KS