CN110737615A - 一种数据存取方法及装置 - Google Patents
一种数据存取方法及装置 Download PDFInfo
- Publication number
- CN110737615A CN110737615A CN201810796301.8A CN201810796301A CN110737615A CN 110737615 A CN110737615 A CN 110737615A CN 201810796301 A CN201810796301 A CN 201810796301A CN 110737615 A CN110737615 A CN 110737615A
- Authority
- CN
- China
- Prior art keywords
- data
- registers
- input
- register
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
本发明提供了一种数据的存取方法和装置,通过计算单元负责收集输入的原始状态数据,并计算出需要的寄存器个数m,数据写入单元负责按照顺序循环的方法将数据写入数据存储单元,数据存储单元包括m个与存入的数据等长的寄存器并按顺序编号,数据输出单元负责按照顺序循环方法将数据输出。本发明通过这种数据的存取方法和装置能够解决现有数据存取技术中出现的丢帧、硬件资源浪费的技术问题。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种遥测遥控与信息传输技术领域。
背景技术
在无人飞行器测控***中,地面或机载测控设备都需要通过数据接口(串口、网口等)接收地面遥控指令或机载遥测信息。由于测控设备接收数据的时刻和数据发送的时刻无法保证完全对齐,因此一般采用缓存的方式,由寄存器接收存储外部数据,待发送时刻,去寄存器中提取数据进行组帧发送。为减少重要数据的丢帧情况,现有测控设备厂家一般采用多次重复发送的方式,但这些重复的数据会占用较大带宽,降低信息传输效率。
为保证信息传输的可靠性,一般要求测控设备发送数据的发送周期Tout应略小于外部数据发送给测控设备的周期Tin。
但实际应用中,由于Tout和Tin的时间不一致,则对寄存器的读取时刻和存储时刻会产生相对滑动的情况,当Tout与Tin的时间重合的时候,对寄存器会同时进行写操作和读操作,测控设备将读取到不完整或错误的数据,从而导致该帧数据无效。
另一方面,Tin为一个平均值,数据真正的发送时刻存在相对较大的波动,可能出现在一个发送周期Tout内寄存器需要存储两包数据的状态,若寄存器的大小为一个数据帧长,则必然导致丢帧的情况发生,若单个寄存器过大,则会给***带来硬件资源的浪费。
发明内容
本发明提供了一种数据的存取方法和装置,能够解决现有数据存取技术中出现的丢帧、硬件资源浪费的技术问题。
本发明提供了一种数据的存取方法,包括如下步骤:
第一步:确认数据输入特性。所述的输入特性包括数据长度L,数据输入平均周期Tin,数据的最大传输误差Δtin。
第三步:开辟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)。
具体实施例如下:
第二步:在数据存储单元开辟三个长为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 | 000 | a | 001 |
2 | 001 | b | 011 |
3 | 010 | c | 110 |
4 | 100 | a | 101 |
表2取数逻辑真值表
如图1所示,更进一步的说明如下:
在t0时刻,计算单元接收到外部数据,按照顺序循环写入的规则,数据写入单元将数据存放于寄存器a中,data_ram[2:0]状态更新为001,在0时刻,查询data_ram[2:0]状态,数据输出单元取出寄存器a中的数据,data_ram[2:0]状态更新为000。
在t1时刻,计算单元接收到外部数据,数据写入单元将数据存放于寄存器a,data_ram[2:0]状态更新为001,在T时刻,查询data_ram[2:0]状态,数据输出单元取出寄存器a中的数据,data_ram[2:0]状态更新为000。
在2T时刻,查询data_ram[2:0]状态为000,数据输出单元从寄存器中不读取任何数据,发空帧,data_ram[2:0]状态保持000。
在t2时刻,计算单元接收到外部数据,数据写入单元将数据存放于寄存器a,data_ram[2:0]状态更新为001,在t3时刻,计算单元接收到下一帧外部数据,按照顺序循环写入的规则,数据写入单元将其存入寄存器b中,data_ram[2:0]更新为011。
在3T时刻,无数据输入,查询data_ram[2:0]状态(011),数据输出单元取出寄存器a中的数据,data_ram[2:0]状态更新为010。这样首先将上一包未能及时发出的数据先行发送,防止了丢帧的情况发生。
在t4时刻,计算单元接收到外部数据,按照顺序循环写入的规则,数据写入单元将存入寄存器c中,data_ram[2:0]更新为110,在4T时刻,数据输出单元根据顺序循环读取的原则,读取寄存器b中的数据,data_ram[2:0]更新为100.
在5T时刻,数据输出单元根据data_ram[2:0]的状态读取寄存器c中的数据,进行发送,data_ram[2:0]又更新为000。
由于数据的输出周期略小于输入周期,这就使得在足够长的时间内,状态机总能将寄存器data_ram[2:0]恢复为000的状态,从而杜绝出现输出阻塞(即data_ram[2:0]始终保持111)的情况。
作为对比,现用的数据存取方式,因为没有经过寄存器的优化,会有数据存进寄存器但无法按照存数顺序读出或者寄存器不够,无法存放数据而造成丢帧。如表3所示的情况。
表3现用存数逻辑真值表
序号 | 存数前data_ram[2:0] | 存入寄存器编号 | 存数后data_ram[2:0] |
1 | 011 | c | 111 |
2 | 101 | b | 111 |
3 | 110 | a | 111 |
4 | 111 | a | 111 |
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
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所述的一种数据的存取方法,其特征在于:所述的Tout满足Tout与Tin差值不超过1%Tin。
5.一种数据存取的装置,其特征在于:包括计算单元、数据写入单元、数据存储单元和数据输出单元;所述的计算单元负责收集输入的原始状态数据,并计算出需要的寄存器个数m,所述的数据写入单元负责按照顺序循环的数据存储方法将数据写入数据存储单元,所述的数据存储单元包括m个与存入的数据等长的寄存器并按顺序编号,所述的数据输出单元负责按照顺序循环的数据输出方法将数据输出。
7.根据权利要求5所述的一种数据存取的装置,其特征在于:所述的数据写入单元的按顺序循环的写入数据是指从C1开始顺序检测数据,若m个存储器均无数据,则将数据存储在C1中,若Ck中有数据,Ck+1中无数据,则将数据存储在Ck+1中,所述的k取满足条件的最小值;若Cm有数据,则将数据存储在C1中,其中k=1,2,3……m-1。
8.根据权利要求5所述的一种数据存取的装置,其特征在于:所述的顺序循环读取是指从C1开始顺序检测数据,若m个存储器均无数据,则输出空帧,若Cj-1中无数据,Cj中有数据,则提取Cj中的数据;若Cm无数据,则提取C1中的数据,其中j=2,3,……m。
9.根据权利要求5所述的一种数据存取的装置,其特征在于:所述的计算单元收集的原始状态数据包括数据长度L,数据输入平均周期Tin,数据的最大传输误差为Δtin。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810796301.8A CN110737615B (zh) | 2018-07-19 | 2018-07-19 | 一种数据存取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810796301.8A CN110737615B (zh) | 2018-07-19 | 2018-07-19 | 一种数据存取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737615A true CN110737615A (zh) | 2020-01-31 |
CN110737615B CN110737615B (zh) | 2021-06-08 |
Family
ID=69235077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810796301.8A Active CN110737615B (zh) | 2018-07-19 | 2018-07-19 | 一种数据存取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737615B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1218569A (zh) * | 1996-03-15 | 1999-06-02 | 微米技术有限公司 | 自我调节视频fifo的方法和装置 |
JP2000174768A (ja) * | 1998-12-08 | 2000-06-23 | Nec Kofu Ltd | データ伝送処理回路 |
CN1329302A (zh) * | 2000-05-31 | 2002-01-02 | 德克萨斯仪器股份有限公司 | 流水线微处理器的循环高速缓冲存储器及高速缓存控制器 |
CN1812318A (zh) * | 2005-01-24 | 2006-08-02 | 华为技术有限公司 | 访问缓存的方法 |
CN1904854A (zh) * | 2005-07-28 | 2007-01-31 | 光宝科技股份有限公司 | 串流数据缓冲装置及其存取方法 |
CN101681305A (zh) * | 2007-03-29 | 2010-03-24 | 提琴存储器公司 | 存储管理***和方法 |
CN103065598A (zh) * | 2012-12-31 | 2013-04-24 | 东南大学 | 一种防止液晶显示器花屏的控制方法 |
CN103713689A (zh) * | 2013-12-24 | 2014-04-09 | 江苏华丽网络工程有限公司 | 一种适用于pcie3.0的时钟偏差补偿的方法 |
CN104283572A (zh) * | 2013-07-03 | 2015-01-14 | 展讯通信(上海)有限公司 | 卷积码译码器输入信息的控制方法和装置 |
CN105183664A (zh) * | 2015-08-13 | 2015-12-23 | 电子科技大学 | 一种可变长度雷达脉冲数据缓存方法 |
-
2018
- 2018-07-19 CN CN201810796301.8A patent/CN110737615B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1218569A (zh) * | 1996-03-15 | 1999-06-02 | 微米技术有限公司 | 自我调节视频fifo的方法和装置 |
JP2000174768A (ja) * | 1998-12-08 | 2000-06-23 | Nec Kofu Ltd | データ伝送処理回路 |
CN1329302A (zh) * | 2000-05-31 | 2002-01-02 | 德克萨斯仪器股份有限公司 | 流水线微处理器的循环高速缓冲存储器及高速缓存控制器 |
CN1812318A (zh) * | 2005-01-24 | 2006-08-02 | 华为技术有限公司 | 访问缓存的方法 |
CN1904854A (zh) * | 2005-07-28 | 2007-01-31 | 光宝科技股份有限公司 | 串流数据缓冲装置及其存取方法 |
CN101681305A (zh) * | 2007-03-29 | 2010-03-24 | 提琴存储器公司 | 存储管理***和方法 |
CN103065598A (zh) * | 2012-12-31 | 2013-04-24 | 东南大学 | 一种防止液晶显示器花屏的控制方法 |
CN104283572A (zh) * | 2013-07-03 | 2015-01-14 | 展讯通信(上海)有限公司 | 卷积码译码器输入信息的控制方法和装置 |
CN103713689A (zh) * | 2013-12-24 | 2014-04-09 | 江苏华丽网络工程有限公司 | 一种适用于pcie3.0的时钟偏差补偿的方法 |
CN105183664A (zh) * | 2015-08-13 | 2015-12-23 | 电子科技大学 | 一种可变长度雷达脉冲数据缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110737615B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11805224B2 (en) | Image transmission device and method including an image data receiver and a processor | |
EP3827356A1 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
US20180284993A1 (en) | Performing data operations in a storage area network | |
CN103916252A (zh) | 一种基于fpga的高带宽以太网ip核 | |
CN103546467A (zh) | 在TCP/IP网络上传输Modbus RTU协议的方法 | |
CN109768970A (zh) | 一种基于可配置的通用协议生成方法 | |
US9846657B2 (en) | Electronic device for packing multiple commands in one compound command frame and electronic device for decoding and executing multiple commands packed in one compound command frame | |
CN103077147B (zh) | 一种基于链表的全功能1553b总线ip核 | |
CN103929439A (zh) | 一种数据传输方法及modbus服务器 | |
CN115002047B (zh) | 一种远程直接数据存取方法、装置、设备以及存储介质 | |
CN105207794A (zh) | 统计计数设备及其实现方法、具有统计计数设备的*** | |
CN105573711A (zh) | 一种数据缓存方法及装置 | |
CN107801044B (zh) | 后向适应装置与相关方法 | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN105550131B (zh) | 一种基于有限状态机和arinc659总线的接口数据处理***及方法 | |
CN104573135A (zh) | 基于反射内存网与中间件技术的实时数据采集方法及装置 | |
CN109412939A (zh) | 记录工业网络通信周期过程数据的通信网关和工作方法 | |
CN116414767B (zh) | 一种对基于axi协议乱序响应的重排序方法及*** | |
WO2024037076A1 (zh) | 数据交互方法、装置、***、电子设备和存储介质 | |
CN107291641B (zh) | 用于计算单元的存储器直接访问控制装置及其运行方法 | |
CN113177015A (zh) | 基于帧头的串口通讯方法和串口芯片 | |
CN110737615A (zh) | 一种数据存取方法及装置 | |
CN105608028A (zh) | 基于emif接口和双口ram实现dsp与fpga高速通信方法 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理*** | |
CN111126584B (zh) | 数据回写*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |