CAN波形时序解析

===============
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
“显性”具有“优先”性,只要有一个单元输出显性电平,总线上即为显性电平。
本文中指二进制bit位

1 数据帧组成

在这里插入图片描述

2 收发器引脚波形

在这里插入图片描述

3 波形数据解析

在这里插入图片描述

帧起始段
  • ① 帧起始位 SOF
仲裁段

仲裁段包括:11位基本ID、1位SRR、1位IDE、18位扩展ID、1位RTR。

  • ② 位填充
    位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。
    位填充的构成如图所示。

在这里插入图片描述
(1) 发送单元的工作在发送数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,在下一个位(第 6 个位)则要插入 1 位与前 5 位反型的电平。
(2) 接收单元的工作在接收数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,需要删除下一个位(第 6 个位)再接收。如果这个第 6 个位的电平与前 5 位相同,将被视为错误并发送错误帧。

  • ③ 去掉位填充后11位基本ID,0x00。
  • ④ SRR位,扩展格式,代替标准帧的 RTR 位。
  • ⑤ IDE位,扩展格式,识别符扩展位 。标准格式里的 IDE 位为“显性”,而扩展格式里的 IDE 位为“隐性”。
  • ⑥ 去掉位填充后的18位扩展ID,00 0001 0011 0001 0100,得到0X01314。
  • ⑦ RTR位,仲裁段的最后一位,该位在 数据帧 里必须为“显性”,而在 远程帧 里必须为“隐性”。

在这里插入图片描述

控制段

控制段包括:1位r1、1位r0、4位DLC长度码。

  • ⑧ r1位,保留位,必须以显性电平发送。但接收方可以接收任意电平。
  • ⑨ r0位,保留位,必须以显性电平发送。但接收方可以接收任意电平。
  • ⑩ DLC位,4位数据长度码,必须为 0~8 字节。0x8表示数据长度是8个字节。数据长度码和字节数的关系如表所示。
    在这里插入图片描述

数据段

在这里插入图片描述

数据段可包含 0~8 个字节的数据。从 MSB(最高位)开始输出。


在这里插入图片描述

CRC段

CRC段包括:CRC校验码和CRC界定符。

  • ⑫ CRC段,15位CRC校验码。
  • ⑬ CRC界定符,用于分割后面的ACK 段 。

在这里插入图片描述

ACK段
  • ⑭ ACK 段发送 2 个位的隐性位。

第一位若为显性,表示应答ACK,接收方收到正确消息。若为隐性,表示应答无NAK。图中只有一个发送节点,信号为NAK。

第二位是应答界定符,是一个必须为“隐性”的位。

帧结束
  • ⑮ 帧结束由7位显性位构成。

版权声明:本文为qq_17208955原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。