一种数据存取方法及装置制造方法及图纸

技术编号:23212625 阅读:55 留言:0更新日期:2020-01-31 21:49
本发明专利技术提供了一种数据的存取方法和装置,通过计算单元负责收集输入的原始状态数据,并计算出需要的寄存器个数m,数据写入单元负责按照顺序循环的方法将数据写入数据存储单元,数据存储单元包括m个与存入的数据等长的寄存器并按顺序编号,数据输出单元负责按照顺序循环方法将数据输出。本发明专利技术通过这种数据的存取方法和装置能够解决现有数据存取技术中出现的丢帧、硬件资源浪费的技术问题。

A data access method and device

【技术实现步骤摘要】
一种数据存取方法及装置
本专利技术涉及数据传输
,尤其涉及一种遥测遥控与信息传输

技术介绍
在无人飞行器测控系统中,地面或机载测控设备都需要通过数据接口(串口、网口等)接收地面遥控指令或机载遥测信息。由于测控设备接收数据的时刻和数据发送的时刻无法保证完全对齐,因此一般采用缓存的方式,由寄存器接收存储外部数据,待发送时刻,去寄存器中提取数据进行组帧发送。为减少重要数据的丢帧情况,现有测控设备厂家一般采用多次重复发送的方式,但这些重复的数据会占用较大带宽,降低信息传输效率。为保证信息传输的可靠性,一般要求测控设备发送数据的发送周期Tout应略小于外部数据发送给测控设备的周期Tin。但实际应用中,由于Tout和Tin的时间不一致,则对寄存器的读取时刻和存储时刻会产生相对滑动的情况,当Tout与Tin的时间重合的时候,对寄存器会同时进行写操作和读操作,测控设备将读取到不完整或错误的数据,从而导致该帧数据无效。另一方面,Tin为一个平均值,数据真正的发送时刻存在相对较大的波动,可能出现在一个发送周期Tout内寄存器需要存储两包数据的状态,若寄存器的大小为一个数据帧长,则必然导致丢帧的情况发生,若单个寄存器过大,则会给系统带来硬件资源的浪费。
技术实现思路
本专利技术提供了一种数据的存取方法和装置,能够解决现有数据存取技术中出现的丢帧、硬件资源浪费的技术问题。本专利技术提供了一种数据的存取方法,包括如下步骤:第一步:确认数据输入特性。所述的输入特性包括数据长度L,数据输入平均周期Tin,数据的最大传输误差Δtin。第二步:计算开辟的寄存器个数m:计算正整数开辟的寄存器个数m=n+2。第三步:开辟m个长为L的寄存器Cm......C2、C1。第四步:接收到输入数据时,检测寄存器的存储状态(包括有数据和无数据两种状态),将数据按照顺序循环存放在m个寄存器中,并将存储后的寄存器状态置为有数据。第五步:在数据输出时刻,检测寄存器的存储状态,顺序循环读取寄存器中的数据,并将读取后的寄存器状态置为无数据。所述的最大传输误差指某包数据实际输入时刻Ti'n与按照周期Tin相减得到的理论输入时刻的最大偏差。所述的数据的输出周期Tout略小于输入周期Tin,优选的Tout与Tin差值不超过1%Tin。所述的正整数n,需满足(n-1)Tout<Δtin≤nTout,即在一个输出周期内,最多输入n+1帧数据。所述的顺序循环存放是指从C1开始顺序检测数据,若m个存储器均无数据,则将数据存储在C1中;若Ck中(k=1,2,3……m-1)有数据,Ck+1中无数据,则将数据存储在Ck+1中,所述的k取满足条件的最小值;若Cm有数据,则将数据存储在C1中。所述的顺序循环读取是指从C1开始顺序检测数据,若m个存储器均无数据,则输出空帧;若Ck-1中(k=2,3,……m)无数据,Ck中有数据,则提取Ck中的数据;若Cm无数据,则提取C1中的数据。本专利技术提供了一种数据存取的装置,包括计算单元、数据写入单元、数据存储单元和数据输出单元。所述的计算单元负责收集输入的原始状态数据,并计算出需要的寄存器个数m,所述的数据写入单元负责按照顺序循环写入的方法将数据写入数据存储单元,所述的数据存储单元包括m个与存入的数据等长的寄存器并按顺序编号,所述的数据输出单元负责按照顺序循环输出的方法将数据输出。应用本专利技术的技术方案,实现的有益效果如下:1、本专利技术的数据存取方法和装置,根据数据输入特性确定寄存器的个数,使得即使一个数据终端发送周期内连续收到多帧待发送的数据,仍能先寄存下来等待下一帧的发送,保证了不会因为数据覆盖导致丢帧。2、本专利技术的数据存取方法和装置,根据数据输入特性确定寄存器的最少使用个数,使得系统使用最少的硬件资源取得无丢帧的效果。3、本专利技术的数据存取方法中存数和取数是两个独立的过程,在存数完之后才会对寄存器状态进行更新。因此即使出现读数和取数时刻重合的情况,上述的存取逻辑也能保证不对同一个寄存器同时进行存取操作,从而避免了输入和输出不成功的情况。附图说明所包括的附图用来提供对本专利技术实施例的进一步的理解,其构成了说明书的一部分,用于例示本专利技术的实施例,并与文字描述一起来阐释本专利技术的原理。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了存取数据时序图;其中的nT(n=0,1,2……6)表示数据读取的实际时间,tn(n=0,1,2……6)表示数据输入的实际时间。图2示出了数据存取装置的示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。各设备按照图2所示进行连接,外部数据按照平均周期Tin向测控设备发送数据,数据输出的周期Tout,Tout=0.999Tin,Δtin为最大输入误差,且0<Δtin≤Tout,数据帧长度为L(bits)。具体实施例如下:第一步:计算单元根据数据输入的状态,计算需要开辟的寄存器个数m:计算正整数则在一个输出周期内,最多输入2帧数据,开辟的寄存器个数m=n+2=3。第二步:在数据存储单元开辟三个长为L的寄存器a、b、c。第三步:用data_ram[2:0]表示c、b、a三个寄存器的状态,有数据为1,无数据为0。按照顺序循环存入数据的原则,数据写入单元将收到的数据帧依次存入数据存储单元的三个寄存器a、b、c中,并更新存数后的data_ram[2:0],即将有数据的寄存器对应的data_ram[2:0]中的bit置为1。存数逻辑的真值表如表1,由表1、3可见,当寄存器在一个周期内输入两帧数据,可以完成准确读数,在一个周期内输入3帧数据,三个寄存器都处于有数的状态,输出时的顺序就会出现混乱,要解决这个问题就需要再增加一个寄存器,由此可见需要的寄存器个数最小为m=n+2。第四步:在取数时刻,数据读取单元根据data_ram[2:0]的状态,按照顺序循环读数的原则,读取相应寄存器中的数据,读取数据后,将相应寄存器的状态位置设置为0,更新data_ram[2:0]的状态,取数逻辑真值表如表2。表1存数逻辑真值表序号存数前data_ram[2:0]存入寄存器编号存数后data_ram[2:0]1...

