CN118170699A - 数据传输方法、设备及存储介质、数据采集系统 - Google Patents

数据传输方法、设备及存储介质、数据采集系统 Download PDF

Info

Publication number
CN118170699A
CN118170699A CN202410587390.0A CN202410587390A CN118170699A CN 118170699 A CN118170699 A CN 118170699A CN 202410587390 A CN202410587390 A CN 202410587390A CN 118170699 A CN118170699 A CN 118170699A
Authority
CN
China
Prior art keywords
memory
data
fpga
processor
virtual memory
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.)
Pending
Application number
CN202410587390.0A
Other languages
English (en)
Inventor
余滔
黄锡汝
李超
解立坤
孙振宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Advanced Technology University of Science and Technology of China
Original Assignee
Institute of Advanced Technology University of Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Advanced Technology University of Science and Technology of China filed Critical Institute of Advanced Technology University of Science and Technology of China
Priority to CN202410587390.0A priority Critical patent/CN118170699A/zh
Publication of CN118170699A publication Critical patent/CN118170699A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Advance Control (AREA)

Abstract

本申请公开了一种数据传输方法、设备及存储介质、数据采集系统,属于数据处理技术领域。数据传输方法应用于处理器端,处理器端与多路选择器连接,多路选择器分别与FPGA端和数据交互内存连接,方法包括以下步骤:响应于FPGA端发送的中断信号,获取内存控制权,其中,中断信号为FPGA端将采集到的第一数据写入第一虚拟内存后产生的信号,第一虚拟内存为数据交互内存基于多路选择器映射至FPGA端的虚拟内存;基于内存控制权,从第二虚拟内存中读取第一数据,其中,第二虚拟内存为数据交互内存基于多路选择器映射至处理器端的虚拟内存。本申请解决了或者至少部分的解决了数据采集时系统功耗较高的技术问题。

Description

