收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
负载率R = 每秒钟实际上传输的所有数据的BIT总数A / 每秒钟理论上所能传输的BIT总数T
很简单的,对于指定了波特率的某个CAN总线,上述公式的分母T是恒定的。就比如上述示例中,波特率为500kbps的总线上,理论上每秒钟能够传输500000个BIT。而如果波特率为250kbps,那么就能传输250000个BIT。所以,我们只要计算上述公式中的分子A即可。
每秒钟实际上传输的所有数据的BIT总数A =
[该秒内所发送的所有ID1报文的所有BIT总数A1] +
[该秒内所发送的所有ID2报文的所有BIT总数A2] +
…… +
[该秒内所发送的所有IDn报文的所有BIT总数An]
其中:
该秒内所发送的所有ID1报文的所有BIT总数A1 = ID1的每一个报文的BIT总数Z * ID1的发送次数K
由于ID1的发送次数K是明确的,比如按照50ms的间隔发送,那就意味着一秒钟内的发送次数是20次。所以,我们只需要计算出“ID1的每一个报文的BIT总数Z”即可;
ID1的每一个报文的BIT总数Z = 实际报文数据帧的BIT总数Zg + 帧间隔的BIT总数Zy
对于标准帧和扩展帧,上述的值是不一样的,如下:
- 对于CAN标准帧:假设数据帧长度恒定为8个字节,可以得到每一个数据帧最大长度共计108bit,分别为:帧起始(1bit)、仲裁域(12bit)、控制域(6bit)、数据域(8×8bit)、循环冗余码域(15bit)、1bit分隔符、应答域(2bit)和帧结尾(7bit);
- 对于CAN扩展帧:假设数据帧长度恒定为8个字节,可以得到每一个数据帧最大长度共计128bit,分别为:帧起始(1bit)、仲裁域(32bit)、控制域(6bit)、数据域(8×8bit)、循环冗余码域(15bit)、1bit分隔符、应答域(2bit)和帧结尾(7bit);
而帧间隔的BIT总数,根据CAN协议的规定,都是3个BIT。
所以,对单个数据帧来说,完成一帧标准帧的全套发送行为总共需要108 + 3 = 111个BIT,完成一帧扩展帧的全套发送行为总共需要128 + 3 = 131个BIT。
至此,所有的元素取值都已经计算清楚,接下来我们进行整合计算:
假设总线波特率为500kbps,工作于标准帧模式,共有5个ID,每个ID按照50ms的间隔进行发送,那么此时的总线负载率计算如下:
负载率R
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!