历史上的今天
今天是:2025年06月05日(星期四)
2019年06月05日 | CAN/RS-485总线的终端电阻应如何设置?
2019-06-05 来源:CNTR
终端电阻的作用是消除信号反射,但其实并不是所有情况都需要终端电阻,有时终端电阻反而会影响信号质量。本篇文章为大家深度解析CAN/RS-485总线的终端电阻设置。
如果我们查询百度百科,终端电阻的档案似乎十分清白:

仿佛在通讯链路的首末两端加上这样一个法宝,即可避免信号的反射,使信号的传播更为顺畅。这样说虽然没有错误,但仍有些细枝末节没能捋出头绪。下面让我们来看看CAN总线和485总线中终端电阻的情况如何?
一 CAN总线

CAN总线中,终端电阻是必不可少的。它存在的意义主要包括两点:
可以确保电平快速进入隐性状态;
提升信号质量。
1、确保电平快速进入隐性状态
在显性状态期间,总线的寄生电容会被充电,而在恢复到隐性状态时,这些电容需要放电。如果CANH、CANL之间没有放置任何阻性负载,电容只能通过收发器内部的差分电阻放电。我们在收发器的CANH、CANL之间加入一个220PF的电容进行模拟试验,位速率为500kbit/s,波形如下图所示。

CAN总线 220pf无终端电阻

CAN总线 220pf增加终端电阻
2、提高信号质量
信号在较高的转换速率情况下,信号边沿能量遇到阻抗不匹配时,会产生信号反射;传输线缆横截面的几何结构发生变化,线缆的特征阻抗会随之变化,也会造成反射。
在总线线缆的末端,阻抗急剧变化导致信号边沿能量反射,总线信号上会产生振铃,若振铃幅度过大,就会影响通信质量。在线缆末端增加一个与线缆特征阻抗一致的终端电阻,可以将这部分能量吸收,避免振铃的产生,如下图所示。

CAN总线无终端电阻

CAN总线增加终端电阻
二 485总线

1、RS-485总线增加终端电阻好处
485总线设置终端电阻主要是为了用来抑制信号的反射。
提高信号质量组建RS-485总线网络时,通常使用特性阻抗为120Ω的屏蔽双绞线,由于RS-485收发器输入阻抗一般较高(例如RSM485ECHT输入阻抗为96kΩ,最多可连接256个节点),在信号传输到总线末端时会由于受到的瞬时阻抗发生突变(以RSM485ECHT为例,阻抗由120Ω变为96kΩ),导致信号发生反射,影响信号的质量。RSM485ECHT在1200m,500kbps通信速率的情况下不加终端电阻和加终端电阻的波形如下图所示,终端电阻明显改善了信号的质量。

RSM485ECHT 1200m 500kbps不加终端电阻

RSM485ECHT 1200m 500kbps 加终端电阻
2、RS-485增加终端电阻的问题
终端电阻虽然可以提高信号质量,但还具有以下几个问题:
降低了驱动信号的幅值
RS-485总线上的负载越大,RS-485收发器输出差分电压幅值越低,RSM485ECHT在5m,500kbps的情况下不加终端电阻和加终端电阻的波形如下图所示。

RSM485ECHT 5m 500kbps 不加终端

RSM485ECHT 5m 500kbps 加终端
增大了通信线上的压降
增加终端电阻使通信线缆上的电流增大,产生了较大的压差,降低了接收端的信号幅值。RSM485ECHT在1200m,115.2kbps首端和末端的信号波形如下图所示(0.75mm2通信线),末端信号与首端信号相比下降了0.7V左右。

RSM485ECHT 1200m 115.2kbps 加终端电阻 首端波形

RSM485ECHT 1200m 115.2kbps 加终端电阻 末端波形
增大了收发器的功耗
增加终端电阻对于接收状态时的工作电流影响不大,但会大大增加驱动状态时的工作电流。以RSM485ECHT为例,RSM485ECHT处于接收状态时工作电流为20mA左右,在驱动状态不加终端电阻时工作电流为27mA左右,在驱动状态加终端电阻时工作电流为83mA左右,可以看出终端电阻大大增加了RS-485收发器的功耗,对于有功耗要求的应用场合,应谨慎使用终端电阻。
3、RS-485终端电阻设置
通信速度低或者通信距离近的情况下建议不加终端电阻
通信速度低或者通信距离近的情况下,信号反射对通信信号的影响不大,而且不加终端电阻可以大大降低功耗,并且通过加较大上下拉电阻值即可保证RS-485总线空闲时具有较高的差分电压幅值,提高了通信的可靠性。
通信距离较长且通信速度较快,对信号质量要求较高的情况
此时可以增加终端电阻,防止阻抗突变引起的信号反射问题,提高信号质量,但应确保在总线空闲时总线的差分电压不处于门限电平范围内。
对功耗有要求且通信距离较长的情况
反射信号在总线上来回反弹,反射信号会逐渐消耗掉。

