
做嵌入式、搞工控的,几乎都跟 RS-485 打过交道。画原理图时,有两颗电阻绕不开:终端电阻 和 上下拉电阻。
很多工程师对这两个"R"傻傻分不清:不都是电阻吗?接在 A/B 线上不就行了?甚至有人问------"它俩能不能只加一种?"
答案是:不能互相替代。
简单说,它俩管的是两件完全不同的事:
- 终端电阻 :管的是"高速信号到了线尾别反弹回来",解决反射问题;
- 上下拉电阻 :管的是"没人说话时总线电平要确定",解决空闲误码问题。
一个管"动态",一个管"静态"。用错了,485 通信要么长距离乱码,要么一空闲就收垃圾数据。今天这篇,把这两个电阻的作用、接线方法和注意事项一次讲透。
一、先记住结论:两者完全不同
| 对比项 | 终端电阻 | 上下拉(偏置)电阻 |
|---|---|---|
| 阻值 | 120Ω(固定) | 390Ω ~ 10kΩ(按需选取) |
| 接法 | 跨接在 A、B 之间 | A 线上拉 到 VCC,B 线下拉到 GND |
| 位置 | 总线首尾两端各一个 | 任意一处(通常主站端)即可 |
| 解决什么问题 | 阻抗匹配、消除信号反射 | 空闲态电平确定、防误收乱码 |
| 没有它会怎样 | 长线高速时波形振铃、数据错乱 | 总线空闲时电平漂移、收垃圾字节 |
| 本质 | 吸收信号能量 | 提供直流工作点 |
记住三句话:
终端电阻 120Ω、跨 A-B、只加两端 ;
上下拉电阻 A 上拉、B 下拉、只加一处 ;
终端管反射,偏置管空闲,谁也替代不了谁。
二、终端电阻:给高速信号一个"不反弹"的终点
1. 信号为什么会反射?
RS-485 走的是差分信号 ,靠双绞线传输。双绞线的特性阻抗约 120Ω。信号本质上是电磁波,当它沿总线传播到线缆末端时:
- 如果末端阻抗恰好等于 120Ω,能量被完全吸收,信号"平静地结束";
- 如果末端开路 (什么也没接,阻抗无穷大),信号无处可去,就全部反射回起点;
- 反射波与原信号叠加,就会在波形上产生过冲、振铃,导致接收器误判电平,数据错乱。
线越短、速率越低,反射影响越小;线越长、速率越高,反射越致命。这就是为什么"两根线怼脸通信没问题,一拉到 100 米就乱码"。
2. 终端电阻的作用
在总线**物理最远端(末端)**跨接一个 120Ω 电阻,让线缆末端阻抗等于特性阻抗,信号能量被电阻吸收,不再反射。

