厉俊 郑佳蕙
摘 要:本设计以STM32单片机为主控元件产生PWM脉冲,双向DC/DC电路为核心电路,利用以IR2103芯片为主的驱动电路控制双向DC/DC电路中场效应管的开关。电路采用闭环反馈控制,高精度的INA282作为采样电路核心芯片输出反馈信号,单片机根据反馈信号对PWM做出调整,对并联供电系统的输出电流电压进行稳定的步进调整,从而实现稳压输出及电流的不同比例分配。该系统的输出误差和负载调整率低,具有过流保护功能,经测试系统能输出稳定直流电压8V,电流误差绝对值小于2%,供电效率达到70%以上。
关键词:STM32单片机;开关电源;并联供电;过流保护;比例分配
中图分类号:TP242 文献标识码:A
Abstract:In this design,the STM32 MCU is used as the main control component to generate the PWM pulse.The bidirectional DC/DC circuit is the core circuit.The drive circuit based on the IR2103 chip is used to control the switch of the FET in the bidirectional DC/DC circuit.The circuit adopts closed-loop feedback control.The high-precision INA282 is used as the sampling circuit core chip to output the feedback signal.The MCU adjusts the PWM according to the feedback signal,and performs stable step adjustment on the output current and voltage of the parallel power supply system to achieve the regulated output and distribute different proportions of current.The system has low output error,low load regulation,and an overcurrent protection function.The tested system can output a stable DC voltage of 8V.The absolute value of the current error is less than 2%.The power supply efficiency is over 70%.
Keywords:STM32 single-chip microcomputer;switching power supply;parallel power supply;overcurrent
protection;proportional distribution
1 引言(Introduction)
随着电源技术的不断发展,直流电源供电系统已广泛应用于工业生产、仪表仪器测量、航天军事、计算机控制和日用家居等领域。在直流电源的实际使用过程中,各种负载对于电源的要求越来越高,当单台电源不能提供负载持续工作的全部容量时,就需要多个直流电源模块并联使用,以提高电源的容量、功率、精度和运行的可靠性。由于电源各自参数的差异性,使得各个电源的输出电压和内阻均会存在差异,当其中一个电源发生故障,其他电源往往处于重载工作状态[1],无法满足电源的稳定性和安全性的要求。因此将多个小功率开关电源[2]模块以“积木式”并联组合起来,较单个大功率电源系统有稳定性强、灵活性高、效率更佳和方便维护等优点。本文设计了利用STM32单片机控制,以双向DC/DC电路为核心电路的开关电源模块并联供电系统。本供电系统对输出电压电流进行采样检测,反馈至单片机闭环控制,从而实现输出电压恒定和电流成比例分配的功能。并采取过流保护措施,保证电源模块不会损坏,极大地提高了并联供电系统的稳定性和可靠性。
2 并联供电系统总体设计(Parallel power supply system overall design)
本系统由两个DC/DC电源并联模块、单片机控制模块、电压电流采样检测和过流保护模块等部分组成。输入的24V直流电压通过两个额定功率均为16W,输出电压为8V的DC/DC并联电源模块降压,利用STM32产生PWM脉冲,高精度的INA282作为采样电路核心芯片输出反馈信号,单片机根据反馈信号对PWM做出调整,对并联供电系统的输出电流电压进行控制和调节,电路采用闭环反馈控制[3],极大地提高了并联供电系统的稳定性和可靠性,实现高精度调控。该系统的输出误差和负载调整率低,经过测试,该系统能很好地输出稳定直流电压8V,实现两路电流不同比例的分配,且各模块电流误差绝对值小于2%,系统总体供电效率达到70%以上,并且当系统的总电流超过设定值4.5A时,会启动过流保护及自动恢复功能。系统总体设计如图1所示。
3 并联供电系统的硬件电路设计(Hardware circuit design of parallel power supply system)
3.1 主控模块单片机的选用
采用超低功耗的STM32单片机作为开关电源模块并联供电系统的核心主控模块,STM32是低电压、低功耗、高性能的ARM Cortex-M內核[4]的32位微控制器。STM32外设丰富,功能齐全,有高达112个的快速I/O端口、13个通信接口、11个定时器、3个12位的us级的A/D转换器和2个通道12位的D/A转换器,相对于其他单片机而言,低能耗、集成广、主频高、操作简单、适应强、调试方便、稳定性高。它能通过内置定时器产生占空比不同的PWM波,改变PWM波的频率,实现实时监测和调节。
3.2 DC/DC核心控制电路的设计
本系统的核心电路主要为两个双向DC-DC电路并联构成的供电系统。输入直流电压,通过DC-DC并联结构降压,经STM32芯片采样、控制和调节,输出稳定的直流电压。
一个双向DC-DC电路可以看作可由两个单向DC-DC变换器反向并联而得,进而更高效的实现高压能量端与低压端之间的双向流动。DC/DC模块并联原理图如图2所示。
本文中研究所用到的是其中的Buck降压电路端。相比于纯Buck电路,它的优点在于二极管两端并联了一个MOS管,自举回路[5]不会变成低阻回路,解决了电路在小电流时无法满足 (其中D为占空比)的线性条件。图3为DC/DC模块并联电路图。
STM32单片机分别给两个DC/DC电路各提供一路可调占空比(D)和频率的PWM调制信号,两路PWM信号分别通过以IR2103芯片为核心的驱动电路,各产生两路频率相同、相位互反的增强PWM,用以驱动DC/DC电路上的四个MOS管,来实现输出电压大小的变化。
如果对上下两个DC/DC电路同时进行电压和电流的操控,就难以平衡输出电压的大小和电流的分配。因此,针对电压和电流两个指标,将两个DC/DC电路拆分为一个恒压源和一个恒流源分别进行控制。在稳压源输出电压稳定的情况下,并联总电压大小必定稳定;在总电流一定,恒流源输出电流恒定的情况下,另一路的电流必定也被钳制在稳定的范围内波动。
3.3 DC/DC核心控制电路的设计
采样电阻采用电阻极小、有较宽的使用温度范围的康铜丝,利用康铜丝上通过的电流转换为微弱的电压,从而能够准确地反映出电路中电流的微小变化。但数量级较小的采样电压易与电路自带的电压波动混淆,无法输入单片机进行精确的数值读取。因此必须将采样电压放大后再输入STM32单片机,减少噪声对其精确性的干扰。
INA282是TI公司生产的一款高精度,宽共模输入范围[6]的双向电流检测器。该芯片为内部基准的超小型、低功耗、16位模数转换器。使用INA282作为采样电路的核心芯片,通过它将采样电流稳定放大约50倍,将放大的输出电压经可调电阻进行分压,保证最大的输出电压在3.0V左右,低于STM32单片机可承受的最大输入电压3.3V。采样电路原理图如图4所示。
4 并联供电系统的软件设计(Software design of parallel power supply system)
并联供电系统软件设计采用Keil5作为开发平台,用于处理采样收集的反馈数据和实时改变单片机输出的调制信号。系统程序采用模块化方式设计,主要包括三通道ADC采样[7],电流分流比例调整,PWM波占空比实时调整等,根据流程图各功能模块的算法程序设计:在程序开始对各功能模块进行初始化,启动并联供电系统开始工作。当电路系统稳定工作后,调整负载以改变总电流大小,STM32单片机不停地檢测与采样电路输出相连的单片机I/O口,一旦查询到I/O口有信号,就进入相应的子程序其执行程序,控制PWM波的输出情况,实现稳压分流的最终效果。图5为并联供电系统软件设计流程图。
4.1 PWM波的输出
双向DC-DC电路的输出电压大小除了与输入电压有直接关系外还与通断MOS管的PWM波的占空比有关,单片机通过引脚上的I/O口输出PWM信号,在输入电压给定的情况下用以驱动DC/DC电路上的两个MOS管来实现输出电压大小的变化。初始化程序片段如下:
TIM_TimeBaseStructure.TIM_Period=arr;
//设置在下一个更新事件装入活动的自动重载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler=psc;
//设置用来作为TIM1时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上计数模式
脉冲宽度调制模式可以生成一个PWM信号,该PWM信号频率由ARR寄存器值决定,其占空比则由CCR寄存器[8]值决定。程序片段如下:
void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3)
{
assert_param(IS_TIM_LIST3_PERIPH(TIMx));
TIMx->CCR3=Compare3;
}
4.2 稳压源PWM波实时调整
单片机实时改变PWM波的占空比,实现输出电压大小的变化,从而控制电压或电流。
依据Buck电路(其中D为占空比)的公式,当检测到输出电压小于设定值,则增大PWM波的占空比来增大接下来的输出电压;反之,减小PWM波的占空比。以下为在主函数内稳压源端PWM波动态调整以稳定电压在设定范围内的程序片段:
int main(void)
{
u16 adcx,adcy,adcz; //adcx稳压源电压采样,adcy恒流源电流采样,adcz总电路电流采样
TIM1_PWM_Init(9999,0); //定时器两路PWM对应IO口PA8,PA9
Adc_Init();
u16 zhankongbi1=3850; //恒流源一路PWM1的占空比
u16 zhankongbi2=3800; //稳压源一路PWM2的占空比
u16 z1,z2; //根据总电流大小调整,设定范围z,其中z1是最小值,z2是最大值
TIM_SetCompare3(TIM1,zhankongbi1);
while(1)
{
adcx=Get_Adc_Average(ADC_Channel_0,255);
//获取稳压源的采样 //转换值adcx=采样值*
4096/3.3
if(adcx>2340) //输出电压8V的转换值在2300-2340之间
{ zhankongbi2-=5;
TIM_SetCompare4(TIM1,zhankongbi2);
}
if(adcx<2300)
{ zhankongbi2+=5;
TIM_SetCompare4(TIM1,zhankongbi2);
}
}
4.3 ADC采样监测
单片机通过ADC通道获取采样电压,通过短时间内多次采样取平均值[9]得到相对准确的数值。程序片段如下:
u16 Get_Adc_Average(u8 ch,u8 times)
{
u32 temp_val=0;
u8 t;
for(t=0;t {temp_val+=Get_Adc(ch); delay_ms(5); } return temp_val/times; } 4.4 比例确定及步进逼近 单片机从I/O口接收到的反馈电压信号通过转化公式: 转化成adc采样值进行比较。由于硬件电路具有自带的噪声波,导致必定会产生不可避免地误差,因此本研究通过步进加减[10]改变PWM占空比使反馈值不断逼近计算结果得到的adc值,使反馈得到的adc值重复进入子程序自动调整,最后在一个小区间范围内稳定波动。以下为查询步进式调整恒流源端PWM信号占空比的函数adjcurrent()。 void adjcurrent(int z1,int z2) { if(adcy>z2) { zhankongbi1-=5; TIM_SetCompare3(TIM1,zhankongbi1);} if(adcx { hankongbi2+=5; TIM_SetCompare3(TIM1,zhankongbi1);} } 在主函數内需要根据采样得到的总电流采样值adcz确定均流需要调整的比例,当adcz进入一个设定范围,就默认其总电流达到了一个确切值,通过判断语句后进入子程序。子程序内根据总电流采样值adcy要逼近的计算值预设定了其允许波动的上下限值z1、z2,根据极值z1、z2调用执行adjcurrent()调整电路。 if(adcz>=3100&&adcz<3140) {z1=2520;z2=2350; adjcurrent(z1,z2);} 4.5 过流保护 当调整负载后总电流值超过4.5A时,单片机的采样值adcz经过判断后进入子程序,在子程序内设置两路PWM信号的占空比为零,此时相当于单片机的I/O口没有调制信号输出,电路没有驱动信号不工作。延时6秒,在期间手动将负载阻值扩大,防止再过流,6秒过后PWM波恢复输出且占空比为重新设定的初值。 以下为过流保护的程序片段: if(adcz>1240) //判断过流 { zhankongbi1=0; //过流保护 zhankongbi2=0; int i; for (i=1;i<=6;i++) //延时6秒 { delay_ms(10000);} zhankongbi1=2000; zhankongbi2=2000; //自动恢复 } 5 测试方案与结果(Test plan and results) 通过多次测试和误差计算,实际测试效果均达到并超出预期指标,测试结果如表1所示。 6 结论(Conclusion) 本文设计了一款以双向DC-DC电路为核心的开关电源模块并联供电系统,通过以INA282芯片为主要器件的采样放大电路,将取得的电压反馈给STM32单片机的A/D转换器[11]进行采集,软件部分通过单片机产生PWM给模块提供控制电压,对硬件进行控制,构成闭环控制结构,实现了并联电路的电压稳定输出、按比例调节分流和过流保护的功能。经过测试,该系统供电系统的效率不低于70%,在指定比例下的电流误差绝对值不大于2%,过流保护调试时偏差在±0.2A以内,验证了本文所述电路参数的正确性及控制策略的可行性。 参考文献(References) [1] 彭汉莹,王宇,韩改宁,等.基于单片机的智能灌溉系统设计[J].软件工程,2017,20(02):40-43. [2] 张津杨,司吉旗.基于STM32单片机的开关电源并联供电系统[J].南京工程学院学报(自然科学版),2016,14(04):38-41. [3] 张可儿,薛彪.开关电源模块并联供电系统的设计与实现[J].世界有色金属,2016(05):28-31. [4] 陈小桥,陈慧,李俊,等.一种高精度开关电源模块并联供电系统的研究[J].实验室研究与探索,2015,34(09):103-106. [5] 邓兴旺.基于DSP的并联DC/DC变换器数字均流技术研究[D].西安科技大学,2015. [6] 付英剑,秦庆磊.一种开关电源模块并联供电系统的设计[J].电子技术与软件工程,2014(15):154-155. [7] 孙武,马旭东,朱向冰,等.数字化开关电源均流技术研究[J].电子世界,2014(07):14-15. [8] 白炳良,周锦荣.基于单片机的开关电源并联供电系统的设计[J].大学物理实验,2013,26(06):58-60. [9] 羅巍,杨彦斌.任意比例分流的并联开关电源供电系统设计[J].自动化与仪器仪表,2013(04):51-54;225. [10] 肖卫初,陈伟宏.一种高效率的开关电源并联供电系统研制[J].控制工程,2013,20(03):452-455. [11] 易映萍,杨坚,姚为正.DC/DC开关电源模块并联供电系统均流控制研究[J].电子技术应用,2012,38(09):64-66. [12] 周永汉,陈统,祝帅,等.开关电源模块并联供电系统的设计[J].数字技术与应用,2012(03):121;123. [13] 皮波,杜宇飞.基于TLP250的开关电源模块并联供电系统研究[J].单片机与嵌入式系统应用,2018,18(11):67-71;74. 作者简介: 厉 俊(1999-),男,本科生.研究领域:电子技术及信息科学,电力电子技术. 郑佳蕙(1999-),女,本科生.研究领域:电子技术及信息科学,电力电子技术.