CAN总线负载率计算及测试实战
·
一、负载率计算
- 负载率计算公式
CAN总线负载率,是在一定时间段内,总线上实际传输的bit数占理论最大传输bit数的百分比。
BusLoad = 实际传输bit / 理论最大传输bit
- 帧结构长度计算(CAN标准帧为例)

实际传输的bit数是包含所有CAN报文的开销:从帧起始、仲裁区到帧结束的一整帧CAN(108bit),并且还包括位填充bit等(暂定17bit)。
因此一个标准CAN帧有108+17=125bit。
- 案例计算(以波特率500kbps为例)

二、高负载测试
CAN高负载测试,即验证CAN网络将负载提高至某一值时,总线节点是否还能够准确的发送报文。
测试目的
- 评估总线网络容量的设计合理性和负载冗余下的通信可靠性。
测试实现
- 唤醒ECU正常通信;
- 仿真节点发送高(低)优先级报文,让总线负载率提高到预期值;
- 运行一定时间;
- 检测Trace是否存在错误帧或丢帧情况,或示波器观测波形质量。
负载率监控
1、CAN Statistics中实时运行查看Busload
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);
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)