采样保持电路:MOS 开关、保持电容与 track/hold 两态的误差拆解
更新时间:2026-09-25。在 ADC 总览:采样、量化与编码 里,模数转换被抽象成三步:按时间采样、把电压量化成离散等级、再编码成数字码。三步之中量化最耗时——SAR ADC 要逐位比较十几拍,Flash ADC 的比较器阵列也要时间裁决。而这期间输入端的真实信号并不会停下来等它。本篇解决的就是这个时间差:用一个 MOS 开关和一个电容,在量化开始的瞬间把电压「冻」住,这就是采样保持电路(sample-and-hold,S/H,数据手册里常写 T/H,track-and-hold)。它和 开关电容电路 共用同一套「时钟驱动开关搬弄电容电荷」的手艺,具体 ADC 架构实例可对照 SAR ADC 逐次逼近。
本文要回答的问题
- ADC 前面为什么非要有一级采样保持电路?量化期间输入若不冻结,会出什么错?
- 一个 MOS 开关加一个保持电容,凭什么实现 track/hold 两态?两态下电路各发生什么?
- 开关的导通电阻 Ron 为什么随输入信号变化?传输门和自举(bootstrap)开关各解决什么问题?
- 电荷注入和时钟馈通是什么?为什么会产生与信号有关的误差?底极板采样怎样消除它?
- kT/C 噪声、孔径抖动(aperture uncertainty)、droop 漏电跌落分别给出怎样的数量级?电容到底该取多大?
一、量化期间输入为什么必须冻结
先看没有采样保持会怎样。假设一个 12 位 ADC 转换时间 1μs,输入端是一个满摆幅(假设 2Vpp)、频率 1MHz 的正弦波。1μs 恰好是正弦波的一个周期,信号在这段时间里可以从 0V 一路摆到接近满幅再回来。比较器在逐位裁决,被裁决的电压却在自己脚下不断变化——第一位比完,输入已经是另一个值,后面所有比较建立在一个「自己也在动」的基准上,输出码没有任何一致的含义。
把这个直觉量化。若允许量化期间输入变化不超过半个 LSB(least significant bit,最低有效位对应的电压),12 位、2V 满幅时 1 LSB = 2V/4096 ≈ 0.49mV,半个 LSB 约 0.24mV。正弦波过零点处压摆率最大,为 2πf·A = 2π×1MHz×1V ≈ 6.28V/ms = 6.28mV/μs。于是留给整个转换的时间只有 0.24/6.28 μs ≈ 38ns。1μs 的转换时间差了二十多倍——靠催 ADC 提速不现实,自然的办法是:转换之前,先花极短时间把此刻的电压抓下来存住,整个量化过程对着这份静止的副本进行。
采样保持电路就是这个「抓取并保存」的部件。它还顺带带来两个系统层面的好处:多个需要同时刻信息的通道(比如多相电流采样、I/Q 两路)可以用同一拍时钟冻结,保证码值之间的相位关系;许多 ADC 架构(最典型就是 SAR ADC 逐次逼近)的 DAC 阵列本身就要求输入先落在电容阵列上,采样保持已经和 ADC 的前端融为一体,不再是独立的一块电路。
顺带厘清一个术语:教科书区分 sample-and-hold 与 track-and-hold——前者指开关只在极窄采样脉冲内导通、其余时间输入是断开的,后者指开关在两次转换之间长时间导通、持续跟踪,只在转换瞬间关断。今天 CMOS ADC 里实际电路几乎都是 track-and-hold 型:跟踪时间越长,建立越从容,时序也好安排。两者误差机理完全相同,本文按 S/H 统称。
还要强调「冻结」只是近似。真实的电容会漏电、开关会注入电荷、时钟边沿会抖动——这些误差占了本文后半的全部篇幅,也基本决定了一颗 ADC 的实际有效位数。评估一颗 ADC 时,INL/DNL 描述的是静态传递曲线,而 S/H 引入的失真与噪声要到动态指标(SINAD、SFDR、ENOB 随输入频率的曲线)里才现形,高频下有效位数掉几码,十有八九是这一级的问题。
二、基本结构与 track/hold 两态
最简单的采样保持电路只有两个器件:一个接在输入和电容之间的 MOS 开关 M1,一个一端接开关、一端接地(或接共模电平)的保持电容 Ch,输出从电容上端引出,送往 ADC 的比较器或缓冲器。一个两相不交叠时钟 φ 驱动栅极,电路于是有两种状态。
track(跟踪/采样)态:φ 为高,M1 导通,输入通过 Ron 给 Ch 充电,电容电压跟随输入。这一态的本质是一阶 RC 网络,时间常数 τ = Ron·Ch。进入 hold 态后电容电压要准到半个 LSB 以内,采样时间 Ts 必须留足:n 位精度需要误差小于 2⁻ⁿ,即 Ts > (n·ln2)·τ ≈ 0.69n·τ;12 位约需 8.3τ。以 Ron = 1kΩ、Ch = 1pF 为例,τ = 1ns,8ns 出头即可 settle,听起来宽裕,但 Ron 会随信号变大(下一节)、驱动输入的前级输出电阻也要算进 τ,实际设计常按几十 τ 留量。
hold(保持)态:φ 拉低,M1 关断,Ch 与输入断开。理想情况下电容没有放电通路,其上电荷 Q = Ch·V 被无限期保存,电压冻结在关断瞬间的值,ADC 对着这个恒定电压从容量化。下一拍 φ 再次拉高,电路重新跟踪、抓取新的样本。下面的波形图标出三个采样周期里两态的关系:注意 hold 期间输入 Vin 继续自己的正弦变化,而电容电压 Vch 保持水平直线,只在关断后有极微小的 droop 倾斜。

