CN106294234B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN106294234B CN106294234B CN201610619878.2A CN201610619878A CN106294234B CN 106294234 B CN106294234 B CN 106294234B CN 201610619878 A CN201610619878 A CN 201610619878A CN 106294234 B CN106294234 B CN 106294234B
- Authority
- CN
- China
- Prior art keywords
- data
- bit width
- data bit
- matching module
- 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.)
- Active
Links
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
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Image Input (AREA)
Abstract
本发明实施例公开了一种数据传输方法及装置,所述方法包括:位宽匹配模块接收传感器发送的第一数据位宽的第一数据;所述位宽匹配模块将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块;所述先进先出缓存模块将所述第二数据以预设数据传输速率发送至第一存储器。通过位宽匹配模块实现将第一数据位宽的第一数据转换为第二数据位宽的第二数据,以及通过在先进先出缓存模块设置预设数据传输速率用于传输第二数据至第一存储器,从而使得该处理芯片在进行数据传输时不需要占用块存储器,节约块存储资源,提高数据处理效率。
Description
技术领域
本发明涉及通信领域,具体涉及一种数据传输方法及装置。
背景技术
随着科技的发展,图像处理技术也越来越多地应用于各种领域,使得对图像处理技术也提出了越来越高的要求,例如,当将视频图像处理应用于流水线式的工业领域时,需要对视频图像进行实时处理,而视频实时处理对嵌入式***有着非常高的要求。
目前,由于图像处理算法较为复杂,无法对图像算法进行pixel-by-pixel的流水线操作,所以需要对整帧图像数据进行缓存,但是对图像进行缓存需要利用处理器上进行fifo缓存。例如,当使用现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)进行缓存时,一般利用FPGA上的块随机存取存储器(Block Random-Access Memory,简称BRAM)实现fifo缓存,但是由于BRAM资源有限,使得利用BRAM进行视频图像缓存将占用FPGA上应用于图像处理的资源减少,将有可能导致图像处理效率降低,或者使用拥有较大BRAM的FPGA将导致资源成本大大提高。
发明内容
本发明实施例提供了一种数据传输方法及装置,以期可以利用FPGA上的逻辑资源实现图像的fifo缓存,节约BRAM资源,提高数据处理效率。
第一方面,本发明实施例提供一种数据传输方法,包括:
位宽匹配模块接收传感器发送的第一数据位宽的第一数据;
所述位宽匹配模块将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块;
所述先进先出缓存模块将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。
第一方面,本发明实施例提供一种数据传输装置,包括:
位宽匹配模块,用于接收传感器发送的第一数据位宽的第一数据;
所述位宽匹配模块,还用于将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块;
所述先进先出缓存模块,用于将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。
可以看出,本发明实施例所提供的技术方案中,位宽匹配模块接收传感器发送的第一数据位宽的第一数据;然后位宽匹配模块再将该第一数据转换成第二数据位宽的第二数据,并将该第二数据发送给先进先出缓存模块;然后先进先出缓存模块将第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。通过位宽匹配模块实现将第一数据位宽的第一数据转换为第二数据位宽的第二数据,以及通过在先进先出缓存模块设置预设数据传输速率用于传输第二数据至第一存储器,从而使得该处理芯片在进行数据传输时不需要占用块存储器,节约块存储资源,提高数据处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据传输方法的第一实施例流程示意图;
图2是本发明实施例提供的一种数据传输方法的基于FPGA的数据流向示意图;
图3是本发明实施例提供的一种数据传输方法的第二实施例流程示意图;
图4是本发明实施例提供的一种数据传输装置的第一实施例的结构示意图;
图5是本发明实施例提供的一种数据传输装置的第二实施例的结构示意图。
具体实施方式
本发明实施例提供了一种数据传输方法及装置,以期可以利用FPGA上的逻辑资源实现图像的fifo缓存,节约BRAM资源,提高数据处理效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供一种数据传输方法,包括:
位宽匹配模块接收传感器发送的第一数据位宽的第一数据;
所述位宽匹配模块将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块;
所述先进先出缓存模块将所述第二数据以预设数据传输速率发送至双倍速率同步动态随机存储器DDR,所述预设数据传输速率为使所述位宽匹配模块与所述DDR保持时钟同步的数据传输速率。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。需要说明的是,本文全文提及的实施例中,采用了针对FPGA的术语,但本发明并不限定为基于FPGA进行实现。
本发明实施例提涉及的基于FPGA为一种可用于视频图像处理的嵌入式处理器,在利用FPGA进行嵌入式视频处理开发时,摄像头输出的视频数据流往往要在FPGA内部实现如下几个流程:采样、预处理、缓存和输出等。在某些应用场合,由于图像处理算法较为复杂,无法对图像数据进行pixel-by-pixel的流水线操作,因此,必须对整帧图像数据进行乒乓缓存,即首先对第一帧数据进行缓存,当第一帧数据传输完成时,开始处理第一帧数据,同时,开始缓存第二帧数据。保证在第二帧数据传输完成之前,处理完第一帧数据,如此重复操作。然而,FPGA片上的缓存资源一般非常有限,像块RAM(Block RAM,简称BRAM,FPGA片上集成的一种数据存储单元)就很难满足同时缓存两帧VGA大小的图像,因此,传统的做法是:首先将图像缓存至外部存储器,例如双倍速率同步动态随机存储器(Double Data Rate,简称DDR)存储器,在DDR开辟两块图像空间进行乒乓缓存,其次,再将DDR上的一帧图像数据通过DMA方式传输至片上BRAM进行处理。例如,有3帧连续图像:第一图像、第二图像和第三图像,DDR上有两块第一存储空间和第二存储空间,BRAM有一块图像存储空间:第三存储空间。当第一图像到来时,首先将第一图像缓存至第一存储空间,当第一存储空间收到完整的第一图像后,将第一图像从第一存储空间导出至第三存储空间进行处理。而在这个过程中,第二图像到来,此时,由于第一存储空间中数据可能还没有完全传输至第三存储空间中,因此,将第二图像缓存至第二存储空间。当第二存储空间中收到完整图像数据时,第三图像即将到来,此时,必须要保证第三存储空间中的图像处理已被处理完,否则就要进行丢帧操作。随后,第二存储空间的数据导入第三存储空间,第三图像进第一存储空间,如此循环。在这个过程中,我们用到了两次DDR控制器。而DDR控制器由于在本地端和总线端采用不同频率、相位的时钟,需要进行跨时钟域处理,并利用DMA提高传输效率,一般做法是在这里利用BRAM开辟一个缓存空间,用来解决跨时钟域和DMA传输位宽匹配等问题。DMA传输位宽匹配是由于传感器seneor输出数据格式为8bit,而DMA最小的输入位宽为32bit,要将输入8bit数据在fifo中合并成32bit,最简单的方法是采用BRAM来实现。当然,采用BRAM实现的fifo至少要占用一个BRAM资源,即18kb。如果输入输出都采用BRAM来实现,那么,至少要用到36kb的BRAM资源。为此,本发明提出一种新方法,利用FPGA上的分布式随机存取存储器(Distribute RAM),即分布式RAM和移位器来实现BRAM FIFO的功能,同时解决跨时钟域和位宽匹配的问题。
在本发明实施例中,由于Distribute RAM是通过FPGA上的最小逻辑单元SLICE组合而成的逻辑存储单元。相对于BRAM来说,最大的优势就是需要多少缓存空间,就占用多少逻辑资源,而不像BRAM,一个最小的存储单元就是18kb。因此,通过占用一些逻辑资源来节省宝贵的BRAM资源,是本发明的一个出发点。
下面结合附图对本申请的实施例进行描述,本发明实施例提供的方法基于FPGA芯片进行实现的,该处理芯片,可由用户在该处理芯片上进行编程。首先参见图1,图1是本发明实施例提供的一种数据传输方法的第一实施例流程示意图。如图1所示,本发明实施例提供的数据传输方法包括以下步骤:
S101、位宽匹配模块接收传感器发送的第一数据位宽的第一数据。
其中,位宽匹配模块是指可对输入其中的数据的数据位宽进行更改,以使得输出的数据满足需要的数据位宽。
其中,数据位宽是指内存或显存一次能传输的数据量,在本发明实施例中,该数据位宽可以为8bit、16bit、32bit或64bit等。
其中,传感器是指用于从外界获取到第一数据并将该第一数据传输至位宽匹配模块的器件。
可选地,在本发明的一些可能的实施方式中,位宽匹配模块可以是通过移位寄存器实现,也可以是通过其它硬件电路模块进行实现。
可选地,在本发明的一些可能的实施方式中,该传感器可以为图像传感器CCD(Charge-coupled Device)、CMOS等用于对摄像机所采取到的图像数据传输至位宽匹配模块。
可选地,在本发明的另一些可能的实施方式中,该传感器也可以为光电传感器,用于将该传感器采集到的光信号转换为电信号数据传输至位宽匹配模块。
可以理解,第一数据的类型与该传感器相关,可以为图像数据,也可以为其它数据。
优选地,在本发明实施例中,该处理芯片为FPGA芯片,则该位宽匹配模块为移位寄存器。
优选地,该传感器为CCD图像传感器,则该第一数据为图像数据。
S102、所述位宽匹配模块将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块。
其中,第二数据是指与第一数据的数据类型及数据内容相同、但数据位宽不同的数据。
其中,先进先出缓存模块是指fifo缓存模块,是指在位宽匹配模块与第二存储器之间的一个传输通道,将从位宽匹配模块输入的数据传输至第二存储器。
可选地,在本发明的一些可能的实施方式中,该先进先出缓存模块可通过RAM进行实现。
优选地,若该处理芯片为FPGA,该先进先出缓存模块为Distribute RAM。
举例说明,在本发明的一个示例中,若第一数据位宽为8bit,第二数据位宽为16bit,移位寄存器可以将8bit的数据转换成16bit的数据再发送给Distribute RAM。
S103、所述先进先出缓存模块将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率。
其中,第一存储器是指用于对第二数据进行进一步处理的存储器。
优选地,在本发明的一些可能的实施例中,若该处理芯片为FPGA,该第一存储器为双倍速率同步动态随机存储器DDR。
具体地,第二数据可以从Distribute RAM通过直接内存存取(Direct MemoryAccess,简称DMA)传输至DDR。
优选地,若第一数据为视频图像数据,第二数据也为视频图像数据。
在本发明实施例中,由于处理芯片需要把从传感器接收到的第一数据发送至第一存储器进行进一步的处理,而由于从传感器接收到的第一数据的数据位宽与第一存储器所能处理的数据位宽不一致,所以需要对该第一数据位宽的第一数据转换成第二数据位宽的第二数据,才能够保证数据传输过程的正确;另一方面,由于给先进先出缓存模块输入数据的位宽匹配模块与先进先出缓存模块输出数据的第一存储器的工作时序需要保持一致,而由于位宽匹配模块与第一存储器由不同的工作时序控制,所以第一数据在先进先出缓存模块传输时需要设置一定的数据传输速率,以使得在第一数据在先进先出缓存模块的数据传输时间满足使得位宽匹配模块与第一存储器的时钟一致。
优选地,在本发明的一些可能的实施例中,Distribute RAM将第二图像数据以预设传输速率通过DMA传输至DDR,从而使得Distribute RAM与DDR在处理第二图像数据时保证时钟同步。
可以看出,本实施例的方案中,位宽匹配模块接收传感器发送的第一数据位宽的第一数据;然后位宽匹配模块再将该第一数据转换成第二数据位宽的第二数据,并将该第二数据发送给先进先出缓存模块;然后先进先出缓存模块将第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。通过位宽匹配模块实现将第一数据位宽的第一数据转换为第二数据位宽的第二数据,以及通过在先进先出缓存模块设置预设数据传输速率用于传输第二数据至第一存储器,从而使得该处理芯片在进行数据传输时不需要占用块存储器,节约块存储资源,提高数据处理效率。
可选地,在本发明的一些可能的实施方式中,所述先进先出缓存模块将所述第二图像数据以预设数据传输速率发送至第一存储器后,所述方法还包括:
所述第一存储器将所述第二图像数据传输至第二存储器,以使第二存储器对所述第二图像数据进行处理。
优选地,在本发明的一些可能的实施方式中,若该处理芯片为FPGA,该第一存储器为双倍速率同步动态随机存储器DDR,DDR在接收到图像数据后,将该图像数据传输至BRAM中,以使BRAM对该图像数据进行图像算法的处理。
可选地,在本发明的一些可能的实施方式中,所述位宽匹配模块为移位寄存器,所述位宽匹配模块将所述第一图像数据转换成第二数据位宽的第二图像数据,包括:
若所述第一数据位宽小于所述第二数据位宽,所述移位寄存器将所述第一数据进行逻辑移位并组合以转换成所述第二图像数据;
若所述第一数据位宽大于所述第二数据位宽,所述移位寄存器将所述第一数据进行拆分并逻辑移位以转换成所述第二图像数据。
优选地,该当第一数据位宽小于第二数据位宽时,该第二数据位宽为第一数据位宽的倍数。
优选地,该当第二数据位宽小于第一数据位宽时,该第一数据位宽为第二数据位宽的倍数。
举例说明,在本发明的一个示例中,若利用移位寄存器将8位的数据转换位16位时,首先利用移位寄存器将第一个8位的数据进行移位置于16位数据的高8位,然后再将下一个8位的数据置于16位数据的低8位,从而实现将2个8位的数据转换成1个16位的数据。
举例说明,在本发明的另一个示例中,若利用移位寄存器将16位的数据转换成8位时,可将该16位数据的高8位数据进行置为一个8位的数据,然后再16位数据的低8位置于一个数据。
可以理解,由于移位寄存器可以对数据进行移位,从而可以通过在输入的数据位宽小于输出的数据位宽时,将两个连续的数据进行移位并组合即可实现将数据位宽从低位宽转换为高位宽;以及在输入的数据位宽大于输出的数据位宽时,将该输入的数据进行拆分后,然后再移位则可实现将高位宽转换为低位宽。
举例说明,在本发明的一个示例中,以zynq系列FPGA为例,zynq是xilinx推出的集FPGA和ARM为一体的嵌入式soc产品,特别适用于集成度高、体积小的嵌入式开发领域。zynq逻辑资源部分简称为PL,ARM称为PS。在PL内部的各个模块之间,或者PL和PS之间进行数据交换是通过内建的AXI总线来完成。参见图2,图2是本发明实施例提供的一种数据传输方法的基于FPGA的数据流向示意图。
在该实施例中,位宽匹配模块为移位寄存器,先进先出缓存模块为DistributeRAM,第一存储器为双倍速率同步动态随机存储器DDR,所述第二存储器为块随机存取存储器BRAM。传感器为CCD图像传感器。
在本发明实施列中,移位寄存器首先从CCD图像传感器获取第一图像数据,然后再将该图像数据通过DMA传输至DDR,最后DDR将该图像数据传输至BRAM进行图像处理。
在本发明实施例中,由于CCD图像传感器所采集到的图像数据一般为8bit,而DMA传输时的传输位宽一般为64bit,并且CCD图像传感器的pixel时钟8分频得到,而DMA为***设定的AXI工作时钟,本设计中为100MHz。所以首先需要该8bit的图像数据转换成64bit的图像数据,再以一定的速率将该64bit的图像数据传输至Distribute RAM,再通过DMA传输至DDR,使得CCD时钟和DMA工作时钟一致。
更进一步地,该Distribute RAM的深度depth应保证最小能缓存图像两行数据。假如一幅图像分辨率为640x480,即图像宽度为640。对于输出格式为yuv422的数据来说,一行数据就为640x2=1280个8bit数据,因此,一行数据所需64bit深度为1280/8=160。两行即为320。为方便计算,我们假定64bit fifo深度为512。
更进一步地,当64bit fifo中的数据大于等于一行的数据时,我们便发起一次DMA传输。该传输将一行数据传输至DDR。当图像高度为480时,一共需要发起480次DMA传输,DDR中便可接收到一幅完整的图像。
至此,在没有BRAM参与的情况下,我们通过移位寄存器、Distribute RAM、DMA实现了一帧视频数据从接收到搬运至DDR的过程,从而实现了充分利用FPGA上分布式RAM资源,节约BRAM资源的目的,提高图像处理效率。
可选地,在本发明的另一个示例中,当再将图像数据从DDR搬运至BRAM的只是数据的反向运行过程,实现方法一致,从而可实现图像数据的在FPGA的正常通信。
为了便于更好地理解和实施本发明实施例的上述方案,下面将举例几个具体的应用场景进行说明。
参见图3,图3是本发明实施例提供的一种数据传输方法的第二实施例流程示意图。图3所示的方法中,与图2所示方法相同或类似的内容可以参考图2中的详细描述,此处不再赘述。如图3所示,本发明实施例提供的数据传输方法包括以下步骤:
S301、移位寄存器接收传感器发送的第一数据位宽的第一图像数据。
在本发明实施例中,该第一数据位宽可以为8bit、16bit、32bit或64bit等。
优选地,该传感器为CCD图像传感器。
S302、移位寄存器将所述第一图像数据转换成第二数据位宽的第二图像数据,并将该第二图像数据发送给分布式RAM。
S303、分布式RAM将第二图像数据以预设数据传输速率通过DMA发送至DDR,该预设数据传输速率为使移位寄存器与DMA保持时钟同步的数据传输速率。
S304、DDR将所述第二图像数据传输至BRAM,以使BRAM对第二图像数据进行处理。
可以看出,本实施例的方案中,位宽匹配模块接收传感器发送的第一数据位宽的第一数据;然后位宽匹配模块再将该第一数据转换成第二数据位宽的第二数据,并将该第二数据发送给先进先出缓存模块;然后先进先出缓存模块将第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。通过位宽匹配模块实现将第一数据位宽的第一数据转换为第二数据位宽的第二数据,以及通过在先进先出缓存模块设置预设数据传输速率用于传输第二数据至第一存储器,从而使得该处理芯片在进行数据传输时不需要占用块存储器,节约块存储资源,提高数据处理效率。
本发明实施例还提供一种数据传输装置,包括:
位宽匹配模块,用于接收传感器发送的第一数据位宽的第一数据;
所述位宽匹配模块,还用于将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块;
所述先进先出缓存模块,用于将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。
具体地,请参见图4,图4是本发明实施例提供的一种数据传输装置的第一实施例的结构示意图,用于实现本发明实施例公开的数据传输方法。其中,如图3所示,本发明实施例提供的一种数据传输装置400可以包括:
位宽匹配模块410和先进先出缓存模块420。
其中,位宽匹配模块410,用于接收传感器发送的第一数据位宽的第一数据。
其中,位宽匹配模块410是指可对输入其中的数据的数据位宽进行更改,以使得输出的数据满足需要的数据位宽。
其中,数据位宽是指内存或显存一次能传输的数据量,在本发明实施例中,该数据位宽可以为8bit、16bit、32bit或64bit等。
其中,传感器是指用于从外界获取到第一数据并将该第一数据传输至位宽匹配模块的器件。
可选地,在本发明的一些可能的实施方式中,位宽匹配模块可以是通过移位寄存器实现,也可以是通过其它硬件电路模块进行实现。
可选地,在本发明的一些可能的实施方式中,该传感器可以为图像传感器CCD(Charge-coupled Device)、用于对摄像机所采取到的图像数据传输至位宽匹配模块。
可选地,在本发明的另一些可能的实施方式中,该传感器也可以为光电传感器,用于将该传感器采集到的光信号转换为电信号数据传输至位宽匹配模块。
可以理解,第一数据的类型与该传感器相关,可以为图像数据,也可以为其它数据。
优选地,在本发明实施例中,该处理芯片为FPGA芯片,则该位宽匹配模块为移位寄存器。
优选地,该传感器为CCD图像传感器,则该第一数据为图像数据。
所述位宽匹配模块410,还用于将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块。
其中,第二数据是指与第一数据的数据类型及数据内容相同、但数据位宽不同的数据。
其中,先进先出缓存模块是指fifo缓存模块,是指在位宽匹配模块与第二存储器之间的一个传输通道,将从位宽匹配模块输入的数据传输至第二存储器。
可选地,在本发明的一些可能的实施方式中,该先进先出缓存模块可通过RAM进行实现。
优选地,若该处理芯片为FPGA,该先进先出缓存模块为Distribute RAM。
举例说明,在本发明的一个示例中,若第一数据位宽为8bit,第二数据位宽为16bit,移位寄存器可以将8bit的数据转换成16bit的数据再发送给Distribute RAM。
所述先进先出缓存模块420,用于将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。
其中,第一存储器是指用于对第二数据进行进一步处理的存储器。
优选地,在本发明的一些可能的实施例中,若该处理芯片为FPGA,该第一存储器为双倍速率同步动态随机存储器DDR。
具体地,第二数据可以从Distribute RAM通过直接内存存取(Direct MemoryAccess,简称DMA)传输至DDR。
优选地,若第一数据为视频图像数据,第二数据也为视频图像数据。
在本发明实施例中,由于处理芯片需要把从传感器接收到的第一数据发送至第一存储器进行进一步的处理,而由于从传感器接收到的第一数据的数据位宽与第一存储器所能处理的数据位宽不一致,所以需要对该第一数据位宽的第一数据转换成第二数据位宽的第二数据,才能够保证数据传输过程的正确;另一方面,由于给先进先出缓存模块输入数据的位宽匹配模块与先进先出缓存模块输出数据的第一存储器的工作时序需要保持一致,而由于位宽匹配模块与第一存储器由不同的工作时序控制,所以第一数据在先进先出缓存模块传输时需要设置一定的数据传输速率,以使得在第一数据在先进先出缓存模块的数据传输时间满足使得位宽匹配模块与第一存储器的时钟一致。
优选地,在本发明的一些可能的实施例中,Distribute RAM将第二图像数据以预设传输速率通过DMA传输至DDR,从而使得Distribute RAM与DDR在处理第二图像数据时保证时钟同步。
可以看出,本实施例的方案中,位宽匹配模块接收传感器发送的第一数据位宽的第一数据;然后位宽匹配模块再将该第一数据转换成第二数据位宽的第二数据,并将该第二数据发送给先进先出缓存模块;然后先进先出缓存模块将第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。通过位宽匹配模块实现将第一数据位宽的第一数据转换为第二数据位宽的第二数据,以及通过在先进先出缓存模块设置预设数据传输速率用于传输第二数据至第一存储器,从而使得该处理芯片在进行数据传输时不需要占用块存储器,节约块存储资源,提高数据处理效率。
在本实施例中,数据传输装置400是以单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。
可以理解的是,本实施例的数据传输装置400的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
参见图5,图5是本发明实施例提供的一种数据传输装置的第二实施例的结构示意图,用于实现本发明实施例公开的数据传输方法。其中,如图5所示的数据传输装置是由图4所示的数据传输装置进行优化得到的。图5所示的数据传输装置除了包括图4所示的数据传输装置的模块之外,还有以下扩展:
可选地,在本发明的一些可能的实施方式中,所述装置还包括:
传输模块530,用于将所述第二图像数据传输至第一存储器,以使所述第一存储器对所述第二图像数据进行处理。
优选地,在本发明的一些可能的实施方式中,若该处理芯片为FPGA,该第一存储器为双倍速率同步动态随机存储器DDR,DDR在接收到图像数据后,将该图像数据传输至BRAM中,以使BRAM对该图像数据进行图像算法的处理。
可选地,在本发明的一些可能的实施方式中,所述位宽匹配模块为移位寄存器,若所述第一数据位宽小于所述第二数据位宽,所述移位寄存器还用于:将所述第一数据进行逻辑移位并组合以转换成所述第二数据;
若所述第一数据位宽大于所述第二数据位宽,所述移位寄存器还用于:将所述第一数据进行拆分并逻辑移位以转换成所述第二数据。
优选地,该当第一数据位宽小于第二数据位宽时,该第二数据位宽为第一数据位宽的倍数。
优选地,该当第二数据位宽小于第一数据位宽时,该第一数据位宽为第二数据位宽的倍数。
举例说明,在本发明的一个示例中,若利用移位寄存器将8位的数据转换位16位时,首先利用移位寄存器将第一个8位的数据进行移位置于16位数据的高8位,然后再将下一个8位的数据置于16位数据的低8位,从而实现将2个8位的数据转换成1个16位的数据。
举例说明,在本发明的另一个示例中,若利用移位寄存器将16位的数据转换成8位时,可将该16位数据的高8位数据进行置为一个8位的数据,然后再16位数据的低8位置于一个数据。
可以理解,由于移位寄存器可以对数据进行移位,从而可以通过在输入的数据位宽小于输出的数据位宽时,将两个连续的数据进行移位并组合即可实现将数据位宽从低位宽转换为高位宽;以及在输入的数据位宽大于输出的数据位宽时,将该输入的数据进行拆分后,然后再移位则可实现将高位宽转换为低位宽。
可以看出,本实施例的方案中,位宽匹配模块接收传感器发送的第一数据位宽的第一数据;然后位宽匹配模块再将该第一数据转换成第二数据位宽的第二数据,并将该第二数据发送给先进先出缓存模块;然后先进先出缓存模块将第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元。通过位宽匹配模块实现将第一数据位宽的第一数据转换为第二数据位宽的第二数据,以及通过在先进先出缓存模块设置预设数据传输速率用于传输第二数据至第一存储器,从而使得该处理芯片在进行数据传输时不需要占用块存储器,节约块存储资源,提高数据处理效率。
在本实施例中,数据传输装置500是以单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。
可以理解的是,本实施例的数据传输装置500的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何数据传输方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明的各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (2)
1.一种数据传输方法,其特征在于,应用于FPGA芯片,所述方法包括:
位宽匹配模块接收传感器发送的第一数据位宽的第一数据,所述位宽匹配模块为移位寄存器,所述传感器为CCD图像传感器,所述移位寄存器从所述CCD图像传感器获取所述第一数据;
所述位宽匹配模块将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块,所述第二数据与所述第一数据的数据类型及数据内容相同,但数据位宽不同;
所述先进先出缓存模块将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元;
其中,所述先进先出缓存模块为基于现场可编程门阵列FPGA的分布式随机存取存储器RAM,所述第一存储器为双倍速率同步动态随机存储器DDR,将所述第二数据通过DMA传输至DDR,所述DDR在接收到图像数据后,将所述第二数据传输至BRAM中,以使所述BRAM对所述第二数据进行图像算法的处理;
其中,所述位宽匹配模块将所述第一数据转换成第二数据位宽的第二数据,包括:
若所述第一数据位宽小于所述第二数据位宽,所述移位寄存器将所述第一数据进行逻辑移位并组合以转换成所述第二数据;
若所述第一数据位宽大于所述第二数据位宽,所述移位寄存器将所述第一数据进行拆分并逻辑移位以转换成所述第二数据;
其中,当所述第一数据位宽小于所述第二数据位宽时,所述第二数据位宽为所述第一数据位宽的倍数;当所述第二数据位宽小于所述第一数据位宽时,所述第一数据位宽为所述第二数据位宽的倍数。
2.一种数据传输装置,其特征在于,应用于FPGA芯片,所述装置包括:
位宽匹配模块,用于接收传感器发送的第一数据位宽的第一数据,所述位宽匹配模块为移位寄存器,所述传感器为CCD图像传感器,所述移位寄存器从所述CCD图像传感器获取所述第一数据;
所述位宽匹配模块,还用于将所述第一数据转换成第二数据位宽的第二数据,并将所述第二数据发送给先进先出缓存模块,所述第二数据与所述第一数据的数据类型及数据内容相同,但数据位宽不同,所述第一数据为视频图像数据,所述第二数据为视频图像数据;
所述先进先出缓存模块,用于将所述第二数据以预设数据传输速率发送至第一存储器,所述预设数据传输速率为使所述位宽匹配模块与所述第一存储器保持时钟同步的数据传输速率,所述先进先出缓存模块基于逻辑存储单元;
其中,所述先进先出缓存模块为基于现场可编程门阵列FPGA的分布式随机存取存储器RAM,所述第一存储器为双倍速率同步动态随机存储器DDR,所述第二数据通过DMA传输至DDR,所述DDR在接收到图像数据后,将所述第二数据传输至BRAM中,以使所述BRAM对所述第二数据进行图像算法的处理;
其中,若所述第一数据位宽小于所述第二数据位宽,所述移位寄存器还用于:将所述第一数据进行逻辑移位并组合以转换成所述第二数据;
若所述第一数据位宽大于所述第二数据位宽,所述移位寄存器还用于:将所述第一数据进行拆分并逻辑移位以转换成所述第二数据;
其中,当所述第一数据位宽小于所述第二数据位宽时,所述第二数据位宽为所述第一数据位宽的倍数;当所述第二数据位宽小于所述第一数据位宽时,所述第一数据位宽为所述第二数据位宽的倍数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610619878.2A CN106294234B (zh) | 2016-08-01 | 2016-08-01 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610619878.2A CN106294234B (zh) | 2016-08-01 | 2016-08-01 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106294234A CN106294234A (zh) | 2017-01-04 |
CN106294234B true CN106294234B (zh) | 2018-09-21 |
Family
ID=57663822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610619878.2A Active CN106294234B (zh) | 2016-08-01 | 2016-08-01 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294234B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572787A (zh) * | 2017-03-09 | 2018-09-25 | 深圳市中兴微电子技术有限公司 | 一种数据存储、读取的方法及装置 |
CN107943727B (zh) * | 2017-12-08 | 2021-02-09 | 深圳市德赛微电子技术有限公司 | 一种高效dma控制器 |
CN108230537B (zh) * | 2017-12-29 | 2020-08-18 | 深圳怡化电脑股份有限公司 | 一种图像数据处理的方法、装置、设备和存储介质 |
CN108418587A (zh) * | 2018-01-16 | 2018-08-17 | 四川安迪科技实业有限公司 | 一种基于fpga数据位宽转换方法 |
CN110554852B (zh) * | 2018-05-31 | 2021-11-12 | 赛灵思公司 | 数据拼接结构、方法及其片上实现 |
CN109815181B (zh) * | 2019-01-24 | 2020-10-13 | 武汉精立电子技术有限公司 | 一种基于axi协议接口的任意位宽转换方法及装置 |
CN110336928A (zh) * | 2019-03-15 | 2019-10-15 | 浙江工业大学 | 一种基于zynq的oct光谱信号采集及传输*** |
CN112188281B (zh) * | 2019-07-03 | 2022-11-18 | 西安诺瓦星云科技股份有限公司 | 图像处理方法、图像处理装置、图像处理***和发送卡 |
CN113094309A (zh) * | 2019-12-23 | 2021-07-09 | 深圳市中兴微电子技术有限公司 | 一种数据位宽转换方法和装置 |
CN111176725B (zh) * | 2019-12-27 | 2022-05-06 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备和存储介质 |
CN114765628A (zh) * | 2020-12-31 | 2022-07-19 | 深圳市中兴微电子技术有限公司 | 数据转换方法和装置、存储介质及电子装置 |
CN113703840B (zh) * | 2021-08-31 | 2024-06-07 | 上海阵量智能科技有限公司 | 数据处理装置、方法、芯片、计算机设备及存储介质 |
CN113971022B (zh) * | 2021-12-22 | 2022-03-18 | 成都航天通信设备有限责任公司 | 一种应用全可编程片上***的无线信号处理方法 |
CN114649011B (zh) * | 2022-03-31 | 2024-03-08 | 西安紫光国芯半导体有限公司 | 一种存储器的数据传输装置、数据传输方法及相关设备 |
CN115048049A (zh) * | 2022-05-31 | 2022-09-13 | 维沃移动通信有限公司 | 数据传输电路、数据传输方法及电子设备 |
CN117560359A (zh) * | 2022-08-03 | 2024-02-13 | 深圳市中兴微电子技术有限公司 | DigRF帧处理方法、装置、计算机设备及可读介质 |
CN115840724B (zh) * | 2023-02-09 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 一种位宽转换电路及数据传输*** |
CN116455530B (zh) * | 2023-06-20 | 2023-11-03 | 中星联华科技(北京)有限公司 | 误码仪、码型生成方法、装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916428A (zh) * | 2010-08-18 | 2010-12-15 | 中国科学院光电技术研究所 | 一种图像数据的图像处理装置 |
CN202385063U (zh) * | 2011-09-27 | 2012-08-15 | 深圳市蓝韵实业有限公司 | 基于fpga实现的数字滤波器 |
CN202453864U (zh) * | 2011-12-20 | 2012-09-26 | 四川九洲电器集团有限责任公司 | 基于fpga和ddr2 sdram的大容量异步fifo缓存 |
CN102841869A (zh) * | 2012-07-03 | 2012-12-26 | 深圳市邦彦信息技术有限公司 | 一种基于fpga的多通道i2c控制器 |
-
2016
- 2016-08-01 CN CN201610619878.2A patent/CN106294234B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916428A (zh) * | 2010-08-18 | 2010-12-15 | 中国科学院光电技术研究所 | 一种图像数据的图像处理装置 |
CN202385063U (zh) * | 2011-09-27 | 2012-08-15 | 深圳市蓝韵实业有限公司 | 基于fpga实现的数字滤波器 |
CN202453864U (zh) * | 2011-12-20 | 2012-09-26 | 四川九洲电器集团有限责任公司 | 基于fpga和ddr2 sdram的大容量异步fifo缓存 |
CN102841869A (zh) * | 2012-07-03 | 2012-12-26 | 深圳市邦彦信息技术有限公司 | 一种基于fpga的多通道i2c控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN106294234A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294234B (zh) | 一种数据传输方法及装置 | |
US9462091B2 (en) | Information processing apparatus, communication method and storage medium | |
CN101594299B (zh) | 基于链表的交换网络中队列缓冲管理方法 | |
CN109388595A (zh) | 高带宽存储器***以及逻辑管芯 | |
CN107249101A (zh) | 一种高分辨率图像采集与处理装置 | |
CN101236601B (zh) | 图像识别加速装置及具有图像识别加速装置的微处理器芯片 | |
TWI275005B (en) | Fast Fourier transform processor and method using half-sized memory | |
CN109753478B (zh) | 一种基于fpga的并行数据处理方法、装置 | |
CN209149287U (zh) | 大数据运算加速*** | |
CN109992541A (zh) | 一种数据搬运方法、相关产品及计算机存储介质 | |
CN105786741B (zh) | 一种soc高速低功耗总线及转换方法 | |
CN105355229A (zh) | 异步电路***对同步随机存储器的写入电路和读取电路 | |
US20150081963A1 (en) | Allocating a Timeslot | |
CN106227506A (zh) | 一种内存压缩***中的多通道并行压缩解压***及方法 | |
CN101640795B (zh) | 一种视频解码优化方法及装置 | |
CN104244085B (zh) | 基于现场可编程门阵列的多媒体数据传输方法及装置 | |
CN107483173A (zh) | 一种视频混沌保密通信设备及方法 | |
CN105827276B (zh) | 一种串扰抵消的实现方法及局端接入设备 | |
CN100561567C (zh) | 一种图像数据转换***和方法 | |
CN115905067A (zh) | 数据传输控制方法、芯片、装置及存储介质 | |
EP2133797B1 (en) | Dma transfer device and method | |
CN102497514A (zh) | 一种三通道视频转发设备和转发方法 | |
CN112740193B (zh) | 大数据运算加速***执行运算的方法 | |
CN201846416U (zh) | 图像传感器 | |
CN116155843B (zh) | 一种基于pynq的脉冲神经网络芯片数据通信方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |