基于片上RAM提升多通道有效数据传输的装置及方法与流程

文档序号:11230383阅读:584来源:国知局

本发明属于数据采集存储系统技术领域,更为具体地讲,涉及一种基于片上ram提升多通道有效数据传输的装置及方法。



背景技术:

数字系统采样率越来越高,而高速数据采集系统的实现,无疑对系统采集到的海量数据的存储和处理能力提出了新的要求;每秒有百兆字节的数据流量输入存储器,,但是当存储器具有很大的输出数字带宽的时候,若要通过pci总线、usb接口等快速通讯方式将采样数据传到主机进行处理,则需要巨大总线带宽来实时传输数据,一般的总线或接口都难以做到,因此需要对高速数据进行一级缓存再上传给主机,以减轻总线传输压力和主机处理压力。

经过研究发现,国内基于片上ram多通道数据缓存装置多采用兼容设计的方法,将多通道的数据按照一种兼容控制方式来写入fifo,但这种方法中,fifo中最多可以写入n(n=2x,x>0)个通道的数据,但用户在某种情况下需要缓存q(2x-1<q<n)个通道的数据,这时如果按照兼容控制的方式将q个通道数据写入fifo的时候,同时会写入用户不需要的数据,这样fifo就会存在n-q个通道的冗余数据,在传给主机的时候,有效数据在传给主机的全部数据中所占比率不能达到100%,当然也可以建立n个fifo,将每个通道的数据分别存储,在这种情况下,当用户需要缓存q个通道数据的时候,用户可以从n个fifo中选择q个fifo来存储q个通道数据,这时有效数据在传给主机的全部数据中所占比率达到100%,但是这样主机读取数据的时候需要依次读取q个fifo中的数据,读取速度很慢,因此需要提出一种基于片上ram的数据缓存装置及方法,用于实现数据缓存,提高数据传输效率,方便用户使用。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于片上ram提升多通道有效数据传输的装置及方法,根据用户选择的通道数实现对应通道中的数据缓存及传输,从而提高数据传输效率。

为实现上述发明目的,本发明一种基于片上ram提升多通道有效数据传输的装置,其特征在于,包括:i路的信号调理通道chi、adci模块、大容量存储器、抽点模块s、多路选择器和一个fifo阵列,i=1,2,…,n(n=2x,x≥1),n表示通道路数;

信号调理通道chi与对应的adci模块连接,将对应通道内的数据流输入至adci模块,adci模块将数据流进行模数变化后,输入至大容量存储器进行存储,之后送给抽点模块s,抽点模块s对数字数据流进行抽点处理,得到降低频率的数字数据流并发送至多路选择器,多路选择器根据用户指令选择缓存数据的通道数,再将选出的通道中对应的数据发送至fifo阵列缓存,最后fifo阵列根据用户选择的通道数将缓存数据依次回传给主机。

进一步的,利用上述装置提升多通道有效数据传输效率的方法,其特征在于,包括以下步骤:

(1)、将信号调理通道chi中的输入信号输入至对应的adci模块,adci模块将接收到的输入信号转化为数字信号datai,并发送至大容量存储器进行存储;

(2)、大容量存储器对接收得到的数字信号datai进行存储,当用户主机需要数据时,大容量存储器将存储数据c_datai发送至抽点模块;

(3)、抽点模块s对接收得到的数据c_datai进行抽点处理,得到降低频率的数字信号s_datai,并发送至多路选择器;

(4)、多路选择器根据用户指令选择缓存数据的通道数,将选出的通道中对应的数据发送至fifo阵列;

(5)、fifo阵列根据用户选择的缓存数据通道数来选择不同数量、不同位宽的fifo进行缓存,实现fifo中的数据全部为有效数据,最后fifo阵列根据用户选择的通道数将缓存数据依次回传给主机。

其中,用户选择缓存数据的通道数的方法为:

当用户选择通道数为i,如果i<n时,i用二进制码表示为i=(dbdb-1...d1d0)2,且db∈{0,1},则从二进制编码的最低位到最高位的顺序依次标记,当第b位db为1时,b≥0,则2b个通道的数据存储在第b个fifo中,对应i个通道中的通道编号为[2b+1-1,2b],其中,[2b+1-1,2b]表示i个通道中的第2b个通道到第2b+1-1个通道;当第b位db为0时,则没有数据写入第b个fifo中;

