can总线电阻如何测量的终端电阻,为什么是120Ω?为什么是0.25W?

本文力求以图文并茂来接好CAN通讯协议的基础知识,希望能给有兴趣的朋友带来一些收获。

为了便于大家理解与接受,请先看一幅图:

简单地讲CAN总线就如上图1中两根粗黄线,其通讯原理:好比开一个电话会议,大家都拨进来了,这时会议的状态可能是:

  • 两人甚至多人同时开口了,但只会让另一人说,其他人听;
  • 有人睡着了,掉线了,电话卡顿了... ...
针对于上述各种情况,要保证这个电话会议的有序高效地进行,那么我们需要有一些约定俗成的规定或协议,大家都遵守。CAN总线通讯与这种电话会议形式有异曲同工之处,那么CAN总线通讯到底具体是怎么回事?接下来将以理论与实践相结合方法来介绍CAN通讯协议。
感谢前人引路,激励后人前行,先简要引自:
Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。由于其高性能、高可靠性以及独特的设计而越来越受到人们的重视,被广泛应用于汽车业、航空业、工业控制、安全防护等领域。随着CAN总线在各个行业和领域的广泛应用,对其的通信格式标准化也提出了更严格的要求。1991年CAN总线技术规范(/p/26
用来确认是否正常接收。由ACK槽(ACK Slot)和ACK界定符2个位构成。
图18 发送与接收时的ACK槽状态(引自[3])
表示该帧的结束的段。由7个位的隐性位构成。

/p/10 实际传输中,传输速率以每秒发送的符号(baud)数量进行计算,即波特率。 当一个符号只包含两种可能,即一个事件两种可能,那么此时1baud=1bit。此时波特率等于比特率。一个符号也有可能包含多个可能,例2中,一个符号中包含四个电平,那么接受端的一个事件,有了abcd四种可能,那么1baud=2bit。此时波特率为比特率的两倍。

第3部分讲到帧结构,我们知道每一帧数据(即一个完整的数据帧)有很多位组成,当发送方发送一帧数据到总线时,接收方怎么准确接收到这帧数据呢?实际采用逐位逐位地接收数据。
具体来说,将一个位分为4段,如上图所示。这些段又由可称为Time Quantum(以下称为Tq)的最小时间单位构成。1位分为4个段,每个段又由若干个Tq构成,这称为位时序。1位由多少个Tq构成,每个段又由多少个Tq构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。各段的作用和Tq数如下表:
所谓采样点是读取总线电平,并将读到的电平作为位值的点,位置在PBS1结束处。
CAN协议的通信方法为NRZ方式,各个位的开头或者结尾都没有附加同步信号。发送单元以与位时序同步的方式开始发送数据。另外,接收单元根据总线上电平的变化进行同步并进行接收工作。但是,发送单元和接收单元存在的时钟频率误差及传输路径上的(电缆/驱动器等)相位延迟会引起同步偏差,因此接收单元通过硬件同步或者再同步的方法调整时序进行接收。
在总线空闲状态,接收节点检测出帧起始(SOF位)时,会调整当前位的同步段,调整宽度不限。如下图假设这时检测的时SOF位。
那么硬同步简单说就是接收节点直接与发送节点同步(真有硬的味道),如下:

1)发送节点Node_A在发送SOF位时,SOF位的下降沿在SS段;
2)这个时候接收节点Node_B发现自己当前位的SS段和发送节点SOF位的SS段不同步。也就是说当Node_A
产生SOF位SS段时,Node_B的当前位的SS段已经在5个Tq之前产生了;
3)于是接收节点Node_B强行将自己当前位的SS段拉到与SOF位的SS段同步。
接收节点检测出除SOF位以外的其他位时,进行的同步调整。重同步会通过加长PSB1段,或缩短PBS2段来调整同步,以保证采样点的准确。
对于再同步,需一个概念SJW(同步跳转宽度),是指PSB1和PSB2再同步时允许跳转的最大宽度, 其必须满足以下2个条件:
  • SJW最大值不能超过4。

