您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页一种基于FPGA的高精度时间间隔测量方法及系统[发明专利]

一种基于FPGA的高精度时间间隔测量方法及系统[发明专利]

来源:爱够旅游网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 110442012 A(43)申请公布日 2019.11.12

(21)申请号 201910661291.1(22)申请日 2019.07.22

(71)申请人 桂林电子科技大学

地址 1004 广西壮族自治区桂林市七星

区金鸡路1号(72)发明人 蔡成林 李响 贾伟 汪发 胡佳 

沈文波 曾武陵 彭滨 刘元成 (74)专利代理机构 北京轻创知识产权代理有限

公司 11212

代理人 徐琪琦(51)Int.Cl.

G04F 10/04(2006.01)

权利要求书2页 说明书6页 附图2页

CN 110442012 A()发明名称

一种基于FPGA的高精度时间间隔测量方法及系统(57)摘要

本发明涉及一种基于FPGA的高精度时间间隔测量方法,包括如下步骤,采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果;根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。本发明通过将粗测量和精测量相结合,利用FPGA延迟单元几十皮秒级的高精度时延间隔,使得能够对大范围的时间间隔进行测量,并且取得较高的测量精度。本发明还包括一种基于FPGA的高精度时间间隔测量系统。

CN 110442012 A

权 利 要 求 书

1/2页

1.一种基于FPGA的高精度时间间隔测量方法,其特征在于,包括如下实施步骤:采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;

基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果;

根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。2.根据权利要求1所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,所述采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果,包括:

通过脉冲计数器计算出在闸门间隔中的脉冲个数N,根据所述脉冲个数N和所述时钟周期T0得到时间间隔的粗测结果,TN=N*T0。

3.根据权利要求2所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,所述脉冲计数器采用格雷码计数器。

4.根据权利要求1所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,所述脉冲填充计数法采用的计数脉冲为FPGA内锁相环PLL根据原子钟输出的频率信号倍频产生的。

5.根据权利要求2所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,所述基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果,包括:

将一组延迟单元级联形成的抽头延迟链,每个延迟单元的延迟时间均为τ,每个延迟单元上引出一个抽头并用相应的触发器进行锁存;

使待测信号的上升沿在所述抽头延时链中传递,当所述闸门信号的上升沿到来时,每个触发器对所述抽头延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出信号Q=1的个数m来判断待测信号的上升沿在所述抽头延迟链中的传递时间,t=m*τ。

6.根据权利要求5所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果,包括:

所述两个脉冲间的时间间隔Td=TN+T1-T2;所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=m2*τ。

7.根据权利要求5所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,所述延迟单元为配置FPGA内部查找表获得,所述内部查找表具有DATAA、DATAB、DATAC、DATAD四种输入端口,在所述一组延迟单元内,输入端口种类相同。

8.根据权利要求5所述的一种基于FPGA的高精度时间间隔测量方法,其特征在于,所述延时单元经过逻辑锁定。

9.一种基于FPGA的高精度时间间隔测量系统,其特征在于,包括粗测模块、精测模块和计算模块,其中:

所述粗测模块,用于采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;

所述精测模块,用于基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,

2

CN 110442012 A

权 利 要 求 书

2/2页

得到时间间隔的细测结果;

所述计算模块,用于根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。

10.根据权利要求9所述的一种基于FPGA的高精度时间间隔测量系统,其特征在于,所述粗侧模块采用格雷码计数器,用于通过格雷码计数器计算出在闸门间隔中的脉冲个数N,根据所述脉冲个数N和所述时钟周期T0得到时间间隔的粗测结果,TN=N*T0;

所述细测模块为将一组延迟单元级联形成的抽头延迟链,每个延迟单元的延迟时间均为τ,每个延迟单元上引出一个抽头并用相应的触发器进行锁存;

用于使待测信号的上升沿在所述抽头延时链中传递,当所述闸门信号的上升沿到来时,每个触发器对所述抽头延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出信号Q=1的个数m来判断待测信号的上升沿在所述抽头延迟链中的传递时间,t=m*τ;

