电子说
脉冲信号发生器是信号发生器的一种。信号发生器按信号源有很多种分类方法,其中一种方法可分为混和信号源和逻辑信号源两种。其中混和信号源主要输出模拟波形;逻辑信号源输出数字码形。混和信号源又可分为函数信号发生器和任意波形/函数发生器,其中函数信号发生器输出标准波形,如正弦波、方波等,任意波/函数发生器输出用户自定义的任意波形;逻辑信号发生器又可分为脉冲信号发生器和码型发生器,其中脉冲信号发生器驱动较小个数的的方波或脉冲波输出,码型发生器生成许多通道的数字码型。如泰克生产的AFG3000系列就包括函数信号发生器、任意波形/函数信号发生器、脉冲信号发生器的功能。另外,信号源还可以按照输出信号的类型分类,如射频信号发生器、扫描信号发生器、频率合成器、噪声信号发生器、脉冲信号发生器等等。信号源也可以按照使用频段分类,不同频段的信号源对应不同应用领域。
单脉冲和双脉冲波形如图1所示。
主振级与下一级隔开,避免下一级对主振级的影响,提高频率的稳定度。脉宽形成级一般由单稳态触发器和相减电路组成,形成脉冲宽度可调的脉冲信号。放大整形级是利用几级电流开关电路对脉冲信号进行限幅放大,以改善波形和满足输出级的激励需要。输出级满足脉脉冲信号发生器的种类繁多,性能各异,但内部基本电路应包括图2所示的几个部分。
主振级一般由无稳态电路组成,产生重复频率可调的周期性信号。隔离级由电流开关组成,它把主振冲信号输出幅度的要求,使脉冲信号发生器具有一定带负载能力。通过衰减器使输出的脉冲信号幅度可调。
利用单片机设计PWM脉冲信号发生器
PWM是脉冲宽度调制(Pulse Width Modulation)的英文缩写,它是开关型稳压电源中按稳压的控制方式分类中的一种,而脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。
简单的说,PWM是一种对模拟信号电平进行数字编码的方法。理论上讲就是电压或电流源以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的,通的时候就是电源被加到负载上,断的时候就是供电被断开的时候,所以PWM信号仍然是数字的。要想达到这样一种脉宽调制效果,模拟电压和电流时可以直接控制。例如音响的音量控制,在简单的模拟电路中,它的控制是由连接了一个可变电阻的旋钮来实现的,其过程是拧动旋钮,电阻值变小或变大,流过该电阻的电流也随之增加来减小,从而改变驱动扬声器的电流值,那么声音也就相应变大或变小。从这个例子来看,模拟控制是直观而简单的,但是并不是所有的模拟电路都是可行并且经济的,其中很重要的一点就是模拟电路容易随时间漂移,它的调节过程就很困难,为了解决问题就要增加很多的电路,使得电路变得复杂并且昂贵。除此之外,模拟电路中许多的元器件会发热,也就相对提高了电路的功耗,并且对噪声也敏感,任何干扰或噪声都会改变电流值的大小。
综上所述,通过数字方式来控制模拟电路可以大幅度降低系统的成本和功耗,而单片机I/O口的数字输出可以很简单地发出一个脉冲波,在配以外部元器件就可以调节脉冲波的占空比,完成PWM的功能。本文主要介绍利用89S52系列的单片机,控制某个I/O口中一个管脚的数字输出,生成相应周期的脉冲波,并利用按键控制其占空比的调节,包括了占空比自小到大和自大到校的顺序及倒序可调,其调节范围广,操作简便,各元器件间的干扰较小,对模拟电路的控制十分有效。
1、PWM波的生成
PWM波既为数字输出,就是其幅值只有高电平(ON)和低电平(OFF)之分,所以只要使单片机中作为PWM波输出端的那个管脚输出“1”和“0”,并且搭配不同的时间段,就可以形成不同周期的PWM波。举例说明:若要生成周期为10ms的脉冲,就可以利用单片机编程指令控制其输出端输出“1”,并且保持一段时间tp,然后再输出“0”,同样使其保持一段时间tr,两种数字输出保持的时间必须要满足,现就已生成10ms周期的脉冲波,而PWM波与该脉冲波的区别就是还要能够调节占空比。占空比是指正半周脉宽占整个周期的比例,即高电平保持时间于周期的比值,该比值为百分数(),因此在周期一定的情况下,调节占空比就是调节高电平保持的时间。
2、应用编程
本文介绍的PWM波是利用单片机定时中断去确定脉冲波的周期,并且通过两个按键自增和自减某个变量送至中断中,通过此变量去分配高低电平各自占用的时间,形成不同的占空比,即假设一个周期满额比例值为10,则高电平保持时间的比例为该变量值,那么低电平保持时间的比例就是10减去该变量值。
如图1所示为单片机的外部接线图,其中省略了单片机最小系统,此图即可利用89SC52单片机设计出满足周期为10ms、初始占空比为50%、占空比调节范围为0~100%的PWM脉冲信号发生器。占空比调节范围是指高电平保持时间为0~10ms,那么低电平保持时间就是10ms~0。P0.7脚为PWM波输出口,作为PWM脉冲信号发生器可连接其它电路,本文仅连接示波器去观察波形的占空比变化情况,P2.0脚为自增按钮控制端,每按一次高电平保持时间增加1ms,P2.1脚为自减按钮控制端,每按一次高电平保持时间减少1ms。图2所示为初始50%占空比的波形图以及20%、40%、60%和80%占空比的波形图,以此看出PWM的变化。
89C52单片机生成PWM波C语言程序:
#define uint unsigned int
sbit pwm=P0^7;
sbit k1=P2^0;
sbit k2=P2^1;
bit bz;//定义一个按键是否松开的标志位
uchar b;
uchar m=5;//m为控制占空比的变量,初始占空比50%
void delay(uint i)
{while(i--);}
void dingshi() interrupt 1//定时中断
{TL0=(65536-1000)%256; //1ms初始化
TH0=(65536-1000)/256;
b++;
if(b==10) b=0; //10ms周期定时
if(b void main()
{EA=1;ET0=1;
TMOD=0x01;//定时0工作在方式1,1ms中断1次
TL0=(65536-1000)%256;
TH0=(65536-1000)/256;
TR0=1;//开中断
while (1)
{if((k1==0)&&(bz==0)) {delay(1110);if(k1==0){bz=1;m++;if(m==11) m=10;}}//每按一次占空比自增10%
if((k2==0)&&(bz==0)) {delay(1110);if(k2==0){bz=1;m--;if(m==255) m=0;}}//每按一次占空比自减10%
if((k1==1)&&(k2==1)) bz=0;//判断按键是否松开}}
综合硬件设计和软件设计可以看出,利用单片机数字输出方式可以很简单的完成脉冲宽度的调制,无须通过对模拟电路各元器件参数的计算进行调节,并且可以随时调整输出不同周期的脉冲波,利用该方法设计的PWM脉冲信号发生器可以很广泛。但是此设计也有一些缺点,其占空比只能按10%的比例调节,调节精度还有待提高。
全部0条评论
快来发表一下你的评论吧 !