一种时分复用1553B总线取数方法与流程

文档序号:13882215阅读:641来源:国知局
一种时分复用1553B总线取数方法与流程
本发明涉及一种时分复用1553b总线取数方法,属于遥感卫星综合电子
技术领域
。技术背景时分复用1553b总线是近年来新兴的总线技术。bc端通过总线提供时间服务支持,周期性的使用timedata、timesynchronize原语向rt端分发时间,进行时间同步。数据总线通信发生的时间段称为通信帧。bc应用程序使用通信同步服务原语通知rt通信帧的开始。数据总线上的每个通信帧以通信帧同步消息开始,该同步消息采用带数据字的方式命令进行同步,数据字表示传输帧序号。当通信同步服务和时间同步服务一起使用时,通信帧#0的起始可以使用时间同步消息替代通信帧同步消息。此时,必须调整通信帧的持续时间以便和bc的星时保持同步。bc需要同步总线通信帧和时间的时候,通常采用时间差值集中一次调整的方法。在时分复用1553b总线中,数据传输可以通过置数服务和取数服务实现。在进行取数服务时,rt端按照bc端给出的帧同步信号,取到本轮帧号,在bc读取之前按照预先分配好的带宽将相应的数据放在总线缓冲区内。到了约定的通信帧,bc从缓冲区取回对应rt的数据。bc端星上软件在运行时,常会有校时操作。校时后时间同步消息的间隔会相应的延长或缩短,导致了通信帧周期的延长或缩短。当反向校时时,通信帧的周期缩短,序号靠后的通信帧被裁减。预定在被裁减通信帧内传输的总线取数数据在这一轮通信中没有传输(如图1所示)。rt端在被裁减通信帧预备发给bc的数据会被下次帧周期的数据覆盖。由上可以看出,采用时分复用1553b总线技术,在进行反向校时情况下会丢失一部分取数服务的数据。因此有必要对总线取数服务方法进行改进,设计一种可靠的,并且不显著增加总线传输数据量的取数方法。技术实现要素:本发明提供了一种时分复用1553b总线取数方法,解决的技术问题是:克服了因为bc端校时引发的取数服务数据丢失问题,对丢失数据的远程终端rt进行标记,并在下一轮通信帧周期内对丢失的数据进行补偿传输。采用这种方法不仅可以解决数据丢失问题,保证bc和rt间的数据传输的完整性、可靠性。本发明的技术解决方案是:一种时分复用1553b总线取数方法,包括以下步骤:步骤一、bc端接到校时指令,准备校时,bc端中的一个数组记录每个通信帧进行取数的rt,当通信帧被裁减之前,bc端记录缺失的n-x个通信帧需要从哪些rt端取数,为之后的补偿状态字和补偿帧传输做准备;步骤二、bc端在x+1帧补偿状态字中标记即将因通信帧裁减丢失数据的rt;若rt对应的x+1帧补偿服务状态字相应位为1表示该rt本轮取数数据需要在下一轮补偿传输;步骤三、将数据均匀的分布在通信帧周期内,约定n个通信帧的前面n/2个通信帧作为后边n/2个通信帧的补偿帧,x+1帧的补偿帧为x-n/2,本轮帧周期的第x-n/2个通信帧,bc将x+1帧的补偿状态字广播给所有rt端;步骤四、rt端收到补偿状态字后查找自己对应的状态位,如果存在补偿传输标记,说明在下一个通信周期需要把本次的数据重新传输一次,rt端保存本轮x+1帧数据,等待下轮通信周期传输;步骤五、在下一个帧周期内rt按时将正常的取数服务数据放在缓存内,并在对应的补偿通信帧x-n/2帧同步到来之前把上个通信帧周期的x+1帧数据放在缓存中;步骤六、下一个帧周期bc端在补偿通信x-n/2帧内,从总线缓存中取回补偿传输的数据。其余缺失帧按照步骤三至步骤六以此类推进行补偿传输。进一步地,所述补偿服务状态字共有4字节,32位分别对应32个rt。本发明的有益效果:(1)通过本发明,通过数据补偿传输提升了时分复用1553b总线数据传输的可靠性,保证了rt端数据完整性;(2)通过本发明补偿状态字的设计,可简洁的标记受校时影响通信帧的rt。能够及时的通过广播通知rt进行保存数据操作。避免了rt端本轮的数据被下一轮数据覆盖。(3)通过本方法,可以在一个通信帧周期内完成多个通信帧多个rt数据的补偿传输,高效可靠。(4)通过本方法总线上的数据量最多不过增加几十个字节,不会造成额外的负担。(5)通过建立补偿帧的方法,使得补偿数据可以较为分散的在通信帧周期内传输,避免了因集中补偿传输,总线上数据量过大超出传输能力导致数据丢失。附图说明图1时间同步间隔缩短取数数据丢失原理图;图2补偿服务状态字;图3在下一通信帧周期补偿传输上轮没传的数据;图4数据补偿传输实现框图。具体实施方式本发明提供了一种时分复用1553b总线取数方法。设计了补偿状态字,具体如图2所示。下面通过一个实例对本方法做进一步的说明。假定系统中bc连接了1个下位机rt5。rt5的取数服务约定如下表所示。表1rt5发送的取数数据说明序号源包代号源包长度子地址通信帧1pk001108字节11192pk00254字节1583pk00368字节864pk00496字节9195pk00532字节617假定bc端的时间同步周期为1秒,则通信帧周期也为1秒。一个帧周期内包含20个通信帧。若校时命令使得通信帧周期减少为950毫秒,则最后1个通信帧19(通信帧0为第一个通信帧)的取数数据需要补偿传输。使用时分复用1553b总线取数方法需要进行如下步骤:(1)bc端将补偿状态字的b5位置为1。在校时发生的通信帧9(通信帧19的补偿帧),bc广播补偿状态字。(2)rt5收到补偿状态字,将预备在通信帧19发出的数据pk001、pk004保存。(3)在校时发生的下一轮通信周期的通信帧8之前rt5将pk001存往sa11的缓存、pk004存往sa9的缓存。(4)在校时发生的下一轮通信周期的通信帧9bc在缓存的sa11取走pk001数据,缓存的sa9取走pk004的数据。如图4的框图所示,本方法的实现需要bc端软件和rt端软件配合完成。下面分别介绍bc端软件和rt端软件的操作流程。(1)bc端软件的操作流程第一步:定义补偿状态字,示例代码如下:longintcom_stu[20]=0;//补偿状态字还需定义取数服务结构体,包含取数服务对应rt、传输的源包、具体的子地址、通信帧号。示例代码如下:第二步:bc端接到校时指令,通过计算得知通信帧减少,只有19个通信帧。经过查表bc端软件记录缺失rt5在通信帧19的取数。bc端刷新补偿状态字。第三步bc端软件在通信帧9广播更新后的补偿状态字。write_ram_1553(p_1553_bc,data_offset,com_stu[9]);第四步在校时发生的下一轮通信周期通信帧9,bc端软件取走rt准备好的数据。(2)rt端软件操作流程第一步,定义rt端软件需要补偿传输的数据结构,结构体中除了定义缓存源包的数组,还需定义相应的子地址以及通信帧号。第二步,rt端软件在第9帧收到bc端广播的补偿状态字,发现对应的状态位被置为1,说明rt5本轮有数据在下一轮传输。查表后得知需要缓存两个源包pk001和pk004。第三步,在校时发生的下一轮通信周期通信帧9,rt端软件将源包pk001和pk004分别放在子地址11和子地址9。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1