Edit online

通信报文

9 Aug 2024
Read time: 1 minute(s)

CAN 通信报文类型包含数据帧、远程帧、错误帧、过载帧和间隔帧。



1. CAN 标准格式和扩展格式数据帧


2. CAN 标准格式和扩展格式远程帧


3. CAN 错误帧、过载帧、间隔帧
1. 数据帧/远程帧描述
数据/远程帧 描述
SOF 帧起始,1 bit,用于同步总线上节点的单个显性位。
ID-A 标识符 A,11 bits,对应标准格式中的 11 位标识符(ID10~ ID0),或扩展格式中 29 位标识符的前 11-bit(ID28~ ID18)。
RTR 远程发送请求位,1 bit,显示当前报文是数据帧(显性 0)还是远程帧(隐性 1)。

当某个数据帧和远程帧有相同标识符时,数据帧始终优先于远程帧仲裁。

SRTR 代替远程发送请求位,1 bit,在扩展格式中以替代标准格式相同位置的 RTR 位。
IDE 标识符扩展位,1 bit,显示当前报文是标准格式(显性 0)还是扩展格式(隐性 1)。

当某标准帧和扩展帧有相同基标识符时,标准帧将始终优先于扩展帧仲裁。

ID-B 标识符 B,18 bits,扩展格式中 29 位标识符的剩余 18 bit(ID17 ~ ID0)。
R1 保留位,始终是显性位。
R0 保留位,始终是显性位。
DLC 数据长度代码, 4 bits,包含 0 ~ 8 中任一数值。
  • 数据帧用于表示包含的数据字节数量。
  • 远程帧用于表示从其他节点请求的数据字节数量。
数据字节 表示数据帧的数据负载量,该字节数量应与 DLC 的值匹配。首先发送数据字节 0,各数据字节优先发送最高有效位。
CRC CRC 序列是一个 15-bit 的循环冗余校验码。具体实现方式为:
  1. 被除多项式的系数由 SOF、仲裁场、控制场、数据场(若存在)及 15 位(最低系数)0 组成的未经填充的位流给定,而生成多项式为 x15+x14+x10+x8+x7+x4+x3+x0
  2. 被除多项式被生成多项式除(按模 2 计算),余数即为将要发送到总线上的 CRC 序列。
  3. 发送节点和接收节点均采用相同方法生成 CRC 校验码,并与发送节点送出的 CRC 校验码进行比较:
    • 若出错,控制器依据仲裁原则及受损报文优先原则对已损坏报文自动重发。
CRC 分界符 分界符,1 bit,隐性位。
ASK 槽 应答槽,1 bit,用于接收节点,表示是否已成功接收数据帧或远程帧。发送节点将在应答槽中发送一个隐性位,若接收到的帧无错误,则接收节点用一个显性位以示应答。
ASK 分界符 分界符,1 bit,隐性位。
EOF 帧结束,7 bits,隐性位,标志着数据帧或远程帧的结束。