一种星载1553b总线通信优化方法
【专利摘要】本发明提供了一种星载1553B总线通信优化方法,优化处理过程的主要任务是完成通信小周期的划分,合理组织消息的传输顺序,产生优化的总线表以减小通信系统的总线负载、平均延迟时间这两个指标,提高通信系统的性能。总线控制器以优化的总线表为依据组织消息传输。经优化的总线命令表将使通信系统的工作效率达到较为理想的状态,即总线负载和平均延迟时间最优。本发明不仅可以降低总线上消息传输的延迟时间,提高总线带宽利用率,而且可以提高命令表的可扩展性。
【专利说明】
一种星载1553B总线通信优化方法
技术领域
[0001]本发明涉及一种通信优化算法,属于总线传输技术领域。
【背景技术】
[0002]1553B总线是为了适应工业和军事需要而提出的,其应用时间最长且具有很高的可靠性和灵活性,加之技术比较成熟,所以1553B总线已广泛地应用于军事、工业和科技领域。随着系统综合化程度越来越高,数据传输能力大幅提升,如何根据系统ICD文件的要求,合理地调度1553B总线上的各种消息,满足系统对消息传输实时性和可靠性的要求,挖掘1553B系统应用模式层面的潜力是当前研究的热点。
[0003]卫星1553B总线挂载设备种类繁多、情况复杂,提高了对1553B总线命令的要求。要求1553B总线命令被合理的安排,以满足对消息时延的要求、满足总线负载的要求。1553B命令的安排包括周期命令、方式命令和非周期命令,其中周期命令是根据任务需求提前设定的,方式命令是根据需要自己设定,非周期命令则是偶然事件产生的命令。这些命令的安排可以通过1553B命令优化算法实现。
[0004]目前的研究中存在一些优化算法,其中比较常用的是按照命令字和数据字分别进行优化。但是1553B命令具有不可分割性,有数据字的消息一定会有命令字,不存在没有命令字的消息。所以按照命令字优化和按照数据字优化的结果应该是一致的。
【发明内容】
[0005]为克服现有技术的不足,本发明提供一种星载1553B总线通信优化算法,能够满足应用系统对周期命令和事件命令功能和时间延迟特性的要求。
[0006]本发明解决其技术问题所采用的技术方案包括以下步骤:
[0007]步骤一、算法通过改变命令的首次传输位置使总线上的负载均衡;确定总线消息传输的最大周期,作为命令时序表的传输周期;确定总线消息传输的最小周期,作为划分大周期的一个参数;在传输一个最大周期消息的时间内,将一个最大周期划分成若干个最小周期;
[0008]步骤二、确定I秒内所含通信帧的数目m;根据通信帧的数目,确定通信帧的时间长度为t = l/m;最小周期Tmin时间内包含η个通信帧,其中n = Tmin/1 ;
[0009]步骤三、确定消息所含的字节数N,设置消息可以分为M个消息块;如果N/32为整,则取M=N/32;如果N/32有余数,则取M = [N/32 ]+1;
[0010]步骤四、将消息列表中的所有消息按照消息最大延迟时间从小到大排列;最大延迟时间相同的消息,按照传输数据字长度从小到大排列;最大延迟时间和消息传输数据字长度均相同的消息,按照其在消息列表中的序号进行排列,形成初始的总线命令时序表;
[0011]步骤五、对于任意一条消息,将消息的第一个消息块安排到第i帧内,根据命令的类型,如果是置数取数服务,则下一个消息块的起始位置在i' = (i + l) %n,其中%代表取余,η代表最小周期内所含的通信帧数;如果不是置数取数服务,则下一个数据块的起始位置为广=(1+1)%(11-2),%代表取余,11代表最小周期内所含的通信帧数;依次排列,将所有的消息都排布在总线列表上;
[0012]步骤六、计算一个最大周期内所传输的消息块的总和Q,取平均值avr,得到理想状态下各个最小周期中要传输的命令个数avr ;
[0013]步骤七、找到第一个命令数小于avr的最小周期j;
[0014]步骤八、将第一个最小周期中排列在最后的命令取出来并删除该命令在这个最小周期的传输位置,将该命令放置在第j个最小周期内,把这次传输作为该命令的第一次传输;
[0015]步骤九、在确定了命令的第一次传输位置后,该命令在命令表中依据传输周期插入到各个相应的最小周期中;每次插入或删除命令时重新排列命令表中的命令;
[0016]步骤十、在优化过程中某条命令的初始相位发生改变时,在相应的位置再插入一条命令;
[0017]步骤十一、按照步骤七到十依次循环,使第一个周期的命令数小于等于avr,即达到优化的目的。
[0018]本发明的有益效果:在星载总线数据的传输过程中,通过1553B总线排序优化算法,可以生成满足消息的功能特性和时间特性的优化命令表,将该命令表加载在总线控制器上驱动消息的传输。同时,基于优化1553B总线命令表,不仅可以降低总线上消息传输的延迟时间,提高总线带宽利用率,而且可以提高命令表的可扩展性。
【附图说明】
[0019]图1是星载1553B总线通信命令优化流程图。
【具体实施方式】
[0020]星上基于1553B总线的系统如图1所示。它包含一个总线控制器(BC)、远程终端(RT)、远置终端、大容量存储器和多路复接器,其中远程终端是带有RT功能的有效载荷。但不是所有的有效载荷都带有RT功能,这就需要远置终端来完成RT的功能。远置终端为有效载荷提供1553B服务,组织和采集有效载荷的数据,把它们传送到总线上。卫星上各个终端上需要存储的数据都存储在大容量存储器中,并进行纠错编码/译码。把来自不同信源的数据复接为符合数据格式要求的数据进行下放。通过大容量存储器完成卫星在途经地面接收装置时回放数据。以上这些设备都是通过总线控制器(BC)来管理,由此可以看出BC管理的设备种类繁多且数量多(<31个)。这就要求BC的命令表根据需要,将命令均匀的分布在总线上,防止管理混乱和突发事件产生(如故障数据)对总线传输造成影响。
[0021]—般情况下,数据总线上传输的数据类型是不同的,对于类型不一样的数据,其传输周期会相同也会不同,通常情况下把传输最慢的周期称为大周期,传输最快的周期称作小周期。卫星上的消息一般是和地面站的交互,消息的数据量很大,而1553B总线每次最多只能传输32个字节,这样会涉及到消息的拆分问题,将消息拆成若干个消息块,在总线上是消息块的传输,在目的地会将消息块再次组合成消息。
[0022]其中,在航天的范畴内还会涉及到帧配置的概念。帧配置就是将Is分为若干数目的帧数,命令的传输过程是针对帧而言的,一般要求一条命令在几帧内传输完毕。命令的传输模式有两种,高效模式和确认模式。在高效模式下,命令的传输是不需要回馈的,即当命令的目的端接收到命令不需要向命令的发送端反馈命令已收到的信息。对于高效模式下的命令传输,RT_>BC的消息是要求在连续的3帧内传完,BC->RT在连续的2帧内传完,而经过BC中转的RT_>RT的消息则要求在连续的5帧内传完;对于置数取数型的消息,无论是BC->RT还是RT->BC的都要求在连续的2帧内传完。在确认模式下,命令的传输需要回馈,即当命令的目的端接收到命令后需要向命令的发送端反馈命令已收到的信息。对于数据块消息的传输,RT->BC的消息是要求在连续的5帧内传完,BC->RT在连续的4帧内传完,而经过BC中转的RT->RT的消息则要求在连续的9帧内传完;对于置数取数型的消息,无论是BC->RT还是RT->BC的都要求在连续的2帧内传完。
[0023]在对1553B总线负载优化后,可以得到了一个基于小周期的1553B命令总线命令。其中,在每一个小周期内,命令均集中在一个小周期的起始阶段,如此而来,不符合通信帧内总线负载的要求。
[0024]为适应航天领域中1553B通信帧的要求,在第二步需要对命令安排到后面各个通信帧内,不但可以在帧的层面上满足总线负载要求,第二也可以再次平铺总线命令,得到更优化的总线负载要求。
[0025]本发明解决其技术问题所采用的技术方案:1553B总线命令优化算法要实现的主要任务是优化处理,而优化处理过程的核心任务就是生成优化后的命令列表,为通信系统的仿真提供必要的前提。优化处理过程的主要任务是完成通信小周期的划分,合理组织消息的传输顺序,产生优化的总线表以减小通信系统的总线负载、平均延迟时间这两个指标,提高通信系统的性能。总线控制器以优化的总线表为依据组织消息传输。经优化的总线命令表将使通信系统的工作效率达到较为理想的状态,即总线负载和平均延迟时间最优。具体包括以下步骤:
[0026]步骤一、算法通过改变命令的首次传输位置使总线上的负载均衡;确定总线消息传输的最大周期Tmax,作为命令时序表的传输大周期;确定总线消息传输的小周期Tmin,作为划分大周期的一个参数;在传输一个大周期消息的时间内,将一个大周期划分成P个小周期,其中P = Tmax/Tmin;
[0027]步骤二、设置I秒内所含通信帧数目m=100,此设置有前提条件:针对不同型号的卫星,通信帧所占用的时间是不同的,但要求周期性命令的周期是通信帧所占时间的整数倍,这样才能在规定的整数个帧数长中传完。所以对帧数目是有一定限制的,只能是固定的某些参数。根据通信帧的数目,确定通信帧的时间长度为t = l/m。小周期Tmin时间内包含η个通信帧,其中n = Tmin/t;
[0028]步骤三、确定消息的所含字节数N,设置消息可以分为M个消息块。如果N/32为整,则取M=N/32 ;如果N/32有余数,则取M= [N/32J+1。
[0029]步骤四、周期命令的传输要求是按照本条命令的周期,在本周期内传输完毕,所以周期命令的最大允许延迟时间便是其传输周期。在时间轴上将消息列表中的所有消息按照如下规则进行排列:依据消息最大延迟时间从小到大排列;最大延迟时间相同的消息,按照传输数据字长度从小到大排列;最大延迟时间和消息传输数据字长度均相同的情况下,按照其在消息列表中的序号进行排列,形成初始的总线命令时序表。
[0030]步骤五、为了适应航天领域中1553B通信针的要求,接下来需要把命令安排到各个通信帧内,不但要在帧的层面上满足总线负载的要求,而且可以再次平铺形成总线命令,得到优化总线负载的要求。对于其中一条消息,将消息的第一个消息块安排到小周期的第i帧内,根据命令的类型,如果是置数取数服务,则下一个消息块的起始位置在i ' = (i+l)%n,其中%代表取余,η代表小周期内所含的通信帧数;如果不是置数取数服务,则下一个数据块的起始位置为1' = (1+1)%(11-2),%代表取余,11代表小周期内所含的通信帧数。依次排列,将所有的消息都排布在总线列表上;
[0031]步骤六、由于小周期的命令分布均集中在一个小周期的起始阶段,如此而来,不符合通信帧内总线负载的要求。在消息清单文件中每一条消息仅出现一次,而总线表文件中含有一个通信主周期(一个大周期)中所需要传输的所有消息,因此同一消息在总线表中可能出现多次。计算一个大周期内所传输的消息块的总和Q,得到这个消息块总和之后要求取平均值avr = Q/P,其中P为一个大周期内所含小周期的个数,得到理想状态下各个小周期中要传输的命令个数avr。
[0032]步骤七、找到第一个命令数小于平均命令数的小周期j。
[0033]步骤八、将第一个小周期中排列在最后的那条命令取出来并删除该命令在这个小周期的传输位置,将这条命令放置在找到的第j个小周期内,把这次传输作为该条命令的第一次传输。
[0034]步骤九、由于命令为周期传输,在命令第一次传输后该命令在命令表中的位置可以依据该条命令的传输周期插入到相应的小周期中。为了控制优化过程,要在每次插入或删除命令时重新排列命令表中的命令。重新排列的过程,就是对新的命令表中各个小周期内的命令个数修改的过程。
[0035]步骤十、在优化过程中某条命令的初始相位(第一次传输位置)会发生改变,这样会导致因为命令表中该命令传输位置的减少可能出现命令丢失的情况。为防止因为这种情况导致命令丢失,应在相应的位置再插入一条命令,插入的位置依据该命令的传输周期而定。这样就保证该消息在命令表中的传输次数,防止命令丢失。
[0036]步骤十一、按照步骤七到十依次循环,使第一个周期的命令数小于等于平均命令数,即达到优化的目的。
[0037]下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
[0038]某卫星系统内以1553B总线作为主干总线,除BC外,总线上共有9个RT。根据ICD文件要求,共计213条消息,其中周期消息182条,非周期消息131条。其中最大周期为128s,最小周期为0.25s。通过应用该优化算法,生成总线控制器和远程终端使用的总线表及输入输出表。具体步骤如下:
[0039]步骤一、算法通过改变命令的首次传输位置使总线上的负载尽量均衡。确定总线消息传输的最大周期为128s,作为命令时序表的传输周期。确定最小周期,为0.25s,作为划分大周期的一个参数。在传输一个大周期消息的时间内,所有周期性消息至少出现I次。根据最大周期为128s,最小周期为0.25s,可以将一个大周期划分成P= 128/0.25 = 512个小周期。
[0040]步骤二、设置I秒内所含通信帧的数目m=100,根据通信帧的数目,确定通信帧的时间长度为t = l/m = 0.01s,小周期Tmin时间内包含η个通信帧,其中n = Tmin/1 = 25;
[0041]步骤三、确定消息的所含字节数N,设置消息可以分为M个消息块。如果N/32为整,则取M=N/32 ;如果N/32有余数,则取M= [N/32J+1。
[0042]步骤四、周期命令的传输要求是按照本条命令的周期,在本周期内传输完毕,所以周期命令的最大允许延迟时间便是其传输周期。在时间轴上将消息列表中的所有消息按照如下规则进行排列:依据消息最大延迟时间从小到大排列;最大延迟时间相同的消息,按照传输数据字长度从小到大排列;最大延迟时间和消息传输数据字长度均相同的情况下,按照其在消息列表中的序号进行排列,形成初始的总线命令时序表。
[0043]步骤五、为了适应航天领域中1553B通信针的要求,接下来需要把命令安排到各个通信帧内,不但要在帧的层面上满足总线负载的要求,而且可以再次平铺形成总线命令,得到优化总线负载的要求。对于一条消息,首先将消息的第一个消息块安排到第i帧内,区分一下命令的类型,如果是置数取数服务,则下一个消息块的起始位置在i' = (i + l) %n,其中%代表取余,η代表小周期内所含的通信帧数,大小为25;如果不是置数取数服务,则下一个数据块的起始位置为1' = (1 + 1)%(11-2),%代表取余,11代表小周期内所含的通信帧数,大小为25。依次排列,将所有的消息都排布在总线列表上;
[0044]步骤六、由于小周期的命令分布均集中在一个小周期的起始阶段,如此而来,不符合通信帧内总线负载的要求。在消息清单文件中每一条消息仅出现一次,而总线表文件含有在一个通信主周期(一个大周期)中所需要传输的所有消息,因此同一消息在总线表中可能出现多次。计算一个大周期内所传输的消息块的总和Q=2312,得到这个消息块总和之后要求取平均值avr = Q/P?5,其中P为一个大周期内所含小周期的个数,得到理想状态下各个小周期中要传输的命令个数avr = 5。
[0045]步骤七、找到第一个命令数小于平均命令数的小周期j= 2。
[0046]步骤八、将第一个小周期中排列在最后的那条命令取出来并删除该命令在这个小周期的传输位置,将这条命令放置在找到的第2个小周期内,把这次传输作为该条命令的第一次传输。
[0047]步骤九、由于命令为周期传输,在命令第一次传输后该命令在命令表中的位置可以依据该条命令的传输周期插入到相应的小周期中。为了控制优化过程,要在每次插入或删除命令时重新排列命令表中的命令。重新排列的过程,就是对新的命令表中各个小周期内的命令个数修改的过程。
[0048]步骤十、在优化过程中某条命令的初始相位会发生改变,这样会导致因为命令表中该命令传输位置的减少可能出现命令丢失的情况。为防止因为这种情况导致命令丢失,应在相应的位置再插入一条命令,插入的位置依据该命令的传输周期而定。这样就保证该消息在命令表中的传输次数,防止命令丢失。
[0049]步骤十一、按照步骤七到十依次循环,使第一个周期的命令数小于等于平均命令数,即达到优化的目的。
【主权项】
1.一种星载1553B总线通信优化方法,其特征在于包括下述步骤:步骤一、算法通过改变命令的首次传输位置使总线上的负载均衡;确定总线消息传输的最大周期,作为命令时序表的传输周期;确定总线消息传输的最小周期,作为划分大周期的一个参数;在传输一个最大周期消息的时间内,将一个最大周期划分成若干个最小周期;步骤二、确定I秒内所含通信帧的数目m;根据通信帧的数目,确定通信帧的时间长度为t = l/m;最小周期Tmin时间内包含η个通信帧,其中n = Tmin/t; 步骤三、确定消息所含的字节数N,设置消息可以分为M个消息块;如果N/32为整,则取M= N/32;如果N/32有余数,则取M= [N/32]+l; 步骤四、将消息列表中的所有消息按照消息最大延迟时间从小到大排列;最大延迟时间相同的消息,按照传输数据字长度从小到大排列;最大延迟时间和消息传输数据字长度均相同的消息,按照其在消息列表中的序号进行排列,形成初始的总线命令时序表; 步骤五、对于任意一条消息,将消息的第一个消息块安排到第i帧内,根据命令的类型,如果是置数取数服务,则下一个消息块的起始位置在i' = (i+l) %n,其中%代表取余,η代表最小周期内所含的通信帧数;如果不是置数取数服务,则下一个数据块的起始位置为i'= (i+l)%(n-2),%代表取余,η代表最小周期内所含的通信帧数;依次排列,将所有的消息都排布在总线列表上; 步骤六、计算一个最大周期内所传输的消息块的总和Q,取平均值avr,得到理想状态下各个最小周期中要传输的命令个数avr ; 步骤七、找到第一个命令数小于avr的最小周期j; 步骤八、将第一个最小周期中排列在最后的命令取出来并删除该命令在这个最小周期的传输位置,将该命令放置在第j个最小周期内,把这次传输作为该命令的第一次传输;步骤九、在确定了命令的第一次传输位置后,该命令在命令表中依据传输周期插入到各个相应的最小周期中;每次插入或删除命令时重新排列命令表中的命令; 步骤十、在优化过程中某条命令的初始相位发生改变时,在相应的位置再插入一条命令; 步骤十一、按照步骤七到十依次循环,使第一个周期的命令数小于等于avr,即达到优化的目的。
【文档编号】H04L12/24GK106027308SQ201610394589
【公开日】2016年10月12日
【申请日】2016年6月6日
【发明人】张建东, 李丹, 史国庆, 吴勇, 朱岩, 任齐凤, 郤文清, 雷勇
【申请人】西北工业大学