can 协议 一共 多少位

CAN 协议总位数详解

CAN 协议标准帧总位数:44-108 位(取决于数据长度)
CAN 协议扩展帧总位数:64-128 位(取决于数据长度)

一、总位数构成原理

CAN 协议帧总位数由基础结构位数据位组成,计算公式为:
  • 标准帧总位数 = 47 + 8 × 数据字节数
  • 扩展帧总位数 = 66 + 8 × 数据字节数

二、标准帧(CAN 2.0A)详细位构成(11 位 ID)

帧字段位数说明
帧起始 (SOF)1 位显性位 (0),帧开始标志
仲裁场13 位11 位 ID + 1 位 RTR (远程请求) + 1 位 IDE (标识符扩展,标准帧为 0)
控制场6 位IDE (0)+r0 (保留)+4 位 DLC (数据长度 0-8)
数据场0-64 位0-8 字节数据 (每字节 8 位)
CRC 场16 位15 位 CRC 校验 + 1 位 CRC 界定符 (1)
ACK 场2 位1 位 ACK 槽 + 1 位 ACK 界定符 (1)
帧结束 (EOF)7 位隐性位 (1)
帧间隔 (IFS)3 位隐性位 (1),帧间最小间隔
标准帧总位数计算示例(8 字节数据):
1 + 13 + 6 + 64 + 16 + 2 + 7 = 108 位

三、扩展帧(CAN 2.0B)详细位构成(29 位 ID)

帧字段位数说明
帧起始 (SOF)1 位显性位 (0)
仲裁场32 位29 位 ID + 1 位 SRR (替代远程请求) + 1 位 IDE (1,表示扩展帧) + 1 位 RTR
控制场6 位r1+r0 (保留)+4 位 DLC
数据场0-64 位0-8 字节数据
CRC 场16 位15 位 CRC + 1 位界定符
ACK 场2 位ACK 槽 + 界定符
帧结束 (EOF)7 位隐性位 (1)
帧间隔 (IFS)3 位隐性位 (1)
扩展帧总位数计算示例(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 扩展协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值