所述计算模块,用于计算所述两个脉冲间的时间间隔Td=TN+T1-T2;其中,所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=m2*τ。

3

CN 110442012 A

说 明 书

一种基于FPGA的高精度时间间隔测量方法及系统

1/6页

技术领域

[0001]本发明属于时间间隔测量领域,具体涉及一种基于FPGA的高精度时间间隔测量方法及系统。

背景技术

[0002]随着科学技术的飞速发展,时间间隔的测量特别是高精度的时间间隔测量技术在科学研究上具有重要的作用,尤其在导航定位、卫星授时、激光测距等领域有着非常广泛的应用,同时也是时频测量领域的研究热点。

[0003]时间间隔测量技术一般是用来测量两个或多个物理事件相继发生的时间间隔,同时把测量得到的时间间隔转换成相应的数字,因此这种技术也被称为时间数字转换技术(Time to Digital Conversion,TDC)。目前时间间隔测量技术的方法很多,其中采用最多的是基于TDC芯片的测量方法。TDC芯片测量的典型分辨率为50ps,因此可以精确测量出纳秒级的相位差;但是该芯片具有较大的缺点是其测量范围较窄,一般都在纳秒到微秒级左右,对于较大测量范围就难以满足实际工程需要。发明内容

[0004]本发明为了解决上述背景技术中的技术问题,提供一种基于FPGA的高精度时间间隔测量方法及系统。

[0005]本发明解决上述技术问题的技术方案如下:采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果;根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。[0006]本发明的有益效果是:通过将粗测量和精测量相结合,利用FPGA延时链各延迟单元几十皮秒ps级的高精度时延间隔,使得能够对大范围的时间间隔进行测量,并且取得较高的测量精度。

[0007]进一步地,所述采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果,包括:通过脉冲计数器计算出在闸门间隔中的脉冲个数N,根据所述脉冲个数N和所述时钟周期T0得到时间间隔的粗测结果,TN=N*T0。[0008]采用上述进一步方案的有益效果是,利用计用计数器计数范围较大的特点,实现长时间间隔测量。[0009]进一步地,所述脉冲计数器采用格雷码计数器。[0010]采用上述进一步方案的有益效果是,利用格雷码计数器每次只有一位会发生跳变的特性,尽可能地降低翻转噪声和亚稳态现象发生的概率,提高测量的稳定性。[0011]进一步地,所述脉冲填充计数法采用的计数脉冲为FPGA内锁相环PLL根据原子钟输出的频率信号倍频产生的。

[0012]采用上述进一步方案的有益效果是,通过利用锁相环PLL内部抖动和时延小、FPGA

4

CN 110442012 A

说 明 书

2/6页

内部具有专用的时钟网络资源布线的特性,通过采用高准确度和稳定度的原子钟时钟信号作为基准,产生高稳定度和准确度的计数脉冲,以提高粗测量的可靠性和准确度。[0013]进一步地,所述基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果,包括:将一组延迟单元级联形成的抽头延迟链,每个延迟单元的延迟时间均为τ,每个延迟单元上引出一个抽头并用相应的触发器进行锁存;使待测信号的上升沿在所述抽头延时链中传递,当所述闸门信号的上升沿到来时,每个触发器对所述抽头延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出信号Q=1的个数m来判断待测信号的上升沿在所述抽头延迟链中的传递时间,t=m*τ。[0014]采用上述进一步方案的有益效果是,利用FPGA内部延迟单元延迟时间通常在几十皮秒级、并且延时较为稳定的特性,实现对被测时间间隔的高精度测量。[0015]进一步地,根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果,包括:所述两个脉冲间的时间间隔Td=TN+T1-T2;所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=m2*τ。[0016]进一步地,所述延迟单元为配置FPGA内部查找表获得,所述内部查找表具有DATAA、DATAB、DATAC、DATAD四种输入端口,在所述一组延迟单元内,输入端口种类相同。[0017]采用上述进一步方案的有益效果是,通过为选择内部查找表同一种输入端口,使得每个延迟单元的延迟时间一致,避免因选择不同输入端口导致延迟单元延迟时间的不一致,而影响测量精度。且内部查找表在FPGA内部数量资源较大,使用内部查找表作为延迟单元可以减少FPGA内部资源的浪费。[0018]进一步地,所述在于所述延时单元经过逻辑锁定。[0019]采用上述进一步方案的有益效果是,通过对延时单元进行逻辑锁定,避免延时单元在综合时被综合掉或受到FPGA其它电路的影响,提高延时单元的稳定性。[0020]本发明还提供一种基于FPGA的高精度时间间隔测量系统,采用如上述的测量方法,包括粗测模块、精测模块和计算模块,其中:所述粗测模块,用于采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;所述精测模块,用于基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果;所述计算模块,用于根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。[0021]采用上述方案的有益效果是,通过将粗测量和精测量相结合,利用FPGA延时链各延迟单元几十皮秒ps级的高精度时延间隔,使得能够对大范围的时间间隔进行测量,并且取得较高的测量精度。[0022]进一步地,所述粗侧模块采用格雷码计数器,用于通过格雷码计数器计算出在闸门间隔中的脉冲个数N,根据所述脉冲个数N和所述时钟周期T0得到时间间隔的粗测结果,TN=N*T0;

