首页 » 互联网 » 高手写的CAN总线入门总结_节点_暗记

高手写的CAN总线入门总结_节点_暗记

落叶飘零 2025-01-08 21:19:30 0

扫一扫用手机浏览

文章目录 [+]

1. 简介

CAN总线由德国BOSCH公司开拓,最高速率可达到1Mbps。
CAN的容错能力特殊强,CAN掌握器内建了强大的检错和处理机制。
其余不同于传统的网络(比如USB或者以太网),CAN节点与节点之间不会传输大数据块,一帧CAN最多传输8字节用户数据,采取短数据包也可以使得系统得到更好的稳定性。
CAN总线具有总线仲裁机制,可以组建多主系统。

高手写的CAN总线入门总结_节点_暗记 高手写的CAN总线入门总结_节点_暗记 互联网

2. CAN标准

高手写的CAN总线入门总结_节点_暗记 高手写的CAN总线入门总结_节点_暗记 互联网
(图片来自网络侵删)

CAN是一个由国际化标准组织定义的串行通讯总线。
最初是用于汽车工业,利用两根旗子暗记总线代替汽车内繁芜的走线。
CAN总线具有高抗滋扰性、自诊断和数据侦错功能,这些特性使得CAN总线在各种工业场合广泛利用,包括楼宇自动化、医疗和制造业。

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

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

在图2-1中,运用程序层建立了上层运用特定协议,如CANopenTM协议的通讯链路。
这个协议由全天下的用户和厂商组织、CiA掩护,详情可访问CiA网站:can-cia.de。
许多协议是专用的,比如工业自动化、柴油发动机或航空。
其余的工业标准例子,是基于CAN的协议的,由KVASER和Rockwell自动化开拓的DeviceNetTM。

3. 标准CAN和扩展CAN

CAN通讯协议是一个载波侦听、基于报文优先级碰撞检测和仲裁(CSMA/CD+AMP)的多路访问协议。
CSMA的意思是总线上的每一个节点在企图发送报文前,必须要监听总线,当总线处于空闲时,才可发送。
CD+AMP的意思是通过预定编程好的报文优先级逐位仲裁来办理碰撞,报文优先级位于每个报文的标识域。
更高等别优先级标识的报文总是能得到总线访问权,即:标识符中末了保持逻辑高电平的会连续传输,由于它具有更高优先级。

ISO-11898:2003标准,带有11位标识符,供应的最高旗子暗记速率从125Kbps到1Mbps。
更迟一些的修订标准利用了扩展的29位标识符。
标准11位标识符位域拜会图3-1,供应2048个不同的报文标识符,扩展29位标识符位域拜会图3-2,供应537百万个不同报文标识符。

3.1 标准CAN

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

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

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

· 标识符 - 标准CAN具有11位标识符,用来确定报文的优先级。
此域的数值越小,优先级越高。

· RTR - 远程发送要求位,当须要从另一个节点要求信息时,此位为显性(逻辑0)。
所有节点都能吸收这个要求,但是帧标识符确定被指定的节点。
相应数据帧同样被所有节点吸收,可以被有兴趣的节点利用。

· 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具有29位标识符,每帧数据长度为71+(0~64)=(71~135)位。
注:不计位添补(位添补将在本文第5节描述)。

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

扩展CAN相对付标准CAN增加的内容如下:

· SRR – 代替远程要求位,为隐性。
以是当标准帧与扩展帧发送相互冲突并且扩展帧的基本标识符与标准帧的标识符相同时,标准帧优先级高于扩展帧。

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

· r1 – 保留

4.CAN

4.1仲裁

范例CAN的基本事理见图4-1所示,从图中可以看出,总线逻辑状态与驱动器输入和吸收器输出逻辑是相反的。
正常情形下,逻辑高电平为1,逻辑低电平为0,但是CAN总线却是逻辑高电平为0,称为显性,逻辑低电平为1,称为隐性。
以是很多收发器的驱动器输入端都会内置上拉电阻,在没有任何输入时,CAN总线就会表现为隐性(逻辑低电平)。

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

在总线空闲时,最先开始发送报文的节点得到发送权。

如果多个节点同时访问总线,CAN利用非毁坏式、逐位仲裁的办法决定哪个节点利用总线:各发送节点从仲裁域(标识符和RTR域)的第1位开始进行仲裁,连续输出显性电平(0)最多的节点可以连续发送。
因此标识符数值越低的CAN报文,优先级越高。
标识符数值为0的CAN报文,具有最高优先级,由于它输出的显性电平最多。

4.2类型

