基于STM32PWM的正弦信号发生器设计

2014-12-31 11:31洪俊峰卜文强张榕鑫
关键词:低通滤波器正弦波正弦

洪俊峰, 卜文强, 张榕鑫, 程 恩, 袁 飞

(厦门大学 水声通信与海洋信息技术教育部重点实验室,福建 厦门 361005)

在电子和自动化技术的应用中,单片机和DAC(数模转换器)是经常需要同时使用的,然而许多单片机内部并没有集成DAC,即使有些单片机内部集成了DAC,但其精度往往不高,在高精度的应用中还是需要外接DAC,这样增加了成本。应用DDS技术虽然可以达到精度和控制的要求,但电路需要增加DA转换,对于高速的信号转换硬件要求比较高,同时成本也比较大[1]。但是,几乎所有的单片机都提供定时器或者PWM输出功能。如果能应用单片机的PWM输出(或者通过定时器和软件一起来实现PWM输出),经过简单的变换电路就可以实现DAC[2]。

脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,PWM是一种对模拟信号电平进行数字编码的方法。PWM信号仍然是数字的,所以抗干扰能力很强。理论上只要采样频率足够高,任何模拟值都可以使用PWM进行编码。在进行脉宽调制时,先离线计算出正弦信号表,将其存储在ROM中,然后通过控制使输出脉冲系列的各脉冲宽度按正弦表的规律变化。即在产生某一频率信号时,让采样脉冲的周期保持不变,而占空比做相应的变化。当对应正弦表取值较大时,脉冲的占空比也较大,反之,当对应正弦表取值较小时,脉冲的占空比也较小,这样输出波形即为一连串占空比不等且各脉冲宽度按正弦规律变化的脉冲波。输出波形经过适当的RC滤波可以做到正弦波输出。

1 应用PWM实现DAC的方案

1.1 理论分析

根据采样控制理论,冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量即指窄脉冲的面积,效果相同是指环节的输出响应波形基本相同。PWM控制技术即是在该原理的基础上发展起来的[3-4],这里以正弦波为例,其原理如图1所示。

PWM是一种周期一定而高低电平的占空比可以调制的方波信号,图1所示为一种在电路中经常遇到 的 PWM 波[5-6]。该PWM 的高、低电平分别为VH和VL,理想情况下VL为0,但是实际中一般不为0,从而在应用中产生误差。实际电路中典型的PWM波形如图2所示。

图2 实际电路中典型的PWM波形

图2的PWM波形可以用分段函数表示为:

其中,T为单片机中计数脉冲的基本周期;N为PWM波1个周期的计数脉冲个数;n为PWM波1个周期中高电平的计数脉冲个数;VH、VL分别为PWM波中高低电平的电压值;k为谐波次数,t为时间。

把(1)式展开成傅里叶级数,得到(2)式:

其中,VDC为直流分量;VHC为1次谐波分量;VHO为大于1次的高次谐波分量。(2)式中的直流分量与n成线性关系,并随着n从0到N,直流分量从VL到VL+VH之间变化,这正是电压输出的DAC所需要的。因此,如果能把(2)式中除直流分量的谐波过滤掉,则可以得到从PWM波到电压输出DAC的转换,即PWM波可以通过一个低通滤波器进行解调。(2)式中VHC的幅度和相角与n有关,频率 为1/(NT),该频率是设计低通滤波器的依据。如果能把1次谐波很好过滤掉,则高次谐波就应该基本不存在了。

1.2 PWM到DAC电压输出的电路实现

根据(2)式的结构,图3所示为最简单的实现方式。图3中,PWM波直接从MCU的PWM引脚输出,该电路没有基准电压,只通过简单的阻容滤波得到DAC的输出电压。R1和C1的具 体参数可根据(2)式中VHC的1次谐波频率来选择,实际应用中一般选择图3中阻容滤波器的截止频率为(2)式的基波频率的1/4左右。

图3 一种简单的PWM到DAC电压输出的电路

2 具体实现

主要设计方案如图4所示。STM32开发板从存储器中取得波形信息,根据正弦波取值表中存储的取值产生不同占空比的PWM信号,最后经过低通滤波器滤除高次谐波,产生需要的正弦波形[7-8]。

图4 设计方案图

分频系数与外部时钟决定了输出信号的频率范围。外部时钟的频率直接影响输出信号的最高频率。分频系数对系统时钟进行分频处理,可对输出PWM信号的频率进行控制。将1个周期的正弦函数进行M点离散,M取值大小影响输出信号的最高精度,可根据实际情况选取M大小。然后计算出离散后的正弦数据所对应的占空比的值,并按顺序存储到STM32的ROM 中。ROM中存储的数据即为按正弦规律变化的占空比计算值。计数器每进行1次计数就取1次占空比的值,这样就得到了ROM表中的占空比数据值。

2.1 正弦波样本

考虑一个模拟正弦波的表达式,并以固定的时间间隔对其进行采样,即

其中,θ为初始相位;N为采样点数。

在采样过程中,(3)式中的x值在每个采样间隔递增,从而得到模拟正弦波的采样版本。通过将f(x)的值以不同的幅度和不同的采样间隔输出,就可以得到任意幅度、任意频率的正弦波或余弦波。

可按照(4)式建立一个正弦波样本表,样本表将一个正弦波周期分为128个点,每点按7位量化(127对应最高幅值Vcc/2):

2.2 正弦波频率的确定

如果在1个正弦波周期中采用128个样点,那么对应1kHz的正弦波PWM的频率为128kHz。实际上,按照采样频率至少为信号频率的2倍的取样定理来计算,PWM的频率的理论值为2kHz即可。