[0023]所述细测模块为将一组延迟单元级联形成的抽头延迟链,每个延迟单元的延迟时间均为τ,每个延迟单元上引出一个抽头并用相应的触发器进行锁存;[0024]用于使待测信号的上升沿在所述抽头延时链中传递,当所述闸门信号的上升沿到来时,每个触发器对所述抽头延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出信号Q=1的个数m来判断待测信号的上升沿在所述抽头延迟链中的传递时间,t=m*τ;[0025]所述计算模块,用于计算所述两个脉冲间的时间间隔Td=TN+T1-T2;

5

CN 110442012 A[0026]

说 明 书

3/6页

其中,所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=

m2*τ。

[0027]

采用上述方案的有益效果是,通过采用格雷码计数,尽可能地降低翻转噪声和亚

稳态现象发生的概率;通过采用抽头延时链,实现较高的测量精度。

附图说明

[0028]图1为根据本发明的实施例提供的工作流程图;[0029]图2为根据本发明的实施例提供的粗测工作过程图。[0030]图3为根据本发明的实施例提供的精测模块结构图;图4为根据本发明的实施例提供的一种基于FPGA的高精度时间间隔测量系统结构框图。

具体实施方式

[0031]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

[0032]本实施例提供一种基于FPGA的高精度时间间隔测量方法,其工作流程图如图1所示,该方法包括如下实施步骤:采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果;根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。

[0033]在FPGA中,如查找表LUT、寄存器、RAM、布线等各基本单元间传输均有延迟时间τ,该延迟时间τ通常在几十皮秒,同一种类基本单元间的延迟时间τ基本一致,该延迟时间τ可通过运用modelsim、quartus2等仿真软件获得。[0034]上述实施例中,通过构造由基本单元组成的抽头时间链,可以实现较高的测量精度。此外,脉冲填充计数法能够实现较大范围脉冲计数。通过将粗测量和精测量相结合,可以实现对大范围时间间隔进行测量,也能得到较高的测量精度。[0035]可选地,如图2所示,所述采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果,包括:通过脉冲计数器计算出在闸门间隔中的脉冲个数N,根据所述脉冲个数N和所述时钟周期T0得到时间间隔的粗测结果,TN=N*T0。[0036]上述实施例中,利用计用计数器计数范围较大的特点,实现长时间间隔测量。[0037]可选地,所述脉冲计数器采用格雷码计数器。[0038]格雷码计每次只有一位会发生跳变,而普通的二进制计数器在计数时则是至少有一位发生跳变,当多位同时跳变时很容易产生亚稳态现象,从而导致计数结果发生错乱。随着FPGA工作频率的升高,产生亚稳态现象的概率显著增高。而格雷码每次只有一位发生跳变,通过采用格雷码编码计数可以尽可能地降低翻转噪声和亚稳态现象发生的概率。[0039]进一步地,所述脉冲填充计数法采用的计数脉冲为FPGA内锁相环PLL根据原子钟输出的频率信号倍频产生的。所述计数脉冲可以是,利用FPGA内部锁相环PLL对原子钟输出的10MHz频率信号倍频获得频率为200MHz的计数脉冲,即时钟周期可以达到5ns,也即计数脉冲的时钟周期T0为5ns。[0040]上述实施例中,通过利用锁相环PLL内部抖动和时延小、FPGA内部具有专用的时钟

