数字信号处理器中D/A功能的实现

时间:2020-10-10 20:03:25 理工毕业论文 我要投稿

数字信号处理器中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芯片的精度,且该方法设计简单,有较好的实用价值。

2 D/A实现原理

在F2407A型DSP中,通过软件编程可以很方便地对PWM信号实现周期和占空比的控制。PWM信号是一组幅值为3.3V的方波,可以通过傅里叶变换,使其分成直流和交流两部分,如图1所示,其中ud(t)是输出的PWM信号,Uo是PWM信号中的直流成分,ua(t)是信号中的交流成分。

将ud(t)用傅里叶级数表示,即

其中:

式中: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频率越高,滤波效果越好。

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时,滤波后直流电压的纹波,图中从上到下依次为二阶、三阶、四阶的滤波效果。