如果i=n时,i用二进制码表示为i=(dbdb-1...d1d0)2+(1)2,且db∈{1},则从二进制编码的最低位到最高位的顺序依次标记,当d0=1时,则1个通道的数据存储在第1个fifo中,对应i个通道中的通道编号为[1,1]-;当d1=1时,则2个通道的数据存储在第2个fifo中,对应i个通道中的通道编号为[3,2];当d2=1时,则4个通道的数据存储在第3个fifo中,对应i个通道中的通道编号为[7,4]-;并依次类推,第n个通道数据存储在第x+1个fifo;

如果i>n时,舍弃。

本发明的发明目的是这样实现的:

本发明一种基于片上ram提升多通道有效数据传输的装置及方法,通过adc模块对对应信号调理通道的输入信号进行模数转换,存到大容量存储器中,当用户需要数据时,数据被读出大容量存储器,再通过抽点模块对数字信号抽点,使所有通道的数据流的降低频率,多路选择器根据用户选择的缓存数据的通道数,将选出通道对应的数据流发送给对应的不同数量、不同输入位宽的fifo进行缓存。

同时,本发明一种基于片上ram提升多通道有效数据传输的装置及方法还具有以下有益效果:

(1)、当用户选择的通道数为2y(y=0,1,2...,2y<n)时,本发明可实现连续传输大量数据,而不受fifo容量的限制。

(2)、由于用户选择的通道数不一样,本发明可实现用户选择不同的通道数时fifo中存储的全是有效数据,而不浪费资源存储冗余数据,进而在传给主机的时候使有效数据在全部数据中占有的比例为100%。

附图说明

图1是本发明基于片上ram提升多通道有效数据传输的原理图;

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明基于片上ram提升多通道有效数据传输的原理图。

在本实施例中,如图1所示,本发明基于片上ram提升多通道有效数据传输的装置包括16路的多路选择器、adc模块、大容量存储器和抽点模块,以及一个fifo阵列,其中,多路选择器和fifo阵列均在同一片fpga中实现,每路adc模块adci、抽点模块s对应一个输入信号通道,i=1,2,…,16。

下面结合该装置,对提升16通道有效数据传输效率的方法进行详细说明,包括以下步骤:

s1、将信号调理通道chi中的输入信号输入至对应的adci模块,i=1,2,…,16,adci模块将接收到的输入信号转化为数字信号datai,并发送至大容量存储器。

s2、大容量存储器对接收得到的数字信号datai进行存储,当用户主机需要数据时,大容量存储器将数据c_datai发送至抽点模块;

s3、抽点模块s对接收得到的数字信号c_datai进行抽点处理,得到降低频率的数字信号s_datai,并发送至多路选择器;

大容量存储器具有很大的数字带宽,每个时钟周期输出数据数据位宽很大,所以数据输出大容量存储器时,需要巨大总线带宽来实时传输数据,一般的总线或接口都难以做到,因此需要抽点模块s改变采样率,从而使数字信号降低速率。

s4、多路选择器根据用户选择的缓存数据通道数,将选出的通道中对应的数据发送至fifo阵列;

fifo阵列共有x+1个fifo,其中,第t个fifo的数据输入位宽为2t-1k位,可以存储2t-1个通道的数据,第x+1个fifo的数据输入位宽为k位,可以存储1个通道的数据,其中,k为adc的输出数据位宽,1≤t≤x。

s5、fifo阵列根据用户选择缓存数据的通道数来选择不同数量、不同位宽的fifo进行缓存;

在本实施例中,总通道数为n,且n=2x(x=1,2,...),将总通道数用二进制表示为下面对用户选择缓存数据的通道数的方法进行详细说明,具体为:

当i<n时,用户选择通道数为i,i用二进制码表示为i=(dbdb-1...d1d0)2,且db∈{0,1},(b=0,1,2,...)。从二进制编码的最低位到最高位的顺序依次标记,当第b位db为1时,则2b个通道的数据存储在第b个fifo中,对应i个通道中的通道编号为[2b+1-1,2b],其中,[2b+1-1,2b]表示i个通道中的第2b个通道到第2b+1-1个通道;当第b位db为0时,则没有数据写入第b个fifo中。

当i=n时,i用二进制码表示为m=(dbdb-1...d1d0)2+(1)2,且db∈{1}。从二进制编码的最低位到最高位的顺序依次标记,当d0=1时则1个通道的数据存储在第1个fifo中,对应i个通道中的通道编号为[1,1],其中[p,q]表示i个通道中的第q个通道到第p个通道当d1=1时则2个通道的数据存储在第2个fifo中,对应i个通道中的通道编号为[3,2],当d2=1时则4个通道的数据存储在第3个fifo中,对应i个通道中的通道编号为[7,4],依次类推。第n个通道数据存储在第x+1个fifo;

如果i>n时,舍弃。

最后fifo阵列根据用户选择的通道数将缓存数据依次回传给主机。

