锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

干货 | 多年经验工程师总结CAN总线入门知识

时间:2023-04-25 17:37:00 热电阻航空接插式

关注星标微信官方账号,直达精彩内容

d4ef748859a2aacacafdf33706f6ad65.png

来源:整理网络素材

01

简介

CAN总线由德国BOSCH公司开发的最高速率可达1Mbps。CAN容错能力特别强,CAN在控制器中建立了强大的检错和处理机制。与传统网络(如USB或以太网),CAN大数据块不会在节点和节点之间传输,一帧CAN最多传输8字节用户数据,使用短数据包也能使系统更稳定。CAN总线具有总线仲裁机制,可形成多主系统。

02

CAN标准

CAN它是一条由国际标准组织定义的串行通信总线。最初用于汽车工业,用两条信号总线代替汽车复杂的布线。CAN总线具有高抗干扰性、自诊断和数据调节功能CAN总线广泛应用于各种工业场所,包括建筑自动化、医疗和制造业。


CAN通讯协议ISO-11898:2003标准介绍了网络上设备间的信息是如何传递的,以及符合开放系统互联网参考模型的(OSI)实际通信是在连接设备的物理介质中进行的,物理介质的特性是由模型中的物理层定义的。ISO七层定义为11898体系结构,OSI数据链路层和物理层是模型的最低两层,见图2-1。

783430f69f24824490d070f20cde3369.png

图2-1:ISO 11898标准架构分层

应用程序层在图2-1中建立了上层应用的具体协议CANopenTM协议的通信链接。该协议由世界各地的用户和制造商组织,CiA维护,详情可访问CiA网站:can-cia.de。许多协议都是专用的,如工业自动化、柴油发动机或航空。其他工业标准的例子是基于CAN的协议的,由KVASER和Rockwell自动化开发DeviceNetTM。

03

标准CAN和扩展CAN

CAN通信协议是基于报纸优先碰撞检测和仲裁的载波侦听(CSMA/CD AMP)多路访问协议。CSMA这意味着在试图发送报纸之前,总线上的每个节点都必须监控总线,当总线是空的时候。CD AMP这意味着通过预定编程的报纸优先级逐一仲裁来解决碰撞。报纸优先级位于每个报纸的标志区域。具有更高级别优先级标志的报纸总能获得总线访问权,即最终保持逻辑高电平的符号将继续传输,因为它具有更高的优先级。


ISO-11898:2003标准,11位标识符,最高信号速率为125Kbps到1Mbps。修订后的标准使用了扩展的29位标志符。标准11位标志符位参见图3-1,提供2048个不同的报纸标志符,扩展29位标志符位参见图3-2,提供53700万个不同的报纸标志符。

3.1 标准CAN

标准CAN每帧数据长度只有11位标识符,为51 (0~64)=(51~117)位置。注:不计位填充(位填充将在本文第5节描述)。

8085d8f69b7030e2d577c180026156a3.png

图3-1:标准CAN---11位标识符

· SOF - 帧开始,显性(逻辑0)表示报告的开始,并用于同步总线上的节点。

·标识符 - 标准CAN有11个标志符来确定报纸的优先级。该领域的值越小,优先级就越高。

· RTR - 远程发送请求位,当需要从另一个节点需要从另一个节点发送请求信息时。所有节点都可以接收此请求,但帧识别符确定了指定的节点。响应数据帧也被所有节点接收,可用于感兴趣的节点。

· IDE 标识符扩展位显性时,表示为标准CAN格式,隐形表示这是扩展CAN格式。

·r0 - 保留位(未来可能使用标准修订)

·DLC - 4位数据长度代码表示传输数据的字节数,一帧CAN最多传输8字节用户数据

·数据0~8 – 最多可以传输8字节用户数据

· CRC - 16位(包括1位定界符)CRC验证码用于验证用户数据区前传输数据段(包括数据区)。

· ACK - 2位,包括应答位和应答定义符。在发送节点的报文帧中,ACK两者都是隐藏的位置。当接收器正确收到有效的报告时,接收器将在响应位置期间向发送节点发送显示位置以表示响应。如果接收器发现该帧数据错误,则不会发送到发送节点ACK响应,发送节点稍后将重新传输此帧数据。

