全文字数949 | 阅读需要3分钟
关键词:脉冲间隔时间测量、计数器级联
导读
在数据采集中遇到脉冲的时间间隔测量,比较常见的一个方法是使用计数器在两次脉冲时进行计数后做差,再将计数差值根据计数器的精度计算出时间。如图1,两脉冲时间间隔即为(6-2)*TimeBase的时钟周期。本期小百科来介绍一个实际案例。
图 1 脉冲间隔时间测量
脉冲间隔时间测量
在本案例中,有两个未知时间出现的脉冲,现知道两脉冲间隔在120s左右,求两个脉冲之间的精确间隔时间,精度要求达到100ns。
计数器的计数最大值是由计数器的位数决定,典型有16、24、32位,最大值为(2^位数)-1。在选择32位计数器时,计数器的最大值是4294967295。
根据已知的要求,由于100ns的高精度和120s的长时间,计数器使用200M的参考时钟,120s需要24G的计数值,一个Counter是不够的。并且我们并不确定第一个脉冲何时到来,为了防止计数器计数值会溢出,我们可以使用计数器级联的方式来扩展计数值。
在之前的小百科中,我们已经介绍过计数器级联的方式了,当计数器在增计数模式下的计数值达到最大值时,计数器会在输出端口输出一个脉冲信号,然后计数器会从0重新开始计数。因此,可以将一个计数器CIA的输出端口连接到另一个计数器CIB的TimeBase,此时CIB可以对输入信号进行计数,这样通过两个计数器的级联,就可以将计数器的最大值扩展为(2^位数*2)-1,完全可以满足计数需求【1】。
为了达到100ns的精度要求,使用一个COA以200M的参考时钟,生成5点高电平,5点低电平的循环脉冲,即为20MHz的时钟,用这20MHz的时钟作为CIA的TimeBase,时钟周期为50ns,可以满足精度要求。
计数器CIA的溢出输出端口连接到CIB的TimeBase,使两计数器级联,每溢出一次,CIB的计数值便会加1,总计数值为ValueA + ValueB * 2^32。
待测脉冲信号作为CIA和CIB的SampleClockSource采样时钟源,每当待测脉冲出现一次,便读取计数一次。这样即可记录这两个脉冲出现时,CIA和CIB的计数值。
图 2 计数器级联测量脉冲间隔时间
根据计数值进行计算,算出间隔时间。
这里设定CIA第一次脉冲计数值为A1,第二次计数值为A2。CIB第一次脉冲计数值为B1,第二次计数值为B2。计数器的位数为T,CIA的时钟周期为P。
时间间隔S的计算公式:S = [(A2 + B2 * 2^T)-(A1 + B1 * 2^T)]*P
相关阅读
测量小百科|计数器应用:计数器级联
测量小百科|计数器介绍