三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

数据采集卡从入门到精通(5):SAR逐次逼近型ADC——N次问答定乾坤

数据采集卡从入门到精通(5):SAR逐次逼近型ADC——N次问答定乾坤

SAR(Successive Approximation Register,逐次逼近寄存器)型ADC是工业数据采集卡最主流的架构——你见到的16位50KSPS采集卡,内核几乎都是它。本文完整拆解SAR的工作原理、转换时序、优缺点、驱动要求,并用"猜价格游戏"帮助建立直觉。全文约4500字。


一、SAR的组成:四个角色一台戏

SAR型ADC全称"循环渐进模拟数字转换器",主要由四个部分组成:

  1. 一个比较器——唯一的"裁判",只回答"高了还是低了";
  2. 一个DAC转换器——SAR逻辑的"报价器",把试探码变成试探电压;
  3. 一个逐次逼近寄存器(SAR)——记录每一位判定结果的"记分牌";
  4. 一个逻辑控制单元——指挥整场博弈的"主持人"。

工作流程:首先将采集到的输入信号与内部参考电压比较,将比较结果与参考电压一半再进行比较,然后根据比较结果确定下一步比较的阈值。通过不断重复此过程,逼近输出的精度越来越高,最终得到目标数字化结果。其中比较次数正好为ADC的量化深度,即位数;1个时钟周期完成1位转换,N位则需要N个时钟周期

二、猜价格游戏:SAR的完整实录

把SAR想象成一场"猜价格"游戏:你(SAR逻辑)要猜一个0~10V的"价格"(输入电压Vin),裁判(比较器)只答"高了/低了",你最多问16次(16位)。规则是每次都从剩余区间的正中间猜起

以Vin=6.3V、3位(量程0~8V,1LSB=1V)为例,实录如下:

轮次试探码DAC试探电压裁判判决本轮结论位
11004.0V(半量程)低了bit2=1
21106.0V低了bit1=1
31117.0V高了bit0=0
结果1106.0V误差0.3V<1LSB ✓

三轮结束,结果110=6V,误差0.3V,恰好小于1LSB。核心规律一目了然:每问一次,不确定区间减半;N次问答后,区间缩小到满量程的1/2^N——这正是"N位需要N个时钟周期"的几何本质。

16位SAR就是同样的游戏问16轮:半量程、1/4、1/8……一直到1/65536。每轮一个时钟节拍,16拍完成一次完整转换。

三、转换时序:时间就是分辨率

SAR的转换时间有确定公式:

T_convert = N / f_SARCLK

例如16位ADC,SAR时钟10MHz,则单次转换1.6μs,理论吞吐625KSPS。这就是为什么SAR架构能覆盖"几百KSPS到几MSPS"的速度区间——比积分型快几个数量级,又比Flash省得多。

但注意:这个转换时间还不等于可用的采样周期。完整的采样周期还要加上"采集时间"(acquisition time,采样电容充电到输入电压并建立的时间)。所以采集卡的标称采样率,是采样+转换全流程稳定跑通的速率,而不是理论峰值。

四、SAR的三大优点与三大缺点

优点

  1. 结构简单、转换速度快、精度高——一颗比较器+一颗DAC撑起16位、亚MSPS的性能,在数字信号处理中广泛应用;
  2. 性价比区间宽:分辨率低于12位时价格低,采样速率可达1MSPS;中分辨率场合几乎无对手;
  3. 功耗相对较低——与其他类型ADC相比,SAR每次转换只做必要的工作,没有冗余动作。

缺点

  1. 抗扰能力有限:由于其需要逐步逼近,在处理不稳定的、干扰较大的信号时可能出现收敛慢、精度下降的问题——干扰让"裁判"口误,高位一错就是大误差;
  2. 高分辨率价格陡增:高于14位分辨率时,对内部DAC和比较器的匹配要求极高,价格显著上涨;
  3. 对输入信号有调理要求:传感器产生的信号在进行模/数转换之前需要进行调理(增益级和滤波),这样会明显增加系统成本——SAR的输入级喜欢低阻抗、已带限的信号。

五、SAR的输入驱动:一颗电容的故事

理解SAR的输入模型,是用好SAR采集卡的关键。SAR前端有一个采样电容(典型10~22pF量级),每个采样周期通过内部开关接通输入,充到输入电压后断开。这个过程带来三个工程问题:

5.1 源电阻与建立时间

