数字信号处理器中D/A功能的实现
摘要:通过对脉宽调制(PWM)信号进行滤波处理,在TMS320F2407A型DSP中实现了D/A功能的扩展。同时详细分析了数字PWM的量化误差和D/A转换所能达到的精度。最后结合仿真和实验说明该方法的可行性。
关键词:数字信号处理器;脉宽调制;数模转换
引言
TMS320F2407A是一款高速,高性能,低成本的微处理器,其内部集成了众多数控系统所需的外扩设备,可以实现SPI,SCI,PWM,A/D等功能。其内部的两个事件管理器模块EVA和EVB,各包含了两个16位通用定时器及8个16位的脉宽调制(PWM)通道,可应用于电机控制及其他逆变器控制领域。美中不足的是,该系列DSP内部没有D/A功能,该功能通常须外接数模转换芯片来实现,这不仅增加了系统的成本,也使系统设计复杂化。本文提出了一种使用F2407A内部的PWM信号,经滤波处理后实现D/A功能的方法。实验结果表明,其转换精度可以达到10位以上专用D/A芯片的精度,且该方法设计简单,有较好的实用价值。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 D/A实现原理
在F2407A型DSP中,通过软件编程可以很方便地对PWM信号实现周期和占空比的控制。PWM信号是一组幅值为3.3V的方波,可以通过傅里叶变换,使其分成直流和交流两部分,如图1所示,其中ud(t)是输出的PWM信号,Uo是PWM信号中的直流成分,ua(t)是信号中的交流成分。
将ud(t)用傅里叶级数表示,即
javascript:window.open(this.src);" style="cursor:pointer;"/>
其中:
javascript:window.open(this.src);" style="cursor:pointer;"/>
javascript:window.open(this.src);" style="cursor:pointer;"/>
式中:f,T分别是PWM信号频率和周期。
设PWM波形具有偶函数特性,即ud(t)=ud(-t),则式(1)中an=0,
bn=3.3/nπ{sin(nπD)-sin[2nπ(1-D/2)]} (5)
式中:n=1,2,3……;
D是PWM的占空比。
则直流电压为
Uo=3.3D(V) (6)
从理论上分析,改变占空比就可以使直流输出电压Uo在0~3.3V范围内变化。输出的谐波频率是PWM频率的倍数,一般可以通过低通滤波器滤除。PWM频率越高,滤波效果越好。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 D/A精度分析
F2407A的工作频率为40MHz,内部寄存器长度为16位字长。PWM信号通过定时器计数的方式在周期中断中获得,因此,不可避免存在一个计数步长的量化误差。这个误差会产生一个纹波叠加在输出直流电压上,因此,应尽量减少。通常当PWM的频率为f时,DSP工作频率为fc时,这个量化误差电压值为
а=3.3×(f/fc)(V) (7)
例如,当f=20kHz,а=1.65mV,其分辨率为1/2000,接近11位D/A芯片的分辨率。
可见,当PWM频率越低,DSP产生定时中断所需的计数值越大,其量化误差的影响越小。但是,考虑到输出低通滤波器的特性,当PWM频率降低时,产生的谐波频率也随之降低,则对于带宽和截止频率一定的滤波器来说,就会有更多的低次谐波通过滤波器,这部分谐波叠加在直流量上同样会产生误差电压。因此,本文D/A转换的误差主要来源于这两个方面,由于两个误差具有相互制约性,必须通过折中的方法选取一个合适的PWM载波频率。表1(通过Matlab仿真)是选用不同的PWM频率和不同阶数的滤波器时的性能比较。仿真时采用截止频率为2kHz的巴特沃兹滤波器。图2是当PWM信号频率为20kHz时,经不同阶数滤波器后直流电压的纹波比较,图中从上到下依次是二阶、三阶、四阶的滤波效果。图3是PWM信号频率为40kHz时,滤波后直流电压的纹波,图中从上到下依次为二阶、三阶、四阶的滤波效果。
表1 不同阶数滤波特性的比较
滤波器 | f/kHz | 纹波幅值/V | D/A位数 |
二阶 | 20 | 0.04 | 6.4 |
二阶 | 40 | 0.004 | 9.7 |
三阶 | 20 | 0.0044 | 9.6 |
三阶 | 40 | 0.0005 | 12.7 |
四阶 | 20 | 0.0004 | 13.0 |
四阶 | 40 | 0.00005 | 16.0 |
3 模拟滤波器的设计
滤波器按不同的频域或时域特性要求,可分为巴特沃兹(Butterworth)型,契比雪夫(Chebyshev)型,贝赛尔(Bessel)型,椭圆型等标准型。相同的电路,通过选取不同的R和C参数可以实现不同的类型。其中,巴特沃兹型滤波器具有最平坦的通带幅频特性;契比雪夫型特点是通带内增益有波动,但这种滤波器的通带边界下降快;贝赛尔型通带边界下降较为缓慢,其相频特性接近线性;椭圆型的滤波特性很好,但模拟电路复杂,元件选择较为困难,实现难度大,故不常采用。本设计要求通带尽量平坦,而且过渡带和截止带衰减尽量快,因此,只考虑巴特沃兹型。
javascript:window.open(this.src);" style="cursor:pointer;"/>
模拟二阶、三阶电路结构如图4所示。对于图4(a)所示的二阶电路,其传递函数为
H(s)=1/[s2R1R2C1C2+(R1C2+R2C2)s+1 (8)
对于图4(b)所示的三阶电路,其传递函数为
H(s)=1/(a0s3+a1s2+a2s+1) (9)
式中:a0=R1R2R4C1C2C3;
a1=[R4C2C3(R1+R2)R1R2C1C2];
a2=[R4C3+C2(R1+R2)]。
具体参数计算如下。
3.1 两阶电路参数计算
巴特沃兹二阶滤波器的一般表达式为
H(s)=1/(b1p2+b0p+1)
式中:p=s/ωc;
b1=ωc2R1R2C1C2=1;
b0=ωc(R1C2+R2C2)=根号2。
取ωc=2πf=4000π时,可得R1=0.68kΩ,R2=10kΩ,C1=0.1μF,C2=0.01μF。实际截止频率为1930Hz。
3.2 三阶电路参数计算
三阶巴特沃兹滤波器的一般表达式为
H(s)=1/(b2p3+b1p2+bop+1)
式中:b2=ωc3R1R2R4C1C2C3=1;
b1=ωc2[R4C2C3(R1+R2)+R1R2C1C2]=2;
b0=ωc[R4C3+C2(R1+R2)]=2。
取ωc=2πf=4000π,可得R1=1.2kΩ,R2=10kΩ,R4=0.4kΩ,C1=0.1μF,C2=0.01μF,C3=0.1μF,实际截止频率为1989Hz。
javascript:window.open(this.src);" style="cursor:pointer;"/>
4 实验结果
图5是采用40kHz频率时的滤波效果,CH1所示的是经二阶模拟滤波器后的直流电压,CH2所示的是经三阶模拟滤波器后的直流电压,滤波器的具体参数选用同上文,PWM的占空比为0.5。
图5中CH1的波形中有较大的纹波毛刺叠加在直流分量上,其输出平均值在1.6V左右,转换精度不高。CH2的波形和CH1相比,纹波分量减小很明显,输出波形的平均值在1.65V左右,理论分析该波形转换分辩率可以达到12.7左右,已经接近或达到一般D/A芯片的分辨率要求,因此,有较好的应用价值。
5 结语
通过外接滤波电路,DSP输出的PWM信号可以完成D/A功能的扩展,且合理选择输出PWM的频率和滤波器的阶数,可以使转换的分辨率达到12位以上,且外设滤波电路较为简单,因此,具有一定的应用价值。