快速数据采集循环累加方法及系统的制作方法

文档序号:6634673阅读:413来源:国知局
快速数据采集循环累加方法及系统的制作方法
【专利摘要】本发明涉及数据采集处理【技术领域】,具体地说是一种快速数据采集循环累加方法及系统,其包括:PC机向FPGA下发配置参数,采样周期生成模块生成采样周期信号t并送给累加控制模块;累加控制模块生成两个相差T/2的新采样周期信号t1和t2,第一累加操作模块根据采样周期信号t1与第一双端口存储器配合工作,直至循环次数达到要求的累加次数,停止累加;第二累加操作模块与第二双端口存储器配合工作,直至循环次数是否达到要求的累加次数,停止累加;数据选择器按先后顺序将数据上传至PC机,本发明所述的方法与传统方法相比并没有占用额外的硬件资源,在数据的实时性和准确性得到保障的同时节省了2倍的累加时间。
【专利说明】快速数据采集循环累加方法及系统

【技术领域】
[0001]本发明涉及数据采集及处理【技术领域】,具体地说是一种特别适用于传感监测系统的能够显著提高数据处理速度和精度的快速数据采集循环累加方法及系统。

【背景技术】
[0002]信息社会的发展,在很大程度上取决于信息与信号处理技术的先进性。数字信号处理技术的出现改变了信息与信号处理技术的整个面貌,而数据采集是作为数字信号处理必不可少的前期工作,在整个数字系统中起到关键性、乃至决定性的作用。目前,各类传感监测系统对底层的数据采集处理功能要求也是日益增高,主要集中表现在对数据采集的实时性、处理速度和数据精度方面的要求。以光纤传感测温系统为例,数据采集量大,信噪比要求高,需要对数据进行周期循环采集累加来降低噪声的影响,由于总线接口和计算机处理器处理能力受限,需要底层数据采集卡来完成循环累加处理,因为采用底层累加方式不仅数据处理时间短而且只需占用一个周期的数据空间即可。
[0003]数据循环累加就是对一组实时信号进行周期式的反复采集并进行累加。每一周期的数据采集累加时间称为累加周期。累加周期内采集的有效数据个数不能大于最大采样点数。最大采样点数=累加周期/采样频率。对于累加周期长,采集有效数据小于最大采样点数的,循环累加处理较为简单,为了提升速度往往采用流水线的方式进行累加。而对于时序要求特别严格的系统,比如光纤传感测温测应力的长距离系统,因为要实现长距离的测量,所以实际信号很微弱噪声大,数据累加处理是必不可的,数据处理要求也更为严格,需要采集有效数据必须等于最大采样点数,实现循环累加就有一个极大问题存在。因为循环累加需要一个双端口的存储器实现每周期累加结果的存放和下个周期累加的数据提取功能,这部分的操作需要时钟控制,这样就避免不了延时的存在,这种器件工作延时导致每个周期的数据不能严格对齐而产生错位累加,而且随着累加次数的增加这样错位是依次递进的,即次数越多错位就越多,最终的结果当然都是错的。这个问题在流水线累加方式更为凸显,流水线级数越多每次错位的个数也越多。如附件的图1所示,数据采样周期为T,最大采样点数为N,即图中ADC采样数据为dl,d2,……,dN。累加操作读取数据最少要占用一个点的时间,如果采用流水线累加方式,占用的点数与流水线的级数有关,这里用M表示。在第一个累加周期内,累加模块是采样的ADC数据存入寄存器,在第二个累加周期的时间再将其从存储器里读出来与新采集的ADC数据相加,而实际累加数据是在采集第M个点的时候才有真正的累加和数据。通常累加周期等于采样周期,所以如果系统要求采样点数为N,则第二个累加周期累加就会错位M个点,第三个累加周期会错位2M个点,后面依次成倍错位。
[0004]底层累加常用的解决方法就是牺牲一个累加周期的时间,如附图中的图2所示。即两个数据采样周期完成一个周期的数据采集和累加,这样将两个周期变成一个完整信号的大周期,从图2可见,ADC采样数据多采了 M个点来拟补前端抛掉的累加的空点,保证N个点的累加和的刚好完成。从图2所描述的时序图不难发现,这种方法不仅导致累加时间加倍,而且每次累加都丢失一组数据,影响数据准确度。这个缺陷的存在导致很多传感监测系统功能受到影响。像周界防入侵系统,虽然累加次数较少,但对数据的实时性要求较高,应用这种方法会丢失数据无法进行实时显示和报警。长距离光纤测温系统,单周期数据量大,累加次数几十万,如果应用这种方法,需要分钟级别的累加时间,这对消防类产品是个致命的问题。


