我如何计算标准CAN 2.0A数据帧中的填充码

时间:2016-02-05 15:24:51

标签: can-bus canopen bitstuffing

我有一个CAN标准2.0A帧,其中包含8个字节的DATA。 例如 CAN帧数据“00 CA 22 FF 55 66 AA DF”(8字节) 现在我想检查在这个CAN帧中添加多少个填充位(位填充)。用于计算最坏情况比特填充场景的standers公式如下: 64 + 47 + [(34 + 64-1)/ 4] - > 64; :: 数据位和47 ::开销位2.0A

如何计算此示例CAN消息中的实际填充位? 任何评论,建议都会受到热烈欢迎。

1 个答案:

答案 0 :(得分:1)

没有办法以数学方式"计算"填充的比特。您需要构造帧(在位级别上),遍历位和计数。

您可以在下面的链接中阅读有关比特填充的更多信息。
https://en.wikipedia.org/wiki/CAN_bus#Bit_stuffing

基本原则:
1.在位级上构造罐框架
2.从帧起始位开始。当找到5个相同极性的连续位时,插入一个相反极性的位。
3.继续使用CRC分隔符(不包括CRC分隔符)