CAN协议中标识符0x03E的位填充如何应用?
CAN总线位填充规则应用解析
首先明确CAN总线的核心位填充规则:在发送比特流的过程中,只要连续出现5个相同极性的比特(包括已插入的填充位),就必须在第5个相同比特之后立即插入1个相反极性的填充位。
针对你提到的标识符0x03E(二进制为00000111110),正确的位填充过程如下:
- 先处理前5个连续的0:发送完第5个0后,已出现5个连续0,因此插入1个填充位1,此时比特流为
000001。 - 接下来处理后续的5个1和最后的0:
- 发送第1个原始1:比特流末尾变为
11(连续2个1); - 发送第2个原始1:连续3个1;
- 发送第3个原始1:连续4个1;
- 发送第4个原始1:此时加上之前的填充位1,已凑成5个连续1,必须插入1个填充位0,比特流变为
00000111110; - 发送第5个原始1:比特流末尾变为
01,无连续相同问题; - 发送最后的原始0:最终比特流为
0000011111010。
- 发送第1个原始1:比特流末尾变为
所以正确的结果是第二种情况:传输4个连续1后添加填充位,得到比特流0000011111010。
内容的提问来源于stack exchange,提问作者SUPERPIE
相关产品推荐
相关产品推荐

