ARTICLE DETAIL

资讯详情

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

滞回比较器原理详解:从噪声抖动的痛点到电路设计与实测

滞回比较器原理详解:从噪声抖动的痛点到电路设计与实测 1. 先从“普通比较器乱跳”说起为什么要折腾出两个阈值1.1 单阈值比较器的噪声痛点如果你刚开始学运放大概率是先学会了“开环比较器”反相端接基准电压同相端接输入信号输入一超过基准输出立刻翻转到另一侧。这个电路简单到让人产生一种错觉——比较器嘛不就是个能判决高低电平的开关吗但实际接上电路用示波器看输出波形你会被现实教育一顿。我在实验台前第一次调这个电路时信号发生器输出一个1kHz正弦波幅值2Vpp输入到同相端反相端用电阻分压固定在1V。按照书上的预期输出应当是一个干净的方波正弦波超过1V时输出翻转低于1V时再翻回去。可示波器上那个输出通道的波形在每次翻转点附近都拖着一串密密麻麻的毛刺方波边缘变得像锯条一样。这个现象不怪运放也不怪面包板接触不良。核心问题在于现实中不存在严格稳定的输入信号。正弦波有谐波噪声电源本身有纹波空间里的电磁干扰也会耦合到信号线上。当输入信号在基准阈值附近缓慢爬升时一点点微小的扰动就足以让输入电压反复越过阈值于是输出在高低电平之间来回跳变。如果这个输出后面接的是一个继电器控制电路继电器触点就会疯狂吸合释放几下就报废如果接的是单片机外部中断引脚单片机会被一串无效触发信号淹没。解决思路有两个方向一是把基准电压做成一个“会变化”的阈值让输入上升时的阈值和输入下降时的阈值不同中间留出一个缓冲区噪声幅度只要不大于这个缓冲区输出就不会乱翻。这个思路就是滞回比较器。1.2 正反馈把“一次判定”变成“双稳态记忆”滞回比较器实现这个“双阈值”的手段是在比较器外围引入一条正反馈通路。反馈电阻从输出端引回到同相输入端让同相端的电压会跟着输出状态一起变输出高电压时同相端阈值被抬高输出低电压时同相端阈值被压低。这样一改比较器就不再是简单的“电平判决器”了它多了一个非常实用的特性——记忆性。输出之所以保持当前状态不仅取决于输入信号当前的值还取决于系统上一次的翻转结果。输入信号必须超过当前状态对应的那个阈值才能触发状态翻转翻过去之后阈值立刻换到另一档信号要再越过新的阈值才能翻回来。这种“双稳态”行为在数字电路里有一个更常见的名字施密特触发器。教材上常把两者画等号严格说施密特触发器是基于逻辑门实现的整形器件而滞回比较器是基于运放/比较器搭建的可调模拟电路。但它们的工作原理是同源的核心就是那一个关键词——滞回窗口。这个窗口的宽度可以通过反馈电阻来调整想挡多大幅度的噪声窗口就留多大。2. 反相滞回比较器的电路分析与参数计算2.1 电路连接方式和阈值公式推导这篇文章的主角是反相输入型滞回比较器也是实际项目里最常用的一种接法。先说电路怎么接输入信号Vin经过电阻R1接到运放反相输入端同相输入端通过电阻R2接地也可以接一个参考电压Vref用于把窗口平移到指定位置反馈电阻Rf从输出端接回到同相输入端运放接双电源比如正负12V。很多初学者第一次看到这个电路会懵怎么信号不接同相端反而把反馈接到同相端去了之前学的负反馈不都是反馈到反相端的吗这里恰恰是滞回的精髓。反馈接到同相端构成的是正反馈它不会像负反馈那样把输入输出稳定在一个增益关系上而是把输出电压的状态“回灌”到阈值节点动态改变阈值。推导阈值公式时利用的是叠加定理。同相端电压V由两路源共同决定V Vout × R2/(R2 Rf) Vref × Rf/(R2 Rf)如果Vref接地就是0V那么第二项消失V Vout × R2/(R2 Rf)。翻转条件是反相端输入电压Vin与同相端电压V相等的时候。比较器工作在没有负反馈的状态输入对反相端和同相端来说几乎不取电流所以R1两端没有显著压降Vin的电压直接呈现到反相输入端。假设输出电压高电平为VOH那么输出为高时同相端阈值是VT VOH × R2/(R2 Rf)此时输入信号要高于VT输出才会翻转到低电平。翻转之后输出电压变成VOL低电平双电源下通常是负值同相端阈值立刻变成VT- VOL × R2/(R2 Rf)输入信号必须低于VT-输出才能翻回高电平。这两个阈值之间隔出的那一段电压范围就是滞回窗口ΔV VT - VT- (VOH - VOL) × R2/(R2 Rf)双电源对称供电时VOH约为正电源电压减一点VOL约为负电源电压加一点两者的差值接近2倍的电源电压所以窗口近似等于ΔV ≈ 2 × Vsat × R2/(R2 Rf)式子里的Vsat是饱和输出电压。注意它不是电源电压具体原因后面实测环节会详细说。2.2 一个可以套用的10k/100k参数实例拿一个具体参数算一遍比读十遍公式都管用。我常用LM358做实验。双电源供电选±12VR2取10kΩRf取100kΩ。按理想情况估算VOH≈11VVOL≈-11V。那么反馈分压比β R2/(R2Rf) 10 / (10100) ≈ 0.091VT ≈ 11×0.091 ≈ 1.0VVT- ≈ -11×0.091 ≈ -1.0V也就是说输入信号从负往正升要升到约1.0V输出才从低翻到高输入从正往负降要降到约-1.0V输出才会从高翻回低。滞回窗口大约2V。这个参数很典型窗口既够宽能滤掉电源线和面包板上的耦合噪声又不太宽1V的门槛在大多数信号整形场合都能接受。如果想改变窗口大小改Rf就行。Rf减小到47kΩ窗口会缩到大约1VRf增大到1MΩ窗口会接近2.2V。调R2也可以但R2同时也参与决定阈值中心位置改Rf通常更直观。还应该留意R2和Rf的取值不能太大。LM358的输入偏置电流虽然不大但也有几十纳安级别。如果R2、Rf都用10MΩ偏置电流会在这些电阻上产生几百毫伏的压降阈值就会偏离理论计算值不少。新手做实验10k和100k这两个数量级是最稳的。2.3 同相滞回结构做对比公式长什么样反相滞回比较器适合输入信号本来就带有一定幅值时使用。但有时候希望输入信号和输出方波的相位一致这时候要用同相输入型滞回比较器。同相输入型接法输入Vin经R1接到同相输入端反馈电阻Rf从输出端回到同相输入端反相输入端接参考电压接地或者Vref。同相端的电压表达式V Vin × Rf/(R1Rf) Vout × R1/(R1Rf)翻转条件依然是对比反相端参考电压Vref。假设Vref0V输出为高时阈值是VT -VOH × R1/Rf输出为低时阈值是VT- -VOL × R1/Rf当VOH11VVOL-11VR110kΩRf100kΩ时VT -11×0.1 -1.1VVT- 1.1V也就是输入高于1.1V之后输出翻低输入降到-1.1V以下再翻高。-1.1V到1.1V之间同样是一个2.2V的滞回窗口。对比两个电路可以看得很清楚反相结构的阈值表达式里R2在分子位置反馈Rf在分母位置同相结构则反过来是R1/Rf的比值在决定阈值位置。但窗口的物理意义完全一样。实际选型时我优先推荐反相结构原因是同相端的电压也参与决定阈值而这个节点的电容效应比较小抗干扰能力相对更好。如果需要同相输出可以在反相结构后面再跟一级反相器或直接将输出反相没必要硬套同相输入结构。3. 面包板实测搭电路、看波形、量门槛3.1 实验器材与搭建要点理论推完了动手搭一遍才能真正变成自己的东西。这次实验我用的东西很常规一般在实验台都能凑齐运放LM358一片电阻R110kΩR210kΩRf100kΩ双路直流稳压电源提供±12V函数信号发生器双通道示波器面包板和若干杜邦线。搭建时有一个细节值得注意运放两个电源引脚附近最好各放一个0.1µF瓷片电容到地。实验台上电源线又长又绕难免会引入高频干扰这个电容能吸收一部分电源高频毛刺否则后续看阈值时会发现翻转点模糊、抖动偏多。信号输入端R1的位置也可以顺手并在电路里预留一个几十皮法的小电容到地——如果输入信号是从长导线引过来这个小电容能滤掉一部分空间耦合噪声。实验注意观察的对象是滞回特性本身不是去排除干扰所以先把外部噪声压低后续效果更明显。3.2 波形对比开环比较器 vs 滞回比较器先把Rf断开让电路退化成最普通的开环比较器。信号发生器输出1kHz正弦波幅值2V直流偏置设为0V也就是波形在-1V到1V之间摆动。示波器CH1接输入CH2接输出。此时理论翻转点在0V附近因为R2接地输入信号从正半周向负半周扫过0V输出翻转。实测输出波形确实在零点附近翻转但每次翻转沿上输出波形会有一小段密集的毛刺宽度大概几十微秒。这是因为零点附近正弦波变化速率不快叠加在信号上的高频噪声让输入反复越过零点。把Rf接回去同一个信号再测。输出波形立刻干净很多翻转沿变得利落。原因是输入从负往正上升需要越过VT≈1.0V才翻转一旦翻转阈值掉到VT-≈-1.0V。之后输入从正往负降要一直降到-1.0V以下才翻转。噪声幅度只要不超过2V的窗口就没机会触发误翻转。这一步的对比在示波器上非常直观。强烈建议大家亲手做一次这个“装回反馈电阻”的动作那个波形从毛刺变利落的瞬间比看任何原理图都更能理解滞回的实际意义。3.3 用示波器XY模式直接画出滞回环只看时域波形虽然能判断“不抖了”但还看不出滞回窗口到底在哪里。这里分享一个特别直观的测量技巧把示波器切到XY模式。X轴接输入信号Y轴接输出信号屏幕上画出来的是一条回线形状像平行四边形输出从低跳到高和从高跳到低分别发生在两个不同的输入电压点。这条回线的两个拐点就是窗口的两个边界电压。我用这个方法读出来的边界大约是0.98V和-1.02V和理论值1.0V基本吻合。误差主要来自LM358的饱和输出电压不完全等于±12V以及万用表/示波器的通道偏移。但对于工程应用来说这个精度已经完全够用。保存这个XY模式的截图放在学习笔记里比一大段公式解说都直观。3.4 实测中测出的数值和理论值的偏差搭好电路后用万用表仔细量一下运放输出的高低电平会发现一个之前容易被忽略的事实LM358在±12V供电下实测高电平约10.8V低电平约-10.5V都不完全到12V。用这两个实测值重新代入公式算出来的阈值和示波器实测更加贴近。还有一点LM358有个特性它的输出高电平受负载电流影响比较明显。如果后级接了低阻负载比如1kΩ到地输出电压会被拉低些阈值也跟着偏移。我在实验中用示波器探头直接测量探头是高阻的影响不大但如果你后面接着继电器线圈这种低阻负载计算阈值时就得把压降考虑进去。这种偏差属于正常现象但不是误差的借口。做硬件设计时阈值的预算里一定要留出余量不能把窗口边界卡得很死。4. 滞回比较器在真实项目里的四个典型玩法4.1 波形整形把带噪正弦波变成干净方波传感器输出的正弦波经过长线缆传输后往往叠了一身噪声。如果后面要接单片机做频率测量直接把这个带噪信号接进IO口触发外部中断会数出一堆假脉冲。把传感器信号送到滞回比较器输入端窗口设得比噪声峰值大输出就是一个边缘干净的方波。这一步是滞回比较器最经典的应用几乎每个做信号采集的老工程师都干过。一个实操建议如果你遇到的信号是几十毫伏级别的小信号先别直接进比较器先用仪表放大器或普通运放放大到伏特级再做滞回整形。阈值窗口最小也要比噪声大两倍以上否则整形效果还是会打折扣。关于整形后的相位问题反相滞回比较器输出和输入是反相的如果后续计频程序不在乎相位可以直接用。如果很在意可以在输出端再串一级非门或者三极管反相级把相位纠正回来。4.2 硬件按键消抖窗口挡住机械抖动机械按键的抖动问题本质上是触点闭合瞬间的机械弹跳产生了几个毫秒的断续脉冲。常规做法是软件延时消抖但某些实时性要求高的场合延时消抖又影响响应速度。滞回比较器做硬件消抖思路是先把按键分压网络输出的电平接到滞回比较器把滞回窗口设为几百毫伏到一两伏。按键弹跳时触点电压在中间区间来回抖动但幅度不足以越过窗口边界输出就保持稳定。不过要注意一个问题机械抖动的幅度通常并不大弹跳过程中触点电压并不一定会跳到窗口外面所以单纯靠滞回窗口消抖效果不一定完美。更稳妥的做法是按键电压先经过一个简单的RC低通滤波比如10kΩ加1µF时间常数约10ms把抖动脉冲的尖峰吸收掉再送到滞回比较器做整形让输出边沿更陡。这样双管齐下消除抖动的同时还能保证边沿干净。只靠滞回不滤波或者只靠滤波不整形都能用但组合起来才是最稳的。4.3 自激矩形波振荡器RC滞回方波源滞回比较器加一个RC充放电回路就能变成一个自激方波振荡器。电路接法很巧妙把反相滞回比较器的输入电阻R1去掉反相输入端直接接一个电容C电容另一端接地同相端依然是R2和Rf组成的分压阈值网络。工作原理是设输出电压为高阈值是VT同相端电压为高阈值。反相端电容通过充电回路逐渐充电电压往VOH方向爬升。当电容电压超过VT时输出翻转成低电平同相端阈值降到VT-。此时电容开始放电电压往VOL方向下降降到VT-以下时输出又翻回高电平如此循环。振荡周期大约为T ≈ 2 × R × C × ln(1 2×R2/Rf)这个公式里R是电容充电的限流电阻C是电容值。如果R2远小于Rf周期近似为2RC×ln3也就是约2.2RC。取R10kΩC0.1µF周期大约2.2ms对应频率大约450Hz刚好能驱动一个蜂鸣器做发声实验。这个电路最大的好处是输出方波幅度稳定、边沿陡峭而且起振毫无压力。做信号发生器实验、单片机时钟测试、LED闪烁驱动都能直接派上用场。4.4 保护/控制电路里防抖动翻转继电器控制电路、电机启停电路、温控开关这一类场景都有同一个痛点控制状态在临界点附近反复切换。比如一个温控电路温度到达设定值时比较器输出翻转触发继电器断开加热器。如果用普通比较器温度在设定点附近波动半度继电器就会反复通断机械寿命很快耗尽。给比较器加上滞回窗口比如设置成“温度到80°C断开降到75°C以下才重新闭合”中间这5°C是继电器的死区系统就稳定多了。这种需求用运放滞回比较器实现很方便窗口宽度可以通过R2和Rf灵活调节。设计时唯一的注意点是窗口不能设太大。如果温控死区设成10°C温度控制精度就会很低被控对象波动会很大。滞回窗口本质上是控制精度和稳定性的一个折中这个平衡要靠实际系统来摸索没有通用答案。类似的场景还有电池过压/欠压保护电路、光电传感器输出整形、转速传感器的测速脉冲整形原理都一样。5. 新手按图搭电路时最容易踩的坑5.1 输出饱和电压不等于电源电压很多初学者计算滞回阈值默认把VOH当成电源电压、VOL当成0V算完后发现实测完全对不上。原因在于运放输出有饱和压降尤其像LM358这种老掉牙的运放高电平输出能力很差输出高电平时距正电源可以差1.5V以上低电平倒是能接近地。解决办法不是换一颗昂贵的高精度运放而是养成一个习惯接入电路后先用万用表实测运放输出高低电平的确切数值再用这个数值代进公式计算理论阈值。如果是双电源也不要想当然认为高电平就是12V、低电平就是-12V。LM358在±12V下高电平大约10.8V低电平大约-10.5V代入以后阈值才有参考意义。5.2 单电源供电不设参考点的后果很多人实验台上没有双电源就想用5V或者3.3V单电源供电。直接按双电源电路搭会发现问题输出低电平接近地但同相端阈值有一半时间指向负电压区间电压都不可能低于0V了电路永远无法翻转回高。正确的做法是给同相端建立一个参考偏置。最简单的方法是用两个等值电阻分压把同相端的基准电位设在电源电压的一半附近比如5V供电时设在2.5V。分压节点上还要接一个较大的电容到地比如10µF0.1µF并联把参考点噪声滤干净。这个2.5V的“虚拟地”就相当于双电源电路中的GND。设置好参考点后阈值窗口就以2.5V为中心上下分布。实际应用时把要检测的比较电平也折算到这个虚拟地上才能正确设计窗口位置。5.3 反馈电阻取值不当会让电路变锁存器滞回比较器的窗口是由R2和Rf的比值决定的。有时候为了让系统更稳定想把窗口调大点就把Rf调得很大比如10MΩ。此时输出如果翻转到高电平同相端阈值被抬得非常高输入信号可能再也达不到这个高阈值电路就会锁死在当前状态怎么都不翻转。这个现象本质上是反馈太强把滞回比较器变成了一个“锁存器”。在需要正常翻转的场合这是个灾难。设计规则是窗口宽度要留有余量保证输入信号的摆幅始终能覆盖两个阈值点。一个经验做法输入信号的峰峰值至少是滞回窗口宽度的1.5倍以上并且输入信号的中心点要大致落在窗口中心附近。还有一种情况是R2取得太小比如只有几百欧此时同相端阈值接近输出电压的几乎所有幅度输入信号不够大同样触发不了翻转。选阻值的时候先把输入信号的摆幅确定下来再回头算R2和Rf。5.4 用LM393这类开集输出比较器的特殊处理LM393和LM358外观相似引脚也不完全一样很多人习惯性当运放用结果发现输出端永远没有高电平。LM393是专用的比较器芯片输出级是集电极开路结构内部集电极不接任何上拉元件。它要工作外部必须在输出端接一个上拉电阻到电源比如4.7kΩ到5V输出高电平才被拉到接近5V不接上拉输出最多只能靠内部漏电流悬空测不到高电平。此外滞回反馈电阻Rf要接的位置是上拉电阻和输出节点之间这个节点才代表了实际的输出电平。如果误把Rf接到LM393的集电极引脚上又会因为忘记了推挽级的区别导致阈值计算错乱。用开集输出的比较器搭滞回时还有一个额外好处上拉电压可以和运放供电电压分开设计。比如运放用12V供电但输出上拉到3.3V可以直接给单片机输入省掉电平转换电路。这个特性在混合电压系统里非常好用我一直觉得它是LM393比运放更适合做电压比较的原因之一。我在实际使用LM393时还会在输出端加一个10kΩ上拉电阻因为开集输出的高电平是靠上拉电阻提供的阻值太大会导致高电平建立变慢阻值太小又会增加耗电。4.7k到10k之间是绝大多数场景的合理区间。上拉电阻的电源选择要看后级电路的电平要求不要直接接到运放电源正极除非后级电路恰好和它同电压。用滞回比较器做波形整形、按键消抖、方波发生器时如果项目对功耗比较敏感这个上拉电阻的取值会直接影响静态功耗需要平衡上升沿时间和功耗。实测下来10kΩ在大多数低速信号场景都能兼顾但如果你在做高速比较器电路就得上拉小一些比如1kΩ并配合更快的比较器芯片。LM393的另一个特点是它允许输入电压在正电源和负电源之间摆动不会像某些单电源运放那样出现相位反转这也是它在比较器应用中更受欢迎的原因之一。用运放搭建滞回比较器虽然教学上很顺手但真正量产的产品里用LM393这种专用比较器才是常见做法。对初学者来说先用LM358把原理折腾明白再切换到LM393做实际项目是非常平滑的学习路线。最后补一个我自己搭电路时的习惯无论用运放还是比较器电源引脚附近一定要就近放一个0.1µF瓷片电容到地。这个东西虽然便宜但它能解决很多莫名其妙的振荡和阈值抖动问题。如果实验中出现毛刺、翻转异常先别怀疑芯片坏了用示波器看一下电源引脚十有八九是没放去耦电容。另外面包板上的长跳线也值得警惕高频信号走在长跳线上会产生额外的寄生电感对比较器这种带正反馈的电路影响尤其明显。做实验时尽量把反馈线剪短把信号源引线用屏蔽线或者尽量靠地线走实测效果会好一个档次。
返回列表