4. 编码器信号采集与调理电路
编码器输出的 A、B、Z 信号从机械轴端传到控制器,中间要经过一段不短的电缆。这段路径上既有电机 PWM 的共模干扰,也有长线反射和地电位差。如果直接把编码器输出接到 MCU 引脚,轻则计数抖动,重则整段脉冲丢失。因此,采集与调理电路的任务不是“把线接上”,而是把编码器信号还原成边沿干净、逻辑电平确定、与控制器共地安全的数字脉冲。本节按信号从编码器到 MCU 的传递顺序,逐级讨论差分接收、隔离、滤波、整形和终端匹配的设计与选型。
一、差分接收:把共模干扰挡在门外
增量式编码器常见输出形式有集电极开路、推挽和差分线驱动(RS-422 兼容)。在电缆长度超过 1 m、或与电机动力线同槽敷设时,应优先选用差分输出。差分对 A+/A− 在双绞线中传输,接收端用差分接收器(如 AM26LS32、SN75175、MAX3095)还原为单端信号。其核心优势是共模抑制:当 A+ 与 A− 同时被干扰抬升 3 V 时,接收器只关心两者之差,逻辑不变。
选型时关注三点:一是共模输入范围,工业现场建议不低于 −7 V~+12 V;二是接收器输入阻抗与终端电阻的配合;三是传输延迟与通道间偏斜,高速计数(>500 kHz)时应选延迟小于 30 ns、偏斜小于 5 ns 的型号。若编码器只有单端输出,可在编码器端加装差分驱动器(如 AM26LS31)转为差分,而不是在控制器端“单端直接进”。
二、光耦隔离:切断地环流
编码器常安装在电机侧,其地与控制器地之间存在电机电流引起的地电位差,严重时可达数伏。光耦隔离把两侧地彻底分开,是抑制地环流最直接的手段。但光耦用于编码器信号时有两个陷阱:速度与脉宽失真。
普通 PC817 上升/下降时间在微秒级,当编码器频率超过 20 kHz 时输出脉冲已被明显压缩,导致计数丢失。因此高速场合应选高速光耦(6N137、TLP2362、HCPL-0631),其传输延迟约 50~100 ns,可支持数 MHz 信号。设计时注意:发光二极管侧限流电阻按 R=(Vcc−Vf)/If 计算,例如 Vcc=5 V、Vf=1.4 V、If=10 mA,则 R≈360 Ω,取 330 Ω;输出侧必须加 10 kΩ 上拉,否则开集输出无法形成高电平。若使用磁耦(如 ADuM1201)替代光耦,可省去限流电阻且速率更高,但需注意其共模瞬态抗扰度指标。
三、RC 滤波:压住毛刺但不吃掉脉冲
隔离后的信号仍可能带有几十纳秒的尖峰毛刺,来自电源切换或空间耦合。在光耦输出与施密特输入之间加一级 RC 低通,可有效抑制。截止频率按 fc=1/(2πRC) 计算。若编码器最高输出频率为 100 kHz,方波基频即 100 kHz,则 fc 应至少取 3~5 倍,即 300~500 kHz,才能保证脉冲边沿不被过度延迟。例如 R=1 kΩ、C=1 nF,fc≈159 kHz,对 100 kHz 信号偏紧;改为 R=1 kΩ、C=470 pF,fc≈339 kHz,更稳妥。
需要注意:RC 时间常数会引入延迟,若后级施密特阈值固定,延迟约 t≈RC·ln(Vcc/VT)。在四倍频计数时,A、B 两路 RC 必须一致,否则会引入相位误差,影响方向判断。因此两路应选用同批次电阻电容,容差建议 1%。
四、施密特触发整形:给边沿一个明确的判决
经过电缆和 RC 后,信号边沿变缓,若直接进 MCU,缓慢穿越阈值区间时容易因噪声产生多次翻转。施密特触发器具有上下两个阈值(VT+ 与 VT−),只有信号超过 VT+ 才翻高,低于 VT− 才翻低,中间区域保持状态,从而把带毛刺的缓变边沿整形成干净的数字脉冲。
常用 74HC14(六路反相施密特)或 74HC132(带施密特输入的与非门)。74HC14 在 5 V 供电时典型 VT+≈2.7 V、VT−≈1.9 V,迟滞约 0.8 V。选型时注意:若前级光耦输出高电平只有 3.3 V,而施密特供电 5 V,则 VT+ 可能接近 3.3 V,导致高电平无法可靠触发。此时应让施密特与光耦同用 3.3 V 供电,或选低阈值型号。另外,未使用的施密特输入必须接地或接 Vcc,不可悬空。
五、终端电阻匹配:消除长线反射
当电缆长度与信号波长可比时,阻抗不连续会引起反射,表现为边沿振铃和过冲。RS-422 差分对典型特性阻抗为 100~120 Ω,应在接收端差分对之间并联一只 120 Ω 电阻,且尽量靠近接收器输入引脚。若电缆较长(>30 m)或速率较高,可在发送端串接 22~33 Ω 源端匹配电阻,与驱动器输出阻抗共同逼近线缆阻抗。
终端电阻并非越大越好或越小越好:不接则反射明显;接 120 Ω 会带来约 3.5 mA 的直流负载(5 V 差分摆幅下),对驱动器是正常负载;若误接 50 Ω,则电流翻倍,可能超出驱动器能力。对于多点接收(如同时送 MCU 和 PLC),只应在最远端接一只终端电阻,中间节点不接,避免并联后阻抗过低。
六、级联后的整体校验
调理链路搭建完成后,不能只看“能计数”,而应逐级验证。用示波器差分探头测编码器输出,确认 A+/A− 摆幅与共模电压在接收器范围内;测光耦输出,确认高电平达到后级供电的 70% 以上、低电平低于 0.4 V;测 RC 后节点,确认无超过 0.5 V 的毛刺;测施密特输出,确认上升/下降时间小于 50 ns、无振铃;最后在 MCU 端读取计数,正转加、反转减,Z 信号每转一次。若出现计数偶尔跳变,优先检查终端电阻是否漏接、光耦上拉是否偏大、以及 A/B 两路 RC 是否一致。
整条链路的设计原则可以概括为:差分负责抗共模,隔离负责断地环,滤波负责压毛刺,施密特负责定边沿,终端负责消反射。五者各司其职,缺一不可;任何一级参数失配,都会在最终计数结果上以抖动或丢脉冲的形式暴露出来。