· EOF – 7位帧结束标志位,全部为隐性位。如果这7位有显性位,会导致填充错误。

· IFS – 7位帧间隔标志位,CAN控制器需要一段时间才能正确地将接收到的帧放入消息缓冲区,帧间隔可以提供此时间。

3.2 扩展CAN

扩展CAN每帧数据长度为71 (0~64)=(71~135)位置。注:不计位填充(位填充将在本文第5节描述)。

34f12e3d3fdcff3f347a018ef310df94.png

图3-2:扩展CAN---29位标识符

扩展CAN与标准相比,新闻CAN消息增加的内容如下:

· SRR – 取代远程请求位,为隐性。因此,当标准帧与扩展帧相冲突,扩展帧的基本标识符与标准帧相同时,标准帧的优先级高于扩展帧。

· IDE – 为隐性位表示标志位扩展帧,18位扩展标志符紧随其后IDE位。

·r1 – 保留

04

CAN消息

4.1仲裁

典型CAN如图4-1所示,总线逻辑状态与驱动器输入和接收器输出逻辑相反。正常情况下,逻辑高电平为1,逻辑低电平为0,但CAN总线逻辑高电平为0,称为显性,逻辑低电平为1,称为隐性。因此,当没有任何输入时,许多收发器的驱动输入端都会内置上拉电阻,CAN总线将显示为隐性(逻辑低电平)。

5a5b45995dbdea83cef562265496cd4f.png

图4-1:反转的CAN总线逻辑

在总线空闲时,首先开始发送报纸的节点获得发送权。


若多个节点同时访问总线,CAN使用非破坏性和逐位仲裁决定哪个节点使用总线:每个发送节点从仲裁域(标识符和RTR域)第一个开始仲裁,连续输出显性电平(0)最多的节点可以继续发送。因此,标识符值越低CAN报纸,优先级越高。识别符号值为0CAN由于其输出显性电平最多,报文具有最高优先级。

4.2消息类型

CAN有四种不同类型的报纸:数据帧、远程帧、错误帧和过载帧。

05

位填充饥制

帧开始、仲裁域、控制域、数据域CRC通过位置填充方法编码验证和域。位置填充是指发送器在位流中自动插入一个补码位,只要检测到位流中连续5个相同逻辑的位置。例如,如果连续5个显示位置,则在5个显示位置后自动插入1个隐藏位置。接收器将自动删除插入的填充位置。


数据帧或远程帧的剩余位置(CRC固定形式的定义符、应答域和帧末端域)不填充。不填充错误的帧和过载帧。


CAN网络同步需要足够的上升沿,这是CAN协议规定了位置填充的目的之一。位置填充的其他功能:确保数据帧不被视为错误帧(由6个连续显性或隐性位组成),并正确识别帧结束标志(7个连续隐性位)。

06

错误检测和故障定义

CAN这可能是由于总线的高强度CAN错误检查机制多种多样。CAN该协议制定了五种错误的检测方法:三种位于报纸层,两种位于位流层。如果数据帧出现错误,则该帧将被丢弃,接收节点将发送错误帧。这将被迫发送节点重复发送出错的报文,直到接收节点正确接收。如果同一个报文重复出错,达到一定次数后,发送节点可以关闭发送功能以降低对总线的影响。


报文层的错误检测包括CRC和ACK。16位的CRC域包含15位校验和、1位界定符。ACK域包括1位应答位、1位界定符。


CRC校验错误很好理解,它对数据域以及数据域之前的位生产CRC校验。由于一帧CAN报文数据流很小(最多8个用户数据),所以15位CRC的侦错能力非常优秀。


ACK域是怎么起作用的呢?这是由CAN协议规定的,即发送节点发送一帧数据后,接收节点必须向发送节点应答,如果发送节点没有收到接收节点的应答信号,就会认为自己发送失败,从而重传数据。


报文层的第三种错误检查方法是格式检查。这种检查会监控报文中那些一定为隐性位的域,如果这些域中出现显性位,则检测到格式错误。这些域包括SOF、EOF、ACK的界定符和CRC的界定符。


