汽车CAN总线入门,通俗易懂

附件:文档原件github

CAN总线简介

CAN(Controller Area Network,控制器局域网络) 属于工业现场总线的范畴。最初CAN总线是由德国的Bosch(博世)
公司为汽车监测,系统控制而设计的。由于其高性能,高可靠性及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域得到广泛的应用,世界上几乎所有的汽车制造厂商都在使用。
汽车CAN总线入门,通俗易懂_第1张图片

CAN总线简史

CAN总线的发展历史在很大程度上代表着车载网络从产生到普及的过程,以下为总线发展的5个关键阶段。
1983年,德国的Bosch公司开发设计了CAN总线协议。
1987年,第一块CAN控制器芯片由Intel公司设计成功。
1990年,第一辆应用CAN总线的量产车Mercedes S-Class出现。
1991年,CAN2.0发布。
1993年,CAN成为国际标准ISO 11898(高速应用) 和 ISO11519(低速应用)。

CAN总线的特点

CAN的规范从CAN1.2规范 (标准规范) 发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。

CAN总线是一种串行通信协议总线,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充,数据块编码,循环冗余检验,优先级判别等工作。

CAN总线的特点主要如下:
1)可以多主方式工作,网络上任意一个节点可以在任意时刻主动地向网络上地其他节点发送报文消息,不分主从,通信方式灵活。
2)采用无破坏性的基于优先级的逐位仲裁,标识符越小,优先级越高。若两个节点同时向网络上传送数据,优先级高的报文获得总线访问权,优先级低的报文会在下一个总线周期自动重发。
3)可以采用点对点,点对多及全局广播等传送方式收发数据。
4)直接通信距离可达到10Km(速率 5kb/s以下)。
5)通信速率最高可达1Mb/s (此时距离最长40米)。
6)节点数实际可达110个。
7)每帧信息都有CRC校验及其他检错措施,数据出错率极低。
8)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可。
9)节点在错误严重的情况下,具有自动关闭总线的功能,以切断它与总线的联系,使总线上的其他操作不受影响。

CAN的两种标准介绍

CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。
ISO11898 和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。

(1) 关于 ISO11898
ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。
目前, ISO11898 追加新规约后,成为 ISO11898-1 新标准。

(2) 关于 ISO11519
ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。
ISO11519-2 是 ISO11519-1 追加新规约后的版本。
下图表示 CAN 协议和 ISO11898 及 ISO11519-2 标准的范围。
汽车CAN总线入门,通俗易懂_第2张图片

(3)物理层的不同点
如上图所示, ISO11898 和 ISO11519-2 在 CAN 协议中物理层的标准有所不同。 CAN 协议的物理层如下图所示,定义了三个子层, ISO11898 和 ISO11519-2 在物理层中的 PMA 层和 MDI 层有所不同。
汽车CAN总线入门,通俗易懂_第3张图片
汽车CAN总线入门,通俗易懂_第4张图片
汽车CAN总线入门,通俗易懂_第5张图片

CAN总线网络结构

CAN总线网络为半双工总线(同一时刻只能接收和发送数据)。

1,闭环总线网络
汽车CAN总线入门,通俗易懂_第6张图片
1)概述
can闭环通讯网络是一种遵循ISO11898标准的高速,短距离网络,它的总线最大长度40米,通信速度最高1Mbps,总线的两端各要求有一个120Ω的电阻
2)工作流程
->节点1的can控制器发送数据,通过CAN_Tx线传输至CAN收发器1
-> 差分成CAN高和CAN低两种信号至can总线上
-> 通过数据帧的参数传输至指定的节点N的收发器
-> 通过节点N的CAN_Rx传输至节点N的控制器解析

2,开环总线网络
汽车CAN总线入门,通俗易懂_第7张图片
1)概述
can开环总线网络是遵循ISO11519-2标准的低速,远距离网络,最大传输距离1KM,最高传输速率125kbps,两根线是独立的,不形成环路,要求每根总线上各串联个2.2千欧的电阻

2)工作流程
->节点1的can控制器发送数据,通过CAN_Tx线传输至CAN收发器1
-> 差分成CAN高和CAN低两种信号至can总线上
-> 通过数据帧的参数传输至指定的节点N的收发器
-> 通过节点N的CAN_Rx传输至节点N的控制器解析

那么!数据是以怎样的形式传输的呢?传输过程中数据是否会收到干扰?下面接着解答