读图抓三个细节:φ 为高期间 Vch 斜着追上 Vin,斜线斜率受 Ron·Ch 限制;φ 的下降沿才是真正「拍下快照」的时刻,这个边沿的时间精度对应后面的孔径抖动;hold 段 Vch 并非绝对水平,末段故意画出的微小下垂就是 droop。
把建立账算得再实际一点。τ 里的电阻不只是 Ron:前级驱动(运放或参考源)的输出电阻 Rs、片上连线电阻都要串进去,总电阻取 Rs+Ron。一个常见事故是只按 Ron=200Ω 估 τ,结果驱动运放在大负载下输出电阻升到几十 Ω 尚可接受,但当 Ch 取到 10pF、要求 12 位在 50ns 内建立时,需要的单位增益带宽接近 1/(2πτ)×8.3 反推约 30MHz 以上、还要保证压摆率跟得上大信号跳变——S/H 的速度瓶颈经常在驱动放大器而不在开关。设计上常用的检查顺序是:先看大信号压摆(dV/dt 受压摆率限制),再看小信号指数尾巴(受带宽限制),两段都进半 LSB 才算真 settle。
输出缓冲器也值得一提。电容不能直接被低阻负载拉扯,所以 hold 态电压通常经一个高输入阻抗的缓冲器(源极跟随器或运放单位增益)再驱动 ADC 内部。源极跟随器结构简单、速度快,但存在 Vgs 的电平跌落和体效应失真,输入摆幅受限;运放型缓冲线性度好,功耗和建立时间是代价。缓冲器本身引入非线性和噪声,这是 S/H 设计里与开关并列的另一半工作,本篇聚焦开关与电容,缓冲器从略。
三、导通电阻的信号相关性:传输门与自举开关
MOS 小信号模型 里给过线性区的导通电阻:NMOS 作开关时 Ron = 1/[μnCox(W/L)·(Vgs−Vth)]。麻烦在于栅极时钟在 track 态固定为 Vdd,而源端(接输入一侧)电压就是 Vin,于是 Vgs = Vdd−Vin,代入得:
Ron,n = 1 / [μnCox(W/L)·(Vdd − Vin − Vth)]
Ron 随 Vin 升高而单调增大,当 Vin 逼近 Vdd−Vth 时分母趋零、开关近乎关断——这正是数字课里「NMOS 传强 1 不良」的模拟版本:高电平传不过去。PMOS 开关极性恰好对称,Ron 随输入降低而增大,传不了强 0。对采样精度而言,Ron 随 Vin 变化有双重危害:高频输入下 τ 随信号变化,建立不充分直接造成与信号有关的谐波失真;在开关 RC 网络的频域视角里,−3dB 带宽随 Vin 变化同样调制信号。
三种工程对策的取舍如下:
| 方案 | 构成 | Ron 特性 | 代价与适用 |
|---|---|---|---|
| 单 NMOS | 一个 NMOS 管 | 随 Vin 升高急剧增大 | 最便宜;只适合低输入摆幅 |
| CMOS 传输门 | NMOS 与 PMOS 并联,时钟互补 | 两者 Ron 并联,全摆幅较平坦 | 多一路时钟和 PMOS 面积;中低速主流 |
| 自举 bootstrap 开关 | 栅压随 Vin 一起抬高的钳位结构 | Vgs 恒定,Ron 与 Vin 几乎无关 | 需额外自举电容与耐压检查;高速高精度必备 |
自举开关的思路一句话:既然 Vgs = Vg−Vin 随 Vin 变,那就让 Vg 也随 Vin 变。hold 态用一个小电容预充电到 Vdd;track 态把这个电容跨接在开关管的栅源之间,于是 Vgs 被钳在恒定的 Vdd 上,Ron 不随输入变化,谐波失真可以压低十几 dB 甚至更多。代价是自举电容和一组辅助开关占用面积,且栅极会出现 Vdd+Vin 的过驱动电压,必须检查器件耐压与可靠性——低压纳米工艺里这是标准的高速采样前端,开关电容电路中的精密采样几乎都用它。开关电容电路 对两相时钟的驱动方式有更细的展开。
四、电荷注入、时钟馈通与底极板采样
开关关断瞬间,沟道里的反型电荷必须有去处。track 态沟道总电荷约为 Qch = W·L·Cox·(Vgs−Vth);φ 下降时沟道消失,这些电荷被挤向源、漏两端,其中一部分流入保持电容,使电容电压跳变,这就是电荷注入(charge injection)。最坏按一半沟道电荷注入 Ch 估算:
ΔVinj = W·L·Cox·(Vdd − Vin − Vth) / (2Ch)
关键在分子里的 Vin:注入误差随输入信号变化,是增益误差与二次谐波的来源之一。给个数:0.18μm 工艺 Cox ≈ 8.5fF/μm²,W/L = 1μm/0.18μm,Vov 取 0.4V,Qch ≈ 1×0.18×8.5×0.4 ≈ 0.61fC,对半分到 1pF 电容上约 0.3mV——对 12 位 0.49mV 的 LSB 已是大半个码。
第二个机制时钟馈通(clock feedthrough)来自栅与源漏之间的重叠电容 Cov = W·Lov·Cox。时钟边沿通过这个电容分压耦合到电容端:ΔVclk = Cov·Δφ/(Cov+Ch) ≈ W·Lov·Cox·Vdd/Ch。Lov 典型 10~20nm,代入 W=1μm、Vdd=1.8V、Ch=1pF,得 0.15~0.3mV。它与 Vin 无关,表现为固定失调,本身危害小;但它与电荷注入叠加发生,且注入量的信号相关性无法靠校准失调消掉。
常用手段:用互补虚拟管(dummy switch)吸收注入电荷、减小开关尺寸、加大 Ch——但加大 Ch 会同时拖慢 τ、增加 kT/C 之外的驱动功耗。真正干净的结构性解法是底极板采样(bottom-plate sampling)。
底极板采样给电容两个极板各配一个开关:顶极板经输入开关接 Vin,底极板经另一个开关接地。关断时让底极板开关用一个提前的时钟 φ1 先断开,输入开关随后才断开。妙处在于:底极板开关断开那一刻,电容两板的电荷总量被冻结,而这颗开关的注入发生在接地侧、与 Vin 无关;等顶极板输入开关断开时,它的注入电荷落不到已经封闭的电容电荷系统里(电荷守恒,注入只改变后续相的电位分配)。信号相关的注入误差由此被切断,配合全差分结构还能把共模注入一并抵消。底极板采样的代价是多一组提前时钟和开关,今天的精密 SAR、流水线 ADC 前端无一例外采用它。
vin: "Vin"
top: "顶极板"
bot: "底极板"
gnd: "GND"
sw1: "输入开关\nφ1d(后断)"
ch: "保持电容 Ch"
sw2: "底极板开关\nφ1(先断)\n注:提前断开,注入与 Vin 无关,电荷先冻结"
vin -- sw1
sw1 -- top
top -- ch
ch -- bot
bot -- sw2
sw2 -- gnd五、kT/C 噪声与 droop:电容取值的两头拉扯
开关导通时,其 Ron 的热噪声被同一个 RC 低通滤到电容上。一阶 RC 的噪声带宽是 1/(4Ron·Ch),与白噪声谱 4kTRon 相乘,Ron 恰好消掉,电容上采样到的噪声电压只取决于温度和电容:
Vn,rms = √(kT/C)
室温 kT ≈ 4.14×10⁻²¹J。这就是著名的 kT/C 噪声,几个值得背住的数:Ch = 1pF 时约 64μV rms,100fF 时 203μV,10pF 时 20μV。它给信噪比设了与开关多好无关的地板:要求噪声小于半个 LSB,12 位 2V 满幅需要 √(kT/C) < 0.24mV,即 C > kT/(0.24mV)² ≈ 0.07pF——看似不大,但要给缓冲器噪声、参考电压噪声和工艺偏差留余量,实际 12 位 ADC 的总采样电容常在几 pF 到十几 pF。
电容另一端被 droop(漏电跌落)限制下限。hold 态下电容并非完全孤立:关断管的亚阈值漏电、结反偏漏电、缓冲器输入管栅漏电(纳米工艺栅氧隧穿漏电不可忽略)汇成 Ileak,电压按 dV/dt = Ileak/Ch 线性下跌。Ileak = 1pA、Ch = 1pF 时斜率为 1V/s = 1μV/μs;转换时间 1μs、预算 0.24mV,则 Ileak 必须小于约 240pA,常温下轻松满足,但 125°C 高温时结漏电可上翻两个数量级,这是高温下有效位数缩水的常见原因。
两个机制对 Ch 的要求相反:kT/C 要电容大,面积、速度和驱动功耗都反对电容大;droop 则要电容大来稀释漏电。折中结果是按噪声预算先定 Ch 的下限,再核对 acquisition time 和 droop,这正是 模拟电路为什么这么难 所说「每个旋钮都被两头拉扯」的标准样本。
六、孔径抖动:快照时刻本身在抖
前面假设 φ 的下降沿精确发生在预定时刻。真实时钟边沿有抖动,关断时刻在时间轴上随机晃动 Δta,称为孔径抖动(aperture uncertainty / aperture jitter)。实际采样到的是 Vin(t+Δta) 而非 Vin(t),电压误差为 ΔV ≈ (dV/dt)·Δta。对正弦输入取统计量,由孔径抖动决定的信噪比为:
SNR = −20log10(2π·fin·σta)
注意它只与输入频率和抖动有关、与分辨率无关。反推允许的抖动:要求误差小于 1/(2^n) 量级,σta < 1/(2π·fin·2^n)。给一组典型数字:fin = 1MHz、12 位时 σta ≈ 39ps;fin 提到 10MHz 就只剩 3.9ps;而 100MHz 中频做 14 位采样需要亚皮秒级时钟——这把 S/H 的问题变成了时钟树和锁相环的相位噪声问题。低抖时钟、干净的时钟供电、时钟走线远离大摆幅数字信号,都是围绕这一项做文章。还要区分固定的孔径延迟(aperture delay,边沿相对标称时刻的固定偏移,多通道对齐时才有害)与随机抖动(直接劣化 SNR),数据手册分别标注。
至此可以把采样保持电路的主要误差汇总:
| 误差源 | 量级(典型) | 与信号关系 | 主要对策 |
|---|---|---|---|
| 建立不足 | 取决于 n·RonCh/Ts | 与频率、幅度相关 | 留足 τ、低 Ron 开关 |
| 电荷注入 | ~0.3mV(W=1μm,Ch=1pF) | 含 Vin 项,产生谐波 | 底极板采样、dummy、全差分 |
| 时钟馈通 | 0.15~0.3mV | 固定失调 | 差动抵消、最小重叠电容 |
| kT/C 噪声 | 64μV rms(1pF) | 随机噪声 | 加大 Ch、相关双采样 |
| droop 漏电 | 1μV/μs(1pA/1pF) | 近似固定斜率 | 低漏电器件、缩短保持时间 |
| 孔径抖动 | SNR=−20log(2πfinσta) | 随 fin 恶化 | 低相位噪声时钟 |
设计顺序也就清楚了:系统指标(fin、位数、转换时间)先算出 Ch 的噪声下限和孔径抖动预算,再按 τ 约束反推 Ron 和开关尺寸,最后用底极板采样与自举开关处理信号相关误差,仿真逐颗核对到半个 LSB 以内。实际流程中这几步要来回迭代两三轮:噪声预算把 Ch 顶大,τ 立刻超支,就得回头加开关宽度或上自举,而开关加宽又把注入电荷顶上来——最终落点几乎没有第一次就成立的。
工程上还有两条经验值得记住。一是全差分架构对 S/H 几乎是必选项:电源共模噪声、时钟馈通的固定注入、衬底耦合干扰在两路上同相出现,相减后被抑制,SFDR 常能因此提高一两个数量级,代价是双倍电容面积和共模反馈。二是相关双采样(CDS)等动态技巧可把 kT/C 之外的低频噪声和失调一并采样、随后扣除,开关电容与精密传感器接口里广泛使用;但白噪声本身会被采两次、平方相加,kT/C 地板并不会因此降低。
这一篇在知识体系里的位置
- 想理解采样率、奈奎斯特与量化噪声的系统前提 → ADC 总览:采样、量化与编码;
- 想继续用「时钟+开关+电容搬电荷」这套手艺 → 开关电容电路;
- 想看采样得到的电压怎样被逐位量化、底极板采样在阵列里怎么接 → SAR ADC 逐次逼近;
- 想补 Ron、Vov、沟道电荷的器件级来源 → MOS 小信号模型;
- 想理解这些折中背后的心法 → 模拟电路为什么这么难。
总结
采样保持电路就是在量化开始前用 MOS 开关把瞬时输入电压抓到保持电容上冻结:track 态以 τ=RonCh 跟踪输入(12 位需建立约 8.3τ),hold 态凭电荷守恒保存电压;Ron 随 Vin 变化要用传输门或自举开关(Vgs 恒定)解决,关断瞬间的电荷注入(约 0.3mV 量级)和时钟馈通含信号相关项,靠底极板采样让先断的底极板开关冻结电荷;电容上还有 √(kT/C) 热噪声(1pF 时 64μV rms)和 Ileak/Ch 的 droop(1pA/1pF 时 1μV/μs),孔径抖动则给出 SNR=−20log(2πfinσta)、1MHz/12 位要求 σta<39ps——电容取值就是在噪声、速度、面积与漏电之间做折中。