6

CN 110442012 A

说 明 书

4/6页

网络资源布线的特性,通过采用高准确度和稳定度的原子钟时钟信号作为基准,产生高稳定度和准确度的计数脉冲,以提高粗测量的可靠性和准确度。[0041]进一步地,所述基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果,如图3所示,包括:将一组延迟单元级联形成的抽头延迟链,每个延迟单元的延迟时间均为τ,每个延迟单元上引出一个抽头并用相应的触发器进行锁存;使待测信号的上升沿在所述抽头延时链中传递,当所述闸门信号的上升沿到来时,每个触发器对所述抽头延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出信号Q=1的个数m来判断待测信号的上升沿在所述抽头延迟链中的传递时间,t=m*τ。[0042]利用FPGA内部查找表LUT、寄存器、RAM、布线等各基本单元级的延迟特性,将其作为组成抽头延迟链的延迟单元,并对延迟单元抽头连接寄存器,存储时延,以达到用抽头延迟链测量高精度测量时间隔的目的。延迟单元的延迟时间、差异,随其采用的基本单元不同而不同,可以根据不同的测量精度要求,选择不同的基本单元作为延迟单元,实现对被测时间间隔的高精度测量。[0043]可选地,根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果,包括:所述两个脉冲间的时间间隔Td=TN+T1-T2;所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=m2*τ。[0044]可选地,所述延迟单元为配置FPGA内部查找表获得,所述内部查找表具有DATAA、DATAB、DATAC、DATAD四种输入端口,在所述一组延迟单元内,输入端口种类相同。[0045]上述实施例中,通过为选择内部查找表同一种输入端口,通过设置一致的基本单元结构,使得每个延迟单元的延迟时间一致,避免因选择不同输入端口导致延迟单元延迟时间的不一致,而影响测量精度。且内部查找表在FPGA内部数量资源较大,使用内部查找表作为延迟单元较为方便实现,并可以减少FPGA内部资源的浪费。[0046]可选地,所述在于所述延时单元经过逻辑锁定。[0047]上述实施例中,通过对延时单元进行逻辑锁定,避免延时单元在综合时被综合掉或受到FPGA其它电路的影响,提高延时单元的稳定性。

[0048]本发明还提供一种基于FPGA的高精度时间间隔测量系统,采用如上述的测量方法,包括粗测模块、精测模块和计算模块,结构框图如图4所示,其中:所述粗测模块,用于采用脉冲填充计数法进行两个脉冲间的时间间隔的粗测量,得到时间间隔的粗测结果;所述精测模块,用于基于FPGA抽头延时链对小于一个时钟周期的相位差进行细测量,得到时间间隔的细测结果;所述计算模块,用于根据所述粗测结果和所述细测结果确定所述时间间隔的最终测量结果。

[0049]上述实施例中,通过将粗测量和精测量相结合,利用FPGA抽头延时链各延迟单元几十皮秒级的高精度时延间隔,使得能够对大范围的时间间隔进行测量,并且取得较高的测量精度。

[0050]进一步地,所述粗侧模块采用格雷码计数器,用于通过格雷码计数器计算出在闸门间隔中的脉冲个数N,根据所述脉冲个数N和所述时钟周期T0得到时间间隔的粗测结果,TN=N*T0;

[0051]所述细测模块为将一组延迟单元级联形成的抽头延迟链,每个延迟单元的延迟时间均为τ,每个延迟单元上引出一个抽头并用相应的触发器进行锁存;

7

CN 110442012 A[0052]

