支持多播业务的时间触发业务调度表生成方法与流程

文档序号:15845941发布日期:2018-11-07 09:01阅读:231来源:国知局
支持多播业务的时间触发业务调度表生成方法与流程

本发明属于航空电子技术领域,尤其涉及一种时间触发业务调度表生成方法,可用于实现时间触发以太网中单播和多播时间触发tt业务混合的调度。

背景技术

航空电子系统体系结构的发展,促进了时间触发通信机制的引入。分布式嵌入式实时系统领域首先提出了时间触发体系架构,该体系架构在时间同步的基础上按照精确的资源使用计划来引导整个系统的活动,对资源进行充分使用。在此基础上发展而来的时间触发以太网tte,以时间触发代替事件触发,在全局时钟精确同步的条件下,使网络任务通信具有完全的实时性,有望成为分布式综合模块化航空电子系统的互连基础设施。但时间触发以太网并未规定业务调度方法,其业务调度机制需要根据实际应用场合进行定制。

目前已有的时间触发tt业务调度算法包括以下几种:

1.中国航空无线电电子研究所徐晓飞等人在其申请的专利文献“一种有效的时间触发网络通信时间调度方法”(申请号201210541489.4,申请公布号cn102970247a)中公开了一种将网络最长帧传输时间作为基本周期进行业务调度的方法,该方法增加了通信时间调度方法的可扩展性,但不支持对非调和周期的时间触发tt业务进行调度。

2.北京航空航天大学的张英静等在北京航空航天大学学报(2017,43(8):1577-1584)中提出了一种基于tte的改进加权轮询调度算法,该方法利用可满足性模理论smt解析器生成时间触发tt业务调度表,但链路利用率较低。

3.西安电子科技大学在其申请的专利文献“一种时间触发业务静态调度表的生成方法”(申请号201710263462.6,申请公布号cn107241179a)中公开了一种时间触发业务调度表的静态生成方法,该方法最大程度减小时间触发tt业务所占据的时间区间长度,但并未考虑到多播时间触发tt业务对调度结果的影响。

上述已有调度方法部分不能调度多播时间触发tt业务,部分虽然能够调度多播时间触发tt业务,但在传输此类业务时链路利用率会出现较大幅度下降。



技术实现要素:

本发明的目的在于提出一种支持多播业务的时间触发业务调度表生成方法,以解决目前时间触发以太网中在生成时间触发tt业务的调度表时,不支持对多播tt业务进行调度或因调度多播业务造成链路利用率低的问题。

为实现上述目的,本发明技术方案包括如下:

(1)获取业务参数和网络参数:

所述业务参数,包括:业务id、帧长、周期、业务类型、源端系统编号、目的端系统编号和产生时间,共7个;

所述网络参数,包括:链路带宽w、最小时间间隔u、同步精度a和网络时延,该时延包括:源端系统的最小发送时延s1、源端系统的最大发送时延s2、最小链路传输时延t1、最大链路传输时延t2、交换机的最小接收时延sr1、交换机的最大接收时延sr2、交换机的最小转发时延sw1、交换机的最大转发时延sw2、交换机的最小发送时延ss1、交换机的最大发送时延ss2、目的端系统的最小接收时延r1和目的端系统的最大接收时延r2,共12个时延;

(2)计算所有时间触发tt业务周期的最大公约数,作为基本周期bc,再计算所有时间触发tt业务周期的最小公倍数,作为矩阵周期mc;

(3)根据业务参数,对时间触发tt业务进行调度优先级排序,并将时间触发tt业务的传输时间点放入矩阵周期的一个或多个基本周期内,生成源端系统的时间触发tt业务带宽预案;

(4)结合业务参数,分配源端系统中各时间触发tt业务在每个基本周期中的发送时间:

(4a)根据一个基本周期待分配的时间触发tt业务,建立执行时间点集合e和分配结果集合a这2个集合,并对其初始化;

(4b)根据业务参数,建立源端系统单播执行时间点数组is、目的端系统单播执行时间点数组os、源端系统多播开始时间点数组im1、源端系统多播结束时间点数组im2、目的端系统多播开始时间点数组om1、目的端系统多播结束时间点数组om2这6个数组,并对其初始化;

