CN109284243B - FPGA communication control device and method based on USB - Google Patents
FPGA communication control device and method based on USB Download PDFInfo
- Publication number
- CN109284243B CN109284243B CN201811392968.8A CN201811392968A CN109284243B CN 109284243 B CN109284243 B CN 109284243B CN 201811392968 A CN201811392968 A CN 201811392968A CN 109284243 B CN109284243 B CN 109284243B
- Authority
- CN
- China
- Prior art keywords
- data
- upload
- buffer memory
- control signal
- fpga
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 title claims description 32
- 230000015654 memory Effects 0.000 claims abstract description 179
- 230000004044 response Effects 0.000 claims description 79
- 230000005540 biological transmission Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000008054 signal transmission Effects 0.000 claims description 6
- 238000002604 ultrasonography Methods 0.000 description 17
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 5
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/366—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请提供了一种基于USB的FPGA通信控制装置,包括轮询仲裁模块,轮询仲裁模块中包括控制器和多个缓冲存储器,控制器与多个缓冲存储器以及USB芯片中预设的发送端点和接收端点相连,用于依据多个缓冲存储器的状态以及USB芯片中的各端点的状态,调度多个缓冲存储器中的信息的上传和/或下载,实现对于FPGA与USB芯片之间的带宽的分时利用,从而提高带宽的利用率。
The present application provides a USB-based FPGA communication control device, including a polling arbitration module, the polling arbitration module including a controller and a plurality of buffer memories, the controller is connected to the plurality of buffer memories and a preset sending endpoint and receiving endpoint in a USB chip, and is used to schedule the uploading and/or downloading of information in the plurality of buffer memories according to the status of the plurality of buffer memories and the status of each endpoint in the USB chip, so as to realize the time-sharing utilization of the bandwidth between the FPGA and the USB chip, thereby improving the utilization rate of the bandwidth.
Description
技术领域Technical Field
本申请涉及电子信息领域,尤其涉及一种基于USB的FPGA通信控制装置及方法。The present application relates to the field of electronic information, and in particular to a USB-based FPGA communication control device and method.
背景技术Background technique
图1为现场可编程门阵列(Field-Programmable Gate Array,FPGA)通过通用串行总线(Universal Serial Bus,USB)芯片与上位机通信的示意图。其中,FPGA中设置有USB模块,USB模块通过USB物理层接口向USB芯片传输从数据源设备获取的数据,例如超声图像数据。而上位机通过其它传输渠道,向FPGA下发控制信号并接收FPGA对于控制信号的响应信号。Figure 1 is a schematic diagram of a Field-Programmable Gate Array (FPGA) communicating with a host computer through a Universal Serial Bus (USB) chip. The FPGA is provided with a USB module, which transmits data obtained from a data source device, such as ultrasound image data, to the USB chip through a USB physical layer interface. The host computer sends control signals to the FPGA through other transmission channels and receives response signals from the FPGA to the control signals.
基于上述传输方式,在数据源没有产生数据的情况下,FPGA与USB芯片之间没有数据传输,因此,两者之间的带宽处于闲置状态,可见,现有的FPGA基于USB的通信方式的带宽利用率不高。Based on the above transmission method, when the data source does not generate data, there is no data transmission between the FPGA and the USB chip. Therefore, the bandwidth between the two is idle. It can be seen that the bandwidth utilization rate of the existing FPGA-based USB communication method is not high.
发明内容Summary of the invention
本申请提供了一种基于USB的FPGA通信控制装置及方法,目的在于解决如何提高基于USB通信的带宽利用率的问题。The present application provides a USB-based FPGA communication control device and method, aiming to solve the problem of how to improve the bandwidth utilization rate based on USB communication.
为了实现上述目的,本申请提供了以下技术方案:In order to achieve the above objectives, this application provides the following technical solutions:
一种基于USB的FPGA通信控制装置,设置在FPGA中,所述FPGA与USB芯片通信,所述装置包括:A USB-based FPGA communication control device is provided in an FPGA, wherein the FPGA communicates with a USB chip, and the device comprises:
轮询仲裁模块;Polling arbitration module;
所述轮询仲裁模块中包括控制器和多个缓冲存储器;The polling arbitration module includes a controller and a plurality of buffer memories;
所述控制器与所述多个缓冲存储器、以及所述USB芯片中预设的发送端点和接收端点相连,用于依据所述多个缓冲存储器的状态以及所述USB芯片中的各端点的状态,调度所述多个缓冲存储器中的信息的上传和/或下载。The controller is connected to the multiple buffer memories and the preset sending endpoints and receiving endpoints in the USB chip, and is used to schedule the uploading and/or downloading of information in the multiple buffer memories according to the status of the multiple buffer memories and the status of each endpoint in the USB chip.
可选的,所述多个缓冲存储器包括:Optionally, the plurality of buffer memories include:
下载控制信号缓冲存储器、上传响应信号缓冲存储器和上传数据缓冲存储器;Download control signal buffer memory, upload response signal buffer memory and upload data buffer memory;
所述下载控制信号缓冲存储器通过所述控制器连接所述USB芯片的控制信号发送端点,用于缓存所述控制器从所述USB芯片接收的控制信号;The download control signal buffer memory is connected to the control signal sending endpoint of the USB chip through the controller, and is used for caching the control signal received by the controller from the USB chip;
所述上传响应信号缓冲存储器通过所述控制器连接所述USB芯片的响应信号接收端点,用于缓存待通过所述控制器发送至所述USB芯片的所述FPGA对于所述控制信号的响应信号;The upload response signal buffer memory is connected to the response signal receiving endpoint of the USB chip through the controller, and is used for caching the response signal of the FPGA to the control signal to be sent to the USB chip through the controller;
所述上传数据缓冲存储器通过所述控制器连接所述USB芯片的数据接收端点,用于缓存所述FPGA中待通过所述控制器发送至所述USB芯片的数据。The upload data buffer memory is connected to the data receiving endpoint of the USB chip through the controller, and is used for caching the data in the FPGA to be sent to the USB chip through the controller.
可选的,所述轮询仲裁模块还包括:Optionally, the polling arbitration module further includes:
与所述控制器相连,且与所述上传数据缓冲存储器对应的寄存器;A register connected to the controller and corresponding to the upload data buffer memory;
所述寄存器用于存储由所述控制器赋值的标识位,当所述标识位为第一数值时表示:所述寄存器对应的上传数据缓冲存储器中有未传完的数据。The register is used to store an identification bit assigned by the controller. When the identification bit is a first value, it indicates that there is untransmitted data in the upload data buffer memory corresponding to the register.
可选的,所述上传数据缓冲存储器的数量为多个;Optionally, the number of the upload data buffer storage is multiple;
多个上传数据缓冲存储器分别通过所述控制器与所述USB芯片的数据接收端点相连,其中,所述控制器用于按照预设的类型排序,依次上传所述多个上传数据缓冲存储器中的数据至所述数据接收端点。A plurality of upload data buffer memories are respectively connected to the data receiving endpoint of the USB chip through the controller, wherein the controller is used to sort the data in the plurality of upload data buffer memories according to a preset type and upload the data in the plurality of upload data buffer memories to the data receiving endpoint in sequence.
可选的,所述装置还包括:Optionally, the device further comprises:
缓存模块;Cache module;
所述缓存模块中包括控制信号缓冲存储器、响应信号缓冲存储器和数据缓冲存储器;The cache module includes a control signal buffer memory, a response signal buffer memory and a data buffer memory;
所述控制信号缓冲存储器与所述下载控制信号缓冲存储器相连,用于与所述下载控制信号缓冲存储器交互所述控制信号;The control signal buffer memory is connected to the download control signal buffer memory and is used to exchange the control signal with the download control signal buffer memory;
所述响应信号缓冲存储器与所述上传响应信号缓冲存储器相连,用于向所述上传响应信号缓冲存储器交互所述响应信号;The response signal buffer memory is connected to the upload response signal buffer memory, and is used to exchange the response signal with the upload response signal buffer memory;
所述数据缓冲存储器与所述上传数据缓冲存储器相连,用于与相连的上传数据缓冲存储器交互数据。The data buffer memory is connected to the upload data buffer memory and is used for exchanging data with the connected upload data buffer memory.
可选的,在所述上传数据缓冲存储器的数量为多个的情况下,所述数据缓冲存储器与所述上传数据缓冲存储器数量相同,用于存储相同类型数据的所述数据缓冲存储器与所述上传数据缓冲存储器对应相连。Optionally, when there are multiple upload data buffer memories, the number of the data buffer memories is the same as that of the upload data buffer memories, and the data buffer memories for storing the same type of data are connected to the upload data buffer memories accordingly.
可选的,所述装置还包括:Optionally, the device further comprises:
参数译码模块,通过总线与所述FPGA中的解析模块相连,用于接收所述解析模块发送的解析信号,其中,所述解析模块与所述控制信号缓冲存储器相连,用于通过接收并解析所述控制信号缓冲存储器中的所述控制信号,得到所述解析信号;A parameter decoding module, connected to the analysis module in the FPGA through a bus, and used to receive the analysis signal sent by the analysis module, wherein the analysis module is connected to the control signal buffer memory, and used to obtain the analysis signal by receiving and analyzing the control signal in the control signal buffer memory;
跨时钟域转换模块,与所述参数译码模块和所述轮询仲裁模块相连,用于将所述解析信号的时钟频率转换为本地时钟频率后,依据转换后的解析信号,访问所述轮询仲裁模块中的寄存器。The cross-clock domain conversion module is connected to the parameter decoding module and the polling arbitration module, and is used to access the register in the polling arbitration module according to the converted parsing signal after converting the clock frequency of the parsing signal into the local clock frequency.
一种基于USB的FPGA通信控制方法,所述FPGA通过USB芯片与上位机通信,所述方法包括以任意顺序执行:A USB-based FPGA communication control method, wherein the FPGA communicates with a host computer via a USB chip, and the method comprises executing in any order:
在满足下载控制信号条件的情况下,将所述USB芯片中的控制信号发送端的控制信号下载到所述FPGA中的下载控制信号缓冲存储器中,直至满足下载控制信号停止条件;其中,所述下载控制信号条件包括:所述控制信号发送端不为空且所述下载控制信号缓冲存储器不为满;所述下载控制信号停止条件包括:所述控制信号发送端为空、或者所述下载控制信号缓冲存储器为满、或者所述控制信号传输完成;When the download control signal condition is met, the control signal of the control signal sending end in the USB chip is downloaded to the download control signal buffer memory in the FPGA until the download control signal stop condition is met; wherein the download control signal condition includes: the control signal sending end is not empty and the download control signal buffer memory is not full; the download control signal stop condition includes: the control signal sending end is empty, or the download control signal buffer memory is full, or the control signal transmission is completed;
在满足上传响应信号条件的情况下,将所述FPGA的上传响应信号缓冲存储器中的响应信号上传到所述USB芯片的响应信号接收端,直至满足上传响应信号停止条件;其中,所述上传响应信号条件包括:所述USB芯片中的响应信号接收端不为满且所述FPGA中的上传响应信号缓冲存储器不为空;所述上传响应信号停止条件包括:所述响应信号接收端为满、或者所述上传响应信号缓冲存储器为空、或者所述响应信号传输完成;When an upload response signal condition is met, the response signal in the upload response signal buffer memory of the FPGA is uploaded to the response signal receiving end of the USB chip until an upload response signal stop condition is met; wherein the upload response signal condition includes: the response signal receiving end in the USB chip is not full and the upload response signal buffer memory in the FPGA is not empty; the upload response signal stop condition includes: the response signal receiving end is full, or the upload response signal buffer memory is empty, or the response signal transmission is completed;
在满足上传数据条件的情况下,将所述FPGA的上传数据缓冲存储器中的数据上传到所述USB芯片的数据接收端,直至满足上传数据停止条件;其中,所述上传数据条件包括:所述USB芯片中的数据接收端不为满且所述FPGA中的上传数据缓冲存储器不为空;所述上传数据停止条件包括:所述数据接收端为满、或者所述上传数据缓冲存储器为空、或者所述数据传输完成。When the data upload condition is met, the data in the upload data buffer memory of the FPGA is uploaded to the data receiving end of the USB chip until the data upload stop condition is met; wherein the data upload condition includes: the data receiving end in the USB chip is not full and the upload data buffer memory in the FPGA is not empty; the data upload stop condition includes: the data receiving end is full, or the upload data buffer memory is empty, or the data transmission is completed.
可选的,所述数据包括存储在不同上传数据缓冲存储器中的多种类型的数据;Optionally, the data includes multiple types of data stored in different upload data buffer memories;
所述在满足上传数据条件的情况下,将所述FPGA的上传数据缓冲存储器中的数据上传到所述USB芯片的数据接收端,直至满足上传数据停止条件,包括:When the data upload condition is met, uploading the data in the upload data buffer memory of the FPGA to the data receiving end of the USB chip until the data upload stop condition is met, includes:
按照任意的类型排序,判断各类型数据是否满足所述上传数据条件,将满足所述上传数据条件的类型的数据上传至所述数据接收端,直至满足所述上传数据停止条件。According to any type sorting, it is determined whether each type of data meets the data upload condition, and the data of the type meeting the data upload condition is uploaded to the data receiving end until the data upload stop condition is met.
可选的,还包括:Optionally, also include:
在上传所述数据的过程中,满足所述上传数据停止条件而停止上传所述数据的情况下,如果数据未传完,则记录数据未传完。In the process of uploading the data, when the data uploading stop condition is met and the data uploading is stopped, if the data is not completely uploaded, it is recorded that the data is not completely uploaded.
可选的,所述在满足上传数据条件的情况下,将所述FPGA的上传数据缓冲存储器中的数据上传到所述USB芯片的数据接收端,直至满足上传数据停止条件,之前还包括:Optionally, when the data upload condition is met, uploading the data in the upload data buffer memory of the FPGA to the data receiving end of the USB chip until the data upload stop condition is met, the method further includes:
上传已记录的未传完的数据。Upload the recorded but untransmitted data.
本申请所述的基于USB的FPGA通信控制装置,包括轮询仲裁模块,轮询仲裁模块中包括控制器和多个缓冲存储器,控制器与多个缓冲存储器以及USB芯片中预设的发送端点和接收端点相连,用于依据多个缓冲存储器的状态以及USB芯片中的各端点的状态,调度多个缓冲存储器中的信息的上传和/或下载,实现对于FPGA与USB芯片之间的带宽的分时利用,从而提高带宽的利用率。The USB-based FPGA communication control device described in the present application includes a polling arbitration module, which includes a controller and multiple buffer memories. The controller is connected to the multiple buffer memories and the preset sending endpoints and receiving endpoints in the USB chip, and is used to schedule the upload and/or download of information in the multiple buffer memories according to the status of the multiple buffer memories and the status of each endpoint in the USB chip, so as to realize time-sharing utilization of the bandwidth between the FPGA and the USB chip, thereby improving the utilization rate of the bandwidth.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
图1为FPGA通过USB芯片与上位机通信的示意图;Figure 1 is a schematic diagram of FPGA communicating with a host computer via a USB chip;
图2为本申请实施例公开的一种基于USB的FPGA通信控制装置的结构示意图;FIG2 is a schematic diagram of the structure of a USB-based FPGA communication control device disclosed in an embodiment of the present application;
图3为本申请实施例公开的基于USB的FPGA通信控制方法的流程图。FIG3 is a flow chart of a USB-based FPGA communication control method disclosed in an embodiment of the present application.
具体实施方式Detailed ways
本申请实施例公开的基于USB的FPGA通信控制方法和装置,目的在于实现FPGA对于不同信息的调度传输,以实现充分利用带宽,在传输多种类型的信息的情况下,进一步的,还可以保证信息的完整性。The USB-based FPGA communication control method and device disclosed in the embodiments of the present application aim to implement the scheduling transmission of different information by FPGA to fully utilize the bandwidth. In the case of transmitting multiple types of information, the integrity of the information can be further guaranteed.
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
图2为本申请实施例公开的一种基于USB的FPGA通信控制装置,包括:轮询仲裁模块21,可选的,还包括缓存模块22、参数译码模块23和跨时钟域转换模块24。FIG2 is a USB-based FPGA communication control device disclosed in an embodiment of the present application, including: a polling arbitration module 21 , and optionally, a cache module 22 , a parameter decoding module 23 and a cross-clock domain conversion module 24 .
其中,轮询仲裁模块21用于存储与USB芯片交互的信息(信息中包括控制信号、响应信号和数据),并实现对于信息传输的调度。The polling arbitration module 21 is used to store information interacting with the USB chip (the information includes control signals, response signals and data) and to implement scheduling for information transmission.
具体的,轮询仲裁模块21包括下载控制信号缓冲存储器211、上传响应信号缓冲存储器212、上传数据缓冲存储器213、控制器214和寄存器(图2中未画出)。Specifically, the polling arbitration module 21 includes a download control signal buffer memory 211, an upload response signal buffer memory 212, an upload data buffer memory 213, a controller 214 and a register (not shown in FIG. 2).
控制器214与轮询仲裁模块21中的多个缓冲存储器(包括211、212和213)分别相连,并与USB芯片中预设的发送端点和接收端点相连,以用于依据轮询仲裁模块21中的多个缓冲存储器的状态以及USB芯片中的各端点的状态,调度轮询仲裁模块21中的多个缓冲存储器中的信息的上传和/或下载。其中,下载是指接收USB芯片发送的信息(通常是控制信号),上传是指将信息(通常是响应信号和数据)发送至USB芯片。The controller 214 is connected to the multiple buffer memories (including 211, 212 and 213) in the polling arbitration module 21, and is connected to the preset sending endpoint and receiving endpoint in the USB chip, so as to schedule the uploading and/or downloading of information in the multiple buffer memories in the polling arbitration module 21 according to the status of the multiple buffer memories in the polling arbitration module 21 and the status of each endpoint in the USB chip. Downloading refers to receiving information (usually control signals) sent by the USB chip, and uploading refers to sending information (usually response signals and data) to the USB chip.
进一步的,下载控制信号缓冲存储器211通过控制器214连接USB芯片中的控制信号发送端点(图2中,以EP2端点为例)。上传响应信号缓冲存储器212通过控制器214连接USB芯片中的响应信号接收端点(图2中,以EP4端点为例)。上传数据缓冲存储器213通过控制器214连接USB芯片的数据接收端点(图2中,以EP6端点为例)。Further, the download control signal buffer memory 211 is connected to the control signal sending endpoint in the USB chip (in FIG. 2, the EP2 endpoint is taken as an example) through the controller 214. The upload response signal buffer memory 212 is connected to the response signal receiving endpoint in the USB chip (in FIG. 2, the EP4 endpoint is taken as an example) through the controller 214. The upload data buffer memory 213 is connected to the data receiving endpoint of the USB chip (in FIG. 2, the EP6 endpoint is taken as an example) through the controller 214.
下载控制信号缓冲存储器211用于缓存控制器214从USB芯片的EP2接收的控制信号。其中,控制信号为上位机下发的用于控制FPGA的信号。上传响应信号缓冲存储器212用于缓存FPGA对于控制信号的响应信号,响应信号将被通过控制器214发送到USB芯片的EP4。The download control signal buffer memory 211 is used to cache the control signal received by the controller 214 from EP2 of the USB chip. The control signal is a signal sent by the host computer to control the FPGA. The upload response signal buffer memory 212 is used to cache the response signal of the FPGA to the control signal, and the response signal will be sent to EP4 of the USB chip through the controller 214.
上传数据缓冲存储器213用于缓存FPGA中待发送至USB芯片的EP6的数据,数据将被通过控制器214发送到USB芯片的EP6。The upload data buffer memory 213 is used to cache the data in the FPGA to be sent to the EP6 of the USB chip, and the data will be sent to the EP6 of the USB chip through the controller 214.
进一步的,上传数据缓冲存储器213的数量可以为多个,在待发送的数据的类型为多个的情况下,任意一种类型的数据至少具有一个用于存储该类型的数据的上传数据缓冲存储器213。图2中,以三种待上传的数据为例,因此,设置三个上传数据缓冲存储器213。三个上传数据缓冲存储器213分别通过控制器214与USB芯片的EP6相连。控制器214可以按照预设的类型排序,依次上传多个上传数据缓冲存储器213中的数据至EP6。Further, the number of the upload data buffer memories 213 can be multiple. When there are multiple types of data to be sent, any type of data has at least one upload data buffer memory 213 for storing the data of that type. In FIG. 2 , three types of data to be uploaded are taken as an example, and therefore, three upload data buffer memories 213 are set. The three upload data buffer memories 213 are respectively connected to EP6 of the USB chip through the controller 214. The controller 214 can sort the data in the multiple upload data buffer memories 213 according to the preset types and upload the data in the multiple upload data buffer memories 213 to EP6 in sequence.
每个上传数据缓冲存储器均对应设置寄存器。寄存器用于存储由控制器214赋值的标识位,当标识位为第一数值(例如1)时表示:寄存器对应的上传数据缓冲存储器中有未传完的数据。当标识位为第二数值(例如0)时表示:寄存器对应的上传数据缓冲存储器中没有未传完的数据。Each upload data buffer memory is correspondingly set to a register. The register is used to store a flag bit assigned by the controller 214. When the flag bit is a first value (e.g., 1), it indicates that there is uncompleted data in the upload data buffer memory corresponding to the register. When the flag bit is a second value (e.g., 0), it indicates that there is no uncompleted data in the upload data buffer memory corresponding to the register.
缓存模块22用于缓存与FPGA内部的其它模块以及提供数据的硬件设备(即数据源)交互的信息(信息中包括控制信号、响应信号和数据)。The cache module 22 is used to cache information (including control signals, response signals and data) interacting with other modules inside the FPGA and hardware devices that provide data (ie, data sources).
具体的,缓存模块22中包括控制信号缓冲存储器221、响应信号缓冲存储器222和数据缓冲存储器223。Specifically, the cache module 22 includes a control signal buffer memory 221 , a response signal buffer memory 222 and a data buffer memory 223 .
其中,控制信号缓冲存储器221与下载控制信号缓冲存储器211相连,用于与下载控制信号缓冲存储器211交互控制信号,即下载控制信号缓冲存储器211在接收到控制信号后,FPGA将控制信号发送至控制信号缓冲存储器221,进一步的,FPGA将控制信号缓冲存储器221中的控制信号发给其它模块。Among them, the control signal buffer memory 221 is connected to the download control signal buffer memory 211, and is used to exchange control signals with the download control signal buffer memory 211, that is, after the download control signal buffer memory 211 receives the control signal, the FPGA sends the control signal to the control signal buffer memory 221, and further, the FPGA sends the control signal in the control signal buffer memory 221 to other modules.
响应信号缓冲存储器222与上传响应信号缓冲存储器212相连,用于与响应信号缓冲存储器222交互响应信号。即响应信号缓冲存储器222接收到FPGA对于控制信号的响应信号(响应信号由控制信号的响应模块发送)后,FPGA将响应信号发给上传响应信号缓冲存储器212。The response signal buffer memory 222 is connected to the upload response signal buffer memory 212, and is used to exchange response signals with the response signal buffer memory 222. That is, after the response signal buffer memory 222 receives the response signal of the FPGA to the control signal (the response signal is sent by the response module of the control signal), the FPGA sends the response signal to the upload response signal buffer memory 212.
数据缓冲存储器223与上传数据缓冲存储器213相连,用于与上传数据缓冲存储器213交互数据。即数据缓冲存储器223从数据源接收数据,存满后,FPGA将数据发送至上传数据缓冲存储器213。The data buffer memory 223 is connected to the upload data buffer memory 213 and is used to exchange data with the upload data buffer memory 213. That is, the data buffer memory 223 receives data from the data source, and when it is full, the FPGA sends the data to the upload data buffer memory 213.
具体的,在上传数据缓冲存储器213的数量为多个的情况下,数据缓冲存储器223与上传数据缓冲存储器213的数量相同,且用于存储相同类型数据的数据缓冲存储器223与上传数据缓冲存储器213对应相连。Specifically, when there are multiple upload data buffer memories 213 , the number of data buffer memories 223 is the same as that of the upload data buffer memories 213 , and the data buffer memories 223 and the upload data buffer memories 213 for storing the same type of data are connected to each other accordingly.
图2中,数据以超声图像数据(Img表示)、心率数据(Ecg表示)和硬件的状态数据(Inf表示)为例。控制信号以cmd表示,响应信号以status表示。基于图2的举例,缓存模块22中存储Img的缓冲存储器与轮询仲裁模块21中存储Img的缓冲存储器相连,缓存模块22中存储cmd的缓冲存储器与轮询仲裁模块21中存储cmd的缓冲存储器相连,缓存模块22中存储status的缓冲存储器与轮询仲裁模块21中存储status的缓冲存储器相连。In FIG2 , the data is exemplified by ultrasound image data (represented by Img), heart rate data (represented by Ecg) and hardware status data (represented by Inf). The control signal is represented by cmd, and the response signal is represented by status. Based on the example of FIG2 , the buffer memory storing Img in the cache module 22 is connected to the buffer memory storing Img in the polling arbitration module 21, the buffer memory storing cmd in the cache module 22 is connected to the buffer memory storing cmd in the polling arbitration module 21, and the buffer memory storing status in the cache module 22 is connected to the buffer memory storing status in the polling arbitration module 21.
通常,FPGA中包括解析模块,解析模块与控制信号缓冲存储器221相连,用于通过接收并解析控制信号缓冲存储器221中的控制信号,得到解析信号。Typically, the FPGA includes a parsing module, which is connected to the control signal buffer memory 221 and is used to obtain a parsing signal by receiving and parsing the control signal in the control signal buffer memory 221 .
图2中,参数译码模块23通过总线(图2中,bus表示总线)与解析模块相连,用于接收解析模块发送的解析信号。In FIG. 2 , the parameter decoding module 23 is connected to the analysis module via a bus (in FIG. 2 , bus represents a bus) and is used to receive the analysis signal sent by the analysis module.
跨时钟域转换模块24与参数译码模块23和轮询仲裁模块24相连,用于将解析信号的时钟频率转换为本地时钟频率后,依据转换后的解析信号,访问轮询仲裁模块中的寄存器。需要说明的是,这里所述轮询仲裁模块中的寄存器,可以包括但不限于轮询仲裁模块中的缓存状态寄存器,其中,缓存状态寄存器用于对应存储各个缓存的状态信号,状态信号用于表示缓存的当前状态为正常或者异常。The cross-clock domain conversion module 24 is connected to the parameter decoding module 23 and the polling arbitration module 24, and is used to convert the clock frequency of the parsed signal into the local clock frequency, and then access the register in the polling arbitration module according to the converted parsed signal. It should be noted that the register in the polling arbitration module described here may include but is not limited to the cache status register in the polling arbitration module, wherein the cache status register is used to store the status signal of each cache, and the status signal is used to indicate whether the current state of the cache is normal or abnormal.
例如,解析模块解析控制信号得到的解析信号指示:获取轮询仲裁模块中所有的上传数据缓冲存储器213的当前状态,则跨时钟域转换模块24将解析信号的时钟频率转换为本地时钟频率后,依据转换后的解析信号,读取轮询仲裁模块21中的缓存状态寄存器的状态信号,并将读取的状态信号作为响应信号,由FPGA发给响应信号缓冲存储器222,存满后,传输至上传响应信号缓冲存储器212,再由轮询仲裁模块的控制器214发至USB芯片的EP4。For example, the parsing signal obtained by the parsing module parsing the control signal indicates: obtaining the current status of all the upload data buffer memories 213 in the polling arbitration module, then the cross-clock domain conversion module 24 converts the clock frequency of the parsing signal into the local clock frequency, and reads the status signal of the cache status register in the polling arbitration module 21 according to the converted parsing signal, and uses the read status signal as a response signal, which is sent by the FPGA to the response signal buffer memory 222. After it is full, it is transmitted to the upload response signal buffer memory 212, and then sent to the EP4 of the USB chip by the controller 214 of the polling arbitration module.
参数译码模块23以及跨时钟域转换模块24的具体功能实现,与现有技术(即FPGA基于USB传输一种数据类型的技术)相同,这里不再赘述除了上述各模块之外,图2中,fifo表示队列,USB-reg表示轮询仲裁21模块所使用的寄存器中的信号。The specific functional implementation of the parameter decoding module 23 and the cross-clock domain conversion module 24 is the same as the prior art (i.e., the technology of FPGA transmitting a data type based on USB), and will not be repeated here. In addition to the above modules, in Figure 2, fifo represents the queue, and USB-reg represents the signal in the register used by the polling arbitration 21 module.
下面以FPGA在上位机的控制下,从硬件设备获取数据、并通过USB芯片将数据发给上位机的场景为例,对图2所示的控制器214执行基于USB的FPGA通信控制的流程进行详细的说明。The following is an example of a scenario in which the FPGA obtains data from a hardware device under the control of a host computer and sends the data to the host computer through a USB chip, and the process of the controller 214 shown in FIG. 2 executing USB-based FPGA communication control is described in detail.
假设FPGA连接心率仪获取心率数据、连接超声仪获取超声图像数据,并获取硬件设备(包括心率仪和超声仪)的状态参数,本实施例中,将心率数据、超声图像数据和状态参数统称为数据。Assume that the FPGA is connected to a heart rate monitor to obtain heart rate data, connected to an ultrasound device to obtain ultrasound image data, and obtains status parameters of hardware devices (including a heart rate monitor and an ultrasound device). In this embodiment, the heart rate data, ultrasound image data, and status parameters are collectively referred to as data.
FPGA将获取的心率数据存储在缓存模块22中的一个缓冲存储器(简称为Ecg数据缓存)中,将获取的超声图像数据存储在缓存模块22中的另一个缓冲存储器(简称为Img数据缓存)中,将状态参数存储在缓存模块22中的又一个缓冲存储器(简称为Status数据缓存)中。The FPGA stores the acquired heart rate data in a buffer memory (referred to as Ecg data cache) in the cache module 22, stores the acquired ultrasound image data in another buffer memory (referred to as Img data cache) in the cache module 22, and stores the status parameters in another buffer memory (referred to as Status data cache) in the cache module 22.
图3为本申请实施例公开的基于USB的FPGA通信控制方法的流程图,由控制器214执行,目的在于:按照一定的轮询顺序,调度传输控制信号、响应信号和数据。图3中包括以下步骤:FIG3 is a flow chart of a USB-based FPGA communication control method disclosed in an embodiment of the present application, which is executed by the controller 214 and aims to schedule transmission of control signals, response signals and data in a certain polling order. FIG3 includes the following steps:
S301:判断是否满足下载控制信号条件:即判断EP2端点是否为非空、且下载控制信号缓冲存储器211是否为非满,如果是,执行S302,否则,执行S304。S301: Determine whether the download control signal condition is met: that is, determine whether the EP2 endpoint is not empty and whether the download control signal buffer memory 211 is not full. If so, execute S302, otherwise, execute S304.
S302:将EP2端点的控制信号下载到下载控制信号缓冲存储器211中。S302: Download the control signal of the EP2 endpoint to the download control signal buffer memory 211.
S303:在下载控制信号的过程中,判断是否满足下载控制信号停止条件:即判断控制信号传输是否完成、或者EP2端点是否为空、或者下载控制信号缓冲存储器211是否为满,如果任意一个条件的判断结果为是,执行S304,否则,执行S302。S303: During the process of downloading the control signal, determine whether the download control signal stop condition is met: that is, determine whether the control signal transmission is completed, or whether the EP2 endpoint is empty, or whether the download control signal buffer memory 211 is full. If the judgment result of any one of the conditions is yes, execute S304, otherwise, execute S302.
S304:判断是否满足上传响应信号条件:即判断EP4端点是否为非满、且上传响应信号缓冲存储器212是否为非空,如果是,执行S305,否则,执行S307。S304: Determine whether the upload response signal condition is met: that is, determine whether the EP4 endpoint is not full and whether the upload response signal buffer memory 212 is not empty. If yes, execute S305; otherwise, execute S307.
S305:将上传响应信号缓冲存储器212中的响应信号上传到EP4端点。S305: Upload the response signal in the upload response signal buffer memory 212 to the EP4 endpoint.
S306:在上传响应信号的过程中,判断是否满足上传响应信号停止条件:即判断响应信号传输是否完成、或者EP4端点是否为满、或者上传响应信号缓冲存储器212是否为空,如果任意一个条件的判断结果为是,执行S307,否则,执行S305。S306: During the process of uploading the response signal, determine whether the upload response signal stop condition is met: that is, determine whether the response signal transmission is completed, or whether the EP4 endpoint is full, or whether the upload response signal buffer memory 212 is empty. If the judgment result of any one of the conditions is yes, execute S307, otherwise, execute S305.
S307:判断是否有未完成传输的数据,如果否,执行S308,如果是,执行S321。S307: Determine whether there is any data that has not been transmitted. If not, execute S308; if yes, execute S321.
具体的,控制器214在上一次数据传输过程中未完成数据传输的情况下,可以记录未完成传输的数据的类型,控制器214依据记录,确定上一次数据传输未完成。具体的,记录未完成传输的数据的缓存的标识,例如假设轮询仲裁模块21中用于存储超声图像数据的缓存的编号为1、用于存储状态数据的缓存的编号为2、用于存储心率数据的缓存的编号为3,则如果上次数据传输过程中超声图像数据未传完,则控制器214记录存储心率数据的缓存的编号3。又或者,如前所述,为每个用于存储数据的缓存设置寄存器,如果在一次数据传输过程中,任意一个缓存中的数据未传完,则将该缓的寄存器中的标志位设置为1。控制器214依据各个缓存对应的寄存器中的标志位确定是否有未传完的数据。Specifically, if the controller 214 does not complete the data transmission during the last data transmission, the type of data that is not completed can be recorded, and the controller 214 determines that the last data transmission is not completed based on the record. Specifically, the identifier of the cache of the data that is not completed is recorded. For example, assuming that the cache for storing ultrasound image data in the polling arbitration module 21 is numbered 1, the cache for storing status data is numbered 2, and the cache for storing heart rate data is numbered 3, then if the ultrasound image data is not completely transmitted during the last data transmission, the controller 214 records the number 3 of the cache for storing heart rate data. Alternatively, as described above, a register is set for each cache for storing data. If the data in any cache is not completely transmitted during a data transmission process, the flag bit in the register of the cache is set to 1. The controller 214 determines whether there is uncompleted data based on the flag bits in the registers corresponding to each cache.
S308:判断是否满足上传数据条件:即判断EP6端点是否为非满、且存储超声图像数据的上传数据缓冲存储器213是否为非空,如果是,执行S309,否则,执行S312。S308: Determine whether the data upload condition is met: that is, determine whether the EP6 endpoint is not full and whether the upload data buffer memory 213 storing ultrasound image data is not empty. If so, execute S309, otherwise, execute S312.
S309:将存储超声图像数据的上传数据缓冲存储器213中的超声图像数据上传至EP6端点。S309: Upload the ultrasound image data in the upload data buffer memory 213 storing the ultrasound image data to the EP6 endpoint.
S310:在上传超声图像数据的过程中,判断是否满足上传数据停止条件:即判断EP6端点是否为满、或者存储超声图像数据的缓存是否为空,如果任意一个条件的判断结果为是,执行S311,否则,执行S309。S310: During the process of uploading ultrasound image data, determine whether the data uploading stop condition is met: that is, determine whether the EP6 endpoint is full, or whether the cache storing ultrasound image data is empty. If the judgment result of any condition is yes, execute S311, otherwise, execute S309.
S311:判断本次超声图像数据传输是否完成,如果是,执行S312,否则,执行S320。S311: Determine whether the ultrasound image data transmission is completed. If yes, execute S312; otherwise, execute S320.
S312:判断EP6端点是否为非满、且存储状态数据的缓存是否为非空,如果是,执行S313,否则,执行S316。S312: Determine whether the EP6 endpoint is not full and whether the cache storing the status data is not empty. If so, execute S313; otherwise, execute S316.
S313:将存储状态数据的上传数据缓冲存储器213中的状态数据上传至EP6端点。S313: Upload the status data in the upload data buffer memory 213 storing the status data to the EP6 endpoint.
S314:在上传状态数据的过程中,判断EP6端点是否为满、或者状态数据的缓存是否为空,如果任意一个条件的判断结果为是,执行S315,否则,执行S313。S314: During the process of uploading the status data, determine whether the EP6 endpoint is full or whether the status data cache is empty. If the determination result of any one of the conditions is yes, execute S315; otherwise, execute S313.
S315:判断本次状态数据传输是否完成,如果是,执行S316,否则,执行S320。S315: Determine whether the current status data transmission is completed, if so, execute S316, otherwise, execute S320.
S316:判断EP6端点是否为非满、且存储心率数据的缓存是否为非空,如果是,执行S317,否则,执行S301。S316: Determine whether the EP6 endpoint is not full and whether the cache storing the heart rate data is not empty. If so, execute S317; otherwise, execute S301.
S317:将存储心率数据的上传数据缓冲存储器213中的心率数据上传至EP6端点。S317: Upload the heart rate data in the upload data buffer memory 213 storing the heart rate data to the EP6 endpoint.
S318:在上传心率数据的过程中,判断EP6端点是否为满、或者心率数据的缓存是否为空,如果任意一个条件的判断结果为是,执行S319,否则,执行S317。S318: During the process of uploading the heart rate data, determine whether the EP6 endpoint is full or whether the cache of the heart rate data is empty. If the judgment result of any one of the conditions is yes, execute S319; otherwise, execute S317.
S319:判断本次心率数据传输是否完成,如果是,执行S301,否则,执行S320。S319: Determine whether the current heart rate data transmission is completed, if so, execute S301, otherwise, execute S320.
S320:记录未完成传输的数据。S320: Record the data that has not been completely transmitted.
记录的具体方式如前所述,这里不再赘述。The specific recording method is as described above and will not be repeated here.
S321:传输上次未完成传输的数据。S321: Transmit the data that was not completed last time.
控制器214在传输完上次未完成传输的数据后,返回执行S308,进行本次数据传输。After completing the transmission of the data that was not completed last time, the controller 214 returns to execute S308 to perform the current data transmission.
从图3所示的流程可以看出,轮询仲裁模块按照控制信号、响应信号、数据的顺序,轮询本地缓存和USB芯片的端点的状态,在两侧均满足条件的情况下进行信息的传输,因此,能够兼顾多种信息的传输。进一步的,对于多种类型的数据,也可以使用预设的顺序进行轮询传输,所以,使用分时利用带宽的方式,能够实现多种类型数据的传输。与现有的一种数据使用单独的FPGA芯片传输的方式相比,一个FPGA芯片可以兼顾多种数据的传输,即可利用为一个FPGA分配的带宽分时传输多种类型的数据,能够提高带宽的利用率。As can be seen from the process shown in FIG3 , the polling arbitration module polls the status of the local cache and the endpoint of the USB chip in the order of the control signal, the response signal, and the data, and transmits information when the conditions on both sides are met, so that the transmission of multiple types of information can be taken into account. Furthermore, for multiple types of data, polling transmission can also be performed in a preset order, so the transmission of multiple types of data can be achieved by using the bandwidth in a time-sharing manner. Compared with the existing method of using a separate FPGA chip to transmit data, one FPGA chip can take into account the transmission of multiple types of data, that is, multiple types of data can be transmitted in a time-sharing manner using the bandwidth allocated to one FPGA, which can improve the utilization rate of bandwidth.
并且,以USB芯片的端点设置的维度设置轮询顺序,所以,能够兼容于USB的传输协议,硬件兼容性较高。Furthermore, the polling order is set according to the dimension of the endpoint setting of the USB chip, so it is compatible with the USB transmission protocol and has high hardware compatibility.
通常,与状态参数相比,数据(例如超声图像数据)的传输量较大,因此,在上次有未传完数据的情况下,优先传输未传完的数据,所以,能够进一步保证数据的完整性和正确性,而不会因为轮序机制导致数据丢失和错误。Generally, compared with status parameters, the transmission volume of data (such as ultrasound image data) is larger. Therefore, if there is uncompleted data last time, the uncompleted data will be transmitted first. Therefore, the integrity and correctness of the data can be further guaranteed without causing data loss and errors due to the round-robin mechanism.
本实施例中,上述判断条件的设置原则为:信息的接收方非满且信息的发送方非空,因此,既能够保证接收方已满而导致的信息丢失,又能够及时进行下一个信息的轮询,提高信息的传输效率。In this embodiment, the setting principle of the above judgment conditions is: the receiver of the information is not full and the sender of the information is not empty. Therefore, it can not only ensure that the information is lost due to the receiver being full, but also poll the next information in time, thereby improving the transmission efficiency of information.
需要说明的是,如果上位机卡顿而造成FPGA信息阻塞,则信息会先存储到FPGA的内部队列中,当内部队列存满时,如果上位机还处于卡顿状态,则会导致信息丢失,因此,可以设置如下带宽关系:上位机的带宽>USB带宽>FPGA带宽。It should be noted that if the host computer freezes and causes FPGA information blocking, the information will be stored in the internal queue of the FPGA first. When the internal queue is full, if the host computer is still in a freeze state, the information will be lost. Therefore, the following bandwidth relationship can be set: host computer bandwidth>USB bandwidth>FPGA bandwidth.
需要说明的是,图3中所示的流程中所述的轮询顺序:控制信号、响应信号和数据,仅为示例,不作为本申请的限定,也可以使用其它预设顺序进行轮询。同样的,超声数据图像、状态数据和心率数据的轮询顺序,也不作为限定。It should be noted that the polling order described in the process shown in FIG3: control signal, response signal and data is only an example and is not a limitation of the present application. Other preset orders can also be used for polling. Similarly, the polling order of ultrasound data image, status data and heart rate data is not a limitation.
需要说明的是,图3所示的流程中,所述下载控制信号存储器、上传响应信号存储器和上传数据存储器,不限定于图2所示的结构,也可以为FPGA中现有的存储器,只要仅用于存储相应类型的数据即可,例如,FPGA中现有的存储器,可以仅用于存储控制信号,即为下载控制信号存储器。It should be noted that in the process shown in Figure 3, the download control signal memory, upload response signal memory and upload data memory are not limited to the structure shown in Figure 2, and can also be existing memories in the FPGA, as long as they are only used to store data of the corresponding type. For example, the existing memory in the FPGA can be used only to store control signals, that is, a download control signal memory.
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。If the functions described in the method of the embodiment of the present application are implemented in the form of software functional units and sold or used as independent products, they can be stored in a storage medium readable by a computing device. Based on this understanding, the part of the embodiment of the present application that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions to enable a computing device (which can be a personal computer, server, mobile computing device or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk.
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811392968.8A CN109284243B (en) | 2018-11-21 | 2018-11-21 | FPGA communication control device and method based on USB |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811392968.8A CN109284243B (en) | 2018-11-21 | 2018-11-21 | FPGA communication control device and method based on USB |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284243A CN109284243A (en) | 2019-01-29 |
CN109284243B true CN109284243B (en) | 2024-06-25 |
Family
ID=65173224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811392968.8A Active CN109284243B (en) | 2018-11-21 | 2018-11-21 | FPGA communication control device and method based on USB |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284243B (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108632168A (en) * | 2018-04-16 | 2018-10-09 | 济南浪潮高新科技投资发展有限公司 | A kind of asynchronous serial communication method for interchanging data based on FPGA |
CN209690899U (en) * | 2018-11-21 | 2019-11-26 | 深圳开立生物医疗科技股份有限公司 | FPGA communication control unit and FPGA based on USB |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141486A (en) * | 2007-09-25 | 2008-03-12 | 中兴通讯股份有限公司 | AHB interconnection matrix interface |
CN101803917B (en) * | 2010-03-29 | 2012-01-25 | 华中科技大学 | Bio-electrical impedance imaging hardware system |
CN102202171B (en) * | 2011-04-21 | 2012-10-03 | 北京理工大学 | An embedded high-speed multi-channel image acquisition and storage system |
CN103516627B (en) * | 2012-06-20 | 2018-08-21 | 南京中兴新软件有限责任公司 | The method and apparatus that data packet sends, receives in multi-chip communication |
CN103853642A (en) * | 2014-01-17 | 2014-06-11 | 中国科学院上海技术物理研究所 | Injection type simulation system for infrared digital image based on USB3.0 and method thereof |
CN104539886A (en) * | 2014-12-09 | 2015-04-22 | 中国科学院上海技术物理研究所 | Infrared digital image acquisition and transmission system and method based on optical fiber communication |
-
2018
- 2018-11-21 CN CN201811392968.8A patent/CN109284243B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108632168A (en) * | 2018-04-16 | 2018-10-09 | 济南浪潮高新科技投资发展有限公司 | A kind of asynchronous serial communication method for interchanging data based on FPGA |
CN209690899U (en) * | 2018-11-21 | 2019-11-26 | 深圳开立生物医疗科技股份有限公司 | FPGA communication control unit and FPGA based on USB |
Non-Patent Citations (2)
Title |
---|
段黎明等.高能X射线工业CT数据传输系统的设计.强激光与粒子束.2008,第20卷(第9期),第1541-1544页. * |
高能X射线工业CT数据传输系统的设计;段黎明等;强激光与粒子束;第20卷(第9期);第1541-1544页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109284243A (en) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866971B (en) | Device, the system and method for transmission data | |
CN106257434B (en) | A data transmission method and device based on enhanced peripheral interconnection protocol bus | |
CN106775434B (en) | A kind of implementation method, terminal, server and the system of NVMe networking storage | |
CN106598889A (en) | SATA (Serial Advanced Technology Attachment) master controller based on FPGA (Field Programmable Gate Array) sandwich plate | |
CN112199309B (en) | Data reading method and device based on DMA engine and data transmission system | |
US20050089033A1 (en) | Method, system, and program for constructing a packet | |
CN116225992A (en) | A kind of NVMe verification platform and method supporting virtualization simulation equipment | |
US7669190B2 (en) | Method and system for efficiently recording processor events in host bus adapters | |
CN113852533A (en) | A multi-channel data communication system, method and electronic device | |
CN114385544A (en) | UART chip and FPGA chip | |
CN113590512A (en) | Self-starting DMA device capable of directly connecting peripheral equipment and application | |
JP4837659B2 (en) | Bus controller for processing split transactions | |
CN109284243B (en) | FPGA communication control device and method based on USB | |
CN117667793B (en) | Multi-channel descriptor management system, method, equipment and medium | |
CN109165177A (en) | A kind of communication means and relevant apparatus of PCIE interface | |
CN117762850A (en) | Multichannel RS422 mass data transmission system and method based on PXI architecture | |
CN101876952B (en) | System and method for software and hardware interaction between host-side transport layer and application layer | |
CN107885693A (en) | High-capacity and high-speed data transfer and storage system and method based on PCIE3.0 | |
US12124709B2 (en) | Computing system and associated method | |
CN117149070A (en) | Data transmission method and solid state disk system | |
CN109213710B (en) | High-speed serial interface device and data transmission method thereof | |
CN209690899U (en) | FPGA communication control unit and FPGA based on USB | |
CN115794701A (en) | BMC chip and method of DMA function virtual serial port | |
CN119292967B (en) | A high-speed data processing method and system | |
CN111143897A (en) | Data security processing device, system and processing method |
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 | ||
TG01 | Patent term adjustment | ||
TG01 | Patent term adjustment |