我们都知道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原创,如需转载或用于商业用途需征得作者同意并注明出处