【发明内容】

[0005]本发明针对现有技术中存在的缺点和不足,提出了一种特别适用于传感监测系统的能够显著提高数据处理速度和精度的快速数据采集循环累加方法及系统。
[0006]本发明可以通过以下措施达到:
一种快速数据采集循环累加方法,其特征在于包括以下步骤:
步骤1: PC机向FPGA下发配置参数,这些参数包括:采样周期、采样点数和累加次数;步骤2:采样周期生成模块根据下发的采样周期参数生成相应的采样周期信号t (周期为T)给累加控制模块;
步骤3:累加控制模块将采样周期信号t 二分频,并做半个采样周期T/2的延时处理,从而生成两个相差T/2的新采样周期信号tl和t2 (周期为T/2),分别送给所述的第一累加操作模块和第二累加操作模块。其中,第二累加操作模块的采样周期信号t2比第一累加操作模块的采样周期信号tl延迟T/2 ;
步骤4:第一累加操作模块根据采样周期信号tl采用流水线方式与第一双端口存储器配合,两个采样周期信号tl为一个累加周期,对每个采样周期t的前半段数据(前1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加;
步骤5:第二累加操作模块根据采样周期信号t2采用流水线方式与第二双端口存储器配合工作,两个采样周期信号t2为一个累加周期,对每个采样周期t的后半段数据(后1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加;
步骤6:数据选择器按先后顺序将数据上传至PC机,先传第一双端口存储器模块的数据,后传第二双端口存储器的数据。
[0007]本发明还提出了一种采用如上快速数据采集循环累加方法的系统,其特征在于设有ADC采集单元、FPGA和PC机,所述FPGA包括采样周期生成模块、累加控制模块、第一累加操作模块、第二累加操作模块、第一双端口存储器、第二双端口存储器和数据选择模块,其中PC机与FPGA相连接,ADC采集单元分别与第一累加操作模块、第二累加操作模块相连接,采样周期生成模块的输出端与累加控制模块相连接,累加控制模块的输出端分别于第一累加操作模块、第二累加操作模块相连接,第一累加操作模块与第一双端口存储器相连接,第二累加操作模块与第二双端口存储器相连接,第一双端口存储器和第二双端口存储器的输出端经数据选择模块送入PC机。
[0008]本发明所述的方法与传统方法相比并没有占用额外的硬件资源,在数据的实时性和准确性得到保障的同时节省了 2倍的累加时间。

【专利附图】

【附图说明】
[0009]附图1是循环累加存在问题错位问题的时序说明图。
[0010]附图2是现有技术中解决循环错位问题的方法的时序说明图。
[0011]附图3是本发明的系统框图。
[0012]附图4是本发明中实施例的主要时序图。
[0013]附图5是本发明的工作流程图。
[0014]附图标记:ADC采集单元301、PC机302、FPGA303、采样周期生成模块304、累加控制模块305、第一累加操作模块306、第二累加操作模块307、第一双端口存储器模块308、第二双端口存储器模块309、数据选择模块310。
[0015]【具体实施方式】:
下面结合附图和实施例对本发明进一步说明。
[0016]本发明【具体实施方式】描述如下:
如附图3所示,此系统包括ADC采集单元301、PC机302和FPGA303。其中FPGA303包括采样周期生成模块304、累加控制模块305、第一累加操作模块306、第二累加操作模块307、第一双端口存储器模块308、第二双端口存储器模块309和数据选择模块310。
[0017]如图3所示,它们之间的连接方式和主要功能如下:
ADC采集单元301与第一累加操作模块306和第二累加操作模块307相连,向第一累加操作模块306和第二累加操作模块307发送相同的ADC米样数据和米样时钟信号。
[0018]采样周期生成模块304与累加控制模块305相连,生成采样周期信号送给累加控制模块305。
[0019]累加控制模块305与第一累加操作模块306和第二累加操作模块307相连,生成两个新的采样周期信号分别给第一累加操作模块306和第二累加操作模块307。
[0020]第一累加操作模块306与第一双端口存储器308相连,每个累加周期第一累加操作模块306从第一双端口存储器308读取上个周期的累加结果与新采样数据进行累加同时将新的累加结果存入第一双端口存储器308中,全部累加结束之后的最终结果也存入第一双端口存储器308中。
[0021]第二累加操作模块307与第二双端口存储器模块309相连,每个累加周期第二累加操作模块307从第二双端口存储器模块309读取上个周期的累加结果与新采样数据进行累加同时将新的累加结果存入第二双端口存储器模块309中,全部累加结束之后的最终结果也存入第二双端口存储器模块309中。
[0022]第一双端口存储器308和第二双端口存储器309都与数据选择模块310相连。
[0023]数据选择模块310与PC机302相连,先将第一双端口存储器308的数据传给PC机302,再将第二双端口存储器309的数据传给PC机302。
[0024]其中,ADC采集单元301是模数转换电路,用于将光纤、气体、压力等传感器采集的模拟信号转换成数字信号传给FPGA303进行处理。里面所选用的A/D芯片根据系统需要的采样精度和速度选用合适的位数和采样速率的芯片。
[0025]PC机302用于接收最终的累加结果数据,对数据进行各种算法分析。可以是主计算机,也可以是嵌入式计算机。
[0026]FPGA303用来实现循环累加功能,是实现整个系统和方法的核心器件。该器件的选择主要包括内部RAM块的数量和I/O引脚数。内部RAM块用来构造第一双端口存储器308和第二双端口存储器模块309,它的数量决定了可存储的最大采样点数。I/O引脚数决定可连接的ADC采集单元301的路数,本发明实例描述的都是单路采集系统,可以作成一个IP核,功能扩展强,多路实现方式只需对该系统进行复用或者直接调用封装好的IP核。
[0027]附图4是本实施例的主要时序图,是实现快速循环累加的关键部分,如图所示: Sample_cycle401表示数据采样周期信号,周期为T,ADC_clk402表示ADC采样时钟信号,ADC_data[n:0]403 表示 ADC 采样数据。ADC_clk402 和 ADC_data[n:0]403 是--
对应的,总数为N,对应Sample_cycle401中一个采样周期的最大采样点数。Front_sum_cycle404表示前半段数据的采样周期信号,周期为T/2, Latter_sum_cycle407表示后半段数据的采样周期信号,周期为T/2。ADC_regl[n:0]405为第一累加操作模块306中的ADC数据暂存寄存器,Sum_regl[n:0]406为第一累加操作模块306中的累加结果暂存寄存器。ADC_reg2 [η: O] 408为第二累加操作模块307中的ADC数据暂存寄存器,Sum_reg2 [η: O] 409为第二累加操作模块307中的累加结果暂存寄存器。
[0028]本发明提供的快速循环累加方法是为了解决图1存在的错位问题和图2存在的时间成倍问题。所述的快速循环累加方法如下:
首先,将 Sample_cycle401 进行二分频生成 Front_sum_cycle404 信号,再将 Front_sum_cycle404 延迟 T/2 的时间生成 Latter_sum_cycle407 信号。
[0029]然后,将Front_sum_cycle404 和 Latter_sum_cycle407 分别送给两个累加操作模块,作为累加操作的控制信号。一个采样周期总共需要采集的ADC数据有N个,用dl,d2,……,dN表示。在此将其分成两等份,即dl,……,dN/2和d(N/2+l),……,dN。
[0030]第一累加操作模块306以Front_sum_cycle404第一个上升沿为起点开始采集,ADC_regl [η:O]405采集到第Ν/2+Μ点时停止采集,多出的M个点是累加延时造成的M个点延时,因为累加操作分为取数据、相加和存放数据三部分,单次累加最少要一个采样时钟,即一个点的延迟,如果使用流水线操作,延时点会更多,这里用M表示。因此累加过程前直至第M采样时钟Sum_regl [η:O]406才实现了第一个累加和的转换,到第Ν/2+Μ采样时钟正好完成dl,......,dN/2数据的第一次累加操作,并生成一个单次累加结束的标志,这时第一累加操作模块306内部会以这个单次累加结束标志为基准捕获下一个Fr0nt_Sum_cycle404的上升沿重复上面的累加操作。第一个累加周期结束后Sum_regl [n:0]406存入第一双端口存储器308中的数据是SI= dl,S2= d2,……,SN/2=dN/2。第二个累加周期结束之后第一双端口存储器308中的数据就是是SI= 2dl,S2= 2d2,……,SN/2=2dN/2。后面依次倍增,直至最后的累加结束。所以说第一累加操作模块306是完成了 ADC的前半段数据的采集和循环累加。
[0031]利用FPGA的模块复用性,第二累加操作模块307是对第一累加操作模块306的复用,只是输入的采样周期信号是Latter_sum_cycle407,是以Latter_sum_cycle407的第一个上升沿为起点开始采集,Latter_sum_cycle407的起始沿比Front_sum_cycle404的起始沿晚T/2。所以ADC_reg2[n:0]408采集的数据是d(N/2+l),……,d(_。N次累加结束之后Sum_reg2[n:0]409存入第二双端口存储器309中的数据就是是SI= Nd(N/2+l),S2= Nd(N/2+2),……,SN/2=NdN。所以说第二累加操作模块307是完成了 ADC的后半段数据的采集和循环累加。
[0032]最后只需将第一双端口存储器308和第二双端口存储器309中的数据按先后顺序传给PC机,就完成了完整的循环累加操作。将图4与图2相比较,不难看出本发明提出的快速循环累加方法是将单路ADC的采样数据分成双路累加,即将一个完整的采样周期T分成两个小的采样周期T/2,这样合成的累加周期还是T,进行N次循环累加,花费的总时间是ΝΤ+Τ/2?NT (Τ 一般都小于ms级),而采用图2方式,N次循环需要的总时间为2NT,相当于2倍的关系,优势还是相当明显的。
[0033]附图5是本发明的工作流程图,主要步骤如下:
步骤501:PC机向FPGA下发配置参数,这些参数包括:采样周期、采样点数和累加次数。
[0034]步骤502:采样周期生成模块根据下发的采样周期参数生成相应的采样周期信号给累加控制模块。
[0035]步骤503:累加控制模块将采样周期二分频,并做半个采样周期的延时处理,从而生成两个相差半个采样周期的新采样周期信号,分别送给两个累加操作模块。
[0036]步骤504:两个累加操作模块根据各自的新采样周期信号采用流水线方式与双端口存储器配合,两个新采样周期为一个累加周期,分别对前/后半段数据(1/2采样点数)进行循环采集累加。
[0037]步骤505:判断累加循环次数是否达到要求的累加次数,如果没有达到累加次数就进入步骤504继续进行循环累加操作,如果达到累加次数就停止累加进入步骤506。
[0038]步骤506:数据选择器按先后顺序将数据上传至PC机,先传前半段数据,后传后半段数据。
[0039]经实际测试证明,本发明所述的方法与其他方法相比并没有占用额外的硬件资源,数据的实时性和准确性得到保障的同时节省了 2倍的累加时间。并且本发明所述的系统和方法目前一直应用在本公司的各类光纤传感测温系统产品,效果显著。
[0040]本发明所述方法简单,在FPGA内部实现,易于实现且无需额外硬件资源需求,可移植性强,易于功能扩展。上述实施方式描述的是单路采集系统,多路实现方式只需对该系统进行复用或者直接做成一个IP核,直接调用封装好的IP核。因为所述系统和方法适用于各类数据采集系统,所以任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
【权利要求】
1.一种快速数据采集循环累加方法,其特征在于包括以下步骤: 步骤1: PC机向FPGA下发配置参数,这些参数包括:采样周期、采样点数和累加次数;步骤2:采样周期生成模块根据下发的采样周期参数生成相应的采样周期信号t (周期为T)给累加控制模块; 步骤3:累加控制模块将采样周期信号t 二分频,并做半个采样周期T/2的延时处理,从而生成两个相差T/2的新采样周期信号tl和t2 (周期为T/2),分别送给所述的第一累加操作模块和第二累加操作模块。其中,第二累加操作模块的采样周期信号t2比第一累加操作模块的采样周期信号tl延迟T/2 ; 步骤4:第一累加操作模块根据采样周期信号tl采用流水线方式与第一双端口存储器配合,两个采样周期信号tl为一个累加周期,对每个采样周期t的前半段数据(前1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加; 步骤5:第二累加操作模块根据采样周期信号t2采用流水线方式与第二双端口存储器配合工作,两个采样周期信号t2为一个累加周期,对每个采样周期t的后半段数据(后1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加; 步骤6:数据选择器按先后顺序将数据上传至PC机,先传第一双端口存储器模块的数据,后传第二双端口存储器的数据。
2.一种采用如权利要求1所述快速数据采集循环累加方法的系统,其特征在于设有ADC采集单元、FPGA和PC机,所述FPGA包括采样周期生成模块、累加控制模块、第一累加操作模块、第二累加操作模块、第一双端口存储器、第二双端口存储器和数据选择模块,其中PC机与FPGA相连接,ADC采集单元分别与第一累加操作模块、第二累加操作模块相连接,采样周期生成模块的输出端与累加控制模块相连接,累加控制模块的输出端分别于第一累加操作模块、第二累加操作模块相连接,第一累加操作模块与第一双端口存储器相连接,第二累加操作模块与第二双端口存储器相连接,第一双端口存储器和第二双端口存储器的输出端经数据选择模块送入PC机。
【文档编号】G06F7/50GK104461448SQ201410658754
【公开日】2015年3月25日 申请日期:2014年11月18日 优先权日:2014年11月18日
【发明者】王建强, 史振国, 夏俊玲, 贺春芝, 张永臣, 于娟, 张凯, 李德和, 刘伟, 乔秋晓, 王秀亮, 姜昌海 申请人:威海北洋光电信息技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1