RS-485 总线设计检查
节点数按单位负载算,不是按设备数。两端终端之后还要偏置,否则空闲态没有确定电平;线长和波特率也在互相挤占。
总线结论
可以通信当前线长 300 米在经验范围内;偏置电流约 3.33 mA,两端驱动器要能长期提供。
收发器对照
| 型号类型 | 输入阻抗 | 单位负载 | 理论最多节点 |
|---|---|---|---|
| 标准 1 UL(MAX485、SN75176) | 12 kΩ | 1 UL | 32 |
| 1/4 UL(MAX487、SP485) | 48 kΩ | 0.25 UL | 128 |
| 1/8 UL(MAX3485、THVD1450) | 96 kΩ | 0.125 UL | 256 |
理论节点数没算电缆电容和偏置电流。节点越多,总线电容越大、上升沿越缓,实际能挂的数量会低于表里的数。
终端与偏置取值
| 方案 | 等效负载 | 每端偏置 | 说明 |
|---|---|---|---|
| 5 V + 双端 120Ω | 60 Ω | ≈ 720 Ω | 最常用,空闲差分 200 mV |
| 3.3 V + 双端 120Ω | 60 Ω | ≈ 430 Ω | 偏置电流更大,注意驱动器能力 |
| 单端终端 | 120 Ω | ≈ 2.4 kΩ | 不推荐,反射抑制不完整 |
使用说明
偏置电阻按「空闲差分 ≥ 200 mV」算,这是收发器能可靠识别空闲态的下限。实际留到 250–300 mV 更稳,代价是静态电流变大。
上升时间用驱动器内阻 50Ω 与终端等效电阻并联后乘总线电容估算,只用来判断趋势。真实值受驱动器压摆率、分支和屏蔽层接地影响,最终要拿示波器看。
屏蔽层建议单点接地,两端都接地会形成地环流,反而把干扰引进来。长线还要考虑共模范围:标准收发器是 −7 V 到 +12 V,地电位差超过这个范围就会损坏或误码。
相关工具:Modbus 帧解析、串口波特率误差、CAN 位定时计算。
常见问题
为什么 RS-485 总说 32 个节点,实际又能挂更多?
32 是「单位负载」的上限,不是设备数。标准收发器 1 UL 相当于 12 kΩ 输入阻抗,32 UL 就是总线负载上限;用 1/4 UL 的收发器,每个只占 0.25,理论上能挂 128 个。但线长和总线电容会先到极限。
两端 120Ω 终端是必须的吗?
超过几米、波特率上千赫兹就必须要。终端的作用是吸收反射,只在总线两个物理末端各接一只,中间节点不能接。星形或 T 形分支会出现阻抗不连续,终端也救不了。
为什么加了终端还要偏置电阻?
所有节点都处于接收态时,总线是高阻,A/B 之间的差分电压接近 0,接收器输出会在逻辑门限附近乱跳,主站可能收到假起始位。偏置电阻把 A 拉高、B 拉低,让空闲态稳定在 200 mV 以上。
偏置电阻为什么是 680Ω、720Ω 这种值?
两端终端并联成 60Ω,要让差分电压至少 200 mV,回路电流至少 3.33 mA。5 V 供电时,两只偏置加 60Ω 的总电阻不能超过 1.5 kΩ,所以每只大约 720Ω。3.3 V 系统要重新算,值会更小。
线长和波特率怎么取舍?
经验线是「波特率 × 线长 ≤ 10⁷」:9600 bps 可以到 1000 米,115200 bps 只剩约 87 米。这是理想条件,实际还要看电缆质量、节点数和分支。超过就降速、加中继,或者改光纤。
A/B 接反会怎样?
接反不会烧,但差分极性相反,空闲态和显性位都反了,表现为完全收不到数据或者全是错误帧。不同厂家的 A/B 标注本来就不统一,调试时先拿万用表量空闲差分电压。