常见类型ADC原理探秘,选型必知

摘要:
【简介】以上总结了主要常见重要ADC的技术指标。本文将梳理两个方面的内容,ADC的常见类型和原理,以及可能容易陷入的漏洞。ADC型积分ADC的优点:积分ADC的分辨率高,位数可以达到12位甚至更高。线性度非常好。换句话说,积分型ADC的采样速度相对较低,但精度非常高。有不同类型的积分型ADC,例如单斜坡积分和双斜坡积分。FlashADC的原理,也称为直接比较FlashADC,可能是最容易理解的。这可以被认为是后续近似ADC的改进,其中反馈参考信号包括

[导读] 上文总结了主要常见的重要ADC的技术指标,本文来梳理两个方面的内容,常见的ADC类型及原理,以及可能容易掉进去的坑。

谈谈我为什么整理这个文章吧,工程师往往关注点更多在于功能,而忽略了性能。为什么会忽略性能呢?因为可能缺少对于原理的深入探究,那么使用时可能失之毫厘,谬以千里。性能往往不好,稳定性也可能不佳。帽子扣大点说是缺少匠心,其实这也是大学教育非常不足的地方。而我个人的观点是,即使是工程师也需要一点科学家的素养,希望小伙伴们都尽可能的将一些技术要点的本原深挖,不要浮于表面。这也是国内科技领域现今急需要去发展提升的地方,如果每个技术领域的我辈中人,都能深耕自己的领域,探求技术的本原,又何惧美帝如此猖狂嚣张!

我期望我能业余做好一个小小的技术分享传播者,如果你读到本文,真心觉得有价值,也请传播给他人。当然我做这个公众号也期望有一天能稍稍改善我的生活,但是坦荡地说,所有文章的技术要点都属于无私分享。如果达成改善家人生活所愿,则我心欢喜,不成也无妨。做一个快乐的分享者吧!

罗嗦了一通废话,但这是公众号,不管受众多少,传播技术的同时,也期望能传播一些技术观以共勉!

ADC类型

积分型ADC

优点

  • 积分型ADC分辨率高,位数可做到12位甚至更高

  • 线性度非常好。本质上,输入端与一个集成的参考电压相比较来决定输出端,所以线性度将取决于比较器的精度。

  • 电路实现拓扑简单,用于实现这些设备的元件相对较少,因此电路相对简单且生产成本较低。

缺点:

  • 主要缺点是转换速度慢。N位ADC,输出可能需要长达2个N的时钟周期来转换单个采样点

  • 转换原理都是基于对电压积分并将积分后电压与另一电压比较以控制计数,计数输出即为ADC输出。积分对象要么是基于参考电压,要么是基于参考电压和输入电压。

  • 主要用于传感器应用和诸如电压表和电流表等设备,在这些设备中,精度比速度更重要。换句话说积分型ADC采样速度比较低,但精度非常高

  • 积分型ADC有不同的种类,常见的有单、双斜率积分等。增加一个“斜率”,以牺牲转换时间为代价而增加精度。

单斜率积分ADC

常见类型ADC原理探秘,选型必知第1张

比较器将输入电压 与集成基准电压 的值进行比较(请注意,由于 已连接至运算放大器的反相输入,因此我们将 设为负)。同时计算时钟周期数。当积分器输出等于 时,比较器输出逻辑“ 0”,触发计数器和积分器复位,锁存器保持数字输出。

这就是转换时间,知道为啥说这种积分型ADC慢了吧。来看下最差的情况吧,假设输入电压 ,假定 ,假定是20位ADC,那么 !

双斜率积分ADC

常见类型ADC原理探秘,选型必知第2张

双斜率ADC与单斜率ADC的不同之处在于,现在将 与地进行比较,并集成了两个电压 和 。刚开始时,负输入连接到积分器,使 斜升直到计数器溢出。由于在反相输入会切换到一个负值进行积分,因此积分器输出将始终为正且大于零,因此计数器将继续运行直到溢出为止,这需要2N个时钟周期(= T1)。

常见类型ADC原理探秘,选型必知第3张

在T2时刻,将等于 与 之和,且为0,也即:

 

 

因此, 即为ADC转换的原理,双斜率比单斜率ADC更慢,由于执行了两次积分, 与积分器斜率相关的误差将被抵消,从而从原理上提高了精度。

Sigma-Delta Σ-∆ ADC

常见类型ADC原理探秘,选型必知第4张