RSM485ECHT 1200m 9600bps 不加终端 首端波形

RSM485ECHT 1200m 9600bps 不加终端 末端波形
三 总结
对于CAN总线而言,为保证通讯的稳定性,必须增设终端电阻;RS-485总线不一样。终端电阻的设置需要根据情况而设置,在设计建议预留终端电阻位置或者使用ZLG致远电子隔离收发器系列产品,能有效解决总线干扰、通信异常等问题。与传统的设计相比,其内置完整的隔离DC-DC电路、信号隔离电路、总线收发电路以及防护电路,具备更高的集成度与可靠性,适用于需要高稳定性通讯的场合,能够有效帮助您提升总线通信防护等级。

史海拾趣
|
学习单片机需要掌握的硬件问题,大家一起分享 就单片机学习过程中硬件设计方面的几个基本问题一起分享 1、电阻电容的封装形式如何选择,有没有什么原则?比如,同样是 104 的电容有 0603、0805 的封装,同样是 10uF 电容有 3216、0805、3528 ...… 查看全部问答> |
|
施耐德触摸屏XBTGT5330之COM1或COM2口进行串口通讯得进 想利用XBTGT5330的COM口(com1或com2口)与第三方厂家的仪表进行串行通讯 该第三方的通讯协议符合modbus协议。其具体协议数据格式为: 开始符 指令代码 ...… 查看全部问答> |
|
我的ARM开发板通过串口连接的GPRS MODEM上网,它也有以太网口,我想把接收的GPRS数据转发到以太网口上(它所在的局域网),请问难不难啊。… 查看全部问答> |
|
1 .MOV A,Rn 寄存器内容送入累加器2 .MOV A,direct 直接地址单元中的数据送入累加器3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器4 .MOV A,#data 立即数送入累加器5 .MOV Rn,A 累加器内容送入寄存器6 .MOV Rn,direct 直接地址单元中的数据送入寄 ...… 查看全部问答> |
|
C6455 TCP2中TCPIC0~15有一半的寄存器写不进去 在CCS3.3下,查看寄存器的值,发现TCP2中TCPIC0~TCPIC15中,有一半的寄存器不能write,分别是TCPIC(1,3,5,7,9,11,13,15),是因为哪个控制器锁住了吗? 情况紧急,请求各位帮助,谢谢!… 查看全部问答> |
|
LPC1500体验+(4)使用SWM将功能动态分配到任意引脚 本帖最后由 mars4zhu 于 2014-9-23 11:14 编辑 LPCXpresso1549试用报告——(3)使用SWM将功能动态分配到任意引脚 文档编号AN-0001-A0关键字LPCXpresso1549, LPCOpen, LPC1549, Keil MDK, ARM Cortex-M, SWM, 功能分配任意引脚摘要本文记 ...… 查看全部问答> |
|
谷歌本周宣布推出一项新功能,帮助用户通过桌面平台的搜索引擎去寻找丢失的Android手机。如果希望使用这一功能,用户需要知道自己的电脑在何处。谷歌同时表示,用户需要安装最新版谷歌Android应用才能使用这一功能。在升级之后,当用户在谷歌搜索引 ...… 查看全部问答> |
|
51单片机的程序计数器PC的16位的也就是65536 ARM的程序计数器是32位也就是4G的空间地址 如何理解这写内容呢? PC指针是否就限制了程序的大小呢,或者说是程序的长短。 以STC89C52为例 程序存储空间是8K PC的最大数是65536。 … 查看全部问答> |
|
import pyb import time from pyb import Pin,Timer from DHT11 import DHT11 S=DHT11(\'Y2\') A=\'\' def f(t): global A,S pyb.LED(1).toggle() ...… 查看全部问答> |