(4c)取出执行时间点集合e的第一个子集合e1,并判断子集合e1中第一个业务的业务类型是否为多播业务:若是,则执行(4d);若否,执行(4e);

(4d)根据各端系统多播开始时间点和多播结束时间点,执行一次多播时间触发tt业务调度;

(4e)根据各端系统单播执行时间点、多播开始时间点和多播结束时间点,执行一次单播时间触发tt业务调度;

(4f)判断子集合e1是否为空集合:若是,删除子集合e1;若否,则返回(4c);

(4g)判断执行时间点集合e是否为空集合:若是,则本基本周期内所有时间触发tt业务分配完成;若否,则返回(4c);

(4h)重复(4a)~(4g),完成源端系统所有基本周期内的时间触发tt业务的发送时间分配;

(5)根据分配结果集合a,生成各源端系统的发送表yi,其中i表示源端系统编号;

(6)在各源端系统发送表的基础上,结合网络中引入的网络时延,生成网络中交换机的接收表h、交换机的发送表s和各目的端系统的接收表nj,其中j表示目的端系统编号。

本发明与现有技术相比具有以下优点:

第一,由于本发明在为每个业务分配基本周期中的具体发送时间时,先判断其业务类型,如果是多播业务,则根据多播业务需要占用多目的端系统的特性,同时判断多目的端系统的占用情况,保证多播业务在所有相关端系统空闲时传输,避免了tt业务之间产生冲突,克服了现有技术中不支持多播调度的问题。

第二,由于本发明为每个源端系统和目的端系统设立了单播执行时间点、多播开始时间点、多播结束时间点这3个参数,为多播业务分配发送时间后,在不与已安排发送时间业务冲突的情况下,单播业务仍可利用多播发送之前空闲端口的这段空闲时间进行传输,克服了现有技术中调度多播业务时链路利用率低的问题。

附图说明

图1是本发明的应用环境实例图;

图2是本发明的实现总流程图。

具体实施方式

下面结合附图对本发明作进一步的详细描述。

参照图1,在一个星型网络中,有一台交换机、n个源端系统、m个目的端系统,时间触发tt业务可从任意1个源端系统发往任意的1个或多个目的端系统。本发明是为所有时间触发tt业务生成时间调度表来保证无冲突传输。

参照图2,本发明的实现步骤如下:

步骤1,获取业务参数和网络参数。

所述业务参数包括:业务id、帧长、周期、源端系统发送编号、目的端系统编号和产生时间,共6个;

所述网络参数,包括:链路带宽w、最小时间间隔u、同步精度a和网络时延,该时延包括:源端系统的最小发送时延s1、源端系统的最大发送时延s2、最小链路传输时延t1、最大链路传输时延t2、交换机的最小接收时延sr1、交换机的最大接收时延sr2、交换机的最小转发时延sw1、交换机的最大转发时延sw2、交换机的最小发送时延ss1、交换机的最大发送时延ss2、目的端系统的最小接收时延r1和目的端系统的最大接收时延r2,共12个时延,其中:

将最小时间间隔u作为时间调度表的最小时间粒度单位,根据每个tt业务帧长的不同,为其分配若干个最小时间间隔作为发送窗口。

步骤2,计算业务调度的矩阵周期和基本周期。

所述矩阵周期,是所有时间触发tt业务周期传输一次所需的总时间,基本周期是时间触发tt业务传输的最短时间间隔,这两个周期的计算如下:

计算所有时间触发tt业务周期的最大公约数,作为基本周期bc;

计算所有时间触发tt业务周期的最小公倍数,作为矩阵周期mc。

步骤3,将时间触发tt业务的传输时间点放入矩阵周期的一个或多个基本周期内,生成源端系统的tt业务带宽预案。

(3a)对于某个tt业务,确定当前业务应该在矩阵周期中的第几个基本周期开始分配其传输时间点,将该值记作初始偏移量offset:

(3a1)计算当前业务的相对传输结束时间,记为endtime,其计算方式为:

endtime=p%(bc/u)+s/w,

其中,bc表示基本周期,u表示最小时间片,w表示链路带宽,s表示当前时间触发tt业务的帧长,p表示当前业务的产生时间,%表示取余运算,/表示除法运算;

(3a2)根据相对传输结束时间endtime,计算初始偏移量offset,其计算方式如下:

(3b)将矩阵周期看做由多行多列组成的大矩形,其每一行代表一个基本周期,每一列代表各基本周期中的同一传输时间段;

(3c)判断将当前时间触发tt业务放入矩阵周期的各个基本周期后,是否会引起列冲突,即先对矩阵周期同一列中已分配的所有时间触发tt业务两两取周期的最大公约数,再进行求导求和,之后,判断最终结果是否小于等于1:若是,则在当前列中根据(3a)中的初始偏移量offset开始分配该业务的传输时间点;若否,则在另外一列中分配该业务的传输时间点;

(3d)在当前列中,从初始偏移量offset开始,根据时间触发tt业务的周期c,每隔c/bc个基本周期,分配一次当前业务,直到将当前业务的传输时间点均匀分配到整个矩阵周期中;

(3e)重复(3a)~(3d),直到将所有时间触发tt业务的传输时间点分配到矩阵周期的一个或多个基本周期内,得到源端系统的tt业务带宽预案。

步骤4,结合业务参数,分配源端系统中各时间触发tt业务在每个基本周期中的发送时间。

(4a)根据一个基本周期待分配的时间触发tt业务,建立执行时间点集合e和分配结果集合a这2个集合,并对其初始化:

(4a1)建立执行时间点集合e:

将一个基本周期所有业务,按照产生时间相同的原则划分为若干个子集合,并对这些子集合按照其中业务的产生时间从小到大排序,再对每个集合中的业务按照先多播后单播的顺序排序,最后用所有这些子集合构成执行时间点集合e;

(4a2)建立分配结果集合a:

为所有业务添加发送时间参数,并用所有业务构成分配结果集合a,初始化时所有业务的发送时间均为0;

(4b)根据业务参数,建立源端系统单播执行时间点数组is、目的端系统单播执行时间点数组os、源端系统多播开始时间点数组im1、源端系统多播结束时间点数组im2、目的端系统多播开始时间点数组om1、目的端系统多播结束时间点数组om2这6个数组,并对其初始化,具体实施方式如下:

设源端系统单播执行时间数组is的长度为源端系统的数目,数组中每个元素的下标表示源端系统编号,每个元素的取值表示对应源端系统单播执行时间,初始化时所有元素数值均为0;

设目的端系统单播执行时间数组os的长度为目的端系统的数目,数组中每个元素的下标表示目的端系统编号,每个元素的取值表示对应目的端系统单播执行时间,初始化时所有元素数值均为0;

设源端系统多播开始时间数组im1的长度为源端系统的数目,数组中每个元素的下标表示源端系统编号,每个元素的取值表示对应源端系统多播开始时间,初始化时所有元素数值均为0;

设源端系统多播结束时间数组im2的长度为源端系统的数目,数组中每个元素的下标表示源端系统编号,每个元素的取值表示对应源端系统多播结束时间,初始化时所有元素数值均为0;

设目的端系统多播开始时间数组om1的长度为目的端系统的数目,数组中每个元素的下标表示目的端系统编号,每个元素的取值表示对应目的端系统多播开始时间,初始化时所有元素数值均为0;

设目的端系统多播结束时间数组om2的长度为目的端系统的数目,数组中每个元素的下标表示目的端系统编号,每个元素的取值表示对应目的端系统多播结束时间,初始化时所有元素数值均为0;

(4c)取出执行时间点集合e的第一个子集合e1,并判断子集合e1中第一个业务的业务类型是否为多播业务:若是,则执行(4d);若否,执行(4e);

(4d)根据各端系统多播开始时间点和多播结束时间点,执行一次多播时间触发tt业务调度;

(4d1)将子集合e1的第一个业务设为当前业务,并计算当前业务的传输时长l1,计算公式如下:

l1=fl/(w*u),

