[发明专利]一种基于FPGA的可变包长度数据采集方法有效
申请号: | 202110253502.5 | 申请日: | 2021-03-09 |
公开(公告)号: | CN112905517B | 公开(公告)日: | 2022-05-20 |
发明(设计)人: | 李敏;陈修儒;黄振强 | 申请(专利权)人: | 明峰医疗系统股份有限公司 |
主分类号: | G06F13/42 | 分类号: | G06F13/42;G06F13/28 |
代理公司: | 绍兴市越兴专利事务所(普通合伙) 33220 | 代理人: | 高林 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 可变 长度 数据 采集 方法 | ||
本发明涉及数据采集技术领域,尤其涉及一种基于FPGA的可变包长度数据采集方法,在现有技术的基础上通过寄存器增加了两个配置参数(即数据包大小值和最大数据包个数),这两个参数在系统软件初始化ACQ设备的同时写入到ACQ的存储空间内,通过本方案,针对不同的CT产品,只需要系统软件做相应修改,而ACQ测的固件可以保持不变,从而减少了技术人员的维护成本和提高了内存利用率。
技术领域
本发明涉及数据采集技术领域,尤其涉及一种基于FPGA的可变包长度数据采集方法。
背景技术
随着CT产品越来越多,数据传输所涉及到的数据包大小也在不断变化,如图1所示的4种就是我们在数据传输过程中会遇到的情况(注:D为实际数据包长度,A为设定数据包长度对应的地址空间大小):
1). 当D=A时,也就是实际数据包刚好完全写入对应的地址空间,不会出现数据丢失和内存利用效率不高等情况,这是最理想的;
2). 当 DA 时,ACQ固件可以不做更改,但会浪费内存空间,导致内存利用率不高;
3). 当 DA 时,就会导致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写操作,上位机接收到数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于明峰医疗系统股份有限公司,未经明峰医疗系统股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110253502.5/2.html,转载请声明来源钻瓜专利网。