摘要I摘要本文主要论述了利用FPGA(FieldProgrammableGateArray,现场可编程门阵列)进行测频计数,单片机实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。设计中用一块FPGA芯片(型号为CycloneⅡ的EP2C5T144C8N)完成各种时序逻辑控制、计数功能。在QuartusⅡ平台上,用VHDL语言编程完成了FPGA的软件设计、编译、调试、仿真和下载。用STC89C52RC单片机作为系统的主控部件,实现整个电路的测试信号控制,数据运算处理和控制数码管的显示输出。系统将单片机的控制灵活性及FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。文章详细论述了系统自上而下的设计方法及各部分硬件电路组成及单片机、FPGA的软件编程设计。使用杭州康芯KX-7C5T型EDA实验开发与电子设计学习板为主的实验环境下,配合单片机最小系统对软硬件进行仿真和验证,达到了较高的测量精度和测量速度。关键词:FPGA,VHDL,频率计,单片机,STC89C52RC目录II目录摘要..............................................................................................................................I第一章概论................................................................................................................11.1课题研究的目的和意义.......................................................................................11.2测量原理..............................................................................................................11.3系统设计指标......................................................................................................3第二章硬件电路设计..................................................................................................52.1系统顶层电路设计..............................................................................................52.2FPGA测频模块逻辑设计....................................................................................52.3单片机主控模块..................................................................................................62.4外围电路设计......................................................................................................8第三章软件设计........................................................................................................113.1QUARTUSII概述.................................................................................................113.2VHDL语言简介.................................................................................................123.3频率计FPGA模块的顶层设计........................................................................123.4频率计FPGA模块的仿真................................................................................143.5单片机的C语言编程........................................................................................15第四章系统测试......................................................................................................174.1测频精度分析....................................................................................................174.2实验测试数据.....................................................................................................18第五章总结................................................................................................................19致谢...........................................................................................................................21参考文献......................................................................................................................23第一章概论1第一章概论1.1课题研究的目的和意义测频一直以来都是电子和通讯系统工作的重要手段之一。高精度的测频仪有着广泛的市场前景。以往的测频仪都是在低频段利用测周期的方法、高频段用测频率的方法,其精度往往会随着被测频率的下降而下降。基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。所以等精度频率计有研究的价值。1.2测量原理等精度测频法:其实现方法可用主控结构图1-1和波形图1-2来说明。ENBCLKCLRBZQ[31..0]BZHCLR1ENBCLKCLRBZQ[31..0]TFCLR1DQCLRMUX64-8数据输出通道选择SEL[2..0]SEL[2..0]清零信号CLR待测信号TCLK预置门控制信号CL100MHZ标准频率信号BCLK外部清零信号CLR1323283DATA[8..0]START图1-1等精度频率计主控结构图图1-2频率计测控时序Tpr计数允许周期淮安信息职业技术学院毕业设计论文2图1-1中的“预置门信号”CL由单片机发出,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为Tpr。BZH和TF模块是两个可控的32位高速计数器,EN为它们的技术允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为Fs;经放大整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为Fxe,被测频率为Fx。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器清零,同时通过信号EN,禁止两个计数器计数。这是一个初始化操作。如果系统启动不能正常清零,可以由外部的按键强制清零。然后由单片机发出允许测频信号,即令预置门控信号CL为高电平(把图1-1和图1-2结合起来看),这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1(即令START为高电平),与此同时,将同时启动计数器BZH和TF,进入图1-2所示的“计数允许周期”。在此期间,BZH和TF分别对被测信号(频率为Fx)和标准频率信号(Fs=100MHz)同时计数。当Tpr秒后,预置门信号被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。由图1-2可见,CL的宽度和发生的时间都不会影响这样一个事实,计数使能信号(START)允许计数的周期总是恰好等于待测信号TCLK的完整周期数,这正是确保TCLK在任何频率条件下都能保持恒定精度的关键。而且,CL宽度的改变以及随机的出现时间造成的误差最多只有BCLK信号的一个时钟周期,但是BCLK是倍频后的100MHz信号,则任何时刻的绝对测量误差只有亿分之一秒。被测频率值为Fx,标准频率为Fs,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准信号的计数值为Ns,则下式成立:Nx/Fx=Ns/Fs……………………①由此式可推得:Fx=(Fs×Nx)/Ns…………………②最后通过控制SEL选择信号和64位至8位的多路选择器MUX64-8,将计数器BHZ和TF中两个32位数据分8次读入单片机并按式②进行计算和结果显示。第一章概论31.3系统设计指标设计并制作出一种数字频率计,其技术指标如下:(1)频率测量范围:0.1Hz—128MHz;(2)输入电压幅度:300mV;(3)输入信号波形:任意周期方波信号;(4)显示位数:8位LED数码管显示;(5)电源:220V、50Hz。淮安信息职业技术学院毕业设计论文4第二章硬件电路设计5第二章硬件电路设计2.1系统顶层电路设计等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模的FPGA芯片难以实现。因此,我们选择单片机和FPGA的结合来实现。电路系统原理图如图2-1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;FPGA完成测频功能。显示电路采用7段LED动态显示,由单片机P2口直接驱动。STC89C52RC单片机P0P27段LED数码管20MHz晶振倍频到100MHz信号放大整形电路待测信号BCLKTCLKFPGADATA[7..0]图2-1系统原理图等精度频率计主要由由以下几个部分构成:①信号放大整形电路:用于对待测信号进行放大整形,以便作为FPGA的输入信号。②测频电路:是测频的核心模块,由FPGA担任。③单片机模块:用于控制FPGA的测频操作和读取测频数据,并发出相应数据处理。安排单片机的P0口直接读取测试数据。控制命令从P1口或是P3的相关口线发出。④20MHz的标准频率信号源:本模块采用倍频技术,倍频出一个100MHz标准频率信号源,产生1