一种CANFD总线的仲裁方法与流程

文档序号:15683182发布日期:2018-10-16 20:47阅读:1345来源:国知局

本发明涉及总线技术领域,尤其涉及一种canfd总线的仲裁方法。



背景技术:

随着电子电气等行业的快速发展,车辆电子智能化的诉求也越来越强,车辆也从传统的机械结构逐渐演变成了智能性越来越强的电气产品。主机厂为了提高产品竞争力,将越来越多的娱乐、辅助电子控制系统加入到汽车控制中,例如汽车adas(高级驾驶辅助系统)、hdc(超清摄像头)、iicm(智能仪表)、hvac(智能空调控制系统)、ias(智能语音)等,但是由于can总线的最高传输速率为1mbit/s(通常汽车can系统的实际使用速率最高为500kbit/s),大量娱乐性、辅助性的ecu(electroniccontrolunit,电子控制单元)涉及高清图片、高清视频、语音、音乐的传输,大大提高了总线的负载率,对总线信息传输的可靠性和稳定性提高了更高的要求。2012年博世和vector首次演示了使用遵循iso11898-2规范的收发器芯片,速率达15mbps的can-fd网络模型。除了能够增加传输速度外,该协议还能够支持更高的负载。在单个数据框架内传送率可达64字节,避免了经常发生的数据分裂状况,解决了数据一致性的问题。

目前canfd总线的仲裁机制的主要特点就是多节点发送,即所有正常通信的汽车电子控制器均可以实时地在总线上发送数据,根据canfd总线协议,如果某一时间节点出现两个或者两个以上的电子控制器同时发送数据的时候,就需要通过非破坏性仲裁机制来竞争总线的优先发送权,即通过报文的仲裁段中的id进行竞争,id越小的报文会在总线竞争中取得优先权,获得报文发送的权利,而竞争失败的报文则需要等待至下个报文的发送周期重新竞争发送的权利。由于现阶段总线搭载的电子控制器越来越多,负载率越来越高,id优先级较低的报文很可能会在多次竞争中失败,导致数据无法及时发送,出现延迟的不确定性或者出现数据发送不稳定的情况,有时可以发送成功,有时又发送失败。进而导致总线信号传输的不稳定性。



技术实现要素:

本发明提供一种canfd总线的仲裁方法,解决现有canfd总线存在优先级较低的报文在多次竞争中失败,导致数据无法及时发送的问题,能提高报文数据发送的稳定性,减少总线使用的安全隐患。

为实现以上目的,本发明提供以下技术方案:

一种canfd总线的仲裁方法,包括:

设置canfd总线的各个节点的权重;

通过静态优先级算法对发送请求的各节点报文进行优先级排列,以形成优先权队列;

根据所述优先权队列确定各节点报文在队列中的优选权初始位置;

如果节点报文在竞争中成功,则canfd总线发送该节点报文,否则,根据所述节点报文对应的节点权重和优先权初始位置,晋升所述节点报文的优先级。

优选的,还包括:

所述节点报文根据晋升的优先级,再次进行优先级排列,并获得所述节点报文在当前优选权队列的当前优先权位置;

所述节点报文根据当前优先权位置再次参加竞争,如果竞争成功,则被发送,否则将再次晋升优先级,进行优先级排队,直至竞争成功。

优选的,所述根据所述节点报文对应的节点权重和优先权初始位置,晋升所述节点报文的优先级,包括:

根据各个节点的权重,通过权重函数f(n)得到各个节点报文的优选权位置的变化量;

根据公式j=i-f(n),确定各个节点报文的优先权当前位置,得到晋升后各个节点报文的优先级,其中,i为优先权初始位置,j为优先权当前位置。

优选的,所述权重函数f(n)为正比例函数,f(n)=kn,其中,k为节点权重,n为竞争失败次数。

优选的,所述通过静态优先级算法对发送请求的各节点报文进行优先级排列包括:

将节点报文的仲裁段的标识符设置成时间段、截止段和次序段;

设置所述时间段用来区分报文的实时性高低,实时性越高,优先级别越高;

设置截止段用来区分报文的截止期,截止期越短,优先级别越高;

设置次序段为报文出现的次序,报文出现的次序越早,优先级越高。

优选的,所述通过静态优先级算法对发送请求的各节点报文进行优先级排列还包括:

根据各节点报文的标识符各段编码,根据时间段的实时性要求,确定各节点报文的优先级顺序;

如果具有相同时间段的节点报文,则对节点报文的截止段编码进行比较,以确定报文的优先级顺序;

如果具有相同时间段和截止段的节点报文,则对节点报文的次序段编码进行比较,以确定报文的优先级顺序。

优选的,所述节点的权重的值为canfd总线系统的节点个数。

本发明提供一种canfd总线仲裁方法,通过对各节点报文的优先级排队,在节点报文竞争失败后,对该节点报文的优先级进行晋升,使该节点报文重新进行优先级排队,直到竞争成功。解决现有canfd总线存在优先级较低的报文在多次竞争中失败,导致数据无法及时发送的问题,能提高报文数据发送的稳定性,减少总线使用的安全隐患。

附图说明

为了更清楚地说明本发明的具体实施例,下面将对实施例中所需要使用的附图作简单地介绍。

图1:是本发明提供的一种canfd总线仲裁方法流程图;

图2:是本发明实施例提供的节点报文的仲裁段的标识符编码图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。

