基于FPGA的高速高精度频率测量的研究
δ=|ΔNs|/Ns≤1/Ns=1/(τ·fs)
由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量。闸门时间越长,标准频率越高,测频的相对误差就越小。标准频率可由稳定度好、精度高的高频率晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测试速度。表1所列为标频在10MHz时闸门时间与最大允许误差的对应关系。
表1 闸门时间与精度的关系
0.1
1 10 -5
10 -6
10 -7
等精度测频的实现方法可简化为图2所示的框图。CNT1和CNT2是两个可控计数器,标准频率(fs)信号从CNT1的时钟输入端CLK输入;经整形后的被测信号(fx)从CNT2的时钟输入端CLK输入。每个计数器中的CEN输入端为时钟使能端控制时钟输入。当预置门信号为高电平(预置时间开始)时,被测信号的上升沿通过D触发器的输出端,同时启动两个计数器计数;同样,当预置门信号为低电平(预置时间结束)时,被测信号的上升沿通过D触发器的输出端,同时关闭计数器的计数。
2 硬件设计
在快速测量的要求下,要保证较高精度的测频,必须采用较高的标准频率信号;而单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求。采用高集成度、高速的现场可编程门阵列FPGA为实现高速,高精度的测频提供了保证。
FPGA是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA(电子设计自动化)技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景;并且FPGA具有高集成度、高可靠性,几乎可将整个设计系统下载于同一芯片中,实现所谓片上系统,从而大大缩小其体积。
整个测频系统分为多个功能模块,如信号同步输入、控制部件、分频和计数部件、定时、脉冲宽度测量、数码显示、放大整形和标频信号等模块。除数码管、放大整形和标频信号外,其它模块可集成于FPGA芯片中,并且各逻辑模块用硬件描述语言HDL来描述其功能,如用VHDL或AHDL来对各功能模块进行逻辑描述。然后通过EDA开发平台,对设计文件自动地完成逻辑编译、逻辑化简、综合及优化、逻辑布局布线、逻辑仿真,最后对FPGA芯片进行编程,以实现系统的设计要求。
图3所示为测频主系统框图。一片FPGA(EPF10K10LC84)可完成各种测试功能,可利用单片机完成数据处理和显示输出。在标准频率信号为60MHz的情况下,其测量精度可达到1.1×10 -8,即能够显示近8位有效数字。其中A0~A7和B0~B7为两计数器的计数值输出。计数器是32位二进制计数器(4个8位计数值)。单片机通过[R1,R0]数据读出选通端分别从这两个计数值输出端读出4个8位计数值,根据测频和测脉宽原理公式计算出频和脉冲宽度。STR为预置门启动输入;F/T为测频和测脉宽选择;CH为自校/测频选择;Fa为自校频率输入端;Fs为标准频率信号输入端;Fx为经过放大整形后的被测信号输入端;END为计数结束状态信号。
FPGA中各功能模块如图4所示。
图4中,CH1和CH2为选择器,CH1进行自校/测频选择,CH2进行测频和测脉宽选择。CONTRL1为控制模块,控制被测信号fx和标频信号fs的导通,以及两个计数器(CONTa和CONTb)的计数。CONTa和CONTb为32位计数器,分别以4个8位二进制数输出。
图4 FPGA中各功能模块
FPGA与单片机AT89C51的接口比较简单。图3中的输入/输出端与单片机连接:A[7..0]与单片机P2端口相连接;B[7..0]与单片机P0口相连接;其它输入/输出端与单片机P3口相连接。
结语
随着EDA技术和FPGA集成度的提高
《基于FPGA的高速高精度频率测量的研究(第2页)》