异步数据读写方法、系统及装置转让专利

申请号 : CN201610836380.1

文献号 : CN106445836B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵明剑陈梓庆黄三伟李泽婷郑子瑶刘乃新

申请人 : 华南理工大学

摘要 :

本发明涉及一种异步数据读写方法、系统及装置,其中方法包括:当触发数据写入操作时,计算存储空间当前的空间余量,将所述空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,将数据通道内的数据帧写入所述存储空间;当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;若所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。

权利要求 :

1.一种异步数据读写方法,其特征在于,包括以下步骤:

当触发数据写入操作时,将存储空间当前的空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,将数据通道内的数据帧写入所述存储空间;

当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;

若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;

若所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出;

在写入操作开始时,对写入数据量进行计数;

在写入操作执行过程中,若接收到读出时钟上升沿,对读出数据量进行计数;其中,所述读出时钟上升沿用于触发数据读出操作;

若写入数据量的计数值达到所述待写入的数据帧长度,对当前读出数据量的计数值进行存储;

根据所述读出数据量的计数值以及所述待写入的数据帧长度计算存储空间当前的空间余量。

2.根据权利要求1所述的异步数据读写方法,其特征在于,还包括以下步骤:若当前正在向所述存储空间写入数据,且在写入操作执行完成之后,所述剩余数据量小于待读出的数据帧长度,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。

3.根据权利要求1所述的异步数据读写方法,其特征在于,根据所述读出数据量的计数值以及所述待写入的数据帧长度计算存储空间当前的空间余量的步骤包括:在不进行写入操作时根据如下公式计算所述空间余量:

Yn=C-[(nch×LA-RW)+Yn-1]+n_Rclk;

式中,n_Rclk为不进行写入操作时的读出时钟上升沿次数,nch为数据通道的数量,LA为每个通道的写入数据帧长度,Yn为第n次写入之前的空间余量,Yn-1为第n-1次写入之前的空间余量,C为存储空间总容量,RW为写入操作过程中读出数据量的计数值,当每次写入操作开始时,将当前累计的Yn寄存为Yn-1,并将RW和n_Rclk置零。

4.根据权利要求1所述的异步数据读写方法,其特征在于,通过补零的方式对所述存储空间中的剩余数据进行填充。

5.一种异步数据读写系统,其特征在于,包括:

写入模块,用于当触发数据写入操作时,将存储空间当前的空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,向所述存储空间写入一帧数据;

比较模块,用于当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;

第一读出模块,用于若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;

第二读出模块,用于若所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出;

第一计数模块,用于在写入操作开始时,对写入数据量进行计数;

第二计数模块,用于在写入操作执行过程中,若接收到读出时钟上升沿,对读出数据量进行计数;其中,所述读出时钟上升沿用于触发数据读出操作;

存储模块,用于若写入数据量的计数值达到所述待写入的数据帧长度,对当前读出数据量的计数值进行存储;

计算模块,用于根据所述读出数据量的计数值以及所述待写入的数据帧长度计算存储空间当前的空间余量。

说明书 :

异步数据读写方法、系统及装置

技术领域

[0001] 本发明涉及数字信号处理技术领域,特别是涉及一种异步数据读写方法、系统及装置。

背景技术

[0002] 目前,随着电子信息技术、无线通信技术、半导体集成电路技术、生物医疗技术的迅猛发展,电子、生物、医疗等诸多领域相互融合、彼此促进,对大规模数据采集的应用需求与日俱增。类似生物信号采集等需要信号链保持高精度、高传输速度的领域蓬勃发展,同时市场对低复杂度、低功耗、低成本的信号系统的需求日益增长,由此给后续通信电路的信息吞吐速率提出了苛刻的要求,其工程实现难度也相应增加。
[0003] 在信息搬移方面,分为同步和异步两种数据读写方式,同步读写方式要求前后级电路具备严格的时序约束,具体应用灵活性差,异步读写方式灵活性好,由此也成为这个技术领域发展的趋势,异步通信技术的核心是缓冲技术。数据缓冲作为调整信号传输速率、保持信号完整性的关键环节,在如广电网络建设、卫星通信、民用低费用通信、数字家庭小型医疗检测通信设备研究领域存在巨大的应用潜力。
[0004] 常用的一种异步数据读写方法是基于RAM(SRAM、SDRAM、DDR等)进行数据缓冲,一种实现手法是基于单口RAM读写时序分开,写入数据时不能读出,读出数据时不能写入,这样就造成对数据流的“断流”,数据读写效率较低。

