一种总线中周期性消息的调度方法以及调度系统与流程

文档序号:19164779发布日期:2019-11-19 20:15阅读:275来源:国知局
一种总线中周期性消息的调度方法以及调度系统与流程
本发明涉及总线消息传输
技术领域
,更具体的说,涉及一种总线中周期性消息的调度方法以及调度系统。
背景技术
:mli-std-1553b(简称1553b)总线是在70年代末,为适应飞机的发展,由美国提出的飞机内部电子系统联网的标准,由于其具有较好的可靠性、实用性以及灵活性,广泛的应用于航空航天等领域。当前阶段,1553b总线的消息调度方法在处理不同周期的多条消息时,一般是根据多条消息的最小公倍数以及最大公约数计算帧序列的数目以及各个消息在帧序列中的位置。现有的1553b总线的消息调度方法,各个帧中消息数不均衡,容易导致总线负载分配不均。技术实现要素:为解决上述问题,本发明提供了一种总线中周期性消息的调度方法以及调度系统,解决了总线负载分配不均的问题。为了实现上述目的,本发明提供如下技术方案:一种总线中周期性消息的调度方法,所述调度方法包括:获取多条待处理消息,所述待处理消息的周期不完全相同;根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表;获取所述第一调度列表中的帧个数以及总消息数;根据所述帧个数和所述总消息数计算每一帧中的平均消息数;调整所述第一调度列表中各帧中消息的分布,使得各帧中消息数不超过所述平均消息数;所述总线根据调整后的所述第一调度列表传输所述待处理消息。优选的,在上述调度方法中,所述根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表包括:计算所述最小公倍数对所述最大公约数的商,作为所述帧个数;根据所述待处理消息的周期,确定所述待处理消息的帧序号;根据每一所述待处理消息的帧序号生成所述第一调度列表。优选的,在上述调度方法中,所述根据所述待处理消息的周期,确定所述待处理消息的帧序号包括:设定一所述待处理消息的周期为p,p为正整数;根据代数式的余数确定所述待处理消息的帧序号;其中,b为所述最大公约数;i为帧序号,i大于零,且不大于所述帧个数;如果所述代数式的余数为零,则所述待处理消息位于第i帧。优选的,在上述调度方法中,所述根据所述帧个数和所述总消息数计算每一帧中的平均消息数包括:判断所述总消息数除以所述帧个数的商是否为整数;如果是,则所述平均消息数等于所述总消息数除以所述帧个数的商;如果否,则所述平均消息数等于所述总消息数除以所述帧个数的商取整加一。优选的,在上述调度方法中,在所述第一调度列表中,如果同一帧中具有多个消息,则所有消息按照周期由大到小排列。优选的,在上述调度方法中,在所述第一调度列表中,如果同一帧中具有多个消息,则所有消息按照周期由小到大排列。优选的,在上述调度方法中,所述调整所述第一调度列表中各帧中消息的分布包括:按照所述第一调度列表中的帧时序、各帧中消息数以及所述待处理消息的周期,从第1帧开始逐一对所述第一调度列表中各帧的消息进行扫描调整。优选的,在上述调度方法中,所述扫描调整包括:步骤s1:判断当前帧中消息数是否大于所述平均消息数;步骤s2:如果否,从第1帧开始,对下一帧进行扫描调整;步骤s3:如果是,在所述当前帧中选择一个消息,按照所述帧时序,将选择的消息插入第一个消息数小于所述平均消息数的帧中,删除插入消息的帧的后续帧中具有的与所选择的消息相同的消息;步骤s4:根据所选择的消息的周期在插入消息的帧的后续各帧中插入所选择的消息,返回步骤s1。优选的,在上述调度方法中,所述总线为1553b总线。本发明还提供了一种总线中周期性消息的调度系统,用于执行上述调度方法,所述调度系统包括:第一获取单元,所述第一获取单元用于获取多条待处理消息,所述待处理消息的周期不完全相同;生成单元,所述生成单元用于根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表;第二获取单元,所述第二获取单元用于获取所述第一调度列表中的帧个数以及总消息数;计算单元,所述计算单元用于根据所述帧个数和所述总消息数计算每一帧中的平均消息数;处理单元,所述处理单元用于调整所述第一调度列表中各帧中消息的分布,使得各帧中消息数不超过所述平均消息数;所述总线根据调整后的所述第一调度列表传输所述待处理消息。通过上述描述可知,本发明提供的一种总线中周期性消息的调度方法以及调度系统,包括:获取多条待处理消息,所述待处理消息的周期不完全相同;根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表;获取所述第一调度列表中的帧个数以及总消息数;根据所述帧个数和所述总消息数计算每一帧中的平均消息数;调整所述第一调度列表中各帧中消息的分布,使得各帧中消息数不超过所述平均消息数;其中,所述总线根据调整后的所述第一调度列表传输所述待处理消息。本发明提供的调度方法和系统,在根据最小公倍数以及最大公约数生成第一调度列表后,再次对第一调整列表中各帧消息数进行调整,使得各帧中消息数不多于所述平均消息数。这样,调整后的第一调度列表中任意两帧的消息数相同或是只相差一个,大大提高了总线负载的分配均匀性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种总线中周期性消息的调度方法的流程示意图;图2为本发明实施例提供的一种第一调度列表生成方法的流程示意图;图3为本发明实施例提供的一种平均消息数计算方法的流程图;图4为本发明实施例提供的一种扫描调整方法的流程示意图;图5为本发明实施例提供的一种调度系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。正如
背景技术
所述,现有的1553b总线的消息调度方法,各个帧中消息数不均衡,容易导致总线负载分配不均。为了解决上述问题,本发明实施提供了一种总线中周期性消息的调度方法,该调度方法包括:获取多条待处理消息,所述待处理消息的周期不完全相同;根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表;获取所述第一调度列表中的帧个数以及总消息数;根据所述帧个数和所述总消息数计算每一帧中的平均消息数;调整所述第一调度列表中各帧中消息的分布,使得各帧中消息数不超过所述平均消息数;可见,所述调度方法根据最小公倍数以及最大公约数生成第一调度列表后,再次对第一调整列表中各帧消息数进行调整,使得各帧中消息数等于所述平均消息数或是等于所述平均消息数减一。这样,调整后的第一调度列表中任意两帧的消息数相同或是只相差一个,大大提高了总线负载的分配均匀性。为了使本发明实施例提供的技术方案更加清楚,下面结合附图对上述方案进行详细描述。参考图1,图1为本发明实施例提供的一种总线中周期性消息的调度方法的流程示意图,该调度方法包括:步骤s11:获取多条待处理消息。其中,所述待处理消息的周期不完全相同。各个消息的周期均为正整数。各个消息的周期的单位一般可以为ms。步骤s12:根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表。本发明实施例中,设定最小公倍数为a,最大公约数为b。其中,a和b均为大于1的正整数。步骤s13:获取所述第一调度列表中的帧个数以及总消息数。本发明实施例中,设定帧个数为m,总消息数为n。其中,m和n均为大于1的正整数。步骤s14:根据所述帧个数和所述总消息数计算每一帧中的平均消息数。本发明实施例中,设定平均消息数为k。其中,k为大于1的正整数。步骤s15:调整所述第一调度列表中各帧中消息的分布,使得各帧中消息数不超过所述平均消息数。经过调整后的所述第一调度列表中,各帧的消息数为k或是k-1。其中,所述总线根据调整后的所述第一调度列表传输所述待处理消息。可以设置调整所述第一调度列表中各帧中消息的分布后,各帧中消息数等于所述平均消息数或是等于所述平均消息数减一。需要说明的是,本申请实施例中,调整后的各帧中消息数包括但不局限于等于所述平均消息数或是等于所述平均消息数减一。本发明实施例所述述调度方法根据最小公倍数以及最大公约数生成第一调度列表后,再次对第一调整列表中各帧消息数进行调整,使得各帧中消息数等于k或是等于k-1。这样,调整后的第一调度列表中任意两帧的消息数相同或是只相差一个,大大提高了总线负载的分配均匀性。在上述步骤s12中,所述根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表的方法可以如图2所示。参考图2,图2为本发明实施例提供的一种第一调度列表生成方法的流程示意图,所述根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表包括:步骤s21:计算所述最小公倍数对所述最大公约数的商,作为所述帧个数。本发明实施例中帧个数m根据下述公式计算获得:步骤s22:根据所述待处理消息的周期,确定所述待处理消息的帧序号。步骤s23:根据每一所述待处理消息的帧序号生成所述第一调度列表。在上述第一调度列表的生成方法中,所述根据所述待处理消息的周期,确定所述待处理消息的帧序号包括:设定一所述待处理消息的周期为p,p为正整数;根据代数式的余数确定所述待处理消息的帧序号;其中,b为所述最大公约数;i为帧序号,i大于零,且不大于所述帧个数;如果所述代数式的余数为零,则所述待处理消息位于第i帧。下面结合具体的待处理消息对所述第一调度列表的生成方法进行详细说明。所述消息的周期为正整数,单位为ms。设定具有四条待处理消息a、b、c以及d。a的周期为10ms,b的周期为20ms,c的周期为40ms,d的周期为80ms。对于a、b、c以及d四条待处理消息,根据本实施例上述描述可知,该四条消息的最小公倍数a=80,最大公约数b=10,帧个数m=8。按照上述帧序号的确定方法,可以得到第一调度列表如下表1所示。表1第一调度列表帧序号12345678消息abcdaabaabcaaba表1所示第一调度列表中,共有8帧,第1帧的消息数为4,第2帧的消息数为1,第3帧的消息数为2,第4帧的消息数为1,第5帧的消息数为3,第6帧的消息数为1,第7帧的消息数为2,第8帧的消息数为1,所有帧的总消息数n=15。可选的,在所述第一调度列表中,如果同一帧中具有多个消息,则所有消息按照周期由大到小排列,如上表所示。在其他实施方式中,还可以设置:在所述第一调度列表中,如果同一帧中具有多个消息,则所有消息按照周期由小到大排列。在上述步骤s14中,所述根据所述帧个数和所述总消息数计算每一帧中的平均消息数的方法如图3所示。参考图3,图3为本发明实施例提供的一种平均消息数计算方法的流程图,所述根据所述帧个数和所述总消息数计算每一帧中的平均消息数包括:步骤s31:判断所述总消息数除以所述帧个数的商是否为整数。步骤s32:如果是,则所述平均消息数等于所述总消息数除以所述帧个数的商。此时,经过扫描调整后的各帧中的消息数均相同,等于所述平均消息数。步骤s33:如果否,则所述平均消息数等于所述总消息数除以所述帧个数的商取整加一。此时,经过扫描调整后的各帧中的消息数不完全相同,各帧中的消息数等于平均消息数k,或是等于k-1。对于表1所示第一调度列表,m=8,n=15。可见,n除以m的商不是整数,n÷m的商取整为1,则k=2。在确定所述平均消息数k后,通过上述步骤s15对第一调度列表进行调整。在本发明实施例中,上述步骤15中,所述调整所述第一调度列表中各帧中消息的分布包括:按照所述第一调度列表中的帧时序、各帧中消息数以及所述待处理消息的周期,从第1帧开始,逐一对所述第一调度列表中各帧的消息进行扫描调整。参考图4,图4为本发明实施例提供的一种扫描调整方法的流程示意图。所述扫描调整包括:步骤s1:判断当前帧中消息数是否大于所述平均消息数。步骤s2:如果否,按照所述帧时序,对下一帧进行扫描调整。步骤s3:如果是,在所述当前帧中选择一个消息,按照所述帧时序,将选择的消息插入第一个消息数小于所述平均消息数的帧中,删除插入消息的帧的后续帧中具有的与所选择的消息相同的消息。当将选择的消息插入第一个消息数小于所述平均消息数的帧中后,如果插入消息的帧的后续帧中具有与所选择的消息相同的消息,则删除除插入消息的帧的后续帧中具有的与所选择的消息相同的消息,如果插入消息的帧的后续帧中具有与所选择的消息相同的消息,则进入步骤s4即可。如上述,各帧中如果消息数大于1,则消息按照周期从小到大排列,或是从大到小排列。本发明实施例中,消息的排列顺序按照周期从小到大排列,如表1中,第1帧四个消息的排列顺序是abcd。如果当前帧的消息数大于平均消息数,选择消息的方法可以根据需求设定,本发明不做限定,如可以按照帧中消息的排列顺序选择位于最后的一个消息,或是位于最前的一个消息,或是随机选择一个消息。可选的,本发明实施例中,每次选择消息时,可以选择一帧中,多个消息排列顺序中的最后一个。步骤s4:根据所选择的消息的周期在插入消息的帧的后续各帧中插入所选择的消息,返回步骤s1。以表1所示第一调整列表为例进行说明。表1所示第一调整列表中:帧个数m=8;第1帧-第8帧中,各帧的消息数依次为4、1、2、1、3、1、2、1;总消息数n=15;平均消息数k=2。按照上述帧序号的确定方法描述,在第一调度列表中,第1帧具有所有的待处理消息。如表1中所示第一调度列表中,第1帧具有a、b、c、d四个消息。对第1帧开始进行扫描调整时,第1帧为当前帧,其消息数肯定大于平均消息数。按照上述扫描调整方法,从第1帧开始逐一对各帧进行扫描调整,执行步骤s1,第1帧消息数为4,判断结果为是,进入步骤s3。执行步骤s3时,将第1帧中最后一个消息d选出,此时第2帧的消息数为1,为帧时序上的一个消息数小于k的帧,将d插入第2针中。第2帧以后的后续各帧中不具有消息d,因此,无需进行消息d的删除操作。进入步骤s4。执行步骤s4,消息d的周期为80ms,即需要8帧一个周期,故从第2帧-第8帧中只需有一个d即可,在第2帧后续各帧中无需插入消息d。因此,此时,返回步骤s1。此时经过一次扫描调整后的第一调度列表如表2所示。表2第一调度列表帧序号12345678消息abcadabaabcaaba再次执行上述扫描调整方法时,执行步骤s1,第1帧消息数为3,判断结果为是,进入步骤s3。执行步骤s3时,将第1帧中最后一个消息c选出,此时第4帧的消息数为1,为帧时序上的一个消息数小于k的帧,将c插入第4针中。第4帧以后的后续各帧中第5帧具有消息c,因此,删除第5帧中的消息c。进入步骤s4。执行步骤s4,消息c的周期为40ms,即需要4帧一个周期,故从第4帧-第7帧中只需有一个c即可,在第8帧需插入消息c。然后,返回步骤s1。此时经过再一次扫描调整后的第一调度列表如表3所示。表3第一调度列表帧序号12345678消息abadabacabaabac表3中各帧的消息数为2或是1,因此在进行扫描在步骤s1中的判断结果均是否。因此,可以到第8帧完成扫描调整。第一调度列表完成扫描调整后的各帧中消息如表3所示。本发明实施例中,所述总线为1553b总线。需要说明的是,本发明实施例中所述总线包括但不局限于1553b总线,还可以为其他类型的总线。通过表1和表3的对比可知,传统技术采用第一调度列表进行信息传输,而初始的第一调度列表中各个帧中消息数均匀性较差,总线负载分配不均匀,本发明实施例采用表3所示调整后的第一调整列表进行信息传输,提高了第一调度列表中各个帧中消息数均匀性,使得总线负载分配均匀。基于上述调度方法实施例,本发明另一实施例还提供了一种调度系统,该调度系统如图5所示。参考图5,图5为本发明实施例提供的一种调度系统的结构示意图,该调度系统包括:第一获取单元51、生成单元52、第二获取单元53、计算单元54以及处理单元55。所述第一获取单元51用于获取多条待处理消息,所述待处理消息的周期不完全相同。所述生成单元52与所述第一获取单元51通信连接。所述生成单元52用于根据所有所述待处理消息的周期的最小公倍数以及最大公约数生成第一调度列表。所述第二获取单元53与所述生成单元52通信连接。53所述第二获取单元53用于获取所述第一调度列表中的帧个数以及总消息数。所述计算单元54与所述第二获取单元53通信连接。所述计算单元54用于根据所述帧个数和所述总消息数计算每一帧中的平均消息数。所述处理单元55与所述计算单元54通信连接。所述处理单元55用于调整所述第一调度列表中各帧中消息的分布,使得各帧中消息数等于所述平均消息数或是等于所述平均消息数减一。其中,所述总线根据调整后的所述第一调度列表传输所述待处理消息。本发明实施例所述调度系统用于执行上述调度方法,能够提高调度列表中各帧消息数的均匀程度,提高总线负载的分配均匀性。需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的调度系统而言,由于其与实施例公开的调度方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1