4. 差分信号传输:RS-422/485标准、差分线对布线规则、终端匹配电阻
好,咱们进入第四章。前面几章聊了干扰从哪来、怎么耦合的,也讲了共模扼流圈和磁珠这些滤波手段。但说实话,最好的抗干扰,是从传输方式上就把干扰给废掉。这就是今天要聊的——差分信号传输。
我刚开始做编码器接口时,用的还是单端5V信号。线一长,波形就糊了。后来换成差分对,同样的电机、同样的线缆,波形干净得像教科书。嗯,从那以后,但凡编码器距离超过30厘米,我必上差分。
4.1 为什么差分信号能抗干扰?
先看个基本概念。单端信号,一根信号线对地。干扰进来,直接叠加在信号上。你想想看,地平面稍微抖一下,信号就跟着抖。
差分信号不一样。它用两根线传一对互补信号:A线和B线。A高B低代表1,A低B高代表0。接收器只看两根线的差值,不看它们对地的绝对值。
核心原理:外部干扰同时耦合到两根线上(共模干扰),两根线的差值几乎不变。接收器一减,干扰就被抵消了。
说白了,差分传输天然就是共模抑制器。我在一个伺服驱动器项目里遇到过,编码器线缆和动力线绑在一起走了两米,单端信号完全没法看,换成差分后,波形纹丝不动。
4.2 RS-422 与 RS-485 标准
编码器换相信号常用的差分标准,主要是RS-422和RS-485。很多人搞混这两个,其实区别很清晰。
| 特性 | RS-422 | RS-485 |
|---|---|---|
| 驱动方式 | 单主多从(一发多收) | 多主多从(多点双向) |
| 最大节点数 | 1发10收 | 32个节点(标准),可扩展 |
| 传输模式 | 全双工 | 半双工(也可全双工) |
| 典型编码器应用 | 增量式编码器(A+/A-、B+/B-、Z+/Z-) | 多圈绝对值编码器(总线式) |
| 最大速率 | 10 Mbps(短距离) | 10 Mbps(短距离) |
| 最大距离 | 约1200米(低速) | 约1200米(低速) |
我个人习惯:增量式编码器的A、B、Z三对信号,用RS-422。因为每对信号独立传输,全双工,不需要握手协议。而多圈绝对值编码器走总线时,用RS-485更合适,一根双绞线就能挂多个节点。
小经验:编码器端的RS-422驱动器,我常用DS26LV31或AM26LS31。接收端用DS26LV32或AM26LS32。这些芯片便宜、皮实,5V供电,工业级温度范围。
4.3 差分线对布线规则
标准选好了,芯片焊上去了,但布线不行,照样白搭。我见过太多人,原理图画得漂亮,PCB一塌糊涂。
差分线对布线的核心就四个字:等长、等距。
- 等长:两根线的长度差控制在5mm以内。长度不等,信号到达接收器的时间就不同,共模抑制效果下降。
- 等距:两根线的间距保持一致。间距变化会导致差分阻抗变化,产生反射。
具体怎么做?我列几条实战规则:
- 走线尽量靠近:两根线间距保持在2倍线宽左右(比如线宽0.25mm,间距0.5mm)。太远,抗干扰能力下降;太近,串扰增大。
- 避免90度直角:直角走线会改变阻抗,产生EMI。用45度斜角或圆弧过渡。
- 远离噪声源:差分线对不要平行于时钟线、PWM线、电源线。如果必须交叉,用垂直交叉。
- 地平面完整:差分线下方最好有连续的地平面。不要跨分割区,否则阻抗不连续。
- 成对走线:A+和A-必须走在一起,不要分开。我见过有人把A+走顶层、A-走底层,结果干扰全进来了。
注意:差分线对不是非要严格平行不可。短距离内稍微绕一下调整等长,问题不大。但不要为了等长而绕出大圈,那样反而引入更多耦合噪声。
4.4 终端匹配电阻
好,线布好了,信号发出去了。但信号到了接收端,如果不做终端匹配,会发生什么?反射。
信号在传输线末端遇到阻抗突变,一部分能量反射回来,叠加在原信号上,造成过冲、振铃、误触发。编码器换相信号一旦误触发,电机位置就跳变,后果你懂的。
终端匹配电阻的作用,就是把传输线的特性阻抗和接收端阻抗匹配起来,让信号能量被吸收,而不是反射回来。
4.4.1 电阻值怎么选?
标准RS-422/485的传输线特性阻抗通常是100Ω或120Ω。所以终端匹配电阻就用这个值。
- 120Ω:最常用,对应双绞线的典型特性阻抗。
- 100Ω:某些电缆或PCB走线用这个值。
我一般直接焊120Ω贴片电阻,0805封装,放在接收器输入端的最远端。
4.4.2 电阻放哪?
记住一句话:电阻放在信号的最远端。对于RS-422,每对差分信号只在接收端放一个电阻。对于RS-485,如果总线上有多个节点,电阻放在总线两端。
实战案例:有一次调试一个编码器,信号在100米外,波形有严重的过冲。我用示波器一看,终端电阻没焊。焊上120Ω电阻后,波形立刻变平滑。嗯,有时候问题就这么简单。
4.4.3 偏置电阻(上拉/下拉)
除了终端匹配电阻,RS-485总线有时还需要偏置电阻。目的是在总线空闲时,保证A-B的电压差大于200mV,避免接收器输出不确定状态。
偏置电阻的接法:
- A线通过一个电阻上拉到5V
- B线通过一个电阻下拉到GND
- 电阻值通常取1kΩ~10kΩ,具体看总线负载
我个人习惯:只在总线两端加偏置,中间节点不加。加多了,偏置电流太大,驱动器可能带不动。
4.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。从干扰源头到最终解决,每一步都有对应手段。
4.6 实战避坑清单
最后,我把自己踩过的坑整理成一份清单。你照着检查,能省不少调试时间。
- 终端电阻焊错位置:电阻要焊在接收端,不是发送端。我曾经把电阻焊在编码器侧,结果信号衰减严重。
- 差分线不等长:长度差超过10mm,高速信号(比如5MHz以上)就会出问题。用示波器看,波形会有台阶。
- 忘记加偏置电阻:RS-485总线空闲时,接收器输出乱跳。我遇到过电机莫名其妙抖动,查了半天,就是缺偏置。
- 地线环路:差分信号虽然不依赖地,但接收器和发送器之间如果地电位差太大,共模电压会超出芯片承受范围。建议在接收端加共模扼流圈或光耦隔离。
- 线缆选型不对:不要用普通排线传差分信号。用双绞线,最好是带屏蔽层的双绞线(比如Belden 9841)。
我的习惯:每次画完PCB,我都会用万用表量一下差分线对的长度。如果手头有TDR(时域反射计),直接测阻抗,确保在100Ω±10%以内。没有TDR也没关系,用示波器看信号边沿有没有过冲,也能判断匹配好不好。