从输入端开始,差动放大器产生的输出为Vin与1位DAC输出之间的差。1位DAC的输出可以是以下两个值之一: 或 。在此拓扑结构中,可将积分器视为取前一个值和当前输入值的移动平均值。

因此,假设刚开始时比较器正向段固定在高于0V的很小一值,比较器反转。其值将为高或1。然后,DAC输出将为 。在下迭代中,将从 的当前值中减去该值。由于先前的值为0V,因此积分器输出现在将为– Vref。此时,比较器输出将为0,而DAC输出将为 。

在下一个采样中,由于前一个值为 ,积分器输出将为0,并且差动放大器实际上将减去 ,从而将 加到  .比较器输出将为1。

此过程继续迭代进行,因此,对于0V输入,比较器输出将为101010…的稳定流。记住逻辑1表示 ,逻辑0表示 ,那么如对N个样本进行采样并取平均值,则很容易看出平均值为0V。比较器之后的处理块将简单地将其输出为单个值0000…,假设参考值为( ~ )或2 x 。

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

概括起来:

Σ-∆ ADC 对所处理信号进行过采样(这个概念见模数采样知多少),并对待处理信号进行低通滤波。通常,在过滤器之后使用Flash ADC转换的比特数小于所需的比特数。所产生的信号连同由FLASH离散电平产生的误差,被反馈回并从输入中做差然后输入到滤波器。这个负反馈的可对噪声形成抑制作用,使它不出现在期望的信号频率。ADC之后的数字滤波器(利用抽取滤波器)可降低采样率,滤除不想要的噪声信号并提高输出分辨率(故称为sigma-delta调制,也称为delta-sigma调制)。

Flash ADC也称直接比较型

FLASH ADC的原理可能是最容易理解的。下图是一个两位ADC的示意图,由许多比较器组成,每个比较器都被提供了比上一个基准值高一个位值的基准电压。因此,对于一个8位ADC,需要256个这样的比较器。对于10位,则需要1024。

常见类型ADC原理探秘,选型必知第5张

FLASH ADC(直接比较型)速度很快。它直接转换输入,而不需要任何采样或繁重的后期处理。问题是,它需要很多比较器,而且很多比较器占用了芯片上的大量硅空间。因此,只有在需要其他ADC实现方法无法达到的极高速度时才使用Fash ADC。

二分法在硬件中体现

实际应用中,还有一个变种比较常用,半 FLASH ADC。它使用两步的过程来减少实际转换链中所需的转换器数量:

  • 首先,将输入信号与恰好位于半 的电平集进行比较。如果它更低,那么最高有效的位MSB,被设置为0,输入被馈送到一个比较器链与参考电压设置为 ,以转换得到其余的位。

  • 如果输入信号高于 ,则将MSB设置为1,从输入信号中减去 。比较器链再次用于获取剩余的位。所以,本质上,半步FLASH ADC,以牺牲一个额外的比较,来节省一半比较器。这种思路还可以继续推演扩展,比如4分 FLASH ADC等等。

逐次逼近寄存器SAR

逐次逼近寄存器(Successive Approximation Register):逐次逼近ADC使用比较器逐次缩小包含输入电压的范围。在每个连续的步骤中,转换器将输入电压与内部数字与模拟转换器的输出进行比较,后者可能表示所选电压范围的中点。在这个过程的每一步,近似都被存储在一个逐次逼近寄存器(SAR)中。例如,假设输入电压为6.3 V,初始范围为0到16v。对于第一步,输入6.3 V与8v (0-16V范围的中点)进行比较。比较器报告输入电压小于8v,因此SAR被更新为将范围缩小到0 - 8v。第二步,将输入电压与4v (0 - 8v的中点)进行比较,比较器报告输入电压高于4v,因此更新SAR以反映输入电压在4 - 8v范围内。第三步,输入电压与6v比较(4v与8v的一半);比较器报告输入电压大于6伏,搜索范围变为6 - 8伏。继续这些步骤,直到达到预期的解决方案为止。

其拓扑结构如下,

常见类型ADC原理探秘,选型必知第6张

为了直观,看看前文的动图:

常见类型ADC原理探秘,选型必知第7张

Pipelined ADC

流水线ADC(也称为子例程量化器)使用两个或多个流水线。首先,进行粗略的转换。第二步,用数模转换器(DAC)确定输入信号的差异。然后将这个差异转换为更细的值,并在最后一步中合并结果。这可以被认为是后续逼近ADC的一种改进,其中反馈参考信号由整个范围的比特(例如,4比特)的中间转换组成,而不仅仅是下一个最重要的比特。结合逐次逼近法和flash adc的优点,该类型具有速度快、分辨率高、模具尺寸小等优点。

