微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线基础知识(三)

CAN总线基础知识(三)

时间:12-15 来源:互联网 点击:

实。

(6) 帧结束:指示遥控帧的结束

遥控帧和数据帧:

  • 数据帧和遥控帧之间的不同

  1. 遥控帧没有数据域,在仲裁域里的RTR位是隐性电平,而数据帧RTR则为显性的。
  2. 没有数据的数据帧与遥控帧可以通过RTR为来区分

  • 遥控帧没有数据域,其数据长度码用来干什么?

  1. 遥控帧的数据长度码的值表示对应请求的数据帧的数据长度码。

  • 没有数据域的数据帧用来干什么?

  1. 例如,数据帧可以被各单元用来作为周期连接确认/应答,或者仲裁域本身带有实质性信息。

1.4 错误帧

这个帧用来通知在传输期间发生了一个错误,错误帧由一个错误标志和一个错误定界符组成,错误帧由CAN的硬件来发送。图24显示了错误帧的结构。

(1) 错误标志:有2种错误标志类型:主动错误和被动错误标志

a)主动错误标志:6个显性位

b) 被动错误标志:6个隐性位

(2) 错误定界符:由8个隐性位组成。

注1:错误标志重叠:取决于连接到总线上的各单元检测出错误的时间,错误标志可能一个重叠在另一个上,总共可达12bit长度。

注2:主动错误标志:处于主动错误状态的单元检测出错误时输出的错误标志。

注3:被动错误标志:处于被动错误状态的单元检测出错误时输出的错误标志。

1.5 过载帧

这个帧被接收单元用来通知还没有准备好接收帧。它由一个过载标志和一个过载定界符组成。图25显示了错误帧的结构。

(1) 过载标志:由6个显性位组成,过载标志与错误帧的主动错误标志具有相同的结构。

(2) 过载定界符:由8个隐性位组成,过载定界符与错误帧的错误定界符具有相同的结构。

注1:错误标志重叠:向错误标志一样,取决于时间,过载标志可能一个重叠在另一个上,总共可达12bit长度。

1.6 帧间间隔

这个帧用来隔开数据帧和遥控帧。数据和遥控帧可通过插入帧间间隔与前面传输的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。

过载帧和错误帧前不能插入帧间间隔。如图26所示。

(1)间隔:由3个隐性位组成。在间隔期间如果检测到显性电平,则必须发送过载帧,然而,如果间隔的第3bit是显性电平,间隔被认为是SOF

(2)总线空闲:是隐性电平,长度没有限制(它可以是0bit长)。当总线处于这种状态的时候,总线被认为是自由空闲的,任何单元都可以启动发送信息。

(3)暂停传输(传输暂停期):有8个隐性位组成。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。

1.7 优先级的决定

在总线空闲状态,最先开始发送消息的单元获得发送权。

多个单元同时开始发送时,各发送单元从仲裁域的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。丢失竞争的单元在下一bit进入接收操作。

仲裁的过程如图27所示。

(1)数据帧和遥控帧的优先级

具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送。

数据帧和遥控帧的仲裁过程如图28所示。

(2)标准格式和扩展格式的优先级

标准格式 ID 与具有相同ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR 位为显性位的具有优先权,可继续发送。

标准格式和扩展格式的仲裁过程如图29所示。

1.8 位填充

位填充是一种周期性重同步收/发操作的功能,为了防止接收节点间时序由于累积而导致的错误,如果5个bit持续了同样的电平,则添加1个bit的反向数据位。

如图30显示的位填充机制:

(1)发送单元的操作

在发送数据帧和遥控帧的时候,SOF-CRC段间的数据,相同电平如果持续5bit,在下一bit(第6bit)则要插入1bit与前5bit反向的电平。

(2)接收单元的操作

在接收数据帧和遥控帧的时候,SOF-CRC段间的数据,相同电平如果持续5bit,需要删除下一bit(第6bit)再接收。如果这第6bit的电平与前5bit相同,则被视为错误,且发送错误帧。

1.9 错误的种类

有5种类型的错误,可能有2个或更多的错误同时发生:

  • 位错误
  • 填充错误
  • CRC错误
  • 格式错误
  • ACK错误

表8列出了这些错误的种类、内容、错误检测帧和检测单元。

  • 位错误由向总线上输出数据帧、遥控帧、错误帧、过载帧的单元和输出ACK的单元、输出错误的单元来检测。
  • 在仲裁段输出隐性电平,但检测出显性电平时,将被视为仲裁失利,而不是位错误。
  • 在仲裁段作为填充位输出隐性电平时,但检测出显性电平时,将不视为位错误,而是填充错误。
  • 发送单元在ACK 段输出隐性电平,但检测到显性电平时,将被判断为其它单元的ACK 应答,而非位错误。
  • 输出被动错误标志(6 个位隐性位)但检测出显性电平时,将遵从错误标志的结束条件,等待检测出连续相同6 个位的值(显性或隐性),并不视为位错误。

(2) 格式错误

  • 即使接收单元检测出EOF(7 个位的隐

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top