首页 > 行业资讯 > 智能型充电器的电源和显示的设计

智能型充电器的电源和显示的设计

  AVR单片机是Atmel公司1997年推出的RISC单片机。RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。RISC优先选取使用频率最高的简单指令,避免复杂指令;并固定指令长度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运算速度。由于AVR采用了RISC这种结构,使AVR系列的单片机都具备了1MIPS/MHz的高速处理能力。
   AVR单片机吸收了DSP双总线的特点,采用Harvard总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和数据存储器进行独立的寻址。
目前,AVR单片机具有多个系列,包括ATtiny、AT90和ATmega。虽然在功能和存储器容量等方面有很大的不同,但基本结构和原理都类似。同传统的MCS51单片机相比,AVR单片机的主要特点有:
(1) AVR单片机中,CPU执行当前指令时取出将要执行的下一条指令放入指令寄存器中,从而避免了传统MCS51系列单片机中多指令周期的出现。
(2) 传统的MCS51系列单机所有的数据处理都是基于一个累加器的,因此累加器与程序存储器、数据存储器之间的数据交换就成了单片机的瓶颈;在AVR单片机中,寄存器由32个通用寄存器组成,并且任何一个寄存器都可以充当累加器,从而有效地避免了累加器的瓶颈效应,提高了系统的性能。
(3) AVR单片机具有良好的集成性能。AVR系列的单片机都具备在线编程接口,含有片内看门狗电路、片内程序Flash、同步串口SPI等;AVR单片机的I/O接口还具有很强的驱动能力,灌电流可直接驱动继电器、LED等器件,从而省去驱动电路,节约系统成本。
(4) AVR单片机采用低功率、非挥发的CMOS工艺制造,除具有低功耗、高密度的特点外,还支持低电压的联机Flash、EEPROM写入功能。
(5) AVR单片机支持Basic、C等高级语言编程。
此外在传统的单片机系统中,都是用汇编语言作为系统的编程语言。汇编语言作为嵌入式系统的编程语言,具有执行效率高等优点,但其本身是一种低级语言,编程效率低下,且可移植性和可读性差,维护极不方便,从而导致整个系统的可靠性也较差。而C语言以其结构化和能产生高效代码等优势满足了电子工程师的需要。用C语言进行嵌入式系统的开发,具有汇编语言编程所不可比拟的优势
1.  AVR单片机的主要特征,系统概况,指令系统以及系统的扩展技术的学习和掌握。
2.  电源电路的设计
3.  熟悉智能充电器的工作过程
4.编写LCD显示的C程序设计
本设计要求用AVR单片机完全实现电池充电器设计,可以对各种流行的电池类型进行快速充电而无须修改硬件,从而围绕单个硬件平台实现一个完整的充电器
1.  弄懂弄清智能充电器的基本原理
    电池充电是通过逆向化学反应将能量存储到化学系统里实现的。由于使用的化学物质的不同,电池有自己的特性。设计充电器时要仔细了解这些特性以防止过度充电而损坏电池。
电池技术现代消费类电器主要使用如下四种电池:
密封铅酸电池 (SLA)
镍镉电池 (NiCd)
镍氢电池(NiMH)
锂电池(Li-Ion)
电池的安全充电
停止充电的判别
2.  硬件的实现
1.  电源电路的设计
2.  PC接口的设计
3.  LED和按键的设计
4.  ISP 接口的设计
5.  Buck 变换器
6.  电压基准的设定
7.  电池温度的设定
8.  测量电路的设计(包括电池电压和充电电流等参数的计算)
1.  软件的实现
   在编译时要确定电池类型。软件可以进行扩展以支持多个电池同时充电。一个直接的方案是在进行涓流充电时对各个电池进行分时充电。若每个电池的电池单元数目一样,则SLA 电池和Li-Ion 电池 可以恒定电压的方式并行充电。每个电池单元的充电电流是受限的,电压也一样。“电池特性” (b_car.h)的所有数据都根据标度因子计算得到。这些数据在包含文件里定义,在编译时计算,在程序运行时以常数方式处理。所有从ADC 输出的数据都可以直接与这些常数进行比较。也就是说,在程序运行过程当中不需要进行实时计算,从而节省了计算时间和程序空间。计算公式以及数据都是从“测量电路”一节获取的。 对于NiCd 电池,如果电池温度在允许范围之内,充电程序就会启动。在温度超出限制,或电压超过最大值,或超出最大快速充电时间时停止。检测电池已经充满的普通方法是检测温度上升速率(dT/dt) 和电压降低速率(-dV/dt)。因此,充电器会每隔一分钟检测一次温度,每隔一秒钟检测一次电压。这些数据将与上一次数据进行比较。一旦电池充满,充电状态就自动切换到涓流充电,充电程序跳转到trickle_charge() 函数。trickle_charge() 循环检测充电状态、温度/ 电压的改变,并适当地调节充电电流。一旦温度或电压超标,错误标志置位,函数终止。若没有错误,用户也没有改变充电状态,函数将一直循环工作。
2.  编制LCD的显示程序
 
特点
•完整的电池充电器设计方案
•模块化的“C”源代码和极紧凑的汇编代码
•低成本
•支持多数电池类型
•快速充电算法
•可选的串行接口
•充电参数易修改
•片内EEPROM 可用于存储电池信息

返回
顶部