ARTICLE DETAIL

资讯详情

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

施密特触发器滞回特性详解:阈值计算、电路实现与抗噪应用

施密特触发器滞回特性详解:阈值计算、电路实现与抗噪应用 施密特触发器这个电路很多刚接触模拟电路的朋友第一次看到它的传输特性曲线时都会愣一下——输入电压从低往高走和从高往低走翻转点居然不一样。这个不一样恰恰是它最值钱的地方。我在做信号调理和按键消抖电路时施密特触发器几乎是绕不开的一环。它解决的问题很具体现实世界里的信号从来不是教科书上那种干净的方波振铃、毛刺、缓慢上升沿、电源纹波耦合进来的抖动这些都会让普通比较器输出一串乱七八糟的翻转脉冲。施密特触发器靠一个叫滞回的机制把这些干扰一次性挡在门外。这篇文章我会从施密特触发器最核心的滞回特性讲起拆解它的阈值计算、电路实现方式、和普通比较器的本质区别再落到实际选型和调试中会遇到的问题。不管你是正在学模电的学生还是需要在项目里做信号整形的工程师或者只是好奇为什么按键电路里要加这么个东西的爱好者下面这些内容应该都能让你把这个电路吃透。1. 施密特触发器到底解决了什么现实问题1.1 从一个按键误触发说起假设你用一个普通的电压比较器做按键检测。按键一端接VCC另一端通过电阻接地比较器参考电压设在VCC/2。理想情况下按下按键比较器输出高松开输出低。但实际按键在按下和松开的瞬间金属触点会有几毫秒到十几毫秒的机械抖动电压在阈值附近来回弹跳好几次。普通比较器没有记忆只要输入电压跨过阈值就翻转结果就是按一次键单片机中断触发了七八次。这个问题在工业现场更严重。一个从传感器远距离传过来的信号沿着电缆走几米甚至几十米沿途会耦合进各种噪声。信号上升沿可能从原本的几纳秒变成几百微秒上面还叠着几十毫伏的毛刺。如果后级是比较器或者门电路这些毛刺会被忠实地翻译成一连串脉冲后级计数器直接数错。施密特触发器的思路很直接既然信号在阈值附近会抖那我干脆给阈值加一个死区。输入电压必须超过上阈值才能让输出翻高而一旦翻高之后输入必须掉到下阈值以下才能让输出翻低。上阈值和下阈值之间的这段电压区间输入怎么抖输出都不动。这个区间就是滞回电压也叫回差。1.2 滞回特性的直观理解你可以把施密特触发器想象成一个有惯性的开关。普通开关是你推到中间它就翻施密特触发器是你必须推过某个位置它才翻而且翻过去之后你得往回拉过另一个位置它才翻回来。这个推过去和拉回来的位置不同就形成了滞回。用数学语言描述设上阈值为V_T下阈值为V_T-滞回宽度ΔV V_T - V_T-。当输入从低往高走只有超过V_T输出才从高翻低反相型或从低翻高同相型当输入从高往低走只有低于V_T-输出才翻回去。在V_T-到V_T之间输出保持原状态不变。这个特性带来的直接好处是抗噪。假设噪声幅度是50mV只要滞回宽度大于50mV阈值附近的噪声就无法让输出翻转。注意这里说的是阈值附近如果噪声幅度大到超过滞回宽度那还是会误触发所以滞回宽度的选择要和实际噪声水平匹配。1.3 和普通比较器的本质区别普通比较器只有一个阈值输出是输入和阈值的即时比较结果。施密特触发器有两个阈值输出状态不仅取决于当前输入还取决于输入是从哪个方向来的。这意味着施密特触发器具有状态记忆它本质上是一个双稳态电路。从电路结构上看普通比较器通常是开环运放或者专用比较器芯片而施密特触发器一定包含正反馈路径。正反馈是产生滞回的根源。没有正反馈就没有两个不同的阈值。这一点在后面讲电路实现时会详细展开。从应用场景看普通比较器适合做精确的电平检测比如判断电池电压是否低于3.0V施密特触发器适合做波形整形和噪声抑制比如把缓慢变化的模拟信号变成干净的方波或者给按键信号消抖。2. 阈值电压和滞回宽度的计算逻辑2.1 反相施密特触发器的阈值推导先看最经典的反相施密特触发器用运放加正反馈电阻实现。电路结构是输入信号通过电阻R1接到运放反相输入端运放同相输入端通过电阻R2接参考电压Vref同时通过反馈电阻Rf接运放输出端。这个电路的关键在于同相输入端的电压不是固定的它受输出状态影响。当输出为高电平VOH时同相端电压为V_T Vref × Rf/(R2Rf) VOH × R2/(R2Rf)当输出为低电平VOL时同相端电压为V_T- Vref × Rf/(R2Rf) VOL × R2/(R2Rf)滞回宽度为ΔV (VOH - VOL) × R2/(R2Rf)从公式能看出几个重要结论。第一滞回宽度和电源电压摆幅成正比输出摆幅越大滞回越宽。第二滞回宽度和R2与Rf的比值有关R2越小或Rf越大滞回越窄。第三中心阈值由Vref和电阻分压决定调节Vref可以整体平移阈值。实际计算时要注意运放的输出高电平VOH和低电平VOL不一定等于电源轨。比如用LM358输出高电平可能比VCC低1.5V左右输出低电平可能比地高几十毫伏。这个偏差会直接影响阈值精度精密应用要选轨到轨输出的运放或者专用比较器。2.2 同相施密特触发器的阈值推导同相施密特触发器的输入加在同相端反馈网络把输出的一部分送回同相端反相端接参考电压。这种结构下输入信号和反馈信号在同一个节点叠加。设输入通过R1接同相端输出通过Rf接同相端反相端接Vref。同相端电压为V Vin × Rf/(R1Rf) Vout × R1/(R1Rf)当输出为高时要让输出翻低需要V降到Vref以下此时对应的输入电压就是下阈值V_T- Vref × (R1Rf)/Rf - VOH × R1/Rf当输出为低时要让输出翻高需要V升到Vref以上对应的输入电压是上阈值V_T Vref × (R1Rf)/Rf - VOL × R1/Rf滞回宽度同样是ΔV (VOH - VOL) × R1/Rf同相和反相结构的滞回宽度公式形式相似但阈值位置和输入输出相位关系不同。选哪种结构取决于你的信号极性和后级电路要求。2.3 用具体数值走一遍计算假设用LM393比较器VCC5V输出上拉电阻10k到5V所以VOH≈5VVOL≈0V。取R110kR210kRf100kVref2.5V。反相结构下V_T 2.5 × 100/(10100) 5 × 10/(10100) 2.273 0.455 2.728VV_T- 2.5 × 100/(10100) 0 × 10/(10100) 2.273VΔV 5 × 10/(10100) 0.455V也就是说输入从低往高走超过2.728V输出翻低输入从高往低走低于2.273V输出翻高。中间有455mV的死区。如果噪声幅度小于455mV阈值附近的抖动就不会引起误翻转。如果想加宽滞回把R2改成20kRf保持100kΔV 5 × 20/(20100) 0.833V滞回变宽了但中心阈值也会偏移需要重新调Vref。这就是设计时的权衡滞回越宽抗噪越好但阈值精度和响应速度会下降。3. 用运放和晶体管搭建施密特触发器的具体方案3.1 运放方案最直观但要注意压摆率用运放搭施密特触发器是最容易理解的方式因为运放的开环增益很大正反馈一旦建立输出会迅速饱和到电源轨附近。但运放方案有几个坑。第一个坑是压摆率。普通运放如LM358的压摆率只有0.3V/μs左右当输入信号频率较高时输出跟不上滞回特性会变形。如果输入是几十kHz以上的信号要选压摆率足够的运放比如TL072的压摆率是13V/μs或者直接用专用比较器如LM393。第二个坑是输入共模范围。有些运放的同相端不能接近电源轨如果Vref设得靠近VCC运放可能工作不正常。选型时要看数据手册的共模输入范围。第三个坑是输出摆幅。非轨到轨运放的输出高电平可能比VCC低很多这会压缩滞回宽度。如果发现实测滞回比计算值小很多先检查输出摆幅。实际搭电路时反馈电阻Rf一般取几十k到几百k太小会加重运放输出负载太大容易受寄生电容影响导致响应变慢。R1和R2取10k量级比较稳妥既不会从信号源抽取太多电流也不会让噪声电流影响阈值。3.2 晶体管方案成本低但计算稍复杂用两个NPN晶体管交叉耦合也能做出施密特触发器这种结构在早期数字电路里很常见。基本结构是两个晶体管发射极相连并通过公共电阻接地集电极分别通过负载电阻接VCCT1的集电极通过电阻接T2的基极T2的集电极通过电阻接T1的基极输入信号通过电阻加到T1基极。这个电路的工作过程当输入电压较低时T1截止T2导通T2的集电极低电平通过耦合电阻拉低T1基极维持T1截止。当输入升高到一定程度T1开始导通发射极电压升高由于T2的基极接在T1集电极上T1集电极电压下降会削弱T2的基极驱动形成正反馈最终T1导通、T2截止。输入再降低时过程反过来。阈值计算比运放方案复杂因为涉及晶体管的Vbe和电流分配。工程上通常先确定发射极公共电阻上的电压摆幅再反推输入阈值。这种方案的优势是成本极低两个通用三极管加几个电阻就能搞定适合大批量生产。劣势是阈值精度受温度影响大Vbe有-2mV/℃的温度系数温漂明显的场合要谨慎。3.3 专用芯片方案省事但要知道选型要点市面上有大量专用施密特触发器芯片比如74HC14六路反相施密特触发器、74HC132四路与非施密特触发器、CD40106六路施密特触发器。这些芯片内部已经做好了滞回直接用就行。选型时重点看几个参数。一是阈值电压74HC14在5V供电时上阈值典型值2.9V下阈值典型值1.5V滞回约1.4V。二是传输延迟74HC14约10ns适合较高频率。三是输入电压范围有些芯片输入不能超过VCC有些可以耐受更高电压。用专用芯片的好处是阈值一致性好批次间差异小温度漂移也经过补偿。缺点是阈值固定不能像运放方案那样自由调节。如果系统需要特定阈值还是得自己搭。提示74HC14的输入引脚如果悬空输出可能振荡因为悬空引脚电压不确定。不用的输入引脚要接地或接VCC不能浮空。4. 施密特触发器在典型电路中的实际应用4.1 按键消抖电路里的施密特触发器回到开头说的按键问题。用74HC14做按键消抖是最简单的方案。按键一端接地另一端通过上拉电阻接VCC同时接到74HC14的输入。按下按键输入从VCC降到地经过施密特触发器整形输出一个干净的下跳沿。松开按键输入从地升到VCC输出干净的上跳沿。这里的关键是RC时间常数和滞回宽度的配合。通常会在按键两端并联一个0.1μF电容配合上拉电阻形成RC滤波。假设上拉电阻10k电容0.1μF时间常数1ms。按键抖动持续约5msRC滤波把抖动幅度衰减到很小再经过施密特触发器的滞回输出就非常干净了。实测中要注意电容太大会导致按键响应变慢太小则滤波效果不够。1ms左右的时间常数对大多数按键合适。如果按键环境特别恶劣可以加大到10ms但用户会感觉到明显延迟。4.2 波形整形把正弦波变成方波在信号发生器或者编码器输出处理中经常需要把正弦波或三角波变成方波。施密特触发器做这个非常合适。输入一个带噪声的正弦波只要噪声幅度小于滞回宽度输出就是干净的方波占空比由输入信号过阈值的时间决定。这里有个细节如果输入信号幅度刚好在阈值附近输出占空比会不稳定。解决办法是让输入信号幅度远大于滞回宽度比如输入峰峰值5V滞回宽度0.5V这样过阈值点很陡占空比稳定。另一个细节是频率响应。施密特触发器的翻转需要时间输入频率太高时输出可能来不及翻转。74HC14在5V供电时最大工作频率约30MHz超过这个频率输出幅度会下降。高频应用要选高速型号比如74AHC14或者专用高速比较器。4.3 振荡器施密特触发器加RC施密特触发器加一个RC反馈网络就能组成弛张振荡器。电路很简单输出通过电阻R接电容C到地电容上的电压接到施密特触发器输入。输出高时通过R给C充电电容电压上升当电压超过上阈值输出翻低电容通过R放电电压下降当电压低于下阈值输出又翻高。如此循环输出方波。振荡频率由RC时间常数和阈值决定。近似公式为f ≈ 1 / (R × C × ln(V_T / V_T-))这个电路的优势是结构极简成本极低。劣势是频率稳定性一般受电源电压和温度影响。适合对频率精度要求不高的场合比如LED闪烁、蜂鸣器驱动。实际搭电路时R取10k到1MC取100pF到10μF可以覆盖几Hz到几百kHz的范围。如果频率偏高要注意施密特触发器的传输延迟影响。如果频率偏低电容漏电流会影响周期稳定性选漏电流小的电容比如薄膜电容或钽电容。4.4 脉冲按键拨号电路中的施密特触发器老式电话的脉冲拨号电路里施密特触发器用来把拨号盘产生的脉冲串整形。拨号盘旋转时触点通断产生一串脉冲脉冲个数对应拨号数字。但触点抖动和线路噪声会让脉冲边沿不干净直接用会导致计数错误。施密特触发器把每个脉冲整形成干净的方波后级计数器才能准确计数。这个应用场景对施密特触发器的要求是响应速度适中、抗噪能力强。太快会把抖动也当成脉冲太慢会丢失窄脉冲。实际电路中通常配合RC滤波把抖动滤掉再用施密特触发器整形。5. 调试施密特触发器时最容易踩的坑5.1 阈值实测值和计算值对不上这是最常见的问题。原因通常有几个。第一运放或比较器的输出摆幅不是理想的电源轨VOH和VOL和假设值差很多。第二电阻精度不够特别是反馈电阻5%的误差会导致滞回宽度明显偏差。第三输入偏置电流在电阻上产生压降高阻值电阻网络里这个误差不可忽略。排查方法先用万用表实测输出高电平和低电平代入公式重新计算。再用精密电阻替换普通电阻看阈值是否改善。如果还不对检查运放输入偏置电流参数必要时减小电阻值。5.2 输出振荡施密特触发器输出振荡通常是因为正反馈不够强或者布局有问题。如果反馈电阻太大正反馈量不足输出可能在阈值附近来回翻转。解决办法是减小反馈电阻增强正反馈。另一个原因是电源退耦不好。输出翻转时电流突变通过电源内阻耦合到输入形成寄生反馈。在电源引脚附近加0.1μF陶瓷电容退耦通常能解决。还有一种情况是输入信号源阻抗太高和施密特触发器的输入电容形成低通导致信号延迟和反馈信号相位错开引起振荡。解决办法是在输入端加缓冲器或者降低信号源阻抗。5.3 滞回宽度不够导致抗噪失败设计时算出来滞回宽度0.5V实际噪声幅度0.6V那还是会误触发。这种情况要么加宽滞回要么在输入端加滤波。加宽滞回会影响阈值精度加滤波会引入延迟需要根据系统要求权衡。我的经验是滞回宽度至少取噪声峰峰值的2倍留足余量。如果噪声幅度不确定先用示波器在阈值附近长时间观察抓最大噪声幅度再定滞回宽度。5.4 温度漂移导致阈值变化晶体管方案的施密特触发器温漂明显因为Vbe有温度系数。运放方案温漂小一些但电阻的温漂也会贡献。如果应用环境温度变化大要选低温漂电阻或者用专用芯片。专用芯片的阈值温漂通常在数据手册里给出比如74HC14的阈值温漂约-0.5mV/℃。如果系统要求阈值稳定选温漂小的型号或者在电路里加温度补偿。6. 从施密特触发器延伸出去的设计思路6.1 可调阈值的施密特触发器把参考电压Vref改成电位器分压就能连续调节阈值中心。这种电路在需要现场校准的场合很有用。注意电位器要选线性好的否则调节手感不均匀。另外电位器滑动端要加滤波电容否则调节时引入噪声。6.2 窗口比较器和施密特触发器的区别窗口比较器有两个固定阈值输入在窗口内输出一种状态窗口外输出另一种状态。施密特触发器也有两个阈值但输出状态取决于输入变化方向。两者容易混淆。简单区分窗口比较器判断输入是否在某个范围内施密特触发器判断输入是否跨过了某个方向的门槛。实际应用中窗口比较器用于电压监测比如电池过压欠压保护施密特触发器用于信号整形和消抖。6.3 施密特触发器在电源管理里的应用在DC-DC转换器的使能电路里施密特触发器可以防止输入电压在使能阈值附近波动时反复开关机。比如设定上阈值12V下阈值10V输入电压从0升到12V时开机掉到10V以下才关机。中间2V的滞回避免了输入电压在11V附近波动时的频繁开关。这个思路在电池供电设备里很实用。电池电压随负载变化如果没有滞回负载一重电压掉一点就关机负载一轻电压回升又开机反复振荡。加施密特触发器后关机后要等电压回升到上阈值才重新开机系统稳定得多。6.4 用施密特触发器做简单的脉宽调制把施密特触发器的阈值一端接调制信号另一端接三角波输出就是PWM波。调制信号改变阈值输出脉宽随之变化。这种PWM发生器结构简单适合低成本应用。线性度取决于三角波的线性度和施密特触发器阈值的线性度。实际调试时三角波幅度要覆盖整个阈值调节范围否则会出现脉宽饱和。三角波频率决定PWM频率通常取几十kHz避开音频范围。7. 选型和实测中的几个实用建议7.1 什么时候用专用芯片什么时候自己搭如果阈值固定、批量生产、成本敏感直接用74HC14这类专用芯片。如果阈值需要精确调节、或者系统里已经有运放富余、或者需要特殊阈值范围自己用运放搭。自己搭的另一个好处是阈值可以设得比较奇怪比如上阈值3.7V、下阈值3.2V这种非标准阈值专用芯片很难满足。但自己搭要注意运放的选型不是所有运放都适合做施密特触发器。7.2 实测时用示波器看传输特性曲线最直观的调试方法是把输入接可调直流电源输出接示波器慢慢调输入电压观察输出翻转点。记录上阈值和下阈值和计算值对比。这个方法能快速发现阈值偏差和滞回宽度问题。如果示波器有XY模式把输入接X轴输出接Y轴直接就能看到滞回曲线。这是验证施密特触发器最直观的方式。7.3 注意输入信号的驱动能力施密特触发器的输入阻抗不是无穷大特别是运放方案输入偏置电流会在信号源内阻上产生压降。如果信号源内阻高比如传感器输出要先加缓冲器再进施密特触发器。专用芯片的输入阻抗通常很高可以直接接。7.4 电源退耦和布局施密特触发器在翻转瞬间电流变化大电源引脚一定要加退耦电容。布局时退耦电容尽量靠近芯片电源引脚走线短而粗。输入信号线远离输出线避免寄生耦合。反馈电阻的走线也要短减少寄生电容对响应速度的影响。我在实际项目里遇到过因为退耦电容离芯片太远导致输出振荡的情况把电容挪到芯片旁边就好了。这种问题用示波器看电源引脚能明显看到翻转时的电压毛刺加电容后毛刺消失。7.5 关于滞回宽度的取舍滞回宽度不是越宽越好。太宽会导致小信号无法触发比如输入信号幅度只有0.3V滞回宽度0.5V那输出根本不会翻转。设计时要确保输入信号幅度大于滞回宽度且留有余量。一般来说滞回宽度取输入信号幅度的10%到30%比较合适。太小抗噪不够太大灵敏度下降。具体取值要看噪声环境和信号特征。施密特触发器这个电路看起来简单但真正用好需要理解滞回的本质、会算阈值、会选器件、会调电路。我见过太多人直接抄一个电路图结果阈值不对、输出振荡、抗噪失败回头查半天发现是电阻取值或者运放选型的问题。希望上面这些内容能帮你少走点弯路。下次再看到传输特性曲线上那两个不同的翻转点你应该能清楚地知道它们是怎么来的以及怎么让它们落在你需要的位置上。
返回列表