简介:这份文档面向电子工程学习者与硬件设计人员,系统讲解峰值检测电路(PKD)的原理、缺陷与改进方案,帮助读者理解如何准确捕获并保持输入信号的最高电压。内容从二极管加电容的基础结构出发,分析正向压降误差与负载泄放问题,进而介绍超级二极管、输入输出缓冲、电容放电复位开关等改进措施,并对比分立元件型、无二极管型及集成PKD01等实现方式,还给出500kHz以下、100mVpp以上误差约3%的适用边界。压缩包内为1个doc文档,约594KB,适合作为电路设计与竞赛备赛的参考笔记。已有349人学习,读者可从中获得从基础拓扑到工程选型的完整思路,并借助仿真与实验对比快速定位设计要点。
1. 峰值检测电路:为什么一个二极管加电容就能“记住”最高电压
输入一个正弦波,输出一条只升不降的阶梯线——峰值检测电路(PKD,Peak Detector)干的事就这么简单:把信号出现过的最高电压锁住,直到更大的峰值到来或电路复位。直觉上这该是个数字活儿,采样、比较、存寄存器,但模拟世界里它只靠一个二极管和一个电容就完成了,而且响应是连续的、没有采样率的概念。这个“模拟记忆”机制值得搞懂,因为它是自动增益控制、传感器最值求取、程控增益放大器倍数判断的底层判据来源。很多设计里用有效值芯片替代它,图的是集成方便,但有效值和信号正负峰值之间并没有必然联系,判据本身就偏了。搞清峰值检测的误差从哪来、保持时间被谁偷走,才能判断一个电路到底能不能用。
2. 二极管加电容:一个“单向充电 + 电荷保持”的模拟记忆体
2.1 最简结构的充放电回路
把二极管串在输入和电容之间,电容另一端接地,输出取电容电压。输入电压高于电容电压时二极管正偏导通,电容被充电;输入回落时二极管反偏截止,电容上的电荷没有泄放通路,电压就保持住了。这个过程的本质是一个带单向阀的 RC 充电回路,充电时间常数由信号源内阻、二极管动态电阻和电容共同决定,保持时间则由电容漏电流和负载决定。
用一段行为级模型可以把机制写清楚,比看波形更直观:
# 行为级模型:理想二极管 + 电容的峰值保持 # vin: 输入采样序列, C: 电容值, R_leak: 等效泄放电阻, dt: 采样间隔 def peak_detector(vin, C=1e-9, R_leak=1e12, dt=1e-6): vc = 0.0 # 电容初始电压 out = [] for v in vin: if v > vc: # 二极管正偏:充电,忽略导通压降 vc = v # 理想情况下瞬间跟随 else: # 二极管截止:电荷通过漏电阻缓慢泄放 vc = vc * (1 - dt / (R_leak * C)) out.append(vc) return out这段模型里有两个关键参数决定了电路能不能用。R_leak代表电容的等效并联泄放路径,包括电容自身漏电、运放输入偏置电流、后级负载;它和C的乘积就是保持时间的量级。dt与充电支路时间常数的关系决定跟踪速度:输入频率越高,要求充电时间常数越小,但电容越小保持时间越短,这是一对硬约束。实际仿真里 1nF 电容配 5kHz、2Vpp 正弦,100ms 后才稳定到峰值附近,误差约 10%,这个数字基本就是二极管正向压降和充电时间常数共同作用的结果。
2.2 误差的第一来源:二极管导通压降
硅二极管正偏导通压降在 0.6V 到 0.7V 量级,电容最终充到的电压是输入峰值减去这个压降。对 2Vpp 即 1V 峰值的信号,0.7V 的损失意味着误差接近 70%,这还没算压降随电流变化的非线性。小信号场景下这个误差是致命的,所以最简结构只能用在输入幅度远大于压降、且对绝对精度要求不高的地方。
更麻烦的是压降不是常数。二极管的正向特性是指数关系,充电电流大时压降略高,接近峰值时充电电流趋近于零,压降反而下降,导致电容最终电压和真实峰值之间有一个与信号斜率相关的动态偏差。这就是为什么仿真里稳定后的误差不是固定值,而是随输入频率和幅度漂移。
2.3 保持时间的隐形杀手:负载泄放
电容上的电荷不会凭空消失,但会被后级电路一点点吃掉。后级如果是高阻输入,泄放慢;如果接了分压电阻、ADC 采样保持开关或者运放输入偏置电流较大的器件,保持时间会断崖式下降。常见的实现思路是在电容后面加一级高输入阻抗缓冲,把负载和存储节点隔开,这也是后文所有改进电路都绕不开的结构。
注意:保持时间不是由电容单独决定的,而是由电容和它看到的所有并联泄放路径共同决定。选电容之前先算清楚后级到底挂了多少东西。
3. 超级二极管:把导通压降藏进负反馈里
3.1 运放闭环如何“消灭”压降
把二极管放进运放的负反馈回路,运放会主动抬高输出,补偿掉二极管的导通压降,使电容最终电压等于输入峰值。这个结构就是模电教材里的“超级二极管”或“精密整流”思路:运放同相端接输入,反相端接电容电压,输出经二极管给电容充电。只要运放还在线性区,二极管压降就被闭环增益“吃掉”了,误差从几百毫伏降到毫伏级。
同等测试条件下,超级二极管结构的检测误差大幅减小,这是它存在的唯一理由。但代价随之而来:运放输出要驱动二极管和电容,充电电流受运放输出能力限制;更关键的是运放从负饱和恢复的问题。
3.2 负饱和恢复:一个被低估的失真源
输入从负电压往正电压走时,运放输出需要从负饱和电压爬升到“输入电压加二极管压降”才能让二极管导通。这段爬升时间由运放的压摆率和负饱和恢复时间决定,期间反馈回路是断开的,输出不跟随输入。如果输入在这段时间里继续变化,电容上记录的就是一个失真的值,表现为高频或快速沿信号下的峰值低估。
解决办法是在输入和输出之间再挂一个二极管,作用类似钳位:它给运放一个旁路通路,让运放输出不至于深度负饱和,缩短恢复时间。这个二极管不参与峰值存储,只负责把运放“拽”在饱和边缘附近,属于典型的用一个小器件换动态性能的设计取舍。
3.3 分立方案里的器件选择逻辑
一个常被引用的分立实现用静电计级运放配场效应管当二极管。选它的理由有三层:静电计级运放的输入偏置电流可以低到飞安量级,几乎不从存储电容偷电荷,保持时间被拉长;场效应管当二极管用,反向电流小,正向驱动能力比小信号二极管强;输入端并一个小电容抑制自激。实际工程里用通用双运放加小信号二极管替代,性能价格比更高,代价是偏置电流大了几个数量级,保持时间相应缩短,适合采样间隔不太长的场合。
这里的设计动机很清楚:峰值检测的精度上限由存储节点的漏电流决定,而不是由运放带宽决定。选器件时先看输入偏置电流和电容漏电,再看压摆率,顺序反了就会在保持时间上翻车。
4. 无二极管型与集成方案:用比较器开集输出替代单向阀
4.1 开集/开漏输出为什么能当二极管
比较器的开集 BJT 或开漏 MOSFET 天然是单向导通的:输出管导通时把电容往目标电压拉,关断时呈现高阻,电荷无处泄放。用它替代二极管,省掉了正向压降问题,因为比较器输出级饱和压降远小于二极管压降,而且比较器本身完成了“输入是否高于电容电压”的判断,逻辑上比运放加二极管更直接。
这类电路的结构是:比较器一个输入接信号,另一个输入接电容电压,输出经限流电阻给电容充电。比较器翻转时输出管关断,电容保持。它的优点是便宜、器件少;缺点是比较器输出管的饱和压降和关断漏电流直接决定精度和保持时间,而且比较器自身的响应延迟会限制最高工作频率。仿真这类电路时经常遇到不收敛或波形异常,多半是比较器模型的开集输出行为没配对,换一个仿真器或手动加负载电阻往往就能跑通,这属于工具层面的坑,不代表电路本身有问题。
4.2 高速场景:比较器加 DAC 的数字化路线
二极管加电容的结构在高速下失效,原因是充电时间常数和保持时间无法同时满足。高速环境里常见的做法是把峰值检测拆成“比较 + 搜索”:高速比较器负责判断输入是否超过当前记录值,DAC 输出当前记录电压作为比较基准,逻辑器件负责在比较器翻转时更新 DAC 码值。这套结构的本质是用数字寄存器替代电容做存储,用 DAC 做电压重建,精度由 DAC 位数和比较器失调决定,速度由比较器和 DAC 建立时间决定。
它的取舍很明确:牺牲连续时间和低功耗,换来可编程的精度和不受电容漏电影响的保持能力。代价是需要时钟和逻辑,系统复杂度上一个台阶。对需要长时间保持、或者峰值出现间隔极不规律的场合,这条路比模拟存储在工程上更可控。
4.3 集成器件的边界
集成峰值检测器本质仍是二极管加电容结构加内部缓冲,把分立方案里的偏置、缓冲、复位开关打包。它的价值在于省掉外围器件和调试时间,但性能边界和分立方案同源:工作频率上限、输入幅度下限、保持时间都受内部存储电容和缓冲器偏置电流约束。选型时不能只看“集成”两个字,要回到数据手册里的保持时间测试条件和输入偏置电流指标,那才是决定它能不能用的参数。
5. 避坑与排查:峰值检测电路最常见的五类翻车
5.1 输出稳定值比输入峰值低一截
现象是电容电压稳定后始终比真实峰值低几百毫伏,且输入幅度越小偏差比例越大。原因是最简结构的二极管正向压降没有被补偿,压降在总幅度里占比过高。解决方式是改用超级二极管闭环结构,或者把输入幅度抬到压降的十倍以上再评估误差是否可接受。
5.2 峰值保持不住,输出缓慢下滑
现象是输入撤掉后电容电压以肉眼可见的速度下降。原因是存储节点挂了低阻负载,或者运放输入偏置电流偏大、电容自身漏电偏大。排查顺序是先断开后级看保持时间是否恢复,再换低偏置电流运放,最后换低漏电电容。常见的实现思路是在电容后加一级高输入阻抗缓冲,把负载隔离出去。
5.3 高频输入下峰值明显偏低
现象是输入频率升高后检测值系统性偏低,低频时正常。原因是充电支路时间常数跟不上信号上升沿,电容还没充到峰值输入就回落了。解决方式是减小存储电容、提高充电电流能力,或者换用比较器加 DAC 的高速结构。这里没有后悔药,电容减小会直接牺牲保持时间,必须按实际采样间隔重新平衡。
5.4 运放发烫或输出异常振荡
现象是超级二极管结构在输入过零附近出现高频振荡,或者运放温升异常。原因是容性负载直接挂在运放输出上,反馈回路相位裕度不足。解决方式是在运放输出和电容之间串小电阻隔离,或者在反馈路径上加小电容补偿,具体取值靠仿真和实测扫出来,不能照搬。
5.5 复位不干净导致下一次峰值叠加
现象是复位后输出没有回到零,下一次检测的起点偏高。原因是复位开关导通电阻偏大或复位时间不够,电容没有放干净。解决方式是选低导通电阻的模拟开关,保证复位脉宽大于开关加电容的时间常数数倍,并在复位后留一段建立时间再开始检测。
6. 设计取舍:精度、保持时间与速度的三方博弈
峰值检测电路的所有变体,本质上都在解同一个三元方程:精度、保持时间、跟踪速度,三者互相拉扯。电容选大,保持时间长、抗干扰好,但充电慢、高频跟踪差;电容选小,跟踪快,但漏电流和负载泄放的影响被放大,保持时间短。二极管换成超级二极管,精度上去了,但引入了负饱和恢复和稳定性问题。换成比较器开集输出,压降问题缓解,但比较器延迟和关断漏电流成了新瓶颈。换成数字搜索结构,保持时间和精度都可控,代价是时钟、逻辑和功耗。
我一般会这么判断:先确定峰值出现的最小间隔,这个间隔决定保持时间的下限;再确定输入信号的最小幅度,这个幅度决定二极管压降能不能忽略;最后确定最高信号频率,它决定充电时间常数的上限。三个约束画在一张图上,可行域往往很窄,这时候再决定是加缓冲、换器件还是改架构。
验证方法上,仿真只能给方向,不能给结论。TINA 或通用 SPICE 里跑出来的波形受模型精度影响很大,尤其是二极管反向漏电和运放输入偏置电流这两个参数,很多模型给的是典型值而非最坏值。实测时至少要做三组:最低幅度下的误差、最高频率下的跟踪、最长保持间隔下的跌落。三组都过,电路才算能用。
从那以后我每次选存储电容,都强制先把后级所有并联泄放路径列出来算一遍保持时间,再回头定电容值,而不是先拍一个 1nF 再调。这个顺序反过来,血泪经验就是反复换料重打板。希望帮到你。
本文还有配套的精品资源,点击获取