一种用于车载CAN-CANFD混合网络的网关调度方法与流程

文档序号:17429411发布日期:2019-04-17 03:17阅读:870来源:国知局
一种用于车载CAN-CANFD混合网络的网关调度方法与流程

本发明属于移动通信领域,涉及车载混合网络的网关的通信技术领域,具体涉及一种用于车载can-canfd混合网络的网关调度方法。



背景技术:

随着对汽车功能以及配置需求的增长,越来越多的ecu接入车载网络中,需要进行交换的数据量呈指数增长,因此连接各个网段的网关需要调度转发的不同类型报文的数量也大大增加,这就造成了网关在对不同类型报文进行调度转发时的延时问题,目前还未有一个通信网络可以满足未来汽车通信的需求。

对于can-canfd(canwithflexibledatarate)网关需要实现两种不同总线协议的转换,两种总线的传输速率,实时性等要求都不相同,由于canfd总线的传输速率远远高于can总线的传输速率,当canfd报文不停的传入网关转换为can报文时,有可能会形成大量的can报文的堆叠,从而造成长周期低优先级报文的延时甚至于丢弃;而当can报文需要组包成canfd报文时,由于数据域的大小不一致,当若干个can报文组合成canfd报文时,由于从can网段传输到接收缓存区的报文周期存在不一致的情况,就可能会造成一些长周期报文出现延迟。因此该网关必须保证能够有效的对两种报文进性实时传输。

随着对网关时延问题的研究,目前针对的网关调度方法大多是基于优先级的调度,这些方法都存在着优先调度短周期高优先级报文,然后再调度长周期低优先级报文的特点。这就会造成长周期低优先级报文因短周期高优先级报文的优先调度而导致该类报文的延时,甚至于因周期时间的到达而形成报文丢弃的问题,从而影响网络的稳定性。



技术实现要素:

有鉴于此,本发明的目的在于提供一种用于车载can-canfd混合网络的网关调度方法,用于保证短周期报文的优先调度前提下,使得长周期报文能够尽快调度,从而减少长周期报文的堆叠。

为达到上述目的,本发明提供如下技术方案:

一种用于车载can-canfd混合网络的网关调度方法,在网关接收/发送缓存区中通过平滑加权轮询调度算法对缓存区中的报文进行调度处理,具体包括以下步骤:

s1:can-canfd混合网络的网关中,周期队列内部采用链表形式对报文按照优先级排序,使队列内部存放的报文数量没有限制,即不会出现队列内存溢出的情况,且可以非常快速的进行查询并将报文按照id的优先级由高到低的顺序插入到队列中;

s2:can-canfd混合网络的网关中,根据队列中报文的数量设置周期队列的权重,队列之间采用平滑加权轮询调度算法,根据每个队列的权重计算一个轮询期内,每个队列的调度次数和调度顺序。

进一步,所述的接收/发送缓存区能够预先设置不同权重的周期队列,对进入到该缓存区的报文进行分周期存放,队列中的报文等待网关调度发送。

进一步,步骤s2中,所述队列权重的取值采用分层分析法,采用队列报文量,id优先等级作为参考因素,分重要等级来计算队列权重。

进一步,步骤s2中,所述的平滑加权轮询调度算法具体包括以下步骤:

1)初始化,赋予队列q1权重为w1,队列q2权重为w2,队列q3权重为w3,直到所有的队列权重赋值完成,即队列qn权重为wn,且w1>w2>w3>……>wn,n表示队列个数;

2)从每个周期队列中选出权重最大的周期队列的权重wi,减去总权重w,得到这个周期队列的新权重,其他周期队列权重保持不变,其中0<i<n;

3)再让每个周期队列的权重加上其初始权重,得到新的权重;

4)再次重复步骤2),直到所有的周期队列得到的新的权重为0后,确定轮询调度序列。

进一步,为了避免大量并发数据的出现从而导致队列的溢出,调度时对于计算出的轮询调度序列进行随机的开始选择。

本发明的有益效果在于:与现有技术相比,本发明不仅能够保证短周期报文的优先调度,还能够让长周期报文的尽快得到调度,进而减少长周期报文的延时以及丢弃。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明所述车载网络的模型结构示意图;

图2为网关内部的信息交互模型示意图;

图3为分层分析方法的结构图;

图4为缓存区内周期队列的分布结构示意图;

图5为队列内部的链表方式排序示意图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

如图1所示,图1为整个车载网络的模型结构示意图。通过网关连接can网络和canfd网络来进行信息的通信交互,can网络的数据传输速率为500kbit/s,canfd网络的数据传输速率为1mbit/s。

如图2所示,图2为网关内部的信息交互模型示意图。can网段上的报文进入网关内部的输入缓存区,通过调度后进入到网关的计算区处理为canfd报文,然后传输到输出缓存区等待调度发送到canfd网段上;反之canfd网段上的报文同样进入网关内部的输入缓存区,通过调度后进入到网关的computing区处理为can报文,然后传输到输输出缓存区等待调度发送到can网段上。

如图3所示,图3为分层分析方法结构图,假设有4个周期队列即存在4个周期权重需要确定,表1所示为四个因素的重要对比表,报文量比id优先等级1重要a倍,id优先等级1比id优先等级2重要b倍,id优先等级2与id优先等级3重要c倍。

表1

再根据上述因素关系构建判断矩阵:

由公式(a-4e)w=0计算得出权重w=[w1w2w3w4]t,其中e表示单位矩阵。

如图4所示,图4为各个缓存区内周期队列的分布结构示意图,图中的缓存区代表can或canfd网段侧的网关输入缓存区或者输出缓存区。每个缓存区权重各不相同,并且存储不同的周期报文,并按照优先级的高低进行排序,队列间的报文调度传输按照平滑加权轮询方法的调度轮询规则进行传输,其调度轮询规则的计算方法如下:

1)初始化,赋予队列q1权重为w1,队列q2权重为w2,队列q3权重为w3,直到所有的队列权重赋值完成,即队列qn权重为wn,且w1>w2>w3>……>wn,n表示队列个数;

2)从每个周期队列中选出权重最大的周期队列的权重wi,减去总权重w,得到这个周期队列的新权重,其他周期队列权重保持不变,其中0<i<n;

3)再让每个周期队列的权重加上其初始权重,得到新的权重;

4)再次重复步骤2),直到所有的周期队列得到的新的权重为0后,确定轮询调度序列。

通过平滑加权轮询调度算法,can报文和canfd报文依照该调度规则进行传输。

如图5所示,图5为每个周期队列内部采用链表方式排序的示意图。周期队列内部采用链表形式对报文按照优先级排序,可以让队列内部存放的报文数量没有限制,即不会出现队列内存溢出的情况,且可以非常快速的进行查询并将报文按照id的优先级由高到低的顺序插入到队列中。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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