ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SAR ADC与Sigma-Delta ADC怎么选?从原理到工程实践的完整指南

SAR ADC与Sigma-Delta ADC怎么选?从原理到工程实践的完整指南 我接触过的硬件工程师里几乎每个月都会有人问同一个问题做数据采集时到底选SAR逐次逼近型ADC还是Sigma-DeltaΣ-ΔADC这个问题的答案远不是“SAR快、Sigma-Delta准”一句话能糊弄过去的。前阵子一位做物联网终端的同事把体重秤上成熟稳定的Sigma-Delta方案直接搬到变频器电流环路上改结果采样率死活追不上控制周期现场调试焦头烂额反过来也有人非要在称重传感器上硬上SAR低噪声部分完全做不出来最后只好返工。这类事情在日常项目里太普遍了归根结底还是对两种ADC的原理内核和工程边界没吃透。这篇内容我打算抛开教科书式的罗列结合这些年实际调过的PCB、跑过的数据、踩过的坑把两种ADC的区别拆成一条完整的判断链条原理机制差在哪、精度瓶颈差在哪、时序参数差在哪、前端电路和布局差在哪、最后落到具体应用场景里该怎么选型。文章会尽量用大白话把底层机制讲清楚同时给出可以直接抄作业的布局思路和排查经验适合正在做选型的硬件工程师、写采集驱动的嵌入式工程师以及刚入门想建立ADC全局认识的同学。1. 两种架构的底层逻辑天平称重法与统计估值法1.1 SAR的本质是“二分查找”每次转换都在做一次天平称量先别被“逐次逼近寄存器”这个名字吓到。SAR ADC的工作方式本质上就是你在天平上称一包盐先放一个50克的砝码太重就换25克太轻就加12.5克一步步逼近真实重量直到秤杆平衡。放到电路里SAR内部有一个比较器、一个数模转换器DAC寄存器阵列和一个逐次逼近逻辑单元。一次转换开始采样开关先把输入电压采到内部的采样电容上然后从最高有效位MSB开始每一位依次置1DAC输出对应的模拟电压再与输入电压比较如果DAC那个电压比输入小这一位就保留为1否则翻回0继续下一位。如此反复逐一把每一位都“称”一遍最后得到一个完整的数字码。这种方式决定了SAR的采样速度和架构高度绑定。它的转换时间几乎是逐位串行的12位ADC要比较12次16位就要比较16次每一次比较还牵扯到DAC建立时间、比较器响应时间、数字逻辑翻转时间。表面上SAR转换一次只要几百纳秒到几微秒但你把采样电容充电时间也算进去实际能跑的采样吞吐量会被“打了折扣”。不过这种“串行二分”的逻辑也是优势所在输入信号一旦被采样到电容上后续的转换过程基本不依赖外部时钟的连续精度也很少受信号带宽的拖累转换延迟极低很适合用在对实时性要求苛刻的控制环路上。还有一点容易被忽略SAR的转换精度高度依赖内部电容阵列的匹配程度也就是DAC每一位的权重是否做得到精确的比例关系。工艺再好电容也会有制造偏差所以高分辨率SAR往往需要校准电路在后台帮你修正权重误差。你看到的高位数SAR并不是天生就准而是被“校”出来的。1.2 Sigma-Delta更像是“反复测量再求平均值”靠过采样和噪声整形取胜Sigma-Delta ADC的逻辑完全不同。它不追求一次转换就把电压量准而是以极高采样率对输入信号反复采样然后用调制器把量化噪声往高频搬移再由数字滤波器把带外噪声滤掉。这个过程很像你用一把只有厘米刻度的尺子去量一根绳子你量一百次每次都量出高度重复的结果再把这些读数做统计处理就能在厘米尺上估出毫米级别的差异。Sigma-Delta的“过采样”就是这把厘米尺的多次测量而“噪声整形”则保证了你统计出来的平均值比单次测量可信得多。具体来说Sigma-Delta调制器内部有一个积分器、一个比较器和一个由比较器输出反馈驱动的DAC。输入信号与反馈信号在积分器处做差值差值被不断积分和量化输出的是一个极高速的1-bit或低比特位流。这个位流里的“1”密度就代表了输入电压的大小。后面接的数字抽取滤波器负责把高速位流降采样成中低速的高分辨率数据顺便把带外噪声滤除。得益于“反馈积分”的结构输入信号在基带内几乎不被衰减而量化噪声则被大幅推高到高频段这就是所谓的“噪声整形”。这套机制解释了Sigma-Delta的两个固有特征第一它天然适合低频、高分辨率、高动态范围的测量比如音频、称重、热电偶、压力应变等第二它的数据输出带有多级滤波带来的群延迟也就是说你送进一个阶跃电压要等好几个数据周期之后读数才会真正跟上这在控制环里是个致命弱点。很多初次用Sigma-Delta做环路反馈的工程师都在这个“看起来飞快、实际上慢半拍”的问题上栽过跟头。2. 精度机制的真正分水岭谁在决定你的ENOB和噪声本底2.1 SAR的精度天花板电容失配、比较器噪声和建立时间很多数据手册会直接标“16-bit SAR ADC”但实际用下来有效位数ENOB往往只有13到14位。这不是芯片厂虚标而是SAR的误差来源本来就很复杂。第一类误差来自内部DAC电容阵列的失配。每一位电容的比例一旦不精确转换曲线就会偏离理想直线表现为DNL和INL变差。高精度SAR内部通常有自校准逻辑但校准只能修正固定失配输入信号带宽引起的动态误差校不掉。第二类误差来自比较器。比较器是SAR完成“二分查找”的工具它的噪声必须远小于半个LSB否则判定结果会左右摇摆直接抬高底噪同时它还需要足够的过驱动恢复能力特别是当输入电压恰好接近判定边界时比较器来不及完全复位下一次比较就会踩在前一次残留上。第三类也是最容易被系统设计忽略的是采样网络的建立时间。SAR内部的采样电容和输入信号的源阻抗构成了一个RC网络如果你的外部驱动能力不足采样还没稳定就开始转换那么后面所有的比较过程都建立在一个“错误的快照”上。输入源阻抗过高、运放驱动能力不够都会导致你看到的数据出现“越采越小”或者“随频率升高而衰减”的诡异现象。还有一点比SAR噪声机制更实际SAR的采样保持电容会从外部反向抽取电荷也就是常说的“反冲”kickback。每次采样开关闭合电荷重新分配会把噪声倒灌回输入网络如果你前端没有做缓冲或者电荷补偿后面运放根本稳不住。这个问题我在PCB调试中反复遇到很多所谓“SAR数据总跳”的毛病把示波器挂上去一看其实是采样反冲把参考电压都拽歪了。2.2 Sigma-Delta的噪声优势过采样把白噪声摊薄噪声整形把量化误差赶到带外Sigma-Delta在低频段的精度优势是压倒性的。过采样率OSR每提高一倍白噪声功率在带内就减少3dB而量化噪声因为“噪声整形”的关系更是以每倍频程6到15dB甚至更大的速率被压出频带。这两件事叠加使得Sigma-Delta可以用一个极低精度的比较器在低频段得到20位以上的分辨率这在SAR身上几乎不可能实现。但Sigma-Delta并非没有噪声代价。它的调制器本身对时钟抖动特别敏感因为高速位流里的每一个脉冲边沿都是信息载体时钟抖动会直接变成附加噪声而且这种噪声与输入信号幅度无关在小信号输入时尤为明显。所以你在高频时钟线上如果没有处理好抖动Sigma-Delta的底噪会显著抬升。另一个噪声来源是调制器内部的参考电压和积分器运放它们的工作带宽必须覆盖过采样频率如果参考源高频阻抗过高位流切换引起的电流脉动就会调制参考电压最终反映为信号失真和杂散。在真实芯片上Sigma-Delta ADC的数字滤波器输出往往带有明显延迟内部数字电路开关噪声也不小。假如你的模拟地和数字地规划不合理数字噪声耦合到模拟前端那再好的SNR指标也白搭。这一点在高分辨率低频测量上特别突出。2.3 DNL和INL不同应用关注的重点完全不一样拿到了DNL、INL数据也不能只看数字大小。DNL决定局部台阶是否均匀在你做脉宽调制、测量微小变化时影响最大INL则是整体积分非线性对绝对测量精度更敏感。SAR在低压小尺寸工艺里经过校准后INL可以做到很漂亮但DNL可能出现个别失码Sigma-Delta则在微小的DNL上表现优异很多中端产品能做到“无失码”但大信号下的INL受积分器非线性、参考电压非线性影响并不一定比校准后的SAR更好。更重要的是DNL和INL都是“静态参数”而动态参数包括SNR、THD、SFDR、ENOB才是实际信号链路的试金石。对SAR来说高输入频率下采样保持的孔径抖动会成为SNR的绝对限制对Sigma-Delta来说动态指标又和数字滤波器带宽设置强绑定。很多工程师只盯着分辨率出力最后系统性能却不如预期多半就是没把静态参数和动态参数放在一起看。3. 速度、采样周期与延迟时序参数读不对方案直接翻车3.1 SAR的“快”也有前提采样时间和转换时间必须分开算SAR ADC数据手册上通常会给出最大采样率比如1 MSPS每秒百万次采样。但1 MSPS不代表你把转换周期一算就万事大吉。实际上每一次转换由采样阶段track/ acquire和转换阶段组成采样阶段必须保证采样电容电压跟随外部信号到足够的精度通常是低于0.5 LSB的误差转换阶段才逐位做二分比较。同样一颗SAR芯片你给的时钟频率越高、采样时间占比越短外部源阻抗就必须越低。如果前端是一颗几十千欧的分压电阻那你实际能利用的采样率可能连标称值的三分之一都不到。这里顺带提一种常见误区有人说“SAR延迟小适合做实时控制”。这句话需要打一个折扣。SAR确实单次转换延迟只有几微秒但从你发出启动转换到DMA把结果搬运到内存中间还是要经历开关延时、转换结束标志、DMA响应等环节。如果你用STM32这类MCU做多重ADC、注入通道和扫描模式同时开结果寄存器的读取顺序稍有差错取到的数据就可能不是“当下”的输入而是上一个甚至上上个周期的残留。我见过不少现场定位为“ADC采集波动大”的问题最后查出来是DMA触发配置和转换群组没有同步。3.2 Sigma-Delta的“慢”其实是滤波器的群延迟在作祟Sigma-Delta ADC的转换时延往往长到让你怀疑人生。它的输出数据率是经过抽取滤波器降采样后的比如128倍OSR的调制器输出数据率可能只有几十赫兹到几千赫兹。更关键的是数字滤波器内部有很长的阶跃响应时间一个跳变的输入至少要经过若干个输出周期才能让数据完全稳定下来这就是群延迟。对于一个sinc3滤波器群延迟通常等于三个输出周期也就是说你T0灌入阶跃信号要到T3个输出周期才能读到正确的稳定值。在温度采集、负载称重这类缓慢变化的场景里这种延迟完全不是问题但如果你试图把Sigma-Delta用在变频器电流环、电源数字控制或者振动主动控制里环路带宽会被这个滞后拍死。控制工程师最怕的“相位裕度不够”五分之一就是从这个延迟来的。实在想在控制类项目里用Sigma-Delta就必须把群延迟当做一个纯滞后环节放进环路模型里补偿或者采用芯片提供的“低延迟模式”但这通常又需要牺牲部分分辨率取舍非常现实。3.3 功耗和面积SAR低压低功耗Sigma-Delta数字滤波占大头功耗这项SAR因为核心工作是开关电容阵列的电荷重分配动态功耗占主导在低采样率下可以用极低的平均功耗运行而且可以很自然地空闲关断、按需唤醒非常适合便携设备、电池监测和无线传感节点。Sigma-Delta的功耗则主要花在调制器运放和后面的数字滤波器上——调制器运放需要跑在过采样高频段数字滤波器又需要做大量乘加运算整体功耗通常比同分辨率的SAR高一个量级而且很难用“降低采样率”来等比省电因为调制器本身始终在跑。芯片面积也值得一提。SAR的模拟核心可以做到很紧凑sigma-delta因为集成更复杂的数字滤波裸片面积更大。反映到系统BOM成本上高端Sigma-Delta片子的价格往往比同精度SAR贵但在超高分辨率这个档位上几乎没有对手。做产品选型时功耗、面积、成本、精度这四个维度放到一张表里很多“纠结选哪个”的计划都会变得明确起来。4. 前端RC滤波和PCB布局两种ADC对信号通路的要求截然不同4.1 SAR的采样反冲驱动运放选型要多留余量SAR ADC的输入模型本质上是一个开关电容。输入开关闭合那一瞬间采样电容需要从外部信号源吸收一笔电荷这笔电荷会在输入端产生非常大的电流尖峰。如果前面的驱动运放带宽不够、输出阻抗偏高尖峰就会把运放输出拉到一边采样数据自然不干净。我在实际电路里做SAR前端时驱动运放基本都选GBW比目标信号带宽高十倍以上的型号并在输出和ADC输入之间串一个十几欧到几十欧的隔离电阻再用一个小电容十到几百皮法构成低通既抑制反冲又滤高频噪声。这里要特别提醒隔离电阻和采样电容之间会构成一个RC如果电阻选太大采样阶段就会欠建立相当于你每一次都没有采到真正的输入值。一个粗略的工程经验是保证 ( R_{source} \times C_{sample} ) 的时间常数小于采样时间的五分之一到十分之一才能把建立误差压到接近1 LSB以下。实际选型时直接把外部RC和芯片内部采样电容一起仿真比较稳妥。4.2 Sigma-Delta的前端RC不是越大越好要配合调制器电流脉冲Sigma-Delta的前端设计思路跟SAR完全不同。芯片厂商往往会在数据手册里建议你加一个RC低通滤除宽频电流脉冲和带外噪声。这个RC的时间常数可以比SAR外部RC大得多因为Sigma-Delta不靠采样瞬间的绝对建立来保证精度过采样机制允许一定的建立误差被数字滤波平均掉。RC选小了调制器的开关噪声串进带内RC选大了带外信号衰减过度调制器反倒可能产生额外的失真。前端RC和调制器输入阻抗的匹配需要看具体芯片手册的上限最好在目标频段内仿真一下滤波器的平坦度和相位延迟。常用的做法是RC截止频率设置成比目标信号带宽高3到5倍再叠加一个二阶有源低通来压制比采样率高很多的噪声。总之Sigma-Delta对前端阻容的宽容度理论上比SAR高但远远没到“随便接”的程度。4.3 时钟抖动与电源噪声三个必须遵守的PCB布局要点提到ADC就绕不开时钟和电源。很多人以为只要数字退耦电容放够多就稳了其实布局的顺序和回路面积同样重要。吃过不少亏之后我把关键经验收敛成了三条直接说结论第一ADC的采样时钟或转换触发信号必须“短而直”地接入芯片中间不要打孔、不要跨分割、不要高速信号紧贴。时钟线上的任何抖动都会直接变成采样孔径抖动引起SNR恶化。如果系统里同时存在开关电源或DDR总线尽量用独立电源域给时钟缓冲芯片供电并且加一个LC滤波再加一组退耦电容。第二模拟电源引脚和参考电压引脚的退耦电容必须放在芯片引脚同侧距离不超过2毫米先接电容焊盘再接电源过孔杜绝“过孔先走再绕回电容”的错误走线。参考电压是ADC内部比较器和DAC最敏感的基准哪怕几十微伏的纹波都会实时折进转换结果。用一颗10µF X7R配合100nF C0G是很稳妥的组合C0G在高频段的容量稳定性远好于X7R。第三模拟地和数字地要么用完整的统一地平面用跨接磁珠或0欧电阻做单点相汇要么用仔细切割的分离地平面。切割地最怕高速数字信号跨越切口形成一个巨大环天线。通常我会把ADC芯片的模拟地焊盘直接落在接地平面上再在芯片附近用一粒磁珠把模拟接地区域和数字接地区域连起来让回流电流的路径最短、环路面积最小。电源噪声和地噪声是ADC所有软毛病的源头比怎么调滤波算法都重要。5. 从应用场景反推选型哪些场合该选SAR哪些场合该选Sigma-Delta5.1 低频高精度传感器采集Sigma-Delta几乎没有替代品称重、应变、热电偶、pH计、高精度压力变送器这些应用信号频率基本在DC到几十赫兹之间但分辨率要求动辄16到24位。在这些场景里Sigma-Delta的过采样和噪声整形优势发挥得淋漓尽致。它的带内噪声可以做得很低配合高稳定度的参考源和前端放大器很容易实现微伏级别的灵敏度。体重秤、工业称重模块、温控仪表里你看到的几乎都是Sigma-Delta原因就在于此。值得注意的一点是这类应用中前端的前置放大器和传感器激励源同样重要。Sigma-Delta ADC本身可以做得非常准但如果电桥供电漂移了最终读数依旧不准。很多“高精度秤漂移”案例最后查下来问题都在传感器激励电压的温漂上而不是ADC的指标不够。5.2 高速采集和控制环路SAR依然是主力电机控制、光伏逆变器、开关电源数字控制、示波器前端、电能质量分析仪等需要以几十kHz到几十MHz的频率采集多路信号并且控制回路对延迟极其敏感。这些场景SAR是绝对的主力。12位、14位甚至16位的SAR可以做到1到10 MSPS单次转换延迟几微秒就能把数据交给MCU/DSP进行计算。更强的还有流水线型SAR、多片交错并行方案可以把等效采样率推到几百MSPS以上。在这种应用里ADC的孔径抖动、采样保持建立时间、参考电压稳定时间比分辨率位数更值得关注。比如你做一个10 kHz电流环采样点每次偏移500纳秒在信号斜率大的地方就会引入额外误差比量化噪声还要难处理。正确做法是把ADC触发和PWM载波同步固定在某个开关相位上采样让采样时刻完全可重复这是工业控制里非常经典的“采样点对齐”技巧。5.3 中等带宽的数据采集系统考虑复用率、通道数和易用性还有一种更常见的场景信号带宽几kHz到几百kHz既需要一定分辨率又不至于到24位那么苛刻还要同时采多路通道。比如电池管理系统的电压电流采集、工业PLC模拟输入模块、音频设备、健康监测设备等。这时候选型就要看通道复用策略了。SAR天然适合多路复用你可以用一个模拟开关在不同通道间轮流切换只要设置了足够的稳定时间切换速度可以很快但复用时开关动作会把隔离电阻的电荷拽出噪声需要特别注意前端网络设计。Sigma-Delta同样有多通道版本但它的通道切换响应受数字滤波器群延迟影响大切换后一般要丢弃若干个输出样本等效吞吐量会明显下降。如果你的系统要频繁跳频采集不同通道SAR反而更合适如果通道少、信号慢又追求高精度Sigma-Delta更稳妥。把这三个场景画在一张表上对应的典型应用和推荐架构就一目了然应用场景信号频率所需分辨率首选架构备注称重、应变、热电偶DC-100 Hz16-24 bitSigma-Delta注意激励源温漂电机控制、数字电源1 kHz-100 kHz12-16 bitSAR采样点与PWM同步音频采集20 Hz-20 kHz16-24 bitSigma-Delta关注THDN示波器前端1 MHz以上8-12 bit高速SAR/流水线多片交错BMS电芯监测DC-数十Hz14-16 bitSigma-Delta或SAR低功耗首选SARPLC多通道模拟量DC-1 kHz16 bitSAR前端复用注意复用开关稳定6. 实战案例数据漂移、DMA乱序、环路延迟这三类坑怎么收尾6.1 “Sigma-Delta数据总是缓慢漂移”的病根往往在数字滤波器和参考源有段时间我们做一个工业温度采集模块Sigma-Delta ADC平时输出很稳但通电半小时后读数会缓慢向上飘。一开始以为是传感器自热后来把输入短接把外部信号源、传感器一一排除最后发现参考电压源的温度系数才是元凶。片内参考电压温漂虽然只有几十ppm每摄氏度放到24位分辨率下就已经非常可观。换了一颗低温漂的精密基准源并且在布局上让基准远离发热功率器件之后漂移立刻压下去了。另一个高频踩点是数字滤波器的输出数据率没设置对。Sigma-Delta抽取滤波器输出是“一段一段”的数据率越高单样本累加次数越少带内噪声也就越高。很多人在“高数据率”和“高分辨率”之间没做权衡结果数据每秒刷新很快但连续性反而差看起来就像在随机漂移。把数据率降到真正需要的带宽内噪声会立刻好看一截。6.2 MCU内置SAR在DMA扫描模式下的数据错乱问题用STM32这类MCU的内置SAR ADC时最经典的坑是“多通道扫描模式下DMA读到的顺序和预期不一致”。一部分原因是很多芯片手册里规则通道的“转换顺序寄存器”和“通道选择寄存器”由软件写而DMA搬运结果寄存器时并不会自动携带通道序号。如果你在中断里切换通道配置DMA的缓冲里就可能混入旧通道的数据而且这种错乱是随机出现的非常难复现。我的解决方案是要么固定通道顺序DMA缓冲区的索引严格对应通道号绝不在扫描中途改写配置要么只使用注入通道来做高优先级突发采样规则通道只做后台低速采集。这样把两种模式分离数据错乱的根因就直接断掉了。另外用DMA搬运ADC结果时建议在每次缓冲区填满后加入软件校验位比如从某个固定通道读一个已知的参考电压一旦对不上就重置DMA链路而不是继续在错误数据上修修补补。6.3 控制环路上必须用Sigma-Delta时的延迟补偿策略有些高精度的工业控制应用比如伺服电机的低速力矩波动检测非要用高分辨率Sigma-Delta来测电流但群延迟又拖累环路稳定性。这时候我有两个实践办法一种是把Sigma-Delta的抽取滤波器切换到“低延迟响应”模式即使分辨率略微降低也要把相位滞后控制在安全范围另一种是参考开发板经验在DSP里把Sigma-Delta的群延迟延时做进控制环的相位补偿表中相当于把这个滞后当成一个已知的纯延时在控制器模型里做Smith预估器处理。第二种办法效果更好但调试工作量确实大需要扫增益和相位曲线才能定准补偿参数。如果项目周期紧我对控制类信号的首选仍然是SAR实在需要高分辨率就选高速16位SAR配一个高性能驱动运放把前端做好比硬啃Sigma-Delta的延迟要省心得多。7. 一句话选型逻辑和最后想掏心窝子说的话做了这么多ADC相关的产品我自己的选型套路大概就是这样先看信号带宽和闭环控制要求控制优先选SAR低速高精度选Sigma-Delta再看通道复用需求和延迟敏感度多通道快切换选SAR单通道慢信号选Sigma-Delta最后看功耗预算和长期可靠性Sigma-Delta的高精度优势要在系统端能真正利用起来才划算否则多出来的成本和调试时间真的没有必要。整个过程不需要背什么复杂表格本质上就是在“速度”和“精度”这两个坐标轴上找到你的需求位置。再分享一个小经验无论选哪种ADC第一版PCB打样回来后先别急着调算法用示波器把采样触发信号、参考电压纹波、前端运放输出波形这三处看一遍。这三个位置有没有异常能直接决定你后面是做功能还是做噩梦。很多所谓“ADC不听话”的奇怪现象其实都在这些基础信号里写着答案。这两代架构一路用下来我的感受是SAR像一个手脚麻利、说一不二的工程师守时但不够精细Sigma-Delta像一个沉着冷静、不紧不慢的分析师慢工出细活。看清你自己的需求到底是“要快到什么程度”还是“要准到什么级别”选型就成了一件顺理成章的事。
返回列表