掌桥专利:专业的专利平台
掌桥专利
首页

一种CAN总线间的负载均衡控制系统

文献发布时间:2023-06-19 18:46:07


一种CAN总线间的负载均衡控制系统

技术领域

本发明涉及数据传输技术领域,特别是涉及一种可以实现CAN总线均衡负载值动态配置的CAN总线间的负载均衡控制系统。

背景技术

CAN总线也称控制器局域网,顾名思义,是个控制系统。因为CAN总线数据传输速度快,抗干扰能力强,信息传输延迟性低,所以被广泛的应用在汽车控制以及工业自动化控制等领域里。

所谓CAN总线负载率,指的是CAN总线上传输的信息量除以理论上通讯速率下总线上可传输的最大信息量。比如说,一条总线在100Kbps的通讯速率下,它一秒钟最多可以通过10000帧的数据。总线在100Kbps通讯速率下,理论上最多可以在一秒通过10000帧数据。如果当前使用中CAN总线满负载运行,非常容易出现传输错误。

从总线负载率上讲,CAN总线的负载率需要控制在60%或以下,负载率越高,代表需要发送的数据越多,相对来说低优先级节点发生通讯延迟的概率越大。根据实验表明,负载率在30%的情况下,优先级高节点的平均报文传输时间和理论传输时间相差无几;而优先级低的存在20%左右的延时;当负载率达到60%的情况下,优先级最高的节点都有25%的延时,优先级最低的延时达到了4倍,根本无法满足实时性;当总线的平均利用率达到70%以上时,总线的通信将有可能出现拥堵的现象,极端的情况下将有可能造成错误帧的出现。因此,负载率当然是越低越好越能保证实时性,但是负载率太低就无法传输足够的数据,在数据量大的时候无法保证实时性。一般30%左右的负载率是最好的。

然而,现有技术中基本没有对CAN总线负载率进行均衡控制,保证总线负载率在较为理想状态,采用的都是有数据直接从CAN总线发送数据,使得总线负载增加,进而造成总线传输稳定性得不到保障。

因此,如何提供一种负载均衡控制方法,实现对CAN总线负载率进行控制,是迫切需要本领域技术人员解决的技术问题。

发明内容

鉴于上述问题,本发明提供一种克服上述问题或者部分地解决上述问题的一种CAN总线间的负载均衡控制系统。解决了CAN总线在负载增加时传输的实时性和稳定性的问题。

本发明提供了如下方案:

一种CAN总线间的负载均衡控制系统,包括:

两条CAN总线、主节点设备以及控制器;

所述控制器与所述主节点设备相连;所述控制器包括先进先出存储器;所述先进先出存储器用于缓存所述主节点设备的发送数据;所述先进先出存储器具有目标队列深度;所述目标队列深度与发送帧数阈值相同;

所述控制器用于执行以下操作:

获取当前CAN总线的第一负载率、波特率以及帧长度;所述当前CAN总线为两条所述CAN总线中的任意一条;

利用所述第一负载率、所述波特率以及所述帧长度确定总线帧数;

获取所述主节点设备的当前发送帧数;所述当前发送帧数为所述总线帧数与当前接收帧数之差;

获取所述当前发送帧数和所述目标队列深度的差值,并获取所述差值与所述目标队列深度的当前比值;

根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据。

优选地:还包括若干非主节点设备,若干所述非主节点设备分别与两条所述CAN总线相连;所述主节点设备可向若干所述非主节点设备发送数据且若干所述非主节点设备仅能向所述主节点设备发送数据。

优选地:所述控制器为所述主节点设备包含的主控制单元。

优选地:所述利用所述第一负载率、所述波特率以及所述帧长度确定总线帧数;包括:

获取所述帧长度和所述波特率的比值;所述总线帧数为所述第一负载率与所述比值的乘积。

优选地:所述根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据,包括:

确定所述当前比值小于第一比值阈值;

仅通过所述当前CAN总线采用所述第一负载率传输数据。

优选地:所述根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据,还包括:

确定所述当前比值大于第一比值阈值且小于第二比值阈值;

控制另一条所述CAN总线启动,以使另一条所述CAN总线与所述当前CAN总线均采用所述第一负载率一并传输数据。

优选地:所述根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据,还包括:

确定所述当前比值大于第二比值阈值且小于第三比值阈值;

控制所述当前CAN总线采用第二负载率传输数据;并控制另一条所述CAN总线采用所述第一负载率传输数据;所述第二负载率大于所述第一负载率。

优选地:所述根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据,还包括:

确定所述当前比值大于第三比值阈值且小于第四比值阈值;

控制所述当前CAN总线以及另一条所述CAN总线均采用所述第二负载率传输数据。

优选地:确定所述当前比值大于所述第四比值阈值后发出告警信息。

