CAN 协议标准帧总位数:44-108 位(取决于数据长度)CAN 协议扩展帧总位数:64-128 位(取决于数据长度)
CAN 协议帧总位数由基础结构位和数据位组成,计算公式为:
- 标准帧总位数 = 47 + 8 × 数据字节数
- 扩展帧总位数 = 66 + 8 × 数据字节数
标准帧总位数计算示例(8 字节数据):
1 + 13 + 6 + 64 + 16 + 2 + 7 =
108 位
扩展帧总位数计算示例(8 字节数据):
1 + 32 + 6 + 64 + 16 + 2 + 7 =
128 位
CAN 协议采用位填充(Bit Stuffing)防止长连 0 或长连 1:
- 连续 5 个相同电平后,必须插入 1 个相反电平
- 填充位不计入帧长度,但会增加实际传输位数
标准帧最大填充位数:约 (29+8N)/4+1 ≈ 9 位(当 N=8 时)
扩展帧最大填充位数:约 18 位(最坏情况)
CAN 协议数据帧总位数范围:
- 标准帧:44-108 位(无数据时 44 位,8 字节数据时 108 位)
- 扩展帧:64-128 位(无数据时 64 位,8 字节数据时 128 位)
以上位数仅包含数据帧(最常见类型),CAN 协议还定义了遥控帧、错误帧等,但用户通常关注的是数据帧。
注:计算基于 ISO 11898-1 标准,不含 CAN FD 扩展协议。