beihanggl 2021-04-29 22:56 采纳率: 0%
浏览 178

CAN扩展帧按最多填充位计算是154bit?还是150bit?

CAN扩展帧,将帧间间隔3bit也计入计算;

一、不计算位填充,一帧共计131bit

1SOF+11ID+1SRR+1IDE+18ExtendedID+1RTR+1r1+1r0+4DLC+64Data+15CRC+1DEL+1ACK+1DEL+7EOF+3ITM=131bit;

二、计算位填充,一帧共计154bit

从SOF到CRC是进行位填充的部分,共计118bit,按照5位相同一填充的规则,118/5=23,

所以131+23=154;

但我看到好多图画扩展帧算上位填充共150bit,我就不知道我计算哪里有问题了,请各位

  • 写回答

1条回答 默认 最新

  • asgpt 2023-02-24 18:50
    关注

    根据CAN 2.0B协议规定,扩展帧包含SOF、ID、SRR、IDE、ExtendedID、RTR、DLC、Data、CRC、ACK、EOF等字段,其中SOF、EOF、ACK等字段不包括在总线帧长计算中。因此,在不计算位填充的情况下,扩展帧的总线帧长为131bit,这一点是正确的。

    但是,在计算位填充时,需要考虑CAN协议中位填充的规则。位填充是为了保持总线信号在一定频率范围内,从而满足总线传输的要求。CAN协议规定,每隔5个连续相同的位,都要填充一个相反的位,这就是位填充。在扩展帧中,从SOF到CRC这段区间中的所有数据都要进行位填充。按照这个规则进行计算,扩展帧的总线帧长为154bit,这一点也是正确的。

    至于您提到的一些图示中扩展帧总线帧长为150bit的情况,可能是因为这些图示没有考虑到位填充。在实际的CAN应用中,位填充是必须考虑的因素。

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法