产品咨询:19113907060
联系我们
产品咨询
资讯内容banner 咨询banner-移动

详解经典 CAN(CAN 2.0)和增强型 CAN FD数据帧的结构、字段功能及版本差异

作者:万物纵横
发布时间:2025-08-11 10:09
阅读量:

CAN 总线的数据帧是实现设备间数据传输的核心载体,其格式设计兼顾了实时性、可靠性和灵活性。以下从经典 CAN(CAN 2.0)和增强型 CAN FD两个维度,详细解析数据帧的结构、字段功能及版本差异。


详解经典 CAN(CAN 2.0)和增强型 CAN FD数据帧的结构、字段功能及版本差异(图1)


一、经典 CAN 数据帧格式(ISO 11898)


经典 CAN 数据帧由 7 个字段组成,支持 ** 标准帧(11 位 ID)和扩展帧(29 位 ID)** 两种格式,核心差异体现在仲裁场和控制场。


1. 标准帧(CAN 2.0A)


字段
长度(位)
说明
帧起始(SOF)
1
显性位(0),标志帧的开始,所有节点同步于此位。
仲裁场
12
- 11 位标识符(ID):数值越小优先级越高,ID 高 7 位不能全为隐性(1)- RTR 位:数据帧为显性(0),远程帧为隐性(1),用于区分帧类型。
控制场
6
- DLC(数据长度码):4 位,编码 0-8 字节(0b0000=0 字节,0b1000=8 字节)- 保留位(r0):1 位,发送时置显性(0),接收时忽略。
数据场
0-64
实际传输的数据,经典 CAN 固定为 0-8 字节,CAN FD 扩展至 64 字节。
CRC 场
16
- 15 位 CRC 校验码:校验范围包括 SOF、仲裁场、控制场、数据场(不包含填充位)- 1 位 CRC 界定符:隐性位(1)。
ACK 场
2
- 1 位 ACK 槽:发送方释放总线(隐性位),接收方正确接收则发送显性位(0)- 1 位 ACK 界定符:隐性位(1)。
帧结束(EOF)
7
隐性位(1),标志帧的结束。


2. 扩展帧(CAN 2.0B)


字段
长度(位)
说明
仲裁场
32
- 11 位基本 ID:与标准帧 ID 兼容- SRR 位:隐性位(1),替代远程帧的 RTR 位- IDE 位:显性(0)表示标准帧,隐性(1)表示扩展帧- 18 位扩展 ID:与基本 ID 共同构成 29 位标识符。
控制场
6
- DLC:同标准帧- 保留位(r1, r0):发送时置显性(0),接收时忽略。


3. 仲裁场优先级机制


标识符优先级:ID 数值越小优先级越高。例如,ID=0x001(二进制 00000000001)的优先级高于 ID=0x100(00010000000)。


帧类型优先级:数据帧(RTR=0)的优先级高于同 ID 的远程帧(RTR=1)。


标准帧与扩展帧优先级:当基本 ID 相同时,标准帧的 RTR 位为显性(0),扩展帧的 SRR 位为隐性(1),因此标准帧优先级更高。


二、CAN FD 数据帧格式(ISO 11898-1:2015)


CAN FD 在兼容经典 CAN 的基础上,通过以下改进提升性能:


更高数据吞吐量:数据场扩展至 64 字节,DLC 支持非线性编码(如 DLC=9 对应 12 字节)。


双速率传输:仲裁段保持 1Mbps,数据段速率可切换至 8Mbps。


增强错误校验:采用 CRC17/CRC21 算法,校验范围包括填充位和填充计数位。


1. 控制场扩展


字段
长度(位)
说明
BRS 位
1
位速率切换标志:隐性(1)时数据段切换至高速率。
ESI 位
1
错误状态指示:显性(0)表示主动错误节点,隐性(1)表示被动错误节点。
EDL 位
1
帧格式指示:显性(0)表示经典 CAN,隐性(1)表示 CAN FD。
DLC
4
- 线性编码(0-8 字节):同经典 CAN- 非线性编码(9-15 字节):DLC=9→12 字节,DLC=10→16 字节,依此类推至 DLC=15→64 字节。


2. CRC 场改进


校验范围:包括填充位(连续 5 位相同值后插入的反码位)和 3 位填充计数(格雷码)及 1 位奇偶校验位。


算法选择:数据长度≤16 字节时使用 CRC17,>16 字节时使用 CRC21。


3. ACK 场增强


CAN FD 允许接收方在2 个位时间内发送 ACK 确认,补偿速率切换带来的延迟。


三、关键字段深度解析


1. 仲裁场:标识符与优先级的核心


标识符(ID):