考虑尽量提高PWM的输出精度,实际设计使用PWM的频率为16kHz(采样频率为信号频率的8倍),即1个正弦波周期(1kHz)中输出16个正弦波样本值。这意味着在128点的正弦波样本表中,每隔8点取出1点作为PWM的输出。

产生正弦波信号的频率由2个因素直接确定:PWM信号频率fPWM和采样点数N0。PWM信号频率又直接由定时器的分频系数P和系统时钟T0决定,公式为:

2.3 滤波器的选择及参数的确定

2.3.1 简易RC低通滤波器

简易RC低通滤波电路如图5所示。

图5 简易RC低通滤波电路

对于图5所示的低通滤波器,其截止频率为f0=1/(2πRC)。应根据电压精度要求确定R、C参数,工程上一般至少要保证f0小于PWM频率的1/4,故R、C乘积应该是越大越好;R不能太小,否则R上的电流大,对R的寿命及前级的寿命有影响;该电路后端一般接1个运放跟随以增大驱动能力,R的取值需要满足“远远小于”运放同相输入端的直流输入阻抗,所以R值又不能过大,通常应该在0.1~10.0kΩ之间;同时C的取值也不能太大,这是由于大容量的电容体积也很大,在某些场合无法容忍,而且大容量的电容,其直流损耗也大,对电路参数有影响。因此,应根据响应时间要求,确定时间常数,并且使RC时间常数远大于PWM周期;考虑到平滑度,RC充、放电时间常数应尽量相等。为了得到低频信号滤除高次谐波,选择1/4开关频率作为截止频率,即1/(2πRC)≤f0/4。

2.3.2 用LMF100芯片搭成4阶低通滤波电路

简易RC低通滤波器的滤波效果较差,会造成正弦波波形在频率较高时产生变形。LMF100是美国国家半导体公司生产的,由2个相互独立的通用高性能开关电容滤波器组成的集成电路。它可以外接时钟和2~4个电阻,组成各种各样的带通、低通、高通、带阻和全通滤波器。可实现1个截止频率为100kHz的4阶Butterworth低通滤波器电路如图6所示。

图6 4阶Butterworth低通滤波电路

3 实验结果与分析

3.1 实验结果比较

简易RC滤波器与LMF100 4阶Butterworth低通滤波器实验结果对比如图7所示,测试频率的统计见表1所列。由图7、表1可知,频率增大,则采样点数减少,造成正弦波精度降低。PWM的高、低电平在理想的情况下分别是1、0,但是实际中一般无法那么精确,这也是造成高频率时精度不高的原因。

总体上LMF芯片搭成的滤波电路比RC电路好很多,特别是频率较高的频段,简易RC电路的极限基本在30kHz。由图7g可见LMF100在40kHz时波形还是很好,但会有一些轻微的抖动。

图7 LMF100高阶滤波器与简易RC滤波器结果对比

表1 测试频率的统计

3.2 误差比较分析

将步长固定为8,即采样点数64,改变分频系数,来改变正弦波频率。20kHz时误差基本为0,但频率增大,误差越来越大,最大达到6、7kHz。在20~30kHz区间内,分频系数的变化对改变正弦波频率变化作用不大,且有较大误差。将分频系数固定为128,改变步长(即改变采样点数),来改变频率值,理论值与实际值比较见表2所列。

表2 正弦波频率理论值与实际值比较 kHz

4 结束语

本文提出了一种系统设计将STM32的高速型、稳定性和PWM调制方式的控制灵活性结合起来,应用数字采样的方式产生模拟的正弦波形,具有其他方式不可比拟的优势。在对PWM波形组成进行理论分析的基础上,设计了2种不同的滤波电路实现方式,并进行了对比分析。测试结果表明,本文设计产生的信号具有频率稳定性好、抗干扰能力强、结构简单和调整灵活等特点,易于实现智能控制。其应用领域包括测量、通信、电机控制、调光、开关电源等,因此研究基于PWM技术的脉宽数控调制信号发生器具有十分重要的现实意义。

[1] 黄 飞,鲁迎春,何晓雄.基于DDS的LFM 信号发生器的FPGA设计[J].合肥工业大学学报:自然科学版,2006,29(5):617-619.

[2] 田开坤.单片机驱动CPLD的PWM正弦信号发生器设计[J].电子制作,2011(4):23-24.

[3] 李 旭,谢运祥.PWM技术实现方法综述[J].电源技术应用,2005,8(2):51-52.

[4] Kaura V.A new method to linearize any triangle-comparison-based PWM by reshaping the modulation command[J].IEEE Transactions on Industry Applications,1997,33(5):1254-1259.

[5] 张宣妮,王明军,鲁 帆.基于FPGA的全数字脉宽调制器[J].计算机仿真,2009,26(11):347-348.

[6] 崔玉娟,吕运朋,李 超.CPLD实现直流伺服电机PWM发生器[J].电测与仪表,2010,47(3):73-74.

[7] 罗小巧,廖小芳.基于CPLD的PWM信号发生器设计 [J].电子测量技术,2007,30(12):87-90.

[8] 许德成.基于FPGA器件的PWM方式正弦信号发生器设计[J].辽 东 学 院 学 报:自 然 科 学 版,2010,17(4):321-323.

猜你喜欢
低通滤波器正弦波正弦
正弦、余弦定理的应用
单相正弦波变频电源设计与实现
采用BC5016S的纯正弦波逆变器设计及制作
“美”在二倍角正弦公式中的应用
基于瞬时无功理论的谐波检测中低通滤波器的改进
正弦、余弦定理在三角形中的应用
非等纹响应低通滤波器研究
基于VSG的正弦锁定技术研究
后置低通滤波器对冲击负荷电能计量的影响
基于嵌入式技术的电网同步正弦波发生装置研究