【技术保护点】
1.一种数据的存取方法,其特征在于:包括如下步骤:/n第一步:确认数据输入特性,所述的输入特性包括数据长度L、数据输入平均周期T

【技术特征摘要】
1.一种数据的存取方法,其特征在于:包括如下步骤:
第一步:确认数据输入特性,所述的输入特性包括数据长度L、数据输入平均周期Tin和数据的最大传输误差为Δtin;
第二步:确定寄存器个数m,m=n+2,其中n为正整数且
第三步:开辟m个长为L的寄存器Cm......C2、C1;
第四步:接收到输入数据时,检测寄存器的存储状态,将数据按照顺序循环存放在m个寄存器中,并将存数后的寄存器状态置为有数据;所述的顺序循环存放是指从C1开始顺序检测数据,若m个存储器均无数据,则将数据存储在C1中,若Ck中有数据,Ck+1中无数据,则将数据存储在Ck+1中,所述的k取满足条件的最小值;若Cm有数据,则将数据存储在C1中,其中k=1,2,3……m-1;
第五步:在输出数据时,检测寄存器的存储状态,顺序循环读取寄存器中的数据,并将读取后的寄存器状态置为无数据。所述的顺序循环读取是指从C1开始顺序检测数据,若m个存储器均无数据,则输出空帧,若Cj-1中无数据,Cj中有数据,则提取Cj中的数据;若Cm无数据,则提取C1中的数据,其中j=2,3,……m。


2.根据权利要求1所述的一种数据的存取方法,其特征在于:所述最大传输误差指某包数据实际输入时刻Ti'n与按照数据输入平均周期Tin相减得到的理论输入时刻的最大偏差。


3.根据权利要求1所述的一种数据的存取方法,其特征在于:所述的Δtin满足(n-1)Tout<Δtin≤nTout,式中的Tout为数据输出周期,Tout小于输入周期Tin。


4.根据权利要求3所述的一...

【专利技术属性】
技术研发人员:赵海旺毛飞田晓威
申请(专利权)人:海鹰航空通用装备有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1