位流层的错误检测之一是发送到总线上的每一个数据位,都会被监视,如果发现发送的位和总线上的位不相同时,产生位错误。这种监视机制并不会监视仲裁域的位,这是因为多个节点同时竞争总线时,优先级高的节点可能会覆写总线上的仲裁域位。


位流层的另外一个错误检测机制是位填充规则:5个连续相同逻辑位之后,如果第6个位的逻辑还和前五个相同,则产生位填充错误。

07

网络拓扑

CAN使用差分信号,需要一对信号线,推荐使用双绞线,网络拓扑如图7-1所示。使用差分信号可以抑制共模干扰、能够增加系统可靠性,允许使用更高的速率。


高速ISO 11898标准规定了CAN传输最高速率为1Mbps,在这个速率下,传输距离最长40米(挂接30个节点,CAN信号不隔离)。推荐节点分支长度最大为0.3米、推荐使用带屏蔽或不带屏蔽的双绞线,线缆特性阻抗为120欧姆。

49f928520a7e7584df5722a309b8398b.png

 图7-1:CAN总线网络拓扑结构图

08

终端匹配

终端匹配电阻大小等于传输电缆特性阻抗,传输电缆特性阻抗由电缆供应商提供,一般近似为Z=√(L/C)。其中L为电缆单位长度感抗,C为电缆单位长度电容。


由于CAN收发器结构,从隐性变成显性由晶体管驱动,所以都是很陡的,但是从显性回到隐性,却需要终端电阻来放电,否则就会由于导线分布电容,缓慢放电,导致位宽错误。所以所谓的近距离、低波特率CAN总线不加终端电阻的做法,都是错误的。


RS485与CAN总线不同,由于RS485收发器中一般都内置失效保护电路,在近距离、低波特率下允许不加终端匹配电阻。

09

电缆与接线

CAN总线采用差分信号传输,如果使用带屏蔽双绞线,屏蔽层应单点接地。

图9-11列出带单屏蔽层的CAN电缆剖析与连接线示范。

c83124e82d98f0764a460d5b7441ca2e.png

 图9-1:电缆信号分配、接地和终端匹配

通常电缆截面积越小,其分布电容、分布电感和直流电阻越大。当通讯距离较远时,电容、电感和直流电阻会引起信号衰减,波形失真和抖动。


一般情况下,电缆供应商会提供信号衰减图表。

图9-2所示的曲线显示了24-AWG电缆衰减和频率的关系。

f8f1364007bd89243adae4336a18ca8d.png

 图9-2:信号衰减

10

差分信号电压幅值

如图10-1所示,两条信号线CAN_H和CAN_L静态时均为2.5V左右,此时状态表示逻辑1,称作隐性;CAN_H比CAN_L高表示逻辑0,称为显性,此时通常CAN_H电压3.5V、CAN_L电压1.5V。

c655ff822ea5e1aafe4d67fd4e5564f7.png

 图10-1:CAN电平幅值

CAN标准规定,CAN总线上的差分电压>0.9V才能被识别成显性电平,<0.5V才能被识别成隐性电平,0.5~0.9之间的电平不能确定电平极性。如表10-1所示。

表10-1:差分电压幅值与电平极性关系

926a12a49ad91035c4fe3cb32fbd6876.png

在实际项目布线时,容易漏加或者多加终端匹配电阻。我们可以通过测量CAN差分电压幅值来评估是否漏加或多加终端匹配电阻。如果不计导线电阻,终端电阻固定为120欧姆,单节点CAN总线差分电压如表10-2所示。

表10-2:终端匹配电阻数目与差分电压幅值关系

88d5e4403c4d9d745ef57b6554845b25.png

11

电缆截面积与通讯距离

电缆截面积对通讯距离影响很大,特别是远距离通讯。远距离传输线上的分布电容、分布电感和直流参数会引起信号衰减。很多CAN通讯应用都具有距离远、波特率低的特性。比如本公司的KTC161通讯控制系统使用10kpbs,传输距离要不小于3km。这种情况下,传输电缆的直流电阻对传输距离影响非常大,因为这个直流电阻会和终端匹配电阻分压。


