CAN总线负载率原理及计算

A. CAN标准帧格式

CAN总线负载率原理及计算_第1张图片

B.CAN扩展帧格式

CAN总线负载率原理及计算_第2张图片

C.帧间间隔

CAN总线负载率原理及计算_第3张图片

假设

Ui各个信息帧占用总线百分比

L:为报文的总长度

C:为报文的总线占用时间      

N:为填充的位数

t:为毛速率 ( 亦称波特率 )下的位时间

则有:

L = N  + 8d + g + 13

C =  L * t

Ui = C / T

然而总线负载率是各个信息帧占用总线百分比之和

U = U1 + U2 + U3 + .....

g 为 CAN 报文中控制位的总位数 ( 标准帧 g =34 , 扩展帧 g = 54 )

g的取值是只取位填充部分除去数据段;

13:无位填充段 + 帧间间隔

网络负载率算法例子:

CAN总线负载率原理及计算_第4张图片

网络负载率是 1s 内网络总线传输数据所占带宽的百分率。以上图网络矩阵表为例,假设总线速度为500Kbps,网络中有多帧信号,把每个信号帧所占的负载率算出来,相加即得到总的网络负载率。FBCM_1/FBCM_2这两帧的所占的负载率算法如下:

       负载率1 = (1000ms / 20ms)  * 111 / 500000 = 0.0111 = 1.11%

      负载率2 = (1000ms / 10ms)  * 111 / 500000 = 0.0222 = 2.22%

         公式中111 8字节的数据帧在不考虑填充位的情况下的所含位数。

        111 = 34 + 13 + (8 byte  X  8bit) = 47 + 64 


下面我们看 TTCAN中有这么一个公式:


按照CAN协议,相同电平持续5位,在下一位要插入1位与前5位反型的电平。

可知:(34 + 8s)/5 得到的填充位数,所以对于一帧完整的位数,我们可以假设包含上间隔位,

则:填充位:(34 + 8s)/5

     数据位:8s

     报文格式位:34 + 10 + 3 = 47

你可能感兴趣的:(总线)