优选地:以目标时间间隔周期性的获取所述主节点设备的当前发送帧数。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本申请实施例提供的一种CAN总线间的负载均衡控制系统,通过设置备用CAN总线的设计方法,以及引入先进先出(F I FO)队列思路,设计一种全新的负载均衡控制算法,实现在高负载时,采用备用CAN总线传输数据,达到负载目的,使整个CAN总线负载均衡,保障数据实时和稳定传输。可以实现CAN总线均衡负载值动态配置,实现灵活,提升CAN总线传输效率和稳定性。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种CAN总线间的负载均衡控制系统的示意图;

图2是本发明实施例提供的负载控制流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,为本发明实施例提供的一种CAN总线间的负载均衡控制系统,如图1所示,该系统可以包括:

两条CAN总线1、主节点设备2a以及控制器3;

所述控制器3与所述主节点设备2a相连;所述控制器3包括先进先出存储器;所述先进先出存储器用于缓存所述主节点设备2a的发送数据;所述先进先出存储器具有目标队列深度;所述目标队列深度与发送帧数阈值相同;

所述控制器3用于执行以下操作:

获取当前CAN总线的第一负载率、波特率以及帧长度;所述当前CAN总线为两条所述CAN总线中的任意一条;

利用所述第一负载率、所述波特率以及所述帧长度确定总线帧数;具体在获得该总线帧数时,获取所述帧长度和所述波特率的比值;所述总线帧数为所述第一负载率与所述比值的乘积。

获取所述主节点设备的当前发送帧数;所述当前发送帧数为所述总线帧数与当前接收帧数之差;进一步的,以目标时间间隔周期性的获取所述主节点设备的当前发送帧数。该目标时间间隔用户可以根据实际需求自定义配置。

获取所述当前发送帧数和所述目标队列深度的差值,并获取所述差值与所述目标队列深度的当前比值;

根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据。

本申请实施例提供的CAN总线间的负载均衡控制系统,设置了两条CAN总线,控制器采用全新的均衡控制算法,通过对主节点CAN总线负载控制,控制CAN总线负载;在当前CAN总线负载过大时可以通过启用备用CAN总线降低当前CAN总线负载,实现CAN总线负载均衡控制。该方法可以实现CAN总线均衡负载值动态配置,实现灵活,提升CAN总线传输效率和稳定性。

本申请实施例提供的系统中,采用先进先出存储器对主节点设备的发送数据进行缓存,由于先进先出存储器的深度已经被提前限定,通过主节点设备自身对于接收帧数的统计,结合通过计算获得总线帧数就可以确定主节点设备当前发送帧数,由于先进先出存储器的深度与预设的发送帧数阈值相同,因此,在当前发送帧数小于或等于发送帧数阈值时,所有发送数据均可以被缓存至该先进先出存储器,此时可以确定仅采用当前CAN总线进行数据传输。在当前发送帧数大于发送帧数阈值时,只有一部分发送数据可以被储存至先进先出存储器内,会产生一定发送帧数的剩余,此时可以通过监控剩余发送帧数与目标队列深度的差值,然后将该差值与目标队列深度的比值,作为判断是否需要进行分流的依据,从而达到控制两条所述CAN总线均在低于负载率阈值状态下传输数据的目的。

在实际应用中,本申请实施例提供的主节点设备可以是连接在CAN总线上的一个设备,具体的,本申请实施例可以提供若干非主节点设备2b,若干所述非主节点设备2b分别与两条所述CAN总线1相连;所述主节点设备2a可向若干所述非主节点设备2b发送数据且若干所述非主节点设备2b仅能向所述主节点设备2a发送数据。非主节点设备只能向主节点设备发送数据,但是不能向其他非主节点设备发送数据,这样设计的目的是为了可以准确的获取所有非节点设备的发送出来的信息量,作为主节点设备接收信息确定当前接收帧数。如果一个非节点设备与其他非节点设备之间可以进行数据交互,那么控制器将无法准确获得该当前接收帧数,最终使得确定的安全发送帧数不准确。

可以理解的是,本申请实施例提供的控制器的作用是用于执行本申请实施例提供的算法,结合硬件设备控制两条CAN总线各自数据传输状态,该控制器可以采用独立的结构,接入主节点设备,为了减少新硬件布置的数量,本申请实施例还可以提供所述控制器为所述主节点设备包含的主控制单元。采用主节点设备自身的控制单元,储存相应的控制程序即可实现对系统的控制。