下面看一下再同步的两种情况:
情况1:PSB1段加长(发的晚,收的早)

1)发送节点Node_A比接收节点Node_B的时间慢了,也就是说Node_A当前位的ss段产生的时候,Node_B
当前位的ss段已经在2个Tq之前产生了;
2)所以这个时候接收节点Node_B就将PBS1延长2个Tq的时间;
3)于是这个时候Node_A当前位的采样点就和Node_B的采样点同步了。
情况2:PSB2段缩短(发的早,收的晚)

1)发送节点Node_A当前位的SS段诞生2Tq时长之后,接收节点Node_B的当前位才产生SS段;
2)于是,接收节点Node_B当前位的PBS2段缩短,
3)这样就会导致接收节点Node_B的下一位能够提前2个Tq,从而Node_B的下一位采样点和Node_A下一位

6.5 调整同步的规则

硬件同步和再同步遵从如下规则。

1) 1 个位中只进行一次同步调整。
2) 只有当上次采样点的总线值和边沿后的总线值不同时,该边沿才能用于调整同步。
3) 在总线空闲且存在隐性电平到显性电平的边沿时,则一定要进行硬件同步。
4) 在总线非空闲时检测到的隐性电平到显性电平的边沿如果满足条件(1)和(2),将进行再同步。
5) 发送单元观测到自身输出的显性电平有延迟时不进行再同步。
6) 发送单元在帧起始到仲裁段有多个单元同时发送的情况下,对延迟边沿不进行再同步。
本部分将根据Infineon的芯片手册对位时间如何计算和如何配置位时间的寄存器进行说明。
假设我们有一条需求:设置CAN通讯的波特率为500KBaud。
Infineon芯片手册提供的CAN总线位时间标准格式定义如下图,后面根据该定义进行求解。
设:晶振时钟周期频率为40MHz,转换为时间表示则为T=1/40MHz=25ns
我们已经NBT=16,假设我们采样点取在50%处,即有:
再根据下式计算SJW, 这里直接假设TSJW=3*tq能保证下式两个不等式成立(不在此处展开Tprope的讨论),那么SJW=2。
根据上节的计算结果进行位时间寄存器的配置,关于该寄存器的内容以及配置信息见下图。
经过上述配置,我们成功设置了CAN通讯的波特率为500KBaud。

7.3 补充:传输延迟时间tPTS

CAN报文在CAN总线上的传输时,物理延迟包含两个部分:
  • 在CAN-BUS上传输造成的延迟

按照CAN通信协议的规定,补偿给传播延迟的时间长度要至少等于实际实际传播延迟时长的2倍, 即:tPTS≥2×tdel=2×(tdel+tBus)
注意:在CAN总线通信系统中是以时间量子Tq来度量时间的,所以如果延迟补偿时间tPTS = 3.1Tq, 那么这个时候要取:tPTS = 4Tq。
凡本公众号注明“来源:XXX(非智车科技)”的作品,均转载自其它媒体,转载目的在于传递和分享更多信息,并不代表本平台赞同其观点和对其真实性负责,版权归原作者所有,如有侵权请联系我们删除。

终端电阻的作用是消除信号反射,但其实并不是所有情况都需要终端电阻,有时终端电阻反而会影响信号质量。本篇文章为大家深度解析CAN/RS-485总线的终端电阻设置。

如果我们查询百度百科,终端电阻的档案似乎十分清白:

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

CAN总线中,终端电阻是必不可少的。它存在的意义主要包括两点:

可以确保电平快速进入隐性状态;

1、确保电平快速进入隐性状态

在显性状态期间,总线的寄生电容会被充电,而在恢复到隐性状态时,这些电容需要放电。如果CANH、CANL之间没有放置任何阻性负载,电容只能通过收发器内部的差分电阻放电。我们在收发器的CANH、CANL之间加入一个220PF的电容进行模拟试验,位速率为500kbit/s,波形如下图所示。

信号在较高的转换速率情况下,信号边沿能量遇到阻抗不匹配时,会产生信号反射;传输线缆横截面的几何结构发生变化,线缆的特征阻抗会随之变化,也会造成反射。

