☰
单限、滞回、窗口比较器全解析:从原理到波形,避开阈值抖动坑
2026/10/7 12:40:47 网站建设 项目流程

1. 从一个翻车案例聊起:为什么比较器总在阈值附近抽风

刚入行那会儿,我用LM393搭了一个最简单的过压检测电路,反相输入端接基准电压,同相输入端接分压后的被测信号,输出直接拉到单片机IO口。理论上被测电压超过阈值时输出翻转,干净利落。结果实测波形让我怀疑人生——输入信号在阈值附近稍微有一点毛刺,输出就疯狂抖动,单片机中断被触发得停不下来,整个系统像得了帕金森。

后来把示波器探头挂到输出端才看明白:比较器不是运放,它没有负反馈,开环增益又极大,输入只要在阈值附近有哪怕几毫伏的噪声,输出就会在高低电平之间反复横跳。这个问题在单限比较器上几乎是必然的,解决它的核心手段就是引入正反馈构成滞回比较器,或者干脆用窗口比较器把判断区间拉开。

这篇文章就把单限、滞回、窗口这三种比较器从原理到波形一次讲透。不管你是刚学模电的学生,还是需要做电池过放保护、信号整形、电平检测的硬件工程师,这三类电路都是绕不开的基本功。我会用LM393和LM358这两个最常见的器件做例子,把参数计算过程、实测波形特征、踩过的坑都摊开来讲,争取让你看完就能直接抄作业。

2. 先搞清楚比较器和运放到底差在哪

2.1 开环与闭环:一个被忽略的本质区别

很多人第一次接触比较器时会想:运放也能当比较器用啊,为什么还要专门买LM393?这个问题问到点子上了,但答案不只是"专用芯片便宜"这么简单。

运放设计时追求的是闭环线性放大,它的内部电路为了保证闭环稳定性做了频率补偿,压摆率通常被压得很低。你拿LM358当比较器用,输入突变时输出从低到高爬升需要好几微秒甚至十几微秒,波形边沿是斜的。而LM393这类专用比较器没有内部补偿,压摆率快得多,输出边沿陡峭,传播延迟典型值只有1.3微秒。做高速信号整形时,这个差别是致命的。

另一个关键点是输出结构。LM358是推挽输出,高电平接近电源正轨,低电平接近地。LM393是集电极开路输出,必须外接上拉电阻才能输出高电平。这个"缺点"其实是优点——上拉电阻可以接到比比较器供电更高的电压上,比如比较器用5V供电,上拉接到12V,输出就能直接驱动12V逻辑的电路,电平转换都省了。

注意:集电极开路输出意味着多个LM393的输出可以直接并联在一起实现"线与"逻辑,只要共用一个上拉电阻。这个特性在做过流保护的多路汇总时特别好用。

2.2 比较器的三种工作模式概览

从阈值特性来分,比较器就三类:

  • 单限比较器:只有一个阈值电压,输入高于它输出一种状态,低于它输出另一种状态。电路最简单,但抗噪能力最差。
  • 滞回比较器:有两个阈值,上限VTH+和下限VTH-,输入从低往高走时在VTH+翻转,从高往低走时在VTH-翻转。两个阈值之间的差值叫回差电压,专门用来吃掉噪声。
  • 窗口比较器:判断输入是否落在某个区间内,需要两个单限比较器配合,输出只在输入处于窗口内(或窗口外)时有效。

下面这张表先把三者的核心差异摆出来,后面再逐个展开。

类型阈值数量抗噪能力电路复杂度典型应用
单限比较器1个弱最低简单电平检测、过零检测
滞回比较器2个强中等信号整形、按键消抖、过压保护
窗口比较器2个中等较高电池电量区间判断、电压合格检测

3. 单限比较器:最简单的起点,也是坑最多的起点

3.1 电路结构与阈值计算

单限比较器的基本结构就两种:反相输入和同相输入。

反相输入单限比较器:基准电压VREF接同相输入端,被测信号Vin接反相输入端,输出通过上拉电阻接VCC。当Vin < VREF时,同相端电位高于反相端,输出高电平;当Vin > VREF时,输出低电平。阈值就是VREF本身。