本申请实施例提供的系统中,对于是否需要对当前CAN总线进行分流以及是否需要对CAN总线的负载率进行调整进行判断时,采用的先进先出(F I FO)队列思路,提供了一种全新的负载均衡控制算法。在先进先出存储器的目标队列深度确定后,该先进先出存储器每次储存的最大数量的发送帧数也随之确定,即最大可以存储发送帧数阈值数量的发送帧。本申请实施例采用判断当前发送帧剩余量与目标队列深度比值和比值阈值的关系,可以确定CAN总线数据传输是否拥堵,再进行相应的控制,可实现两条CAN总线均在低于负载率阈值状态下传输数据。保证数据传输的安全性以及稳定性。

本申请实施例提供的系统采用全新的均衡控制算法,通过对主节点CAN总线负载控制,控制CAN总线负载;通过启用备用CAN降低当前总线负载,实现CAN总线负载均衡控制。该方法可以实现CAN总线均衡负载值动态配置,实现灵活,提升CAN总线传输效率和稳定性。

在具体实现时,根据所述当前比值与比值阈值的关系控制两条所述CAN总线均在低于负载率阈值状态下传输数据,包括:

确定所述当前比值小于第一比值阈值;

仅通过所述当前CAN总线采用所述第一负载率传输数据。

进一步的,确定所述当前比值大于第一比值阈值且小于第二比值阈值;

控制另一条所述CAN总线启动,以使另一条所述CAN总线与所述当前CAN总线均采用所述第一负载率一并传输数据。

进一步的,确定所述当前比值大于第二比值阈值且小于第三比值阈值;

控制所述当前CAN总线采用第二负载率传输数据;并控制另一条所述CAN总线采用所述第一负载率传输数据;所述第二负载率大于所述第一负载率。

进一步的,确定所述当前比值大于第三比值阈值且小于第四比值阈值;

控制所述当前CAN总线以及另一条所述CAN总线均采用所述第二负载率传输数据。

确定所述当前比值大于所述第四比值阈值后发出告警信息。

可以理解的是,本申请实施例提供的第一比值阈值、第二比值阈值、第三比值阈值以及第四比值阈值均可以根据实际需要进行自定义配置,同样的目标队列深度、第一负载率以及第二负载率等也可以根据实际需求进行自定义配置。

下面通过具体示例对本申请实施例提供的系统以及总线数据传输控制方法进行详细介绍。

初始化配置

系统上电初始化,将2路CAN总线CAN0总线、CAN1总线配置相同波特率。

根据负载值公式计算CAN总线每秒30%负载(第一负载率)总线上帧数,公式如下:

负载值=(总线帧数*帧长度/波特率)

帧长度:在扩展帧中为128b it(8字节数据)。

30%负载时,波特率为500kbps,1秒总线帧数为:1171。

初始化F I FO队列,设置目标队列深度。设置动态调整CAN负载F I FO阈值(比值阈值)。

设置阈值检测周期,如1秒。

初始化流程:

均衡控制算法实现。

将主节点设备所有CAN总线发送数据放入F I FO队列中,通过F I FO队列对CAN总线负载实时控制。

定时(1秒)统计计算总线帧数=接收帧数+发送帧数;

在1秒周期,根据接收帧数,接收帧数由主节点设备自带获取模块获取。计算发送帧数,通过从F I FO队列中取数,动态调整发送帧数量,实现CAN总线负载均衡。

实时统计没有位于F I FO队列中剩余发送帧数量。如图2所示。

当剩余帧数量小于队列深度1/5(可配置的第一比值阈值),CAN0总线采用第一负载(30%)性能传输数据(默认状态)。

当剩余帧数量超过队列深度1/5(可配置的第一比值阈值)且小于队列深度2/5(可配置的第二比值阈值),CAN0总线采用第一负载(30%)性能传输数据,同时启动CAN1总线进行数据分流,CAN1总线采用第一负载(30%)速率传输数据,降低CAN0总线负载。

当剩余帧数量超过队列深度2/5(可配置的第二比值阈值)且小于队列深度3/5(可配置的第三比值阈值),提升CAN0总线第二负载(60%)性能传输数据,CAN1总线采用第一负载(30%)速率传输数据。

当剩余帧数量超过队列深度3/5(可配置的第三比值阈值)且小于队列深度4/5(可配置的第四比值阈值),提升CAN0和CAN1总线第二负载(60%)性能传输数据。

当剩余帧数量超过队列深度4/5(可配置的第四比值阈值),发出警告信息,告知用户,两条CAN总线负载均过大,存在丢失数据的风险。

总之,本申请提供的CAN总线间的负载均衡控制系统,通过设置备用CAN总线的设计方法,以及引入先进先出(F I FO)队列思路,设计一种全新的负载均衡控制算法,实现在高负载时,采用备用CAN总线传输数据,达到负载目的,使整个CAN总线负载均衡,保障数据实时和稳定传输。可以实现CAN总线均衡负载值动态配置,实现灵活,提升CAN总线传输效率和稳定性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种当前的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加上必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据当前的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

技术分类

06120115687113