社区导航

 

搜索
查看: 255|回复: 1

[原创] 如何降低CAN总线负载?

[复制链接]

80

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-12-19 16:29 | 显示全部楼层 |阅读模式

我们都知道CAN 总线以其可靠性高、成本优等特点在汽车、工业局域通讯得到广泛应用。

 

但是随着各种专用控制器的蓬勃发展,控制功能的需求逐渐复杂多样化,随之带来的是各控制器之间的交互也日趋复杂。CAN 总线采用非破坏总线仲裁机制,只有在总线空闲时发送节点才能向总线上发送报文,只有在报文赢得仲裁获得总线控制权时,才可以向总线发送报文。仲裁失败的节点只能让出总线控制权等待下次总线空闲时尝试发送。

 

由此可见,如果总线负载过高,那么一个优先级相对较低的节点需要发送报文时,会出现频繁的仲裁失败而导致发送延迟。因此,为了保证低优先级报文传输延迟在可接受的范围内,总线负载率不应超过30%。当负载率大于40%时,CAN通讯稳定性开始衰减,大于65%时,稳定性衰减加剧,超过98%时,网络将处于瘫痪状态。

如何保障车载网络通讯的可靠性,如何行之有效的降低 CAN 总线负载率成为大家亟待解决的问题。

▶ 降低报文的传输频率

报文的传输频率是对总线负载影响最大的因素,目前的许多报文传输的频率较快,存在资源上的浪费,每个报文需要从相关功能的需求以及控制器,相关传感器执行器的更新速度限制条件出发确定出最小更新周期,从降低报文传输频率角度进行针对优化。

例如针对使用频率不高的报文,在不使用时,按照约定好的停发机制自动停发,需要使用时发送控制器主动发送报文解除停发。这种策略可以解决周期性短的报文造成的总线负载率高的问题。

 

▶ 优化报文的架构

报文是传输信息的载体,标准数据帧的报文由8个字节组成,每个报文传输的信号有限。在满足需求功能的前提下,为了尽可能减少控制器中需要的报文,需要合理评估信号所需要的精度和允许的范围,在满足需求的前提下精度尽量粗,范围尽量小,减少信号传输所占用的位数。

 

▶ 优化网络拓扑结构

根据总线电气负载环境限制,CAN总线节点目前可达 110 个,但是搭载的节点越多,意味着传输的报文越多,总线拥堵的概率越大,总线的实时性和可靠性都将受到很大影响。

针对多个控制器需要同时和多个控制器或者传感器交互时,存在总线中报文较多造成负载率较高现象时,可通过划分多个通讯网段,也就是使用网桥等设备对不同网段之间的通信进行滤波,达到网段之间的数据隔离。每个网段相互独立,通过网桥,其中一个网段只会收到其他网段中“感兴趣”的报文,其他“不感兴趣”的报文不过通过网桥,也就是说通过网桥过滤掉那些别的网段“感兴趣”,但是我“不感兴趣”的报文。

这种方法针对总线负载率超出限制较多时效果显著,但是网络拓扑结构的修改意味着线束的修改,改动涉及面较广,适用于新开展的项目。

 

典型的CAN中继器如Ixxat的CANbridge NT420,通过CANbridge NT420也可以连接波特率不同的两个CAN网络或者进行电气隔离。

CANbridge NT420具有4个CAN通道,其中两个通道也可以作为CAN FD通道使用。

CANbridge NT具有强大处理能力,可以进行消息过滤,ID翻译和数据多路复用技术 (例如需要CAN FD到CAN消息转换)。

 


此内容由EEWORLD论坛网友MamoYU原创,如需转载或用于商业用途需征得作者同意并注明出处

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

提供专业嵌入式系统培训,为嵌入式研发提供丰富的工具,软件和解决方案。



回复

使用道具 举报

37

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-12-19 16:41 | 显示全部楼层

不错!支持一下。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-27 06:21 , Processed in 0.103635 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表