一、负载率计算

  • 负载率计算公式
    CAN总线负载率,是在一定时间段内,总线上实际传输的bit数占理论最大传输bit数的百分比

BusLoad = 实际传输bit / 理论最大传输bit

  • 帧结构长度计算(CAN标准帧为例)
    在这里插入图片描述

实际传输的bit数是包含所有CAN报文的开销:从帧起始、仲裁区到帧结束的一整帧CAN(108bit),并且还包括位填充bit等(暂定17bit)。

因此一个标准CAN帧有108+17=125bit。

  • 案例计算(以波特率500kbps为例)
    在这里插入图片描述

二、高负载测试

CAN高负载测试,即验证CAN网络将负载提高至某一值时,总线节点是否还能够准确的发送报文。

测试目的

  • 评估总线网络容量的设计合理性和负载冗余下的通信可靠性

测试实现

  1. 唤醒ECU正常通信;
  2. 仿真节点发送高(低)优先级报文,让总线负载率提高到预期值;
  3. 运行一定时间;
  4. 检测Trace是否存在错误帧丢帧情况,或示波器观测波形质量

负载率监控

1、CAN Statistics中实时运行查看Busload
CANoe-Analysis-Statistics-CAN Statistics
2、CAPL函数监控Busload

  • 实时获取
write ("CAN1 busload = %d", CAN1.BusLoad); //获取CAN1负载率
  • 多维度分析
long canGetBusLoad(long channel, ValueSelector selector);
// 通过selector选择器获取想要的负载率类型,包括:当前负载率、最小负载率、最大负载率和平均负载率。
Value selector:
                ● eCurrValue = current
                ● eMinValue = minimum
                ● eMaxValue = maximum
                ● eAvgValue = average

LIN总线负载率函数:double linGetBusLoad(long channel, ValueSelector selector);

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