RS485 为什么需要上下拉电阻
RS485 是半双工差分总线 ,A、B 两根线在无节点发送时处于高阻态(浮空),这就会带来几个关键问题,必须靠上下拉解决:
1. 防止总线浮空,避免误码
- 无数据发送时,收发器输出高阻
- A、B 线浮空,容易受干扰、噪声影响
- 干扰会让差分电压在阈值附近抖动,导致芯片误判为起始位,产生乱码
上下拉电阻把总线强制拉到固定的逻辑空闲电平:
- A 线接上拉电阻到 VCC
- B 线接下拉电阻到 GND这样空闲时:VA>VB⇒差分电压为正⇒逻辑1(空闲状态)
2. 保证总线空闲时是稳定的 "逻辑 1"
RS485 协议规定:
- 空闲状态必须是逻辑 1
- 没有上下拉时,空闲状态不确定
- 有了上下拉,才能正确识别起始位(逻辑 0)
3. 提高总线抗干扰能力
上下拉电阻相当于给总线提供直流偏置,降低高阻态对电磁干扰的敏感度,提升长线传输稳定性。
4. 配合终端电阻一起工作
实际应用中通常是:
- 终端电阻 120Ω:匹配阻抗,消除反射
- 上下拉电阻(常用 1kΩ~10kΩ):偏置空闲电平
两者功能不同,缺一不可。
如何选择合适的上下拉电阻
上下拉电阻选太大容易飘,选太小功耗炸、带载能力不够。
一、选型核心原则
RS485 上下拉(偏置电阻)的目标只有两个:
- 空闲时保证 VA>VB,稳定为逻辑 1
- 不影响总线带载能力、不增加过多功耗
二、阻值怎么选?
1. 推荐常用值(工程通用)
- 上拉 Rup:10kΩ
- 下拉 Rdown:10kΩ
这是最稳妥、兼容性最好的取值,绝大多数场合直接用就行。
2. 阻值范围
- 建议:4.7kΩ ~ 22kΩ
- 不推荐:
- <4.7kΩ:功耗太大,拉低总线电平,影响节点数
-
22kΩ:偏置太弱,抗干扰差,容易误码
三、必须考虑:终端电阻 120Ω 的影响
RS485 总线两端通常有120Ω 终端电阻,它会和上下拉并联。
等效并联电阻大概为:Req≈117Ω非常接近 120Ω,不会破坏阻抗匹配,这就是 10kΩ 合理的原因。
四、怎么简单判断合不合适?
满足下面这条就 OK:发送器10kΩ 上下拉在 3.3V/5V 系统里电流只有零点几毫安,完全安全。
五、如何计算差分电压
有120Ω匹配电阻时
根据偏置电阻计算空闲差分电压,核心是分析 上拉电阻、下拉电阻和终端电阻 构成的分压网络。下面以最常见的单点偏置(主控端)和双终端电阻为例,给出计算方法和公式。
1. 电路模型
· 电源 VCC(通常 5V 或 3.3V)
· 上拉电阻 Ru :A 线接 VCC
· 下拉电阻 Rd:B 线接 GND
· 终端电阻:总线两端各一个 R_t (通常 120Ω),在计算空闲状态时,两个终端电阻通过总线并联,等效为 Rteq = R_t / 2
· A 与 B 之间通过 Rteq连接
2. 等效电路化简
将电路转化为两个节点(A 和 B),它们之间跨接 Rteq}
A 节点通过 Ru接 VCC,B 节点通过 Rd 接 GND。
设 A 点电压 V_A ,B 点电压 V_B 。
根据节点电流法(或分压关系),可以得到:
V_A = VCC *(Rteq + Rd)/(Ru+ Rteq+ Rd)
V_B = VCC *Rd/(Ru+ Rteq+ Rd)
3. 差分电压
VOD = V_A - V_B = VCC*Rteq/(Ru+ Rteq+ Rpd)
5. 多点偏置的简化处理
若总线上多个节点都加了偏置电阻,则将所有 Ru并联为一个等效上拉电阻 Rueq,所有 Rd并联为等效下拉电阻 Rdeq},代入上述公式即可。
6. 注意事项
· 如果只有一端有终端电阻(非标准用法),则 Rteq=R_t 。
· 空闲差分电压应至少 200mV(标准要求),实际工程中常设计在 0.5V~2V 之间。
· 偏置电阻过小会增加驱动器负载,可能导致通信异常,需综合考虑节点数和总线长度。
无120Ω匹配电阻时
当总线上没有120Ω终端电阻时,A和B线之间没有直接的电阻通路,空闲差分电压的计算会有所不同。此时,总线仅通过偏置电阻上拉至 V_{CC} 和下拉至 GND,同时接收器输入阻抗(通常 ≥12kΩ)可视为高阻,基本不影响直流偏置。
若实际电路因接收器输入阻抗或其他负载导致电压略低于 VCC,可使用万用表直接测量 A、B 线对地电压后相减得到精确值。
当两个节点的上拉电压分别为5v和3.3v时
当总线上存在不同电源电压(如 5V 和 3.3V)的上拉时,空闲差分电压需通过叠加原理或节点电压法计算。下面以常见情况(两个节点均有上拉/下拉,无终端电阻)为例,给出计算方法。
1. 电路模型
假设:
· 节点1:A线经 Ru1上拉至 5V,B线经 Rd1下拉至 GND。
· 节点2:A线经 Ru2上拉至 3.3V,B线经 Rd2下拉至 GND。
· 无终端电阻(A、B之间无直流通路)。
此时,A线的等效电路为两个电压源(5V和3.3V)通过各自上拉电阻并联;B线为两个下拉电阻并联接地。由于A、B之间无直接电阻连接,A点电压仅由上拉网络决定,B点电压仅由下拉网络决定。
2. 计算A点电压
将两个上拉支路等效为戴维南电路:
VAeq=(5/Ru1 + 3.3/Ru2)/【1/Ru1+ 1/Ru2】
由于A点空载(无终端电阻),实际 V_A = VAeq。
示例:取 Ru1=Ru2=1k,则
V_A =4.15V
3. 计算B点电压
B点只有下拉电阻到地,因此:
RBeq = 1/【1/Rd1 + 1/Rd2】
B点电压 V_B = 0V(因为下拉直接接地,无其他电源)。实际中,若下拉电阻不是直接接地而是通过其他电路,则需单独计算,但典型RS-485偏置中下拉直接接地,所以 V_B=0V。
4. 差分电压
VOD= V_A - V_B = V_A
按上例,VOD= 4.15V,远大于200mV要求。
5. 若有终端电阻
若总线上接有 Rt(通常120Ω),则A和B之间通过 Rt 连接(或者两端各一个,等效为 Rt/2),此时必须联立方程计算。
设等效上拉网络(戴维南)为 VAeq、RAeq,等效下拉网络为 VBeq=0、RBeq},终端电阻为 Rteq。则:
V_A = VAeq*(RBeq+Rteq)/{RAeq+RBeq+Rteq}
V_B = VAeq*(RBeq)/{RAeq+RBeq+Rteq}
差分电压 VOD=V_A-V_B = VAeq* Rteq
/{Rteq+RAeq+RBeq}。
6. 注意事项
· 电流倒灌:当不同电源通过上拉电阻并联时,电压较高的电源会向电压较低的电源灌电流,但只要电阻足够大(通常1kΩ以上),电流很小,不会损坏器件。
· 实际测量:理论计算后,建议用示波器或万用表实测A、B线对地电压,以验证实际焊接和接触情况。
· 标准要求:空闲时差分电压应≥200mV。混合电源时通常都能满足,但若偏置电阻过大(如10kΩ),终端电阻又存在,可能使差分电压过低。