APP下载

用单片机实现频率可调的PWM控制信号

2010-04-12林广峰

科技传播 2010年12期
关键词:中断端口指令

林广峰

广东汕头超声电子股份有限公司,广东 汕头 515041

0 引言

在嵌入式系统及控制系统中,经常需要产生特定频率和PWM的方波脉冲信号,以便实现精确的控制过程。在实际应用中,为了达到最佳的控制,往往需要对驱动控制信号的频率和占空比都能够按要求进行调节,也就是需要实现可调频率的PWM控制。在传统电路中,用555来实现的是比较经典的电路,但通过R、C来调节脉冲时,频率和占空比可调的范围不大,器件的误差带来的影响较大,调节时不直观,调节参数具有一定的离散性,不利于批量生产。对于需要经常改变参数的情况更不方便。

随着数字技术的不断发展,单片机的性能越来越强,价格也越来越低,51系列作为非常成熟的8位单片机,在国内得到了广泛的应用。采用51系列单片机除了能完成所需的控制功能外,完全能够实现对方波信号的频率和占空比的调节,不再需要额外的信号发生电路,采用软件控制这种方法,电路简单,调节方便,显示直观,误差小,一致性好,可靠性高。

1 实现原理

脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,它是通过调节方波的占空比来实现的,只要占空比的步进精度足够,就可以通过PWM来实现数字输出信号对模拟电路的有效控制,比如灯光的亮度、流量的控制、开关电源电压的控制等等。脉冲宽度调制在工业控制、电源变换、测试测量、通信等领域都有广泛的应用。

在一些文献中,产生各种波形信号,采用的是软件延时的方式,但这种方式占用了单片机的处理时间,且精度不易控制,尤其是在调节时计算比较复杂,本文采用的是定时器中断方式,单片机通过中断来产生对应的脉冲信号,还可以同时进行其他输入、输出控制功能,定时器的精度较高,调节时也仅需通过软件调整对应的设置值即可。单片机内部一般都包含有定时/计数器功能,通过对系统时钟的分频计数,可以设定某个输出端口的接通、断开时间,也即高、低电平的时间,就可以通过这个输出端口实现频率和占空比可调的脉冲信号。频率即为高、低电平总时间也就是周期的倒数。占空比就是高电平接通时间与周期之比。

对于51系列单片机来说,通过编程设置其方式寄存器TMOD可设定定时器工作于所需的工作模式,我们仅需按手册说明将其工作设定为定时方式,设定好定时时间,在时间到达时就会产生定时中断,单片机响应定时中断,我们在定时中断中根据所需的时间控制相应输出端口的电平,即可实现对输出端口信号的频率、占空比的控制。

在系统设计中,首先需要确定系统最小能调节的基准周期,也就是定时器的周期T0。

若PWM调节的占空比的步进精度为△d,则我们能调节得到的最高频率fh为:

则根据fh即可求出所需的T0值;

式中的C为单片机的周期指令系数,一般51系列为12周期指令系统,即每条指令需要12个系统周期,则C的值为定时中断的指令周期数乘以12。目前一些新的51系列单片机,比如STC有单周期指令的单片机,则C的值为定时中断的指令周期数,所以为了得到较高的可调节的频率,一方面可以采用较高的时钟频率,另一方面则可以采用单周期指令的单片机。

虽然STC单片机有具备PWM调节功能的型号,但是其占空比是按1/256周期为步进的,在我们不需要这么细的调节范围时,反而限制了所能达到的最高调节频率,同时也为了通用性,我们采取的是用定时中断的方式来设定占空比、频率,控制单片机的一个通用端口作为信号的输出。

2 系统实例

我们的一个实例系统的系统原理框图如图1,单片机采用了单周期的STC16C5628系列单片机,其最高的系统时钟频率可达40MHz,在实例中采用的外接晶振为32MHz。为了较好的人机交互调节,采用了按键输入和LED显示输出部分。通过接收按键输入,频率可以设置从1KHz~80KHz,占空比调节范围为5%~95%(最小步进为5%),在调节过程中用2位数码管LED显示对应的频率和占空比,能够很好地实现了最高80KHz的频率可调的PWM信号输出,用来驱动对应频率的超声波探头,得到了较好的效果,并通过调节占空比,获得了最佳的谐振。

图1 系统原理框图

3 软件流程

这里主要描述产生频率、占空比可调信号的算法流程,其他的按键输入、数码管分时显示控制模块都是通用的一些方法,不作进一步说明。

在系统软件中首先需要完成以下初始化工作:

1)根据所需脉冲波的频率f、占空比步进值△d,按照以上所述的公式(1)计算出所需设置的定时器/计数器的周期T0,再除以系统时钟频率得到所需设定的定时器常数;

2)根据占空比和脉冲周期除以T0计算出占空比设定值n,以及脉冲周期计数值N;

3)设定定时器的工作模式;

4)设定定时器的常数;

5)设定一个通用I/O管脚作为输出;

6)启动定时器,计数值m清零,输出端口输出高电平。开定时器中断,开始一个脉冲周期。

定时器中断的流程如图2所示,通过在定时中断中比较计数值m和设定的占空比值n,周期计数值N来控制输出端口的电平,即可在输出端口得到所需的理想的脉冲波形。

图2 定时中断流程图

通过按键改变占空比和频率时,单片机只需要根据所要设定的值按照公式重新计算定时中断的周期T0,占空比计数n,脉冲周期计数N,再按以上的步骤对定时器重新初始化一次即可,定时中断不需进行修改。

4 结论

本文通过用单片机来实现频率、占空比可调的方波脉冲信号,对于很多工业控制场合来说有很好的适应范围。以上描述的电路,除了用来实现对超声波探头的驱动外,还可以直接作为一个简单的方波脉冲信号发生器,用来控制开关电源、以及LED灯亮度控制等,都得到了比较好的效果。

系统软件主要采用定时器中断方式来实现,单片机还可以进行常规的按键、显示、控制等处理,能有效降低系统的总体成本。

[1]何立民.单片机应用技术选编.北京航空航天大学出版社.

[2]李华.MCS-51系列单片机实用接口技术.北京航空航天大学出版社.

[3]STC12C5628AD系列单片机用户手册.宏晶科技.

猜你喜欢

中断端口指令
听我指令:大催眠术
一种端口故障的解决方案
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
端口阻塞与优先级
跟踪导练(二)(5)
千里移防,卫勤保障不中断
初识电脑端口
8端口IO-Link参考设计套件加快开发速度
坐标系旋转指令数控编程应用