各位工程师想必都知道
终端电阻的作用是消除信号反射,但其实并不是所有情况都需要终端电阻,有时终端电阻反而会影响信号质量。本篇文章为大家深度解析
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
电路、信号隔离电路、总线收
发电路以及防护电路,具备更高的集成度与可靠性,适用于需要高稳定性通讯的场合,能够有效帮助您提升总线通信防护等级。
四:怎样检测CAN总线上的终端电阻阻值
终端电阻是为了消除在通信电缆中的信号反射,在通信过程中,有两种原因导致信号反射:阻抗不连续和阻抗不匹配。阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。 消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻。 引起信号反射的另外一个原因是数据收发器与传输电缆之间的阻抗不匹配。这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱。 为了提高网络节点的拓扑能力,CAN总线两端需要接有120Ω的抑制反射的终端电阻, 它对匹配总线阻抗起着非常重要的作用,如果忽略此电阻,会使数字通信的抗干扰性和可靠性大大降低,甚至无法通信。 不合适的CAN总线终端电阻导致的错误 CAN总线ISO 11898协议规定,CAN总线必须在网络的两端,通常是网络主控制器和网络最远端的节点之间安装合适的总线终端电阻(在位于DB-9接口的第2和第7引 脚的CAN_H和 CAN_L信号线之间安装一个120欧姆的电阻)。详细请参考相关链接部分“为NI-CAN硬件安装合适的终端电阻”,更为详细地了解如何为NI-CAN 网络安装终端电阻。在没有安装合适的终端电阻的情况下,通信可能会出现下面非预期的行为: 在低波特率的情况下能够正确通信,但是在波特率较高时会出错(具体出错的波特率的值取决于一系列因素,包括CAN网络长度、数据帧上携带的数据----它能够改变具体传输的最高频率以及网络附近的电磁干扰等等)。 值得注意的是,在安装了合适的终端电阻的情况下,通信总是正常的。但是在40K较低的波特率下,通信仍然是正常的,因此这点是不符合CAN ISO 11898规范的地方。 CAN错误 - Form错误、CRC错误、Bit错误、Stuff错误和其他由于不合适终端电阻所导致的错误。如果出现这些错误,则请按照附件中的知识库文章来检验是否 安装了合适的终端电阻。更多短语CAN错误的信息,请参考相关链接一栏中的NI-CAN硬件和软件用户手册(附录B包含了一个CAN标准的总结,并包含一 个叫“CAN错误检测与约束”,该章节详细描述了CAN错误)。 Stuff错误就是一个可以用没有合适的终端电阻来解释的CAN错误(这个错误在CAN ISO 11898规范中进行了定义)。当总线上连续出现6位相同的数据时,就会发生Stuff错误。当发送器件检测到连续5位相同的数据时,就会自动在数据流后面插入一个完成停止位,这个位会 被所有的接收器件检测到并自动去除掉。这个填充位的策略能够保证数据流中有足够的信号沿,从而保证同一个数据帧中的数据同步。如果接收器件检测到连续6位 相同的数据位,那么一定是由于同步丢失,导致接收到的数据与发送的数据不相同。而在没有合适的终端电阻的情况下,就会发生这样的事情,数据帧中的某些数据 能够正确地接收和发送,而在接收的CAN接口处,整个帧(或者数据帧的完整性)没有正确的保持和被接收。出现这种情况的原因是,一般来说CAN网络定义传输线,根据传输线理论,如果在接收端没有合适的终端电阻,那么足够高频率的信号在执行长度的传输线上是不 能正确被传输的。这里的终端电阻一般指网络匹配,该负载一般选择使传输功率最大,并且其值等于网络端口阻抗共轭值(这里指的是接收端的CAN接口,实际 上,考虑到噪声和其他影响,许多应用中常使用不一样的终端电阻)。 值得庆幸的是,在CAN ISO 11898规范中,已经将整个CAN网络的终端电阻简化为在网络两端安装两个120欧姆的电阻(就如同第一部分描述的一样,这完全符合CAN标准)。
五:如何用万用表测量CAN总线
检测提示 ● 电压检测 (
示波器):电压检测的前提条件是,蓄电池已连接并且点火开关已接通。 ● 电阻测量:在电阻测量时,在测量前必须把待测部件断电。为此应断开车辆蓄电池的接线。等待约3 分钟,直到系统中的所有
电容器放完电。 CAN总线 CAN (控制器区域网络) 总线系统是一种线形总线系统并具有以下特征: ● 信号双向传播。 ● 所有总线用户都接收同一个信息。每个总线用户决定,它是否利用该信息。 ● 通过简单并联即可添加附加的总线用户。 ● 此总线系统构成一个多主控单元系统。每个总线用户可以是主控单元也可以是副控制单元,根据其作为发射器还是接收器被连接而定。 ● 传输媒介是双线连接。导线的名称为:CAN Low (低速) 和 CAN High (高速) ● 原则上每个总线用户可以通过总线同所有其它总用户通信。通过干预法,控制总线上的数据交换。 数据总线 K-CAN (车身 CAN)、PT-CAN (传动系 CAN) 和 F-CAN (底盘 CAN) 之间的主要区别是: ● K-CAN:数据传输率约 100 kBit/s。可以进行单线运行。 ● PT-CAN:数据传输率约 500 kBit/s。不能进行单线运行。 ● F-CAN:数据传输率约 500 kBits/s。不能单线运行 主控单元 主控单元是主动式通信方,通信的主动权由它发出。主控制单元掌控总线,并控制通信。主控制单元能够在总线系统中向被动式总线用户 (副控制单元) 发送信息,并根据被动式用户的要求接收信息。 副控单元 副控制单元是一个被动式通信用户。副控制单元被要求接收和发送数据。 多主控单元系统 在一个多主控单元系统中所有的通信用户在某个时间都能够担当主控单元或副控制单元的角色。 示波器测量 为了弄清 CAN 总线是否完好工作,必须观察总线上的通信情况。在这种情况下不需要分析单个位,而只需要观察 CAN 总线是否工作。示波器测量说明:‘CAN 总线很可能无故障工作’。 如果用示波器测量 CAN 低 (或 CAN 高) 导线和接地之间的电压,则获得一个处于下列电压极限范围内的类矩形波信号: K-CAN: CAN Low (低速) 对地:U 最小 = 1 V,U 最大 = 5 V CAN High (高速) 对地:U 最小 = 0 V,U 最大 = 4 V 这些值都是近似值,根据总线上的负载可能有几个 100 mV 的偏差 测量 K-CAN:CH1 CAN 低,CH2 CAN 高 如果用示波器测量 CAN 低 (或 CAN 高) 导线和接地之间的电压,则获得一个处于下列电压极限范围内的类矩形波信号: PT-CAN 和 F-CAN: CAN Low (低速) 对地:U 最小 = 1.5 V,U 最大 = 2.5 V CAN High (高速) 对地:U 最小 = 2.5 V,U 最大 = 3.5 V 测量 PT-CAN:CH1 CAN 低,CH2 CAN 高 总线端测量 测量前提 : ● CAN 总线必须断电。 ● 不允许使用其它测量仪 (并联测量仪)。 ● 测量在 CAN-Low 导线和 CAN-High 导线之间进行。 ● 实际值允许与标准值有几欧姆的偏差。 K-CAN : 因为电阻根据控制单元内部的开关逻辑而变化,所以在 K-CAN 总线上不能进行规定的电阻测量! PT-CAN、F-CAN : 为了避免信号反射,在 2 个 CAN 总线用户上 (在 PT-CAN 网络中的距离最远) 分别连接一个 120 Ω 的终端电阻。这两个终端电阻并联,并构成一个 60 Ω 的等效电阻。关闭供电电压后可以在数据线之间测量这个等效电阻。此外,单个电阻可以各自分开测量。 通过 60 Ω 等效电阻进行测量的提示:把一个便于拆装的控制单元从总线上脱开。然后在插头上测量 CAN-Low导线和 CAN-High 导线之间的电阻。 提示! 并非所有车辆都在 CAN 总线上有终端电阻。可以根据相应的电路图检查,在连接的车辆上是否安装有
终端电阻。 CAN 总线失效 当 K-CAN 或 PT-CAN 数据总线失效时,在 CAN-Low 或 CAN-High 导线上可能存在短路或断路。或者某个控制单元已损坏。 为了查找故障原因,建议进行下列工作步骤: ● 将总线用户从 CAN 总线上依次拔下,直至找到故障原因 (= 控制单元 X)。 ● 检查通往控制单元 X 的导线是否短路或断路。 ● 如有可能,检测控制单元 X。 ● 如果某个控制单元至 CAN 总线的分支线短路,仅执行该工作步骤就成功了。如果 CAN
总线中的一条导线自身短路,则必须检查电线束。