1、等精度频率测量方法【摘要】本文主要论述了利用 FPGA(Field Programmable Gate Array,现场可编程门阵列)进行测频计数,单片机实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。 【关键词】FPGA VHDL 频率测量 单片机 一、硬件电路设计 (一)系统顶层电路设计 等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模的 FPGA 芯片难以实现。因此,我们选择单片机和 FPGA
2、的结合来实现单片机完成整个测量电路的测试控制、数据处理和显示输出;FPGA 完成测频功能。显示电路采用 7 段 LED 动态显示,由单片机 P2 口直接驱动。 等精度频率计主要由由以下几个部分构成: 信号放大整形电路:用于对待测信号进行放大整形,以便作为 FPGA的输入信号。 测频电路:是测频的核心模块,由 FPGA 担任。 单片机模块:用于控制 FPGA 的测频操作和读取测频数据,并发出相应数据处理。安排单片机的 P0 口直接读取测试数据。控制命令从 P1 口或是 P3 的相关口线发出。 20MHz 的标准频率信号源:本模块采用倍频技术,倍频出一个100MHz 标准频率信号源,产生 100M
3、Hz 的标准频率给 FPGA 使用。 数码管显示模块:采用 8 个 7 段 LED 动态显示,使用 P2 口作为段信息的输出,使用 P1 口的低四位控制串行移位寄存器的三个输入及 CLK 端,实现 LED 的动态扫描。 (二)FPGA 测频模块逻辑设计 与单片机的接口按照如下方式连接: 单片机的 P0 口接 8 位数据 DATA7.0,负责读取测频数据; START 信号输出到单片机的 P3.2 口线,通过中断的方式来判断计数是否结束,以确定何时可以读取数据; P1.6,P1.5 和 P1.4 与 SEL2.0相接,用于控制多路数据选择器,当 SEL 分别为“000” 、 “001”、 “01
4、0”、 “011”时,由低 8 位到高 8 位读出标准频率计数值;当 SEL 分别为“100” 、 “101”、 “110”、 “111”时,由低 8 位到高 8 位读出待测频率计数值。 P3.3 接清零信号 CLR,高电平有效。每一个测频周期开始,都应该首先清零。 P1.7 接预置门控信号 CL,CL 是由定时器 T0 产生的一个周期为 2S 的方波信号,即每隔 1S 钟左右测试一次频率,频率低于 1Hz 后,测频的间隔会大于 1S 钟,特别是待测频率为 0.1Hz 时,每隔 10S 钟测试一次。 (三)单片机主控模块 STC89C52RC 单片机是宏晶科技推出的新一代超强抗干扰/高速/低功
5、耗的单片机,指令代码完全兼容传统的 8051 单片机,12 时钟/机器周期和 6 时钟/机器周期可以任意选择。其封装有 LQFP44,PDIP40,PLCC44及 PQFQ44,本设计中所使用的是 PDIP40 封装。 (四)外围电路设计 (1)电源模块。整个电路的供电电源由 220V 交流经变压、整流、滤波后,由一片 78L05 三端稳压器向系统提供+5V 电压信号。 (2)LED 数码管显示电路。本设计中采用 LED 数码管动态显示。8位数码管采用两个 4 位一体的共阳型数码管组成;段信息使用单片机的P2 控制;为了节约口线,在位的控制上,采用了一片 74LS138 芯片,把A,B,C 三
6、个脚分别用 P1.0、P1.1 及 P1.2 控制,此外把 6 号脚接单片机P1.3 脚,用来控制数码管的亮灭。 (3)其他电路。单片机的时钟电路由 12MHz 的晶振提供。FPGA 的标准频率信号由 20MHz 的有源晶振提供。被测信号经过放大整形电路调理后输入。 二、软件设计 (一)硬件描述语言设计 在本测频系统中,对标准频率信号和被测信号进行测试功能的工作由 FPGA 来完成。其硬件电路的实现在前面已述,其软件部分由 VHDL 语言实现。 (二)单片机的 C 语言编程 单片机在该系统中,主要是完成整个测量电路的测试控制、数据处理和显示输出。系统启动后,如不能正常测试,可以由按键强制性清零
7、。主程序不断的扫描显示程序,并扫描计数结束标识 START 是否为零,一旦为零,立即把 FPGA 的两个计数器技术结果取出、计算,把计算的结果送去显示。在资源的分配上,除了用于控制 FGPA 的外,P2 口用来进行LED 数码管段信息的处理;P1 口的低四位用来控制 LED 数码管的位(其中 P1.0,P1.1,P1.2 控制 74LS138 的三个输入端 A,B,C 实现 3-8 译码,P1.3 控制 74LS138 的 CLR 端,用以实现位的关和开) ;P3.5,P3.6,P3.7控制测频后的单位显示(P3.5 是 MHz,P3.6 是 KHZ) 。 三、系统测试 测频精度分析。由第一章
8、所述的测量原理可知,本系统的测频公式为:Fx=(FsNx )/Ns 其误差分析如下: 设所测频率值为 Fx,其真实值为 Fxe,标准频率为 Fs。在一次测量中,由于 Fx 计数的起停时间都是由该信号的上跳沿触发的,在 Tpr 时间内 Fx 的计数 Nx 无误差;此时内的计数 Ns 最多相差一个脉冲,即|Ns|1。 四、总结 该测频系统经过软硬件设计,经过实验仿真分析及验证,各项功能达到预定的设计指标。在开发过程中,综合运用了QuartusII、Keil、Protel99SE 等开发工具,使用了 VHDL 及 C 语言,在论文写作及作图时还用到了 Word、Visio、画图板等软件。 该系统的特点是克服了传统的测频法或测周法的不足,能在频率范围变化较大时,都有比较高的测量精度。