概述
CAN 总线本质上还是半双工通讯,就是“单行道”,即一个节点发送的时候其他节点无法发送数据。虽然 CAN 报文 ID 有优先级的区分,但如果高优先级一直占用总线,导致低优先级的节点就无法发出数据,这就是堵塞现象。所以控制流量、防止堵塞是总线健康正常通讯的基本要素。
可选不同刷新时间,改为较快或较慢。观察一段时间:如果利用率都没有超过 30%,则说明总线流量较好,没有明显的拥堵情况; 如果利用率突发超过 70%,则说有堵塞情况,建议进行下面第二步流量分析的排查。 如果平均利用率都在 70%以上,则说明总线严重拥堵,必须进行流量分析整改。
查看总线利用率
流量分析
停止总线利用率监测,点击流量分析,在 CAN 报 文下面生成以时间轴排列的 CAN 报文时序图,从而找出堵塞位置。
拥堵的还有一个重要的危害就是发生报文竞争,导致仲裁。在仲裁结束时,容易产生尖峰脉冲,有导致位翻转的隐患,特别是在容抗较大场合,容易导致位错误。
这就像高速堵车,首先找出堵车的路段,然后查看这个路段哪些车辆造成了堵塞,可以查看造成堵塞的车辆车牌。
总线利用率和流量分析排查传输堵塞
由于煤矿通讯的距离很远,所以波特率通常都是设置为5K,每秒的最大带宽只有 40 帧/秒, 因此如果同时有 50 个节点平均 1 秒各发 1 帧数据,肯定有 10 个低优先级的节点数据发不出来。 实际情况是当节点数量超过 30 以后,就经常有节点上传延迟。
例如:煤矿综合监控系统,5Kbps通讯波特率,1秒定期上传瓦斯、风速、负压、一氧化碳、烟雾、温度、风门开关等环境参数,当节点数量达到30个节点以上时,经常有节点延时。这是因为总线利用率暴增,节点通信堵塞。
解决办法
1、子节点拉大定时上传的周期,比如此案例,可以将所有节点的上传周期改为 2 秒;
2、采用“平时主机轮询式通讯,突发事件子节点上传数据”的方式,保证了正常通讯秩序与突发事件的实时响应速度;
3、采用主机定时发送心跳,子节点按时间片轮转的方式上传,如果某个子节点遇到突发事件,子节点可打破规则,即时上传数据;
4、提高通讯波特率,提高传输带宽。但要小心这样会缩短通讯距离,有可能导致通讯异常。
最后
以上就是拼搏火车为你收集整理的RoyalScope查看CAN网络总线利用率和进行流量分析的全部内容,希望文章能够帮你解决RoyalScope查看CAN网络总线利用率和进行流量分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复