在电子和自动化技术的应用中,单片机和DAC (数模转换器)是经常需要同时使用的,然而许多单片机内部并没有集成DAC,即使有些单片机内部集成了DAC,DAC的精度也往往不高,在高 精度的应用中还是需要外接DAC,这样增加了成本。但是,几乎所有的单片机都提供定时器或者PWM输出功能。如果能应用单片机的PWM输出(或者通过定时器和软件一起来实现PWM输出),经过简单的变换电路就可以实现DAC,这将大量降低成本电子设备的成本、减少体积,并容易提高精度。本文在对PWM到DAC转换关系的理论分析的基础上,设计出输出为0~5V电压的DAC。
1 应用PWM实现DAC的理论分析
PWM是一种周期一定而高低电平的占空比可以调制的方波信号,图1是一种在电路中经常遇到的PWM波。该PWM的高低电平分别为VH和VL,理想的情况VL等于0,但是实际中一般不等于0,这往往是应用中产生误差的一个主要原因。
图1的PWM波形可以用分段函数表示为式(1):
其中:T是单片机中计数脉冲的基本周期,即单片机每隔T时间记一次数(计数器的值增加或者减少1),N是PWM波一个周期的计数脉冲个数,n是PWM波一个周期中高电平的计数脉冲个数,VH和VL分别是PWM波中高低电平的电压值,k为谐波次数,t为时间。把式(1)所表示的函数展开成傅里叶级数[1],得到式(2):
从式(2)可以看出,式中第1个方括弧为直流分量,第2项为1次谐波分量,第3项为大于1次的高次谐波分量。式(2)中的直流分量与n成线性关系,并随着n从0到N,直流分量从VL到VL+VH之间变化,这正是电压输出的DAC所需要的。因此,如果能把式(2)中除直流分量的谐波过滤掉,则可以得到从PWM波到电压输出DAC的转换,即:PWM波可以通过一个低通滤波器进行解调。式(2)中的第2项的幅度和相角与n有关,频率为1/(NT),该频率是设计低通滤波器的依据。如果能把1次谐波很好过滤掉,则高次谐波 就应该基本不存在了。
根据上述分析可以得到如图2所示的从PWM到DAC输出的信号处理方块图,根据该方块图可以 有许多电路实现方法,在单片机的应用中还可以通过软件的方法进行精度调整和误差的进一 步校正。
在DAC的应用中,分辨率是一个很重要的参数,图1的分辨率计算直接与N和n的可能变化有关,计算公式如式(3):
表1给出了不同N和n的情况下的分辨率。
从表1和式(3)可以看出,N越大DAC的分辨率越高,但是NT也越大,即 PWM的周期或者式(2)中的1次谐波周期也越大,相当于1次谐波的频率也越低,需要截止频率很低的低通滤波器,DAC输出的滞后也将增加。一种解决方法就是使T减少,即减少单片机的计数脉冲宽度(这往往需要提高单片机的工作频率),达到不降低1次谐波频率的前提下提高精度。在实际中,T的减少受到单片机时钟和PWM后续电路开关特性的限制。如果在实际中需要微秒级的T,则后续电路需要选择开关特性较好的器件,以减少PWM波形的失真,如图4中的电子开关T1(IRF530)。
2 PWM到DAC电压输出的电路实现
根据图2的结构,图3是最简单的实现方式。图3中,PWM波直接从MCU的PWM引脚输出,该电路没有基准电压,只通过简单的阻容滤波得到DAC的输出电压。R1和C1的具体参数可根据式(2)的第2部分的一次谐波频率来选择,实际应用中一般选择图2中阻容滤波器的截止频率为式(2)的基波频率的1/4左右。
图3的PWM波的VH和VL受到MCU输出高低电平的限制,一般情况下VL不等于0 V,VH也不等于VCC。例如,对于单片机AT89C52[2,3],当VCC为+5 V时,VH和VL分别为4.5 V和0.45 V左右,而且该数值随着负载电流和温度而变化。根据式(2)的直流分量可知,DAC电压输出只能在0.45~4.5 V之间变化,而且随负载电流和环境温度变化,精度很难保证。由于该电路的变化部分精度不高,没有必要采用高分辨率的PWM输出,8位即可。另外图2的DAC输出的负载能力也比较差,只适合与具有高输入阻抗的后续电路连接。因此,图3的电路只能用在对DAC输出精度要求不高、负载很小的场合。对精度和负载能力要求较高的场合,需要对图3的电路进行改进,增加基准电压、负载驱动等电路。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)