其中,fl表示集合e1的第一个业务帧长,w表示链路带宽,u表示最小时间片,*表示乘法运算,/表示除法运算;

(4d2)从当前业务的产生时间、当前业务的源端系统多播结束时间点,和当前业务的所有目的端系统多播结束时间点这几个参数中,找出数值最大的一个,假设为et;

(4d3)将当前业务源端系统多播开始时间点,以及当前业务所有目的端系统多播开始时间点更新为et;

(4d4)将当前业务源端系统的单播执行时间点更新为该源端系统的多播结束时间点,将当前业务所有目的端系统的单播执行时间点更新为该目的端系统的多播结束时间点;

(4d5)将当前业务源端系统的多播结束时间点和当前业务所有目的端系统的多播结束时间点全部更新为et与l1之和;

(4d6)将分配结果集合a中当前业务的发送时间更新为et;

(4d7)将当前业务从子集合e1中删除。

(4e)根据各端系统单播执行时间点、多播开始时间点和多播结束时间点,执行一次单播时间触发tt业务调度;

(4e1)将子集合e1的第一个业务,设为当前业务,并计算当前业务的传输时长l2:

l2=fl/(w*u),

其中,fl表示当前业务的帧长,w表示链路带宽,u表示最小时间片,*表示乘法运算,/表示除法运算;

(4e2)判断当前业务的产生时间是否大于其源端系统单播执行时间点:若是,执行(4e3);若否,执行(4e4);

(4e3)判断当前业务的源端系统多播开始时间点与产生时间之差是否大于当前业务的传输时长l2:若是,执行(4e5);若否执行(4e9);

(4e4)判断当前业务的源端系统多播开始时间点与源端系统单播执行时间点的差是否大于当前业务的传输时长l2:若是,则将当前业务产生时间更新为其源端系统单播执行时间点,再执行(4e5);若否,执行(4e9);

(4e5)判断当前业务的产生时间是否大于其目的端系统单播执行时间点:若是,执行(4e6);若否,执行(4e7);

(4e6)判断当前业务的目的端系统多播开始时间点与产生时间之差是否大于当前业务的传输时长l2:若是,执行(4e8);若否,执行(4e9);

(4e7)判断当前业务的目的端系统多播开始时间点与源端系统单播执行时间点之差是否大于当前业务的传输时长l2:若是,将当前业务产生时间更新为其目的端系统单播执行时间点,再执行(4e8);若否执行(4e9);

(4e8)将当前业务的源端系统单播执行时间点和当前业务的目的端系统单播执行时间点更新为当前业务产生时间与当前业务的传输时长l2之和,再执行(4e10);

(4e9)判断当前业务的源端系统多播结束时间点是否大于其目的端系统单播结束时间点:若是,则将源端系统单播执行时间点、目的端系统单播执行时间点、源端系统多播开始时间点、源端系统多播结束时间点、目的端系统多播开始时间点和目的端系统多播结束时间点这6项参数,全部更新为源端系统多播结束时间点与当前业务的传输时长l2之和;若否,则将这6项参数全部更新为目的端系统多播结束时间点与当前业务的传输时长l2之和;

(4e10)将分配结果集合a中当前业务的发送时间更新为,当前业务源端系统单播执行时间点与当前业务的传输时长l2之差;

(4e11)将当前业务从子集合e1中删除。

(4f)判断子集合e1是否为空集合:若是,删除子集合e1;若否,则返回(4c);

(4g)判断执行时间点集合e是否为空集合:若是,则本基本周期内所有时间触发tt业务分配完成;若否,则返回(4c);

(4h)重复(4a)~(4g),完成源端系统所有基本周期内的时间触发tt业务的发送时间分配。

步骤5,根据分配结果集合a,生成各源端系统的发送表yi,其中i表示源端系统编号,取值范围为0~n。

(5a)为每个源端系统建立一张发送表yi,发送表包含多行,每一行是一条表项,每条表项之间用换行符分隔开;每条表项中包含多个字段,每个字段之间用空格符分隔开;