数据传输方法、设备及存储介质、数据采集系统
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据传输方法、设备及存储介质、数据采集系统。
背景技术
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)是一种可编程逻辑电路,因具有高度的灵活性和可重构性,使其能够根据不同应用场景进行编程,以实现不同的功能和逻辑,并能够很好的应用于数据采集领域。
基于FPGA的数据采集,通常利用FPGA对采集到的数据进行实时算法处理,再将处理后数据缓存到FPGA的片外DDR(Double Data Rate,双倍速率同步动态随机存储器)中,实现大容量数据缓存;进而通过轮询或者DMA(Direct Memory Access,直接内存访问)的方式实现FPGA的DDR向CPU(Central Processing Unit,中央处理器)的DDR的数据上传;进一步地,CPU的用户层使用时,再从CPU的DDR搬运至用户空间,实现数据采集。但是此过程需要多次进行总线访问,导致数据采集时系统功耗较高。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种数据传输方法、设备及存储介质、数据采集系统,旨在解决或至少部分的解决数据采集时系统功耗较高的技术问题。
为实现上述目的,本申请提供一种数据传输方法,所述数据传输方法应用于处理器端,所述处理器端与多路选择器连接,所述多路选择器分别与FPGA端和数据交互内存连接,所述方法包括以下步骤:
响应于所述FPGA端发送的中断信号,获取内存控制权,其中,所述中断信号为所述FPGA端将采集到的第一数据写入第一虚拟内存后产生的信号,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
基于所述内存控制权,从第二虚拟内存中读取所述第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
可选地,在所述响应于FPGA端发送的中断信号的步骤之前,还包括:
确定所述数据交互内存的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
将所述配置信息发送至所述FPGA端,以使所述FPGA端基于所述配置信息对所述第一虚拟内存进行配置。
可选地,所述数据交互内存中包括多个内存组,所述响应于FPGA端发送的中断信号,获取内存控制权的步骤包括:
响应于所述FPGA端发送的所述中断信号,确定所述FPGA端所使用的目标内存组;
获取所述目标内存组的内存控制权。
可选地,在所述响应于所述FPGA端发送的中断信号,获取内存控制权的步骤之后,还包括:
若所述中断信号为异常中断信号,则基于所述内存控制权,对所述第二虚拟内存进行复位,并向所述FPGA端发送预设的复位信号。
进一步地,本申请还提供一种数据传输方法,所述数据传输方法应用于FPGA端,所述FPGA端与多路选择器连接,所述多路选择器分别与处理器端和数据交互内存连接,所述方法包括以下步骤:
获取并处理关联的传感器采集的数据,得到第一数据;
将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号,以使所述处理器端响应于所述中断信号,并从第二虚拟内存中读取所述第一数据,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
可选地,在所述将所述第一数据写入第一虚拟内存的步骤之前,还包括:
获取所述处理器端发送的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
根据所述配置信息,对所述第一虚拟内存进行配置,并确定目标内存组;
所述将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号的步骤包括:
将所述第一数据写入所述目标内存组的上传地址空间,并从所述目标内存组的下发地址空间中读取所述处理器端下发的第二数据;
向所述处理器端发送所述中断信号,以使所述处理器端获取所述目标内存组的内存控制权。
可选地,所述FPGA端包括:数据状态控制模块,所述数据状态控制模块通过串行总线与所述处理器端连接,所述向所述处理器端发送所述中断信号的步骤包括:
在所述第二数据读取完成后,将所述第一数据的数据偏移信息写入所述数据状态控制模块,并向所述处理器端发送所述中断信号,以使所述处理器端基于所述串行总线获取所述数据偏移信息,并根据所述数据偏移信息从所述第二虚拟内存中读取所述第一数据。
本申请还提供一种数据采集系统,所述数据采集系统包括:数据交互内存以及分别于所述数据交互内存连接的处理器端、FPGA端和多路选择器;
所述处理器端,用于响应于所述FPGA端发送的中断信号,获取内存控制权;基于所述内存控制权,从第二虚拟内存中读取第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存;
所述FPGA端,用于获取并处理关联的传感器采集的数据,得到所述第一数据;将所述第一数据写入第一虚拟内存,并向所述处理器端发送预设的中断信号,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
所述多路选择器,用于将所述数据交互内存分别映射至所述FPGA端和所述处理器端;
所述数据交互内存,用于为所述处理器端和所述FPGA端提供存储空间。
本申请还提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序配置为实现上述的数据传输方法的步骤。
本申请还提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有数据传输程序,所述数据传输程序被处理器执行以实现上述的数据传输方法的步骤。
本申请公开了一种数据传输方法,应用于处理器端,而所述处理器端与多路选择器连接,所述多路选择器分别与FPGA端和数据交互内存连接;进而响应于FPGA端发送的中断信号,获取内存控制权,其中,中断信号为FPGA端将采集到的第一数据写入第一虚拟内存后产生的信号,第一虚拟内存为数据交互内存基于多路选择器映射至FPGA端的虚拟内存;从而基于内存控制权,从第二虚拟内存中读取第一数据,其中,第二虚拟内存为数据交互内存基于多路选择器映射至处理器端的虚拟内存。通过多路选择器的设置以及其对应的连接方式,使得数据交互内存能够同时映射至处理器端和FPGA端,并在各端中生成相应的虚拟内存,实现一个内存同时为两端提供互通的存储空间;从而使得数据从FPGA端传输至处理器端的过程中,数据只需经过两次总线访问,即第一数据被写入第一虚拟内存以及第一数据从第二虚拟内存中被读取,便可实现数据从FPGA端至处理器端的传输。上述方法简化了数据传输流程,相较于常规的数据采集过程,通过降低数据传输过程中的总线访问次数,有效降低了功耗以及应用成本。
附图说明
图1为本申请实施例方案涉及的硬件运行环境的电子设备的结构示意图;
图2为本申请实施例方案涉及的数据传输方法的流程示意图;
图3为本申请实施例方案涉及的常规数据采集系统的结构示意图;
图4为本申请实施例方案涉及的数据采集系统的一结构示意图;
图5为本申请实施例方案涉及的数据传输方法一实施例的时序图;
图6为本申请实施例方案涉及的数据采集系统的另一结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
另外,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,全文中的“和/或”包括三个方案,以A和/或B为例,包括A技术方案、B技术方案,以及A和B同时满足的技术方案;另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的电子设备结构示意图。
如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及数据传输程序。
在图1所示的电子设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本申请电子设备中的处理器1001、存储器1005可以设置在电子设备中,所述电子设备通过处理器1001调用存储器1005中存储的数据传输程序,并执行以下操作:
响应于所述FPGA端发送的中断信号,获取内存控制权,其中,所述中断信号为所述FPGA端将采集到的第一数据写入第一虚拟内存后产生的信号,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
基于所述内存控制权,从第二虚拟内存中读取所述第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:
在所述响应于FPGA端发送的中断信号的操作之前,还包括:
确定所述数据交互内存的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
将所述配置信息发送至所述FPGA端,以使所述FPGA端基于所述配置信息对所述第一虚拟内存进行配置。
进一步地,所述数据交互内存中包括多个内存组,所述响应于FPGA端发送的中断信号,获取内存控制权的操作包括:
响应于所述FPGA端发送的所述中断信号,确定所述FPGA端所使用的目标内存组;
获取所述目标内存组的内存控制权。
进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:
在所述响应于所述FPGA端发送的中断信号,获取内存控制权的操作之后,还包括:
若所述中断信号为异常中断信号,则基于所述内存控制权,对所述第二虚拟内存进行复位,并向所述FPGA端发送预设的复位信号。
进一步地,所述方法包括以下操作:
获取并处理关联的传感器采集的数据,得到第一数据;
将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号,以使所述处理器端响应于所述中断信号,并从第二虚拟内存中读取所述第一数据,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:
在所述将所述第一数据写入第一虚拟内存的操作之前,还包括:
获取所述处理器端发送的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
根据所述配置信息,对所述第一虚拟内存进行配置,并确定目标内存组;
所述将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号的操作包括:
将所述第一数据写入所述目标内存组的上传地址空间,并从所述目标内存组的下发地址空间中读取所述处理器端下发的第二数据;
向所述处理器端发送所述中断信号,以使所述处理器端获取所述目标内存组的内存控制权。
进一步地,所述FPGA端包括:数据状态控制模块,所述数据状态控制模块通过串行总线与所述处理器端连接,所述向所述处理器端发送所述中断信号的操作包括:
在所述第二数据读取完成后,将所述第一数据的数据偏移信息写入所述数据状态控制模块,并向所述处理器端发送所述中断信号,以使所述处理器端基于所述串行总线获取所述数据偏移信息,并根据所述数据偏移信息从所述第二虚拟内存中读取所述第一数据。
基于上述的结构,提出数据传输方法的各个实施例。
参照图2,图2为本申请数据传输方法第一实施例的流程示意图。
在本实施例中,数据传输方法应用于处理器端,其执行主体可以是电子设备,所述电子设备可以为处理器端,例如CPU,在本实施例中并不做限制。在本实施例中,处理器端与多路选择器连接,所述多路选择器分别与FPGA端和数据交互内存连接,数据传输方法包括以下步骤:
步骤S10,响应于所述FPGA端发送的中断信号,获取内存控制权,其中,所述中断信号为所述FPGA端将采集到的第一数据写入第一虚拟内存后产生的信号,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
需要说明的是,参照图3,在常规的基于FPGA端的数据采集与传输过程中,FPGA与传感器连接,并对接收到的传感器采集的数据进行实时算法处理,再将处理后数据缓存到FPGA的片外DDR中,实现大容量数据缓存;进而通过轮询传输或者DMA的方式向实现FPGA端DDR到CPU端DDR的数据上传,进一步地,CPU的用户层在使用时,再从CPU的DDR搬运至用户空间,使得数据传输需要至少经过四次总线。此外,大数据量的数据上传过程往往需要经过多次DMA或轮询传输才能完成,使得总线访问次数与系统功耗随之增加。
在一可行实施例中,鉴于上述问题,参照图4,本实施例在FPGA端和CPU端之间设置多路选择器(MUX)以及数据交互内存,而所述多路选择器分别与FPGA端、CPU端和数据交互内存连接;通过上述连接关系,使得数据交互内存能够同时映射至FPGA端和CPU端中,以生成对应的虚拟内存,包括:位于FPGA端中的第一虚拟内存以及位于CPU端中的第二虚拟内存,实现一个内存同时为两端提供互通的存储空间。进一步地,FPGA端将采集并处理后的第一数据写入第一虚拟内存后,基于内存之间的映射关系,第二虚拟内存中会产生相对应的第一数据。而FPGA端与CPU端通过GPIO端口(General-purpose input/output,通用输入/输出端口)相连,用于传输电平信号。FPGA端通过GPIO端口向CPU端发送中断信号,而CPU端响应于中断信号,获取数据交互内存的内存控制权,其中,任一端拥有内存控制权,即可实现对数据交互内存及其所包含的虚拟内存的读写。
可选地,参照图4,FPGA端和CPU端还可以通过串行总线连接,其中,所述串行总线可以由串口、UART(Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步串行接收/发送器)、SPI(Serial Peripheral Interface,串行外设接口)、I2C(Inter-Integrated Circuit,集成电路总线)实现;通过串行总线的设置,实现FPGA端和CPU端之间命令数据的传输。
应当理解的是,若未设置多路选择器将FPGA端和CPU端隔开,则难以实现FPGA端和CPU端之间的内存共享。
可选地,中断信号可以为FPGA端将至少部分的第一数据写入第一虚拟内存后产生的信号,还可以为FPGA端读取完处理器端下发的第二数据后产生的信号。
可选地,所述数据传输方法可以应用于数据采集系统,所述数据采集系统包括:处理器端;FPGA端,用于对关联的传感器采集的第一数据进行数据处理并传输至所述处理器端;多路选择器,分别与所述FPGA端和所述处理器端连接;数据交互内存,与所述多路选择器连接,并基于所述多路选择器分别映射至所述处理器端与所述FPGA端,用于为所述处理器端和所述FPGA端提供存储空间。
在一可行实施方式中,在步骤S10,响应于FPGA端发送的中断信号的步骤之前,还包括:
步骤S11,确定所述数据交互内存的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
在一可行实施例中,CPU端根据数据交互内存的基础信息,对数据交互内存进行配置,即确定数据交互内存所包含的内存组,以及各内存组各自所使用的地址空间,从而生成配置信息。由于第一虚拟内存和第二虚拟内存为数据交互内存映射至CPU端的虚拟内存,因此,数据交互内存、第一虚拟内存和第二虚拟内存所具有的内存组以及各内存组各自所使用的地址空间相同,对数据交互内存进行配置即对第一虚拟内存和第二虚拟内存进行相同配置。
可选地,地址空间可以包括:上传地址空间和下发地址空间,其中,上传地址空间用于FPGA端向CPU端上传数据,下发地址空间用于CPU端向FPGA端下发数据。
步骤S12,将所述配置信息发送至所述FPGA端,以使所述FPGA端基于所述配置信息对所述第一虚拟内存进行配置。
在一可行实施例中,CPU端通过串行总线连接与FPGA端连接,进而CPU端通过串行总线向FPGA端发送配置信息;而FPGA端接收到配置信息后,基于所述配置信息对第一虚拟内存进行配置,使第一虚拟内存具有相同的内存组与内存空间。
示例性的,数据交互内存包括:内存组A,内存组A包括:上传地址空间1和下发地址空间2;若FPGA端具有内存组A的内存控制权,则FPGA端可以同时向上传地址空间1中写入第一数据,并从下发地址空间2中读取第二数据;而CPU端若需读取所述第一数据,则需获取内存组A的内存控制权,进而从上传地址空间1中读取所述第一数据,并同时可以向下发地址空间2中写入第二数据,实现两端之间的数据传输。进一步地,数据交互内存可以包括多个内存组。当CPU端获取到第一内存组的内存控制权后,可以读取第一内存组的上传地址空间中的数据,并向第一内存组的下发地址空间中下发数据,并使FPGA端具有第二内存组的内存控制权,进而FPGA端可以向第二内存组的上传地址空间中上传数据,并读取第二内存组的下发地址空间中的数据。而当CPU端读取完第一内存组中的第一数据后,可以获取第二内存组的内存控制权,并使FPGA端具有第一内存组的内存控制权,并执行相同的数据传输步骤,从而实现多端之间连续的数据传输。
在本实施例中,CPU端预先对数据交互内存进行配置,以将数据交互内存分为多个内存组,而各内存组中包括多个具有不同功能的地址空间;通过将单个的存储器(数据交互内存)划分为多个内存组,实现CPU端与FPGA端对数据交互内存的分开操作,保证数据的连续传输,提高数据采集与传输效率。
在一可行实施方式中,所述数据交互内存中包括多个内存组,步骤S10,响应于FPGA端发送的中断信号,获取内存控制权的步骤包括:
步骤S13,响应于所述FPGA端发送的所述中断信号,确定所述FPGA端所使用的目标内存组;
步骤S14,获取所述目标内存组的内存控制权。
在一可行实施例中,CPU端响应于FPGA端发送的中断信号,并从数据交互内存组所具有的多个内存组中,确定FPGA端上传第一数据时所使用的目标内存组,进而CPU端获取目标内存组的内存控制权;由于数据交互内存包括多个内存组,而FPGA端将第一数据上传至了目标内存组中,因此,CPU端需要获取到目标内存组的内存控制权才能够获取到所述第一数据。
示例性的,数据交互内存可以包括:第一内存组和第二内存组。FPGA端具有第一内存组的内存控制权,进而FPGA端将第一数据上传至第一内存组的上传地址空间中,因此目标内存组为第一内存组;进而CPU端若想读取所述第一数据,需要获取目标内存组,即第一内存组的内存控制权,进而从第一内存组的上传地址空间中读取所述第一数据。
可选地,CPU端在获取到所述目标内存组的内存控制权后,可以使FPGA端具有所述数据交互内存中的除所述目标内存组以外的至少一个内存组的内存控制权。
在本实施例中,CPU端针对性的获取到FPGA端上传第一数据时所使用的目标内存组的内存控制权,从而实现对传感器采集到的数据的实时获取,实现数据的高效传输。
在一可行实施例中,在步骤S10,响应于所述FPGA端发送的中断信号,获取内存控制权的步骤之后,还包括:
步骤S15,若所述中断信号为异常中断信号,则基于所述内存控制权,对所述第二虚拟内存进行复位,并向所述FPGA端发送预设的复位信号。
在一可行实施例中,中断信号包括异常中断信号,即FPGA端在对第一虚拟内存进行读写并出现异常时生成的中断信号;若CPU端接收到异常中断信号,则获取内存控制权,并进一步基于内存控制权,对第二虚拟内存进行复位;由于第一虚拟内存和第二虚拟内存为数据交互内存映射至CPU端的虚拟内存,因此,对第二虚拟内存进行复位即对第一虚拟内存和数据交互内存进行复位,并向FPGA端发送预设的复位信号,以使FPGA端响应于所述复位信号进行复位。
可选地,中断信号可以包括:下发中断信号,即FPGA端在读取完目标内存组的下发地址空间中的第二数据后,生成下发中断信号,并基于串行总线发送至CPU端,CPU端响应于所述下发中断信号,获取内存控制权;进而执行基于所述内存控制权,从第二虚拟内存中读取所述第一数据的步骤。
可选地,若CPU端接收到异常中断信号,则获取FPGA所使用的目标内存组的内存控制权,并对第二虚拟内存中的目标内存组进行复位。
在本实施例中,预设有复位策略,即CPU端在接收到异常中断信号时,表明FPGA端的数据读写存在异常,则对数据交互内存以及FPGA端进行复位,修复异常。
步骤S20,基于所述内存控制权,从第二虚拟内存中读取所述第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
在一可行实施例中,CPU端具有数据交互内存基于多路选择器映射产生的第二虚拟内存;进而CPU端基于内存控制权,从第二虚拟内存中读取FPGA端上传的第一数据。
可选地,CPU端获取FPGA端所使用的目标内存组的内存控制权,进而基于所述内存控制权,从第二虚拟内存的目标内存组中读取所述第一数据。
可选地,FPGA端在向第一虚拟内存写入第一数据后,会将第一数据的数据偏移信息进行存储,所述数据偏移信息可以包括第一数据在数据交互内存中的位置、属性信息等;CPU端通过串行总线向FPGA端获取第一数据的数据偏移信息,并根据数据偏移信息,确定目标内存组;进而CPU端获取目标内存组的内存控制权,并从第二虚拟内存的目标内存组中读取所述第一数据,实现数据上传。
可选地,CPU端可以向FPGA端下发第二数据;CPU端将第二数据写入第二虚拟内存的第一内存组中,并将第二数据的数据偏移信息进行存储,并使FPGA端具有第一内存组的内存控制权;FPGA端通过串行总线,根据第一内存组的内存控制权以及第二数据的数据偏移信息,从第一虚拟内存的第一内存组中读取第二数据,实现数据的下发。
在本实施例中,通过多路选择器的设置以及其对应的连接方式,使得数据交互内存能够同时映射至处理器端和FPGA端,并在各端中生成相应的虚拟内存,实现一个内存同时为两端提供互通的存储空间;从而使得数据从FPGA端传输至处理器端的过程中,数据只需经过两次总线访问,即第一数据被写入第一虚拟内存以及第一数据从第二虚拟内存中被读取,便可实现数据从FPGA端至处理器端的传输。上述方法简化了数据传输流程,相较于常规的数据采集过程,通过降低数据传输过程中的总线访问次数,有效降低了功耗以及应用成本。
进一步地,本申请实施例还提供一种数据传输方法,所述数据传输方法应用于FPGA端,其执行主体可以是电子设备,所述电子设备可以为FPGA端,在本实施例中并不做限制。所述FPGA端与多路选择器连接,所述多路选择器分别与处理器端和数据交互内存连接,所述方法包括以下步骤:
步骤A10,获取并处理关联的传感器采集的数据,得到第一数据;
在一可行实施例中,FPGA端获取关联的传感器采集的数据(传感数据),并对传感数据进行处理,例如,对传感数据进行实时算法处理,得到第一数据。
步骤A20,将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号,以使所述处理器端响应于所述中断信号,并从第二虚拟内存中读取所述第一数据,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
在一可行实施例中,FPGA端将第一数据写入第一虚拟内存中,由于第一虚拟内存和第二虚拟内存为数据交互内存映射至CPU端的虚拟内存,因此,在将数据写入上述任一内存中时,剩余内存中均可以读取到相应数;FPGA端进一步向处理器端发送预设的中断信号;而处理器端响应于所述中断信号,并从第二虚拟内存中读取所述第一数据,实现数据的采集与传输。
可选地,所述数据传输方法可以应用于数据采集系统,所述数据采集系统包括:处理器端;FPGA端,用于对关联的传感器采集的第一数据进行数据处理并传输至所述处理器端;多路选择器,分别与所述FPGA端和所述处理器端连接;数据交互内存,与所述多路选择器连接,并基于所述多路选择器分别映射至所述处理器端与所述FPGA端,用于为所述处理器端和所述FPGA端提供存储空间。
在本实施例中,通过多路选择器的设置以及其对应的连接方式,使得数据交互内存能够同时映射至处理器端和FPGA端,并在各端中生成相应的虚拟内存,实现一个内存同时为两端提供互通的存储空间;从而使得数据从FPGA端传输至处理器端的过程中,数据只需经过两次总线访问,即第一数据被写入第一虚拟内存以及第一数据从第二虚拟内存中被读取,便可实现数据从FPGA端至处理器端的传输。上述方法简化了数据传输流程,相较于常规的数据采集过程,通过降低数据传输过程中的总线访问次数,有效降低了功耗以及应用成本。
在一可行实施例中,在步骤A20,将所述第一数据写入第一虚拟内存的步骤之前,还包括:
步骤A11,获取所述处理器端发送的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
步骤A12,根据所述配置信息,对所述第一虚拟内存进行配置,并确定目标内存组;
在一可行实施例中,FPGA端获取处理器端发送的配置信息,进而根据配置信息,确定第一虚拟内存所包含的内存组,以及各内存组各自包含的地址空间;进一步确定目标内存组,其中,所述目标内存组为FPGA端具有内存控制权的内存组。
步骤A20,将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号的步骤包括:
步骤A21,将所述第一数据写入所述目标内存组的上传地址空间,并从所述目标内存组的下发地址空间中读取所述处理器端下发的第二数据;
在一可行实施例中,FPGA端具有目标内存组的内存控制权,进而将第一数据写入目标内存组的上传地址空间;同时,FPGA端可以进一步从目标内存组的下发地址空间中读取处理器端下发的第二数据。
步骤A22,向所述处理器端发送所述中断信号,以使所述处理器端获取所述目标内存组的内存控制权。
在一可行实施例中,FPGA端向处理器端发送中断信号,以使处理器端进行内存控制权的切换,并获取到目标内存组的内存控制权。
在本实施例中,CPU端预先对数据交互内存进行配置,以将数据交互内存分为多个内存组,而各内存组中包括多个具有不同功能的地址空间;通过将单个的存储器(数据交互内存)划分为多个内存组,实现CPU端与FPGA端对数据交互内存的分开操作,保证数据的连续传输,提高数据采集与传输效率。
在一可行实施方式中,所述FPGA端包括:数据状态控制模块,所述数据状态控制模块通过串行总线与所述处理器端连接,步骤A22,向所述处理器端发送所述中断信号的步骤包括:
步骤A221,在所述第二数据读取完成后,将所述第一数据的数据偏移信息写入所述数据状态控制模块,并向所述处理器端发送所述中断信号,以使所述处理器端基于所述串行总线获取所述数据偏移信息,并根据所述数据偏移信息从所述第二虚拟内存中读取所述第一数据。
在一可行实施例中,FPGA端在读取完第二数据后,代表CPU端到FPGA端的数据下发完成;FPGA端将第一数据的数据偏移信息写入数据状态控制模块,并向处理器端发送中断信号;而处理器端基于串行总线获取数据偏移信息,并根据数据偏移信息从第二虚拟内存中读取第一数据。
可选地,中断信息是在数据下发完成后,即FPGA端读取完全部第二数据后,发送至CPU端。由于数据交互内存中多内存组的设置,使得FPGA端可以在上传至少部分第一数据,且读取完全部第二数据后发送中断信号,并同时保障数据传输的连续性。
示例性的,参照图5,数据交互内存包括:第一内存组和第二内存组;处理器端具有第一内存组的内存控制权1,进而CPU端向第一内存组的下发地址空间中写入第二数据A,并同时从第一内存组的上传地址空间中读取第一数据A。而FPGA端具有第二内存组的内存控制权2,进而FPGA端向第二内存组的上传地址空间中写入第一数据B,并同时从第二内存组的下发地址空间中读取第二数据B;而当FPGA端的第二数据B读取完成后,表示数据下发完成,则FPGA端向CPU端发送中断信号;CPU端响应于所述中断信号,进行内存控制权的切换,使得CPU端具有第二内存组的内存控制权2,FPGA端具有第一内存组的内存控制权1。CPU端从第二内存组的上传地址空间中读取第一数据B;而FPGA端可以从第一内存组的下发地址空间中读取第二数据A;通过各内存组的内存控制权的切换,实现数据的连续传输。
进一步地,本申请实施例还提供一种数据采集系统,参照图4,所述数据采集系统包括:数据交互内存以及分别于所述数据交互内存连接的处理器端、FPGA端和多路选择器;
所述处理器端,用于响应于所述FPGA端发送的中断信号,获取内存控制权;基于所述内存控制权,从第二虚拟内存中读取第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存;
所述FPGA端,用于获取并处理关联的传感器采集的数据,得到所述第一数据;将所述第一数据写入第一虚拟内存,并向所述处理器端发送预设的中断信号,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
所述多路选择器,用于将所述数据交互内存分别映射至所述FPGA端和所述处理器端;
所述数据交互内存,用于为所述处理器端和所述FPGA端提供存储空间。
可选地,FPGA端可以具有支持的内存IP核,处理器端可以具有支持的内存外围接口;处理器端与可以与中控台通过以太网进行数据通信。
可选地,为保证数据读写的时序同步,处理器端将内存的读写时钟扇出给FPGA端。
可选地,处理器端确定数据交互内存的配置信息,其中,配置信息包括数据交互内存所包含的内存组以及各内存组的地址空间;
处理器端将配置信息发送至FPGA端;
处理器端将第二数据写入目标内存组的下发地址空间中;
FPGA端获取到处理器端发送的配置信息后,根据配置信息,对第一虚拟内存进行配置,并确定目标内存组;
FPGA端获取并处理关联的传感器采集的数据,得到第一数据;
FPGA端将第一数据写入目标内存组的上传地址空间,并从目标内存组的下发地址空间中读取处理器端下发的第二数据;
FPGA端在第二数据读取完成后,将第一数据的数据偏移信息写入数据状态控制模块,并向处理器端发送中断信号;
处理器端响应于FPGA端发送的中断信号,确定FPGA端所使用的目标内存组,并获取目标内存组的内存控制权;
处理器端基于串行总线获取数据偏移信息,并根据数据偏移信息和内存控制权,从第二虚拟内存的目标内存组的上传地址空间中读取第一数据。
示例性的,参照图6,FPGA端包括数据传输端口,所述数据传输端口包括:数据状态控制模块、DDR总线控制器、数据读写控制模块、数据端口状态监测模块。
具体而言,数据状态控制模块通过串行总线与处理器端连接,并存储有第一数据的数据偏移信息;进而处理器端基于串行总线从数据状态控制模块中获取第一数据的数据偏移信息;数据状态控制模块还可以存储有各地址空间的开始地址、结束地址等,本实施例对此不加以限制。处理器端还可以将数据交互内存的配置信息发送至数据状态控制模块,以使数据状态控制模块基于配置信息对第一虚拟内存进行配置。
DDR总线控制器,与多路选择器连接,用于实现对第一虚拟内存的读写。
数据读写控制模块,用于监测数据状态控制模块,并确定目标内存组;进而通过DDR总线控制器将第一数据写入第一虚拟内存的目标内存组中,并将第一数据的数据偏移信息存储至数据状态控制模块,例如,存储至数据状态控制模块的寄存器中。同时,将数据读写结果反馈至数据端口状态监测模块。
数据端口状态监测模块,通过GPIO与处理器端连接,并基于数据读写控制模块反馈的数据读写结果,生成中断信号,并发送至处理器端。数据端口状态监测模块还可以对数据读写控制模块的读写情况进行监测,在监测到读写异常时,生成异常中断信号,并发送至处理器端。
在本实施例中,通过多路选择器的设置以及其对应的连接方式,使得数据交互内存能够同时映射至处理器端和FPGA端,并在各端中生成相应的虚拟内存,实现一个内存同时为两端提供互通的存储空间;从而使得数据从FPGA端传输至处理器端的过程中,数据只需经过两次总线访问,即第一数据被写入第一虚拟内存以及第一数据从第二虚拟内存中被读取,便可实现数据从FPGA端至处理器端的传输。上述方法简化了数据传输流程,相较于常规的数据采集过程,通过降低数据传输过程中的总线访问次数,有效降低了功耗以及应用成本。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、 方法、物品或者系统中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光 盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种数据传输方法,其特征在于,所述数据传输方法应用于处理器端,所述处理器端与多路选择器连接,所述多路选择器分别与FPGA端和数据交互内存连接,所述方法包括以下步骤:
响应于所述FPGA端发送的中断信号,获取内存控制权,其中,所述中断信号为所述FPGA端将采集到的第一数据写入第一虚拟内存后产生的信号,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
基于所述内存控制权,从第二虚拟内存中读取所述第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
2.如权利要求1所述的数据传输方法,其特征在于,在所述响应于FPGA端发送的中断信号的步骤之前,还包括:
确定所述数据交互内存的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
将所述配置信息发送至所述FPGA端,以使所述FPGA端基于所述配置信息对所述第一虚拟内存进行配置。
3.如权利要求1所述的数据传输方法,其特征在于,所述数据交互内存中包括多个内存组,所述响应于FPGA端发送的中断信号,获取内存控制权的步骤包括:
响应于所述FPGA端发送的所述中断信号,确定所述FPGA端所使用的目标内存组;
获取所述目标内存组的内存控制权。
4.如权利要求1所述的数据传输方法,其特征在于,在所述响应于所述FPGA端发送的中断信号,获取内存控制权的步骤之后,还包括:
若所述中断信号为异常中断信号,则基于所述内存控制权,对所述第二虚拟内存进行复位,并向所述FPGA端发送预设的复位信号。
5.一种数据传输方法,其特征在于,所述数据传输方法应用于FPGA端,所述FPGA端与多路选择器连接,所述多路选择器分别与处理器端和数据交互内存连接,所述方法包括以下步骤:
获取并处理关联的传感器采集的数据,得到第一数据;
将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号,以使所述处理器端响应于所述中断信号,并从第二虚拟内存中读取所述第一数据,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存。
6.如权利要求5所述的数据传输方法,其特征在于,在所述将所述第一数据写入第一虚拟内存的步骤之前,还包括:
获取所述处理器端发送的配置信息,其中,所述配置信息包括所述数据交互内存所包含的内存组以及各所述内存组的地址空间;
根据所述配置信息,对所述第一虚拟内存进行配置,并确定目标内存组;
所述将所述第一数据写入第一虚拟内存,并向处理器端发送预设的中断信号的步骤包括:
将所述第一数据写入所述目标内存组的上传地址空间,并从所述目标内存组的下发地址空间中读取所述处理器端下发的第二数据;
向所述处理器端发送所述中断信号,以使所述处理器端获取所述目标内存组的内存控制权。
7.如权利要求6所述的数据传输方法,其特征在于,所述FPGA端包括:数据状态控制模块,所述数据状态控制模块通过串行总线与所述处理器端连接,所述向所述处理器端发送所述中断信号的步骤包括:
在所述第二数据读取完成后,将所述第一数据的数据偏移信息写入所述数据状态控制模块,并向所述处理器端发送所述中断信号,以使所述处理器端基于所述串行总线获取所述数据偏移信息,并根据所述数据偏移信息从所述第二虚拟内存中读取所述第一数据。
8.一种数据采集系统,其特征在于,所述数据采集系统包括:数据交互内存以及分别于所述数据交互内存连接的处理器端、FPGA端和多路选择器;
所述处理器端,用于响应于所述FPGA端发送的中断信号,获取内存控制权;基于所述内存控制权,从第二虚拟内存中读取第一数据,其中,所述第二虚拟内存为所述数据交互内存基于所述多路选择器映射至所述处理器端的虚拟内存;
所述FPGA端,用于获取并处理关联的传感器采集的数据,得到所述第一数据;将所述第一数据写入第一虚拟内存,并向所述处理器端发送预设的中断信号,其中,所述第一虚拟内存为所述数据交互内存基于所述多路选择器映射至所述FPGA端的虚拟内存;
所述多路选择器,用于将所述数据交互内存分别映射至所述FPGA端和所述处理器端;
所述数据交互内存,用于为所述处理器端和所述FPGA端提供存储空间。
9.一种电子设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序配置为实现如权利要求1至7中任一项所述的数据传输方法的步骤。
10.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如权利要求1至7任一项所述的数据传输方法的步骤。
CN202410587390.0A 2024-05-13 2024-05-13 数据传输方法、设备及存储介质、数据采集系统 Pending CN118170699A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410587390.0A CN118170699A (zh) 2024-05-13 2024-05-13 数据传输方法、设备及存储介质、数据采集系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410587390.0A CN118170699A (zh) 2024-05-13 2024-05-13 数据传输方法、设备及存储介质、数据采集系统

