比较器与R-S触发器在电力电子中的经典组合:保护、滞环与BLDC应用
做电力电子这些年我越来越觉得很多看似复杂的电源问题拆到根上就是几个很基础的小器件在“唱主角”。其中出场率最高的一个是比较器一个是R-S触发器。你去看那些成熟的电源方案过压过流保护、滞环控制、无感方波电机的换相检测、软启动时序……背后几乎都有这两个元件的影子。比较器负责“看”它时刻盯着电压、电流这些模拟量一旦越过设定界限就翻脸输出逻辑电平R-S触发器负责“记”它把比较器给出的瞬态事件锁存下来告诉后面的控制器“刚才出过事别不当回事”。这两个器件一配合就成了电力电子系统里最朴素的“感知记忆”闭环。这篇文章我就从实际工程角度把这套组合的典型应用场景拆开聊一聊重点讲清楚电路怎么搭、参数怎么算、坑在哪里希望对正在做电源和电机驱动的朋友有参考价值。1. 两个小器件先搞清楚各自的角色定位1.1 比较器模拟世界和数字世界的翻译官比较器本质上是一个1 bit的ADC。它有两个输入端同相端和反相端输出只有两种状态高电平或低电平。当同相端电压高于反相端时输出翻转反之则回到另一状态。听着和运放很像但它和运放的关键区别在于运放工作在闭环线性区比较器工作在开环饱和区追求的是“要么最高、要么最低”的快速翻转。在电力电子的实际电路里比较器的输入信号通常是采样电阻上的压降、分压电阻网络得到的分压值、电流互感器二次侧的信号。这些模拟量经过比较器后就变成干净的0/1信号可以直接喂给MCU的GPIO、数字逻辑门电路或者R-S触发器。选型上我偏爱开漏输出的比较器比如LM393、LM339这一系列。开漏输出的好处是输出电平可以由外部上拉电阻决定方便和不同电压域的逻辑电路对接。比如比较器供电用12V但后级MCU是3.3V逻辑只要上拉到3.3V就行不用额外加电平转换。这个特性在混合信号系统里非常实用。1.2 R-S触发器一个能记住事件的“比特位”R-S触发器也叫复位-置位锁存器是数字电路里最基础的状态存储单元。它有两个输入端S置位和R复位两个输出端Q和Q非。用两个与非门交叉耦合就可以搭出来也可以用现成的CD4044、74HC279这类集成RS锁存器。R-S触发器在电力电子里的价值不是拿来跑复杂逻辑而是用来“记住一件事”。比如过流保护动作了这个事件可能只持续几十微秒MCU如果没赶上采样怎么办有了R-S触发器故障信号一到S端Q端就被拉高并保持住MCU随便什么时候来读都能读到。直到你主动给R端一个复位脉冲它才恢复原状。1.3 为什么这两个器件总爱成对出现因为它们天生互补。比较器是“无记忆”的输入信号回到正常范围输出立刻跟着回但电力电子系统里很多故障是瞬态的比如负载突变带来的电流尖峰、电机启动瞬间的冲击电流如果只靠比较器做保护电路会处于“故障来了就关断、故障走了就恢复”的抖动的状态轻则反复重启重则器件过热损坏。R-S触发器补上的正是“记忆”这一环。比较器检测到越界事件触发器锁存故障状态驱动电路保持关断直到人工复位或系统确认安全后才重新启动。检测和记忆分离这样的保护逻辑清晰又可靠也是工业级电源设计里很成熟的做法。2. 典型场景一过压/过流保护RS锁存怎么搭才可靠2.1 保护电路的基本结构和锁存的意义开关电源输入过流、输出过压这些都是最常见的故障。如果不加锁存保护电路很容易在故障和正常之间来回切换导致电路间歇工作。举一个我实际调过的例子某DC-DC模块输出短路时电流采样电阻上的电压瞬间升高比较器翻转驱动芯片被关断。但驱动一关断电流立刻下降采样电压回落比较器又翻回去驱动重新打开电流又飙升。这样循环几次MOS管就热炸了。加上R-S触发器以后逻辑就完全不同了。比较器翻转后触发器的Q端被置位输出一个持续的保护电平把PWM驱动死死拉住。哪怕比较器输入端已经恢复正常Q端依然保持高电平。只有外部复位信号到来系统才重新使能。这样做保护才叫“锁得住”。2.2 实战参数计算过压保护阈值怎么定以一个输出12V的电源模块为例我要设计一个输出过压保护阈值定在13.2V。用LM393比较器反相端接采样分压同相端接参考电压。分压网络选择上电阻100k下电阻10k。正常情况下12V输出电压在下电阻上的分压为12V × 10k / (100k 10k) 1.0909V当输出过压到13.2V时分压值变成13.2V × 10k / (100k 10k) 1.2V所以参考电压就设为1.2V。这里我习惯用TL431产生参考电压因为TL431内部其实就是一个带2.5V基准的比较放大结构配合两个电阻可以把参考电压做得很准。分压电阻和参考电阻都选1%精度误差能控制在1%以内。需要注意一点分压电阻阻值不宜太大。LM393的输入偏置电流虽然很小但分压网络的阻抗如果到兆欧级偏置电流引起的压降误差就不能忽略了。我一般控制在几十k到一百k级别稳定性和功耗都能兼顾。2.3 上电复位、复位逻辑和接线细节RS触发器在保护电路里的接线我最常用的方案是用两片LM393中的一个比较器做故障检测再用CD4044或两个与非门搭锁存。正常的逻辑定义是比较器输出高电平表示“异常”这个高电平送到RS触发器的S端把Q端置为高电平去封锁PWM。复位端R接到MCU的一个IO口平时给低电平需要清故障时给一个几十微秒的高脉冲。这里有几个特别容易踩的坑。第一个坑是上电瞬间的误触发。电源刚上电时各路电压都在建立过程中比较器两个输入端的电压谁高谁低是随机的很容易在启动瞬间误置位RS触发器导致系统一上电就锁死。我的解决办法是给复位端加一个上电延时电路用一个RC延时上电后先把触发器复位一次等比较器供电和参考电压都稳定了再放开。这个RC延时我一般取10ms左右用100k电阻和100nF电容就行大约1倍时间常数就有动作余量。第二个坑是RS触发器的S端和R端谁是高有效、谁是低有效不同芯片不一样。用与非门搭的RS锁存器是低电平有效CD4044也是低电平有效的S/R输入。所以比较器输出要先反相一次再接进去或者干脆用或非门搭的高有效版本。我吃过这个亏第一次用CD4044时忘记反相保护信号进S端完全没反应逻辑反了。建议大家在图纸阶段就把真值表列出来核对一遍。第三个坑是驱动封锁信号的同步问题。触发器的Q端信号最好和PWM调制信号做一次与门处理保证是在PWM高电平期间被封锁不会产生半开半关的异常脉冲。3. 典型场景二滞回比较器与滞环控制3.1 为什么需要滞回单阈值比较器的“临界抖动”假设你要监控一个母线电压超过15V就报警断开。如果只用一个单阈值比较器阈值就卡在15V上。实际信号不可能是一根直线总会有纹波和噪声。当电压正好在15V附近慢慢漂移的时候比较器会在阈值点反复翻转输出一串毛刺信号。后级如果接了计数器或者RS触发器可能被这串毛刺误触发造成误报警甚至误保护。这时候就需要滞回比较器。它有两个阈值一个上门限一个下门限。电压升到上门限才翻转降到下门限才翻回去。中间这一片“模糊地带”就是滞回窗口窗口内的噪声再怎么折腾输出状态也不会变。这就是抗噪的原理工程上叫做“施密特行为”。3.2 滞回窗口计算一个实例带你走通公式滞回比较器的窗口宽度由正反馈电阻决定。以常见的同相输入滞回比较器为例信号从同相端输入反馈电阻R1从输出端引回同相端同相端对地接R2。反相端接参考电压Vref。上门限VTH和电压VTL的公式可以这样理解输出为高电平VOH时反馈电阻会把同相端的电压往上抬一点输出为低电平时又会往下拉。分压系数β R2/(R1R2)那么VTH Vref β × (VOH - Vref)VTL Vref β × (VOL - Vref)滞回宽度ΔV VTH - VTL β × (VOH - VOL)举个实例。Vref取2.5V输出高电平5V低电平0VR1取10kR2取100kβ 100k/(10k100k) ≈ 0.909。但这里反馈系数算错了反馈应该看从输出到同相端的分压反馈系数是R2/(R1R2)算出来是0.909窗口宽度就是0.909 × (5-0) ≈ 4.55V窗口太大不合理。实际中我通常希望反馈系数在0.05到0.2之间也就是R1远大于R2。重新取R1 100kR2 10kβ 10k/(100k10k) ≈ 0.0909。这样VTH 2.5 0.0909 × (5 - 2.5) ≈ 2.727VVTL 2.5 0.0909 × (0 - 2.5) ≈ 2.273V滞回宽度约454mV。信号超过2.727V翻转一次低于2.273V才翻回来窗口中心的2.5V附近有近半伏的噪声免疫能力实际够用了。如果你的信号噪声幅度更大适当减小R2或增大R1就行。计算滞回窗口时要把比较器的输出摆幅VOH和VOL当成已知条件而不是默认5V轨到轨这一点很多新手容易忽略。3.3 滞环控制在Buck变换器中的实际应用滞回比较器在电力电子里最经典的应用就是Buck变换器的滞环电流控制。思路很简单把电感电流采样值送进滞回比较器参考值是电流给定Iref。当电感电流低于Iref减去半个窗口时比较器输出高电平开通上管电流上升到Iref加上半个窗口时比较器翻转关断上管、开通下管。电流就在窗口内来回“爬坡-下降-爬坡”像蛇形一样贴着参考值走。这种控制的优点非常突出不需要环路补偿网络响应速度极快负载突变时电流能在极短时间内被拉回窗口。而且参数设计直观窗口宽度直接决定了电流纹波。假设采样电阻Rs为10mΩ希望纹波电流是1A那窗口电压就设成10mV用前面滞回宽度公式反推反馈电阻就行。这里有个要注意的事滞环控制下开关频率是不固定的。输入电压越高、电感越小电流上升越快开关频率就越高。在某些条件下频率可能高到超出MOS管的承受能力所以实际设计还要加频率限制逻辑比如在比较器输出和驱动之间加定时最小开通/关断时间或者用锁相频率方案。这是滞环控制最大的工程难点。3.4 利弊分析响应快但不固定频率滞环控制的“快”和“不固定频率”是相伴而生的。有的场合比如对EMC和电感损耗要求高的通信电源就不太适合用纯滞环控制因为频率不固定导致滤波设计困难。但放到电机驱动、LED恒流驱动、电池充电这类对动态响应要求高、对EMI容忍度高的场景它就是一个体验非常好的方案。另外滞环控制很容易被误解成“不需要建模”其实如果你要给这类系统做稳定性分析还是要建立小信号模型用描述函数法把继电器非线性特性线性化求出等效增益和相位才能预测窗口宽度变化对环路稳定性的影响。这个内容比较深等以后专门写一篇展开。4. 典型场景三BLDC无感方波控制里的比较器与状态机4.1 反电动势过零检测的基本原理无感BLDC电机驱动难点在于没有霍尔传感器不知道转子位置。工程上最常用的方法就是检测反电动势的过零点。反电动势和转子磁场有关当转子磁极扫过某相绕组时该相的反电动势会从正到负或从负到正穿越零点这个过零时刻和换相点之间有固定的30度电角度关系。检测过零最硬核的做法就是用比较器。把三相端电压分别和虚拟中性点电压比较悬浮相的反电动势过零点就是比较器翻转的时刻。相比用ADC去采样三相电压再做软件计算硬件比较器法实时性更强不占MCU资源转速做高也不怕采样跟不上。4.2 外部比较器法的硬件实现外部比较器法的硬件结构一般是这样的三相端电压经过大阻值分压电阻衰减到比较器共模输入范围内同时各分压点并联一个小电容做低通滤波滤掉PWM斩波纹波。虚拟中点由三个等值电阻星型连接得到。三个比较器的同相端接各自分压后的端电压反相端接虚拟中点电压输出就是三路过零检测信号。这里有个细节要提醒分压电阻的阻值不能取得太小否则会额外给电机绕组加载影响反电动势波形。但也不能太大太大会和滤波电容形成低通滤波器带来相位延迟。我一般取几十k的分压电阻滤波电容按PWM频率的10到20倍设计截止频率。相位延迟没法完全消除就得在软件里按当前转速补偿固定角度。示波器上你会看到比较器输出的过零沿比理论点滞后一点点转速越高滞后越多这是个需要认真处理的误差源。4.3 RS触发器在换相时序中的作用过零检测比较器的输出本质上就是一个个脉冲事件。MCU读到这些脉冲后软件里做延迟30度换相。但在一些高速场合软件中断处理可能来不及或者你想把换相逻辑完全下放到硬件RS触发器就派上用场了。比较经典的做法是用RS触发器构成一个环形换相状态机。三路过零信号作为状态切换的触发条件用触发器锁存当前换相状态输出直接控制六个MOS管的开关组合。这种方式完全是组合逻辑时序逻辑不依赖MCU运行延迟极低适合对实时性要求高的电机控制器。还有一种更简单的用法比较器过零信号送到RS触发器的S端触发后由MCU在一个确定时间读走状态然后发复位脉冲清掉避免过零脉冲太短、MCU轮询时漏掉事件。这种“事件锁存”的用法是RS触发器在电机控制里最值得复用的技巧。5. 现场调试中的常见问题与排障技巧5.1 问题速查表这几个器件看起来简单真正上到电路板调试问题花样不少。我把这几年积累的典型问题整理成一张速查表大家遇到类似现象可以直接对着排查。现象可能原因处理办法比较器输出频繁抖动后级误动作输入信号噪声大缺少滞回增加正反馈电阻形成滞回窗口或在输入端加RC滤波保护锁存后无法复位RS触发器S/R逻辑接反或复位脉冲过窄对照真值表重查接线复位脉冲至少展宽到几十微秒上电瞬间系统被锁死比较器供电未稳定时输出随机复位端加RC上电延时上电后先自动复位再使能比较器输出翻转很慢开漏输出上拉电阻太大或负载电容过大把上拉电阻从10k减小到2.2k左右检查后级输入电容检测到的过零点不准确分压滤波造成相位延迟软件按转速补偿角度或降低滤波截止频率比较器输入信号超出共模范围分压比例不够端电压直接击穿输入重新设计分压网络并在输入端加限幅二极管RS触发器数据保持但MCU读不到触发器输出没有上拉到MCU供电域检查上拉电压是否匹配MCU的IO电平标准保护电路在雷击浪涌实验中误动作瞬态干扰耦合到比较器输入输入端增加TVS管和RC吸收提高滞回窗口5.2 我的几条避坑心得比较器电源去耦这件事再怎么强调都不为过。比较器翻转瞬间输出级会有比较大的电流变化如果电源引脚旁的去耦电容离得太远电源线上毛刺就会耦合到输入端造成比较器自激。我的习惯是100nF陶瓷电容紧贴电源引脚有条件再并一个1uF到10uF的电容。第二分压电阻网络阻值别盲目加大。为了省功耗有人把采样分压电阻做到兆欧级结果输入偏置电流和PCB漏电流造成的误差比1%电阻误差还大阈值漂移得不像话。对LM393这种输入偏置电流在几十nA级别的比较器分压网络总阻抗控制在100k以内比较安全。第三RS触发器空余输入端不能悬空。用CD4044或者与非门搭锁存时悬空输入会拾取噪声导致莫名其妙的置位或复位。所有不用的输入引脚都要按逻辑要求接高或接低哪怕你觉得“这个引脚反正用不到留着悬空没事”实际上了电它就会给你颜色看。6. 仿真验证上板之前先用工具把逻辑跑通6.1 用PLECS做系统级逻辑验证我平时做电力电子系统仿真用PLECS比较多。它的优点是把电路拓扑、控制算法、热模型放在一起而且仿真速度比传统SPICE快很多特别适合先验证控制逻辑和故障保护逻辑是否合理。比如上面说的滞环Buck控制在PLECS里搭一个Buck主电路电感电流采样后用比较器模块加上滞回逻辑生成PWM几分钟就能跑出完整的电流波形。故障保护逻辑也可以验证注入一个短路故障看RS触发器是否按预期锁存、驱动是否被正确封锁。PLECS的好处是不用关心比较器内部晶体管级的细节逻辑对了就行这正是“算法验证”阶段需要的效率。6.2 用SPICE做器件级细节验证系统级逻辑验证完还得回到SPICE类工具里把器件细节确认一遍。用LTspice搭比较器电路扫描输入电压直接读出实际翻转阈值和理论计算对比。这里尤其要验证滞回宽度因为实际比较器的输出摆幅不是理想的0到5VVOH受上拉电阻和负载影响会直接影响滞回公式里的ΔV。噪声仿真也建议这时候做。给输入信号叠加一个幅度接近滞回窗口的噪声看输出会不会误翻转。如果噪声幅度还没到窗口的一半就翻了说明电路中还有寄生耦合路径要回头查PCB布局和地平面。这种问题到了实板上再查成本就高了。6.3 仿真和实测要对比的几个波形点上板后我最关注的波形有这么几个比较器输出沿是否干净有没有振铃RS触发器的Q端在故障注入后是否一次性锁存到位PWM封锁点和触发器的置位点之间的时序关系。用示波器同时抓这四路信号和仿真波形叠在一起看假如误差在10%以内说明电路设计和建模都比较到位。超出这个范围优先怀疑比较器的传播延迟和分压网络的寄生电容而不是怀疑理论公式。最后再分享一个小技巧。如果你在做的是电机驱动这类有多路比较器的系统建议把每路比较器的滞回电阻做成可调电阻或者预留贴片电阻位置。调试时先用大滞回保证系统稳定再逐步减小窗口找到性能最优、又不误动作的最小值。这个参数在理论上算得再精确到了实板上还是会因为布局、器件差异和温度漂移发生变化留一手调试余地能省很多返工时间。