1基于FPGA和单片机的多功能等精度频率计设计摘要基于传统测频原理的频率计的测量精度将随着被测信号频率的下降而降低,在实用中有很大的局限性,而等精度频率计不但有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。运用等精度测量原理,结合单片机技术设计了一种数字频率计,由于采用了屏蔽驱动电路及数字均值滤波等技术措施,因而能在较宽定的频率范围和幅度范围内对频率,周期,脉宽,占空比等参数进行测量,并可通过调整闸门时间预置测量精度。选取的这种综合测量法作为数字频率计的测量算法,提出了基于FPGA的数字频率计的设计方案。给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。关键词等精度测量,单片机,频率计,闸门时间,FPGA2ABSTRACTAlongwithismeasuredbasedonthetraditionalfrequencymeasurementprinciplefrequencymetermeasuringaccuracythesignallingfrequencythedropbuttoreduce,inispracticalhastheverybiglimitation,butandsoontheprecisionfrequencymeternotonlyhasteachesthehighmeasuringaccuracy,moreovermaintainstheconstanttestprecisionintheentirefrequencymeasurementregion.Usingandsoontheprecisionsurveyprinciple,unifiedthemonolithicintegratedcircuittechnicaldesignonekindofnumeralfrequencymeter,becausehasusedtheshieldactuationelectriccircuitandtechnicalmeasureandsoondigitalaveragevaluefilter,thuscouldincomparedinthefrequencyrangeandthescopescopewhichthewidthdecidedtothefrequency,thecycle,thepulsewidth,occupiedparameterandsoonspatialratiocarriesonthesurvey,andmightthroughtheadjustmentstrobetimeinitializationmeasuringaccuracy.Selectionthiskindofsynthesismeasuredthemensurationtookthedigitalfrequencymeterthesurveyalgorithm,proposedbasedontheFPGAdigitalfrequencymeterdesignproposal.Hasproducedthisdesignproposalactualsurveyeffect,provedthisdesignproposalispracticalandfeasible,canachievethehighfrequencymeasurementprecisionKeywordsPrecisionsurvey,microcontroller,frequencymeter,strobetime,fieldprogrammablegatearray31绪论测量频率是电子测量技术中最常见的测量之一。不少物理量的测量,如时间、速度等都涉及到或本身可转化为频率的测量。目前,市场上有各种多功能、高精度、高频率的数字频率计,但价格不菲。而在实际工程中,并不是对所有信号的频率测量都要求达到非常高的精度。目前,有三种常用的数字频率的测量方法:直接测量法(以下称M法)、周期测量法(以下称T法)和综合测量法(以下称M/T法)。M法是在给定的闸门时间内测量被测信号的脉冲个数,进行换算得出被测信号的频率。T法是通过测量被测信号一个周期时间计时信号的脉冲个数,然后换算出被测信号的频率。这两种测量法的精度都与被测信号有关,因而它们属于非等精度测量法。而M/T法它通过测量被测信号数个周期的时间,然后换算得出被测信号的频率,克服了测量精度对被测信号的依赖性。M/T法的核心思想是通过闸门信号与被测信号同步,将闸门时间τ控制为被测信号周期长度的整数倍。测量时,先打开预置闸门,当检测到被测信号脉冲沿到达时,标准信号时钟开始计数。预置闸门关闭时,标准信号并不立即停止计数,而是等检测到被测信号脉冲沿到达时才停止,完成被测信号整数周期的测量。测量的实际闸门时间与预置闸门时间可能不完全相同,但最大差值不超过被测信号的一个周期。42系统设计方案2.1系统设计方案的选择根据频率计的设计要求,我们可将整个电路系统划分为几个模块,频率测量模块,周期测量模块,脉宽测量模块,和占空比测量模块。标准频率发生电路采用高频率稳定度和高精度的晶镇作为标准频率发生器。如图所示。各模块的实现均有几种不同的设计方案。图13.1频率计组成模块框图标准频率信号发生电路脉冲宽度测量电路脉冲信号处理电路占空比测量电路前置放大电路波形整形电路控制与数据处理电路显示电路稳压电源频率、周期测量电路被测信号输入预置门控信号图2.1频率计组成模块框图2.1.1频率测量模块①直接测频法:把被测频率信号经脉冲整形电路处理后加到闸门的一个出入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲送到十进制计数器进行计数;设计数器的值为N,则可得到被测信号频率为f=N/T,经分析,本测量在低频率的相对测量误差较大,即在低频段不能满足本设计的要求。②组合测频法:这种方法可以在一定程度上弥补方法(1)中的不足,但是难以确定最佳分测点,且电路实现较复杂。③倍频法:是指把频率测量范围分成多个频段,使用倍频技术,根据频段设5置倍频系数,将经整形的低频信号进行倍频后在进行测量,对高频段则直接进行测量。倍频法较难实现。④等精度测频法:其实现方式可用图2.2来说明。图中,预置门控信号是宽度为TPR的一个脉冲,CNT1和CNT2是两个可控计数器。标准频率信号从CNT1的时钟输出端CLK输入,其频率为fs,经整形后的被测信号从CNT2的时钟输入端CLK输入,设其实际频率为fx;当预置门控信号为高时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNT1和CNT2。CNT1和CNT2分别对被测信号(频率为fs)和标准频率信号(频率为fx)同时计数。当预置门信号为低时,随后而至的被测信号的上升沿将两个计数器同时关闭。设在一次预置门时间Tpr内对被测信号的计数值为Nx,对标准信号的计数值为Ns。则下式成立:fx/Nx=fs/Ns由此推得:fx=fs*Nx/Ns图2.2等精度测频法原理框图若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是该信号的上跳沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,即fx/Nx=fs/Ns,则下式成立:fxe/Nx=fs/Ns+△et可分别推得fx=fs*Nx/Nsfxe=fs*Nx/Ns+△etDQCLKENCLKCNT1OUT1CLRCLRCLKCLKENCNT2OUT1●●●预置门控信号标准频率信号被测信号清零信号6根据相对误差的公式有:△fxe/fxe=fxe-fx/fxe经整理可得到:△fxe/fxe=△et/Ns因△et≤1,故△fxe/fxe≤1/NsNs=Tpr*fs根据以上分析,我们可知等精度测频法具有三个特点:1,相对测量误差与被测频率的高低无关;2,增大Tpr或fs可以增大Ns,减少测量误差,提高测量精度;3,测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,在预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变;经过综合考虑,结合设计需求,选用第④种方案,即用等精度测频法来实现本设计频率测量。2.1.2周期测量模块①直接周期测量法:用被测信号经放大整形后形成的方波信号直接控制计数门控电路,使主门开放时间等于信号周期Tx,时标为Ts的脉冲在主门开放时间进入计数器。设在Tx期间计数值为N,可以根据以下公式来算得被测信号周期:Tx=N*Ts经误差分析,可得结论:用该测量法测量时,被测信号的频率越高,测量误差越大。②等精度周期测量法:该方法在测量电路和测量精度上与等精度测量完全相同,只是在进行计算时公式不同,在周期1/T代换频率f即可,其计算公式为Tx=Ts*Ns/Nx从降低电路的复杂度及提高精度(特别是高频)上考虑,本设计拟采用方法②测量被测信号的周期。2.1.3脉宽测量模块在进行脉冲宽度测量时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上部分才能输入数字测量部分。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿是关闭计数器,设脉冲宽度为Twx,计算公式为:Twx=Nx/fs。73系统总体设计方案等精度数字频率计涉及到的计算包括加,减,乘,除,耗用的资源比较大,用一般中小规模CPLD/FPGA芯片难以实现。因此,我们选择单片机和CPLD/FPGA的结合来实现。电路系统原理框图如图所示,其中单片机完成整个测量电路的测试控制,数据处理和显示输出;CPLD/FPGA完成各种测试功能;键盘信号由AT89C51单片机进行处理,它从CPLD/FPGA读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用七段LED动态显示,由8个芯片74LS164分别驱动数码管。系统的基本工作方式如下:①P0是单片机与FPGA的数据传送通信口,P1口用于键盘扫描,实现各测试功能的转换;P2口为双向控制口。P3口为LED的串行显示控制口;系统设置5个功能键:占空比,脉宽,周期,频率,和复位。②7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。③BCLK为测频标准频率为50MHz信号输入端,由晶体震荡源电路提供。④待测信号经放大整形后输入CPLD/FPGA的TCL4CPLD/FPGA测频专用模块的VHDL程序设计4.1测频模块逻辑结构利用VHDL程序设计的测频模块逻辑结构如图所示,其中有关的接口信号规定如下:①TP(P2.7):TF=0时等精度测频;TF=1时测脉宽;②CLR/TRIG(P2.6):当TF=0时系统全清零功能;当TF=1时CLRTRIG的上跳沿将启动CNT2,进行脉宽测试计数;③ENDD(P2.4):脉宽计数结束状态信号,ENDD=1计数结束;④CHOICE(P3.2):自校/测频选择,CHOICE=1测频;CHOICE=0自校;⑤START(P2.5):当TF=0时,作为预置门闸,门宽可通过键盘由单片机控制,START=1时预置门开;当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。利用此功能可分别获得脉宽和占空比数据。8⑥EEDN(P2.3):等精度测频计数结束状态信号,EEND=0时计数结束。⑦SEL[P2.2](P2.2,P2.1,P2.0):计数值读出选通控制;当SEL[2.0]=“000”,“001”,“010”...“111”时,将CNT1,CNT2的计数值分8次,每次读出8位,并传达到单片机的P0口。CHKFFINCHOISFOUTFINSTARTCLRFSDCLK1EENDCLK2CLRCCLRCLKQ[31..0]CNT1Q1[31..0]Q2[31..0]SEL[2..0]OO[7..0]CLRQ[31..0]CNT2CLKCLRSTARTFINPULENDDCONTRL2CLK2FSDCNLPULCLKOUTGATEFINCONTRLDSEL24427OUTPUT4