CAN帧介绍及工作原理解析

1 数据帧

数据帧的构成(下图中的D为显性电平,R为隐性电平):

数据帧是由7个段构成,其各个段的含义如下:

(1) 帧起始:表示数据帧开始的帧

SOF由1位显性位组成。

(2) 仲裁段:表示该帧优先级的段

标准数据帧与扩展数据帧在此段不同,标准数据帧的仲裁段由"11位基本ID + 1位RTR"组成,而扩展数据帧的仲裁段由"11位基本ID + 1位SRR + 1位IDE + 18位扩展ID + 1位RTR"组成。注:基本ID的高7位不能全为隐性电平。

(3) 控制段:表示数据的字节数及保留位的段

标准数据帧与扩展数据帧在此段不同,标准数据帧的控制段由"1位IDE + 1位r0 + 4位DLC"组成,而扩展数据帧的控制段由"1位r1 + 1位r0 + 4位DLC"组成。

注:

IDE为0时代表标准数据帧,为1时代表扩展数据帧;

r0和r1为保留位;

DLC表示数据长度,即代表数据段中的数据长度,如0001表示数据长度为1Byte;0010表示数据长度为2Byte; 0011表示数据长度为3Byte; 以此类推… 但数据长度最大为8Byte。

(4) 数据段:数据的内容,可发送0~8个字节的数据,从MSB(最高但)开始输出。

(5) CRC段:检查帧的传输错误的段

(6) ACK段:表示确认正常接收的段

由数据帧图可以看出,发送单元的ACK段是由2位隐性电平组成,接收单元的ACK段是由1位显示电平+1位隐性电平组成。

(7) 帧结束:表示数据帧结束的段,由7位隐性位组成。

2 遥控帧

接收单元向发送单元请求发送数据所用的帧。遥控帧的构成:

对遥控帧的理解可以参考数据帧。

(1) 数据帧和遥控帧的不同

  • 遥控帧的RTR位为隐性位,没有数据段
  • 没有数据段的数据帧和遥控帧可以通过RTR位区别开来
  • (2) 遥控帧没有数据段,数据长度码DLC该如何表示?

  • 遥控帧的数据长度码DLC以所请求数据帧的数据长度码表示
  • (3) 没有数据段的数据帧有何用途?

  • 例如,可用于各单元的定期连接确认/应答,或仲裁段本身带有实质性信息的情况下
  • 3 错误帧

    用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成。

    (1) 错误标志包括主动错误标志和被动错误标志两种:

  • 主动错误标志:6位的显性位 (处于主动错误状态的单元检测出错误时输出的错误标志)
  • 被动错误标志:6位的隐性位 (处于被动错误状态的单元检测出错误时输出的错误标志)
  • (2) 错误界定符由8位的隐性位组成

    4 过载帧

    过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。

    (1) 过载标志:6个显性位 (过载标志的构成与主动错误标志的构成相同)

    (2) 过载界定符:8个隐性位 (过载界定符的构成与错误界定符的构成相同)

    5 帧间隔

    帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。
    过载帧和错误帧前不能插入帧间隔。

    (1) 间隔:3个隐性位

    (2) 延迟传送:8个隐性位。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段

    6 优先级的决定

    影响优先级的因素主要有三个:

    1. 多个单元同时开始发送时,各发送单元从仲裁段的第一位开始仲裁。连续输出显性电平最多的单元可继续发送。
    2. 若ID相同,数据帧与遥控帧在总线上竞争,则数据帧具有优先权。
    3. 若ID相同,标准数据帧与扩展数据帧在总线上竞争,则标准数据帧具有优先权。

    7 位填充

    (1) 发送单元的工作

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

    (2) 在接收数据帧的遥控帧时,SOF~CRC段间的数据,相同电平如果持续5位,需要删除下一个位(第6个位)再接收。如果这个第6位的电平与前5位相同,将被视为错误并发送错误帧。

    8 错误的种类

    9 错误帧的输出

    检测出满足错误条件的单元输出错误标志通报错误。

    处于主动错误状态的单元输出的错误标志为主动错误标志;处于被动错误状态的单元输出的错误标志为被动错误标志。

    发送单元发送完错误帧后,将再次发送数据帧或遥控帧。

    错误标志输出时序如下图:

    10 位时序

    由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。一个位可分为4个段:

  • 同步段 (SS)
  • 传播时间段 (PTS)
  • 相位缓冲段1 (PBS1)
  • 相位缓冲段2 (PBS2)
  • 这些段又由可称为Time Quantum的最小时间单位构成。

    1位分为4个段,每个段又由若干个Tq构成,这称为位时序。

    1位由多少个Tq构成,每个段又由多少个Tq构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。

    物联沃分享整理
    物联沃-IOTWORD物联网 » CAN帧介绍及工作原理解析

    发表评论