数据是以差分信号传输的,差分信号又称为差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1
汽车CAN总线入门,通俗易懂_第8张图片
优点:
1)抗干扰能力强,当外界存在噪声干扰时,几乎会同时耦合到两条信号线上, 而接收端只关心两个信号的差值,所以外界的共模噪声可以被完全抵消。

2)能有效抑制它对外界的电磁干扰,同理,由于两根信号的极性相反,它们对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。

3)时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上的误差,同时也更适合于低幅度信号的电路。

4)由于差分信号线具有这些优点,所以在USB协议,485协议,以太网协议及CAN协议的物理层中,都使用了差分信号传输。

CAN协议对它使用的CAN_High和CAN_Low表示的差分信号做了规定:
以高速CAN为例,当表示逻辑1时(隐性电平),CAN_High和CAN_Low线上的电压均为2.5V,即他们的电压差是0V;而表示逻辑0时(显性电平),CAN_High的电平是3.5V,CAN_Low的电平是1.5V,即电压差是为2V…
汽车CAN总线入门,通俗易懂_第9张图片

CAN协议层

-规定了数据通讯逻辑
1,CAN的报文种类及结构(主要讲数据帧)
数据帧以一个显性位(帧起始SOF,逻辑0)开始,以7个连续的隐性位(帧结束EOF,逻辑1)结束。
在它们之间,分别有仲裁段,控制段,数据段,CRC段和ACK段。

汽车CAN总线入门,通俗易懂_第10张图片
下面一起来拆分数据帧

1)数据帧-帧起始(SOF段)
汽车CAN总线入门,通俗易懂_第11张图片
SOF信号只有一个数据位,是一个显性电平,它用于通知各个节点将有数据传输,其他节点通过帧起始信号的电平跳变沿来进行硬同步。

2)数据帧-仲裁段
(当IDE为0时,表示标准标准格式帧。为1时,表示扩展帧)
汽车CAN总线入门,通俗易懂_第12张图片
当同时有两个报文被发送时,总线会根据仲裁段的内容决定哪个数据包能被传输。
汽车CAN总线入门,通俗易懂_第13张图片
仲裁段ID的优先级也影响着接收设备对报文的反应。因为在CAN总线上数据是以广播的形式发送的,
所有连接在CAN总线的节点都会收到所有其他节点发出的有效数据,因而CAN控制器大多具有根据ID过滤报文的功能,
它可以控制自己只接收某些ID的报文。

3)数据帧-RTR,IDE,SRR
汽车CAN总线入门,通俗易懂_第14张图片
当RTR=逻辑0时,表示数据帧;=逻辑1时,表示遥控帧。
当IDE=0时,表示标准帧,1表示扩展帧。

4)数据帧-控制段
汽车CAN总线入门,通俗易懂_第15张图片
在控制段中的r1和r0为保留位,默认设置为显性位。它最重要的是DLC段(Data Length Code),数据长度码,它由四个数据位组成,用于表示本报文中的数据段含多少个字节,DLC段表示的数字是0~8 (因为数据段的大小是0到8字节大小)。

5)数据帧-数据段
汽车CAN总线入门,通俗易懂_第16张图片
数据段为数据帧的核心内容,它是节点要发送的原始信息,由0到8字节组成。

6)数据帧-CRC段
汽车CAN总线入门,通俗易懂_第17张图片

为了保证报文的正确传输,CAN的报文包含了一段15位的CRC校验码,一旦接收节点算出的CRC码和接收到的CRC码不同,则它会向发送节点反馈错误信息,利用错误帧请求它重新发送报文。CRC部分的计算一般由CAN控制器硬件完成,出错时的处理则由软件控制最大重发数。 在CRC校验码之后,有一个CRC界定符,它是隐性位,主要是把CRC校验码与后面的ACK段间隔开。

7)数据帧-ACK段
汽车CAN总线入门,通俗易懂_第18张图片
ACK段包括一个ACK槽位和ACK界定符位。类似I2C总线,在ACK槽位中,发送节点发送的是隐性位,而接收节点则在这一位中发送显性位以应答。在ACK槽和帧结束之间由ACK界定符间隔开。

8)数据帧-EOF段
汽车CAN总线入门,通俗易懂_第19张图片

CAN波特率和位同步

由于CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点之间使用约定好的波特率进行通讯,特别地,CAN还会使用位同步的方式来抗干扰,吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。

位时序分解
为了实现位同步,CAN协议把每一个数据位的时序分解成SS段,PTS段,PBS1段,PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,而一个完整的数据位有8~25个Tq组成。

汽车CAN总线入门,通俗易懂_第20张图片

你可能感兴趣的:(汽车电子,can,autosar)