24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
公司新闻>
单片机开发设计模数转...

公司新闻

单片机开发设计模数转换器(ADC)简介


模数转换器或ADC有许多不同的实现。本文概述了主要类型,它们的特征和局限性。

几乎所有的微控制器都有内置的ADC。即使是基于AVR ATMega系列的小型Arduino,也拥有它们。本文的最后一部分讨论了使用此类ADC时应注意的一些问题。但是首先我们将回顾模数转换的基础。

模拟到数字转换的基础

ADC由图1中的示意图符号表示。它仅显示了一个模拟输入及其等效的数字输出。所示示例为一个NADCN通常是624之间的任何值,常见的是8101216

输入是电压,范围为0到最大值,取决于实际ADC。假设有N位,则可能有2 N个数字值,则以1位表示的值为(V ADCMAX / 2 N)。

作为一个例子,如果给定ADC的最大输入值是5.0V,并且所述ADC10位类型的,则每个比特代表(5V / 2 10),5.00 / 1024,或约4.89mV。因此,该特定ADC的分辨率或量化步长为4.89mV。这是其绝对的理论分辨率。

在这种特殊情况下,无法将信号解析为优于±4.89mV / 2)的分辨率。此限制称为量化误差,并且所有ADC甚至是完美ADC都具有一定程度的量化误差,具体取决于ADC的分辨率。

实用的ADC具有更多的误差源。两个这样的错误是:差分非线性(DNL)和积分非线性(INL)错误。在为特定应用指定ADC时必须考虑这些因素。

ADC输出应保持不变时,DNL错误就会发生。例如,假设给定输入的当前输出代码为01101100,并且输入值增加了量化步长的一半。然后,代码应为01101100 +1位或01101101

当输入电压低于当前输入电压时,也会发生相反的情况。有时,由于各种原因不会发生这种情况。在这种情况下,据说ADC具有±1DNL误差。

如果量化级别未在整个输入范围内均匀分布,则会发生INL错误。例如,假设某个特定的ADC具有12位或4096个计数的分辨率和4.096V基准电压。每个位数精确地代表了1.000mV的输入电压变化。

因此,4096 mV的输入电压应提供1111 1111 1111的输出,即0xFFF。对于某些ADC4095mV甚至4094mV的输入仍将提供0xFFF的数字输出。发生的是,在整个输入范围内,1位的值变化很小,只有1.001mV0.999mV。累积的误差导致一到两位精度的满量程误差。

稍后将看到,有许多外部因素会进一步降低ADC输出精度。

ADC实施

有多种实现ADC的方法。接下来的几节介绍了一些较常见的部分。为了使本文相对简短,仅给出每个此类实现的简单且有些不完整的描述。

单斜率和双斜率积分ADC

单斜率ADC的框图如图2所示。基本操作非常简单。电容器从输入源充电,直到其电压达到V Ref为止,此时比较器跳闸。充电时,由时钟供电的数字计数器也在进行计数。当比较器跳闸时,它将停止计数,此时达到的计数代表模拟输入。

2 –单斜率积分ADC的框图

这种方法最常见的变体之一是双斜率积分ADC。在其中,电容器放电,然后对计数器值求平均值。此技术减轻了积分电容器中介电吸收的影响,介电吸收的影响可能导致ADC读数错误。

这种类型的ADC是准确的,但是非常慢。例如,它最常用于万用表中,其中精度比速度更重要。

Sigma-Delta Σ-ΔADC

Sigma-DeltaΣ- ADC框图如图3所示。从输入端开始,差动放大器产生的输出为 V inDAC输出。

1DAC的输出可以是以下两个值之一:-V Ref+ V Ref。在这种情况下,最好将积分器视为取前一个值和当前输入值的移动平均值。

所以,开始,假设 V in固定在高于0V的很小一点,以便比较器跳闸。其值将为高或1。然后DAC输出为+ V参考。在下一轮中,将从当前值V in中减去该值。由于先前的值为0V,因此积分器输出现在将为– V ref。比较器输出现在将为0,而DAC输出将为at – V参考。

在下一个样本中,由于先前的值是– V Ref,并且差动放大器实际上减去-V Ref,因此将V Ref加到V in。比较器输出将因此为1

此过程继续进行,因此,对于0VV in,比较器输出将为101010…的稳定流。记住逻辑1意味着V Ref0表示-V Ref,则如果取N个样本并取平均值,则很容易发现平均值为0V。比较器之后的处理块将简单地将其输出为单个值0000 ...假定为(V Ref – -V Ref)或2 x V Ref

现在,假设V in1V,这是一个5V ADC±V Ref±2.5V。按照与之前相同的步骤进行操作,输出将为:1011101…该输出为1.07V

但是,如果采样更多,则精度会更高,并且该值接近1.00V。因此,Sigma-Delta需要许多样本才能生成一个输出。换句话说,需要对输入信号进行过采样以减少ADC转换误差。

