级联 ADC 以获得更高的分辨率

电器工程 ADC 转换
2022-01-13 07:46:52

假设我有一对 12 位 ADC,我可以想象它们可以级​​联以获得 <= 24 位输出。

我可以考虑简单地将一个用于正范围,另一个用于负范围,尽管交叉区域可能会出现一些失真。(假设我们可以忽略一些错误位,或者可以放置第三个 ADC 来测量 0 伏左右的值)。

我一直在考虑的另一个选择是使用单个高速 ADC 并切换参考电压以在较低速度下获得更高的分辨率。还应该有一种方法可以使用一个固定参考 ADC 获得实值结果,然后切换次级转换器的 aref 以获得更精确的值。

欢迎任何意见和建议。

我假设一个四 8 位(或双 12 位)芯片比一个 24 位芯片便宜。

4个回答

拆分输入范围将为您提供 13 位,而不是 24 位。假设您的输入范围为 -4.096V 至 +4.096V。那么一个 12 位 ADC 将具有 2mV 分辨率:2\$^{12}\$ x 2mV = 8.192V(范围从 -4.096V 到 +4.096V)。如果你取正的一半,你会得到 1mV 的分辨率,因为你的范围减半:2\$^{12}\$ x 1mV = 4.096V。即高于 0V 的 2\$^{12}\$ 电平,以及低于 2\$^{12}\$ 的电平。加起来 2\$^{12}\$ + 2\$^{12}\$ = 2\$^{13}\$,所以多出 1 位,而不是 12。

关于改变参考电压。我将举一个不同的例子。假设您有一个 1 位 ADC,并希望通过更改参考来获得 12 位。如果输入大于 \$\frac{V_{REF}}{2}\$,一位将为您提供 1,否则为 0。假设您的参考电压为 1V,则阈值为 0.5V。如果您将参考更改为 0.9V,您将在 0.45V 处获得一个新阈值,因此您已经能够辨别 3 个不同的电平。嘿,这可能行得通,我可以用 1 位 ADC 做 12 位,然后可能也可以用 12 位 ADC 做 24 位!
拿住!没那么快!您可以这样做,但您的 1 位 ADC 的组件必须是 12 位等级的。这是为了参考和比较器的精度。同样的,12位的ADC只要精度够高,也能做到24位,变化参考电压的精度是24位的。所以在实践中你不会获得太多。

没有免费的午餐。

编辑
似乎对过采样存在误解,事实上有1位音频 ADC 可以为您提供 16 位分辨率。
如果您的输入是固定的直流电平,例如 1V 输入范围内的 0.2V,那么您的输出也将始终相同。对于我们的示例,对于 1 位 ADC,这将是零(电平小于参考值的一半)。现在将是这样,无论您以每秒 1 个样本还是 1000 个样本进行采样。所以平均不会改变这一点。为什么它与音频 ADC 一起工作?因为电压一直在变化(噪声),根据爱因斯坦的说法(相对论,你知道 ;-))与保持电压恒定和改变参考电压相同。然后_您在过采样时会得到几个不同的读数,您可以对其进行平均以获得与实际水平相当好的近似值。
噪声必须足够强以通过 ADC 的阈值,并且必须符合某些约束条件,例如高斯分布(白噪声)。在 1 位示例中,它不起作用,因为噪声级别太低。


进一步阅读:
Atmel 应用笔记 AVR121:通过过采样增强 ADC 分辨率

你的问题有很多东西。因此,让我们一一介绍。

假设我有一对 12 位 ADC,我可以想象它们可以级​​联以获得 <= 24 位输出。我可以考虑简单地将一个用于正范围,另一个用于负范围,尽管交叉区域可能会出现一些失真。(假设我们可以忽略一些错误位,或者可以放置第三个 ADC 来测量 0 伏左右的值)。

不是真的 - 你会得到 13 位分辨率。可以将 12 位转换器的操作描述为决定 4096 个二进制 (2^12) 输入电压中的哪一个。两个 12 位 ADC 将为您提供 8192 个 bin 或 13 位分辨率。

我一直在考虑的另一个选择是使用单个高速 ADC 并切换参考电压以在较低速度下获得更高的分辨率。

实际上这就是逐次逼近转换器的工作原理。基本上,一位转换器(又名比较器)与数模转换器一起使用,该转换器根据逐次逼近算法产生变化的参考电压,以获得电压的数字化样本。请注意,SAR 转换器非常流行,并且 uC 中的大多数 ADC 都是 SAR 类型。

还应该有一种方法可以使用一个固定参考 ADC 获得实值结果,然后切换次级转换器的 aref 以获得更精确的值。

实际上,它与流水线 ADC的工作方式非常相似。然而,不是改变次级 ADC 的基准,而是在第一级之后留下的残余误差被下一级 ADC 放大和处理。

欢迎任何意见和建议。我假设一个四 8 位(或双 12 位)芯片比一个 24 位芯片便宜。

实际上这是有原因的,因为拥有 24 位转换器并不像在某些配置中安排四个 8 位转换器那么简单。还有更多。我认为这里的关键误解是认为一个人可以“添加”位数。要了解为什么这是错误的,最好将 ADC 视为决定输入电压属于哪个“bin”的电路。箱数等于 2^(位数)。所以 8 位转换器将有 256 个 bin (2^8)。24 位转换器将有超过 1600 万个 bin (2^24)。因此,为了拥有与 24 位转换器相同数量的 bin,需要超过 65,000 个 8 位转换器(实际上是 2^16)。

