CN112905517A - 一种基于fpga的可变包长度数据采集方法 - Google Patents
一种基于fpga的可变包长度数据采集方法 Download PDFInfo
- Publication number
- CN112905517A CN112905517A CN202110253502.5A CN202110253502A CN112905517A CN 112905517 A CN112905517 A CN 112905517A CN 202110253502 A CN202110253502 A CN 202110253502A CN 112905517 A CN112905517 A CN 112905517A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- data packet
- acq
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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
-
- 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/0026—PCI express
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据采集技术领域,尤其涉及一种基于FPGA的可变包长度数据采集方法,在现有技术的基础上通过寄存器增加了两个配置参数(即数据包大小值和最大数据包个数),这两个参数在系统软件初始化ACQ设备的同时写入到ACQ的存储空间内,通过本方案,针对不同的CT产品,只需要系统软件做相应修改,而ACQ测的固件可以保持不变,从而减少了技术人员的维护成本和提高了内存利用率。
Description
技术领域
本发明涉及数据采集技术领域,尤其涉及一种基于FPGA的可变包长度数据采集方法。
背景技术
随着CT产品越来越多,数据传输所涉及到的数据包大小也在不断变化,如图1所示的4种就是我们在数据传输过程中会遇到的情况(注:D为实际数据包长度,A为设定数据包长度对应的地址空间大小):
1). 当D=A时,也就是实际数据包刚好完全写入对应的地址空间,不会出现数据丢失和内存利用效率不高等情况,这是最理想的;
2). 当 D<A 时,ACQ固件可以不做更改,但会浪费内存空间,导致内存利用率不高;
3). 当 D>A 时,就会导致D的一部分数据丢失,这是不允许的,需要同时对ACQ固件和上位机软件做修改;
4). 当上位机分配的地址空间大小发生变化时,如果分配的地址空间大于ACQ固件设定的空间时,不会影响数据传输,只是内存利用率降低;如果分配的地址空间小于ACQ固件设定的空间时,则会出现丢包的情况,这个时候就必须修改ACQ固件。
现有技术在ACQ固件端以及上位机软件端分别设置固定的数据包长度和公共缓存的大小,当CT机型变化,上位机软件和ACQ固件都需要跟着改变,不利于固件维护。
发明内容
为解决上述问题,本发明的目的在于提供一种基于FPGA的可变包长度数据采集方法,只需要上位机做相应修改,而ACQ侧的固件不用随之变换。
为了实现上述目的,本发明的技术方案如下:
一种基于FPGA的可变包长度数据采集方法,包括以下步骤:
S1.根据CT机型,确定探测器产生的数据包大小和上位机系统软件分配给ACQ设备的地址空间大小,计算出地址空间中所能储存的探测器数据包的最大个数;上位机系统软件初始化ACQ设备的bar0寄存器和bar2寄存器,其中bar0寄存器用于寄存分配给ACQ设备的地址空间,bar2寄存器用于寄存数据包大小值和数据包的最大个数;
S2.将bar0寄存器值写入数据存储器,将bar2寄存器值写入地址存储器;
S3.存储器读取模块按周期读取地址存储器中的寄存器值,用于DMA的控制;
S4.数据采集时,探测器数据采集板产生数据包并存入DCB数据输入模块;每写入一个数据包,计数器就加1,直到计数器值等于地址空间中所能储存的最大数据包个数时,计数器清零;
DCB数据输入模块中的数据以bar0寄存器给的初始地址写入数据储存器,每写入一个数据包,数据储存器的地址就加上一个数据包大小值,当计数器值等于地址空间中所能储存的最大数据包个数时,再重新从初始地址开始写入;
S5. 数据储存器中的数据包通过DMA控制器进行DMA写操作,上位机接收到数据包。
本发明的优点在于:现有技术在系统软件初始化ACQ设备时只分配了PCIe总线域的地址空间,这就导致当系统参数改变后,底层的ACQ固件也需要改变,本申请在现有技术的基础上通过寄存器增加了两个配置参数(即数据包大小值和最大数据包个数),这两个参数在系统软件初始化ACQ设备的同时写入到ACQ的存储空间内,通过本方案,针对不同的CT产品,只需要系统软件做相应修改,而ACQ测的固件可以保持不变,从而减少了技术人员的维护成本和提高了内存利用率。
附图说明
图1 为现有技术中数据传输遇到的四种情况示意图;
图2为实施例中上位机、ACQ设备及DCB板之间的连接示意图;
图3为图2中ACQ设备的内部控制框图;
图4为实施例采集方法的流程框图。
具体实施方式
以下结合实施例对本发明作进一步详细描述。
如图2和3所示,为本实施例采集方法的硬件环境,包括上位机(计算机控制柜)Console、ACQ和探测器数据采集板DCB,其中ACQ和上位机是通过PCIe总线通讯的,因此需要将ACQ卡安装于console的PCIe插槽内,以实现在每次上位机初始化过程中对ACQ卡进行地址分配(寻址)。ACQ与DCB则是通过SFP+光模块连接。
ACQ内模块包括有PCIE_hard_ip、TXS、BAR0寄存器、BAR2寄存器、地址存储器adr_ram、存储器读取模块mem_read_module、DMA控制器配置模块DMA_ctl_module、FPGA内部自带的DMA控制器DMA_Controller、数据存储器dat_ram及DCB数据输入模块data_in_module。其中,PCIE_hard_ip模块是FPGA内部自带的ip核,通过调用该ip核实现与上位机的数据传输;地址存储器adr_ram存储BAR2寄存器值,用于地址传输;存储器读取模块mem_read_module读取adr_ram中相关寄存器值,用于DMA控制;数据存储器dat_ram存储BAR0寄存器值,用于数据传输。
如图4所示,为本实施例采集方法的流程框图,本实施例采集方法具体包括以下步骤:
S1.根据CT机型,确定CT探测器产生的数据包大小PacketSize和上位机系统软件分配给ACQ设备的地址空间大小,即可计算出地址空间中所能储存的探测器数据包的最大个数maxCapacity(例如系统软件向内存申请分配给ACQ设备的存储空间为256M,则);
上位机系统软件初始化ACQ设备的bar0寄存器和bar2寄存器,即分配ACQ设备在PCIe总线域的地址空间;其中bar0寄存器用于寄存分配给ACQ设备的地址空间,将ACQ设备的PCIe总线域地址空间映射到处理器的存储器域地址空间,bar2寄存器用于寄存数据包大小值和数据包的最大个数,这两个参数后续通过bar2寄存器传入ACQ设备;
S2.将bar0寄存器值写入数据存储器dat_ram,将bar2寄存器值写入地址存储器adr_ram;
S3.存储器读取模块mem_read_module每16个周期读取地址存储器adr_ram中的寄存器值,用于实时记录该寄存器信息;
S4.数据采集时,DCB探测器数据采集板产生数据包并存入DCB数据输入模块data_in_module;每写入一个数据包,计数器就加1,直到计数器值n等于地址空间中所能储存的最大数据包个数,即n=maxCapacity时,计数器清零;
DCB数据输入模块data_in_module中的数据以bar0寄存器给的初始地址写入数据储存器,每写入一个数据包,数据储存器的地址就加上一个数据包大小值PacketSize,当计数器值等于地址空间中所能储存的最大数据包个数,即n=maxCapacity时,此时数据写满内存,当计数器值清零后,再重新从初始地址开始写入(通过最大数据包个数的计算和计数器的配合,实现实际数据包刚好完全写入对应的地址空间,即D=A);
S5.数据储存器中的数据包通过DMA控制器进行DMA写操作,上位机接收到数据包。
上述实施例仅用于解释说明本发明的构思,而非对本发明权利保护的限定,凡利用此构思对本发明进行非实质性的改动,均应落入本发明的保护范围。
Claims (1)
1.一种基于FPGA的可变包长度数据采集方法,其特征在于,包括以下步骤:
S1.根据CT机型,确定探测器产生的数据包大小和上位机系统软件分配给ACQ设备的地址空间大小,计算出地址空间中所能储存的探测器数据包的最大个数;上位机系统软件初始化ACQ设备的bar0寄存器和bar2寄存器,其中bar0寄存器用于寄存分配给ACQ设备的地址空间,bar2寄存器用于寄存数据包大小值和数据包的最大个数;
S2.将bar0寄存器值写入数据存储器,将bar2寄存器值写入地址存储器;
S3.存储器读取模块按周期读取地址存储器中的寄存器值,用于DMA的控制;
S4.数据采集时,探测器数据采集板产生数据包并存入DCB数据输入模块;每写入一个数据包,计数器就加1,直到计数器值等于地址空间中所能储存的最大数据包个数时,计数器清零;
DCB数据输入模块中的数据以bar0寄存器给的初始地址写入数据储存器,每写入一个数据包,数据储存器的地址就加上一个数据包大小值,当计数器值等于地址空间中所能储存的最大数据包个数时,再重新从初始地址开始写入;
S5. 数据储存器中的数据包通过DMA控制器进行DMA写操作,上位机接收到数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253502.5A CN112905517B (zh) | 2021-03-09 | 2021-03-09 | 一种基于fpga的可变包长度数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110253502.5A CN112905517B (zh) | 2021-03-09 | 2021-03-09 | 一种基于fpga的可变包长度数据采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112905517A true CN112905517A (zh) | 2021-06-04 |
CN112905517B CN112905517B (zh) | 2022-05-20 |
Family
ID=76108101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110253502.5A Active CN112905517B (zh) | 2021-03-09 | 2021-03-09 | 一种基于fpga的可变包长度数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905517B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672661A (zh) * | 2021-08-03 | 2021-11-19 | 北京金山云网络技术有限公司 | 数据处理方法、装置、设备、和计算机可读存储介质 |
CN113744861A (zh) * | 2021-09-23 | 2021-12-03 | 明峰医疗系统股份有限公司 | 一种方便维护的曝光累计值处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160191376A1 (en) * | 2014-12-26 | 2016-06-30 | Fujitsu Limited | Information processing apparatus, information processing system, and communication device |
CN207529375U (zh) * | 2017-12-01 | 2018-06-22 | 沈阳晟诺科技有限公司 | 一种用于ct机的das数据接收装置及其系统 |
US20180349297A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Virtual host controller for a data processing system |
US20200014630A1 (en) * | 2018-07-06 | 2020-01-09 | Cavium, Llc | Method To Limit Packet Fetching With Uncertain Packet Sizes To Control Line Rate |
CN111045817A (zh) * | 2019-11-08 | 2020-04-21 | 福州瑞芯微电子股份有限公司 | 一种PCIe传输管理方法、系统和装置 |
CN111209030A (zh) * | 2019-12-25 | 2020-05-29 | 深圳优地科技有限公司 | 一种固件的配置方法及装置 |
CN112131154A (zh) * | 2020-09-29 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种通道与业务动态匹配的dma传输控制方法 |
CN112256601A (zh) * | 2020-10-19 | 2021-01-22 | 凌云光技术股份有限公司 | 数据存取控制方法、嵌入式存储系统及嵌入式设备 |
-
2021
- 2021-03-09 CN CN202110253502.5A patent/CN112905517B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160191376A1 (en) * | 2014-12-26 | 2016-06-30 | Fujitsu Limited | Information processing apparatus, information processing system, and communication device |
US20180349297A1 (en) * | 2017-06-02 | 2018-12-06 | Apple Inc. | Virtual host controller for a data processing system |
CN207529375U (zh) * | 2017-12-01 | 2018-06-22 | 沈阳晟诺科技有限公司 | 一种用于ct机的das数据接收装置及其系统 |
US20200014630A1 (en) * | 2018-07-06 | 2020-01-09 | Cavium, Llc | Method To Limit Packet Fetching With Uncertain Packet Sizes To Control Line Rate |
CN111045817A (zh) * | 2019-11-08 | 2020-04-21 | 福州瑞芯微电子股份有限公司 | 一种PCIe传输管理方法、系统和装置 |
CN111209030A (zh) * | 2019-12-25 | 2020-05-29 | 深圳优地科技有限公司 | 一种固件的配置方法及装置 |
CN112131154A (zh) * | 2020-09-29 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种通道与业务动态匹配的dma传输控制方法 |
CN112256601A (zh) * | 2020-10-19 | 2021-01-22 | 凌云光技术股份有限公司 | 数据存取控制方法、嵌入式存储系统及嵌入式设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672661A (zh) * | 2021-08-03 | 2021-11-19 | 北京金山云网络技术有限公司 | 数据处理方法、装置、设备、和计算机可读存储介质 |
CN113744861A (zh) * | 2021-09-23 | 2021-12-03 | 明峰医疗系统股份有限公司 | 一种方便维护的曝光累计值处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112905517B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112905517B (zh) | 一种基于fpga的可变包长度数据采集方法 | |
AU573516B2 (en) | Communication controller using multiported random access memory | |
TWI409815B (zh) | 控制接收讀取資料時序之記憶體系統和方法 | |
EP1738267B1 (en) | System and method for organizing data transfers with memory hub memory modules | |
CN111209232B (zh) | 访问静态随机存取存储器的方法、装置、设备和存储介质 | |
US9128633B2 (en) | Semiconductor memory device and method of operating the semiconductor memory device | |
WO2009070326A1 (en) | A system and method for accessing memory | |
JP4401305B2 (ja) | デイスクアレイ装置の構成定義設定方法及びデイスクアレイ装置 | |
CN107357753A (zh) | 一种实现PCIE port和硬盘地址自动匹配的方法及系统 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
CN108139989B (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
CN103760525A (zh) | 一种补齐式原地矩阵转置方法 | |
CN105260332A (zh) | 一种对cpld数据包进行有序存储的方法及系统 | |
US8285892B2 (en) | Quantum burst arbiter and memory controller | |
CN114461541A (zh) | 芯片数据读取方法、写入方法、装置、设备以及存储介质 | |
CN206946471U (zh) | 一种多通道共享读写sdram的电路装置 | |
CN115174673B (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
CN101568970B (zh) | 存储器装置、存储系统及用于存储系统的方法 | |
US8769167B2 (en) | Channel device, information processing system and data transfer method | |
CN114610231A (zh) | 大位宽数据总线分段存储的控制方法、系统、设备及介质 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
US10657076B2 (en) | Electronic apparatus and method of extending peripheral device | |
CN106528452B (zh) | 动态逻辑分段方法以及使用该方法的装置 | |
CN113094328B (zh) | 一种用于合成孔径雷达实时成像的多通道并行计算系统 | |
US11954037B2 (en) | Memory address allocation and cache mapping to retain data in cache |
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 |