充电遵循RC指数规律。若外部源电阻Rs与采样电容Cs的时间常数τ=Rs·Cs太大,采样窗口结束时电容电压还没建立到目标精度,读数就会系统性偏低且随采样率变化。定量判据:要使采样误差小于0.5LSB(N位),采样时间t_s必须满足

t_s > 0.69314 × (N+1) × τ

数值感受:16位、1μs采样窗、10pF采样电容时,源电阻上限约8.5kΩ。信号源内阻大(电位器、压电传感器、高阻分压网络)时必须加电压跟随器缓冲,把源阻抗降到1Ω以下。

5.2 反冲(kickback)

内部开关动作瞬间,采样电容上的残余电荷会向信号源"反冲",在输入端激起瞬时扰动。信号源阻抗越高、恢复越慢,下一轮采样越不准。对策:输入端并联一个稍大的电容(如1nF)做电荷库,配合小阻值串联电阻 damping。

5.3 带宽与噪声的平衡

输入端RC网络同时承担抗混叠职责,R的取值还要兼顾热噪声(R越大噪声越大)与功耗(R越小电流越大)。工程上100Ω~10kΩ是常见落点。

六、电容阵列逐次比较:SAR的现代形态

早期的SAR内部DAC用电阻阵列,但"在单芯片上生成高精度电阻并不容易"。现代SAR大多改用电容阵列(电荷再分配型):用电容矩阵取代电阻阵列,可以用低廉成本制成高精度单片AD转换器。最近的逐次比较型ADC转换器大多为电容阵列式。电容阵列的好处是:电容比的匹配精度在集成电路工艺中远优于电阻匹配,且开关电容不消耗静态电流——这也是现代SAR功耗做得很低的物理基础。

七、SAR采集卡的实证:一块16位8通道同步卡的解剖

以DABL-7606类产品为例:内部采用AD7606芯片——8通道独立SAR内核,每颗内核各自完成16次问答,因此8个通道可以同拍采样(每通道50KSPS且通道间无时间偏差)。这带来一个重要的测量红利:多通道相位差测量。比如功率测量需要同时采电压和电流,两通道同时刻的样本相乘求平均即得有功功率——复用架构(通道间有轮巡时差)就做不到这一点,需要复杂的时差补偿。

固件层面,SAR的读取通过SPI+DMA完成:转换完成信号触发DMA批量搬运16位补码数据到双缓冲,再打包上传。这套"SAR+DMA+双缓冲"的组合是SAR采集卡的标准范式。

八、动手实验:感受收敛过程(仿真)

importnumpyasnpdefsar_convert(vin,vref=8.0,n=3):"""模拟SAR逐次逼近过程"""code=0trail=[]foriinrange(n-1,-1,-1):trial=code|(1<<i)# 试探当前位v_dac=trial/2**n*vref# DAC输出ifv_dac<=vin:# 比较器判决code=trial# 保留该位trail.append((trial,v_dac,code))returncode,trail code,trail=sar_convert(6.3)forstep,(trial,vdac,kept)inenumerate(trail,1):print(f"第{step}轮: 试探{trial:03b}({vdac:.1f}V) → 保留{kept:03b}")print(f"最终:{code:03b}={code}LSB ={code/8*8:.1f}V (输入6.3V)")

输出会逐步打印试探码、DAC电压与判决结果——你可以在终端里看一场完整的"猜价格"。

九、常见问题FAQ

Q1:SAR能做24位吗?
能(少数高精尖产品),但价格昂贵。24位主力是Σ-Δ架构。

Q2:为什么我的SAR卡读数随采样率变化?
源阻抗过大导致采样电容未充满——降采样率读数变大即坐实,加跟随器解决。

Q3:SAR适合测什么信号?
多通道同步、几十Hz到几百kHz、精度14~18位的中速中精度场景——工业监控的主力。

Q4:SAR和过采样兼容吗?
兼容。对慢变信号用4^k倍过采样+平均,可换取约k位有效分辨率提升。

十、总结

SAR是一场规则严明的问答游戏:半量程起手、对半收敛、N问定N位。它的三大优点(简单、快、省电)和三大短板(怕干扰、高位贵、要调理)共同刻画了它的应用疆域——也正是这片疆域覆盖了绝大多数工业采集需求,使SAR成为数据采集卡当之无愧的"标配心脏"。下一篇讲它的"慢而准"对手:Σ-Δ调制型ADC,24位高精度的王者。

下一篇预告:《Σ-Δ调制型ADC:过采样、噪声整形与24位的秘密》

← 返回列表