Publications (1)

Publication Number Publication Date
CN118170699A true CN118170699A (zh) 2024-06-11

Family

ID=91357012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410587390.0A Pending CN118170699A (zh) 2024-05-13 2024-05-13 数据传输方法、设备及存储介质、数据采集系统

Country Status (1)

Country Link
CN (1) CN118170699A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064606A1 (en) * 2002-09-26 2004-04-01 Mitsubishi Denki Kabushi Kaisha Memory system allowing fast operation of processor while using flash memory incapable of random access
CN105988953A (zh) * 2015-02-12 2016-10-05 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
CN113360420A (zh) * 2020-03-06 2021-09-07 北京机械设备研究所 一种内存控制方法和装置
CN116185565A (zh) * 2022-12-29 2023-05-30 芯动微电子科技(武汉)有限公司 一种内存数据隔离和共享的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064606A1 (en) * 2002-09-26 2004-04-01 Mitsubishi Denki Kabushi Kaisha Memory system allowing fast operation of processor while using flash memory incapable of random access
CN105988953A (zh) * 2015-02-12 2016-10-05 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
CN113360420A (zh) * 2020-03-06 2021-09-07 北京机械设备研究所 一种内存控制方法和装置
CN116185565A (zh) * 2022-12-29 2023-05-30 芯动微电子科技(武汉)有限公司 一种内存数据隔离和共享的系统和方法

