目录
2 CANFD和Classic CAN的Bit Stuffing位填充差异
1 Bit Stuffing位填充概念
当使用NRZ(NRZ = Non-Return-to-Zero不归零)位表示时,提供周期性重新同步所需的总线状态变化的frame coding帧编码方法
注:每当发送逻辑在数据中遇到一定数量(stuff width填充宽度)的等值连续位时,它会自动将一个互补值(stuff bit填充位)填充到输出位流中。接收方对数据帧和远程帧进行de-stuff去填充,即执行相反的过程。
CANFD和经典CAN帧的SOF segment、arbitration field, control field, data field和CRC sequence等,应采用Bit Stuffing的方法进行编码。每当发送方在要发送的Bit流中检测到五个连续Bit(包括stuff bit填充位)的相同值时,它应自动在实际发送的Bit流中插入一个相反Bit,见下图举例。
2 CANFD和Classic CAN的Bit Stuffing位填充差异
在CANFD帧的CRC field中,填充位应插入固定位置;它们被称为fixed stuff bit固定的填充位。
- 在填充计数的第一个Bit之前应该有一个固定的填充位,即使前一个field的最后一个Bit不是具有相同值的五个连续Bit的序列。
- 如果前一个field的最后一个Bit是一个连续五个相同值的Bit序列,则只有固定的填充位,不得有两个连续的填充位。
- 在 CRC field的每个第四位之后应插入另一个固定填充位。这种固定填充位的值应是固定填充位前一个Bit的相反数。
接收方应从Bit流中丢弃固定填充位以进行CRC校验。如果固定填充位与其前一个位具有相同的值,它将检测到格式错误。
CANFD帧的CRC field中的固定填充位数等于应用Classic经典CAN帧的位填充方法产生的最大填充Bit数。
3 举例:经典CAN中Bit Stuffing位填充
CAN ID的编号是0x211;
DLC是3;
注意:
下方是示波器截图“长图”,对应图片,查看效果最佳(可以看到“bit stuffing位填充”)!!!
4 举例:CANFD中Bit Stuffing位填充
CAN ID的编号是0x211;
DLC是3;
CANFD帧的仲裁段和数据段使用相同的比特率(也就是“数据段不加速”)。
注意:
下方是示波器截图“长图”,对应图片,查看效果最佳(可以看到“bit stuffing位填充”)!!!
5 结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注“汽车电子助手”(优快云和微信公众号同名),做您的好助手。