[[acdlearning|模拟电路工程化设计大师课]]
## 第二节:高速ADC的关键技术指标
ADC是Analog-to-Digital Converter的缩写,即模拟/数字转换器,我们简称为模数转换器。用于将模拟信号,比如温度、压力、电压、电流、距离或光强度等实际电信号转换成数字信号,然后,系统可以处理、控制、计算、传输或存储此数字表示,ADC多应用于传感器信号采集,是涉及到模拟信号的数字电路中不可或缺的器件。目前许多[[MCU]]与几款高端[[FPGA]]已经将ADC集成在了芯片内部。
{{ :micadc.gif |}}模数转换器
### 1. ADC的基本概念
ADC以均匀的时间间隔对模拟波形进行采样,并将数字值分配给每个样本。数字值以二进制编码格式在转换器的输出端显示。通过将采样模拟输入电压除以基准电压,再乘以数字码数得到此值。转换器的分辨率由输出码中的二进制位数来设定。
{{drawio>adccoding.png}}数字输出码
ADC执行两个过程:采样和量化。ADC将无限分辨率的模拟信号表示为有限分辨率的数字码。ADC会产生2的N次方个数字值,其中N表示二进制输出位数。由于转换器的分辨率有限,模拟输入信号将落在量化电平之间,从而导致固有的不确定性或量化误差。该误差可确定转换器的最大动态范围。
{{drawio>adc3bits.png}}量化过程
采样过程提供连续时域信号,信号值以离散、均匀的时间间隔测量。
这个转换的过程牵扯到几个关键的技术术语:
* Fin:输入信号的频率
* Fs:模数变换的时钟频率
* N: 获取的采样样本点的数量
* n:量化后输出数据的位数
{{ :adctermblock1.png |}}6位模数转换器及主要术语
{{ :adcterm1.png |}}ADC常用术语的定义
经过了这个量化的过程,信号的频域也发生了变化,在模拟信号领域,除了原始信号的频率Fin,还由于电路的非线性导致的多次谐波信号,这些谐波的频率为Fin的整数倍。量化之后在数字域的信号则会出现混叠的频率,混叠是指通过采样过程,目标带宽内出现所需信号频段之外的频率信号的情况。
{{ :adctermblock2.png |}}信号的时域和频域
来看一段视频 - (示波器采集导致混叠信号的演示视频)
通过此过程,根据奈奎斯特准则可确定采样信号的最大带宽。该理论认为,信号频率必须小于或等于一半采样频率以防混叠。不过,在通信系统设计中,可利用此混叠过程将高频信号向下转换为低频信号。这就是欠采样技术。欠采样的标准就是ADC具有足够的输入带宽和动态范围来采集最高目标频率信号。
{{ :samplingprocess.png |}}采样过程
采样和量化都是重要的概念,因为它们确定了理想ADC的性能极限。在一个理想ADC中,码跃迁恰好相距1 LSB(最低有效位)。因此,对于一个N位ADC,共有2的N次方个数字码,且1 LSB = FS/2的N次方,其中FS为满量程模拟输入电压。然而,实际ADC操作也受到非理想效应的影响,所产生的误差超出了转换器分辨率和采样速率所决定的误差。与ADC相关的许多交流和直流性能规格中都会体现这些误差。
{{ :adctransferfunction.png |}}3位ADC的传输函数,在此范围内,任何模拟输入会产生同样的数字输出码
{{ :adcterm2.png |}}8位ADC的传输函数
基于输入模拟信号的满量程最大值、ADC的基准电压,以及ADC的位数,就可以计算出ADC量化后1个LSB能够分辨的模拟信号的最小值。比如我们采用1.024V作为ADC的基准电压,12位的ADC,一个最低有效位能够分辨的模拟信号的幅度为1.024V ÷ 4096 = 250μV。
{{ :adcterm3.png |}}ADC单极输入时的满量程范围
表 LSB电压和分辨率及参考电压的关系
^ |1.024V|1.25V|2.048V|2.5V|3.0V|3.3V|5V|
|8bits|4mV|4.88mV|8mV|9.76mV|11.7mV|12.9mV|19.5mV|
|10bits|1mV|1.22mV|2mV|2.44mV|2.93mV|3.22mV|4.88mV|
|12bits|250µV|305µV|500µV|610µV|732µV|806µV|1.22mV|
|14bits|52.5µV|76.3µV|125µV|152.5µV|183µV|201µV|305µV|
ADC的采样时钟的抖动也会影响到采样后信号的信噪比,信噪比的大小还与输入信号的频率有关,因此要采集高频率的模拟信号,对ADC采样时钟的要求也相应提高,否则由于时钟的抖动导致的信噪比的降低,会使得采用高分辨率的ADC失去了意义。
{{ :adcterm11.png |}}SNR vs 抖动和输入频率的关系
### 2. ADC的种类
{{ :adcarchitect.png |}}
#### 2.1 比较器构成的1位ADC
最简单的ADC就是比较器,它是1位的ADC。如果输入超过阈值,输出即会具有一个逻辑值,而输入低于阈值时输出又会有另一个值。所有ADC架构都会使用至少一个某种类型的比较器。最常见的比较器与运算放大器存在一些相似之处,如使用差分晶体管对或FET作为其输入级,但与运算放大器不同的是,比较器并不使用外部负反馈,且其输出为指示两个输入中哪个电位较高的逻辑电平。运算放大器并非设计用作比较器;一旦过驱,运算放大器可能发生饱和,并恢复速度缓慢。
{{ :1bitadc.png |}}比较器:1位ADC
我们来使用一款ADALP2000实验套件中提供的比较器AD8561来构建一个1位的ADC.
AD8561是一款单路7ns比较器,具有单独的输入和输出部分。单独的电源使输入级可以采用±5V双电源或+5V单电源供电。AD8561具有7 ns快速传播延迟性能,因而成为时序电路和线路接收机的理想选择。上升信号与下降信号的传播延迟在整个温度范围内紧密匹配。由于输出的占空比将会与输入的占空比匹配,因此,这种匹配延迟特性使AD8561适用于时钟恢复。
AD8561有DIP8、SOIC8和TSSOP-8三种封装,在我们ADALP2000实验套件中提供的是PDIP8封装的器件,可以直接在面包板上使用。
我们来看一下如何使用AD8561对输入的模拟信号进行量化以及输出的数字量(面包板上做实验的短视频)
由于比较器是构成所有ADC的基础,比如后面讲到的Sigma Delta ADC就是通过比较器和数字逻辑构成的ADC。
参考资料:(在课程中不阅读)
* [[https://www.analog.com/cn/products/ad8561.html|AD8561产品页面]]
* [[https://www.analog.com/media/en/technical-documentation/data-sheets/AD8561.pdf|AD8561数据手册]]
* [[https://www.analog.com/media/cn/technical-documentation/application-notes/AN-352_cn.pdf|如果使用得当,高速比较器可提供许多有用的电路功能]]
* [[https://wiki.analog.com/university/courses/electronics/electronics-lab-opamp-comparator|ADALP2000实验:把运放用作比较器]]
#### 2.2 Flash ADC
Flash ADC,也称为并行ADC,是将模拟信号转换为数字信号的最快方法之一。Flash ADC非常适合需要极宽带宽的应用,但其功耗比其他ADC架构高、且通常限制为8位分辨率。典型示例包括数据采集、卫星通信、雷达处理、采样示波器和高密度硬盘驱动器等。
一个N位Flash ADC包括2的N次方个电阻和2的N次方减1个比较器。每个比较器均从电阻串获得基准电压,且每个基准电压要比链中的下一个基准电压大1LSB。对于给定输入电压,低于某个点的所有比较器都将出现输入电压高于基准电压且逻辑输出为"1",而高于该点的所有比较器则都将出现基准电压高于输入电压且逻辑输出为"0"。因此,2N–1个比较器输出在行为上类似于水银温度计,而该点的输出码有时称为“温度计”码。由于2N–1个数据输出并不便于实际应用,因此需要经过解码器处理来产生N位二进制输出。
这是一个三位Flash ADC的内部结构:
{{ :3bitflashadc.png |}}3位全并行(Flash)转换器
这是1975年的一款100Msps的Flash,诺达的体积只能达到4位的分辨率。
{{ :4bit100mspsadc.png |}}Computer Labs于1975年推出的4位、100-MSPS Flash转换器
下面我们使用ADALP2000套件里的器件来构建一个简单的Flash ADC。Flash ADC使用高速比较器构建而成,但为了方便起见,我们可以使用OP482四通道运算放大器来体验它的工作原理。当然,也可以使用四个AD8561比较器来构建此电路,只是我们的套件中只有两颗比较器。
(播放做实验的演示视频)
{{ :opa482adc.png |}}使用OP482制作的2位Flash ADC
#### 2.3 SAR ADC
近年来,SAR ADC也被称为逐次逼近型ADC一直是数据采集系统的主要依靠,它的采样频率扩展至数兆赫领域且分辨率达到24位,目前常用单片机内部的ADC基本上都是采用SAR ADC。
{{ :saradc.png |}}基本逐次逼近型ADC(反馈减损型ADC)
逐次逼近型(最初称为“反馈减损型”)ADC转换过程中使用的基本算法可以追溯到16世纪,与某个数学谜团的解决相关,即通过最小序列的称量操作来确定未知重量(参考文献1)。
如上所述,该问题的目的是确定最少的称量次数,从而使用天平称量出1 lb到40 lb范围内且为整数值的重量。1556年数学家Tartaglia提出的解决方案之一就是使用1 lb、2 lb、4 lb、8 lb、16 lb和32 lb的称重序列。上述称重算法与现代逐次逼近型ADC中使用的算法完全相同。(应注意,此种解决方案实际上可以测量最高63 lb的未知重量,而非问题中所述的40 lb。),其中未知重量为45 lb。此处使用天平等比来演示该算法。
{{ :saradcagor.png |}}逐次逼近型ADC算法
随着逐次逼近型ADC日益受欢迎,其分辨率、采样速率、输入/输出选项和成本开始出现多样化。现在,很多SAR ADC提供片上输入多路复用器,非常适合多通道数据采集系统。
{{ :ad572.png |}}ADI公司1977年通过军用认证的12位、25-μs混合型ADC AD572
SAR ADC架构是一种完善、有效且易于理解的架构,非常适合现代细线CMOS工艺。该架构没有“流水线”延迟,因此非常适合单发和多路复用数据采集应用。CMOS工艺允许添加各种各样的数字功能,如自动通道时序控制和自动校准等。此外,许多SAR ADC拥有片上温度传感器和基准电压源。虽然SAR ADC源自16世纪的数学谜团,但是其仍然是现代多通道数据采集系统所青睐的转换器
在我们的ADALP2000套件中,有一颗SAR ADC芯片 - AD7920, 它是12位高速、低功耗、逐次逼近型ADC,采用2.35V至5.25V单电源供电,最高吞吐量达250kSPS。它内置了一个低噪声、宽带宽采样/保持放大器,可处理6MHz以上的输入频率。
{{ :ad7920.png |}}ADI公司的AD7920 SAR ADC - 250kSPS、12位ADC,采用6引脚SC70封装
{{ :bob_ad7920.jpeg |}}ADALP2000练习套件中用AD7920制作的模块
下面我们就来看一下使用AD7920这颗SAR ADC对模拟信号的采样实验(播放实验视频)
参考资料(此部分不出现在视频中):
* [[https://www.analog.com/media/en/technical-documentation/data-sheets/AD7910_7920.pdf|AD7920的数据手册]]
* [[https://www.analog.com/media/cn/reference-design-documentation/reference-designs/CN0241_cn.pdf|具有输入过压保护的高边电流检测]]
#### 2.4 Σ-Δ型ADC
[[sigma_delta_adc|Σ-Δ型ADC]]
Σ-Δ型ADC是现代语音频带、音频和高分辨率精密工业测量应用所青睐的转换器。它通常包括两个模块:Σ-Δ调制器和数字信号处理模块,后者通常是数字滤波器。因为它高度数字化的架构,非常适合现代细线CMOS工艺,因而允许轻松添加数字功能,而又不会显著增加成本。成为当今信号采集和处理系统设计人员的工具箱中必不可少的基本器件。
{{ :sigmadeltaadc.png |}}Δ调制和差分PCM
Σ-Δ型ADC架构源自脉冲码调制(PCM)系统的早期研发阶段,尤其是那些与称为“Δ调制”和“差分PCM”的传输技术相关的。
{{ :1stepsigmadeltaadc.png |}}一阶Σ-Δ型ADC
{{ :sigmadeltamodulator.png |}}
在硬禾学堂前期的活动中,我们曾让同学们使用一颗高速比较器和FPGA的逻辑制作ADC,对输入的模拟电压进行测量。
[[https://www.eetree.cn/project/detail/255|通过高速比较器和FPGA逻辑实现Sigma Delta ADC - 基于电赛综合训练板/小脚丫FPGA
]]
{{ :simplesigmadeltaadcdiagram.png |}}使用比较器和FPGA制作的sigma delta ADC
我们来看一下如何使用AD8561比较器搭配小脚丫FPGA模块来做数据采集。(讲述这句话的时候播放框图图片,讲述结束开始播放演示视频)
将量化的数字信号再通过DAC输出,在示波器上对比一下输出信号和采集的原始模拟信号的关系(在电赛板上做实验的短视频)。
{{ :1bitadc_m2k.png |}}使用比较器和FPGA制作的sigma delta ADC
#### 2.5 电压频率转换器
电压频率转换器也是一种ADC的过程,它直接将模拟电压信号转换为频率信号,后面的数字信号处理器可以通过对频率计数进而推算出被测的电压值。在ADALP2000套件中有一款电压频率转换器 - [[https://www.analog.com/cn/products/ad654.html|AD654]]。
AD654是一款单芯片V/F转换器,由输入放大器、精密振荡器系统和高电流输出级组成。它只需要一个简单的RC网络,即可设置最高500kHz的任意满量程(FS)频率和最高±30V的任意FS输入电压。在250kHz满量程时,线性误差仅为0.03%,保证工作动态范围为80dB。整体温度系数(不包括外部元件的影响)典型值为±50ppm/°C。AD654采用5V至36V单电源供电,静态电流仅为2.0mA。
低漂移(典型值4 µV/°C)输入放大器可以直接采用来自热电偶或应变计等的小信号工作,同时提供高输入阻抗(250 MΩ)。与大多数V/F转换器不同,AD654提供方波输出,可以驱动最多12个TTL负载、光耦合器、长电缆或类似负载。
它的内部结构(不读这句话,图片作为上面文字叙述的背景):
{{ :ad654-fbl.png |}}AD654的内部结构
它有SOIC8或DIP8两种封装(不读这句话,图片作为上面文字叙述的背景)。
{{ :ad654dip8.jpeg |}}AD654封装
下面我们来看一下用AD654搭配FPGA测得的电压值。
{{ :usead654asadc.png |}}使用ADALM2000来测试AD654将电压转化的频率实验
### 3. ADC的选型
我们了解了ADC的工作原理、基本技术指标以及不同构成方式,如何基于自己的项目需求来选择一款合适的ADC器件呢?
一种最简单的方式就是利用得捷电子官网的分类检索功能,下面我来演示一下:
比如我们要寻找一颗适合做双通道示波器,支持模拟信号带宽到10MHz的ADC,我们可以推算需要的转换时钟频率应该在50-100Msps之间、分辨率为8到12位,并方便同FPGA进行并行接口。
下面是录屏视频 ---
打开得捷的官网www.digikey.cn,从产品分类中选择“集成电路”
选择 - 数据采集
选择 - 模数转换器(ADC)
有1万多种不同的型号,我们需要缩小范围,比如只选用ADI公司的器件,制造商中勾选ADI和ADI/美信, 产品状态选择在售、位数选择8-12位、采样率50M到100M、输入数为2,双通道
结果只有30多个。
我们希望通过3.3V电压供电,进一步缩小范围,仅剩20多种,有些器件暂时没货,并不意味着这颗器件会一直没货,如果你比较急用,可以选择目前有库存的器件,勾选库存选项中的“现货”,只有11颗。
封装、价格也是我们需要考虑的因素,基于这个表格列出来的参数,可以有一个大致的权衡,锁定几颗最心仪的器件。
当然,我们还需要认真阅读每一颗备选器件的数据手册和应用说明文档,看一下这些器件的参考设计,综合这些因素再做一个最终的决定 - 使用哪一颗器件。
{{ :dkadc1.png?1200 |}} Digikey网站选型ADC页面1
{{ :dkadc2.png?1200 |}} Digikey网站选型ADC页面2
{{ :dkadc3.png?1200 |}} Digikey网站选型ADC页面3
(下面的内容不需要阅读)
高速并行ADC:
* Analog Devices Inc的[AD9283](https://www.analog.com/cn/products/ad9283.html):单路8位、50MSPS/80 MSPS/100MSPS ADC
* Analog Devices Inc的[AD9600](https://www.analog.com/cn/products/ad9600.html):双路10位、105 MSPS/125 MSPS/150MSPS、1.8V模数转换器
* Analog Devices Inc的[LTC2281](https://www.analog.com/cn/products/ltc2281.html):双路、10位、125Msps 低功率 3V ADC
* Maxim Integrated的[MAX1190](https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/MAX1190.html):双路、10位、120Msps、3.3V、低功耗ADC,内置电压基准及并行输出
* Analog Devices Inc的[AD9288](https://www.analog.com/cn/products/ad9288.html):双路8位、40/80/100 MSPS ADC
* Analog Devices Inc的[AD9216](https://www.analog.com/cn/products/ad9216.html):双路10位、65/80/105 MSPS ADC
* 高速并行ADC - [[3PA1030App|3PA1030的使用及短视频]] - 阶跃制作
* 高精度串行ADC的使用 - [[ad7920app|AD7920 - 250 kSPS、12位ADC的使用及短视频]] - 卓晴老师制作
### 4. 综合练习 (在课程中不阅读)
* [[https://www.analog.com/cn/analog-dialogue/studentzone/studentzone-february-2022.html|ADALM2000实验:模数转换]]
### 5. 参考资料
- {{:the-right-adc-architecture.pdf|}}
- {{:High-Speed-ADC-Portfolio.pdf|}}
- {{:high-speed-signal-chain.pdf|}}
- [[https://www.analog.com/media/cn/technical-documentation/application-notes/AN-282_cn.pdf|֑采样数据系统基本原理]]
- [[https://www.analog.com/media/cn/technical-documentation/application-notes/AN-342_cn.pdf|高速、高精度处理模拟信号]]
- [[https://www.analog.com/media/cn/technical-documentation/application-notes/AN-388_cn.pdf|使用Σ-Δ转换器第一部分]]
- [[https://www.analog.com/media/cn/technical-documentation/application-notes/AN-389_cn.pdf|使用Σ-Δ转换器第一部分]]
- [[https://www.analog.com/media/cn/technical-documentation/application-notes/AN-283_cn.pdf|Σ-Δ型ADC和DAC]]
- [[https://hackaday.com/2016/05/05/analog-to-digital-conversion/|ANALOG TO DIGITAL CONVERTER (ADC): A TRUE UNDERSTANDING]]