针对当前canfd总线多节点发送,需要通过仲裁机制来竞争总线的优先发送权,存在优先级较低的报文可能会在多次竞争中失败,导致数据无法及时发送,出现延迟的不确定性或者出现数据发送不稳定的情况,有时可以发送成功,有时又发送失败。进而导致总线信号传输的不稳定性。本发明提供一种canfd总线的仲裁方法,通过对各节点报文的优先级排队,在节点报文竞争失败后,对该节点报文的优先级进行晋升,使该节点报文重新进行优先级排队,直到竞争成功。解决现有canfd总线存在优先级较低的报文在多次竞争中失败,导致数据无法及时发送的问题,能提高报文数据发送的稳定性,减少总线使用的安全隐患。

如图1所示,为本发明提供的一种canfd总线的仲裁方法流程图,该方法包括以下步骤:

s1:设置canfd总线的各个节点的权重;

s2:通过静态优先级算法对发送请求的各节点报文进行优先级排列,以形成优先权队列;

s3:根据所述优先权队列确定各节点报文在队列中的优选权初始位置;

s4:如果节点报文在竞争中成功,则canfd总线发送该节点报文,否则,根据所述节点报文对应的节点权重和优先权初始位置,晋升所述节点报文的优先级。

具体地,在网络负载率不高或者正常网络通信情况下,各个汽车电子控制器发出的报文优先级按照canfd总线本身的静态优先级算法进行发送。如果出现报文总线冲突的情况下,高优先级的报文可以顺利完成发送过程,而为了使竞争总线失败的报文能够在下次竞争中取得成功,可以将竞争失败的报文提高一个优先级参与下次竞争,若该报文失败了若干次,则其报文优先级已相当高,在总线中竞争胜出的概率会非常大,若此时低优先级的报文由于获得了优先级的提高权利使其报文成功发送后,需要将低优先级的报文优先级降为初始优先级,已保证网络的正常运行。

该方法还包括:

s5:所述节点报文根据晋升的优先级,再次进行优先级排列,并获得所述节点报文在当前优选权队列的当前优先权位置;

s6:所述节点报文根据当前优先权位置再次参加竞争,如果竞争成功,则被发送,否则将再次晋升优先级,进行优先级排队,直至竞争成功。

进一步,所述根据所述节点报文对应的节点权重和优先权初始位置,晋升所述节点报文的优先级,包括:

s41:根据各个节点的权重,通过权重函数f(n)得到各个节点报文的优选权位置的变化量;

s42:根据公式j=i-f(n),确定各个节点报文的优先权当前位置,得到晋升后各个节点报文的优先级,其中,i为优先权初始位置,j为优先权当前位置。

更进一步,所述权重函数f(n)为正比例函数,f(n)=kn,其中,k为节点权重,n为竞争失败次数。

在实际应用中,把canfd总线上所有各节点发送的报文优先级看成一个队列,某个节点发出的报文j在队列中的位置可表达为:j=i-f(n)。

其中,j为报文在优先级队列中优先权当前位置,即报文在当前时刻的优先级;i是报文在队列中的优先权初始位置,即报文的初始优先级。f(n)为优先级权重函数,是节点报文失败n次的函数,根据实际情况可以选择正比例函数或者指(对)数函数。本实施例提供一种正比例函数,即f(n)=kn,k为权重,取为canfd系统节点的个数,控制晋升优先级的快慢。采用该算法可以避免当节点优先级提高2个或者2个以上优先级相同的情况。

在一实施例中,当总线中存在不同节点报文发送的9帧报文,即k=9,所以会得到各个报文初始及晋级之后优先级如表1所示。

表1:各节点报文的优先级晋升表

从表1中可以发现,只要权重k值设置得当,总线中各个报文优先级不会冲突,可以完全解决多报文优先级的冲突问题。

所述通过静态优先级算法对发送请求的各节点报文进行优先级排列包括:

s21:将节点报文的仲裁段的标识符设置成时间段、截止段和次序段;

s22:设置所述时间段用来区分报文的实时性高低,实时性越高,优先级别越高;

s23:设置截止段用来区分报文的截止期,截止期越短,优先级别越高;

s24:设置次序段为报文出现的次序,报文出现的次序越早,优先级越高。

进一步,所述通过静态优先级算法对发送请求的各节点报文进行优先级排列还包括:

s25:根据各节点报文的标识符各段编码,根据时间段的实时性要求,确定各节点报文的优先级顺序;

s26:如果具有相同时间段的节点报文,则对节点报文的截止段编码进行比较,以确定报文的优先级顺序;

s27:如果具有相同时间段和截止段的节点报文,则对节点报文的次序段编码进行比较,以确定报文的优先级顺序。

在实际应用中,如图2所示,假设节点报文的仲裁段的标识符的时间段、截止段、次序段位数分别为2位、5位和4位,即对应图2可得时间段为a1a0,截止段为b4b3b2b1b0,次序段为c4c3c2c1。

更进一步,所述节点的权重的值为canfd总线系统的节点个数。使各节点报文的权重取值相同,以便能优先级计算更简便,当然也可以采用其它取值,以实际需求为准。

可见,本发明提供一种canfd总线的仲裁方法,通过对各节点报文的优先级排队,在节点报文竞争失败后,对该节点报文的优先级进行晋升,使该节点报文重新进行优先级排队,直到竞争成功。解决现有canfd总线存在优先级较低的报文在多次竞争中失败,导致数据无法及时发送的问题,能提高报文数据发送的稳定性,减少总线使用的安全隐患。

以上依据图示所示的实施例详细说明了本发明总线的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1