本发明涉及测量仪器同步技术领域,特别涉及一种基于双缓冲区的时钟同步测量方法和系统。
背景技术:
功率分析仪、电能质量分析仪、电力在线监测装置等具备电气测量功能的仪器仪表,为了保证两台仪器测量同一信号的时候产生相同的结果,或者在同一测量系统的不同位置使用多台仪器进行测量时,都必须具备时钟同步测量的功能。
精确的时钟同步测量功能对测量仪器在同步采样、电能事件检测、电力故障分析等方面具有重要影响。目前的同步测量方法大多采用误差较大的定时器计时;一些GPS定时同步测量方法则没有考虑同步周期之间的采样间隙问题,或者采用频繁对时的机制,降低了测量的精度和效率。这些同步测量方法都不能满足时钟同步测量对测量精度和效率要求。
技术实现要素:
本发明的目的在于提供一种基于双缓冲区的时钟同步测量方法和系统,以解决现有的测量装置在进行时钟同步测量时测量精度不够、频繁对时、效率底下的技术问题。
为实现上述目的,本发明提供了一种基于双缓冲区的时钟同步测量方法,包括以下步骤:
S1:DSP创建第一缓冲区及第二缓冲区;
S2:在接收到开始时钟同步测量的启动信号的任意一个时间,启动DSP接收来自FPGA的采样数据;
S3:将当前接收的采样数据保存至第一缓冲区,当第一缓冲区内的数据长度达到测量计算数据长度TPm后,DSP读取第一缓冲区内的数据进行参数计算,此时第二缓冲区不工作;
S4:当DSP接收采样数据为绝对时间标签TPa内的最后一包时,将当前接收的采样数据保存至第二缓冲区,当第二缓冲区内的数据长度达到测量计算数据长度TPm后,DSP读取第二缓冲区内的数据进行参数计算,此时第一缓冲区继续保存采样数据及进行参数计算,直至保存的采样数据长度达到TPm后,第一缓冲区不工作;
S5:当DSP接收采样数据为绝对时间标签TPa内的最后一包时,将当前接收的采样数据保存至第一缓冲区,当第一缓冲区内的数据长度达到测量计算数据长度TPm后,DSP读取第一缓冲区内的数据进行参数计算,此时第二缓冲区继续保存采样数据及进行参数计算,直至保存的采样数据长度达到TPm后,第二缓冲区不工作;
S6:重复执行步骤S4至S6,直至FPGA停止数据采样。
较佳地,每次所述第一缓冲区或第二缓冲区开始保存采样数据时,其开始存储的第一个数据点为绝对时间标签TPa的整点数据。
较佳地,所述DSP每次读取的采样数据长度为TPs。
较佳地,所述测量计算数据长度TPm设置为TPm=n*T,其中,T为测量信号的周期,n为正整数。
较佳地,所述步骤S4及S5中,判断DSP接收采样数据为绝对时间标签TPa内的最后一包的条件为:
当前采样数据所属的数据包的第一个数据点的绝对时间标签TPa是否到达下一个TPa范围内,同时,当前采样数据所属的数据包的最后一个数据点的绝对时间标签TPa是否已超过或到达下一个TPa范围内。
本发明还提供了一种基于双缓冲区的时钟同步测量系统,包括DSP系统及FPGA系统,所述DSP系统包括若干个设置于不同的测量装置内的DSP,所述DSP包括:数据接收单元、数据计算单元、第一缓冲区及第二缓冲区;
所述FPGA系统包括若干个设置于不同的测量装置内的FPGA,所述FPGA用于进行数据采样得到采样数据;
所述数据接收单元用于接收来自同一测量装置内的FPGA的采样数据;
所述第一缓冲区及第二缓冲区用于保存所述采样数据;其中,任意时刻所述第一缓冲区及第二缓冲区两者之一保存当前的采样数据,每当DSP接收采样数据为绝对时间标签TPa内的最后一包时,将当前接收的采样数据切换保存至另一缓冲区,且每当另一缓冲区内的数据长度达到测量计算数据长度TPm后,数据计算单元开始读取该缓冲区内的数据进行参数计算,此时原缓冲区继续保存采样数据及进行参数计算,直至保存的采样数据长度达到TPm后,原缓冲区不工作,依次切换进行。
较佳地,所述DSP与RTC时钟相连,所述RTC时钟用于对时钟同步测量系统提供参考时钟信号。
较佳地,所述DSP及FPGA间的数据通信方式为upp,且DSP通过网络与上位机相连。
较佳地,所述FPGA设置有卫星信号接收模块,用于接收卫星授时信号以根据所述卫星授时信号进行不同测量装置间的FPGA的同步。
较佳地,FPGA的采样数据包括电压和电流,DSP的数据计算单元计算的参数包括功率参数、电能质量参数。
由于采用了上述技术方案,本发明的有益效果是:
1)数据计算单元的计算周期是连续的,没有任何间隙和遗漏;
2)时钟同步由测量仪器的RTC时钟控制,避免了频繁进行时钟同步的操作,提高设备运行效率;
3)采用双缓冲区的机制,提高时钟同步效率且容易执行;
4)实现对任意功率参数、电能质量、电力监测等测量仪器领域的时钟同步,对事件检测、故障定位有很大帮助;
5)时钟同步测量方法适用于任意计算周期、同步周期的配置;
6)DSP与FPGA之间采用upp的数据通信方式,数据传输快速而稳定;
7)提供了一种同步测量系统,实现对不同位置多台仪器的同步测量;
8)实现了两种不同的仪器在测量同样信号的时候得出相同的测量结果,精确检测到电力事件。
附图说明
图1为优选实施例的基于双缓冲区的时钟同步测量系统组成示意图;
图2为优选实施例的DSP组成示意图;
图3为优选实施例的时钟同步测量序列图;
图4为优选实施例的DSP双缓冲区工作机制图。
具体实施方式
为更好地说明本发明,兹以一优选实施例,并配合附图对本发明作详细说明,具体如下:
如图1所示,本实施例提供了一种基于双缓冲区的时钟同步测量系统,包括DSP系统及FPGA系统,FPGA系统包括若干个设置于不同的测量装置内的FPGA,DSP系统包括若干个设置于不同的测量装置内的DSP。其中,FPGA用于进行数据采样得到采样数据;DSP用于接收来自FPGA的采样数据并进行数据计算。
如图2所示,本实施例中的每个DSP包括:数据接收单元201、数据计算单元202、第一缓冲区203及第二缓冲区204。
数据接收单元201用于接收来自同一测量装置内的FPGA的采样数据;
第一缓冲区203及第二缓冲区204用于保存采样数据;其中,任意时刻第一缓冲区及第二缓冲区两者之一保存当前的采样数据,并在保存的数据长度达到测量计算数据长度TPm后,数据计算单元202开始读取该缓冲区内的数据进行参数计算。每当DSP接收采样数据为绝对时间标签TPa内的最后一包时,将当前接收的采样数据切换保存至另一缓冲区,且每当另一缓冲区内的数据长度达到测量计算数据长度TPm后,数据计算单元202开始读取该缓冲区内的数据进行参数计算,此时原缓冲区继续保存采样数据及进行参数计算,直至保存的采样数据长度达到TPm后,原缓冲区不工作,依次切换进行。
本实施例中的DSP与RTC时钟相连,该RTC时钟用于对时钟同步测量系统提供参考时钟信号。
对于同一测量装置内DSP和FPGA之间数据传输采用双口RAM的方式,且DSP及FPGA间的数据通信方式为upp,且每个测量装置内的DSP均通过网络(本实施例中为以太网)与上位机相连,上位机可以通过以太网通信方式获取各测量装置的采样数据和计算参数。
每个测量装置内的FPGA设置有GPS接收模块,用于接收来自GPS卫星的GPS授时信号以根据GPS授时信号进行不同测量装置间的FPGA的同步。
其中,本实施例中的FPGA采样数据包括但不限于电压和电流,DSP计算的参数包括不限于功率参数、电能质量参数。
参见图3所示,本实施例提供的一种基于双缓冲区的时钟同步测量方法,包括以下步骤:
S1:DSP创建第一缓冲区及第二缓冲区;
S2:在接收到开始时钟同步测量的启动信号的任意一个时间,启动DSP接收来自FPGA的采样数据;
S3:将当前接收的采样数据保存至第一缓冲区,当第一缓冲区内的数据长度达到测量计算数据长度TPm后,DSP读取第一缓冲区内的数据进行参数计算,此时第二缓冲区不工作;
S4:当DSP接收采样数据为绝对时间标签TPa内的最后一包时,将当前接收的采样数据保存至第二缓冲区,当第二缓冲区内的数据长度达到测量计算数据长度TPm后,DSP读取第二缓冲区内的数据进行参数计算,此时第一缓冲区继续保存采样数据及进行参数计算,直至保存的采样数据长度达到TPm后,第一缓冲区不工作;
S5:当DSP接收采样数据为绝对时间标签TPa内的最后一包时,将当前接收的采样数据保存至第一缓冲区,当第一缓冲区内的数据长度达到测量计算数据长度TPm后,DSP读取第一缓冲区内的数据进行参数计算,此时第二缓冲区继续保存采样数据及进行参数计算,直至保存的采样数据长度达到TPm后,第二缓冲区不工作;
S6:重复执行步骤S4至S6,直至FPGA停止数据采样。
其中,每次所述第一缓冲区或第二缓冲区开始保存采样数据时,其开始存储的第一个数据点为绝对时间标签TPa的整点数据。
本实施例中DSP每次读取的采样数据长度为TPs=20ms;DSP每次进行测量计算时的数据长度TPm设置为TPm=n*T,其中,T为测量信号的周期,n为正整数,本实施例中n取值为10;DSP系统每次进行同步的绝对时间标签TPa=10min(如01:10,01:20),即每个绝对10min时刻重新开始同步计算。这里的TPs、TPm及TPa均为执行正式的数据保存前预先设置完成的,根据预先设置的该三个参数的大小不同,执行对后续方法的控制。
步骤S4及S5中,判断DSP接收采样数据为绝对时间标签TPa内的最后一包的条件为:
当前采样数据所属的数据包的第一个数据点的绝对时间标签TPa是否到达下一个TPa范围内,同时,当前采样数据所属的数据包的最后一个数据点的绝对时间标签TPa是否已超过或到达下一个TPa范围内。
参见图3所示,该时钟同步测量序列图具体如下:
步骤1:DSP系统创建两个同样大小的同步缓冲区BufA和BufB。同步缓冲区接收FPGA的采样数据,并在数据存储长度到达到TPm时用于DSP系统计算单元进行电气参数的计算
步骤2:DSP系统任意时间开始工作,BufA为正常工作状态,BufB为待机状态,此时采样数据保存在BufA,在BufA数据长度为TPm时DSP系统计算单元读取BufA数据进行各类电气参数的运算;BufB不保存数据也不被用于计算
步骤3:步骤2一直持续到DSP系统接收到的数据为绝对时间标签为10min的最后一包;
此时BufB从待机状态跳转到正常工作状态,即BufB开始保存采样数据,其开始存储的第一个数据点为10min整点数据,BufB在数据长度到达TPm的时候DSP系统计算单元读取BufB数据进行各类电气参数的运算;
此时BufA保持工作状态。
步骤4:BufA在步骤3的时刻继续采样,直到BufA存储的采样数据长度为TPm,并且DSP系统对该TPm长度采样数据进行各类电气参数的计算完成后,BufA从工作状态跳转到待机状态;即BufA停止保存采样数据并用于计算。
此时BufB保持正常工作状态。
步骤5:步骤4一直持续到DSP系统接收到的数据为绝对时间标签为10min的最后一包;
此时BufA从待机状态跳转到正常工作状态,即BufA开始保存采样数据,其开始存储的第一个数据点为10min整点数据,BufA在数据长度到达TPm的时候DSP系统计算单元读取BufB数据进行各类电气参数的运算;
此时BufB保持工作状态。
步骤6:BufB在步骤5的时刻继续采样,直到BufB存储的采样数据长度为TPm,并且DSP系统对该TPm长度采样数据进行各类电气参数的计算完成后,BufB从工作状态跳转到待机状态;即BufB停止保存采样数据并用于计算。
此时BufA保持正常工作状态。
步骤7:重复进行步骤2~步骤5,直到FPGA系统停止数据采样。
具体地,参见图4所示,双缓冲区中的第一缓冲区本实施例中命名为BufA,第二缓冲区命名为BufB,每个缓冲区可以存储n个数据计算周期长度的数据。在步骤S4、S5执行时,进行双缓冲区BufA及双缓冲区BufB间的切换时,两者保存的数据存在一个重叠部分,该重叠部分即以绝对时间标签TPa为10min的时间点进行判断,在达到该时间点时,即启动另一缓冲区进行数据保存,同时,由于原工作的缓冲区中数据包解算尚未完成,需继续执行对当前的一个数据计算周期长度(TPm)的数据的保存和测量参数的计算,以保证数据的完整。而切换的另一缓冲区在其保存的数据达到TPm开始进行参数计算。这种方式保证了两个缓冲区间数据保存的完整性及参数计算的同步性。
下面结合附图和一实际应用例对本发明方案进行进一步的详细说明
该例中以电能质量仪器为例,检定是否为时钟同步测量状态,检定步骤如下:
1、电能质量分析仪处于时钟同步工作状态;
2、由一台与其同步的信号发生器输出一个设定持续时间的电压骤降事件给电能质量分析仪,该骤降事件的开始时间为T1;
3、查看电能质量分析仪检测到该骤降事件,并记录检测到骤降事件的起始时刻Tm1;
4、比较Tm和T1,|Tm–T1|<1周期(检测到的信号周期);
5、关闭电能质量分析仪的同步对时功能,继续工作至少48小时;
6、然后由同步的信号发生器输出一个给定持续时间的电压骤降,该骤降事件的开始时间为T2;
7、查看电能质量分析仪检测到该骤降事件,并记录检测到骤降事件的起始时刻Tm2;
8、进行以下验证:
|T2–Tm2|<|T2–T1|/(3600*24)。
通过上述步骤可以说明:
1、步骤4说明在仪器开启同步的时候,信号时间差小于一个信号周期;
2、步骤8的验证说明,在仪器关闭同步后,48小时后没有同步下信号时间差小于1S。
该例可以论证本发明的一种基于双缓冲区的时钟同步测量方法和系统具有以下特点:
1、精确的时钟同步测量机制;
2、方便简单,能够持续自动保持同步测量功能。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述的权利要求的保护范围为准。