如图11-1所示,1号节点与2号节点相隔5km,使用的传输电缆直流电阻12.8欧姆/km,终端匹配电阻为124欧姆。1号节点发送的波形差分电压幅值为2V,经过5km传输电缆到2号节点时,差分电压幅值大约为1V,信号衰减了一半!我们在上文第10节中提到过:CAN总线上的差分电压>0.9V才能被识别成显性电平,现在2号节点只有1V差分电压,其可靠性已经变的较低。


为了保证可靠的数据通讯,一个有用的经验法则是:最末端节点差分电压幅值不小于1.2V。


注意图中故意忽略了分布电容和分布电感的影响,因此传输的波形没有畸变。

46e205ae9b7c8b076893e24b2634a79c.png

 图11-1:传输电缆直流电阻分压示意图

对于双绞线,假设其终端匹配电阻与电缆特性阻抗相同,则截面积与最大通讯距离可参考表11-1:

表11-1:截面积与最大通讯距离关系

1e2bfc98317e9b0a190e07696593c487.png

为了把电缆直流电阻引起的电压衰减降到最小,较大的终端电阻值(150~300欧姆)有助于增加总线长度。比如使用截面积为1.5 mm2的双绞线电缆,电缆特性阻抗为120欧姆。传输波特率为5kpbs的数据时,使用120欧姆的匹配电阻最远可以传输5km,但使用300欧姆的匹配电阻则可以传输7km!

12

波特率、终端匹配电阻与通讯距离

上文第11节讲述了传输线截面积与通讯距离的关系,本小节将保持传输线截面积不变,查看其它参数对通讯距离的影响。以截面积为1.5 mm2屏蔽双绞线为例,其波特率、终端匹配电阻与通讯距离的关系如图12-1所示。其中,当波特率较高,通讯距离有限。比如1Mbps,信号隔离后的CAN通讯距离大约为25~30米(大部分的实际项目中都会对CAN通讯模块电气隔离,隔离器件会降低通讯距离)。波特率较低并且将终端匹配电阻增大,可远距离通讯。比如5kbps、终端匹配电阻为390欧姆时,通讯距离可达10km!

c06355e25a1cf57f921c799043be0fc6.png

 图12-1:波特率、终端匹配电阻和通讯距离关系图

13

信号延迟与通讯距离

高波特率情况下,制约CAN通讯距离的,是信号延迟。信号经过隔离光耦、传输电缆、ESD器件时,都会引起信号延迟。如果CAN的重同步也不足以弥补这个延迟,就会导致采样错误,最终CRC校验错误。


图12-1给出了截面积为1.5mm2传输电缆,在不同波特率和终端匹配电阻下的最大通讯距离。其中当波特率为1Mbps时,通讯距离大约为30米。30米的通讯电缆,其传输损耗可以忽略不计,此时影响通讯距离的主要是信号延迟。


通常,传输电缆延时为5ns/m、高速光耦延时可达25ns、磁耦合隔离器件延迟3~5ns。在CAN通讯系统中,一个优良的延迟标准是:

b7348b532ddb7dc34d5e8c75f63c9eaf.png

其中:
tl_MAX:最大延迟时间
tBIT:位时间
以1Mbps为例,其位时间为1us,则tl_MAX < 0.245 × tBIT = 0.245 × 1us = 245ns。信号在1.5mm2传输电缆上传输49米就能达到这个延迟时间,另外再加上信号上升/下降沿时间以及隔离器件、ESD器件、PCB走线延时,实际项目中,1Mbps波特率在1.5mm2传输电缆上只能传输30米。


这也是为什么RS485波特率可以达到10Mbps甚至50Mbps,而CAN标准最大速率只有1Mbps的原因。


表13-1给出了判定延迟的参考标准,在实际项目中,推荐信号延迟处于良好一栏标准。

表13-1:最大延迟参考标准

77c7ae13cae3aa549f8ffda5ba30632b.png

14

节点最小间距

