CAN总线技术基本概念简述

参考文献
[1] 陈海红. CAN总线技术与嵌入式应用研究[M]. 第一版. 赤峰:内蒙古科学技术出版 , 2015.
[2] 亢雪琳. 基于STM32的CAN总线通信设计[D]. 吉林大学, 2013.

1 CAN总述

CAN(Controller Area Network,控制器局域 )总线技术属于现场总线的范畴,最初被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制 络;现如今其应用领域已经扩大到智能建筑、机械工业、机器人等多个领域。

CAN总线是广播类型的总线,因此所有节点都可以侦听到所有传输的 文,无法将 文单独发送给指定节点;但是,CAN硬件能够提供本地过滤功能,让每个节点对 文有选择性地做出响应。

总线使用不归零位填充,模块以线与逻辑连接到总线:如果只有一个节点向总线传输逻辑0,那么不管有多少个节点向总线传输逻辑1,整个总线都处于逻辑0状态。

CAN标准定义四种不同的 文类型。 文使用逐位仲裁机制来控制对总线的访问,且每条 文都带有优先级标记。此外,CAN标准还为错误处理和消除定义了详细的方案。

CAN总线特点可总结如下:

  1. CAN总线的传输信 使用差分电压传送,用显性表示0,隐性表示1
  2. CAN总线理论上节点数几乎不受限制,但受电气特性限制最多能接110个节点
  3. 很远的数据传输距离(10km),高速的数据传输速率(1MB/s)
  4. 可靠的错误处理和检错机制:自动重发遭到破环的信息;节点在错误严重的情况下将自动退出总线
  5. 可采用多主或对等 络结构, 络上任一节点均可主动发送 文
  6. 采用逐位仲裁机制访问总线,减少了总线冲突仲裁的时间

关于总线系统的可靠性
从总线系统数据的角度看,可靠性就是指对传输过程中产生的数据错误的辨别能力。可通过测量一个系统存留的数据错误的概率来衡量一个系统的可靠性。存留的数据错误是指数据在传输过程中出现的没能被系统探测出来的错误。因此CAN总线具有极强的可靠性。

关于总线系统的实时性
文的传输延迟包括4个部分:帧的延迟、软件延迟、处理器延迟和总线访问延迟

  1. 帧的延迟:来自帧的长度和波特率。因此在CAN中,扩展帧对传输延迟时间的影响大于标准帧。
    传输的延迟是可变的,一是因为 文的优先级会导致每次总线访问时间不同,二是因为数据本身的值引起填充位填充数量的不同,从而导致数据帧长度的不同。
  2. 软件延迟:与CAN对象的数量和数据长度相关。
    工业过程常常是周期性的,因而要求周期性的数据传输。采用最短的过程周期时间可以为每个对象保证最大总线访问时间。高时间要求的应用系统通常要求毫秒级精度的时钟,这在集中控制系统中是很容易实现的,但在分布式系统中,如利用CAN总线连接大量的传感器和控制器系统中,由于没有一个全局的系统节拍,有一定的困难,可以通过在保证充分精度的条件下同步所有节点的局部时钟来解决。

2 CAN模型

CAN 层的定义与开放系统互连模型 OSI 一致,CAN 的规范定义了模型的最下面两层数据链路层和物理层。

2.2数据链路层

数据链路层分为逻辑链路子层LLC和媒体访问控制子层MAC:
LLC子层:为数据传输提供服务;
MAC子层:负责数据的封包和拆包、帧的结构、错误检查与标识;

3 CAN帧结构

于1991年正式发布的CAN2.0版包括两种规范,A规范和B规范,A规范给出了CAN 文标准格式,即CAN2.0A 帧,拥有11位标识符;B规范中给出了CAN 文扩展格式,即CAN2.0B帧,拥有29位标识符。扩展格式相比于标准格式,可以容纳更多数量设备之间的通讯。

关于标识符
标识符是数据帧和远程帧的一个域,它给出的不是目标节点地址,而是 文本身的特征。信息以广播方式在 络上发送,所有节点都可以接收到,节点通过标识符判定是否接收这帧信息。

CAN总线 文的一帧由帧起始、控制域、仲裁域、数据域和CRC校验域组成。CAN总线规定了4种帧结构,分别是数据帧、远程帧、错误帧和过载帧,以及帧间隔。

  1. 数据帧:用于发送节点向接收节点传送数据的帧
  2. 远程帧:用于一个节点向另一个节点请求数据的帧
  3. 错误帧:任何节点检测到总线错误时都会发出该帧
  4. 过载帧:接收节点用于表明自己没有做好接收准备的帧
  5. 帧间隔:用于分离数据帧或远程帧与前面的帧。