Similar Documents

Publication Publication Date Title
US9940029B2 (en) Semiconductor memory device that switches between states and moves data in accordance with a current state
EP3470971B1 (en) Method, apparatus, and system for accessing memory device
JP2004118544A (ja) メモリシステム
WO2006101293A1 (en) Access control to partitioned blocks in shared memory
US7035956B2 (en) Transmission control circuit, reception control circuit, communications control circuit, and communications control unit
JP4696199B2 (ja) 転送ディスクリプタ用メモリを備えるusbホストコントローラ
CN114816263A (zh) 存储访问方法及智能处理装置
CN117033275B (zh) 加速卡间的dma方法、装置、加速卡、加速平台及介质
CN117312229B (zh) 一种数据传输装置、数据处理设备、系统、方法及介质
US9015272B2 (en) Microcomputer
CN114238184A (zh) 一种多功能dma的传输方法、装置及存储介质
CN118170699A (zh) 数据传输方法、设备及存储介质、数据采集系统
KR100736902B1 (ko) 복수의 프로세서에 의한 메모리 공유 방법 및 장치
KR100746364B1 (ko) 메모리 공유 방법 및 장치
CN116483259A (zh) 一种数据处理方法以及相关装置
CN116049030A (zh) 用于数据访问的方法及装置、电子设备、存储介质
KR20040067063A (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
EP3819778A1 (en) Bus system and method for operating a bus system
CN112154419A (zh) 性能监测装置、方法、片上系统、可移动平台及相机
JP2021086506A (ja) システム、及びプログラマブルシーケンサ
KR100652690B1 (ko) 이동 통신 단말기의 멀티 프로세서 장치
TWI764311B (zh) 記憶體存取方法及智慧處理裝置
US20080005417A1 (en) Method for speedy delivery of data between processors and digital processing apparatus having shared memory
US11086563B2 (en) Storage device including a memory controller and a method of operating an electronic system including memory
JP2005526335A (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination