基于移相技术的改进等精度测频法
2020-06-02李海生
李海生
(长治学院电子信息与物理系,山西长治 046011)
频率作为脉冲信号的关键参数,在很多时候需要测量其精确值。如在航空领域,谐振式压力传感器常用来测量飞行器高度和空速,其输出的信号就是频率信号,获取实时准确压力值的关键就在于频率测量的响应速度和准确性[1-2]。在地质勘探和医疗检查等领域广泛使用的磁探测技术中,光泵磁力仪作为磁梯度探测的常用探头,其信号输出也是方波,其频率值与磁场值成比例,磁场的测量精度也取决于频率的测量[3-4]。随着电子技术和集成电路工艺的发展,信号频率不断提高,传统的频率测量方法已经满足不了越来越高的测量精度要求[5]。本文通过对传统频率测量方法的分析比较,结合最新的技术发展,提出了一种基于等精度频率测量的改进型方法,可以使得基于现有的硬件运行最高速度上再提升几倍测量精度。
1 频率测量方法
在现代测频技术中,频率测量一般采用电子计数法较多,通过电子计数器对周期信号在单位时间内变化次数的计数,从而得到其频率值。测量频率一般常用的三种方法,分别是测频法、测周法和等精度测频法[6]。
1.1 测频法
测频法是通过在一定闸门时间T0内对被测信号进行频率计数,通过得到的计数值Nf来计算被测信号的频率fx,其计算方法:
当T0取1s 时,计数值Nf就是被测信号的频率。但由于闸门时间T0无法与被测信号同步对齐,可能存在±1的计数误差,这种频率量化到来的误差又称为量化误差,用相对误差表示为:
这种测量方法的精度主要取决于计数误差,当T0一定时,由式(2)可知,相对误差与被测信号的频率fx反比,当测量的信号越大时,测量的相对误差就越小,所以测频法适用于高频信号的测量[7]。
1.2 测周法
测周法也叫周期测频法,是将被测信号的周期作为计数的闸门时间,对标准信号fs的脉冲计数来得到测量信号的周期。当闸门宽度是被测信号的一个周期Tx时,通过计数的结果Nt就可以计算出被测信号频率fx,即
测周法有类似于测频法的±1的计数误差,表示为:
由式(4)可知,当标准信号周期fs一定时,测周法的相对误差是随着测量频率的减小而减小,故此方法适合测量低频信号[7]。
1.3 等精度测频法
等精度测频法是测频法的延伸和改进,是利用闸门时间对被测信号和标准信号同时进行脉冲计数,不过这个闸门时间是不确定的值,而始终保持为被测信号周期的整数倍[8]。
在等精度测频中,通过闸门信号来控制两个计数器分别对被测信号为fx和标准时钟信号fs进行计数,得到计数结果分别为Nx和Ns。那么被测信号频率为:
在测量过程中,预置闸门信号开启时(即预置闸门上升沿到来),两个计数器并不马上开始进行计数,而是等被测信号fx的上升沿到来时,计数器才真正开始工作[9]。同样,在预置闸门信号关闭时,计数器也不立即停止工作,而是等被测信号fx的最近一个上升沿到来时才结束计数,完成一次测量,测量的时序关系如图1所示。
图1 等精度测频时序图
由图1可以看到,实际闸门信号时间τ并不一定是预置闸门时间τ0,而是根据被测信号fx微调整过的,前提是保证每次闸门信号有效时间是被测信号周期的整数倍,即:
因此,这种方法有效的避免了对被测信号计数Nx所产生的±1的计数误差,不会出现类似于测频法的低频精度差,高频精度高的现象。在忽略标准信号fs本身误差(晶振等产生的误差),此时精度测频法的误差主要来源于对标准时钟信号计数Ns的±1误差[10],相对误差为:
通过式(7)可知,测量频率的相对误差与被测信号频率无关,仅与实际闸门时间τ和标准时钟信号fs有关,所以说是等精度测频法的测量精度在整个测试频段内都是一样的,不会随测量频率而改变。
2 基于移相技术的等精度测频法原理
等精度测频法作为常用的一种频率测量方法,其测量精度不受测量信号频率的影响,只和计数的闸门时间和标准时钟频率有关。由于延长计数闸门时间会影响到测量的实时性,所以只能通过提高标准时钟信号的频率来提高测量精度。尽管利用FPGA 里的倍频技术可以将晶振时钟提高到几百兆,但由于FPGA 最高工作频率的限制,达到硬件的极限后无法继续再提高。
通过采用移相技术,使用多路移相的同频时钟,同时进行频率测量计数,这种改进型方法可以在等精度测量的基础上进一步提高测量精度。其原理是将标准时钟信号fx进行移相产生多路时钟信号,在闸门时间内,多路时钟信号同时进行计数,由于几路时钟信号有相位差,可以减小Ns的±1计数误差,从而将测量精度提高几倍[11-12],基于4路移相时钟的等精度测频时序如图2所示。
图2 基于4路移相时钟的等精度测频时序图
在图2 中,4 路标准时钟信号fs,fs90,fs180,fs270是同频时钟,相位分别是0°,90°,180°,270°,这4路时钟在闸门时间τ内同时进行计数,计数值分别为5,4,4,4,其和为17,通过除以时钟数得到较为精确的计数值为4.25,与一路时钟相比,精度提高了4倍。如果同频时钟增加到m路的话,其每路时钟相移为2π/m,第k路时钟的计数结果为Nk,则最后频率测量计数结果为;
将式(8)代入到式(7)可得,改进的等精度测频法的相对误差为;
采用m路不同相位的时钟信号进行等精度测频,其测量精度相比于传统的一路时钟测量,可以提高m倍。
3 测频系统的设计验证
通过采用FPGA 和单片机相结合,设计了频率测量系统,对改进型的等精度频率测量方法进行实验验证。FPGA 选用Altera 公司低成本、低功耗的Cyclone IV 系列芯片EP4CE15E22C8N,单片机选用32位的处理器STM32F103RCT6。先通过FPGA完成外部脉冲信号的频率计数,再将得到的频率数据通过RS232整体打包发送给单片机进行数据处理和参数信息显示,频率测量系统设计框图如图3所示。
图3 频率测量系统框图
采用时钟倍频技术和时钟移相技术相结合,在FPGA对改进的等精度测频法进行了验证。由外部晶振给FPGA 提供50 MHz 的时钟输入,经FPGA 内部的PLL 倍频和移相,产生4 路相位分别为0°,90°,180°,270°的250MHz 标准同频时钟信号clk_250M_0,clk_250M_90,clk_250M_180,clk_250M_270。通过闸门信号T0_gate 控制被测信号计数器fx_cnt 和4 个不同相位的时钟信号计数器fbase0_cnt,fbase90_cnt,fbase180_cnt,fbase270_cnt的工作,从而完成频率测量计数,在ModelSim的仿真时序图如图4所示。
图4 基于改进的等精度测频法的仿真时序图
当FPGA 监测到单片机发送的开始工作信号Start_sig后,FPGA就开始进行一次频率的测量,并根据被测信号fx对预置闸门信号T0_gate进行调整,确保调整后的实际闸门信号Real_gate的有效时间τ是被测信号周期的整数倍。在闸门时间内,被测信号计数器和4 个标准时钟计数器完成频率的计数。当闸门信号结束后,计数器都停止工作,输出计数值,FPGA 发送测量完成信号Done_sig 给单片机,并把数据通过串口发送给单片机,单片机完成数据的处理和信息显示,至此测量系统完成一次频率测量,接着FPGA等待下一次的开始测量信号。
在图4 的仿真时序图中,输入信号fx的周期是30.6 ns,4路标准时钟信号周期是4 ns,为了仿真方便,预置闸门时间τ设置为100 ns,而实际闸门信号是Real_gate,根据仿真结果可以看到,有效时间调整成了3倍的被测信号周期。Nx的计数值3,4路标准时钟信号计数值分别为22,23,23,23,通过式(8)计算可得得到计数结果Ns是22.75,代入到式(5)可得被测信号的周期约是30.33 ns。由式(9)可知理论的相对误差为1%,实际测量的相对误差为0.87%,相比于一路时钟进行等精度测量,测量的精度提高了4倍。
预置闸门有效时间τ取1 μ s 时,改进的等精度测量系统相对误差可达0.1%.。τ的取值会影响到测量的相对误差,一般τ至少是大于被测信号的一个周期。当τ太小会在测量低频信号时,测量的相对误差会比较大。太大会影响到频率测量的动态响应,导致测量周期变长,无法实时反映出频率的变化,所以,一般根据实际应用场景择中选择。
4 结语
通过利用锁相环的倍频和移相技术,对传统的等精度测频法进行了改进,采用多路移相的同频时钟同时完成测频计数,相比于原有的测量精度可以提高多倍,在器件工作最高频率的限制的基础上提高测量精度。最后使用FPGA和单片机设计了频率测量系统,通过在FPGA 上进行实验验证,设计的基于4路移相的同频时钟测量系统,其测量精度相比于传统的等精度测量提高了4倍。此方法可以应用于动态的高频信号的实时频率测量中,同时,还可以用来精密时间间隔的测量,比如脉冲的上升沿和下降沿等,具有很广泛的应用价值。