CAN为短帧结构,因而可以缩短传送时间,因而传输时间段受干扰的概率低。

3.1数据帧

数据帧用于发送节点向接收节点传送数据。

3.3错误帧

任何节点检测到总线错误时都会发送错误帧。
错误帧由两个不同的域组成。第一个域是由不同节点提供的错误标志的叠加,第二个域是错误界定符

  1. 接收器要求延迟下一数据帧或延迟帧的到达;
  2. 在帧间隔 文中,间歇场域的第一和第二位检测到显性位;
  3. 当一个AN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位时,节点会发送一个过载帧,而非错误帧。

3.5 帧间隔

帧间隔用于分离数据帧或远程帧与前面的帧。
数据帧和远程帧通过插入帧间隔的方法将本帧与前帧分开。注意过载帧和错误帧之间没有帧间隔,多个过载帧之间也没有帧间隔。
帧间隔由间歇域、暂停发送域和总线空闲部分组成,只有刚发送出前一 文的错误消极节点才需要暂停发送域。

4 CSMA/CD和逐位仲裁机制

CAN总线上的节点级别相同,无主从之分,都可以是发送节点或接收节点。只要总线空闲,节点即可发送数据;发送节点不会指定接受节点,而由接收节点决定是否接收该数据。
由于所有节点都可以同时发送数据,因而会出现总线竞争问题,可采用CSMA/CD机制解决。

CSDMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测)
载波侦听(Carrier Sense):指 络上各个节点在发送数据前,都要确认总线是否空闲(有无数据传输),若总线忙,则不发送数据;若总线空闲,立即发送准备好的数据。
多路访问(Multiple Access):指 络上所有节点使用同一条总线收发数据,且发送数据形式为广播式。
冲突检测(Collision Detection):是指发送节点在发出信息帧的同时,还必须监听媒体,判断是否发生冲突(同一时刻,有无其他节点也在发送信息帧)。

采用CSMA机制访问总线,可以允许多个节点挂接在同一个 络上。节点在发送信 之前,先对总线上的信 进行检测,只有总线处于空闲状态时才运行发送,当总线上有多个节点同时发送数据时,通过逐位仲裁机制解决。

逐位仲裁机制的工作原理:

  1. 在CAN总线上发送的每一条 文都具有唯一的一个11位或29位的数字ID作为标识符。CAN总线状态取决与二进制数0而不是1,所以ID 越小,则该 文拥有越高的优先级。
  2. 当具有相同标识符的数据帧和远程帧在总线发生冲突时,因为仲裁域的最后一位时RTR位,在数据帧中为显性,远程帧为隐性,因此数据帧优先发。
  3. 标准格式ID与具有相同ID的扩展格式的数据帧在总线上相遇时,标准格式的RTR位为显性,扩展格式的SRR位为隐性,因此标准格式的数据帧优先发送;(这也意味着在同一条总线中标准格式数据帧和扩展格式数据帧不会相互冲突)
  4. 标准格式ID与具有相同ID的扩展格式的远程帧在总线上相遇时,虽然标准格式的RTR位同扩展格式的SRR位相同,但下一顺位中,标准格式的IDE为显性,扩展格式的IDE为隐性,因此标准格式的远程帧优先发送。

总结

  1. CSMA/CD机制3大功能:载波侦听、多路访问、冲突检测;
  2. 逐位仲裁机制用于当总线上由多个节点同时发送数据时,决定各帧发送的优先级,其中:
    ●ID 越小, 文优先级越高
    ●ID 相同,数据帧比远程帧优先级更高
    ●ID 相同,标准格式数据帧和远程帧优先级高于扩展格式数据帧与远程帧

5 CAN通信同步

串行通信必须解决通信中的发送器和接收器之间的同步问题。
CAN总线没有专用的时钟信 线,同步信息包含于总线上传输的数据之中。总线信息从隐性到显性的跳变提供了同步信息。如果总线上出现了多个连续的显性或隐性信息,就会影响同步的提取,因此CAN采用位填充机制

位填充一般指数据所占据数据位没有被全部使用时,在没有使用的数据位上采用“0”或“1”填充。在CAN中,位填充是为防止突发错误而设定的功能。

位填充机制的规则是:在一帧中的起始帧、仲裁域、控制域、数据域和CRC域部分,当发送器在待发送的比特流中检测到5个连读的具有相同数值的位时,自动插入1个补位码(添加一个位的反型数据,例如在5个隐性位后添加1个显性位),数据帧和远程帧的其余部分(CRC界定符、应答域和帧结束)具有固定格式,不进行位填充。错误帧和过载帧也具有固定格式,不进行位填充。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月8日
下一篇 2021年1月8日

相关推荐