计算机毕业论文_基于FPGA的等精度频率计的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
前言...............................................................1 第一章 FPGA及Verilog HDL..........................................2 1.1 FPGA简介.....................................................2 1.2 Verilog HDL 概述.............................................2 第二章数字频率计的设计原理........................................3 2.1 设计要求.....................................................3 2.2 频率测量.....................................................3 2.3.系统的硬件框架设计..............................................4 2.4系统设计与方案论证............................................5 第三章数字频率计的设计............................................8 3.1系统设计顶层电路原理图........................................8 3.2频率计的VHDL设计.............................................9 第四章软件的测试...............................................15 4.1测试的环境——MAX+plusII.....................................15 4.2调试和器件编程...............................................15 4.3频率测试.....................................................16
基于FPGA的等精度频率计的设计与实现摘要:本文详细介绍了一种基于FPGA的高精度频率计。
首先论文概述了等精度测量频率的原理,该原理具有在整个测试频段内保持高精度频率测量的优点。
对于频率测量的一些主要参数、技术进行了讨论。
同时在该原理基础上,利用VHDL语言设计实现频率计内部
功能模块;采用AT89S52单片机进行数据运算处理,利用液晶显示器对测量的频率、占空比等进行实时显示,可读性好;还使用C语言设计了该等精度频率计的主控程序以提高测量精度。
充分发挥FPGA的
高速数据采集能力和单片机的高效计算与控制能力,使两者有机地结合起来。
在MUX+PULSⅡ EDA(电子设计自动化)开发平台上进行仿真、测试、并最终下载到FPGA芯片内部。
本设计实现了对频率变化
范围较大的信号进行频率测量,能够满足高速度、高精度的测频要。
文章的最后总结了整个系统的性能和特点,提出了值得进一步研究和优化的地方,并展望了其应用前景。
利用等精度测量原理,通过FPGA 运用VHDL编程设计一个数字式频率计,精度范围在DC~100 MHz,
给出实现代码和仿真波形。
设计具有较高的实用性和可靠性。
关键词:FPGA;等精度;频率计;VHDL
Design and Realization ofFrequency Meter with EqualPrecision
Measurementon FPGA
Electrical engineering and automation xu gang
Tutor yan shao min
Abstract:This paper describes an FPGA-based high-precision frequency counter. First of all, such as paper provides an overview of the principle of frequency measurement accuracy, the principle of the test in the whole band has to maintain the advantages of high precision frequency measurement. Frequency measurement for some of the key parameters, technology is discussed. At the same time, based on the principle of the use of VHDL language design and implementation of the internal functions of the frequency module; using AT89S52 Single-chip data processing, the use of liquid crystal display of the measured frequency, duty cycle, such as real-time display, good readability; Also designed using the C language of the accuracy of frequency control procedures to enhance measurement accuracy. Give full play to the FPGA's high-speed data acquisition capabilities and high-performance single-chip computation and control, so that the two combine. In MUX + PULS Ⅱ EDA (electronic design automation) simulation platform to develop, test, and ultimately downloaded to the FPGA chip. Design and Implementation of the changes in the frequency range of signal frequency measurement, to meet the high-speed, high-precision frequency measurement should be. The last
article summarizes the overall system performance and characteristics of a worthy of further study and optimization of the place, and look forward to the prospect of its application.A digitalfrequency meter isdesigned by using equalprecision measurementtheory,pass FPGA and program projectonVHDL in this paper.The frequency meter′precision extension is DC~100 MHz.The paper give realization code and simulationwaveform,the system have upper practicability and dependability.
Keywords:FPGA;equalprecision measurement;frequency meter;VHDL
1. 前言
1.1课题研究的目的和意义
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
数字式频率计的测量原理有两类:一是
直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。
直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数。
数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。
随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用Verilog HDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。
1.2基于FPGA的等精度频率计的发展现状
采用FPGA现场可编程门阵列为控制核心,通过硬件描述语言Verilog HDL编程,在MAX+PLUSII仿真平台上编译、仿真、调试,并下载到FPGA芯片上,通过严格的测试后,能够较准确地测量方波、正弦波、三角波、矩齿波等各种常用的信号的频率,而且还能对其他多种物理量进行测量。
现场可编程门阵列FPGA(Field Programmable GateArray)属于ASIC产品,通过软件编程对目标器件的结构和工作方式进行重构,能随时对设计进行调整,具有集成度高、结构灵活、开发周期短、快速可靠性高等特点,数字设计在其中快速发展。
1. FPGA及Verilog HDL
1.1 FPGA的简介:FPGA是英文Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
1.2 Verilog HDL 概述: Verilog HDL语言简洁,可读性强,有类似C语言的描述方法,可以成功用于大规模电路设计。
Verilog 是在1993年由GDA(Gate Way Design Automation)公司的Phil Moorby最早提出并与Cadence合伙发展verilog。
1989年Cadence收购GDA公司使verilog成为其私有财产,1990年Cadence公开verilog 语言,并且成立OVI(Open Verilog Intermational)组织来负责verilog的发展。
IEEE 于1995年制定了verilog标准,至此verilog就成为业界广泛使用的
标准语言。
除了Verilog HDL和VHDL外,其他还有如System C, superlog等,这些语言均在语言更简洁,自由度更强,提供更强大的仿真,验证功能等方向发展。
verilog hdl 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。
所有这些都使用同一种建模语言。
此外,verilog hdl 语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
verilog hdl 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。
因此,用这种语言编写的模型能够使用verilog 仿真器进行验证。
语言从c 编程语言中继承了多种操作符和结构。
verilog hdl 提供了扩展的建模能力,其中许多扩展最初很难理解。
但是,verilog hdl 语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。
当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述
从HDL开发讲,设计主要为分传统意义上的五个层次:系统级(system),算法级(algorithm) ,RTL(Register Transfer Level)级,逻辑级(Gate Level),开关级(switch level)。
系统级对性能进行描述,定出spec;算法级则细化到芯片输入/出的应答;RTL级是寄存器之间数据处理的关系(以上三种均为行为级); 逻辑级也称为门级,是确切的电路连接;开关级时已经到了晶体管电路。
具体用verilog HDL时,会使用两种框架来写,一种是结构型描述(structure description) ,另一种
为行为型描述(behavior description)
2. 数字频率计的设计原理
2.1设计要求:(1)对于频率测试功能,测频范围为0.1 Hz~70 MHz;对
于测频精度,测频全域相对误差恒为百万分之一。
(2)对于周期测试功能,信号测试范围与精度要求与测频功能相同。
(3)对于脉宽测试功能,测试范围为0.l uS~1s,测试精度为0.01 IIS。
(4)对于占空比测试功能,测试精度为1%~99%。
2.2频率测量
众所周知,所谓“频率”就是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可衰示为f=N/T 。
数字频率计测频率的原理框图可示如图1(a)。
其中脉冲形成电路的作用是:将被测信号变成脉冲信号,其重复频率等于被测频率fx。
时间基准信号发生器提供标准的时间脉冲信号、若其周期为1s。
则门控电路的输出信号持续时间亦准确地等于1s。
闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通.被测脉冲信号通过闸门送到计数译码显示电路。
秒信号结束时闸门关闭,计数器停止计数,
各点的波形如图1(b)所示。
由于计数器计得的脉冲数N是在1秒时间内的累计数所以被测频率fx=NHz。
目前,有三种常用的数字频率测量方法:直接测量法(以下称M法)、周期测量法(以下称T法)和综合测量法(以下称M/T法)。
M法是在给定的闸门时间内测量被测信号的脉冲个数,进行换算得出被测信号的频率。
T法是通过测量被测信号一个周期时间计时信号的脉冲个数,然后换算出被测信号的频率。
这两种测量法的精度都与被测信号有关,因而它们属于非等精度测量法。
而M/T法设实际闸门时间为t,
被测信号周期数为Nx,则它通过测量被测信号数个周期的时间,然后换算得出被测信号的频率,克服了测量精度对被测信号的依赖性。
M/T法的核心思想是通过闸门信号与被测信号同步,将闸门时间t控制为被测信号周期长度的整数倍。
测量时,先打开预置闸门,当检测到被测闸门关闭时,标准信号并不立即停止计数,而是等检测到的被测信号脉冲到达是才停止,完成被测信号的整数个周期的测量。
测量的实际闸门时间与预置闸门时间可能不完全相同,但最大差值不超过被测信号的一个周期。
2.3 系统的硬件框架设计
本系统由脉冲输入电路、整形电路、核心控制电路(由FPGA构成)
和输出显示电路组成,如图2所示。
图2 系统框图
控制的核心芯片是FPGA,它由两大功能模块组成:(1)频率计数模块,包含两个部分,选通时间控制部分,可改变选通时间;计数部分,根据选通时间的长短对被测信号正脉冲进行计数;(2)扫描显示模块,
对计数的结果进行扫描显示,从而完成整个测频率的过程。
外围的电路相对简单,只有信号输入整形电路和数码管显示电路。
系统的工作原理是,被测信号经整形生成矩形波输入到控制核心芯片FPGA的计数模块,计数模块根据所提供的矩形波上升沿计数,计数时间则由选通时间控制部分决定,根据频率所处的范围来决定档位;将计数的结果给显示电路,通过扫描,在数码管上显示频率的大小。
整形电路是将待测信号整形变成计数器所要求的脉冲信号。
电路形式采用由555定时器所构成的施密特触发器。
若待测信号为正弦波,输入整形电路,设置分析为瞬态分析,启动电路,其输入、输出波形如图1(b)所示。
由图可见输出为方波,二者频率相同,频率计测得方波的频率即为正弦波的频率。
2.4 系统设计与方案论证
设计采用实验教学中常用的altera公司的FLEX10K10系列芯片,该芯片的反应时间可达ns级,频率计的测频范围可为1Hz~999MHz。
系统在兼顾测量精度和测量反应时间的基础上,实现了量程的自动转换,测量可以全自动地进行。
其控制和逻辑电路是基于quartus II和VHDL语言进行设计,外部电路相当简单。
图3是本设计的顶层示意图。
设计主要由分频模块、控制模块、锁存模块等共七个模块组成。
脉冲信号由fsin引脚输入到cntrl模块,由clr引脚和fdiv输出信号q 共同决定fsin的有效性,并由cntd实现自适应控制,当fsin的频率高出或低于某个量程,cntrl模块会根据具体的值选择相应合适的量程(本设计共有分为1~9999Hz、10~99.99kHz、100~999.9kHz、1M~999M 等四个量程)。
再经由lock锁存之后,由dspnum选择具体的通路,由dspsel和disp实现动态扫描显示,扫描显示模块有dspsel控制七段数码管的片选信号,间锁存保存的BCD码数据动态扫描译码,以十进制形式显示。
以上的各功能模块都是在FLEX10K10中,用VHDL 予以实现的,较之以往的传统型电路更为简单,更易于实现频率计的小型化、微型化甚至芯片化设计。
3数字频率计的设计
3.1系统设计顶层电路原理图
顶层示意图中的各模块用VHDL语言生成后,再生成图3所示的示意图,经编译链接之后就可以下载到系统中。
再在外部扩展信号采集和相应的数码显示电路,就可以完成一个相对简单的数字频率计。
图4是系统的整体框图。
信号从被测信号输入处输入到波形整形电路后,经过FPGA算法处理,再由数字显示部分输出。
在数字显示部分根据不同的档位,可以把相应的单位加入即可,人一档时单位为Hz,二档时为kHz,其余类推。
此外,在硬件电路设计时,应注意FPGA的接口部分,包括电平转换、标准CPU接口等等。
比如FPGA器件的I/O电压不能达到TTL 电平,则需要添加必要的电平转换芯片,即通常指的Transceiver。
又如,驱动LED等功能的需要是经常遇到的,但FPGA器件的驱动能力不一定能够满足需要,因此提供驱动能力也是设计时需要考虑的问题之一。
同时,时钟设计是FPGA设计的核心问题之一,时钟系
统的不稳定和不合理,往往不能发挥器件的全部功能和潜力,严重时还会导致系统失败。
对于多时钟、多速率系统,如何做到全局同步设计、保证时延特性、达到设计速率等,对系统成功都是极为关键的。
3.2 频率计的VHDL设计
本设计采用ALTERA公司的FPGA芯片EPF10K10,该芯片管脚间的延迟为5 ns,即频率为200 MHz,应用标准化的硬件描述语言VHD L有非常丰富的数据类型,他的结构模型是层次化的,利用这些丰富的数据类型和层次化的结构模型,对复杂的数字系统进行逻辑设计并用计算机仿真,逐步完善后进行自动综合生成符合要求的、在电路结构上可实现的数字逻辑,再下载到可编程逻辑器件中,即可完成设计任务。
下面给出该频率计基于EPF10K10的VHDL描述源程序:
4 软件的测试
4.1测试的环境——MAX+plusII
Max+plusII(或写成Maxplus2,或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:QuartusII,主要用于设计新器件和大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。
设计者可以用自己熟悉的设计工具
(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。
其设计速度非常快。
对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。
设计处理一般在数分钟内内完成。
特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。
4.2 调试和器件编程
硬件电路的制作先要选定CPLD芯片,这样才能将软件设计完成后所形成的文件设置成当前的设计项目。
实际设计时,是先进行硬件电路设计, 接着在软件设计中进行芯片选择、管脚锁定和将主电路的输入输出口与硬件的管脚相连,然后进行电路编译,并通过与计算机相连的下载电缆将编译的程序下载到CPLD芯片中。
此时,CPLD芯片的内部就形成了能完成本系统主电路功能的电路,而外部的管脚则设定了输入输出端口。
最后再将外围功能电路进行连接,就形成了整个频率计电路系统。
本系统所选用的CPLD芯片型号为EPM7128SLC84-15, 此芯片属于MAX7000S 系列。
MAX7000 系列器件是高密度、高性能的CMOS EPLD ,它是在Altera 公司的第二代MAX型的CPLD芯片结构的基础上, 采用先进的CMOS EEPROM 技术制造的。
MAX7000S 系列器件提供600~500 0 个可用门和ISP ,引脚到引脚的延时为5ns ,计数器工作频率可达178. 6MHz ,速度等级从- 5 到- 20。
EPM7128SLC84-15 内部具有128 个宏单元,封装选项为PLCC ,管脚数84 个,速度等级-15 ,
电源为直流电压5. 0V。
4.3 频率测试
数字频率计具有:频率测量、脉冲计数及晶体测量等功能,并有三档时间闸门、五档功能供选择和八位LED数码显示,频率从
10Hz—2400MHz的智能频率计。
全部功能是用一个单片微处理器(CPU)来完成的,从而整机性能稳定,体积小,使用携带方便,是一种高性能、低价位的理想智能数字化仪表。
技术条件及说明:
1、测量
(1)输入端口
a、30 MHz — 2400 MHz 的高频通道端口
b、10 Hz — 30 MHz的低频通道端口
c、晶振插孔为晶体测量端口
(2)频率测量
a、量程:
C 0ㄈh 为“0”档测量频率为30 MHz — 2400MHz C 1ㄈh 为“1”档测量频率为30 MHz — 800 MHz
C 2ㄈh 为“2”档测量频率为100 KHz — 30 MHz C 3ㄈh 为“3”档测量频率为10 Hz — 30 MHz b、分辩率:
1Hz, 10Hz, 100Hz
c、精度:
±1计数值±基准时间误差x 频率
d、闸门时间:
0.1S, 1S, 10S
e、输入灵敏度:
15 MV
f、输入阻抗:
50 Ω/ 1 MΩ
j、最大输入电压:
30 V
(3)计数测量
在第“4”档位( C4ㄈh)由10 Hz — 30 MHz插口输入,分辩率为±1输入计数值。
(4)晶体测量
在“2”和“3”档位上从面板晶振输入插孔插入欲测之晶体,测试晶振范
围为3 MHz — 24 MHz。
(5)电源电压:AC 220 V ± 10% ;频率50 Hz
(6)功耗: 3 W
(7)温度:使用范围 -5℃ —+50℃
存放运输 -40℃ —+60℃
(8)湿度: 10-90 % RH 存放运输 5-90 % RH
(9)预热时间:10分钟
(10)尺寸:200 x 60 x 160 (mm)
(11)重量:约0.5 Kg
操作方法
1、频率的测量:当测量的频率为10 Hz — 30 MHz时,“晶体”键弹出,
将随机所配的测试线插入下面的插座中,按动“档位”按钮到“2”档或“3”档,按动“闸门”按钮,当测试频率为800 MHz以上时,可选用本机上面的插座,按动“档位”键到“0”档,当频率小于800 MHz时,请选用“1”档,同时选用适当的闸门时间,频率越低,选用的闸门时间越长,反之越短。
由于低频率时是高阻抗,而测试的频率为低阻抗(如测试50Hz 交流电源),此时会产生阻抗严重失配,可在低频的探头上串接一个1MΩ的电阻。
2、晶体的测量:将“晶体”键按下,“档位”按钮到“2”档或“3”档。
3、计数:在10 Hz —30 MC插口,接入电脉冲,“档位”选至“4”,即可计数。