CAN总线是分布式参数电路,其电气特性和响应主要由沿物理介质分布的电感和电容所决定。这里物理介质包括连接电缆、连接器、终端和沿总线挂接的CAN设备。


空载情况下,传输电缆的特性阻抗近似为Z=√(L/C),其中L为电缆单位长度感抗,C为电缆单位长度电容。随着负载的增加,传输线上的电容增加(负载电容、负载与总线连接线电容),传输电缆特性阻抗相比空载情况下变小。如果负载比较集中,则负载区传输电缆特性阻抗和空闲区电缆特性阻抗相差较大,从而会引起阻抗不匹配。如图14-1所示。

2eabaa12e29f2d0ab61c52eadab84586.png

 图14-1:负载不均衡的CAN总线原理示意图

CAN总线阻抗不匹配会产生信号反射,雪上加霜的是CAN的仲裁机制:在仲裁期间,两个或更多个节点可能同时发送多个显性位。如图14-1所示,当开关S1在t=0时刻从显性状态切换到隐性状态,CAN驱动器差分输出电压为Vs,总线上的差分信号会由显性状态(Vs)变成稳定的隐性状态(0V)。这个信号波形会沿着总线向下传播,到达总线的负载区时,阻抗不匹配引起的反射电压将返回到源端。

负载与负载之间的最小安全距离d是设备集总负载电容CL和电缆的单位长度分布电容C的函数,定义如下:

404e7c7ec14b79f5c7b40aa3b5ab6726.png

设备集总负载电容CL包括CAN收发器引脚、连接器、隔离器件、保护器件、印制电路板走线以及其它物理连线的电容总和。


3.3V的CAN收发器一般能达到16pF电容,具体可以参考收发器数据手册;印制板走线一般0.5pF~0.8pF/cm,这取决于电路板的材质和结构;连接器和保护装置(比如ESD器件)的电容值可能范围会很大,具体要参考设备数据手册;非屏蔽双绞线介质的分布电容大约在40pF/m~70pF/m。


图14-2给出了更明了的图表显示.

cffcf39a90598a6cc3540d4cad87d82b.png

 图14-2:最小CAN设备间距

15

信号位采样点位置

信号位采样点是指CAN节点识别一个电平逻辑的位置。CAN标准把总线上的每一位都细分为不同的阶段,如图15-1所示。在图中可以看到,每个位被分为同步段、传播段、相位缓冲段1和相位缓冲段2四个连续部分。其中采样点位于相位缓冲段1之后,同步段、传播段、相位缓冲段1和相位缓冲段2的持续时间都是可以编程的,因此采样点位置也是间接可编程的。

8a9039934ff81b0803a61d13b9a62953.png

 图15-1:每一个数据位的分段示意图

一般CAN节点是每个位采样一次(也可以采样3次,多用于低速场合),采样点位置都在一个位的50%以后的区域,这是为了让信号电平趋于稳定。采样点越靠后,波形越稳定。但也不是越靠后越好,采样点位置超过95%时,因为传输过程中的位偏差,可能会引起错误。CIA推荐采样点为一个位时间的87.5%处,实际项目中,一般设置为70%~90%,大部分汽车厂商规定采样点为70~80%。


采样点略靠后,比如80~90%,有利于远距离传输。提高节点波特率寄存器中的同步跳转宽度SJW值(加大到3个单位时间),可以加大位宽度和采样点的容忍度。

16

波特率偏差

由于受到晶振影响,CAN通讯波特率实际值与理论值会有偏差。如果两个节点之间波特率偏差较大,容易造成误码率增大或通讯失败等问题。

CAN标准规定,设定的理论波特率与实际波特率偏差不得超过±1%;节点需要容忍的波特率偏差不得小于±3%。

17

节点容抗

在CAN通讯电路设计过程中,节点容抗是容易被忽略的。节点容抗包括收发器引脚电容、PCB走线电容、ESD器件电容以及其它连线电容。


CAN标准对节点容抗有严格定义,容抗影响上升沿下降沿斜率,节点容抗增大,上升沿和下降沿会变缓,导致位时间畸变,误码率增加。上升沿和下降沿变缓会使得信号延迟变大,在高波特率下,影响信号传输质量和通讯距离。