实例

为了更好地说明本发明的技术效果,采用一个具体实施例进行实验验证。用户选择i(1,2,3...16)通道的数据传回主机。

基于片上ram的16通道数据传输装置中,adc分辨率为16bit,输入数据流的位宽是256bit,fifo阵列共有5个fifo,2个编号为a和b存储深度为16bit×2k的fifo,输入分别为a_in,b_in,位宽为16bit;1个编号为c存储深度为32bit×2k的fifo,输入为c_in,位宽为32bit;1个编号为d存储深度为64bit×2k的fifo,输入分别为d_in,位宽为64bit;1个编号为e存储深度为128bit×2k的fifo,输入分别为e_in,位宽为128bit;所有fifo的输出位宽是32bit。

当用户选择i=1时,用户选择传输1个通道的数据回主机,多路选择器输入数据的[255:240]输出,送到编号为a的fifo中;当fifo存储满数据之后,主机读走全部缓存数据。

当用户选择i=2时,用户选择传输2个通道的数据回主机,多路选择器输入数据的[255:224]输出,送到编号为c的fifo中;当fifo存储满数据之后,主机读走全部缓存数据。

当用户选择i=3时,用户选择传输3个通道的数据回主机,多路选择器输入数据的[255:208]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:208]送到编号为c的fifo中;两个fifo将会同时装满,之后主机依次全部读到主机缓冲区。

当用户选择i=4时,用户选择传输4个通道的数据回主机,多路选择器输入数据的[255:192]输出,其中输入数据的[255:192]送到编号为d的fifo中;当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=5时,用户选择传输5个通道的数据回主机,多路选择器输入数据的[255:176]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:176]送到编号为d的fifo中,两个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=6时,用户选择传输6个通道的数据回主机,多路选择器输入数据的[255:160]输出,其中输入数据的[255:224]送到编号为c的fifo中;输入数据的[223:160]送到编号为d的fifo中,两个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=7时,用户选择传输7个通道的数据回主机,多路选择器输入数据的[255:144]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:208]送到编号为c的fifo中,输入数据的[207:144]送到编号为d的fifo中;三个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=8时,用户选择传输8个通道的数据回主机,多路选择器输入数据的[255:128]输出,其中输入数据的[255:128]送到编号为e的fifo中,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=9时,用户选择传输9个通道的数据回主机,多路选择器输入数据的[255:112]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:112]送到编号为e的fifo中,两个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=10时,用户选择传输10个通道的数据回主机,多路选择器输入数据的[255:96]输出,其中输入数据的[255:224]送到编号为c的fifo中;输入数据的[223:96]送到编号为e的fifo中,两个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=11时,用户选择传输11个通道的数据回主机,多路选择器输入数据的[255:80]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:208]送到编号为c的fifo中,输入数据的[207:80]送到编号为e的fifo中,三个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=12时,用户选择传输12个通道的数据回主机,多路选择器输入数据的[255:64]输出,其中输入数据的[255:192]送到编号为d的fifo中;输入数据的[191:64]送到编号为e的fifo中,两个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=13时,用户选择传输13个通道的数据回主机,多路选择器输入数据的[255:48]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:176]送到编号为d的fifo中,输入数据的[175:48]送到编号为e的fifo中,三个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=14时,用户选择传输14个通道的数据回主机,多路选择器输入数据的[255:32]输出,其中输入数据的[255:224]送到编号为c的fifo中;输入数据的[223:160]送到编号为d的fifo中,输入数据的[159:32]送到编号为e的fifo中,三个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=15时,用户选择传输15个通道的数据回主机,多路选择器输入数据的[255:16]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:208]送到编号为c的fifo中,输入数据的[207:144]送到编号为d的fifo中,输入数据的[143:16]送到编号为e的fifo中,四个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

当用户选择i=16时,用户选择传输16个通道的数据回主机,多路选择器输入数据的[255:0]输出,其中输入数据的[255:240]送到编号为a的fifo中;输入数据的[239:208]送到编号为c的fifo中,输入数据的[207:144]送到编号为d的fifo中,输入数据的[143:16]送到编号为e的fifo中,输入数据的[15:0]送到编号为b的fifo中,五个fifo将会同时装满,当fifo存储满数据之后,之后主机依次全部读到主机缓冲区。

根据以上说明可知,本发明基于片上ram的多通道数据传输效率装置与现有的兼容设计的技术方案不同,以本实施例为例,当用户选择传回主机的通道数为1-16任意一种,有效数据在传输的全部数据中占有的比例全部是100%。因此,本发明能够提升可变多通道数据传输效率,从而提高示波记录仪的传输效率。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1