第三章 物理层详解(一):RS-422/485标准,差分信号原理,总线拓扑与终端匹配

各位同学,咱们今天聊聊物理层。说实话,很多做通信的工程师,上层协议写得飞起,但一到物理层就翻车。我见过太多案例了——软件调通了,硬件一联调,数据全是乱码。问题出在哪?十有八九是物理层没搞明白。

这一章,咱们聚焦太阳翼驱动系统最常用的物理层标准:RS-422和RS-485。别看它们老,在航天领域,可靠才是王道。

3.1 差分信号:为什么航天系统偏爱它?

先问一个问题:为什么卫星上不用普通的TTL电平通信?

答案很简单——抗干扰。卫星上电缆长,电机、电源都在旁边,电磁环境极其恶劣。单端信号(比如TTL)靠地平面回流,地线上稍微有点噪声,信号就废了。

差分信号就不一样。它用两根线传:一根叫A(正),一根叫B(负)。信号是A和B的电压差。比如RS-485规定:

  • A比B高200mV以上 → 逻辑1
  • B比A高200mV以上 → 逻辑0

你想想看,外部干扰来了,它同时作用在A和B上。两根线绞在一起,干扰幅度几乎一样。差分接收器只看差值,干扰就被抵消了。这就是共模抑制。

核心要点:差分信号不依赖地平面,靠的是两根线之间的电压差。干扰是共模的,信号是差模的。接收器只认差值,不认绝对值。

我在项目中遇到过一件事。某次测试,太阳翼驱动机构一启动,通信就丢包。查了半天,发现是电机电缆和通信线走同一个线槽,电机启动时大电流在地线上产生了压降。单端信号的地电平被抬高了,但差分信号完全不受影响。后来我们把通信线换成RS-422,问题立刻消失。嗯,这就是实战经验。

3.2 RS-422 vs RS-485:选哪个?

这两个标准长得像,但性格不同。我习惯这么区分:

特性 RS-422 RS-485
驱动方式 单驱动,多接收 多驱动,多接收
最大节点数 1发10收 32个节点(标准)
通信方式 全双工 半双工
典型应用 点对点,或一主多从 多节点总线

说白了,RS-422是「一个人说,一群人听」。太阳翼驱动系统里,控制器和驱动机构之间,经常用RS-422。因为控制器是唯一的主设备,驱动机构只负责接收指令和回传状态。

RS-485则是「大家轮流说」。如果系统里有多个驱动机构需要互相通信,或者需要冗余控制,RS-485更合适。但要注意,半双工意味着同一时刻只能一个人发言,其他人得闭嘴。协议层要做好总线仲裁。

我的建议:如果系统只有一对节点,用RS-422。简单、全双工、不用考虑收发切换。如果节点超过两个,或者需要冗余,用RS-485。但一定要在协议里加防冲突机制。

3.3 总线拓扑:不是随便连就能用

很多人觉得,RS-485嘛,把A连A,B连B,完事。错!拓扑结构不对,信号反射能让你怀疑人生。

正确的做法是:总线型拓扑。所有节点挂在一根主干线上,分支线越短越好。

我见过最离谱的案例——有人把RS-485接成了星型。结果呢?信号在分支末端反射,叠加到主干上,波形惨不忍睹。通信距离超过10米就开始丢包。

正确的拓扑长这样:

终端电阻 ──┬── 节点1 ──┬── 节点2 ──┬── 节点3 ──┬── 终端电阻
           │           │           │           │
         分支线      分支线      分支线      分支线
         (极短)     (极短)     (极短)     (极短)

分支线长度,我建议控制在1米以内。实在不行,最多3米。超过这个数,信号反射会变得不可控。

3.4 终端匹配:阻抗不匹配的惨痛教训

这是物理层最容易踩的坑。没有之一。

为什么需要终端匹配?因为信号在电缆里传播,遇到阻抗突变就会反射。电缆的特性阻抗一般是120Ω(双绞线典型值)。如果总线末端是开路,信号反射回来,和后面的信号叠加,波形就变形了。

终端匹配的方法很简单:在总线两端各接一个120Ω电阻,从A到B。

注意:电阻必须接在总线的物理末端,不是随便哪个节点。而且只接两端,中间节点不要接。接多了,驱动器的负载太重,信号幅度不够。

我曾经在一个项目中吃过亏。某型号太阳翼驱动机构,地面测试一切正常。上了振动台,通信开始间歇性故障。排查了三天,最后发现是终端电阻焊点虚焊。振动时电阻接触不良,阻抗不匹配,信号反射导致误码。从那以后,我要求所有终端电阻必须用双焊点,并且做振动前后的阻抗测试。

还有一个细节:如果总线长度很短(比如小于10米),有时候不接终端电阻也能工作。但我不建议这么做。航天产品讲究的是余量。你省了一个电阻,可能换来一次在轨故障。不值得。

3.5 实战中的阻抗匹配检查清单

每次做物理层调试,我都会按这个清单走一遍:

  1. 测直流电阻:断开所有节点电源,用万用表量A-B之间的电阻。如果两端都接了120Ω,应该测到60Ω(两个120Ω并联)。如果只接了一端,是120Ω。如果开路,说明没接或者断了。
  2. 看波形:用示波器看接收端的差分波形。理想的波形应该是方波,过冲和振铃不超过信号幅度的10%。如果看到明显的振铃,说明阻抗不匹配。
  3. 检查分支:用TDR(时域反射计)看总线上的阻抗变化。如果有明显的阻抗突变点,大概率是分支太长或者接头质量差。
  4. 共模电压:测A和B对地的电压。RS-485要求共模电压在-7V到+12V之间。如果超出这个范围,接收器可能无法正常工作。

一句话总结:差分信号是物理层的基石,总线拓扑决定信号质量,终端匹配是最后的防线。这三样搞不定,上层协议写得再好也是白搭。

下一章,咱们聊聊RS-422/485的电气特性细节——驱动器的输出能力、接收器的输入灵敏度,还有那些容易被忽略的失效保护偏置。这些东西,数据手册上不会告诉你,但实战中天天遇到。