提高超声设备接口传输利用率的方法及系统
技术领域
本发明属于医疗超声技术领域,主要涉及一种提高超声设备接口传输利用率的方法及系统。
背景技术
超声诊断设备至少由上位机和超声探测装置连接组成;超声探测装置一般采用FPGA(Field-Programmable Gate Array,中文释义:现场可编程门阵列)内部的高速传输接口PCIE(peripheral component interconnect express,一种高速串行计算机扩展总线标准)与上位机进行连接、交互;上位机通过接口向超声探测装置传送控制信号,同时超声探测装置将接收到的数据通过接口传输给上位机,随着传输的数据量越来越大,对传输接口要求的速率也就越来越高。
以PCIE3.0为例,FPGA内部的PCIE模块开放的接口选择X16总线,那么数据是512bit位宽,250Mhz的时钟速率;FPGA接收前端AFE芯片发送的数据,并将接收的数据通过PCIE传输给上位机,以AFE芯片提供64路数据为例,每路数据12bit位宽,50Mhz时钟速率。
AFE芯片产生64路位宽为12bit的数据,FPGA将接收的每一路需要的数据个数,存入对应的12位宽的FIFO中;在存数据的同时,将FIFO中的数据依次读出;现有技术中,对64路数据在FPGA内部进行算法处理使得每一路得到16个20bit的数据,进一步的,将20bit的数据以最高位扩展成32bit,再将16个32bit的数据拼在一起得到了一个512数据,最后通过PCEI传输给上位机。
现有技术中,在FPGA内部进行算法处理时,消耗了大量的FPGA内部资源,另外,算法在FPGA内部实现,精度不高,也不灵活;进一步的,将20bit扩展成32bit,浪费了12bit,也就是在进行PCIE传输时,浪费了传输带宽。
发明内容
为解决上述技术问题,本发明的目的在于提供一种提高超声设备接口传输利用率的方法及系统。
为了实现上述发明目的之一,本发明一实施方式提供一种提高超声设备接口传输利用率的方法,所述方法包括:S1、将自AFE芯片接收的每一路数据依次写入每一通路对应的第一FIFO寄存器中,所述通路的数量N≥16,每一通路的位宽W相同,且0bit≤W≤16bit,所有通路对应的第一FIFO寄存器的位宽W1相同,且W1=W;
S2、顺序读取每一第一FIFO寄存器中存储的数据,并将其按照从低位至高位的顺序写入当前通路对应的第二FIFO寄存器,所有通路对应的第二FIFO寄存器的位宽W2相同,W2的取值为32*M,M为正整数,且32*M≤W3,W3为PCIE开放接口的位宽;
S3、按照数据写入每一第二FIFO寄存器的顺序,分别将与每一第二FIFO寄存器位宽相同的数据依次拼接成若干个32*M位的数据,并按照其拼接顺序分别自同一序号开始顺序编号;
S4、按照通路顺序排序的次序将编号相同的32*M位的数据自低位至高位排列为数据组,其中,32*M位的数据的编号越低,其形成的数据组号越低;
按照组号自低至高的顺序将数据组自低位至高位顺序排列形成数据序列;
自数据序列的低位至高位依次拼接为位宽为W3的数据顺序输出。
作为本发明一实施方式的进一步改进,所述方法还包括:配置所述通路的数量N取值为64,所述通路的位宽W1取值为12bit。
作为本发明一实施方式的进一步改进,所述方法还包括:配置M的取值为1,第二FIFO寄存器的位宽W2的取值为32bit,PCIE开放接口W3的位宽取值为512bit。
作为本发明一实施方式的进一步改进,所述方法还包括:若任一通路上的最后一个32*N位的数据未拼接完整,则在该数据的高位补零,使其形成完整的32*N位的数据。
作为本发明一实施方式的进一步改进,所述方法还包括:若最后一个位宽为W3的数据未拼接完整,则在该数据的高位补零,使其形成完整的W3位的数据。
为了实现上述发明目的之一,本发明一实施方式提供一种提高超声设备接口传输利用率的系统,所述系统包括:存储模块,所述存储模块包括:第一FIFO寄存器、第二FIFO寄存器;
第一写入模块,用于将自AFE芯片接收的每一路数据依次写入每一通路对应的第一FIFO寄存器中,所述通路的数量N≥16,每一通路的位宽W相同,且0bit≤W≤16bit,所有通路对应的第一FIFO寄存器的位宽W1相同,且W1=W;
第二写入模块,用于顺序读取每一第一FIFO寄存器中存储的数据,并将其按照从低位至高位的顺序写入当前通路对应的第二FIFO寄存器,所有通路对应的第二FIFO寄存器的位宽W2相同,W2的取值为32*M,M为正整数,且32*M≤W3,W3为PCIE开放接口的位宽;
拼接模块,用于按照数据写入每一第二FIFO寄存器的顺序,分别将与每一第二FIFO寄存器位宽相同的数据依次拼接成若干个32*M位的数据,并按照其拼接顺序分别自同一序号开始顺序编号;
排序输出模块,用于按照通路顺序排序的次序将编号相同的32*M位的数据自低位至高位排列为数据组,其中,32*M位的数据的编号越低,其形成的数据组号越低;
按照组号自低至高的顺序将数据组自低位至高位顺序排列形成数据序列;
自数据序列的低位至高位依次拼接为位宽为W3的数据顺序输出。
作为本发明一实施方式的进一步改进,所述第一写入模块还用于:配置所述通路的数量N取值为64,所述通路的位宽W1取值为12bit。
作为本发明一实施方式的进一步改进,第二写入模块还用于配置M的取值为1,第二FIFO寄存器的位宽W2的取值为32bit;
排序输出模块还用于配置PCIE开放接口W3的位宽取值为512bit。
作为本发明一实施方式的进一步改进,拼接模块还用于:若任一通路上的最后一个32*N位的数据未拼接完整,则在该数据的高位补零,使其形成完整的32*N位的数据。
作为本发明一实施方式的进一步改进,排序输出模块还用于:若最后一个位宽为W3的数据未拼接完整,则在该数据的高位补零,使其形成完整的W3位的数据。
与现有技术相比,本发明的有益效果是:本发明的提高超声设备接口传输利用率的方法及系统,通过在每一通路上配置两组不同位宽的FIFO寄存器对数据进行初步拼接,再根据PCIE开放接口的位宽对数据进行重新排序,可以传输更多的数据,提高PCIE传输带宽的利用率,同时,降低了FPGA数据处理复杂度,节约了FPGA资源,降低FPGA芯片的成本,提高超声设备的计算精度。
附图说明
图1是本发明一实施方式提供的提高超声设备接口传输利用率的方法的流程示意图;
图2是本发明一具体示例的数据传输流程示意图;
图3是本发明一实施方式提供的提高超声设备接口传输利用率的系统的模块示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1所示,本发明一实施方式提供的提高超声设备接口传输利用率的方法,所述方法包括:
S1、将自AFE芯片接收的每一路数据依次写入每一通路对应的第一FIFO寄存器中,所述通路的数量N≥16,每一通路的位宽W相同,且0bit≤W≤16bit,所有通路对应的第一FIFO寄存器的位宽W1相同,且W1=W;
S2、顺序读取每一第一FIFO寄存器中存储的数据,并将其按照从低位至高位的顺序写入当前通路对应的第二FIFO寄存器,所有通路对应的第二FIFO寄存器的位宽W2相同,W2的取值为32*M,M为正整数,且32*M≤W3,W3为PCIE开放接口的位宽;
S3、按照数据写入每一第二FIFO寄存器的顺序,分别将与每一第二FIFO寄存器位宽相同的数据依次拼接成若干个32*M位的数据,并按照其拼接顺序分别自序号0开始顺序编号;
S4、按照通路顺序排序的次序将编号相同的32*M位的数据自低位至高位排列为数据组,其中,32*M位的数据的编号越低,其形成的数据组号越低;
按照组号自低至高的顺序将数据组自低位至高位顺序排列形成数据序列;
自数据序列的低位至高位依次拼接为位宽为W3的数据顺序输出。
本发明具体实施方式中,超声诊断设备包括上位机及超声探测装置,其中,超声探测装置采用FPGA内部的高速传输接口与上位机进行连接、交互;上位机通过接口向超声探测装置传送控制信号,同时超声探测装置将接收到的数据通过接口传输给上位机,上位机用于控制超声探测装置并显示图像。
结合图2所示,本发明一具体示例中,该示例中,FPGA接收前端AFE芯片传递的数据,并将接收的数据以512bit的形式通过PCIE传输给上位机。上位机接收数据后,进行相应的算法处理。以下内容将描述FPGA如何将数据传输给上位机。
本发明一较佳实施方式中,所述方法还包括:配置所述通路的数量N取值为64,所述通路的位宽W1取值为12bit;配置M的取值为1,第二FIFO寄存器的位宽W2的取值为32bit,PCIE开放接口W3的位宽取值为512bit。为了便于理解,以下内容中将参考图示进行详细的文字描述。
在该具体示例中,标识为12bit位宽的FIFO代表第一FIFO寄存器,标识为32bit位宽的FIFO代表第二FIFO寄存器。
对应于步骤S1:AFE芯片产生64路位宽为12bit的数据,64个通路依次以Ch0、Ch1、……Ch62、Ch63进行标识;FPGA分别将接收的每一路数据存入其对应的12bit位宽的第一FIFO中。
对应于步骤S2:同时,顺序读取每一第一FIFO寄存器中存储的数据,并将其按照从低位至高位的顺序写入当前通路对应的第二FIFO寄存器,该示例中,将依次拼接形成的每一32bit数据顺序写入该通路对应的32bit位宽的第二FIFO中;在该步骤中,先读出的数据放在低位,后读出的数据顺序放在接下来的位置;本具体示例中,将每一通路自第一FIFO寄存器中读取的第一个12bit的数据放在其对应的第二FIFO寄存器的0至11位,读出的第二个12bit的数据放在其对应的第二FIFO寄存器的12至23位,读出的第三个12bit数据的低8位放在第一个32bit的第二FIFO寄存器的第24到第31位,这样就凑成了第一个32bit的数据,写入32bit位宽的第二FIFO中;之后,依次将第三个12bit多出来的高4位,放在第二FIFO寄存器的第二个32bit的第0至3位,读出的第四个12bit数据放在第二FIFO寄存器的第二个32bit的第4至15位,读出的第五个12bit数据放在第二FIFO寄存器的第二个32位的第16至27位,读出的第六个12bit数据低4位放在第二FIFO寄存器的第二个32位的第28位至31位,这样就凑成了第二个32bit的数据,存入32bit位宽的第二FIFO中。再之后,将第6个12bit的高8位,放在第二FIFO寄存器的第三个32bit的第0至7位,读出的第七个12bit数据放在第二FIFO寄存器的第三个32bit的第8至19位,读出的第8个12bit数据放在第二FIFO寄存器的第三个32bit的第20至31位,这样就凑成第三个32bit的数据,存入32bit位宽的第二FIFO寄存器中;后续传输过程中,每一通路的每一12bit数据都按照上述方法操作,最后,每一路生成的32bit数据都对应存在相应的FIFO中,如图中第0路存储在FIFO0中,第一路存储在FIFO1中,依次到第63路存在FIFO63中。
需要说明的是,当第一FIFO寄存器中的最后一个12bit的数据写入第二FIFO寄存器后,当前通路中的最后一个32位数据可能不是一个完整数据,为了避免数据出错,如此,本发明较佳实施方式中,所述方法还包括:若任一通路上的最后一个32*N位的数据未拼接完整,则在该数据的高位补零,使其形成完整的32*N位的数据。
对于步骤S3:每一通路的32位数据自序号1开始排序,将第0路的32位FIFO0中的序号为1的输入数据作为第一个数据data0上传,第1路的32位FIFO1中的序号为1的输入数据作为第二个数据data1上传,直到传送到第63路的32位FIFO63中的序号为1的输入数据作为第六十四个数据data63上传;传完这一轮,开始传送每个FIFO中序号为2的第二个数据,顺序与序号为1的第一个数据传送顺序一样,直到把64个第二FIFO寄存器中的数据传完;本示例中,传输的数据的先后顺序依次为data0,data1,……,data63,data64,data65,……,Data127,……。
上述具体示例中,以PCIE3.0总线是接口为例,即配置W3的值为512bit,如此,在该示例中,拼接的位宽为W3的第一个数据为{data15,data14,data13,data12,data11,data10,data9,data8,data7,data6,data5,data4,data3,data2,data1,data0},第二个数据为{data31,data30,data29,data28,data27,data26,data25,data24,data23,data22,data21,data20,data19,data18,data17,data16},依次类推,直至传输完32位第二FIFO寄存器中的所有数据为止。
需要说明的是,当第二FIFO寄存器中的最后一个32bit的数据拼接完成后,其拼接成的最后一个数据可能不是一个完整数据,为了避免数据出错,如此,本发明较佳实施方式中,所述方法还包括:若最后一个位宽为W3的数据未拼接完整,则在该数据的高位补零,使其形成完整的W3位的数据。
进一步的,当将上述的数据通过PCIE传给上位机后,上位机根据上述的组合方式把每路的12bit数据解析出来,然后送入后续算法功能模块进行相应的处理。本发明仅描述了64路数据的处理方法,在实际应用过程中,AFE传递的通路可能为192路、甚至256路或者更多,当通路变换时,通过上述示例可以毫无疑义的推导出其他示例,故,在此不做进一步赘述,本发明一较佳实施方式中,若传递的通路较多,但实际被有效使用以进行传输数据的通路小于设定的通路时,则可仅选择有效的数据路进行传输。例如:256路AFE12bit的数据,最终只有64路进行数据传输,那么,实际计算过程中,仅需按照上述方式传输64路的数据,其余的数据通道可视为暂时关闭,即做丢弃处理。
结合图3所示,本发明一实施方式中提供的提高超声设备接口传输利用率的系统,所述系统包括:第一写入模块100,第二写入模块200,拼接模块300,排序输出模块以及存储模块500;所述存储模块500包括:第一FIFO寄存器501、第二FIFO寄存器503。
第一写入模块100用于将自AFE芯片接收的每一路数据依次写入每一通路对应的第一FIFO寄存器中,所述通路的数量N≥16,每一通路的位宽W相同,且0bit≤W≤16bit,所有通路对应的第一FIFO寄存器的位宽W1相同,且W1=W。
第二写入模块200用于顺序读取每一第一FIFO寄存器中存储的数据,并将其按照从低位至高位的顺序写入当前通路对应的第二FIFO寄存器,所有通路对应的第二FIFO寄存器的位宽W2相同,W2的取值为32*M,M为正整数,且32*M≤W3,W3为PCIE开放接口的位宽。
拼接模块300用于按照数据写入每一第二FIFO寄存器的顺序,分别将与每一第二FIFO寄存器位宽相同的数据依次拼接成若干个32*M位的数据,并按照其拼接顺序分别自同一序号开始顺序编号。
排序输出模块400用于按照通路顺序排序的次序将编号相同的32*M位的数据自低位至高位排列为数据组,其中,32*M位的数据的编号越低,其形成的数据组号越低;按照组号自低至高的顺序将数据组自低位至高位顺序排列形成数据序列;自数据序列的低位至高位依次拼接为位宽为W3的数据顺序输出。
本发明较佳实施方式中,所述第一写入模块100还用于:配置所述通路的数量N取值为64,所述通路的位宽W1取值为12bit;第二写入模块200还用于配置M的取值为1,第二FIFO寄存器的位宽W2的取值为32bit;排序输出模块400还用于配置PCIE开放接口W3的位宽取值为512bit。
拼接模块300还用于:若任一通路上的最后一个32*N位的数据未拼接完整,则在该数据的高位补零,使其形成完整的32*N位的数据。
排序输出模块400还用于:若最后一个位宽为W3的数据未拼接完整,则在该数据的高位补零,使其形成完整的W3位的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
综上所述,本发明的提高超声设备接口传输利用率的方法及系统,通过在每一通路上配置两组不同位宽的FIFO寄存器对数据进行初步拼接,再根据PCIE开放接口的位宽对数据进行重新排序,可以传输更多的数据,提高PCIE传输带宽的利用率,同时,降低了FPGA数据处理复杂度,节约了FPGA资源,降低FPGA芯片的成本,提高超声设备的计算精度。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以2个或2个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机系统(可以是个人计算机,服务器,或者网络系统等)或处理器(processor)执行本申请各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读寄存器(Read-Only Memory,ROM)、随机存取寄存器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施方式对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施方式技术方案的精神和范围。