常见类型ADC原理探秘,选型必知第8张

在这个原理图中,模拟输入VIN首先被采样并由采样保持器(S&H)保持稳定,而第一阶段的flash ADC将其量化为三位。然后将3位输出馈给3位DAC(精确到12位),然后从输入中减去模拟输出。这个“剩余量”扩大4倍并被送入下一阶段(第二阶段)。这个增加的剩余量继续通过下级流水线,每一阶段提供3位,直到它到达4位flash ADC,将解析最后的4LSB位。因为每个阶段的位是在不同的时间点确定的,所以相同样本对应的所有位在被馈送到数字错误校正逻辑之前都与移位寄存器进行了时间对齐。请注意,当一个流水完成对输入样本的处理,确定本流水采集位并将残差传递到下一个流水时,它便可以开始处理从每个流水中嵌入的采样保持器接收到的下一个样本。这种流水线操作是高吞吐量的原因,这也是流水的概念。

总结一下

熟悉各类ADC的意义,因为如前文所说,嵌入式设备免不了需要采集物理世界的模拟信号。信号各具特点,有的频率高,有的噪声多,有的需要精度高但速度可能不要很快等等。这里整理几种常见ADC(当然还有其他种类比如电荷平衡原理ADC、分时ADC、FM ADC、时间拉伸ADC、增量编码ADC、Wilkinson ADC等等)的原理及特点,了解各类ADC的基本特点,有助于进行器件选型、系统设计。

如果觉得本文有价值,不妨右下点下在看,或者分享转发给需要的小伙伴们。

另外,还计划写一篇单片机内置ADC避坑的文章,敬请关注。

END

往期精彩推荐,点击即可阅读

▲学Linux驱动:应先了解总线驱动模型

模数采样知多少

基于Buildroot的Linux构建之根文件系统

手把手教系列之移动平均滤波器C实现

手把手教系列之IIR数字滤波器设计实现

长按关注

加群交流

免责声明:文章转载自《常见类型ADC原理探秘,选型必知》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇浅谈搜索引擎技术原理与架构c/s架构nginx+php-fpm通信原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

STM32 ADC转换时间

STM32F103XX的ADC的采样时钟最快14MHz,最快采样率为1MHz。 ADC时钟: 这个ADC时钟是从哪来的呢。我们看下面这个STM32的时钟结构图: 我们大多使用STM32的最快PCLK2系统时钟72MHz。 ADCCLK的时钟由72MHz的6分频能瞒住14MHz以下的要求 为12MHz。 RCC_ADCCLKConfig(RCC_PCLK2...

记STM32F030多通道ADC DMA读取乱序问题

问题描述通过 uint16_t ConvData[8]保存DMA搬运的ADC转换数值,但是这个数组数值的顺序总是和ADC不是顺序对应的。比如用7个通道的ADC,当设置ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Backward,是对应顺序是:0->0,1->7,2->6...

触摸屏驱动

硬件配置 硬件原理 ADC AND TOUCH SCREEN INTERFACE SPECIAL REGISTERS                       程序框架 软件架构:输入子系统       优化措施 ①问题:ADC转换出来的值变化太大,不稳定; 原因1:触摸屏被"触摸",触摸点电压值尚未稳定,已经被ADC转...

STM32之ADC配置,ADC_Mode模式理解

对于STM32,在使用ADC的时候需要配置几个参数。 第一个参数是ADC_Mode,这里设置为独立模式: ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; 在这个模式下,双ADC不能同步,每个ADC接口独立工作。所以如果不需要ADC同步或者只是用了一个ADC的时候,就应该设成独立模式了。 第二个参数是...

黑马程序员JAVA基础Java 集合之Collections 工具类

  Collections 类中的方法是用来操作 Collection 集合的,而且Collections 中的方法全部是静态方法。   如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出 NullPointerException。    一.常用的方法有:     static <T extends Compa...

动态按照属性排序

  随着实体的概念的流行,DataTable正在逐渐的淡出我们的视野,但是,有些时候,DataTable很容易做的一件事情,却让我们不得不头痛起来——按指定列排序   如果数据是来源于一个sql语句,那么,我们可以把这个问题转嫁给sql,让DB来解决这个问题。   但是,如果数据来源于某些不支持排序(例如webservice并且没有提供排序功能),或者其他...