同相输入则反过来:Vin接同相端,VREF接反相端。Vin > VREF时输出高,Vin < VREF时输出低。

基准电压的生成通常用电阻分压。假设VCC=5V,要得到2.5V阈值,用两个10k电阻分压即可。但这里有个细节:分压电阻的阻值不能太大,否则比较器输入偏置电流会在电阻上产生附加压降,导致实际阈值偏离设计值。LM393的输入偏置电流典型值25nA,如果分压电阻用1MΩ,附加压降就是25mV,对于精度要求高的场合已经不能忽略了。一般建议分压电阻在10kΩ量级,同时兼顾功耗。

3.2 实测波形与抖动问题

我用信号发生器给反相输入端送一个1kHz、幅度3V、偏置2.5V的正弦波,阈值设在2.5V。理论上输出应该是占空比50%的方波。实测波形确实翻转了,但翻转点附近有密集的毛刺,输出在高低之间跳了好几次才稳定下来。

原因前面说了:输入信号在穿越阈值时变化率有限,叠加电源噪声和空间干扰后,实际输入在阈值附近来回穿越。比较器增益极高,每一次微小穿越都被放大成完整的逻辑翻转。

用示波器看输入信号,在阈值附近的噪声峰峰值大约20mV。这意味着输入在阈值±10mV范围内时,输出状态是不确定的。如果后级是单片机中断,这10mV的窗口就足以产生几十次误触发。

提示:单限比较器不是不能用,而是要用在输入信号边沿足够陡、噪声足够小的场合。比如把正弦波整形成方波,如果信号幅度远大于噪声,单限比较器完全够用。但如果是缓慢变化的直流信号做阈值判断,单限比较器就是灾难。

3.3 单限比较器的适用边界

那单限比较器到底什么时候能用?我的经验是看两个条件:输入信号穿越阈值时的斜率,以及噪声幅度。

如果输入是方波、脉冲这类边沿陡峭的信号,穿越阈值的时间极短,噪声来不及影响,单限比较器没问题。过零检测电路就是典型例子,输入是交流信号,过零点斜率大,用单限比较器做出来的方波很干净。

如果输入是缓慢变化的信号,比如电池电压慢慢下降、温度传感器输出慢慢漂移,那单限比较器必然抖动。这时候要么加滞回,要么在软件里做多次采样确认。

还有一个容易被忽略的点:单限比较器的输出上拉电阻取值。上拉电阻太小,输出低电平时比较器内部输出管的灌电流大,功耗高;上拉电阻太大,输出高电平的上升沿变缓,因为输出电容和上拉电阻构成RC充电。LM393输出电容约几个pF,加上PCB走线电容,如果上拉电阻用100kΩ,上升时间可能达到微秒级。一般上拉电阻取4.7kΩ到10kΩ比较均衡。

4. 滞回比较器:用正反馈把噪声吃掉

4.1 正反馈是怎么产生两个阈值的

滞回比较器的核心就一句话:把输出的一部分反馈到同相输入端,形成正反馈。

以反相滞回比较器为例:Vin接反相端,同相端通过一个电阻网络同时接基准电压VREF和输出Vo。当输出是高电平时,同相端电位被输出拉高,此时阈值是VTH+;当输出是低电平时,同相端电位被输出拉低,阈值变成VTH-。输入从低往高走时,要超过VTH+才能让输出翻低;输出翻低后阈值自动降到VTH-,输入要降到VTH-以下才能让输出翻回高。

两个阈值之间的差值就是回差电压,也叫迟滞宽度。噪声幅度只要小于回差电压,就不会引起误翻转。

4.2 回差电压的计算与电阻选型

反相滞回比较器的阈值公式推导如下。设同相端接两个电阻:R1从VREF到同相端,R2从输出到同相端。根据叠加定理,同相端电位:

V+ = VREF × R2/(R1+R2) + Vo × R1/(R1+R2)

当Vo为高电平VOH时:

VTH+ = VREF × R2/(R1+R2) + VOH × R1/(R1+R2)

当Vo为低电平VOL时:

VTH- = VREF × R2/(R1+R2) + VOL × R1/(R1+R2)

回差电压:

ΔV = VTH+ - VTH- = (VOH - VOL) × R1/(R1+R2)

如果比较器是集电极开路输出,上拉到VCC,则VOH≈VCC,VOL≈0,回差简化为:

ΔV = VCC × R1/(R1+R2)

这个公式很直观:回差电压由电源电压和两个反馈电阻的比值决定。要增大回差,就增大R1或减小R2。

举个实际设计的例子。VCC=5V,我希望回差电压是100mV,用来覆盖实测的20mV噪声并留足余量。代入公式:

0.1 = 5 × R1/(R1+R2)

R1/(R1+R2) = 0.02

如果取R2=100kΩ,则R1=2.04kΩ,取标准值2kΩ。验证一下:R1=2kΩ,R2=100kΩ,ΔV = 5 × 2/102 ≈ 98mV,接近100mV,可以接受。

中心阈值由VREF和电阻分压决定。如果VREF=2.5V,同相端在输出高低电平之间的中心电位约为:

Vcenter = VREF × R2/(R1+R2) + (VOH+VOL)/2 × R1/(R1+R2)

代入数值:Vcenter ≈ 2.5 × 0.98 + 2.5 × 0.02 = 2.5V。也就是说中心阈值就是VREF,回差对称分布在2.5V两侧,VTH+≈2.55V,VTH-≈2.45V。

注意:上面的计算假设VOH等于VCC。实际上LM393输出高电平时,上拉电阻上的压降取决于负载电流,如果后级输入阻抗不高,VOH会低于VCC,回差会略小于计算值。精密场合要把这个因素算进去。

4.3 实测波形:从抖动到干净翻转

同样的1kHz正弦波输入,换成滞回比较器后,输出波形立刻干净了。输入在2.45V到2.55V之间时,输出保持之前的状态不变,只有输入真正越过2.55V或跌破2.45V时才翻转。示波器上看到的输出方波边沿锐利,没有毛刺。

这里有个观察值得说:滞回比较器的输出方波占空比不再严格对应输入过阈值的时间比例,因为上下阈值不对称于信号中心时,高电平和低电平的持续时间会不同。如果输入是三角波,输出方波的占空比会偏离50%,偏离程度取决于回差电压和信号幅度的比值。做精密脉宽调制时要留意这一点。

另外,滞回比较器的翻转点有传播延迟。LM393的延迟约1.3微秒,输入频率很高时,输出波形会相对输入有明显的相位滞后。100kHz以下的应用基本可以忽略,再高就要选高速比较器了。

4.4 滞回比较器的典型应用场景

滞回比较器最经典的应用是按键消抖。机械按键按下和释放时,触点会在几毫秒内多次通断,产生一串脉冲。用滞回比较器配合RC积分,可以把这串脉冲整形成一个干净的边沿。回差电压设得比触点抖动幅度大即可。

另一个场景是电池过放保护。锂电池电压降到3.0V时应该切断负载,但如果负载切断后电压回弹到3.2V,单限比较器会重新接通负载,然后电压又降到3.0V,如此反复振荡。滞回比较器设定3.0V为下限、3.3V为上限,切断后要等电压回到3.3V以上才重新接通,彻底消除振荡。

还有信号整形。从传感器来的信号往往带有噪声,用滞回比较器可以提取出干净的方波,送给单片机计数或做频率测量。

5. 窗口比较器:判断电压是否落在合格区间

5.1 两个单限比较器如何组合出窗口

窗口比较器要回答的问题是:输入电压是否在VTL和VTH之间?这需要两个比较器分别判断上下限。

典型电路用两个LM393。第一个比较器判断Vin是否高于下限VTL,第二个判断Vin是否低于上限VTH。两个比较器的输出通过二极管或直接线与后接一个上拉电阻。只有当Vin同时高于VTL且低于VTH时,两个比较器输出都是高电平(集电极开路输出线与后仍为高),最终输出高电平表示"在窗口内"。否则任何一个比较器输出低,线与结果就是低。

也可以反过来接,让输出低电平表示"在窗口内",取决于后级电路的逻辑需求。

5.2 窗口边界的独立设定技巧

