若要了解如何在 CAN 局部联网中使用唤醒帧 (WUF),必须首先了解 CAN 帧的结构。在图 3-1 中,高电平信号表示 CAN 总线是隐性的(逻辑 1),而低电平信号表示 CAN 总线是显性的(逻辑 0)。
使用了两种基于 ID 位数的格式。如图 3-1 所示,有一种被称为传统基帧格式 (CBFF) 的 11 位 ID 格式和一种被称为传统扩展帧格式 (CEFF) 的 29 位 ID 格式。以下是名称和说明列表:
- IDLE – 当 CAN 总线处于空闲状态时,该总线将为隐性或“1”。
- SOF – 帧起始,显性位或“0”。
- ID[10:0] - CBFF 中的基本 ID 或 EXT_ID[28:18],CEFF 中扩展 ID 的前 11 位。它们具有相同的配置位。
- EXT_ID[17:0] - CEFF 中扩展 ID 的剩余 18 位。
- RTR – 远程传输请求。“1”表示远程帧(DLC 长度为零)。“0”表示数据帧。对于 WUF,该位必须为“0”。
- IDE – 标识符。“1”表示 CEFF(扩展 ID),而“0”表示 CBFF(基本 ID)。
- FDF – FD 格式指示符,用于说明帧是传统 CAN (0) 还是 CAN FD (1)。对于 WUF,该位必须为“0”。请注意,对于 CAN-FD 帧,该 FDF 位之后的结构与任一传统 CAN 帧都不同,此处不做介绍。
- DLC – 四位数据长度代码,说明帧中有多少数据字节。8-15 的值将被解释为 8 个字节。
- SRR – 替代 RTR。始终为“1”。
- r1 – 保留位。始终为“0”。
- CRC – 15 位循环冗余校验,用于确定信息的完整性。
- Del – 定界符位。始终为“1”。
- ACK – 确认。CAN 帧的发送方将发送“1”,而 CAN 帧的所有接收方在 CRC 正确时发送“0”,在 CRC 不正确时发送“1”。
图 3-1 CAN 帧结构