发明内容

[0005] 基于此,有必要针对现有的异步数据读写方式数据读写效率较低的问题,提供一种异步数据读写方法、系统及装置。
[0006] 一种异步数据读写方法,包括以下步骤:
[0007] 当触发数据写入操作时,将存储空间当前的空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,将数据通道内的数据帧写入所述存储空间;
[0008] 当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;
[0009] 若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;
[0010] 若所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。
[0011] 一种异步数据读写系统,包括:
[0012] 写入模块,用于当触发数据写入操作时,将存储空间当前的空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,向所述存储空间写入一帧数据;
[0013] 比较模块,用于当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;
[0014] 第一读出模块,用于若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;
[0015] 第二读出模块,用于若所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。
[0016] 一种异步数据读写装置,包括:
[0017] 通道数据量计数单元、写入使能判别单元、读出使能判别单元、存储空间、写入数据量统计单元、余量统计单元和读出数据量统计单元;
[0018] 所述通道数据量计数单元连接数据通道、写入数据量统计单元和存储空间,所述存储空间连接读出使能判别单元和读出数据量统计单元,所述读出使能判别单元连接后级读出电路,所述读出数据量统计单元连接余量统计单元和后级读出电路,所述写入数据量统计单元连接写入使能判别单元和余量统计单元,所述写入使能判别单元连接余量统计单元和前级写入电路,所述余量统计单元连接读出使能判别单元。
[0019] 上述异步数据读写方法、系统及装置,在存储空间当前的空间余量大于或等于待写入的数据帧长度时,将数据通道内的数据帧写入所述存储空间;在存储空间当前的剩余数据量大于或等于所述待读出的数据帧长度时,从所述存储空间读出一帧数据,在所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧时,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出,在同一时刻可以同时进行数据写入与读出,提高了异步数据读写的效率。

附图说明

[0020] 图1为一个实施例的异步数据读写方法流程图;
[0021] 图2(a)为一个实施例的异步数据写入方式的程序流图;
[0022] 图2(b)为一个实施例的异步数据读出方式的程序流图;
[0023] 图3为一个实施例的异步数据读写系统的结构示意图;
[0024] 图4为一个实施例的异步数据读写装置的结构示意图;
[0025] 图5为一个实施例的异步数据读写装置的信号流向示意图;
[0026] 图6为一个实施例的异步数据读写装置的应用场景示意图。

具体实施方式

