4、硬件滤波设计:RC低通滤波电路设计、施密特触发器整形、差分信号接收器应用
编码器信号最怕什么?怕干扰。
我在现场调试过不少设备,遇到过最头疼的问题就是:编码器明明没动,计数器却在跳。查了半天,最后发现是电机驱动器的高频噪声串进了编码器信号线。从那以后,我对硬件滤波这块就特别上心。
今天咱们就聊聊三种最常用的硬件滤波手段:RC低通滤波、施密特触发器整形、差分信号接收。这三招用好了,编码器信号基本就稳了。
4.1 RC低通滤波电路设计
RC低通滤波,说白了就是个电阻加电容。原理很简单:高频噪声被电容旁路到地,低频信号正常通过。
但设计的时候有几个坑,我一个个说。
4.1.1 截止频率怎么选?
截止频率的公式:
f_c = 1 / (2π × R × C)
举个例子:R=1kΩ,C=0.1μF
f_c = 1 / (2 × 3.14 × 1000 × 0.1×10^-6) ≈ 1592 Hz
也就是说,1.6kHz以上的信号会被衰减。
那编码器信号频率是多少?
假设编码器每转1000个脉冲,转速3000rpm:
f_signal = 1000 × 3000 / 60 = 50 kHz
你看,如果按上面那个参数,50kHz的信号也被衰减了,这就不行。
关键原则:截止频率要大于编码器最高输出频率的3-5倍,同时要低于干扰频率的1/10。
我个人习惯的做法是:先测一下现场的干扰频率范围,再反推RC参数。有一次在变频器旁边装编码器,干扰频率在2MHz左右,我就把截止频率设在200kHz,效果很好。
4.1.2 电阻电容选型注意事项
| 元件 | 推荐值 | 注意事项 |
|---|---|---|
| 电阻R | 100Ω ~ 10kΩ | 太小了功耗大,太大了信号衰减严重 |
| 电容C | 100pF ~ 1μF | 建议用C0G或X7R材质,温度稳定性好 |
注意:电解电容不要用在高频滤波上,ESR太大,效果很差。我曾经吃过这个亏,用了个10μF的电解电容做滤波,结果高频噪声一点没滤掉。
4.1.3 多级RC滤波
如果单级RC滤波不够,可以用两级甚至三级。但要注意:
- 两级之间要加缓冲器(比如运放跟随器),否则后级会拉低前级的截止频率
- 每级的截止频率可以设成一样,或者逐级降低
举个例子,两级RC滤波:
第一级:R1=1kΩ, C1=0.01μF → f_c1 ≈ 15.9kHz
第二级:R2=1kΩ, C2=0.01μF → f_c2 ≈ 15.9kHz
中间加一个运放跟随器隔离
这样对15.9kHz以上的信号,每级衰减-20dB/十倍频,两级就是-40dB/十倍频,效果翻倍。
4.2 施密特触发器整形
RC滤波之后,信号波形可能还是有点毛刺。这时候就需要施密特触发器上场了。
施密特触发器的核心特点:有滞回特性。什么意思?就是上升沿和下降沿的触发阈值不一样。
比如74HC14,典型的阈值:
- 上升沿触发:约1.7V(Vcc=5V时)
- 下降沿触发:约0.9V(Vcc=5V时)
- 滞回宽度:约0.8V
这个滞回宽度就是抗干扰的关键。信号在阈值附近抖动时,只要抖动幅度不超过滞回宽度,输出就不会翻转。
小技巧:如果觉得芯片自带的滞回宽度不够,可以用正反馈自己搭一个施密特触发器。用运放加两个电阻就行,滞回宽度可以自由调节。
我自己搭过的一个电路:
运放:LM358
R1:10kΩ(从输出到正输入端)
R2:100kΩ(从正输入端到地)
Vref:2.5V(用电阻分压得到)
滞回宽度 ≈ Vcc × R2 / (R1 + R2)
= 5V × 100k / (10k + 100k)
≈ 4.55V
这个滞回宽度有点大,适合信号质量特别差的场合。一般编码器信号,用芯片自带的施密特触发器就够了。
4.3 差分信号接收器应用
如果编码器距离控制器比较远(超过1米),或者现场电磁环境特别恶劣,那就得上差分信号了。
差分信号的优势很明显:
- 共模噪声被抑制(两根线受到的干扰相同,相减后抵消)
- 抗干扰能力强
- 可以传输更远的距离(几十米没问题)
常用的差分接收器芯片:
| 芯片型号 | 特点 | 适用场景 |
|---|---|---|
| AM26LS32 | 四路差分接收器,带施密特触发 | 通用编码器接口 |
| DS26C32 | 低功耗,高速 | 高速编码器 |
| MAX3095 | ±15kV ESD保护 | 工业恶劣环境 |
接线方式:
编码器A+ → 接收器A+输入
编码器A- → 接收器A-输入
编码器B+ → 接收器B+输入
编码器B- → 接收器B-输入
编码器Z+ → 接收器Z+输入
编码器Z- → 接收器Z-输入
注意:差分信号的两根线要双绞,绞距越密抗干扰越好。我一般用每米30-40绞的线,效果不错。
重要提醒:差分接收器的输入端不能悬空。如果编码器没接,接收器输出会乱跳。解决办法是在输入端加100kΩ的下拉电阻,或者接一个固定的电平。
4.4 三种方法的组合使用
实际项目中,这三种方法经常组合使用。我画个流程图给大家看看:
我的习惯做法是:
- 近距离(1米以内):RC滤波 + 施密特触发器,成本低,效果好
- 中距离(1-10米):差分信号接收 + RC滤波,抗共模干扰
- 远距离(10米以上):差分信号接收 + 施密特触发器,双重保障
总结一下:硬件滤波是编码器信号处理的第一道防线。RC滤波干掉高频噪声,施密特触发器消除阈值抖动,差分接收搞定共模干扰。这三招用好了,编码器信号基本不会出问题。
嗯,今天就聊到这儿。下一节咱们讲讲软件滤波,那又是另一套思路了。
公众号:蓝海资料掘金营,微信deep3321