新闻中心

EEPW首页>嵌入式系统>设计应用> 基于单片机控制的智能充电器的设计与实现

基于单片机控制的智能充电器的设计与实现

作者: 时间:2012-06-19 来源:网络 收藏

表1 PWM频率与分辨率的关系(fclk=40MHz)

QQ截图20120518141801.JPG

为了保证足够高的分辨率,保证输出电压纹波受PWM分辨率的影响小于输出滤波电容的影响,本设计选用10位PWM。

同时,考虑到其它需求,本系统对数字控制器的具体要求主要包括:(1)内置ADC模块,至少2个ADC信道,精度在10位以上;(2)至少内置1个PWM单元,PWM精度在10位以上;(3)至少两个定时器;(4)有中断优先级设置;(5)至少5个I/O口;(6)价格低于50元人民币。

综合考虑以上因素,选择microchip公司的PIC18F2620作为数字控制芯片。PIC18F2620的主要性能有:10个10位的ADC信道;最高外接时钟频率可达到40M:1024字节的数据EEPROM,用于储存可变数据;可延长电池寿命的低功耗强化设计,睡眠模式下耗电仅为100nA等等,其性能满足系统需要。

4 系统软件设计

4.1 主程序设计

三阶段充电,开始时采用恒流充电,中间为恒压充电,最后采用浮充充电。该充电法减少了充电出气量,充电比较彻底,延长了蓄电池使用寿命。三阶段充电法充电电流和充电电压变化曲线如图2所示。

QQ截图20120518141815.JPG

图2 三阶段充电特性图

根据三阶段充电的原理,画出系统的主程序流程图,如图3所示。(其中Um为蓄电池的最大电压上限,Ubat为恒压充电门限,Ibat为恒流充电门限,其值一般取蓄电池容量的1/10。)

单片机系统的主程序,主要用于A/D采样初始化、PWM初始化、定时和中断系统、定时器的初值设定,然后一直检测充电器的电压与电流,进行三阶段的自适应充电。

程序中需要注意一下问题。

(1)因为需要同时采样电压和电流2个变量,此时可根据PIC18F2620的采样单元特点,可通过直接改变A/D控制寄存器ADCON0.2~3位进行更换通道,其速度快、花费时间少。

(2)中断系统是程序的重点部分。由于采样单元不可能一直工作,这样既浪费单片机的运算能力又影响其它部分的工作,使系统的工作效率低下。为了使单片机更有效率的工作,系统采用定时中断的工作方式:利用TMR0定时器进行定时,固定一定的时间后进入中断。目前,市面上的单片机一般都存在中断优先级,比如系统采用的PIC18F2620有2个优先级,可以通过设置不同的中断向量进行不同优先级的操作。对应的高优先级中断服务子程序,使TMR0复位,并载入相应的初值,进入下一次的定时状态。低优先级中断服务子程序,则是复位A/D模块使能位,读取并存储A/D转换结果,然后判别相应的电压、电流采样值所处的阶段,最后经过各个阶段对应的PI调节修改占空比。

QQ截图20120518141845.JPG

图3 主程序流程图

4.2 采样子程序

采样处理后的电压、电流信号,不可避免的存在系统所带来的噪声和干扰,为了准确的测量和控制,必须滤除这些噪声和干扰。除了在硬件电路上进行滤波,还可采用软件滤波或称为数字滤波。常用的数字滤波方法有很多,本系统采用了平均值法:多次采样后排序,再去掉最大和最小值之后求平均值的方法,提高了采样精度。

4.3 PI子程序

为了消除积分饱和的影响,本系统采用增量式PI控制算法,并利用遇限削弱的方法。

遇限削弱积分PI算法,实际上是一旦控制量进入饱和区范围,则停止增大积分项的运算而只执行削弱积分项的运算[5]。PI程序流程图如图4所示。



评论


相关推荐

技术专区

关闭