[0027] 下面结合附图对本发明的技术方案进行说明。
[0028] 如图1所示,本发明提供一种异步数据读写方法,可包括以下步骤:
[0029] S1,当触发数据写入操作时,将存储空间当前的空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,将数据通道内的数据帧写入所述存储空间;
[0030] 其中,数据写入操作可由前级写入电路触发。例如,当接收到前级写入电路发送的数据写入请求时,即触发数据写入操作。在执行数据写入操作前,可以先计算存储空间当前的空间余量Y。所述空间余量Y表示存储空间当前的剩余容量。若所述空间余量Y大于或等于所述待写入的数据帧长度,表明所述存储空间当前可以容纳待写入的数据帧,此时,可以将数据通道内的数据帧写入所述存储空间。在一个实施例中,可以向前级写入电路发送空闲标志,该空闲标志用于通知前级写入电路,当前可以写入数据帧。
[0031] 反之,若所述空间余量Y小于所述待写入的数据帧长度,表明所述存储空间当前的空间余量Y不足以容纳待写入的数据帧,此时,可以进入等待状态,待所述存储空间的空间余量Y大于或等于所述待写入的数据帧长度时,才将待写入的数据帧写入该存储空间。在一个实施例中,可以向前级写入电路发送非空闲标志,该非空闲标志用于通知前级写入电路,当前无法写入数据帧。
[0032] S2,当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;
[0033] 其中,数据读出操作可由后级读出电路触发。例如,当接收到后级读出电路发送的读出标志时,即触发数据读出操作。该数据读出操作与步骤S1中的数据写入操作可以是同时触发,也可以是在不同时间分别触发。在执行数据读出操作前,可以先计算存储空间当前的剩余数据量X。所述剩余数据量X表示当前存储在所述存储空间中的数据量。
[0034] S3,若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;
[0035] 若所述剩余数据量大于或等于所述待读出的数据帧长度R,表明所述存储空间当前有足够的数据可供读出,此时,可以将所述存储空间内的数据帧读出至后级读出电路。
[0036] S4,若所述剩余数据量小于待读出的数据帧长度,且当前未向所述存储空间写入数据帧,将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。
[0037] 若所述剩余数据量小于所述待读出的数据帧长度R,表明所述存储空间当前没有足够的数据可供读出,此时,可以进一步判断当前是否正在向所述存储空间写入数据帧。若是,则可以等待写入操作执行完成之后,再将所述存储空间中的剩余数据填充至所述待读出的数据帧长度R后读出。若当前未向所述存储空间写入数据帧,可以直接将所述存储空间中的剩余数据填充至所述待读出的数据帧长度R后读出。由于数据的读写均以数据帧为单位,因此,若存储空间中的剩余数据量不足时,需对剩余数据进行填充,使剩余数据的长度达到所述待读出的数据帧长度后再读出。上述填充可以是通过补零的方式进行数据填充,也可以是通过其他方式进行数据填充。
[0038] 在写入操作开始时,可以对写入数据量进行计数,在写入操作执行过程中,若接收到读出时钟上升沿,对读出数据量进行计数;其中,所述读出时钟上升沿用于触发数据读出操作;若写入数据量的计数值达到所述待写入的数据帧长度,对当前读出数据量的计数值进行存储;可根据所述读出数据量的计数值以及所述待写入的数据帧长度计算存储空间当前的空间余量。具体地,在不进行写入操作时可以根据如下公式计算所述空间余量:
[0039] Yn=C-[(nch×LA-RW)+Yn-1]+n_Rclk;
[0040] 式中,n_Rclk为不进行写入操作时读出时钟上升沿次数,nch为数据通道的数量,LA为每个通道的写入数据帧长度,Yn为第n次写入之前的空间余量,Yn-1为第n-1次写入之前的空间余量,C为存储空间总容量,RW为写入操作过程中读出数据量的计数值。W=nch×LA为待写入的数据帧长度。N为正整数,当每次写入操作开始时,将当前累计的Yn寄存为Yn-1,并将RW和n_Rclk置零。
[0041] 所述异步数据读写方式的程序流图如图2(a)和图2(b)所示。
[0042] 与现有技术相比,本发明的异步数据读写方法具有空间利用率高的优点,读写方法灵活,操作简便。本发明的异步数据读写方法没有对数据的读写帧长设置固定值,可根据需要调整,读写时序可根据实际数据处理的需求进行配置,操作简便。本发明的异步数据读写方法大大提高了存储空间的利用率,在存储空间有限的情况下,能达到其最饱满的状态。本发明的读写操作判别方式效率高,通过计算数据余量即可进一步得到空间余量,由此判断存储空间的存储状态,以触发读写操作,达到低空闲、高吞吐效率的应用效果。
[0043] 如图3所示,本发明还提供一种异步数据读写系统,可包括:
[0044] 写入模块11,用于当触发数据写入操作时,将存储空间当前的空间余量与待写入的数据帧长度进行比较,若所述空间余量大于或等于所述待写入的数据帧长度,将数据通道内的数据帧写入所述存储空间;
[0045] 其中,数据写入操作可由前级写入电路触发。例如,当接收到前级写入电路发送的数据写入请求时,即触发数据写入操作。在执行数据写入操作前,可以先计算存储空间当前的空间余量。所述空间余量表示存储空间当前的剩余容量。若所述空间余量大于或等于所述待写入的数据帧长度,表明所述存储空间当前可以容纳待写入的数据帧,此时,可以将数据通道内的数据帧写入所述存储空间。在一个实施例中,可以向前级写入电路发送空闲标志,该空闲标志用于通知前级写入电路,当前可以写入数据帧。
[0046] 反之,若所述空间余量小于所述待写入的数据帧长度,表明所述存储空间当前的空间余量不足以容纳待写入的数据帧,此时,可以进入等待状态,待所述存储空间的空间余量大于或等于所述待写入的数据帧长度时,才将待写入的数据帧写入该存储空间。在一个实施例中,可以向前级写入电路发送非空闲标志,该非空闲标志用于通知前级写入电路,当前无法写入数据帧。
[0047] 比较模块12,用于当触发数据读出操作时,计算存储空间当前的剩余数据量,将所述剩余数据量与待读出的数据帧长度进行比较;
[0048] 其中,数据读出操作可由后级读出电路触发。例如,当接收到后级读出电路发送的读出标志时,即触发数据读出操作。该数据读出操作与写入模块11中的数据写入操作可以是同时触发,也可以是在不同时间分别触发。在执行数据读出操作前,可以先计算存储空间当前的剩余数据量。所述剩余数据量表示当前存储在所述存储空间中的数据量。
[0049] 第一读出模块13,用于若所述剩余数据量大于或等于所述待读出的数据帧长度,从所述存储空间读出一帧数据;
[0050] 若所述剩余数据量大于或等于所述待读出的数据帧长度,表明所述存储空间当前有足够的数据可供读出,此时,可以将所述存储空间内的数据帧读出至后级读出电路。
[0051] 第二读出模块14,用于若所述剩余数据量小于所述待读出的数据帧长度,表明所述存储空间当前没有足够的数据可供读出,此时,可以进一步判断当前是否正在向所述存储空间写入数据帧。若是,则可以等待写入操作执行完成之后,再将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。若当前未向所述存储空间写入数据帧,可以直接将所述存储空间中的剩余数据填充至所述待读出的数据帧长度后读出。由于数据的读写均以数据帧为单位,因此,若存储空间中的剩余数据量不足时,需对剩余数据进行填充,使剩余数据的长度达到所述待读出的数据帧长度后再读出。上述填充可以是通过补零的方式进行数据填充,也可以是通过其他方式进行数据填充。
[0052] 在写入操作开始时,可以对写入数据量进行计数,在写入操作执行过程中,若接收到读出时钟上升沿,对读出数据量进行计数;其中,所述读出时钟上升沿用于触发数据读出操作;若写入数据量的计数值达到所述待写入的数据帧长度,对当前读出数据量的计数值进行存储;可根据所述读出数据量的计数值以及所述待写入的数据帧长度计算存储空间当前的空间余量。具体地,可以在不进行写入操作时根据如下公式计算所述空间余量:
[0053] Yn=C-[(nch×LA-RW)+Yn-1]+n_Rclk;
[0054] 式中,n_Rclk为不进行写入操作时的读出时钟上升沿次数,nch为数据通道的数量,LA为每个通道的写入数据帧长度,Yn为第n次写入之前的空间余量,Yn-1为第n-1次写入之前的空间余量,C为存储空间总容量,RW为写入操作过程中读出数据量的计数值。N为正整数,当每次写入操作开始时,将当前累计的Yn寄存为Yn-1,并将RW和n_Rclk置零。
[0055] 与现有技术相比,本发明的异步数据读写系统具有空间利用率高的优点,读写方法灵活,操作简便。本发明的异步数据读写方法没有对数据的读写帧长设置固定值,可根据需要调整,读写时序可根据实际数据处理的需求进行配置,操作简便。本发明的异步数据读写方法大大提高了存储空间的利用率,在存储空间有限的情况下,能达到其最饱满的状态。本发明的读写操作判别方式效率高,通过计算数据余量即可进一步得到空间余量,由此判断存储空间的存储状态,以触发读写操作,达到低空闲、高吞吐效率的应用效果。
[0056] 如图4所示,本发明还提供一种异步数据读写装置100,可包括:
[0057] 通道数据量计数单元21、写入使能判别单元22、读出使能判别单元23、存储空间24、写入数据量统计单元25、余量统计单元26和读出数据量统计单元27;
[0058] 所述通道数据量计数单元21连接数据通道、写入数据量统计单元25和存储空间24,所述存储空间24连接读出使能判别单元23和读出数据量统计单元27,所述读出使能判别单元23连接后级读出电路400,所述读出数据量统计单元27连接余量统计单元26和后级读出电路400,所述写入数据量统计单元25连接写入使能判别单元22和余量统计单元26,所述写入使能判别单元22连接余量统计单元26和前级写入电路,所述余量统计单元26连接读出使能判别单元23。
[0059] 其中,写入使能判别单元22可以包括比较器,其直接对写入数据量以及空间余量两路输入进行比较,根据比较结果输出空闲标志。
[0060] 读出使能判别单元23可以包括比较器,当读出标志到来时,该比较器可对数据余量与读出帧长度R进行比较,根据比较结果输出读出使能信号。
[0061] 存储空间24可以是双端口异步FIFO(First In First Out,先进先出)队列。
[0062] 余量统计单元26可以由加法器、乘法器和寄存器构成,完成公式Yn=C-[(nch×LA-RW)+Yn-1]+n_Rclk的运算。计算结果Yn可以直接输出到写入使能判别单元22,当写入开始时将计算结果Yn的值写入寄存器以供下一次计算时代入公式计算,同时,还可以完成公式Xn=C-Yn的运算,直接将计算结果Xn输出到读出使能判别单元23。式中,Xn为第n次读出之前的剩余数据量。
[0063] 读出数据量统计单元27可以包括计数器,其直接对读出数据量进行计数,并将计数结果反馈给余量统计单元26。
[0064] 在一个实施例中,所述通道数据量计数单元21的输入端连接数据通道,所述通道数据量计数单元21的数据输出端连接存储空间24的数据输入端,所述通道数据量计数单元21的使能输出端连接写入数据量统计单元25的输入端,所述写入数据量统计单元25的输出端分别连接写入使能判别单元22的第一输入端和余量统计单元26的第一输入端,所述写入使能判别单元22的输出端连接前级写入电路,所述余量统计单元26的输出端连接所述写入使能判别单元22的第二输入端和读出使能判别单元23的数据输入端,所述读出使能判别单元23的输出端连接所述存储空间24的使能输入端,所述存储空间24的输出端连接读出数据量统计单元27的数据输入端,所述读出数据量统计单元27的输出端连接余量统计单元26的第二输入端和后级读出电路400。
[0065] 工作时,当不进行写入操作时,余量统计单元26计算存储空间24当前的空间余量,所述通道数据量计数单元21获取写入数据帧长度,当接收到前级写入电路的写入请求时,比较空间余量与写入数据帧长度,若所述空间余量大于或等于待写入的数据帧长度,所述写入使能判别单元22输出空闲标志至前级写入电路,前级写入电路通过数据通道将数据帧写入所述存储空间24,所述写入数据量统计单元25计算写入数据量,当读出使能判别单元23接收到后级读出电路400的读出标志时,向存储空间24发送读出使能信号,存储空间24将存储的数据读出至后级读出电路400,读出数据量统计单元27对读出数据量进行计数,余量统计单元26根据写入数据量和读出数据量计数空间余量和剩余数据量,并将空间余量发送至写入使能判别单元22,将剩余数据量发送至读出使能判别单元23。所述异步数据读写装置的信号流向如图5所示。
[0066] 如图6所示,在实际应用中,上述异步数据读写装置100可以与模拟采集前端200、多通道高速ADC300(Analog to Digital Converter,模数转换器)以及后级读出电路400配套使用,构成一套完整的异步数据读写系统,该系统中,模拟采集前端200、多通道高速ADC300、异步数据读写装置100以及后级读出电路400可以依次连接。
[0067] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0068] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。