
图 1:RS-485 接收器输入阈值
处理这种不确定状态的两种常见方法是:选择具有内置失效防护输入阈值的接收器,或者使用额外的外部电阻器在空闲总线上创建外部偏置。这两种方法都可确保总线上的逻辑高电平状态(对应于正差分电压)。
您不妨回头看看 RS-485 基础知识之接收器的博客文章,我在其中论述了如何实现内置失效防护输入偏置。简单来说,即衰减网络中产生的内部偏置电流在接收器比较器的输入端产生电压差。该解决方案的好处是,不会影响网络上所有收发器的负载。但需要注意的是,网络上的每个节点都需要内置此功能。对于现有装置或使用以前设计模块(可能不容易更新)的装置,内置此功能可能不切合实际。
处理空闲总线情况的第二种方法是使用两个外部电阻:一个从 A 端到 VCC,另一个从 B 端到地。请参阅图 2 中的两个红色电阻器。

图 2:失效防护电阻器的放置
如您所见,使用 RFS1 时,两个并联端接电阻 (RT) 和 (RFS2) 构成了一个简单的分压器电路。在整个网络中,您只需在一个节点(通常是主节点)上安装这些电阻器。 此外,RFS1 和 RFS2 设置为彼此相等,以便在 VCC 和地之间实现共模平衡。
公式 1 是计算这些失效防护电阻值的简单方法。使用产生已知状态 (+200mV) 的最小输入电压、等效并联端接电阻 (60Ω) 以及将组装失效防护电阻的节点的最小 VCC(我们使用 4.5V),求解简单的分压器方程:

代入 VFS = 200mV、Req = 60Ω 并设置 RFS1 + RFS2 = 2*RFS(因为我们将其设置为彼此相等),便得出:

如您所见,此解决方案的好处是只需要两个电阻器即可,并且适用于网络上的所有节点。但需要注意的是,两个 645Ω 电阻器会产生一个共模负载。如果您还记得本系列上一篇关于单位负载的文章,就会知道每个 RS-485 驱动器都需要处理 375Ω 共模负载(32 个并联单位负载),如图 3 所示。

图 3:32 个并联的单位负载产生一个共模负载
问题是,仅失效防护电阻器就会产生 645Ω 的共模负载。现在需要计算在出现 375Ω 共模负载之前可能存在的其他并联共模负载:

由于每个单位负载都可以近似为一个 12kΩ 的共模负载,因此在出现小于 896Ω 的共模负载之前,您只需计算并联的单位负载最大值:

这意味着,失效防护电阻器带来了相当于 18.6 (32-13.4) 个单位负载的共模负载,从而大大减少了网络上允许的总节点数。如您所见,两种处理空闲总线情况的方法各有利弊,因此您可以自行决定哪种方法更适合您的应用。