窗口比较器的两个阈值可以独立设定,这是它比滞回比较器灵活的地方。滞回比较器的两个阈值由同一组电阻决定,中心点和回差耦合在一起;窗口比较器的上下限各用一套分压网络,互不影响。

设定下限VTL时,用电阻分压从VREF得到VTL,接到第一个比较器的一个输入端。设定上限VTH时,另用一套分压得到VTH,接到第二个比较器。两套分压网络独立,可以任意设定窗口宽度和中心位置。

但这里有个实际问题:两套分压网络会消耗额外的静态电流,而且分压电阻的误差会直接影响阈值精度。如果对精度要求高,可以用一个基准电压芯片(比如TL431)产生精确的VREF,再用精密电阻分压。TL431的成本很低,但基准精度比电阻直接分VCC高一个数量级。

5.3 窗口比较器的波形特征与输出逻辑

输入一个缓慢上升再缓慢下降的三角波,窗口比较器的输出是一个脉冲:当输入进入窗口时输出有效,离开窗口时输出无效。如果输入在窗口内时输出高,那么输出脉冲的宽度对应输入在窗口内的时间。

实测时要注意,两个比较器的传播延迟可能略有差异,导致输出脉冲的边沿和输入穿越窗口边界的时间有微小偏差。对于低速信号无所谓,高速时要在软件里做补偿。

输出逻辑的选择也很关键。有些应用需要"窗口内报警",有些需要"窗口外报警"。前者用线与后输出高表示窗口内,后者加一个反相器或者交换比较器的输入极性即可。

提示:窗口比较器判断的是瞬时值。如果输入信号有噪声,在窗口边界附近输出仍然会抖动。要彻底解决,可以在窗口比较器的基础上再加滞回,或者对输入信号先做RC低通滤波。这是很多初学者容易忽略的叠加问题。

6. 器件选型与实操细节:LM393和LM358到底怎么选

6.1 LM393与LM358的关键参数对比

参数LM393LM358
类型双电压比较器双运算放大器
输出结构集电极开路推挽
传播延迟1.3μs(典型)不适合做比较器
输入偏置电流25nA45nA
输入失调电压±2mV±3mV
供电范围2V~36V3V~32V
输出上拉必须外接不需要

LM393的输入失调电压直接影响阈值精度。±2mV的失调意味着实际阈值可能偏离设计值2mV。对于回差100mV的滞回比较器,2mV的偏移可以忽略;但对于精密窗口比较器,2mV可能就是不能接受的误差。这种情况下要选失调更小的比较器,比如LM311(失调±7.5mV,但速度更快)或者更精密的型号。

6.2 上拉电阻的计算与选择

LM393必须外接上拉电阻。上拉电阻的取值要平衡三个因素:上升沿速度、功耗、输出低电平时的灌电流。

上升时间估算:t_rise ≈ 2.2 × R_pull × C_load。假设C_load=10pF(包括比较器输出电容和PCB走线),要求上升时间小于1μs,则R_pull < 1μs/(2.2×10pF) ≈ 45kΩ。

灌电流限制:LM393输出低电平时,内部输出管能灌入的电流有限,典型值16mA。如果上拉电阻太小,比如1kΩ接5V,灌电流5mA,在安全范围内。但如果上拉接12V、电阻1kΩ,灌电流12mA,接近极限,长期工作可能影响可靠性。

功耗考虑:上拉电阻在输出低电平时持续消耗电流。电池供电的设备要选大一点的上拉电阻,比如100kΩ,代价是上升沿变缓。

综合下来,5V系统里上拉电阻取4.7kΩ到10kΩ是最常见的折中。12V系统取10kΩ到22kΩ。

6.3 电源去耦与布局要点

比较器对电源噪声很敏感,尤其是单限比较器。每个比较器的电源引脚旁边必须放一个0.1μF的陶瓷电容,位置尽量靠近引脚。如果板上还有数字电路,再并一个10μF的钽电容做低频去耦。

布局上,基准电压的分压电阻要远离发热元件和开关节点。输入走线尽量短,避免和输出走线平行,防止输出跳变通过寄生电容耦合回输入。滞回比较器的正反馈电阻要靠近同相输入端,减少走线电感的影响。

