4.1.3.4 软件功能模块描述 4.1.3.4.1 系统初始化模块描述 //stop errant interrupts until set up cli(); //disable all interrupts port_init();//端口初始化 timer0_init();//5ms定时器初始化
timer1_init();//timer1初始化(用于产生pwm波) adc_init();//采样队列初始化、选定端口及基准电压 MCUCR = 0x00; GICR = 0x00;
TIMSK = 0x01; //timer interrupt sources, modify 2012-3-29 : i.e. timer0 overflow sei(); //re-enable interrupts //all peripherals are now initialized 4.1.3.4.2 按键消抖及功能定义模块描述
在5ms定时器中添加计数器counter,当计数器计到某一值时执行对应按键的操作,从而实现按键消抖;从左往右按键功能依次为:开闭环工作模式切换,电压值+1,电压值+0.1,电压值-0.1。
4.1.3.4.3 ADC采样模块描述
将每次采样得到的值存入数据采集队列中,并将队列指针移到下一个,将ADC控制标志置1 4.1.3.4.4 ADC采样平均模块描述(数字滤波器实现)
将采样队列(长度为50)累加之后求平均值作为当前的采样值,执行50个采样周期执行比较 4.1.3.4.5 ADC采样比较模块描述 对应代码
void Compare(void) {
if (SampleAverage>Sample[vout-49]) {
if((SampleAverage-Sample[vout-49])>100) pulsewidth[vout-49]-=20; else if((SampleAverage-Sample[vout-49])>50) pulsewidth[vout-49]-=10;
else if((SampleAverage-Sample[vout-49])>20) pulsewidth[vout-49]-=5;
else if((SampleAverage-Sample[vout-49])>1) pulsewidth[vout-49]--; 第16页
上海交通大学 电子信息与电气工程学院
OCR1A = pulsewidth[vout-49]; }
if (SampleAverage if((Sample[vout-49]-SampleAverage)>100) pulsewidth[vout-49]+=20; else if((Sample[vout-49]-SampleAverage)>50) pulsewidth[vout-49]+=10; else if((Sample[vout-49]-SampleAverage)>20) pulsewidth[vout-49]+=5; else if((Sample[vout-49]-SampleAverage)>1) pulsewidth[vout-49]++; OCR1A = pulsewidth[vout-49]; } } 当采样值大于基准值时,减小PWM波的占空比,以减小电压;如果小于,则进行相反的操作。将电压改变的步长分为四档,加快了当电压初值误差较大时电压调整的速度。为了使最后电压值达到稳定,允许采样值与基准值有1的误差。 4.1.3.4.6 寻找ADC及PWM标准值模块描述 添加函数void findvalue(unsigned int value),将ADC采样得到的值或当前的pwm占空比值直接显示在数码管上,便于定标。 第17页 上海交通大学 电子信息与电气工程学院 4.2 开环控制系统的硬件电路 4.2.1 主要功能与设计指标 4.2.1.1 主要功能 对于单片机提供的一定占空比但幅度相对不稳的PWM 波,先进行整形稳定幅度,然后通过LPF 转换为直流信号,信号的强度与占空比成正比,再把这个信号接入光耦,实现电气隔离,最后输出到DC-DC 开关电源模块,完成对输出电压的控制。 4.2.1.2 设计指标 在输入为30.0V±0.1V 时,输出电压控制精度0.05V。 ? 4.2.2 基本设计原理 该子系统由基准电源、整形、有源低通滤波与信号隔离变换4个模块组成。其关系如图13所示。基准电源模块对5V电源进行稳压并分压,输出4V稳定电压作为整型电路的稳压源,整型电路将单片机输出的不稳定的PWM信号整型,有源低通滤波模块将起转化为与占空比成正比的直流电流,通过信号隔离变换模块与DC-DC开关电源子系统连接,达到控制的目的。 图13 开环控制电路图[5] 第18页 上海交通大学 电子信息与电气工程学院 4.2.3 主要电路和参数设计 4.2.3.1 基准电源模块 4.2.3.1.1 核心器件TL431 TL431是一个有良好的热稳定性能的三端可调分流基准源。它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V 范围内的任何值。该器件的典型动态阻抗为0.2Ω。[6] 图14 TL431 管脚图[6] 图15 TL431 内部结构图 第19页 上海交通大学 电子信息与电气工程学院 4.2.3.1.2 外围电路设计 图16 基准电压模块设计[5] 由于TL431 正常工作时,R 端电压约为2.5V,所以R4,R5阻值应满足: 因此,我们组选择R4阻值为18KΩ,R5的阻值为30KΩ。 电阻R3的选取既不能过大,也不能过小。若R3太大,当输出电流变大时, R3 上压降太大,VKA无法保持所需电压,若R3太小,会导致功耗过大,损坏元件。本实验中取100~150Ω 为佳。 4.2.3.2 整型模块 4.2.3.2.1 主要功能 由于单片机的PWM波振幅不稳,故将其整形为振幅稳定为4V 的PWM波,使用一个有源的非门,将供电电源设置为4V,那么经过非门的输出将被强制为4V,并倒置波形。这就实现了波形的整形。 4.2.3.2.2 核心器件CD4011 CD4011 是一块包含4 个或非门的有源逻辑器件,工作时,高电平时输出VDD 电压4V,低电平时输出VSS 电压-5V。 第20页 上海交通大学 电子信息与电气工程学院