说 明 书

5/6页

用于使待测信号的上升沿在所述抽头延时链中传递,当所述闸门信号的上升沿到

来时,每个触发器对所述抽头延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出信号Q=1的个数m来判断待测信号的上升沿在所述抽头延迟链中的传递时间,t=m*τ;[0053]所述计算模块,用于计算所述两个脉冲间的时间间隔Td=TN+T1-T2;[00]其中,所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=m2*τ。

[0055]上述实施例中,通过采用格雷码计数,尽可能地降低翻转噪声和亚稳态现象发生的概率;通过采用抽头延时链,实现较高的测量精度。[0056]以下,结合对卫星接收领域多模GNSS接收机输出的1PPS(1 Pulse Per Second)进行测量,详细叙述测量的过程。[0057]卫星授时技术领域中,需要将本地时间同步于协调世界时UTC时间,时间同步依赖于高精度的时间间隔测量。在时间间隔测量过程中,为了测量得到高精度的时间间隔,则需要采取粗测加细测的测量方式。[0058]首先进行粗测量,粗测量过程如图2所示。将接收机输出的1PPS信号接入粗测模块,相邻两脉冲分别作为start和stop信号。[0059]计数脉冲的时钟周期为T0,此粗测计数脉冲系锁相环PLL通过将原子钟输出的10MHz频率信号经倍频200MHz获得,因此,此处T0为5ns。当start信号上升沿到来时,开启闸门,当stop信号上升沿到来时,关闭闸门,脉冲计数器计算出在闸门间隔中的脉冲个数N,得到粗测时间间隔TN为N*T0,粗测时间间隔与真实秒脉冲之间间隔Td存在一个计数误差,误差值大小在±1。如图2所示,实际上,start升沿与闸门信号上升沿之间存在T1的相位差,stop信号上升沿与闸门信号下降沿之间存在T2的相位差,真实start信号和stop信号之间的时间间隔为Td=TN+T1-T2,因此精确测量出T1和T2,就可以更为真实的测量出时间间隔,可以有效的校准±1个字的误差。脉冲计数器采用格雷码编码进行计数,其特点是格雷码计数器每次只有一位会发生跳变,而普通的二进制计数器在计数时则是至少有一位发生跳变,当多位同时跳变时很容易产生亚稳态现象,从而导致计数结果发生错乱。而格雷码计数器每次只有一位发生跳变,因此可以尽可能地降低翻转噪声和亚稳态现象发生的概率。[0060]对T1和T2进行精测,以T1为例,精测过程如图3所示。

[0061]开门信号即start信号的上升沿在抽头延迟链中进行传递,当关门信号即图3中的闸门信号上升沿到来时,每个触发器对延迟链中的各个抽头的当前状态进行采样,根据每个触发器输出1的个数来判断开门信号在延迟链中的传递时间,并将结果输入到寄存器进行寄存。T1可用下式来表示:T1=m1*τ,m1为触发器中输出1的个数,这样就可以实现对短时间间隔的精确测量,T1测量的稳定性和测量精度取决于延迟单元的延时稳定性和延迟时间。

[0062]与T1精测过程类似,测得T2的测量结果为T2=m2*τ

[0063]计算模块综合粗测模块和精测模块测量结果进行计算,得到最终测量结果Td=TN+T1-T2;其中,所述时间间隔的粗测结果TN=N*T0;所述时间间隔细测结果T1=m1*τ,T2=m2*τ。

[00]通过采用本发明所述的一种基于FPGA的高精度时间间隔测量方法及系统,实现了对1秒时间间隔的GNSS接收机输出的1PPS信号的测量,测量的精度到达几十皮秒级,解决了

8

CN 110442012 A

说 明 书

6/6页

对较长时间间隔的GNSS接收机输出的1PPS信号的测量,测量精度无法保证的问题。[0065]以上所述仅为本发明的较佳实施例,并不用以本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

9

CN 110442012 A

说 明 书 附 图

1/2页

图1

图2

图3

10

CN 110442012 A

说 明 书 附 图

2/2页

图4

11

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务