Sigma-Delta ADC通常用于数字化音频信号,并在某些微控制器中用作ADC

3 – Sigma-Delta ADC的框图

闪存ADC

闪存ADC的操作也许是最容易理解的。图4给出了闪存ADC的框图。仅仅是许多比较器,每个比较器都被提供了比前一个电压高一个位值的参考电压。因此,对于一个8ADC,需要256个这样的比较器。对于10位,则需要1024

闪存转换器速度很快。它无需任何采样或繁重的后处理即可直接转换输入。问题在于它需要大量的比较器,并且许多比较器占用了芯片上的大量硅面积。因此,仅在需要其他ADC实现方法无法达到的极高速度时才使用闪存ADC

刚刚描述的内容实际上称为全闪存ADC。一种常用的变体是半闪存ADC。它使用两步过程将实际转换链中所需转换器的数量减少一半。

首先,将输入信号与精确设置为一半V Ref的电平进行比较。如果它较低,则最高有效位MSb设置为0,并且将输入电压馈送到比较器链,参考电压设置为V Ref / 2实际获得剩余位。

如果输入信号高于V Ref / 2,则MSb设置为1,从输入信号中减去V Ref / 2。例如,可以通过使基准电阻的下端偏移+ V Ref / 2来实现。

比较器链再次用于获取其余位。因此,从本质上讲,这使用的是全闪存比较器数量的一半,但要付出额外的比较代价。例如,该技术还可扩展为具有四分之一闪存ADC

4 –全闪存ADC

逐次逼近寄存器(SAR

这是中速ADC中最常使用的ADC技术。SAR ADC的框图如图5所示。SAR操作是该ADC的关键。最初,它设置为DAC范围的中点。

比较器输出将为高电平或低电平,具体取决于输入是高于还是低于DAC输出电平。

现在,输入位于DAC范围的上半部或下半部。现在,将DAC设置为DAC输入所处正确范围的上半部或下半部的中点,从而有效地将该范围减小到整个范围的四分之一。

重复此过程,依次缩小输入所处的范围,直到放大到正确的值为止。

另一种看待这种情况的方式是说,在第一次迭代之后,将知道输入的MSbit,根据比较器输出是低电平还是高电平,它的值为01。在下一次迭代之后,将知道下一个MSbit。重复该过程,直到所有输出位都已知为止。

未提及的一件事是跟踪并保持“ TH”块。如果在ADC转换过程中更改输入值,则迭代过程将被中断。TH块仅在转换开始时捕获输入值,并在整个转换过程中保持该值。

如图6所示。TH输出将输入信号的值保持在被触发的点,而不管输入信号随后的作用如何。转换完成后,TH将再次返回以跟踪输入信号。

SAR ADC是使用最广泛的ADC,并且是大多数微控制器的内置ADC中发现的一种。有些使用Sigma-Delta ADC,但大多数使用SAR ADC

5 – SAR ADC的框图

 

6 – TH框图

微控制器ADC

几乎所有的微控制器都有内置的ADC,大多数具有多路复用输入。为了有效使用,应考虑其局限性。

首先,根据目前为止的内容,很明显,输入范围不能超过ADC V Ref,必须遵守ADC的转换速率限制。

例如,Arduino Uno的最大ADC转换速率小于10KHz。因此,根本无法通过该ADC采样20Hz20KHz带宽的完整音频。

基于微控制器的ADC的问题全部归结为微控制器是CMOS器件这一事实,并且用于制造微控制器的硅工艺与实现模拟电路模块不太兼容。

因此,例如,DAC和比较器不使用精密电阻器,因为这些电阻实际上很难在CMOS硅工艺中实现。取而代之的是,它们采用了功能等效的设计,即使用电容器。最终结果是微控制器的ADC输入具有相对较低的阻抗,该阻抗也是电容性的。

更重要的是,输入阻抗在转换过程中会有所变化。这一切都意味着,如果信号源的输出阻抗很高,则ADC倾向于给出相差甚远的转换结果。图7举例说明了这一点。

在此示例中,ADC用于读取6V电池电压。为了不使电池过度放电,将R1R2都选择为20KΩ,以便在电池电压为6VADC输入为3.0VADCV Ref3.3V;因此,一切都应该正常工作。

但是,典型的微控制器ADC的输入阻抗约为10KΩ,如图所示,它与R2并联。这将在电池电压读数中引起很大的误差。这种情况下的解决方案是使用一个外部缓冲器来驱动ADC输入。

7 – ADC输入阻抗影响的图示

使用微控制器ADC时应考虑的最后一件事是ADC参考。在某些微控制器中,这只是微控制器VDD

可以肯定的是,微控制器VDD来自稳压器,但是稳压器与适当的参考电压之间存在很大差异。

这很容易导致至少两位精度损失。因此,现在12位微控制器ADC更像是10ADC,并且没有计算DNLINL错误贡献。

最重要的是要意识到这些限制,并确定微控制器ADC是否适合该应用。

请输入搜索关键字

确定