尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

SAR ADC原理与应用:从二分搜索到硬件设计全解析

SAR ADC原理与应用:从二分搜索到硬件设计全解析 1. 从“猜数字”游戏到逐次逼近SAR ADC的核心思想如果你玩过“猜数字”游戏那你已经理解了SAR ADC逐次逼近寄存器型模数转换器最核心的运作逻辑。游戏规则很简单我心里想一个1到100之间的数字你每次猜一个数我只能告诉你“大了”、“小了”或者“对了”。一个高效的策略是每次都猜当前可能范围的中间值。比如第一次猜50我说“大了”你就知道数字在1-49之间第二次猜25我说“小了”你就知道数字在26-49之间第三次猜3726和49的中间值……如此反复最多只需要7次log₂(100) ≈ 6.64向上取整就能锁定最终答案。SAR ADC干的就是这个“猜数字”的活儿只不过它猜的不是我心里的数字而是输入引脚上那个连续变化的模拟电压值。它的“猜谜工具”是一个DAC数模转换器而它的“大脑”就是那个SAR逐次逼近寄存器。整个转换过程就是DAC根据SAR的指令输出一个又一个的“猜测电压”与真实的输入电压进行比较然后根据比较结果“大了”还是“小了”来修正下一次的猜测直到两者的差值在可接受的误差范围内。为什么这种结构在中等精度、中等速度的应用中如此受欢迎比如在微控制器MCU、传感器接口、电池管理系统里几乎无处不在核心原因在于它在速度、精度、功耗和成本之间取得了绝佳的平衡。它不像Flash ADC那样需要2^N-1个比较器8位就要255个硬件开销巨大也不像Sigma-Delta ADC那样需要极高的过采样率和复杂的数字滤波器转换速度较慢。SAR ADC通常只需要一个高精度的比较器、一个DAC、一些逻辑电路和一个参考电压源结构相对简洁。对于12位、1MSPS每秒百万次采样量级的需求SAR ADC几乎是性价比最高的选择。我刚开始接触时总觉得“逐次逼近”这个词有点抽象。但当你把它想象成那个二分查找的猜数字游戏一切就豁然开朗了。这个笔记我就从一个硬件工程师的实操视角拆解SAR ADC的里里外外不光是原理更重要的是那些数据手册上不会写、但在调试中会让你抓狂的细节。2. SAR ADC的解剖核心模块与信号链路一个最简化的SAR ADC框图通常包含以下几个关键部分采样保持电路S/H、比较器、DAC、SAR逻辑控制单元以及一个参考电压源。它们像一条精密的流水线协同完成从模拟世界到数字世界的“翻译”工作。2.1 采样保持抓住那一瞬间的电压模拟信号是连续的而ADC转换需要时间。我们不可能让输入电压在转换的几微秒甚至几百纳秒内保持绝对静止尤其是当信号本身在变化时。这就好比你想给一个奔跑中的人拍一张清晰的照片必须用非常快的快门“定格”那一瞬间。采样保持电路就是那个“快门”。它内部通常包含一个开关和一个电容。在“采样”阶段开关闭合电容迅速充电或放电至与输入电压相同的电平。在“保持”阶段开关断开理想情况下电容上的电压会保持不变为后续的比较器提供一个稳定的输入。这个被保持住的电压就是我们这次转换要处理的“目标值”。注意这里埋下了SAR ADC的第一个性能陷阱——采样保持的建立时间和电荷注入。如果采样时间太短电容上的电压还没稳定到目标值转换就开始了结果自然不准。更棘手的是电荷注入当MOS开关管断开时沟道中的电荷会无处可去一部分会注入到保持电容上引起一个微小的电压阶跃。这个误差是系统性的且与输入信号相关设计时需要精心考虑开关尺寸和时序。2.2 比较器判决“大”与“小”的法官比较器是SAR ADC中唯一的模拟“裁判”。它有两个输入端一端接来自采样保持电路的输入电压VIN另一端接DAC输出的猜测电压VDAC。它的输出是数字量高电平表示VIN VDAC低电平表示VIN VDAC。这个“裁判”的要求极高。首先它必须非常灵敏能分辨出微伏级别的电压差。其次它必须足够快在每一个比特的判决周期内都能稳定输出有效结果。最后它的失调电压必须极小且稳定。失调电压就像是裁判自带的一个偏见比如他总是认为左边选手比实际重0.1克。如果这个“偏见”太大或者飘忽不定整个判决结果就全乱了。因此高性能SAR ADC的比较器通常都是全差分、带自动归零或斩波稳幅技术的复杂结构。2.3 DAC生成“猜测值”的精密电压源DAC是SAR ADC的“手臂”负责将SAR逻辑产生的数字码转换成模拟电压VDAC。在逐次逼近的每一步SAR逻辑都会给出一个新的数字码比如“10000000”对应中间值DAC则忠实地输出对应的电压去和输入比较。SAR ADC中常用的DAC结构有两种电荷再分配型和电阻串型。电荷再分配型DAC通常由电容阵列构成。它的妙处在于采样保持的电容本身就是DAC电容阵列的一部分。转换过程通过切换电容阵列中电容的接地或接参考电压来重新分配电荷从而改变比较器输入端的电压。这种结构天然地集成了采样保持功能节省面积且能做到很好的单调性即数字码增加模拟输出一定增加。它是目前主流CMOS工艺SAR ADC的首选。电阻串型DAC由一串精密电阻和一系列开关组成。通过切换开关从电阻分压网络中抽头取出不同的电压。它的优点是线性度理论上可以做得很好且静态功耗极低只有分压网络的漏电流。但需要大量的开关和复杂的解码逻辑在高分辨率时面积开销大且开关的导通电阻会引入非线性误差。2.4 SAR逻辑与控制时序运筹帷幄的“大脑”这是整个ADC的“算法核心”。它严格遵循二分搜索的流程启动转换后SAR逻辑首先将最高位MSB置为1其余位置0将这个数字码送给DAC。DAC输出对应的VDAC通常是VREF/2与VIN比较。比较器输出结果告诉SAR逻辑VIN是大于还是小于VDAC。如果VIN VDAC比较器输出高说明猜小了那么MSB这个“1”就保留如果VIN VDAC说明猜大了那么MSB就清为“0”。SAR逻辑接着将次高位MSB-1置为1结合上一步确定的MSB值形成新的数字码再次送给DAC生成新的VDAC进行比较和判决。重复步骤2-5从最高位到最低位LSB一位一位地确定下来。当最低位也判决完成后SAR寄存器中的数字码就是本次转换的最终结果可以输出给后续数字电路。这个过程的时序非常关键。每一步称为一个“比特周期”都必须留出足够的时间DAC电压建立时间、比较器决策时间、SAR逻辑锁存时间。整个转换时间T_conv N * T_bit_cycle T_acquire采样时间。所以SAR ADC的转换速度直接受位数N和单个比特周期速度的限制。3. 关键性能参数看懂数据手册上的“黑话”选型或评估一个SAR ADC时数据手册上那一堆参数常常让人眼花缭乱。抛开市场宣传用语工程师最需要关注的是下面这几个核心指标它们直接决定了你的系统性能天花板。3.1 分辨率与量化误差天生的“不完美”分辨率Resolution就是ADC的位数比如12位、16位。它定义了ADC输出数字码的总数。一个N位的ADC输出码范围从0到(2^N - 1)共2^N个码。量化误差Quantization Error是ADC原理上固有的、无法消除的误差。因为ADC是用有限个离散的数字码去表示无限个连续的模拟值。这就像用一把最小刻度是1毫米的尺子去测量长度你永远无法精确读出0.3毫米。量化误差的最大值就是1个LSB最低有效位所代表的电压值。对于一个理想ADC量化误差在±0.5 LSB之间均匀分布。LSB的计算LSB VREF / (2^N)。例如VREF3.3VN12则LSB 3.3V / 4096 ≈ 0.805mV。这意味着输入电压变化小于0.805mV输出数字码可能不变。3.2 微分非线性与积分非线性衡量“尺子”准不准DNL微分非线性和INL积分非线性是描述ADC实际传输特性与理想直线偏离程度的两个最重要参数。DNL它衡量的是ADC相邻两个码之间的实际步进电压与理想1 LSB步进的差值。DNL误差为0.5 LSB意味着某个码的宽度比理想宽了50%DNL误差为-0.5 LSB则意味着某个码的宽度比理想窄了50%如果DNL ≤ -1 LSB就会出现失码——即无论输入电压如何变化某个输出码永远不会出现。这是ADC的严重缺陷。INL它衡量的是ADC整个传输曲线与一条通过端点的理想直线的最大偏差。INL反映了所有DNL误差累积的效果。可以把它想象成尺子不是局部刻度不准而是整个尺子都弯了。INL直接影响ADC在大范围内的绝对精度。在数据手册上你通常会看到“DNL: ±0.5 LSB (typ), ±1 LSB (max)”这样的描述。设计电路时必须确保在您关心的温度、电压范围内ADC的DNL/INL满足系统精度要求。3.3 信噪比与有效位数在噪声中提取真实信号SNR信噪比对于交流信号应用如音频、振动传感至关重要。它表示在额定输入频率下输出信号中基波分量有效信号的功率与除直流和谐波以外所有噪声功率的比值单位为dB。噪声来源包括量化噪声、热噪声、时钟抖动等。一个理想N位ADC的理论最大SNR仅考虑量化噪声由公式给出SNR 6.02N 1.76 dB。例如一个理想12位ADC的SNR约为74dB。但实际ADC的噪声远不止量化噪声所以实测SNR总会小于这个理论值。ENOB有效位数是一个更直观的指标。它直接告诉你考虑到所有噪声和失真后这个ADC“相当于”一个多少位的理想ADC。计算公式可以从实测SNR反推ENOB (SNR_measured - 1.76) / 6.02。如果一个标称16位的ADC实测SNR只有80dB那么它的ENOB只有大约13位。这意味着其低几位第14、15、16位可能已经被噪声淹没不再可靠。3.4 采样率与吞吐率速度的极限采样率Sampling Rate或吞吐率Throughput Rate指ADC每秒钟能完成多少次完整的转换并输出有效数据单位是SPS每秒采样数或S/s。这里需要区分两个概念转换时间和采样时间。转换时间从采样保持开关断开进入保持阶段开始到完成所有N位判决并输出数字码所需的时间。采样时间采样保持开关闭合允许外部输入信号对内部采样电容充电使其电压建立到目标精度所需的时间。因此吞吐率的倒数 采样时间 转换时间。很多MCU内置的SAR ADC允许你灵活配置采样时间以适配不同源阻抗的信号源。如果源阻抗高信号建立慢就必须延长采样时间否则就会导致采样不充分引入误差但这会降低最大吞吐率。4. 外部电路设计不要让ADC“吃坏肚子”ADC芯片本身性能再好如果外围电路设计不当结果也会惨不忍睹。你可以把ADC想象成一个味觉极其灵敏的美食家而前端电路就是给他准备食物的厨房。厨房不干净、上菜慢了或者串了味美食家给出的评价肯定不准。4.1 参考电压源系统的“定盘星”VREF是ADC的基准所有转换结果都是相对于这个电压的比值。如果VREF本身不稳、有噪声那么转换结果绝对好不了。选择参考电压源时要看几个关键参数初始精度出厂时的电压误差比如±0.1%。温漂电压随温度变化的系数单位ppm/°C。这是长期稳定性的关键。噪声尤其是低频噪声会直接叠加到转换结果上。对于高精度应用需要选择低噪声的基准源。负载调整率与动态响应当ADC内部的DAC切换从基准源抽取瞬态电流时基准源的输出电压能否保持稳定很多SAR ADC的DAC是开关电容结构会在每个比特判决周期从VREF吸入或吐出电荷脉冲这要求基准源有很好的瞬态响应能力。一个常见的做法是在基准源输出端紧挨着ADC的VREF引脚放置一个大电容如10μF钽电容和一个小电容如0.1μF陶瓷电容并联。大电容提供电荷池应对瞬态电流需求小电容滤除高频噪声并因其ESL等效串联电感和ESR等效串联电阻更小能提供更快的局部响应。4.2 模拟输入驱动信号源的“缓冲与过滤”驱动ADC的输入信号源必须有足够的能力在规定的采样时间内将ADC内部的采样电容充电到目标精度。ADC的输入端通常可以等效为一个开关串联一个电容采样电容Cs。在采样瞬间开关闭合时信号源需要瞬间对这个电容充电。这就引出了两个关键要求低输出阻抗信号源的输出阻抗Rs和采样开关的导通电阻Ron会与采样电容Cs形成一个RC电路。其建立时间常数τ (Rs Ron) * Cs。为了在采样时间Ts内建立到N位精度误差小于0.5 LSB通常需要满足 Ts (N1)*ln(2)*τ。如果信号源阻抗太高如来自高阻值分压网络或传感器建立时间会很长必须加长软件配置的采样时间或者更常见的是在信号源和ADC之间加入一个驱动运放作为缓冲器。运放具有极低的输出阻抗可以快速为Cs充电。抗混叠滤波根据奈奎斯特采样定理如果输入信号中含有频率超过采样频率一半fs/2的成分这些高频成分会被“折叠”到低频段造成无法消除的混叠失真。因此必须在ADC输入端加入一个低通滤波器抗混叠滤波器将高于fs/2的频率成分衰减到足够低。这个滤波器通常是一个简单的RC无源滤波器其-3dB截止频率略高于你关心的信号最高频率但远低于fs/2。实操心得驱动运放的选择至关重要。除了带宽和压摆率要满足信号建立要求外要特别注意运放的建立时间和过载恢复时间。有些运放在输出被瞬间拉到电源轨比如ADC采样开关闭合瞬间的瞬态电流后需要很长时间才能恢复到线性区这会在采样窗口后期引入误差。选择那些专门为ADC驱动设计的、具有快速过载恢复特性的运放会省去很多麻烦。4.3 电源与接地干净的“能量供给”SAR ADC对电源噪声非常敏感尤其是比较器和DAC的电源。任何电源纹波都会直接耦合到转换结果中。去耦电容必须在ADC的每个电源引脚AVDD, DVDD到地之间尽可能靠近引脚放置去耦电容。典型配置是一个1μF~10μF的陶瓷电容并联一个0.1μF或更小的陶瓷电容。大电容应对低频噪声和电流突变小电容应对高频噪声。电容的材质首选X7R/X5R陶瓷电容因其ESR和ESL较低。地平面与分割对于混合信号系统良好的接地策略是成败的关键。推荐使用单点接地或分区接地。将模拟地AGND和数字地DGND在芯片下方或附近通过一个磁珠或0欧姆电阻单点连接。确保模拟部分的地回路完整且低阻抗数字部分快速变化的大电流不会流经模拟地平面避免地弹噪声污染模拟信号。供电顺序有些高性能ADC对电源上电顺序有要求例如模拟电源应先于或与数字电源同时上电以避免内部寄生二极管导通导致闩锁风险。务必查阅数据手册的“绝对最大额定值”和“上电时序”部分。5. 软件配置与数据读取让ADC“听话地工作”硬件搭好了接下来就要通过软件寄存器配置来指挥ADC工作。这个过程看似简单但细节决定成败。5.1 时钟配置心跳要稳SAR ADC需要一个工作时钟用于控制采样、逐次比较、数据输出的每一步时序。这个时钟可以来自MCU的系统时钟分频也可以是独立的时钟源。时钟频率它直接决定了单个比特周期的时长从而影响转换速度。时钟频率必须在数据手册规定的范围内。太慢会影响吞吐率太快则可能导致DAC电压建立不充分或比较器决策不稳定导致转换错误。时钟抖动时钟边沿的不确定性抖动会引入采样时间误差。对于高频输入信号时钟抖动会严重劣化SNR。公式为SNR_due_to_jitter -20log10(2π * f_in * t_jitter)。例如输入信号1MHz时钟抖动1psRMS由此导致的SNR极限约为44dB这对于16位ADC来说是灾难性的。因此对于高速高精度应用需要一个低抖动的时钟源。5.2 采样时间与序列控制把握采样时机如前所述采样时间必须根据信号源阻抗和ADC内部采样电容来合理设置。大多数MCU的SAR ADC模块都允许通过寄存器灵活配置采样周期数。一个实用的方法是先设置一个较长的采样时间确保转换正确然后逐步缩短采样时间直到转换结果开始出现偏差再留出20%-50%的余量作为最终设置。对于多通道ADC通常支持扫描序列模式。你需要配置一个通道序列以及每个通道的采样时间如果支持。要特别注意通道切换时的建立时间。当ADC从测量一个通道切换到另一个通道时如果两个通道的电压差异很大内部采样电容上的电压需要时间从一个值建立到另一个值。如果紧接着就启动转换结果会是上一个通道电压和当前通道电压的混合体导致严重的串扰误差。解决方法是在通道切换后插入额外的“ dummy ”采样转换周期或者确保软件上有足够的延迟。5.3 触发模式与中断处理高效的数据获取ADC转换可以由软件触发写一个启动位也可以由硬件事件触发如定时器溢出、外部引脚信号。对于周期性采样使用定时器硬件触发是最佳实践它可以确保采样间隔绝对均匀不受软件中断响应时间的影响这对于后续的数字信号处理如FFT至关重要。数据读取通常通过中断或DMA直接存储器访问完成。中断方式每次转换完成产生中断在中断服务程序ISR中读取数据。简单但频繁中断会占用大量CPU资源且在高采样率下可能来不及响应。DMA方式配置DMA在每次ADC转换完成时自动将数据从ADC数据寄存器搬运到内存中的数组。搬运完成后如数组满再产生一个中断通知CPU进行批处理。这是高效、低CPU占用的方法特别适合高速连续采样。一个常见的坑是数据对齐。ADC结果寄存器可能是12位或16位的但存储在32位寄存器中可能是左对齐或右对齐。读取数据后需要根据数据手册的说明进行相应的移位和掩码操作才能得到正确的数值。6. 校准与误差补偿追求极致的“微调”即使硬件和软件都配置正确由于工艺偏差、温度漂移等因素ADC仍然会存在增益误差和偏移误差。对于精度要求高的应用必须进行校准。6.1 偏移误差与增益误差偏移误差当输入电压为0时ADC的输出码不为0。这相当于整个传输曲线在纵轴上发生了平移。增益误差当输入电压达到满量程VREF时ADC的输出码达不到满量程码2^N - 1。这相当于传输曲线的斜率与理想值不符。6.2 两点校准法这是最常用且有效的校准方法需要在已知的精确输入电压下测量ADC的输出。测量零点将ADC输入端接地或接一个已知的、稳定的0V参考读取一组输出码的平均值记为Code_Zero。测量满点将ADC输入端接一个已知的、精确的、接近VREF的电压例如用一个更高精度的电压基准产生读取一组输出码的平均值记为Code_Full。计算校准系数理想情况下输入电压V_in与输出码Code的关系是V_in (Code / (2^N - 1)) * VREF。存在误差时我们假设实际关系是线性的V_in Gain * Code Offset。将两个已知点0V,Code_Zero和V_Full,Code_Full代入可以解出Gain V_Full / (Code_Full - Code_Zero)Offset -Gain * Code_Zero应用校准对于任何新的测量输出Code_Measured其校准后的电压值为V_Calibrated Gain * Code_Measured Offset。注意事项校准必须在系统实际工作的温度、电源电压下进行因为偏移和增益误差会随温度变化。对于宽温范围应用可能需要制作一个温度-误差查找表进行分段补偿。此外校准过程本身使用的参考电压用于产生0V和V_Full的精度直接决定了校准后的精度上限。7. 高级话题与选型考量面向实际应用当你需要为一个具体项目选择或设计SAR ADC时除了基本参数还需要思考以下更深层次的问题。7.1 单端输入 vs. 差分输入大多数MCU内置的SAR ADC是单端输入以地为参考。但在噪声较大的环境中差分输入具有巨大的优势。差分ADC测量的是两个输入引脚IN, IN-之间的电压差它能有效抑制共模噪声同时出现在两个输入端的噪声。这对于测量桥式传感器如应变片、压力传感器、在电机驱动等强干扰环境下的信号采集至关重要。选择差分ADC时要关注其共模抑制比参数。7.2 内部参考 vs. 外部参考很多SAR ADC芯片内部集成了参考电压源。使用内部参考方便省事节省外部元件但其精度、温漂和噪声性能通常不如独立的高性能外部基准源。如果系统对精度和稳定性要求极高例如精密测量仪器或者VREF需要被系统中其他电路共享那么使用外部基准源是更好的选择。需要仔细评估内部参考的规格是否满足系统误差预算。7.3 通道间的串扰与隔离在多通道SAR ADC中当切换通道时前一个通道信号在采样电容和寄生电容上的残留电荷可能会影响下一个通道的测量这就是通道串扰。高质量ADC会通过设计如增加复位开关来最小化这种影响。在软件上如前所述在关键通道测量前插入一个 dummy 转换周期到GND或一个固定电压是降低串扰的实用技巧。7.4 功耗与速度的权衡SAR ADC的功耗与采样率大致成正比。在低功耗应用中如电池供电的物联网设备可以利用这个特性在不需要高速采样时显著降低ADC的时钟频率或干脆关断其电源如果支持以节省电能。许多现代SAR ADC都提供了多种功耗模式如运行模式、待机模式、关断模式需要根据应用的采样需求动态管理。从我经手的几个工业传感器项目来看SAR ADC的稳定性往往不是被其本身的极限参数打败而是输在了不起眼的外围细节上一个温漂大的偏置电阻、一个布局不当的接地回路、一个驱动能力不足的运放或者一个被忽略的电源去耦电容。理解原理是基础但敬畏细节、做好每一处噪声管理和信号完整性设计才是让SAR ADC在真实世界中发挥出数据手册上那些漂亮指标的关键。下次当你看到ADC输出数据跳动时别急着怀疑代码先从电源纹波和输入驱动电路查起八成能找到问题所在。
返回列表