本文主要是介绍基于单片机的恒流开关电源 BUCK电路设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 前言
1.1课题研究意义
开关电源顾名思义,开关电源便是使用半导体开关器件(如晶体管、场效应管、可控硅闸流管等),经过控制电路,使半导体开关器件不停地“导通”和“关闭”,让半导体开关器件对输入的电压进行脉冲调制,从而完成直流到交流、直流到直流电压变换,和输出电压可调和自动稳压。
开关电源一般有三种工作模式:频率、脉冲宽度固定模式,频率固定、脉冲宽度可变模式,频率、脉冲宽度可变模式。前一种工作模式多用于直流交流逆变电源,或直流/直流电压变换;后面两种工作模式一般用在开关稳压电源。另外,开关电源输出电压也有三种工作式样:直接输出电压的方式、平均值输出电压的方式、幅值输出电压的方式。同样的,前一种工作方式经常用在直流/交流逆变电源,或直流/直流电压变换;后两种工作模式经常用于开关稳压电源[1]。
1.2研究现状及存在问题
近半个世纪以来,国内外学者对开关电源进行了很多的研究,取得了很多的成果。
1.2.1国外研究现状
上个世纪的50年代初,美国宇航局为了搭载火箭,开关电源诞生了,这便是开关电源诞生的起源,此开关电源以小型化、轻巧化为目标。在历史进程中进行了近半个多世纪后,开关电源技术越来越成熟,更因具备了性能稳定、小、发热较低、轻、转换效率高等优点慢慢的在取代了传统电源技术下所制造的不间断工作电源,并在电子设备等各领域有了广泛的应用。最终在80年代,率先完成了大部分电子产品的电源换代,同时也完成了全面开关电源普及化。在到来的20世纪90年代,开关电源更是进入了快速发展的黄金时间,家电、电子设备都得到更广泛的应用。又经历了几十年的努力下,现在的开关电源技术都有了技术性的重大突破与发展。更多新技术的发现与开发将当代开关电源又带上了另一个全新的时期,在高新技术领域的应用更是推动了高新技术产品的发展,其中以其小型化、简便化的特征尤为突出。
1.2.2国内研究现状
国内学者有关开关电源的研究,有以下研究状况:
伴跟着开关电源的诞生,1960年代初期,我国开始对开关稳压电源进行的设计,研制并加以生产。直到60年代中期才开始慢慢地进入了实用的阶段。在对开关电源有了一定认识后,我国在70年代初期便试着开始对无工频降压变换器进行深入研究应用在开关稳压电源上,继而对其进行设计、研制和生产。最终在1974年,我国第一台工频降压变压器式的开关电源被研发出来了,输出电流是5v,工作频率是10KHz。跟着我国开关电源的向前发展,我国许多研究所、工厂等在近十年发展中也纷纷研制出来了无工频降压变换器的开关稳压电源,这种开关电源的工作频率大概在20K左右,输出的功率在1000W以下,但是其型号与用途众多,都投入电子设备、电视机、通信等领域进行广泛的使用。跟着时期的发展,因为我国半导体与工艺跟不上时期的潮流,导致了自己生产与研制的开关稳压电源的关键元器件大部分仍要经过国外进口,导致当代开关电源技术与一些先进国家相比仍存有巨大的差距。
1.2.3目前存在的问题
综上所述,目前国内外学者研究的开关电源普遍存在以下四大方面的问题:
1)多数使用模拟IC控制,控制式样不够智能化;
2)不能显示输入和输出的电流电压状况;
3)多数开关电源为固定输出;
4)可调的开关电源只能通过电位器模拟调整,不能直接得到准确的预设电压。
1.3研究内容和方式
为了设计一种更加智能化的开关电源,必须进行更深入的开关电源机理研究,下文字阐述了具体的研究内容以及研究方法。
1.3.1研究方案
设计出一种基于STC系列51单片机的BUCK型直流降压开关电源是本课题所要研究的主要内容。本系统需要达到的预期目标是:在系统完成后,系统能预置电压,其步进的电压为1V,输出的电压的限度为0V~10V,输出电流为0~1A。同时液晶显示屏上可以显示出所预置的电压,另有实时的输入输出电压,实时的电流,来使得本系统可以让调整速度加快、提升精准度,同时也能使得电压和负载的调整率降低,提升系统的效率,不在附加额外的电源板,最后还可以让输出的纹波变小等。
1.3.2内容安排
1. 首先了解课题研究的意义,和国内国外相关发展动态。
2. 大致的概述设计的开关电源的系统方案。
3. 系统的硬件设计,包括输出电路,直流斩波电路,PWM发生电路,显示电路设计等。
4. 系统的软件设计,对应用的编程软件进行流程图讲解,对所用方式进行概述所。
5. 系统调试与测试,对做好的机开关电源进行调试与数据测试并对结果进行分析。
6. 最后简要的总结本系统设计的工作要点和所得收获。
2系统分析
2.1 系统论述
直流/直流变换是将固有的直流电压转换成可调整的电压,又叫做直流斩波。它有多种拓扑结构,本系统应用的是BUCK(降压式变换电路)型直流/直流,其特征是输出的电压比输出电压低。如图2-1所示。
2.2 Buck工作原理
当Mos管或者三级管导通很长很长时间后,所有的元器件均处在一种理想状态的情况下,此时电容的电压会等于输入的电压。在这样的条件下,我们使用BUCK变换器的充电和放电这两个阶段来对这个电路进行说明:
2.2.1在电感充电的情况下
当BUCK变压器处于充电的过程时,将开关闭合,此时三级管处于导通的状态,可以用一条导线来替代,替代后的等效图如下。当输入的电压经过电感这时刻,二级管因为反接,所以没起到作用,这里删去。再加上输入的是直流,因此电感发生的电感电流是成比率上升的,具体上升多少与电感的大小有关系,电感相当于一个恒定电流源,起传递能量作用,电容等于恒定电压源,在电路里起到滤波的作用。BUCK变换器充电阶段等效图如图2-2所示。
2.2.2在电感放电的情况下
当BUCK变压器处于放电的过程中,开关管子已经断开,此时的三级管处于截止状态,这里把它拿掉,等效电路图如下。在开关断开的时间里,因为电感的保持电流不变特征,电感上的电感电流不会一下子下降到零,而是把充电完成后所累积的电流值慢慢下降到0。在这个过程中,因为原来的电路已经断开了,因此电感沿着之前的方向,经过二极管D形成一个新的回路的,即流过电容对电容进行充电,从而保证了负载端获得连续的不间断的电流。BUCK变换器放电阶段等效图如图2-3所示。
综上所述,BUCK变换器的升压过程便是电感能量储存和释放的过程。在充电的过程时。电感通过流过它自身的电流不断储存能量,在放电的过程时,假如电容容量足够大,那电容的两端就可以在放电的过程中保持一个持续不间断的电流放电,假如这个通断的过程不断的被重复,那么就可以够让电容两端的电压低输出的电压,从而完成降压的目的。
2.3 Buck波形分析
波形如下所示。
2.4 Buck稳压分析
本设计采用串连型开关电源,其稳压原理框图如图2-4所示。在MOS管导通的时刻,电感L将流过的电流转换成磁能进行能量储存,电容C将流过电感L的部分电流转换成电荷储存。在MOS管关断的时刻,电感L发生反向电动势,输送给负载R并与续流二极管D组成回路,同时电容C将电荷转换成电流向负载供电。
经过不断导通与关断MOS管,使uo发生脉动电压,经过LC滤波电路使脉动电压转变成较稳定的直流电压Uo输送给负载,输出电压Uo的电压值与MOS管在一个周期内导通的时间成正比。当外部因素使输出电压或电流发生变化时,经过单片机自带的10位ADC实时采集输出的电压和电流,实时调整开关K导通的占空比,从而组成闭环电压控制电路,使输出电压能达到稳定。
2.4.1 LC滤波电路参数推导
2.5小结
综合以上的分析论证,本单片机的开关电源设计采用BCUK拓扑,经过原理分析和认证,最终推导选择了合适的电容和电感。
3硬件设计3.1总统框架
基于单片机的开关电源设计,由STC单片机、变压器,整流滤波电路,BUCK主回路、降压稳压电路、按键电路、液晶电路、电压检测电路、电流检测电路等组成。总体设计框图如3-1图所示。下面分别论证这些方面的详细方案选择。
3.2各部分电路的选择3.2.1 单片机
STC12C5A60S2单片机,在指令代码的方面可以完全兼容传统8051,同时它的速度比传统的8051单片机要快8-12倍,体现了其高速度的一面。这系列单片机其里面有专用的集成复位电路,另有8路高速的10位ADC转换,同时还兼有2路的PWM等,它的功能之强大远超传统的8051系列。
3.2.2 IR2104半桥驱动电路
IR2104是一种高性能的半桥驱动芯片,该芯片内部是采用被动式泵荷升压原理。上电时,电源流过快恢复二极管D向电容C充电,C上的端电压很快升至接近Vcc,这时假如下管导通,C负级被拉低,形成充电回路,会很快充电至接近Vcc,当PWM波形翻转时,芯片输出反向电平,下管截止,上管导通,C负极电位被抬高到接近电源电压,水涨船高,C正极电位这时已超过Vcc电源电压。因有D的存在,该电压不会向电源倒流,C此时开始向芯片里面的高压侧悬浮驱动电路供电,C上的端电压被充至高于电源高压的Vcc,只要上下管一直轮流导通和截止,C就会不断向高压侧悬浮驱动电路供电,使上管打开的时刻,高压侧悬浮驱动电路电压一直大于上管的S极。采用该芯片降低了整体电路的设计难道,只要电容C选择恰当,该电路运行稳定。IR2104应用电路图如3-3所示。
3.2.3 电路供电电源的选择
线性降压芯片7805。这个稳压IC需要的外围元件很少,IC内部还有过流、过热及调整管的保护措施,不但价廉且输出电压很稳定。78系列的稳压集成块要考虑输出与输入压差带来的功率损耗,所以一般输入输出之间压差要大于2V。其应用电路图如图3-4所示。
3.2.4 电流检测电路
方案一:霍尔电流传感器。电流流过霍尔传感器的线圈发生磁场,磁场随电流的大小变化而变化,磁场汇集在磁环内,霍尔元件输出跟着磁场变化的电压信号。经过检测电压值,能得到电流的大小。
方案二:电阻分压检测电路。经过在输出回路中串连采样电阻,将经过电阻的电流转换成两端的电压,经过检测电压值从而获得电流值。该检测方式电路和程序控制都比较简洁。
要完成对输出电压和电流的闭环控制,务必对输出电流和电压进行采样反馈。本设计采用如下图所示的电流电压检测电路。为了便于MCU采集,分压电阻发生的电压经过由LM358组成的同相比例放大器放大后,输入到MCU的ADC端口。
LM358内部集成的是双运放,单电源和双电源都能使其工作。
输出最大电流为2A。本设计采用电阻分压的式样对输出的电压进行实时检测,因为采样电压直接输送给单片机10位ADC进行检测,单片机供电电源为5V,所以其内部自带的检测的最高电压也为5V, 这个电路中,LM358由5V电压供电,最大输出电压和供电电源电压之前有1.2V压差,所以能输出最大电压为:
3.2.5 电压检测电路
3.2.6 按键电路
目前单按键这种模式的键盘使用方便,响应的快并且接口还简洁。综合以上本系统采用的是非编码式键盘。本系统设计应用了3 个按键,按照软件来定义它的功能,键盘与单片机的P2.3、P2.2、P2.1键盘是若干按键的集合,是向系统提供操作人员干预命令的接口设备。
S1为开关按键,按一下即有输出,按第二下即输出停止,如此循环
S2为输出电流增加。
S3为输出电压减少。
如图3-8所示
3.2.7 液晶显示模块
系统采样1602液晶显示。液晶驱动电流较小,能显示较大信息量,无需增外设电路。
能显示多行数据,方便用户进行更多的操作。
能显示输入输出的实时电压,输出的实时电流,预设的输出电压。如图3-9所示
3.3小结
综上所述,本开关电源设计采用STC12C5A60S2单片机发生47KHZ的PWM脉冲信号,经过IR2104控制MOS,从而控制整个BUCK(降压式变换)电路。单片机内部自带的10位ADC能通过电压电流检测电流实时反馈电流和电压数值,并由此调整输出的PWM的占空比,形成电流电压闭环控制系统。按键能设置输出电流从0.2A到2A,以0.01A递增,输出最大10V,液晶能显示实时输出电流与电压。总体电路图如3-10所示。
4软件设计
51的语言主要有汇编和C两种。汇编虽然运行快,但是编程繁琐,移植性差;C具备良好的可读性和移植性。本系统采用C语言编写程序,Keil C51作为集成开发环境。
4.1电压电流双闭环控制算法设计
电流 | 电压 | PWM | |
条件 | >2A | >10V | ++ |
<=10V | -- | ||
<=2A | >10V | -- | |
<=10V | -- |
软件设计包括:主程序设计,按键子程序设计,ADC中断程序设计
4.2主程序程序设计
主程序主要处理对时间要求不敏感的数据,例如按键检测,和显示电压电流状况,
此中显示这些数据时刻采用数字平均滤波算法,采集50个数据,继而取平均值,使得到的数据更加接近真实状况,使得显示出来的电压和电流不会乱跳,抗干扰能量得很大的提升。
4.3按键子程序设计
按键子程序中,按加键的话,增加输出电压预设;按减键的话,降低输出电压预设;按开关键的话,能控制IR2104的工作与否,从而控制整个BUCK的工作与否。
4.4 ADC中断程序
ADC中断程序中,因为有输入电压,输出电压,输出电流这3个数据要监测,所以采用通道轮流询问的办法完成。
于此同时,要完成电流电压检测的双闭环的话,要在ADC程序中加入PWM处理程序,使得当输出负载变动,引起检测到的输出电压ADC值变动,PWM需要实时响应这个变化,所以在ADC程序中,要加入PWM的重装数据的语句。
4.5 关键程序
void ADC_interrupt()interrupt 5 //ADC转换完后ADC_FLAG由硬件自动置位,
{
uint ADC_value; //ADC转换结果 10位
ADC_CONTR&=!ADC_FLAG; //clear ADCflag
ADC_value=(ADC_RES<<2)+ADC_RESL; // ADC_value=(ADC_RES<<2)+ADC_RESL;
switch(channel)
{
case 0: Battery_voltage=ADC_value;
channel=1;
break;
case 1: Boost_Buck_current=ADC_value;
if(!lock)
{
if((Boost_voltage<370)&&(Boost_Buck_current<(OUT_Current<<1))) //((Boost_voltage<boost_temp)&&[ size][="" p][p="20," null,="" left][size="12pt]" {[="" pwm_temp--;[="" if(pwm_temp250) PWM_temp=250;
}
CCAP1H = CCAP1L =PWM_temp;
}
channel=2;
break;
case 2:Boost_voltage=ADC_value;
channel=0;
break;
default:break;
}
ADC_CONTR=0xE8|channel;
ADC_ready=1;
}
STC12C5A60S2单片机内部自带的10位ADC能通过电压电流检测电流实时反馈电流和电压数值,并由此调整输出的PWM的占空比,形成电流电压双闭环控制系统。按键能设置输出电流从0.2A到2A,以0.01A递增,输出最大10V,液晶能显示实时输出电流与电压。
5系统测试5.1实物图片
实物由万用板手工焊接,板子的正面(a)和背面(b)如图5-1所示。
5.2电压调整率测试
5.2.1 测试仪器
5.2.2 测试方式
测量电路点如图5-3所示(3、4、5、6、7为测量点):
图5-3测量电路
第一步:在3、4点间用电压表测输出电压,在3、4点串入电流表在5、6点间用电压表测输出电压,在5、7点串入电流表;
第二步:在1、2点源接入市电;
第三步:调整可调变压器电阻,使电源满载输出;
第四步:调整稳压电源电压,使电压为12V,记录输入与输出电压;
第五步:逐步增大电源电压,每隔一段做一次的记录,直到输出电压的上限19V。
5.2.3 测试结果
表5-1 输出输入电压记录表
U2(V) | 12.96 | 13.01 | 14.04 | 15.05 | 16.04 | 17.01 | 18.01 | 19.01 |
Uo(V) | 10.01 | 9.98 | 10.06 | 9.94 | 10.02 | 10.06 | 10.03 | 10.07 |
(测试条件为输出电压10V,输出电流为1.00A)
电压调整率推导:
(5-1)
5.3 负载调整率测试
5.3.1 测试仪器
5.3.2 测试方式
测量电路如图5-3所示。
第一步:在3、4点间用电压表测输出电压,在3、4点串入电流表在5、6点间用电压表测输出电压,在5、7点串入电流表;
第二步:在1、2点间接上市电;
第三步:测试单片机输出的PWM波形、mos管脚的驱动波形。
第四步:输入电压为额定值10V,输出电流取最小值,记录最小负载量的输出电压;
第五步:调整负载为50%满载,记录对应的输出电压;
第六步:调整负载为满载,记录对应的输出电压;
测试数据记录如表5-2。
表5-2 不同负载下输出电压记录表
输出电流(A) | 1.00 | 0.53 | 0.04 |
输出电压(V) | 9.995 | 10.001 | 9.959 |
负载调整率推导:
5.3.3 测试结果
把示波器的其中一个探针接到单片机的PWM输出口,地接到另外一个端口,得到的测试波形如5-5、 把探针放在上下mos管脚G极的驱动波形波形如图5-6所示。
图5-5 单片机输出的PWM波形 图5-6 上下mos管脚G极的驱动波形
5.4 电路效率测试5.4.1 测试仪器
5.4.2 测试方式:
测量电路如图5-3所示。
第一步:在3、4点间用电压表测输出电压,在3、4点串入电流表在5、6点间用电压表测输出电压,在5、7点串入电流表;
第二步:在1、2点间接入市电;
第三步:输入电压为额定值18V,
第四步:调整负载由大至小记录对应的输出电压、输入电流、输出电压、输出电流;
第五步:返回第四步,直到输出电流达到自保护的状态。
这篇关于基于单片机的恒流开关电源 BUCK电路设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!