CAN有四种不同的报文类型:数据帧、远程帧、缺点帧和过载帧。

5.位添补机制

帧起始、仲裁域、掌握域、数据域以及CRC校验和域,均通过位添补方法编码。
位添补是指,无论何时,发送器只要检测到位流中有5个连续相同逻辑的位,便会自动在位流中插入一个补码位。
举例来说,如果连续5个显性位,则在5个显性位之后自动插入1个隐性位。
吸收器会自动删除这个插入的添补位。

数据帧或远程帧的剩余位域(CRC界定符、应答域和帧结尾域)形式固定,不添补。
缺点帧和过载帧也不添补。

CAN网络同步须要足够多的上升沿,这是CAN协议规定位添补的目的之一。
位添补的其它浸染:确保数据帧不会被当作缺点帧(由6个连续的显性或隐性位组成)、确保精确识别帧结束标志(7个连续隐性位)。

6. 缺点检测和故障界定

CAN总线具有很高的健壮性,这可能要归功于CAN具有多种缺点检讨机制。
CAN协议制订了5种缺点检测方法:三种位于报文层,两种位于位流层。
如果一个数据帧涌现缺点,那么这个帧会被丢弃,并且吸收节点还会发送一个缺点帧。
这会逼迫发送节点重复发送出错的报文,直到吸收节点精确吸收。
如果同一个报文重复出错,达到一定次数后,发送节点可以关闭发送功能以降落对总线的影响。

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

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

ACK域是怎么起浸染的呢?这是由CAN协议规定的,即发送节点发送一帧数据后,吸收节点必须向发送节点应答,如果发送节点没有收到吸收节点的应答旗子暗记,就会认为自己发送失落败,从而重传数据。

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

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

位流层的其余一个缺点检测机制是位添补规则:5个连续相同逻辑位之后,如果第6个位的逻辑还和前五个相同,则产生位添补缺点。

7.网络拓扑

CAN利用差分旗子暗记,须要一对旗子暗记线,推举利用双绞线,网络拓扑如图7-1所示。
利用差分旗子暗记可以抑制共模滋扰、能够增加系统可靠性,许可利用更高的速率。

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

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

8. 终端匹配

终端匹配电阻大小即是传输电缆特性阻抗,传输电缆特性阻抗由电缆供应商供应,一样平常近似为Z=√(L/C)。
个中L为电缆单位长度感抗,C为电缆单位长度电容。

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

RS485与CAN总线不同,由于RS485收发器中一样平常都内置失落效保护电路,在近间隔、低波特率下许可不加终端匹配电阻。

9. 电缆与接线

CAN总线采取差分旗子暗记传输,如果利用带屏蔽双绞线,屏蔽层应单点接地。

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

图9-1:电缆旗子暗记分配、接地和终端匹配

常日电缆截面积越小,其分布电容、分布电感和直流电阻越大。
当通讯间隔较远时,电容、电感和直流电阻会引起旗子暗记衰减,波形失落真和抖动。

一样平常情形下,电缆供应商会供应旗子暗记衰减图表。

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

图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。

图10-1:CAN电平幅值

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

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

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

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

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。

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

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

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

表11-1:截面积与最大通讯间隔关系

为了把电缆直流电阻引起的电压衰减降到最小,较大的终端电阻值(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!

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

13. 旗子暗记延迟与通讯间隔

高波特率情形下,制约CAN通讯间隔的,是旗子暗记延迟。
旗子暗记经由隔离光耦、传输电缆、ESD器件时,都会引起旗子暗记延迟。
如果CAN的重同步也不敷以填补这个延迟,就会导致采样缺点,终极CRC校验缺点。

图12-1给出了截面积为1.5mm2传输电缆,在不同波特率和终端匹配电阻下的最大通讯间隔。
个中当波特率为1Mbps时,通讯间隔大约为30米。
30米的通讯电缆,其传输损耗可以忽略不计,此时影响通讯间隔的紧张是旗子暗记延迟。

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

个中: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:最大延迟参考标准

14. 节点最小间距

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

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

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

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

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

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

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

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

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

15. 旗子暗记位采样点位置

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

图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:单节点电容最大值

18. 节点数量

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

个中: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接口电路也采取了电流隔离处理。

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

22. CAN接口电路与RS485接口电路

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

CAN总线对旗子暗记延迟敏感,因此旗子暗记隔离必须利用高速光耦或者磁耦合器件,以减少旗子暗记延迟。
公司大量利用的TLP521光耦由于延迟韶光过大(微秒级)不可以用于CAN接口电路。

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

标签:

相关文章