CN104461448A - 快速数据采集循环累加方法及系统 - Google Patents
快速数据采集循环累加方法及系统 Download PDFInfo
- Publication number
- CN104461448A CN104461448A CN201410658754.6A CN201410658754A CN104461448A CN 104461448 A CN104461448 A CN 104461448A CN 201410658754 A CN201410658754 A CN 201410658754A CN 104461448 A CN104461448 A CN 104461448A
- Authority
- CN
- China
- Prior art keywords
- sampling period
- accumulation
- data
- module
- dual
- 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
Landscapes
- Time-Division Multiplex Systems (AREA)
Abstract
本发明涉及数据采集处理技术领域,具体地说是一种快速数据采集循环累加方法及系统,其包括:PC机向FPGA下发配置参数,采样周期生成模块生成采样周期信号t并送给累加控制模块;累加控制模块生成两个相差T/2的新采样周期信号t1和t2,第一累加操作模块根据采样周期信号t1与第一双端口存储器配合工作,直至循环次数达到要求的累加次数,停止累加;第二累加操作模块与第二双端口存储器配合工作,直至循环次数是否达到要求的累加次数,停止累加;数据选择器按先后顺序将数据上传至PC机,本发明所述的方法与传统方法相比并没有占用额外的硬件资源,在数据的实时性和准确性得到保障的同时节省了2倍的累加时间。
Description
技术领域
本发明涉及数据采集及处理技术领域,具体地说是一种特别适用于传感监测系统的能够显著提高数据处理速度和精度的快速数据采集循环累加方法及系统。
背景技术
信息社会的发展,在很大程度上取决于信息与信号处理技术的先进性。数字信号处理技术的出现改变了信息与信号处理技术的整个面貌,而数据采集是作为数字信号处理必不可少的前期工作,在整个数字系统中起到关键性、乃至决定性的作用。目前,各类传感监测系统对底层的数据采集处理功能要求也是日益增高,主要集中表现在对数据采集的实时性、处理速度和数据精度方面的要求。以光纤传感测温系统为例,数据采集量大,信噪比要求高,需要对数据进行周期循环采集累加来降低噪声的影响,由于总线接口和计算机处理器处理能力受限,需要底层数据采集卡来完成循环累加处理,因为采用底层累加方式不仅数据处理时间短而且只需占用一个周期的数据空间即可。
数据循环累加就是对一组实时信号进行周期式的反复采集并进行累加。每一周期的数据采集累加时间称为累加周期。累加周期内采集的有效数据个数不能大于最大采样点数。最大采样点数=累加周期/采样频率。对于累加周期长,采集有效数据小于最大采样点数的,循环累加处理较为简单,为了提升速度往往采用流水线的方式进行累加。而对于时序要求特别严格的系统,比如光纤传感测温测应力的长距离系统,因为要实现长距离的测量,所以实际信号很微弱噪声大,数据累加处理是必不可的,数据处理要求也更为严格,需要采集有效数据必须等于最大采样点数,实现循环累加就有一个极大问题存在。因为循环累加需要一个双端口的存储器实现每周期累加结果的存放和下个周期累加的数据提取功能,这部分的操作需要时钟控制,这样就避免不了延时的存在,这种器件工作延时导致每个周期的数据不能严格对齐而产生错位累加,而且随着累加次数的增加这样错位是依次递进的,即次数越多错位就越多,最终的结果当然都是错的。这个问题在流水线累加方式更为凸显,流水线级数越多每次错位的个数也越多。如附件的图1所示,数据采样周期为T,最大采样点数为N,即图中ADC采样数据为d1,d2,……,dN。累加操作读取数据最少要占用一个点的时间,如果采用流水线累加方式,占用的点数与流水线的级数有关,这里用M表示。在第一个累加周期内,累加模块是采样的ADC数据存入寄存器,在第二个累加周期的时间再将其从存储器里读出来与新采集的ADC数据相加,而实际累加数据是在采集第M个点的时候才有真正的累加和数据。通常累加周期等于采样周期,所以如果系统要求采样点数为N,则第二个累加周期累加就会错位M个点,第三个累加周期会错位2M个点,后面依次成倍错位。
底层累加常用的解决方法就是牺牲一个累加周期的时间,如附图中的图2所示。即两个数据采样周期完成一个周期的数据采集和累加,这样将两个周期变成一个完整信号的大周期,从图2可见,ADC采样数据多采了M个点来拟补前端抛掉的累加的空点,保证N个点的累加和的刚好完成。从图2所描述的时序图不难发现,这种方法不仅导致累加时间加倍,而且每次累加都丢失一组数据,影响数据准确度。这个缺陷的存在导致很多传感监测系统功能受到影响。像周界防入侵系统,虽然累加次数较少,但对数据的实时性要求较高,应用这种方法会丢失数据无法进行实时显示和报警。长距离光纤测温系统,单周期数据量大,累加次数几十万,如果应用这种方法,需要分钟级别的累加时间,这对消防类产品是个致命的问题。
发明内容
本发明针对现有技术中存在的缺点和不足,提出了一种特别适用于传感监测系统的能够显著提高数据处理速度和精度的快速数据采集循环累加方法及系统。
本发明可以通过以下措施达到:
一种快速数据采集循环累加方法,其特征在于包括以下步骤:
步骤1: PC机向FPGA下发配置参数,这些参数包括:采样周期、采样点数和累加次数;
步骤2:采样周期生成模块根据下发的采样周期参数生成相应的采样周期信号t(周期为T)给累加控制模块;
步骤3:累加控制模块将采样周期信号t二分频,并做半个采样周期T/2的延时处理,从而生成两个相差T/2的新采样周期信号t1和t2(周期为T/2),分别送给所述的第一累加操作模块和第二累加操作模块。其中,第二累加操作模块的采样周期信号t2比第一累加操作模块的采样周期信号t1延迟T/2;
步骤4:第一累加操作模块根据采样周期信号t1采用流水线方式与第一双端口存储器配合,两个采样周期信号t1为一个累加周期,对每个采样周期t的前半段数据(前1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加;
步骤5:第二累加操作模块根据采样周期信号t2采用流水线方式与第二双端口存储器配合工作,两个采样周期信号t2为一个累加周期,对每个采样周期t的后半段数据(后1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加;
步骤6:数据选择器按先后顺序将数据上传至PC机,先传第一双端口存储器模块的数据,后传第二双端口存储器的数据。
本发明还提出了一种采用如上快速数据采集循环累加方法的系统,其特征在于设有ADC采集单元、FPGA和PC机,所述FPGA包括采样周期生成模块、累加控制模块、第一累加操作模块、第二累加操作模块、第一双端口存储器、第二双端口存储器和数据选择模块,其中PC机与FPGA相连接,ADC采集单元分别与第一累加操作模块、第二累加操作模块相连接,采样周期生成模块的输出端与累加控制模块相连接,累加控制模块的输出端分别于第一累加操作模块、第二累加操作模块相连接,第一累加操作模块与第一双端口存储器相连接,第二累加操作模块与第二双端口存储器相连接,第一双端口存储器和第二双端口存储器的输出端经数据选择模块送入PC机。
本发明所述的方法与传统方法相比并没有占用额外的硬件资源,在数据的实时性和准确性得到保障的同时节省了2倍的累加时间。
附图说明
附图1是循环累加存在问题错位问题的时序说明图。
附图2是现有技术中解决循环错位问题的方法的时序说明图。
附图3是本发明的系统框图。
附图4是本发明中实施例的主要时序图。
附图5是本发明的工作流程图。
附图标记:ADC采集单元301、PC机302、FPGA303、采样周期生成模块304、累加控制模块305、第一累加操作模块 306、第二累加操作模块 307、第一双端口存储器模块 308、第二双端口存储器模块 309、数据选择模块310。
具体实施方式:
下面结合附图和实施例对本发明进一步说明。
本发明具体实施方式描述如下:
如附图3所示,此系统包括ADC采集单元301、PC机302和FPGA303。其中FPGA303包括采样周期生成模块304、累加控制模块305、第一累加操作模块 306、第二累加操作模块 307、第一双端口存储器模块 308、第二双端口存储器模块 309和数据选择模块310。
如图3所示,它们之间的连接方式和主要功能如下:
ADC采集单元301与第一累加操作模块 306和第二累加操作模块 307相连,向第一累加操作模块 306和第二累加操作模块 307发送相同的ADC采样数据和采样时钟信号。
采样周期生成模块304与累加控制模块305相连,生成采样周期信号送给累加控制模块305。
累加控制模块305与第一累加操作模块 306和第二累加操作模块 307相连,生成两个新的采样周期信号分别给第一累加操作模块 306和第二累加操作模块 307。
第一累加操作模块 306与第一双端口存储器 308相连,每个累加周期第一累加操作模块 306从第一双端口存储器 308读取上个周期的累加结果与新采样数据进行累加同时将新的累加结果存入第一双端口存储器 308中,全部累加结束之后的最终结果也存入第一双端口存储器 308中。
第二累加操作模块 307与第二双端口存储器模块 309相连,每个累加周期第二累加操作模块 307从第二双端口存储器模块 309读取上个周期的累加结果与新采样数据进行累加同时将新的累加结果存入第二双端口存储器模块 309中,全部累加结束之后的最终结果也存入第二双端口存储器模块 309中。
第一双端口存储器 308和第二双端口存储器 309都与数据选择模块310相连。
数据选择模块310与PC机302相连,先将第一双端口存储器308的数据传给PC机302,再将第二双端口存储器309的数据传给PC机302。
其中,ADC采集单元301是模数转换电路,用于将光纤、气体、压力等传感器采集的模拟信号转换成数字信号传给FPGA303进行处理。里面所选用的A/D芯片根据系统需要的采样精度和速度选用合适的位数和采样速率的芯片。
PC机302用于接收最终的累加结果数据,对数据进行各种算法分析。可以是主计算机,也可以是嵌入式计算机。
FPGA303用来实现循环累加功能,是实现整个系统和方法的核心器件。该器件的选择主要包括内部RAM块的数量和I/O引脚数。内部RAM块用来构造第一双端口存储器308和第二双端口存储器模块 309,它的数量决定了可存储的最大采样点数。I/O引脚数决定可连接的ADC采集单元301的路数,本发明实例描述的都是单路采集系统,可以作成一个IP核,功能扩展强,多路实现方式只需对该系统进行复用或者直接调用封装好的IP核。
附图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_reg1[n:0]405为第一累加操作模块 306中的ADC数据暂存寄存器,Sum_reg1[n:0]406为第一累加操作模块 306中的累加结果暂存寄存器。ADC_reg2[n:0]408为第二累加操作模块 307中的ADC数据暂存寄存器,Sum_reg2[n:0]409为第二累加操作模块 307中的累加结果暂存寄存器。
本发明提供的快速循环累加方法是为了解决图1存在的错位问题和图2存在的时间成倍问题。所述的快速循环累加方法如下:
首先,将Sample_cycle401进行二分频生成Front_sum_cycle404信号,再将Front_sum_cycle404延迟T/2的时间生成Latter_sum_cycle407信号。
然后,将Front_sum_cycle404和Latter_sum_cycle407分别送给两个累加操作模块,作为累加操作的控制信号。一个采样周期总共需要采集的ADC数据有N个,用d1,d2,……,dN表示。在此将其分成两等份,即d1,……,dN/2和d(N/2+1),……,dN。
第一累加操作模块 306以Front_sum_cycle404第一个上升沿为起点开始采集,ADC_reg1[n:0]405采集到第N/2+M点时停止采集,多出的M个点是累加延时造成的M个点延时,因为累加操作分为取数据、相加和存放数据三部分,单次累加最少要一个采样时钟,即一个点的延迟,如果使用流水线操作,延时点会更多,这里用M表示。因此累加过程前直至第M采样时钟Sum_reg1[n:0]406才实现了第一个累加和的转换,到第N/2+M采样时钟正好完成d1,……,dN/2数据的第一次累加操作,并生成一个单次累加结束的标志,这时第一累加操作模块 306内部会以这个单次累加结束标志为基准捕获下一个Front_sum_cycle404的上升沿重复上面的累加操作。第一个累加周期结束后Sum_reg1[n:0]406存入第一双端口存储器308中的数据是S1= d1,S2= d2,……,SN/2=dN/2。第二个累加周期结束之后第一双端口存储器 308中的数据就是是S1= 2d1,S2= 2d2,……,SN/2=2dN/2。后面依次倍增,直至最后的累加结束。所以说第一累加操作模块 306是完成了ADC的前半段数据的采集和循环累加。
利用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+1),……,d(N+M)。N次累加结束之后Sum_reg2[n:0]409存入第二双端口存储器 309中的数据就是是S1= Nd(N/2+1),S2= Nd(N/2+2),……,SN/2=NdN。所以说第二累加操作模块 307是完成了ADC的后半段数据的采集和循环累加。
最后只需将第一双端口存储器308和第二双端口存储器309中的数据按先后顺序传给PC机,就完成了完整的循环累加操作。将图4与图2相比较,不难看出本发明提出的快速循环累加方法是将单路ADC的采样数据分成双路累加,即将一个完整的采样周期T分成两个小的采样周期T/2,这样合成的累加周期还是T,进行N次循环累加,花费的总时间是NT+T/2≈NT(T一般都小于ms级),而采用图2方式,N次循环需要的总时间为2NT,相当于2倍的关系,优势还是相当明显的。
附图5是本发明的工作流程图,主要步骤如下:
步骤501:PC机向FPGA下发配置参数,这些参数包括:采样周期、采样点数和累加次数。
步骤502:采样周期生成模块根据下发的采样周期参数生成相应的采样周期信号给累加控制模块。
步骤503:累加控制模块将采样周期二分频,并做半个采样周期的延时处理,从而生成两个相差半个采样周期的新采样周期信号,分别送给两个累加操作模块。
步骤504:两个累加操作模块根据各自的新采样周期信号采用流水线方式与双端口存储器配合,两个新采样周期为一个累加周期,分别对前/后半段数据(1/2采样点数)进行循环采集累加。
步骤505:判断累加循环次数是否达到要求的累加次数,如果没有达到累加次数就进入步骤504继续进行循环累加操作,如果达到累加次数就停止累加进入步骤506。
步骤506:数据选择器按先后顺序将数据上传至PC机,先传前半段数据,后传后半段数据。
经实际测试证明,本发明所述的方法与其他方法相比并没有占用额外的硬件资源,数据的实时性和准确性得到保障的同时节省了2倍的累加时间。并且本发明所述的系统和方法目前一直应用在本公司的各类光纤传感测温系统产品,效果显著。
本发明所述方法简单,在FPGA内部实现,易于实现且无需额外硬件资源需求,可移植性强,易于功能扩展。上述实施方式描述的是单路采集系统,多路实现方式只需对该系统进行复用或者直接做成一个IP核,直接调用封装好的IP核。因为所述系统和方法适用于各类数据采集系统,所以任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种快速数据采集循环累加方法,其特征在于包括以下步骤:
步骤1: PC机向FPGA下发配置参数,这些参数包括:采样周期、采样点数和累加次数;
步骤2:采样周期生成模块根据下发的采样周期参数生成相应的采样周期信号t(周期为T)给累加控制模块;
步骤3:累加控制模块将采样周期信号t二分频,并做半个采样周期T/2的延时处理,从而生成两个相差T/2的新采样周期信号t1和t2(周期为T/2),分别送给所述的第一累加操作模块和第二累加操作模块。其中,第二累加操作模块的采样周期信号t2比第一累加操作模块的采样周期信号t1延迟T/2;
步骤4:第一累加操作模块根据采样周期信号t1采用流水线方式与第一双端口存储器配合,两个采样周期信号t1为一个累加周期,对每个采样周期t的前半段数据(前1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加;
步骤5:第二累加操作模块根据采样周期信号t2采用流水线方式与第二双端口存储器配合工作,两个采样周期信号t2为一个累加周期,对每个采样周期t的后半段数据(后1/2的采样点数)进行循环采集累加,直至循环次数达到要求的累加次数,停止累加;
步骤6:数据选择器按先后顺序将数据上传至PC机,先传第一双端口存储器模块的数据,后传第二双端口存储器的数据。
2.一种采用如权利要求1所述快速数据采集循环累加方法的系统,其特征在于设有ADC采集单元、FPGA和PC机,所述FPGA包括采样周期生成模块、累加控制模块、第一累加操作模块、第二累加操作模块、第一双端口存储器、第二双端口存储器和数据选择模块,其中PC机与FPGA相连接,ADC采集单元分别与第一累加操作模块、第二累加操作模块相连接,采样周期生成模块的输出端与累加控制模块相连接,累加控制模块的输出端分别于第一累加操作模块、第二累加操作模块相连接,第一累加操作模块与第一双端口存储器相连接,第二累加操作模块与第二双端口存储器相连接,第一双端口存储器和第二双端口存储器的输出端经数据选择模块送入PC机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658754.6A CN104461448B (zh) | 2014-11-18 | 2014-11-18 | 快速数据采集循环累加方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658754.6A CN104461448B (zh) | 2014-11-18 | 2014-11-18 | 快速数据采集循环累加方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461448A true CN104461448A (zh) | 2015-03-25 |
CN104461448B CN104461448B (zh) | 2017-07-04 |
Family
ID=52907569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410658754.6A Active CN104461448B (zh) | 2014-11-18 | 2014-11-18 | 快速数据采集循环累加方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461448B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000232426A (ja) * | 1999-02-10 | 2000-08-22 | Matsushita Electric Ind Co Ltd | ランダム・オーバー・サンプリング伝送方法 |
CN102200545A (zh) * | 2011-03-29 | 2011-09-28 | 电子科技大学 | 一种高速海量数据采集存储系统的硬件协处理装置 |
CN102930065A (zh) * | 2012-11-07 | 2013-02-13 | 昆山北极光电子科技有限公司 | 一种多通道大容量实时数据采集方法 |
-
2014
- 2014-11-18 CN CN201410658754.6A patent/CN104461448B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000232426A (ja) * | 1999-02-10 | 2000-08-22 | Matsushita Electric Ind Co Ltd | ランダム・オーバー・サンプリング伝送方法 |
CN102200545A (zh) * | 2011-03-29 | 2011-09-28 | 电子科技大学 | 一种高速海量数据采集存储系统的硬件协处理装置 |
CN102930065A (zh) * | 2012-11-07 | 2013-02-13 | 昆山北极光电子科技有限公司 | 一种多通道大容量实时数据采集方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461448B (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103368676B (zh) | 一种基于周期性脉冲信号的异地数据同步采集方法及系统 | |
CN103995764B (zh) | 一种具有串行总线协议连续触发功能的逻辑分析仪 | |
CN106292409B (zh) | 一种基于fpga多速率光纤通讯的实时仿真系统及其仿真方法 | |
CN103941579B (zh) | 一种用于海洋仪器的时刻记录和时钟同步方法 | |
CN104077492A (zh) | 一种基于fpga的采样数据内插方法 | |
CN101706521A (zh) | 一种具有时基微调功能的数字存储示波器 | |
CN102565673A (zh) | 基于fpga的高可靠脉冲计数测试系统 | |
CN105116318A (zh) | 一种逻辑分析仪中实现毛刺检测的方法 | |
CN108847921B (zh) | 分布式振动同步连续监测系统 | |
CN101533083A (zh) | 一种gps信号的并行捕获系统及方法 | |
CN102571236A (zh) | 最大时间间隔误差的测量方法和系统 | |
CN102882624A (zh) | 基于pxi/pci总线的测试信号源设备间远程同步设备及方法 | |
CN117200755A (zh) | 一种irig-b直流时钟码的解码方法及装置 | |
CN104729549A (zh) | 双向混沌环形激光器分布光纤传感系统及其时间差定位法 | |
CN104461448A (zh) | 快速数据采集循环累加方法及系统 | |
CN100458715C (zh) | 一种握手电路监测装置及方法 | |
CN102508423A (zh) | 采用增强捕捉模块的irig-b对时方法 | |
US8942300B1 (en) | Integrated digitizer system with streaming interface | |
CN103427977B (zh) | 一种利用单路模拟信号实现多设备同步采集的方法 | |
CN102780472A (zh) | 利用fpga实现矢量网络分析仪全新同步脉冲测量的方法 | |
CN202818323U (zh) | 基于fpga芯片的基带npz码误码仪 | |
CN101975966B (zh) | 一种用于地球物理勘探的拖缆模拟器板 | |
CN104787634A (zh) | 电梯一体机的监控方法、电梯一体机及其监控系统 | |
CN104360639A (zh) | 基于vme自定义总线的多运动控制卡实时同步读取光栅尺数据的方法 | |
CN104076263A (zh) | 半导体自动测试设备的时间量测模块及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |