基于FPGA的时间间隔精密测量方法和系统与流程
- 国知局
- 2024-07-30 09:40:12
基于fpga的时间间隔精密测量方法和系统技术领域1.本技术涉及时间间隔测量技术领域,特别是涉及一种基于fpga的时间间隔精密测量方法和系统。背景技术:2.高精度的时间间隔测量技术广泛应用于卫星导航、雷达定位、激光测距、核物理探测和时频测量等领域。时间间隔测量技术一般是用来测量两个或多个物理事件相继发生的时间间隔,同时把测量得到的时间间隔转换成相应的数字,因此这种技术也被称为时间数字转换技术(timetodigitalconversion,tdc)。3.由于单条延时链精度不足,并且fpga内部延时电路的和逻辑布局布线的差异性,每条延时链的特性都有所不同,因此采用单条延时链的测量方法,或者采用多条延时链取平均的算法,其测量精度都不能满足测量精度的需求。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种基于fpga的时间间隔精密测量方法和系统。5.一种基于fpga的时间间隔精密测量方法,所述方法包括:6.采用并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号进行测量,得到每条延时链的测量结果;每条延时链的测量结果包括的数据量的数量相同。7.根据每条延时链的测量结果计算每条延时链的标准差。8.根据所有条延时链的标准差,确定每条延时链的权值;所有延时链的权值之和为1。9.将待测起始时间信号和待测终止时间信号采用多个所述基于fpga延时链的时间间隔测量模块进行测量,得到多条延时链的时间间隔测量结果。10.根据多条延时链的时间间隔测量结果和对应的延时链权值进行加权求和,得到时间间隔测量结果。11.在其中一个实施例中,所有延时链的权值之和为1。12.根据所有条延时链的标准差,确定每条延时链的权值,包括:13.计算每条延时链的标准差的倒数,并将每条延时链的标准差的倒数进行求和,得到标准差倒数之和。14.将每条延时链的标准差的倒数与所述标准差倒数之商,得到每条延时链的权值。15.在其中一个实施例中,采用并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号进行测量,得到每条延时链的测量结果,步骤中所述预设的同源输入信号为同源1pps信号。16.在其中一个实施例中,基于fpga延时链的时间间隔测量模块包括:粗计数器、基于延时链的细计数单元、数据处理单元,基于fpga延时链的时间间隔测量模块的数量为n;n为大于1的整数。17.将待测起始时间信号和待测终止时间信号采用多个所述基于fpga延时链的时间间隔测量模块进行测量,得到多条延时链的时间间隔测量结果,包括:18.将待测起始时间信号和待测终止时间信号分别同时输入到第一个基于fpga延时链的时间间隔测量模块的所述粗计数器中采用直接计数法,得到起始粗计数值和终止粗计数值。19.将待测起始时间信号和待测终止时间信号分别同时输入到第一个基于fpga延时链的时间间隔测量模块的所述基于延时链的细计数单元,得到起始细计数值和终止细计数值。20.将所述起始粗计数值、所述终止粗计数值、所述起始细计数值和所述终止细计数值输入到第一个基于fpga延时链的时间间隔测量模块的数据处理单元,得到第一条延时链的时间间隔测量结果。21.将待测起始时间信号和待测终止时间信号分别同时输入到其余n-1个基于fpga延时链的时间间隔测量模块中,得到其他n-1条延时链的时间间隔测量结果。22.在其中一个实施例中,基于延时链的细计数单元包括选择器、延时链,编码器,校准时钟生成器、频率计数器、校准控制器以及查找表;所述查找表用于存放校准过程中通过温度和电压计算的细计数值。23.将待测起始时间信号和待测终止时间信号分别同时输入到第一个基于fpga延时链的时间间隔测量模块的所述基于延时链的细计数单元,得到起始细计数值和终止细计数值,包括:24.将校准信号和通道信号输入到选择器中,在校准过程中,则选择器输出校准信号,在测量过程中,则选择器输出通道信号;通道信号包括待测起始时间信号和待测终止时间信号;25.当选择器输出为通道信号时:26.将待测起始时间信号采用延时链进行传递,输出类似温度计码的信号码;将所述信号码通过编码器采用折半查找法进行编码,得到二进制码;27.在校准时钟生成器中采用环形振荡器得到校准时钟,通过频率计数器在所述校准时钟的驱动下进行加1计数,并将计数值输出至校准控制器中,并根据校准控制器的输出与所述二进制码在所述查找表中进行查找,得到起始细计数;28.将待测终止时间信号输入到基于延时链的细计数单元,得到终止细计数值;29.当选择器输出为校准信号时,则利用校准信号对基于延时链的细计数单元进行校准。30.在其中一个实施例中,所述折半查找法具体步骤包括:31.查找信号码的中间为是否为1。32.若为1,则跳变点在高位数据部分,并对高位数据部分的中间位进行递归查找;若为0,则跳变点在低位数据部分,并对低位数据部分的中间位进行递归查找;依此类推,直至查到0到1的跳变点,并将该位数据信息以二进制形式表示,得到二进制码。33.一种基于fpga的时间间隔精密测量系统,所述系统用于采用权上述的基于fpga的时间间隔精密测量方法实现时间间隔测量;所述系统包括:多个基于fpga延时链的时间间隔测量模块,数据加权处理模块。34.多个所述基于fpga延时链的时间间隔测量模块用于测量同源的待测起始时间信号和同源的待测终止时间信号的时间间隔,得到每条延时链的测量结果。35.所述数据加权处理模块包括:延时链权值确定模块和加权处理模块,所述延时链权值确定模块,用于根据获取的并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号的测量结果,采用标准差计算方法,得到每条延时链的标准差,并根据所有条延时链的标准差确定延时链权值。36.所述加权处理模块,用于根据每条延时链的测量结果及对应的延时链权值进行加权求和,得到时间间隔测量结果。37.在其中一个实施例中,所述延时链权值确定模块,还用于计算每条延时链的标准差的倒数,并将每条延时链的标准差的倒数进行求和,得到标准差倒数之和;将每条延时链的标准差的倒数与所述标准差倒数之商,得到每条延时链的权值。38.在其中一个实施例中,所述基于fpga延时链的时间间隔测量模块包括:粗计数器、基于延时链的细计数单元、数据处理单元,基于fpga延时链的时间间隔测量模块的数量为n;n为大于1的整数。39.所述粗计数器,用于采用直接计数法,对待测起始时间信号和待测终止时间信号进行计数,得到起始粗计数值和终止粗计数值。40.基于延时链的细计数单元,用于采用fpga的延时链对待测起始时间信号和待测终止时间信号进行计数,得到起始细计数值和终止细计数值。41.所述数据处理单元,用于根据起始粗计数值、终止粗计数值、起始细计数值和终止细计数值进行计算,得到延时链时间间隔测量值。42.在其中一个实施例中,所述基于延时链的细计数单元包括:选择器、延时链,编码器,校准时钟生成器、频率计数器、校准控制器以及查找表。43.所述选择器、所述延时链连接、所述编码器依次连接,所述校准时钟生成器、所述频率计数器、所述校准控制器依次连接;所述编码器和所述校准控制器与查找表连接,所述查找表输出细计数值到数据处理单元。44.上述一种基于fpga的时间间隔精密测量方法和系统,所述方法包括:采用并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号进行测量,得到每条延时链的测量结果;每条延时链的测量结果包括的数据量的数量相同;根据每条延时链的测量结果计算每条延时链的标准差;根据所有条延时链的标准差,确定每条延时链的权值;将待测时间起始信号和待测时间终止信号采用多个基于fpga延时链的时间间隔测量模块进行测量,得到多条延时链的时间间隔测量结果;根据多条延时链的时间间隔测量结果和对应的延时链权值进行加权求和,得到时间间隔测量结果。采用本方法可以提高时间间隔测量的测量精度。附图说明45.图1为tdc测量原理示意图;46.图2为抽头延迟链的测量原理示意图;47.图3为一个实施例中基于fpga的时间间隔精密测量方法的流程示意图;48.图4为一个实施例中基于fpga的时间间隔精密测量系统框图;49.图5为另一个实施例中单延时链测量原理图;50.图6为另一个实施例中校准时钟生成器的结构图;51.图7为另一个实施例中测试结果对比。具体实施方式52.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。53.tdc测量原理如图1所示,用1路待测起始时间信号(start通道)和1路待测终止时间信号(stop通道)测量原理以简化说明多通道时间间隔测量原理,start通道测量的事件精确发生时刻t1,stop通道测量的事件精确发生时刻t2。n1及n2代表start通道及stop通道测量的粗计数,t1及t2代表start通道及stop通道测量的细计时。那么start通道及stop通道时刻值可以通过以下公式获得:54.t1=t0+(n1*tclk-t1)55.t2=t0+(n2*tclk-t2)56.而stop通道和start通道之间的待测时间间隔δt1为:57.δt1=t2-t1=(n2-n1)*tclk+(t1-t2)58.其中tclk是时钟周期。59.抽头延迟链的测量原理如图2所示,事件信号hit在由时延为τ的延迟单元级联构成的延迟链上传递,邻近的系统时钟clk上升沿到来时,d触发器从低位到高位(q1,q2,q3…qn)由0跳变为1,得到(00…0111)温度计编码,记录1的个数即可得到细计数n,于是细计时t由下式表示:60.δt=nτ61.由式可知,时延越小,分辨率τ越好,时延大小主要取决于fpga的工艺架构,所以越是工艺先进的fpga,延时越小。62.在一个实施例中,如图1所示,提供了一种基于fpga的时间间隔精密测量方法,该方法包括以下步骤:63.步骤100:采用并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号进行测量,得到每条延时链的测量结果;每条延时链的测量结果包括的数据量的数量相同。64.步骤102:根据每条延时链的测量结果计算每条延时链的标准差。65.步骤104:根据所有条延时链的标准差,确定每条延时链的权值;所有延时链的权值之和为1。66.具体的,通过对并联的24条延时链采用同源数据进行实际测量,发现每条延时链的标准差结果都不同,存在明显的差异。基于此观测结果,衍生出加权平均算法代替简单的平均算法,采用标准差结果作为改延时链的权系数参考值,这样可以计算得到每条延时链的权值,后续测量和计算采用此权值作为加权平均的权值。67.步骤106:将待测起始时间信号和待测终止时间信号采用多个基于fpga延时链的时间间隔测量模块进行测量,得到多条延时链的时间间隔测量结果。68.具体的,由于单延时链的测量精度(方差)只有25ps左右,为了提高测量精度,采用多延时链同时测量的方法,其原理是将start和stop信号分别同时进入多条延时链同时测量,由于fpga内部延时电路的和逻辑布局布线的差异性,每条延时链的特性都有所不同,这样,如果仅仅简单的平均算法,结果会得到提升,但是得到的结果并不是最优的结果。69.步骤108:根据多条延时链的时间间隔测量结果和对应的延时链权值进行加权求和,得到时间间隔测量结果。70.上述一种基于fpga的时间间隔精密测量方法中,所述方法包括:采用并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号进行测量,得到每条延时链的测量结果;每条延时链的测量结果包括的数据量的数量相同;根据每条延时链的测量结果计算每条延时链的标准差;根据所有条延时链的标准差,确定每条延时链的权值;将待测时间起始信号和待测时间终止信号采用多个基于fpga延时链的时间间隔测量模块进行测量,得到多条延时链的时间间隔测量结果;根据多条延时链的时间间隔测量结果和对应的延时链权值进行加权求和,得到时间间隔测量结果。采用本方法可以提高时间间隔测量的测量精度。71.在其中一个实施例中,所有延时链的权值之和为1;步骤104包括:计算每条延时链的标准差的倒数,并将每条延时链的标准差的倒数进行求和,得到标准差倒数之和;将每条延时链的标准差的倒数与标准差倒数之商,得到每条延时链的权值。72.具体的,确定延时链的权值的步骤包括:73.1)获取同源输入1pps信号的对应的一组延时链测量结果,每条延时链连续测量数据数量相同且不低于100个连续测量数据,测量数据可以用二维数组来表示:data[i][j],其中i表示延时链的标号,延时链数量为n,j表示该延时链的第j个测量数据。[0074]2)利用标准差计算公式计算每条延时链的标准差,可以用一维数组来表示:std[i]。[0075]3)计算每条延时链的标准差的倒数:并求所有倒数之和和:sum=σrecip[k],k=0,1,...,n-1。[0076]4)计算每条延时链的权值:所有权值之和为1。[0077]5)将以上计算得到权值预存在设备非易失存储器中,每次设备上电调取延时链的权值,实际测量后计算测量值采用延时链的权值进行加权求和:value[j]=data[0][j]*weight[0]+data[1][j]*weight[1]+…+data[n-1][j]*weight[n-1]。[0078]在其中一个实施例中,步骤100预设的同源输入信号为同源1pps信号。[0079]在其中一个实施例中,基于fpga延时链的时间间隔测量模块包括:粗计数器、基于延时链的细计数单元、数据处理单元,基于fpga延时链的时间间隔测量模块的数量为n;n为大于1的整数;步骤106包括:将待测起始时间信号和待测终止时间信号分别同时输入到第一个基于fpga延时链的时间间隔测量模块的粗计数器中采用直接计数法,得到起始粗计数值和终止粗计数值;将待测起始时间信号和待测终止时间信号分别同时输入到第一个基于fpga延时链的时间间隔测量模块的基于延时链的细计数单元,得到起始细计数值和终止细计数值;将起始粗计数值、终止粗计数值、起始细计数值和终止细计数值输入到第一个基于fpga延时链的时间间隔测量模块的数据处理单元,得到第一条延时链的时间间隔测量结果;将待测起始时间信号和待测终止时间信号分别同时输入到其余n-1个基于fpga延时链的时间间隔测量模块中,得到其他n-1条延时链的时间间隔测量结果。作为优选,n取值为24。[0080]在其中一个实施例中,基于延时链的细计数单元包括选择器、延时链,编码器,校准时钟生成器、频率计数器、校准控制器以及查找表;查找表用于存放校准过程中通过温度和电压计算的细计数值;将待测起始时间信号和待测终止时间信号分别同时输入到第一个基于fpga延时链的时间间隔测量模块的基于延时链的细计数单元,得到起始细计数值和终止细计数值,包括:将校准信号和通道信号输入到选择器中,在校准过程中,则选择器输出校准信号,在测量过程中,则选择器输出通道信号;通道信号包括待测起始时间信号和待测终止时间信号;当选择器输出为通道信号时:将待测起始时间信号采用延时链进行传递,输出类似温度计码的信号码;将所述信号码通过编码器采用折半查找法进行编码,得到二进制码;在校准时钟生成器中采用环形振荡器得到校准时钟,通过频率计数器在所述校准时钟的驱动下进行加1计数,并将计数值输出至校准控制器中,并根据校准控制器的输出与所述二进制码在所述查找表中进行查找,得到起始细计数;将待测终止时间信号输入到基于延时链的细计数单元,得到终止细计数值;当选择器输出为校准信号时,则利用校准信号对基于延时链的细计数单元进行校准。[0081]在其中一个实施例中,折半查找法具体步骤包括:查找信号码的中间为是否为1;若为1,则跳变点在高位数据部分,并对高位数据部分的中间位进行递归查找;若为0,则跳变点在低位数据部分,并对低位数据部分的中间位进行递归查找;依此类推,直至查到0到1的跳变点,并将该位数据信息以二进制形式表示,得到二进制码。[0082]应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。[0083]在一个实施例中,如图4所示,提供了一种基于fpga的时间间隔精密测量系统,系统用于采用上述的基于fpga的时间间隔精密测量方法实现时间间隔测量;系统包括:多个基于fpga延时链的时间间隔测量模块,数据加权处理模块;[0084]多个基于fpga延时链的时间间隔测量模块用于测量同源的待测起始时间信号和同源的待测终止时间信号的时间间隔,得到每条延时链的测量结果;[0085]数据加权处理模块包括:延时链权值确定模块和加权处理模块,延时链权值确定模块,用于根据获取的并联的多个基于fpga延时链的时间间隔测量模块对预设的同源输入信号的测量结果,采用标准差计算方法,得到每条延时链的标准差,并根据所有条延时链的标准差确定延时链权值;[0086]加权处理模块,用于根据每条延时链的测量结果及对应的延时链权值进行加权求和,得到时间间隔测量结果。[0087]在其中一个实施例中,延时链权值确定模块,还用于计算每条延时链的标准差的倒数,并将每条延时链的标准差的倒数进行求和,得到标准差倒数之和;将每条延时链的标准差的倒数与标准差倒数之商,得到每条延时链的权值。[0088]在其中一个实施例中,如图5所示,基于fpga延时链的时间间隔测量模块包括:粗计数器、基于延时链的细计数单元、数据处理单元,基于fpga延时链的时间间隔测量模块的数量为n;n为大于1的整数;粗计数器用于采用直接计数法,对待测起始时间信号和待测终止时间信号进行计数,得到起始粗计数值和终止粗计数值;基于延时链的细计数单元用于采用fpga的延时链对待测起始时间信号和待测终止时间信号进行计数,得到起始细计数值和终止细计数值;数据处理单元用于根据起始粗计数值、终止粗计数值、起始细计数值和终止细计数值进行计算,得到延时链时间间隔测量值。[0089]在其中一个实施例中,基于延时链的细计数单元包括:选择器、延时链,编码器,校准时钟生成器、频率计数器、校准控制器以及查找表;选择器、延时链连接、编码器依次连接,校准时钟生成器、频率计数器、校准控制器依次连接;编码器和校准控制器与查找表连接,查找表输出细计数值到数据处理单元。[0090]具体的,基于延时链的细计数单元的各个模块的功能如下:[0091](1)粗计数电路设计采用直接计数法统计上电后参考时钟上升沿的个数,设n为粗计数值,tclk为参考时钟周期,那么粗计时tcoarse可由下式表示:[0092]tcoarse=n*tclk[0093]粗计数器的位数决定了tdc的测量范围。只要fpga芯片逻辑资源足够多,计数器的位数可以任意设置。另一方面,参考时钟频率越高,细计数测量所需的时间就越短,延迟链上的延迟单元就越少,然而时钟频率越高,系统的功耗越大[0094](2)细计数单元主要包括延时链,编码器,查找表,校准控制器[0095]1)延时链[0096]延时链是fpga中的进位链carry4,每个carry4模块包含4个进位多路复用器(muxcy)、4个专用的异或门(xorcy),并且每个复用器的附近都有1个d触发器,复用器和d触发器的位置是固定的,d触发器用于缓存延时链的输出。信号signal从进位链底部的cyinit引脚处直接注入。s0-s3输入为“1111”,这意味着进位链生成一条延迟链,每个muxcy通过co0-co3引出4个抽头输入到d触发器阵列进行数据锁存[0097]2)编码模块[0098]输入信号在延迟链上传递时,d触发器阵列由低位到高位逐级地由0跳变为1,根据最后一位跳变为1的位置并累加1出现的次数就能判断信号在延迟链上的传播个数,进而得到细计数。抽头延迟链输出的信息码与普通温度计码类似,因此称为温度计码。[0099]3)编码器[0100]编码器采用折半查找法将温度计码转换成二进制码,折半查找法的思想是:假设理想温度计码是按照000…111排列,首先查找中间位是否为1,若为1,那么跳变点在高位数据部分,再次对高位数据部分的中间位进行递归查找;若为0,那么跳变点在低位数据部分,再次对低位数据部分的中间位进行递归查找,以此类推,直至查到0到1的跳变点,并将该位数据信息以二进制形式表示[0101]4)校准时钟生成器[0102]校准时钟必须与系统时钟没有相关性,用环形振荡器由偶数个查找表lut1和1个查找表lut2生成。校准时钟生成器如图6所示。另外,环形振荡器的频率根据fpga的温度和电压变化而变化,这也是振荡器的时钟适合用作延时链的校准的原因。[0103]5)频率计数器[0104]频率计数器在校准时钟的驱动下进行加1计数,并将计数值输出到校准控制器。[0105]6)校准控制器[0106]延迟链中延迟单元的时延受fpga芯片工艺、温度及电压的影响会发生变化,因此需要对时延进行校准。校准控制器实现启动校准和在线校准两种功能。[0107]启动校准时,使能片上环形振荡器产生足够多的随机脉冲信号(独立于参考时钟及待测输入信号)经延迟链进行码密度校准,建立直方图并构造查找表,同时测量各条延迟链邻近位置处环形振荡器输出频率值。正式测量时,直接读取查找表中对应的细计数。在线校准时,再次周期性地测量各环形振荡器的频率值,并与启动校准时对应环形振荡器的输出频率值对比,线性地更新查找表以实时补偿温度电压对进位链时延的影响。[0108]7)查找表[0109]查找表中存放的是校准过程中通过温度和电压计算的细计数值。[0110]在一个验证性实施例中,通过对1-24条延时链简单平均和加权平均算法的对比实验,从图7所示的测试结果对比图可以看出来,加权平均算法整体性能明显优于简单平均算法,部分性能提升在达到20%以上,能够明显提高测量的精度。[0111]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0112]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
本文地址:https://www.jishuxx.com/zhuanli/20240730/150383.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
上一篇
一种医用闹钟的制作方法
下一篇
返回列表