在总线线缆的末端,阻抗急剧变化导致信号边沿能量反射,总线信号上会产生振铃,若振铃幅度过大,就会影响通信质量。在线缆末端增加一个与线缆特征阻抗一致的终端电阻,可以将这部分能量吸收,避免振铃的产生,如下图所示。

CAN总线增加终端电阻

1、RS-485总线增加终端电阻好处

485总线设置终端电阻主要是为了用来抑制信号的反射。

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

2、RS-485增加终端电阻的问题

终端电阻虽然可以提高信号质量,但还具有以下几个问题:

RS-485总线上的负载越大,RS-485收发器输出差分电压幅值越低,RSM485ECHT在5m,500kbps的情况下不加终端电阻和加终端电阻的波形如下图所示。

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

增加终端电阻对于接收状态时的工作电流影响不大,但会大大增加驱动状态时的工作电流。以RSM485ECHT为例,RSM485ECHT处于接收状态时工作电流为20mA左右,在驱动状态不加终端电阻时工作电流为27mA左右,在驱动状态加终端电阻时工作电流为83mA左右,可以看出终端电阻大大增加了RS-485收发器的功耗,对于有功耗要求的应用场合,应谨慎使用终端电阻。

通信速度低或者通信距离近的情况下建议不加终端电阻

通信速度低或者通信距离近的情况下,信号反射对通信信号的影响不大,而且不加终端电阻可以大大降低功耗,并且通过加较大上下拉电阻值即可保证RS-485总线空闲时具有较高的差分电压幅值,提高了通信的可靠性。

通信距离较长且通信速度较快,对信号质量要求较高的情况

此时可以增加终端电阻,防止阻抗突变引起的信号反射问题,提高信号质量,但应确保在总线空闲时总线的差分电压不处于门限电平范围内。

对功耗有要求且通信距离较长的情况

反射信号在总线上来回反弹,反射信号会逐渐消耗掉。

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

CAN总线终端电阻,一般来说都是120欧姆,实际上在设计的时候,也是两个60欧姆的电阻串起来,而总线上一般有两个120Ω的节点,基本上稍微知道点CAN总线的人都知道这个道理。
但是作为学渣的笔者,知道这个是在各种标准以及各种数据手册和应用笔记里面常用的电阻值,但是这两个终端电阻的具体作用是什么呢?之前就知道阻抗匹配,但是究竟匹配的是什么呢?
然后笔者就上知乎遨游了一下,半抄半写地总结了下面的这些知识点。知道终端电阻的作用,对于日常工作中波形不稳定等问题,也能更快地找到问题的原因。
CAN总线终端电阻的作用有3个:
  1. 提高抗干扰能力,让高频低能量的信号迅速走掉

  2. 确保总线快速进入隐性状态,让寄生电容的能量更快走掉;

  3. 提高信号质量,放置在总线的两端,让反射能量降低。

CAN总线有“显性”和“隐性”两种状态,“显性”代表“0”,“隐性”代表“1”,由CAN收发器决定。下图是一个CAN收发器的典型内部结构图,CANH、CANL连接总线。
总线显性时,收发器内部Q1、Q2导通,CANH、CANL之间产生压差;隐性时,Q1、Q2截止,CANH、CANL处于无源状态,压差为0。
总线若无负载,隐性时差分电阻阻值很大,内部的MOS管属于高阻态,外部的干扰只需要极小的能量即可令总线进入显性(一般的收发器显性门限最小电压仅500mV)。这个时候如果有差模干扰过来,总线上就会有明显的波动,而这些波动没有地方能够吸收掉他们,就会在总线上创造一个显性位出来。所以为提升总线隐性时的抗干扰能力,可以增加一个差分负载电阻,且阻值尽可能小,以杜绝大部分噪声能量的影响。然而,为了避免需要过大的电流总线才能进入显性,阻值也不能过小。