注意:面包板搭比较器电路时,抖动会比PCB上严重得多。面包板的接触电阻和分布电容都很大,电源和地的阻抗也高。如果面包板上调试成功,PCB上通常更稳定;反过来,面包板上抖动不代表电路设计有问题,先检查面包板的电源和地。

7. 常见问题速查与排查思路

7.1 输出不翻转或翻转点严重偏离

先量基准电压。用万用表直接测同相端(或反相端)的电压,看是否等于设计值。如果偏离,检查分压电阻是否焊错、虚焊,或者比较器输入引脚是否被拉低/拉高。

再量输入信号。确认信号确实到达了比较器输入端,幅度和偏置都在预期范围内。有时候信号发生器输出阻抗高,接到比较器输入端后被输入偏置电流拉偏了。

最后检查输出上拉。集电极开路输出没有上拉电阻永远不会变高。量一下输出端在应该为高的时候是否有电压,如果没有,上拉电阻可能没接或虚焊。

7.2 输出在阈值附近抖动

这是单限比较器的通病。解决方案按优先级排序:

  1. 在输入信号上并联一个小电容(比如100nF)做低通滤波,把高频噪声滤掉。
  2. 改成滞回比较器,加正反馈电阻。
  3. 如果后级是单片机,在软件里做多次采样确认,连续N次读到相同状态才认为有效。

7.3 滞回比较器回差不对

先确认输出高低电平的实际值。如果上拉电阻太大或负载太重,VOH可能明显低于VCC,导致实际回差小于计算值。用示波器量输出波形的高低电平,代入公式重新算。

再检查反馈电阻。R1和R2的比值决定回差,如果焊错了电阻值,回差会差很多。用万用表量一下两个电阻的实际阻值。

还有一种情况:比较器的输入偏置电流在反馈电阻上产生附加压降,改变了阈值。如果反馈电阻很大(比如1MΩ),这个影响就明显了。减小反馈电阻到100kΩ量级可以缓解。

7.4 窗口比较器输出逻辑反了

检查两个比较器的输入极性。窗口比较器需要两个比较器分别判断上下限,如果其中一个的输入接反了,输出逻辑就会错。用万用表逐点测量,确认每个比较器在输入高于/低于其阈值时的输出状态。

线与逻辑也要检查。两个集电极开路输出直接连在一起时,只要有一个输出低,线与结果就是低。如果希望"窗口内输出高",两个比较器在窗口内都应该输出高(即输出管截止)。如果其中一个在窗口内输出低,逻辑就反了。

7.5 高频时输出波形失真

传播延迟导致的。LM393的1.3μs延迟在100kHz时对应13%的周期,输出方波的边沿会明显滞后于输入过阈点。如果输入频率超过50kHz,建议换高速比较器,比如LM311(延迟约200ns)或TLV3501(延迟约4.5ns)。

另外,上拉电阻太大也会限制高频性能。高频时上拉电阻取小一点,比如1kΩ到2.2kΩ,牺牲功耗换速度。

8. 从波形反推电路状态:我的调试习惯

调比较器电路时,我习惯同时看三路波形:输入信号、基准电压、输出信号。示波器用三通道,输入和基准用直流耦合,输出用直流耦合加上拉。这样一眼就能看出翻转点是否和基准对齐、回差是否对称、输出边沿是否干净。

如果只有双通道示波器,就先看输入和输出,把输出翻转点和输入波形对照,大致判断阈值位置。然后再看基准和输出,确认基准是否稳定。

还有一个技巧:用示波器的余辉模式或者无限余辉,观察输出翻转点的分布。如果翻转点在水平方向上有明显的展宽,说明抖动严重;如果翻转点集中在一个很窄的范围内,说明电路稳定。这个技巧在调滞回比较器时特别好用,可以直观地看到回差是否足够覆盖噪声。

最后说一个我踩过的坑:有一次用LM393做电池低压检测,电路在实验室里工作正常,装到设备上后偶尔误触发。查了很久才发现,设备里的电机启动时电源瞬间跌落,导致基准电压也跟着跌,比较器误判。后来在基准分压电阻上并了一个大电容,让基准电压在电源瞬变时保持稳定,问题才解决。比较器的基准电压源必须比被测信号更稳定,这是铁律。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询