2008-09-18
单片机在日常生活中用得越来越多,其集成度也越来越高,目前拥有多种单片机都集成有A/D转换功能,如PIC,AVR,SUNPLUS,SH等。处理器的位数从4位到32位或更高,转换精度从6位,8位,10位或更高。
单片机内集成的A/D转换,一般都有相应的特殊功能寄存器来设置A/D的使能标志,参考电压,转换频率,通道选择,A/D输入口的属性(模拟量输入还是普通的I/O口),启动,停止控制等。有了这些寄存器,使得我们控制单片机的模拟量采集变得非常方便。
A/D转换的基本原理是:将参考电平按最大的转换值量化,再利用输入模拟电平与参考电平的比例来求得输入电平的测量值(V测=V参*(AD量化值/AD转换的最大值))。有些MCU A/D转换的参考电平可以选择由一个外部引脚输入,这样使得用户可以对A/D转换进行更好的控制。值得注意的一点就是A/D转换的输入电平必须比参考电平低或相等,不然测试的结果就会有很大的偏差。
下面以参考电平为5V,转换的精度为8位为例来说明如何取得实际的测量值是多少。如果
AD量化值为128,则V测= 5*128/256=2.5V。因为V测=V参*(AD量化值/AD转换的最大值)=AD量化值*(V参/AD转换的最大值),而针对具体的硬件电路,“V参/AD转化的最大值”是一个固定的系数。而这个系数,就相当于测试的精度了。对于10位的A/D,5V的参考电压的测试精度约5毫伏,而用2.048伏的参考电压,精度就可以达到2毫伏。当然测试的电压范围相应的也减小了。我曾经就用这种减小测量范围来提高精度,使用PIC
然而,即使使用同样一款MCU,不同的软硬件设计者,使得A/D转换的效果相差也甚远。主要是很多新手在处理上有些不当,不是直接把一次转换后的结果拿来处理并做相应的显示,就是对参考电平不做处理。所以使得显示效果老是变化不定,给人一种不稳定的感觉。
针对参考电平设在单片机内部的MCU,主要是要对A/D的量化值做数字滤波处理,比如多次间隔采样,再求平均等。而针对参考电压可以从外部输入脚引入的,最好单独设置一组高稳定度的参考电压,如TL431等。这样,即使MCU的主电源有些波动也不会导致A/D转换值的漂移。其实在没有高精度参考电压的情况下,或者A/D量化值很不稳定的情况下,
我们依然可以通过软件的方法将与A/D转换有关的显示或其他的驱动做得非常稳定。这就要看程序员的设计经验了。
以上均为个人观点,有些不足或错误的地方,希望大家多多指教,相互交流,共同提高。
评论4
楼主 2007/6/12 10:30:43
楼主 2008/9/17 18:15:43
楼主 2008/9/18 12:41:00
楼主 2012/9/7 14:40:23
随着工业自动控制的不断发展,单片机在工业自动控制的应用也越来越广。本文介绍的提高A/D转换精度的工作原理在实际应用中具有一定的使用价值,特别是通过简单的模拟运算电路,可以局部提高A/D转换精度。利用这个原理,如果将模拟量分段放大,也可以全范围提高A/D转换精度。这种方法在A/D转换领域有较好的应用前景