继续进行 bin 类比 - 假设您的 ADC 的满量程为 1V。那么 8 位转换器“bin”为 1V/256 = ~3.9mV。如果是 24 位转换器,则为 1V/(2^24) = ~59.6nV。直观上很明显,“决定”电压是否属于较小的 bin 更难。事实上,由于噪声和各种电路非理想情况,情况确实如此。因此,不仅需要超过 65,000 个 8 位转换器来获得 24 位分辨率,而且那些 8 位转换器必须能够解析为 24 位大小的 bin(您的常规 8 位转换器不够好,因为它能够解析到~3.9mV bin 而不是 59.6nV bin)

是的,理论上你可以做你想做的事,但前提是你有一些完全不切实际的设备可供你使用。

到目前为止,关于有限的额外准确性的其他几条评论是正确的,唉。

考虑。使用 12 位 ADC 测量电压并得到 111111000010 您知道实际值位于该值两侧 +/- 0.5 位的 1 位范围内。

如果您的 ADC 精确到 24 位,但仅提供 12 位,则它报告 vaklue 位于 111111000010 000000000000 的 +/- 半位范围内。如果是这种情况,您可以使用 12 位 ADC 和 +/- 1/2 位范围,以 111111000010000000000000 为中心并读取结果。这将根据需要为您提供实际信号和 aDC 值的差异。QED。

然而,12 位 ADC 本身只能精确到大约半位。它的各种错误的总和导致它在实际结果达到大约一半但不同的正负时宣布某个结果。

虽然你想

111111000010 表示 111111000010 000000000000

它实际上可能意味着 111111000010 000101101010 或其他。

因此,如果您随后使用第二个 ADC 并测量低 12 位并假设它们与精确的 12 位边界相关,那么它们实际上与上述错误值相关。由于该值本质上是随机误差,因此您会将新的 12 位低位数字添加到 12 位本质上的随机噪声中。精确 + 随机 = 新随机。

例子

使用两个可以测量范围并以 10 步中的 1 步给出结果的转换器。如果缩放到 100 伏 FS,它们会给出 ge 0 10 20 30 40 50 60 70 80 90

如果缩放到 10 伏满量程,他们给出 1 2 3 4 5 6 7 8 9

您决定使用这两个转换器以 1 伏特的精度测量 100 伏特的量程。

转换器 1 返回 70V。然后测量相对于 70V 的电压并得到 -3V。所以你推断实际值即+70V - 3V = 67V。

然而,70V 结果实际上可能是 65 66 67 68 69 70 71 72 73 74 中的任何一个

只有当第一个转换器精确到 100 中的 1V 时,即使它显示 100V 中的 10V 步进,您也可以达到您想要的效果。

所以你的实际结果是 67V +/- 5 伏 = 从 62V 到 72V 的任何电压。所以你的情况并不比以前好。您的中心已经移动,但它的位置可能是随机的。

您将能够通过这种方式获得适度的改进,因为转换器通常可能比它返回的位更准确(您希望),因此您的第二个转换器会利用这一点。


已经提到了一个确实有效的系统,但有一个重要的遗漏。如果您对信号进行 N 次采样并添加 +/- 半位高斯噪声,您将“在可能的范围内”传播信号,并且平均值现在将比以前更准确 log(N)。这个方案有鱼钩和资格,你不能只获得任意数量的额外比特,但它确实提供了一些改进。


在上面的第一种情况下,我提到了具有 24 位精度的 12 位 ADC。您可以通过使用 12 位 ADC 并使用 24 位(例如 delta sigma 转换器)读取其假定值来实现某种目的。如果信号足够稳定以保持在相同的一位范围内,您可以使用第二个 ADC 读取该稳定信号的第二个 12 位。

替代方案 - 最初使用 sigma delta 读取 24 位信号,锁定该点,然后使用第二个 ADC 连续测量它。只要信号保持在第二个 ADC 的范围内,您将获得更快的结果。

有一种叫做超级采样的东西可以用来提高许多类型 ADC 的分辨率。

它通过向信号添加噪声来工作。尽管噪声降低了分辨率,但有必要使数据将自身拆分为几个位。(我不是信号处理专家——这就是我的理解。)你的噪音可能只有 1 或 2 位,但它必须存在。如果你取一个 12 位样本 - 你有 12 位。如果你然后取 4 个样本,将它们加在一起并除以 2,你会得到一个 13 位的样本。(由于 Nyquist,每个额外的位需要 4 个样本。)

一种简单的方法是向参考电压添加噪声。我使用它来将 dsPIC33F 中的 12 位 ADC 提升到 16 位以获得更高的分辨率。之前,我设置了一个高频异步定时器,并使用 DMA 将一系列 PRNG 数字排队到输出捕获中,这提供了一个相对干净的噪声源。噪声输出使参考电压偏置约 0.1%(1k-1Meg 分压器)。噪声是双向的,即灌入和拉出。我使用 dsPIC33F 的 DMA 对样本进行排队,因此只需很少的 CPU 干预即可完成。当然,最大采样率下降到正常速率的 1/32 左右,但这对我的应用程序来说不是问题。

由于噪声并不总是均匀分布的,我将校准每台发货的输入,尽管差异可能只有 1 或 2 LSB。