总线负载率就是每秒钟传输了多少个位,波特率为500K的总线上每秒钟能够传输500‘000位,如果在某一秒中总线上只传输了100000位,则总线负载率为20%。
总线负载率 = 总线每秒上传输的实际位数 / 总线波特率 * 100%
CAN总线负载率是CAN总线架构协议设计时的一个重要的指标,一般建议负载率峰值不要高于80%,平均负载率不要超过50%。负载率越高,代表需要发送的数据越多,低优先级节点发送报文时间偏移的概率越大。
以500K传输速率来计算,1位就是1 / 500 000 = 0.000002(秒)= 0.002(毫秒)= 2(微秒)
帧类型 | 速率 | 每秒一帧产生的负载率(3位帧间隔) |
Classic CAN Standard Frame | 500K | (108 + 3)/ 500000 = 0.0222% |
Classic CAN Extended Frame | 500K | (128 + 3)/ 500000 =0.0262% |
CANFD Standard Frame(DLC=8) | 仲裁段500K 数据段2M | ((29 * 2us)+(91*0.5us))/1s=0.01035% |
CANFD Standard Frame(DLC=64) | 仲裁段500K 数据段2M | ((29 * 2us)+(543*0.5us))/1s=0.03295% |
CANFD Extended Frame(DLC=8) | 仲裁段500K 数据段2M | ((48 * 2us)+(91*0.5us))/1s=0.01415% |
CANFD Extended Frame(DLC=64) | 仲裁段500K 数据段2M | ((48 * 2us)+(543*0.5us))/1s=0.03675% |
上面的数据有利于大家对CAN矩阵设计有帮助,能够大致推算出CAN总线的负载。