注意上图的要点:一个 RS-485 总线网络,只在最前端和最末端各接一个 120Ω 终端电阻,中间设备一律不接。整条总线从一端看过去,等效于一个 120Ω 的传输线负载。
为什么是 120Ω? 因为 RS-485 标准规定线缆特性阻抗为 120Ω,终端电阻必须与之匹配。这也是行业里"120Ω"成为约定俗成的原因。
3. 接线方法
- 采用手拉手(菊花链)拓扑:主站 → 从站 1 → 从站 2 → ... → 最后一个从站;
- 在主站端的 A-B 之间并一个 120Ω;
- 在最后一个从站端的 A-B 之间并一个 120Ω;
- 中间节点只并接芯片,不加终端电阻;
- 如果用的是带拨码的 RS-485 模块/转换器,找到标着 120Ω / TERM / 终端 的拨码开关,把首尾两台设备的对应开关拨到 ON 即可,不用自己焊电阻。
4. 怎么验证接对了?
万用表测电阻法(断电测量) :在总线中间任意位置,用万用表量 A-B 之间的直流电阻。
- 两个终端电阻并联:120Ω ∥ 120Ω = 约 60Ω ✅ 正确
- 测得约 120Ω:只接了一端 ❌ 少一个
- 测得约 0Ω 或很小:短路了 ❌
- 测得无穷大:一个都没接 ❌
注意:测量前必须断开所有设备电源。带电测总线电阻不仅不准,还可能损坏万用表或接口芯片。
三、上下拉电阻:给空闲的总线一个"确定的态度"
1. 空闲时总线在"裸奔"
RS-485 是半双工多点总线 ,主站采用轮询方式通信。当主站没有发数据、从站也没有应答时,所有节点的收发器都处于释放状态 ------驱动器输出是高阻,A、B 两线相当于悬空。
悬空意味着什么?电平由漏电流、外界干扰随机决定。此时接收器输入端飘忽不定:
- 可能收到随机乱码(0x00 / 0xFF 乱跳);
- 可能丢失第一个字节------很多 USB-485 转换器在空闲时乱码,主机一启动就收到垃圾头;
- 干扰一耦合进来,接收器输出就误翻转,产生假数据、假中断。
这就像一群人都不说话时,会场里没人维持秩序,谁咳嗽一声大家都以为是发言。
2. 上下拉电阻的作用
给 A、B 两线各加一个偏置电阻,形成一个确定的直流工作点:
- A 线上拉到 VCC(比如 +5V);
- B 线下拉到 GND。
于是总线空闲时,A 被强制拉高、B 被强制拉低,A-B 的差分电压稳定为正(≥ 200mV) ,接收器读到的是一个确定的逻辑 1(空闲态),而不是随机电平。

3. 接线方法
典型的偏置接法:
VCC(+5V) ──┬── R上拉(390Ω~1kΩ) ── A 线
│
└────────────────────── 收发器
│
GND ──────┬── R下拉(390Ω~1kΩ) ── B 线
- 上拉电阻一端接 VCC,另一端接 A;
- 下拉电阻一端接 GND,另一端接 B;
- 全总线只需加一处(推荐放在主站端),不需要每台设备都加;
- 如果设备内部已有偏置电路,则不要再重复外接(看规格书确认)。
阻值怎么选? 原则是:偏置要"强"到能克服终端电阻的分流,把 A-B 电压拉到 200mV 以上,但又不能太小以免浪费功耗、加重驱动器负担。
举个典型计算(5V 系统、两端各带 120Ω 终端):
- 终端电阻在 A-B 间等效为 120Ω∥120Ω = 60Ω;
- 若上拉、下拉都取 390Ω ,回路电流 I = 5V ÷ (390+60+390) ≈ 5.95mA;
- 此时 A-B 差分电压 = 5.95mA × 60Ω ≈ 357mV > 200mV ✅
所以带终端电阻的长线场合,偏置常用 390Ω ~ 680Ω ;如果线很短、没加终端电阻 ,偏置可以放宽到 1kΩ ~ 10kΩ (此时 A、B 间无 60Ω 分流,轻微偏置就能建立确定电平)。工程上大量现成模块内部固定用 560Ω / 680Ω / 1kΩ 上拉下拉,就是这个道理。
四、为什么它俩不能互相替代?
很多人想:"反正都是让信号稳一点,我多加几个 120Ω 终端电阻,不也一样吗?"
完全不一样:
- 终端电阻解决不了空闲悬空。 终端电阻是跨在 A-B 之间的,它只给差分信号提供吸收路径,并不会把 A、B 拉向确定电位。总线空闲时,A、B 依然一起"飘",终端电阻对此毫无帮助。
- 上下拉电阻解决不了反射。 偏置电阻阻值是 kΩ 级,对高速信号边沿来说阻抗很高,几乎起不到末端匹配作用。信号该反射还是反射。
终端管动态(信号沿),偏置管静态(空闲电位),两者各司其职,缺一不可。
实际项目中,最稳的组合是:长线 + 高速率 → 两端终端电阻必须加;任何速率 → 总线最好有一处偏置(很多芯片内部已带,需确认)。
五、完整接线:一张图看懂