每条表项中包含的字段有:业务id、基本周期号、源系统的开始发送时间点,源端系统的发送结束时间点和源端系统的发送窗口长度,共5个;

(5b)取出集合a的一个业务设为当前业务,根据当前业务的源端系统编号,将其划分到对应的源端系统发送表yi中,形成一条表项,该条表项的字段具体设置方式如下:

业务id=当前业务的业务id;

基本周期号=当前业务需要传输的基本周期编号;

源系统的开始发送时间点=当前业务的发送时间;

源端系统的发送结束时间点=源系统的开始发送时间点+当前业务的传输时长;

源端系统的发送窗口长度=同步精度a;

其中,当前业务的传输时长=当前业务的帧长/(链路带宽w*最小时间片u),*表示乘法运算,/表示除法运算;

(5c)重复(5b),直到所有业务都在对应的源端系统发送表yi中形成表项。

步骤6,在各源端系统发送表的基础上,结合网络中引入的网络时延,生成网络中交换机的接收表h、交换机的发送表s和各目的端系统的接收表nj,其中j表示目的端系统编号,取值范围为0~m。

(6a)分别建立交换机的接收表h、交换机的发送表s及各目的端系统的接收表nj,这3种表格均包含多行,每一行是一条表项,每条表项之间用换行符分隔开;每条表项中包含多个字段,每个字段之间用空格符分隔开;

(6b)取出集合a的一个业务设为当前业务,分别在交换机接收表h、交换机的发送表s及对应的一个或多个目的端系统的接收表nj中形成一条表项;

(6c)根据各源端系统发送表yi及网络中引入的网络时延,分别计算交换机接收表h、交换机的发送表s及对应目的端系统的接收表nj中各表项要填写的内容;

(6c1)计算填写交换机接收表h的表项内容,包括如下:

业务id=当前业务的业务id;

基本周期号=当前业务需要传输的基本周期编号;

源端系统编号=当前业务的源端系统编号;

目的端系统编号=当前业务的目的端系统编号;

交换机的开始接收时间点=源端系统的发送时间点+端系统的最小发送时延s1

+最小链路传输时延t1–同步精度a;

交换机的接收结束时间点=交换机的开始接收时间点+当前业务的传输时长

+交换机的最小接收时延sr1-同步精度a;

交换机的接收窗口长度=(源端系统的最大发送时延s2–源端系统的最小发送时延s1)

+(最大链路传输时延t2–最小链路传输时延t1)

+(交换机的最大接收时延sr2–交换机的最小接收时延sr1)

+2*同步精度a;

其中,当前业务的传输时长=当前业务的帧长/(链路带宽w*最小时间片u),*表示乘法运算,/表示除法运算;

(6c2)计算填写交换机发送表s的表项内容,包括如下:

业务id=当前业务的业务id;

基本周期号=当前业务需要传输的基本周期编号;

源端系统编号=当前业务的源端系统编号;

目的端系统编号=当前业务的目的端系统编号;

交换机的开始发送时间点=交换机的开始接收时间点+交换机的最小接收时延sr1

+交换机的最小转发时延sw1;

交换机的发送结束时间点=发送开始时间点+当前业务的传输时长;

交换机的发送窗口长度=同步精度a;

(6c3)计算填写各目的端系统的接收表nj的表项,其内容相同,每个表项均包括如下:

业务id=当前业务的业务id;

基本周期号=当前业务需要传输的基本周期编号;

目的端系统的开始接收时间点=交换机发送时间点+交换机的最小发送时延ss1

+最小链路传输时延t1–同步精度a;

目的端系统的接收结束时间点=目的端系统接收开始时间点+该消息服务时间;

目的端系统接收窗口长度=(交换机的最大转发时延sw2–交换机的最小转发时延sw1)

+(交换机的最大发送时延ss2–交换机的最小发送时延ss1)

+(最大链路传输时延t2–最小链路传输时延t1)

+(目的端系统的最大接收时延r2-目的端系统的最小接收时延r1)

+2*同步精度a;

(6d)重复(6b)~(6c),直到所有业务都在交换机的接收表h、交换机的发送表s及对应的目的端系统的接收表nj中形成表项。

以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

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