基于FPGA的等精度数字频率计的设计
摘 要
频率测量是当今电子测量领域很重要的测量之一,测频率方法的研究越来越受到重视。为了克服传统频率测量计的缺点,本课题为基于FPGA的等精度数字频率计的设计。该频率计能实现了0.1Hz-50MHz信号频率的等精度频率测量,此外,该系统还可以测方波信号宽度及高、低电平的占空比。频率计的整体包括软硬件的结合,并由单片机控制实现。
本文详细论述频率计的软件控制流程。在Quartus II软件开发环境下,采用硬件描述语言VHDL,实现了数字频率计的设计。先将整个系统的各个模块编程出来,生成的模块可以根据硬件电路需求进行管脚连接,形成芯片电路,功能与实际电路相同。仿真电路结果表明,可以实现频率、脉宽及占空比的测量。
查看完整论文请+Q: 351916072
关键字:字频率计;等精度;模块;仿真
目 录
摘 要 I
ABSTRACT II
目 录 III
第一章 绪论 1
1.1 FPGA简介 1
1.2 测频方法原理及比较 1
1.2.1 直接测频法 2
1.2.2 测周期法 2
1.2.3 等精度测频法 2
1.3 设计工具简介 4
1.3.1 Quartus II 4
1.3.2 VHDL语言 6
第二章 系统总体设计 8
2.1 实现方案论证及比较 8
2.2 系统参数指标 8
2.3 测频技术性能比较 9
2.3.1 电子测频技术 9
2.3.2 电子计数器测周期原理 10
2.3.3 等精度测频技术 10
2.4 系统原理框图 11
第三章 系统模块设计及仿真 12
3.1 系统整体电路 12
3.2 自校、测试频率选择模块 12
3.3 测频、周期控制模块 14
3.4 测脉宽、占空比控制模块 16
3.5 计数器二频率切换模块 20
3.6 计数模块 21
3.7 显示模块 23
第四章 系统测试与分析 26
4.1 测频功能 26
4.2 测脉宽占空比功能 27
4.3 系统整体运行分析 28
4.4 系统误差分析 30
第五章 总结与展望 32
5.1 工作总结 32
5.2 课题展望 32
致谢 33
参考文献 34
附录 36
附录一:图目录 36
附录二:科技文献翻译 37
第一章 绪论
课题要求是设计基于FPGA的等精度数字频率计,为了更好的完成要求,对有关内容的资料查询工作显得尤为重要。
1.1 FPGA简介
FPGA(Field Programmable Gate Array)现场可编程门阵列,它是由PAL、GAL、EPLD等器件发展而来。它作为一种半定制电路,弥补了定制电路的缺点,同时又解决了传统可编程器件门电路数有限的问题。FPGA是一种集成密度很高的可编程逻辑器件,它是由全球可编程逻辑器件领先商Xilinx公司发明的,由于一系列的优势,FPGA在实际的电子设计和生产中得到了很快的普及。
FPGA中采用了逻辑单元阵列LCA(Logic Cell Array),里面包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。在这其中CLB是逻辑块,它的特点是粒度小,因而只能当做逻辑单元,每块芯片中有几十到近千个这样的单元。IOB是实现FPGA逻辑功能的窗口,信号过I/O口到达FPGA的内部,经过FPGA的逻辑处理后又通过I/O口输出。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做各种ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)在ASIC设计中,FPGA是周期最短、最便宜、风险最小的编程器件之一。
FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。同时 FPGA是开发者根据自己不同的功能需求而构造的带有特定逻辑功能的数字集成电路。其基本设计流程为:在一定的软件平台上,采用硬件描述语言或者原理图等输入方法,得到对应的文件,再通过下载器件将代码导入对应芯片,实现目标系统。
1.2 测频方法原理及比较
频率定义为单位时间内(一般为1s)信号的周期数,在实际测量中,频率测量的方法有直接测频法和测周期法,同时本文还将详述等精度测频法。
1.2.1 直接测频法
在给定的闸门时间T内,输入待测信号(或整形放大后的脉冲信号),然后用脉冲计数器对该信号进行计数,后转换为十进制数表示。若计数器计数值表示为N,则根据频率定义便可以得到待测信号的频率 。
1.2.2 测周期法
若取实际闸门为待测信号的一个周期时间内,用Fs表示标准频率信号,用Ns表示计数器所记录的标准频率信号周期数,则易得待测信号频率为 。该测量方法对于低频信号是适用的,但是对于实际频率测量时,很难确定最佳分测点,而且实现该功能的电路也很复杂,不过该方法倒是对直接测频法有一定效果的弥补。该方法会产生个字误差而且其测量精度将与系统中的计数器记录的数值有直接关联。
1.2.3 等精度测频法
对于上述测频法,等精度测频法与之相比有着独特的优点。为了实现与待测信号同步,等精度测频法将直接测频法的闸门时间T设定为待测信号周期的整数倍,即等精度测频法是从直接测频法上面改进而来。在闸门信号的控制下,用2个计数器对标准信号脉冲和待测信号脉冲分别进行计数,再通过一定的计算便可得到待测信号频率。我们可以用图一来详细说明等精度测频技术的原理。清零信号用来对2个计数器清零,预置门控信号为一宽度为T的脉冲信号,标准频率信号Fs输入到CNT1的CLK端,经处理过的待测信号脉冲Fx输入到CNT2的CLK端。当预置门控信号为高电平状态时,若遇到待测信号的上升沿,那么该上升沿将通过D触发器而使得2个计数器同时开始工作,即CNT1对标准频率信号(Fs)进行计数,CNT2对待测频率信号(Fx)进行计数。当预置门控信号为低电平状态时,随后若遇到待测信号的上升沿,此时该上升沿将通过D触发器使2个计数器停止工作。设在闸门时间T内,Ns为CNT1对标准频率信号计数大小,Nx为CNT2对待测信号频率计数大小,可以得到:
(1.1)
进而可以得到 (1.2)
图 1.1 等精度频率计实现方法
下面讲分析等精度测频法的误差来源:
图1.2 等精度频率测量时序图
我们将2个计数器实际计数的区间叫做“计数允许周期”,即为实际的闸门时间,因待测信号Fx的计数起止时间是由该信号的上升沿触发的,所以计数器对Fx的计数Nx是无误差的。从图中可知,在实际测量中,实际的闸门时间与预置的闸门时间并不是严格相等,但这两个时间之间的差值是小于或者等于待测信号的一个周期时间。对于待测信号而言,实际闸门时间是其整数个周期倍,但对于标准信号而言就不一定了,这样CNT1的计数Ns就会有±1的误差(△et<=1)。若设实际测量频率为Fxe,则:
(1.3)
(1.4)
进一步推导可得 (1.5)
(1.6)
根据相对误差公式可得
(1.7)
又因为△et<=1,所以 ,易知 ,最后可得:
(1.8)
根据上面详细的推导与分析,我们可以得到等精度测频法的特点:1.测量结果的相对测量误差大小与待测信号频率无关;2.相对误差只与闸门时间和标准信号频率有关,可以通过提高闸门时间和标准信号频率来提高测量精度,减少误差;3.在闸门时间和标准频率信号相同而待测频率不同的情况下,精度相同,即等精度测量。
结合上面分析,综合各方面要求,采用等精度测频方法能更好的实现频率测量。
在测量周期时,与其他方法相比,利用等精度测周期法能显著的提高测量精度,而且其测量电路与测频电路完全相同,只是进一步处理时采用不同的公式,公式为: 。同时可以进行脉宽和占空比的测量。
1.3 设计工具简介
1.3.1 Quartus II
Quartus II是由Altera研发推出的FPGA/CPLD集成开发环境,因其使用方便,界面友好等优点受到了很多研发者的喜欢。对于开发过程来说,该软件能支持与具体结构无关的设计开发环境,这样就能让开发者便捷地进行设计输入,快速处理以及编程。
在实际设计应用中,不同的设计开发者有着不同的设计需求,为此Quartus II软件也提供了多平台的设计环境。在SOPC(单芯片可编程系统)开发设计时,经常使用Quartus II作为其开发环境以及基本设计工具。对于大多数硬件描述语言,如HDL,VHDL,Verilog HDL,Quartus II软件里面内嵌其逻辑综合器,均能支持它们的设计流程。FPGA Compiler II等第三方的综合工具,Quartus II也能进行利用并能直接调用。
Quartus II有着很好的仿真功能,毕设过程使用最多的也就是其良好的仿真功能,能对各个模块进行仿真,得到预定效果后再生成仿FPGA芯片图,最后按照系统的整体需求进行电路图连接并进行整体功能性仿真直到达到系统预期的效果。在进行实现DSP硬件系统的EDA开发时,Quartus II 可与MATLAB和DSP Builder一起使用,将几个软件结合使用,即可进行基于FPGA的DSP硬件系统开发。
在Quartus II中内嵌模块化的编译器,在进行编译时,可以直接点击Start Compilation来使所有编译器模块进行工作,或者也可以选择Start来对各个模块进行编译处理。同时也可在Compiler Tool窗口中单独运行需编译的模块来开启对应的编译器模块。另外,在SOPC设计以及用Quartus II来设计文件时经常大量使用该软件内部的LPM( Library of Parameterized Modules),它们是组建整个系统的重要部分。对于Altera而言,它提供的LPM函数都针对不同的Altera器件结构进行了一系列的优化,在实际操作中,有了宏功能模块的加入就能利用Altera器件的一些硬件功能,比如芯片上LVDS驱动器、PLL、DSP模块等。
原文链接:http://www.jxszl.com/dzxx/txgc/1776.html