对照上图自查一个标准网络:
- 总线拓扑:手拉手菊花链,严禁星型;
- 终端电阻:首尾两端各 120Ω(拨码开关或贴片电阻);
- 偏置电阻:主站端 A 上拉 VCC、B 下拉 GND,一组即可;
- 中间从站:只接 A/B 到收发器,不加终端、不加偏置(除非规格书要求);
- 支线尽量短(< 30cm),越短反射越小;
- 用 120Ω 特性阻抗的屏蔽双绞线,屏蔽层单点接地。
六、注意事项与避坑清单
⚠️ 1. 终端电阻不是越多越好
只在首尾加两个。 中间设备如果也接了终端电阻,多个 120Ω 并联会把总线阻抗越拉越低,驱动器负载过重,信号幅度被压垮,反而通信失败。
⚠️ 2. 也不能一个都不加
总线较长(> 10m)或速率较高(≥ 115200bps)时,不加终端电阻几乎必然出现振铃和误码。"近距离能通"不代表"远距离能通",别拿样板间经验套现场。
⚠️ 3. 加偏置前先确认设备有没有内置
很多成品 RS-485 转换器、传感器、PLC 扩展模块内部已经集成了偏置电阻甚至终端电阻。如果没看规格书就在外部又加一组,会导致:
- 终端电阻重复并联,总线阻抗过低;
- 偏置重复,静态电流过大、A-B 电压失衡。
先查规格书,再决定要不要外接。 很多模块上会用跳线帽/拨码开关提供"终端使能""偏置使能"选项,用开关控制比焊电阻更灵活。
⚠️ 4. 偏置电阻不是越小越好
偏置太小(比如 100Ω),静态电流大、发热,且发送时驱动器要克服偏置网络,驱动负担重;偏置太大(比如 100kΩ),几乎拉不动电平,起不到偏置作用。在 390Ω~10kΩ 之间按需选择,别走极端。
⚠️ 5. 空闲电压可以量出来
给系统上电、所有设备都不发送数据时,用万用表直流档量 A-B 间电压:
- 正常:+0.2V ~ +5V 之间,稳定为逻辑 1(有偏置);
- 接近 0V 或乱跳:没有偏置或偏置失效,空闲态不确定;
- 为负值:A/B 可能接反了。
⚠️ 6. A/B 不要接反
偏置网络是极性敏感 的:A 必须上拉、B 必须下拉。如果有一台设备的 A/B 接反,它的偏置方向就反了,会把总线空闲电平往反方向拉,轻则这台设备通信异常,重则拖垮整条总线。接线时全网络统一 A 对 A、B 对 B。
⚠️ 7. 高速长距离时注意线缆与接地
终端电阻不是万能的,它只解决反射。高速长距离还要配合:
- 屏蔽双绞线,屏蔽层单点接地(避免地环路);
- 信号线与动力线间距 ≥ 30cm;
- 必要时加 TVS / 共模扼流圈做端口防护。
⚠️ 8. 半双工切换与首字节丢失
对于自己用 GPIO 控制收发方向的半双工方案,从发送切换到接收的瞬间 总线最容易因空闲电平不确定而丢第一个字节。这时偏置电阻几乎是必须的------它保证切换后总线立即处于确定的空闲态,而不是等收发器稳定。
七、总结
| 场景 | 终端电阻(120Ω ×2) | 上下拉电阻(一组) |
|---|---|---|
| 短距离(< 10m)、低速 | 可不加,但建议加 | 建议加 |
| 长距离(> 100m) | 必须加 | 必须加 |
| 高速(≥ 115200bps) | 必须加 | 必须加 |
| 半双工频繁切换收发 | 视距离 | 强烈建议加 |
| 现成模块/转换器 | 看规格书,用拨码开关 | 看规格书,很多已内置 |
最后再强调一遍最核心的三条:
- 终端电阻 :120Ω,跨 A-B,只加总线首尾两端,管信号反射;
- 上下拉电阻 :A 上拉 VCC、B 下拉 GND,加一处即可,管空闲电平;
- 动手之前先查规格书,别和模块内置的电阻"叠罗汉"。
搞懂了这两个电阻,RS-485 组网就成功了一大半。下次再遇到"空闲乱码"或"长线误码",先别怀疑芯片,量一量终端电阻、看一看偏置电压,问题往往就出在这两颗不起眼的电阻上。