CAN数据帧详解
2026/4/17 21:05:33 网站建设 项目流程

CAN 数据帧(Data Frame)是 CAN 总线最核心、最常用的报文类型,用于节点间传输有效数据。数据帧如下图

CAN2.0A 标准帧

一、整体结构

一帧由7 个字段组成:SOF → 仲裁段 → 控制段 → 数据段 → CRC 段 → ACK 段 → EOF

二、逐字段详解

1. 帧起始 (SOF)
  • 1 位显性位(逻辑 0)
  • 作用:标志帧开始,同步所有节点时钟
2. 仲裁段 (Arbitration Field)
  • 12 位(标准帧)
  • ID (11 位)
    • 报文唯一标识,决定优先级
    • ID 越小,优先级越高
  • RTR (1 位)
    • 0 = 数据帧(发送数据)
    • 1 = 远程帧(请求数据)
3. 控制段 (Control Field)
  • 6 位
  • IDE (1 位)
    • 0 = 标准帧(11 位 ID)
    • 1 = 扩展帧(29 位 ID)
  • r0 (1 位):保留位,固定为0
  • DLC (4 位):数据长度码
    • 取值0~8,表示数据场字节数
4. 数据段 (Data Field)
  • 0~8 字节(0~64 位)
  • 作用:承载实际传输数据
  • 规则:高位字节先发送(MSB first)
5. CRC 段 (CRC Field)
  • 16 位
  • 15 位 CRC 校验码:从 SOF 到数据场计算
  • 1 位 CRC 界定符:隐性位(1)
  • 作用:检测传输错误
6. ACK 段 (ACK Field)
  • 2 位
  • ACK 槽 (1 位)
    • 发送方发隐性位(1)
    • 接收正确 → 拉低为显性位(0)应答成功
  • ACK 界定符 (1 位):隐性位(1)
7. 帧结束 (EOF)
  • 7 位,全为隐性位(1)
  • 作用:标志帧结束

三、标准帧 vs 扩展帧

  • 标准帧 (CAN2.0A)11 位 ID,结构简单、常用
  • 扩展帧 (CAN2.0B)29 位 ID,可容纳更多报文

四、核心特点

  1. 优先级仲裁:ID 越小越优先,非破坏性仲裁
  2. 可靠传输:CRC 校验 + ACK 应答 + 自动重传
  3. 数据长度0~8 字节(CAN FD 可达 64 字节)
  4. 多主通信:任意节点可主动发送

五、总结

SOF 起、ID 定、数据传、CRC 检、ACK 答、EOF 收。

CAN2.0B 扩展数据帧(Extended Frame)

一、核心区别一句话

  • 标准帧:11 位 ID
  • 扩展帧:11 位基础 ID + 18 位扩展 ID = 29 位 ID

二、扩展帧完整结构

SOF →仲裁段(变长)→ 控制段 → 数据段 → CRC 段 → ACK 段 → EOF

只有仲裁场段和标准帧不一样,其他字段完全相同

三、扩展帧仲裁段(最重要)

29 位 ID + 3 位控制位 = 32 位结构:

  1. ID10~ID0基 ID 11 位
  2. SRR 位:1 位(隐性 1,替代标准帧 RTR)
  3. IDE 位:1 位(隐性 1,表示扩展帧)
  4. ID28~ID11扩展 ID 18 位
  5. RTR 位:1 位(0 = 数据帧,1 = 远程帧
  6. r1、r0:保留位,固定 0

四、关键位含义

  • SRR = 1:替代标准帧的 RTR,一定是隐性
  • IDE = 1表示这是扩展帧
    • 标准帧 IDE=0
    • 扩展帧 IDE=1
  • 总 ID = 11+18 = 29 位

五、标准帧 vs 扩展帧

项目标准帧扩展帧
ID 长度11 位29 位
IDE 位0(显性)1(隐性)
仲裁场长度19 位32 位
优先级更高较低
适用汽车常规信号报文多、复杂系统

六、最重要结论

  1. 扩展帧 = 29 位 ID
  2. 只有仲裁段结构不同,其余场完全一样
  3. 标准帧优先级 > 扩展帧(因为 IDE=0 < IDE=1)
  4. 数据段依然0~8 字节

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询