节点容抗不易测量,需要专门仪器。在电路设计时,要对结合数据手册中给出的典型值,对CAN接口电路使用的器件总电容值进行估算。对于高波特率情况下,单节点电容推荐<100pF,多节点电容推荐值见表17-1所示。低波特率应用可以放宽要求。

表17-1:单节点电容最大值

d90c4d8d4165804f3e1179485510e105.png

18

节点数量

可以连接到网络上的节点数量由收发器可以驱动的最小负载阻抗来决定。最大节点数量由下面的公式给出(考虑最坏情况):

3c5a48981874856a93bc8cb62921e4ed.png

其中:
Rdiff_min:收发器差动输入阻抗最小值
RL_min:收发器可驱动的负载电阻最小值
RT_min:终端匹配电阻最小值
在上式中,收发器差动输入阻抗最小值(Rdiff_min)和收发器可驱动的负载阻抗最小值(RL_min)由收发器芯片决定,终端匹配电阻最小值(RT_min)由传输电缆特性阻抗以及具体应用决定。


以本公司使用的PCA82C251收发器为例,其收发器差动输入阻抗最小值Rdiff_min = 20K欧姆,收发器可驱动的负载阻抗最小值RL_min = 45欧姆,假设终端匹配电阻最小值RT_min = 120欧姆,则最大节点数量为112个。

19

共模电压范围

共模电压是指总线上的发送节点地和接收节点地之间的电势差。过高的共模电压会对系统造成影响,可能造成间歇重启、死、误码率增高甚至损害设备。在远距离通讯系统中,共模干扰的问题会更加突出,因为随着通讯线距离的增加,地环路会拾取更多的噪声,使得共模电压增大。


目前的CAN收发器都可以容忍一定的共模电压,ISO 11898标准规定,CAN收发器必须能容忍-2V~7V的共模电压。对于长达数千米的CAN通讯系统来说,标准规定的共模电压容忍能力远远达不到实际要求,因此电流隔离对于远距离数据传输系统来说仍是必须的。

20

总线短路保护和热关断保护

总线短路保护是指总线与电源或地短路后,CAN收发器不会损坏,短路故障解除后,CAN收发器能继续工作。这个特性可以在总线极性反接、电缆绝缘层失效、意外短路到高压源时对收发器提供保护。


热关断电路用于帮助CAN收发器防御因短路产生破坏性电流和高温。一旦激活热关断电路,设备会进入关断模式。当设备冷却到正常操作温度时,设备自动恢复运行。


本公司使用的PCA82C251收发器具有短路保护和热关断保护。短路保护允许总线与24V电源短接。

21

电流隔离

远距离数据传输可能会有较大的地电势差、地环流等问题,会在CAN总线上形成高共模电压。如果共模电压超出CAN收发器容忍的最大限度,数据链路就会不正常。


解决这些问题的一个方法是使用电流隔离:隔离变压器为系统提供电源,光耦或数字隔离器件提供数据隔离。电流隔离可以去除地环流,抑制噪声电压。采用电流隔离的电路如图21-1所示,本公司CAN接口电路也采用了电流隔离处理。

7bb1dd0915d8c345d83b211c8509cacd.png

 图21-1:远距离通讯电流隔离电路示意图

22

CAN接口电路与RS485接口电路

CAN总线和RS485总线都是采用差分信号传输数据,它们在总线拓扑、终端匹配、信号衰减、隔离与接地、波特率与通讯距离关系等方面都是相似的。但是CAN有自己的一些特性,在接口设计中,不能照抄RS485接口电路。


CAN总线对信号延迟敏感,因此信号隔离必须使用高速光耦或者磁耦合器件,以减少信号延迟。公司大量使用的TLP521光耦因为延迟时间过大(微秒级)不可以用于CAN接口电路。


CAN总线对电容敏感,在设计CAN接口电路时,需要使用CAN专用共模电感、专业ESD器件;需要根据应用的最大波特率和通讯距离,来决定是否在CAN总线上增加滤波电容以及滤波电容的大小。

免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

关注我的微信公众号,回复“加群”按规则加入技术交流群。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章