在显性状态期间,总线的寄生电容会被充电,而在恢复到隐性状态时,这些电容需要放电。如果CANH、CANL之间没有放置任何阻性负载,电容只能通过收发器内部的差分电阻放电,这个阻抗是比较大的,按照RC滤波电路的特性,放电时间就会明显比较长。我们在收发器的CANH、CANL之间加入一个220PF的电容进行模拟试验,位速率为500kbit/s,波形如图,这个波形的下降沿就是比较长的状态。

为了让总线寄生电容快速放电,确保总线快速进入隐性状态,需要在CANH、CANL之间放置一个负载电阻。增加一个60Ω的电阻后,波形如图,从图中看出,显性恢复到隐性的时间缩减到128nS,与显性建立时间相当。

信号在较高的转换速率情况下,信号边沿能量遇到阻抗不匹配时,会产生信号反射;传输线缆横截面的几何结构发生变化,线缆的特征阻抗会随之变化,也会造成反射。

能量发生反射时,导致反射的波形与原来的波形进行叠加,就会产生振铃。
在总线线缆的末端,阻抗急剧变化导致信号边沿能量反射,总线信号上会产生振铃,若振铃幅度过大,就会影响通信质量。在线缆末端增加一个与线缆特征阻抗一致的终端电阻,可以将这部分能量吸收,避免振铃的产生。
别人进行了一个模拟试验(图片都是我抄过来的),位速率为1Mbit/s,收发器CANH、CANL接一根10m左右的双绞线,收发器端接120Ω电阻保证隐性转换时间,末端不加负载。末端信号波形如图所示,信号上升沿出现了振铃。
若双绞线末端增加一个120Ω的电阻,末端信号波形明显改善,振铃消失。
一般在直线型拓扑中,线缆两端即是发送端,也是接收端,故线缆两端需各加一个终端电阻。
而在实际应用过程中,CAN总线一般都不是完美的总线式的设计,很多时候是总线型和星型的混合结构,这个时候一般都将CAN终端电阻布置在线束最远的两端,来尽量地模拟CAN总线的标准结构。
什么是阻抗?在电学中,常把对电路中电流所起的阻碍作用叫做阻抗。阻抗单位为欧姆,常用Z表示,是一个复数Z= R+i( ωL–1/(ωC))。具体说来阻抗可分为两个部分,电阻(实部)和电抗(虚部)。其中电抗又包括容抗和感抗,由电容引起的电流阻碍称为容抗,由电感引起的电流阻碍称为感抗。这里的阻抗是指Z的模。
任何一根线缆的特征阻抗都可以通过实验的方式得出。线缆的一端接方波发生器,另一端接一个可调电阻,并通过示波器观察电阻上的波形。调整电阻阻值的大小,直到电阻上的信号是一个良好的无振铃的方波,此时的电阻值可以认为与线缆的特征阻抗一致。
采用两根汽车使用的典型线缆,将它们扭制成双绞线,就可根据上述方法得到特征阻抗大约为120Ω,这也是CAN标准推荐的终端电阻阻值,所以这个120Ω是测出来的,不是算出来的,都是根据实际的线束特性进行计算得到的。当然在ISO 11898-2这个标准里面也是有定义的。
为什么功率还要选0.25W?
这个就要结合一些故障状态来计算,汽车ECU的所有接口都需要考虑短路到电源和短路到地的情况,所以我们也需要考虑CAN总线的节点短路到电源的情况,根据标准需要考虑短路到18V的情况,假设CANH短路到18V,电流会通过终端电阻流到CANL上,而CANL内部由于限流的原因,最大注入电流为50mA(TJA1145的规格书上标注),这时候120Ω电阻的功率就是50mA*50mA*120Ω=0.3W。考虑到高温情况下的降额,终端电阻的功率就是0.5W。
● 专业回收库存呆滞成品线束!回收库存呆滞进口连接器!电话景经理,微信同步
●  宁波一航化工科技有限公司供应:尼龙PA66 汽车扎带 护套 支架保险盒专用材料,可以根据客户要求定制,耐高低温,成本更低。 徐先生

我要回帖

更多关于 can总线电阻如何测量 的文章

 

随机推荐