3. 硬件过流保护电路设计:比较器阈值设定、硬件快速关断逻辑、去抖滤波电路设计

硬件过流保护,说白了就是给伺服驱动装一个「肌肉反射」。软件检测再快,也得几十微秒。硬件电路呢?纳秒级就能拉闸。我做过一个项目,电机堵转时电流飙升,软件还没来得及反应,IGBT 先冒烟了。从那以后,我对硬件保护电路的设计就格外较真。

这一节,我们拆开来看三个核心模块:比较器阈值怎么定、关断逻辑怎么做、去抖滤波怎么搭。

3.1 比较器阈值设定:别拍脑袋,要算清楚

比较器的阈值,不是随便拧个电位器就完事的。你得先搞清楚:正常工作的最大电流是多少?保护动作的最小电流是多少?这两个值之间,就是你的阈值窗口。

我个人习惯用两步法来算:

  1. 确定基准电压:电流采样信号(比如来自霍尔或分流电阻)先经过调理电路,变成电压信号。假设满量程电流 50A 对应 3.3V,那 1A 就是 66mV。
  2. 设定保护点:电机额定电流 10A,我通常取 1.5~2 倍作为硬件保护阈值。也就是 15A~20A。对应电压就是 0.99V~1.32V。

关键公式:

Vth = Iprotect × Rshunt × Gainamp

其中:Iprotect 为保护电流,Rshunt 为采样电阻,Gainamp 为调理电路增益。

举个例子。我用的是 0.5mΩ 的分流电阻,后级差分放大器增益 50 倍。保护电流设定在 20A:

Vth = 20A × 0.0005Ω × 50 = 0.5V

嗯,0.5V 这个值很舒服,既远离了噪声底噪(通常几十 mV),又没超过 ADC 参考电压(3.3V)。

我的经验:阈值不要设得太紧。我曾经为了「更灵敏」,把阈值设在额定电流的 1.2 倍。结果电机一启动,电流尖峰直接触发保护,机器根本动不了。后来放宽到 1.8 倍,配合软件里的软启动,问题才解决。

3.2 硬件快速关断逻辑:越快越好,但不能乱跳

比较器输出高电平后,下一步就是关断功率管。这里有两种主流做法:

方案 关断时间 复杂度 可靠性
直接关断(比较器直连驱动芯片 SD 引脚) < 100ns 低 高
通过 CPLD/FPGA 逻辑关断 200ns ~ 1μs 中 中
MCU 中断响应关断 5μs ~ 20μs 高 低(依赖软件)

我个人强烈推荐第一种——比较器直接拉低驱动芯片的 SD(Shutdown)引脚。为什么?因为这是最硬的硬件路径,没有软件参与,没有中断延迟,纯粹的组合逻辑。

电路很简单:比较器输出端接一个开漏输出的 NPN 三极管,集电极拉到驱动芯片的 SD 引脚。正常时 SD 被上拉电阻拉到高电平,驱动使能。过流时比较器输出高,三极管导通,SD 被拉低,驱动立即关断。

注意:关断后必须设计「自锁」机制。否则电流降下来后,比较器输出恢复低电平,驱动又会重新打开。如果故障还在,就会反复震荡,比一直短路还危险。我习惯在比较器输出后面加一个 RS 触发器,一旦触发,必须由 MCU 手动复位才能重新使能。

3.3 去抖滤波电路设计:别让噪声「骗」了保护

电机运行时的电流噪声是不可避免的。PWM 开关噪声、电机反电动势尖峰、甚至接地环路干扰,都可能让比较器误触发。去抖滤波,就是给保护电路加一道「确认」环节。

常用的方法有三种:

  • RC 低通滤波:在比较器输入端加一个 RC 滤波器,把高频噪声滤掉。时间常数 τ = R × C,一般取 1μs ~ 10μs。
  • 迟滞比较器:在比较器正反馈端加一个电阻,引入迟滞。这样输入信号在阈值附近抖动时,输出不会来回跳变。
  • 数字去抖:比较器输出先经过一个 D 触发器或计数器,只有持续 N 个时钟周期的高电平才被认为是真过流。

我常用的组合是:RC 滤波 + 迟滞比较器。成本低,效果好,调试也简单。

举个例子:

比较器型号:LM393(开漏输出)
正反馈电阻 Rf:100kΩ
输入电阻 Rin:10kΩ
迟滞电压 Vhyst = Vcc × (Rin / (Rin + Rf))
         = 5V × (10k / 110k) ≈ 0.45V

0.45V 的迟滞,对于 0.5V 的阈值来说,已经足够抵抗大部分噪声了。输入端的 RC 滤波我取 R=1kΩ,C=10nF,τ=10μs,能有效抑制 100kHz 以上的尖峰。

避坑指南:我曾经在一个项目里只用 RC 滤波,没加迟滞。结果电机低速运行时,电流波形有轻微振荡,刚好在阈值附近来回晃。比较器输出像打嗝一样,驱动芯片一会儿开一会儿关,最后把 MOS 管给烧了。加了迟滞之后,世界清净了。

3.4 完整电路框架图

下面这张图,把上面三个模块串起来了。你可以把它当作硬件过流保护的「标准模板」。

硬件过流保护电路框架图 硬件过流保护电路框架图 电流采样 分流电阻 / 霍尔 信号调理 差分放大 + 滤波 比较器阈值设定 迟滞 + RC 去抖 关断逻辑 RS 触发器 驱动芯片 SD 引脚 MCU 复位控制 手动清除故障 关键设计要点: 1. 阈值电压 = 保护电流 × 采样电阻 × 增益,留 1.5~2 倍余量 2. 迟滞电压 Vhyst = Vcc × (Rin / (Rin + Rf)),建议 ≥ 0.3V 3. RC 滤波时间常数 τ = R × C,取 1μs ~ 10μs 4. 关断后必须自锁,由 MCU 手动复位

3.5 实战中的几个坑

最后,分享几个我踩过的坑,希望能帮你省点 Debug 时间。

  • 比较器供电要干净:比较器的电源纹波会直接耦合到输出。我试过用开关电源直接给比较器供电,结果输出在阈值附近乱跳。后来加了 LDO 和去耦电容,问题解决。
  • PCB 布局要短:采样信号线尽量短,远离 PWM 走线。我见过一个板子,采样线绕了半块板子,结果耦合了一大堆噪声,保护阈值形同虚设。
  • 测试要带载:空载调试时一切正常,一接电机就误触发。为什么?因为电机电流波形里有大量谐波,空载时根本看不到。所以,一定要在真实负载下验证保护阈值。

最后提醒一句:硬件过流保护是最后一道防线。不要指望它来弥补软件或系统设计的缺陷。它应该永远保持沉默,只在真正危险时出手。如果它频繁动作,说明你的系统设计有问题,而不是保护太灵敏。