CAN总线简介

  • Post author:
  • Post category:其他


一、概念

CAN是Controller Area Network的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。

二、总线拓扑图

CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

这里写图片描述

三、CAN的特点

1、多主机控制

在总线空闲时,所有的单元都可开始发送消息(多主控制)。

最先访问总线的单元可获得发送权(CSMA/CA方式*1)。

多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。

2、消息的发送

在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

3、系统的柔软性

与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。

4、通信速度

根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。

5、远程数据请求

可通过发送“遥控帧” 请求其他单元发送数据。

6、错误检测功能•错误通知功能•错误恢复功能

所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。

7、故障封闭

CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

8、连接

CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

四、错误

1、错误的种类

(1)主动错误状态

主动错误状态是可以正常参加总线通信的状态。处于主动错误状态的单元检测出错误时,输出主动错误标志。

(2)被动错误状态

被动错误状态是易引起错误的状态。处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。

处于被动错误状态的单元检测出错误时,输出被动错误标志。另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8个位的隐性位)。

(3)总线关闭态

总线关闭态是不能参加总线上通信的状态。信息的接收和发送均被禁止。这些状态依靠发送错误计数和接收错误计数来管理,根据计数值决定进入何种状态。错误状态和计数值的关

系如表1及图4所示。

这里写图片描述

这里写图片描述

2、错误计数值

发送错误计数值和接收错误计数值根据一定的条件发生变化。错误计数值的变动条件如表2所示。一次数据的接收和发送可能同时满足多个条件。错误计数器在错误标志的第一个位出现的时间点上开始计数。

这里写图片描述

五、CAN协议的基本概念

CAN协议如表3所示涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层。

CAN协议中关于ISO/OSI基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图5所示。

这里写图片描述

这里写图片描述

数据链路层分为MAC子层和LLC子层,MAC子层是CAN协议的核心部分。数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程。具体地说,就是消息的帧化、仲裁、应答、错误的检测或报告。数据链路层的功能通常在CAN控制器的硬件中执行。

在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地说,信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义*1。这些必须由用户根据系统需求自行确定。

【注】 *1 驱动器及总线的电气特性等在博世公司的CAN规格书中没有定义。但在CAN的ISO标准(ISO11898、ISO11519-2等)中分别定义了总线及驱动器的电气特性等。

六、CAN协议及标准规格

1、ISO标准化的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追加新规约后的版本。

图6表示CAN协议和ISO11898及ISO11519-2标准的范围。

这里写图片描述

2、ISO11898和ISO11519-2的不同点

(1) 物理层的不同点

如图6所示,ISO11898和ISO11519-2在CAN协议中物理层的标准有所不同。CAN协议的物理层如图7所示,定义了三个子层,ISO11898和ISO11519-2在物理层中的PMA层和MDI层有所不同。

这里写图片描述

在物理层(PMA层、MDI层),ISO11898和ISO11519-2的主要不同点如表4所示

这里写图片描述

这里写图片描述

这里写图片描述

(2) 驱动IC的选择

ISO11898与ISO11519-2的物理层的规格不同,每种规格需要有专门的驱动IC与之相对应。ISO11898及ISO11519-2所对应的主要的驱动IC如表5所示。

这里写图片描述

3、CAN和标准规格

不仅是ISO,SAE*1等其它的组织、团体、企业也对CAN协议进行了标准化。基于CAN的各种标准规格如表6所示,如图10所示,面向汽车的通信协议以通信速度为准进行了分类。

这里写图片描述

这里写图片描述

七、CAN协议

1、帧的种类

通信是通过以下5种类型的帧进行的。

• 数据帧

• 遥控帧

• 错误帧

• 过载帧

• 帧间隔

另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11个位的标识符(Identifier: 以下称ID),扩展格式有29个位的ID。

各种帧的用途如表7所示,各种帧的构成如图11~图15所示。

这里写图片描述