标准帧 ID 范围为 0x000-0x7FF(11 位),扩展帧 ID 为 0x0000000-0x1FFFFFF(29 位)。


ID 的二进制值直接决定优先级。例如,ID=0x001(00000000001)的优先级高于 ID=0x100(00010000000),因为前者第一个隐性位出现在第 11 位,而后者在第 8 位。


RTR 位:数据帧为显性(0),远程帧为隐性(1)。当 ID 相同时,数据帧优先传输。


2. 控制场:数据长度与协议扩展


DLC 编码:


经典 CAN:DLC=0-8 对应 0-8 字节,接收方对 DLC=9-15 视为无效但不报错。


CAN FD:DLC=9-15 采用非线性编码,例如 DLC=9→12 字节,DLC=10→16 字节,DLC=15→64 字节。


保留位(r0, r1):


标准帧中仅 r0 保留,发送时置 0,接收时忽略。


扩展帧中 r1 和 r0 均保留,发送时置 0,接收时期望为 1(隐性),用于未来协议扩展。


3. CRC 场:错误检测的核心


经典 CAN:


使用 CRC15 算法,校验范围包括 SOF 至数据场(不含填充位)。


示例:数据场为 0x12 0x34 时,CRC 校验码为 0x7B3(15 位)。


CAN FD:


新增 3 位填充计数(格雷码)和 1 位奇偶校验位,固定填充位插入在 CRC 域中(每 4 位插入 1 位反码)。


示例:数据长度 12 字节(DLC=9)时,使用 CRC17,校验码为 0x1234(17 位)。


4. 物理层:信号与速率的载体


差分信号:


显性位:CAN_H=3.5V,CAN_L=1.5V(差分电压 2V),表示逻辑 0。


隐性位:CAN_H=CAN_L=2.5V(差分电压 0V),表示逻辑 1。


速率与总线长度:


经典 CAN:1Mbps 时总线长度≤40m,125kbps 时可达 1km。


CAN FD:仲裁段保持 1Mbps,数据段速率可切换至 8Mbps,总线长度受速率影响。


四、帧格式示例


1. 标准帧(数据帧)


仲裁场:ID=0x123(二进制00010010011) + RTR=0(显性)
控制场:DLC=2(0010) + r0=0
数据场:0x56 0x78
CRC场:0x123(15位) + 界定符=1
ACK场:ACK槽=0(接收方应答) + 界定符=1

帧结束:7个隐性位


2. 扩展帧(数据帧)


仲裁场:
- 基本ID=0x123(11位)
- SRR=1(隐性)
- IDE=1(扩展帧标志)
- 扩展ID=0x456(18位)
- RTR=0(显性)
控制场:DLC=4(0100) + r1=0 + r0=0
数据场:0x01 0x23 0x45 0x67

CRC场:0x456(15位) + 界定符=1


3. CAN FD 帧


仲裁场:ID=0x789(11位) + RTR=0(显性)
控制场:
- BRS=1(数据段速率切换)
- ESI=0(主动错误节点)
- EDL=1(CAN FD标志)
- DLC=9(12字节)
数据场:0x00 0x11 0x22 ...(共12字节)
CRC场:
- 填充计数=0b101(格雷码,对应5)
- 奇偶校验=0
- CRC17=0x567(17位)

- 固定填充位=0x55


五、CAN FD 与经典 CAN 的兼容性


仲裁兼容性:


CAN FD 帧的仲裁场前 11 位与经典 CAN 兼容,确保混合网络中优先级仲裁正常。


当 ID 相同时,经典 CAN 数据帧的优先级高于 CAN FD 数据帧。


物理层兼容:


CAN FD 复用经典 CAN 的双绞线和终端电阻(120Ω),但支持更高的数据段速率(最高 8Mbps)。


错误处理:


CAN FD 节点检测到经典 CAN 帧时,自动切换至经典模式处理。


错误帧和过载帧保持与经典 CAN 相同的格式,但发送时机受速率切换影响。


总结


CAN 总线的数据帧格式设计体现了高效仲裁、可靠传输、灵活扩展的特点:


经典 CAN:通过标识符优先级和非破坏性仲裁,满足汽车电子等实时性场景需求。


CAN FD:通过数据场扩展(64 字节)、双速率传输(最高 8Mbps)和增强 CRC 校验,适应智能设备对大数据量和高带宽的需求。


理解数据帧格式是开发 CAN 应用的基础,尤其在汽车电子、工业自动化等领域,需根据具体场景选择帧类型并合理配置 DLC、CRC 等参数,以实现最优通信性能。

家具维修培训
- END -
分享:
留言 留言 留言咨询
电话咨询 电话咨询 电话联系
19113907060
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *