基于FPGA的等精度频率计设计本科毕业设计.docx
- 文档编号:28772097
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:54
- 大小:705.92KB
基于FPGA的等精度频率计设计本科毕业设计.docx
《基于FPGA的等精度频率计设计本科毕业设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的等精度频率计设计本科毕业设计.docx(54页珍藏版)》请在冰豆网上搜索。
基于FPGA的等精度频率计设计本科毕业设计
基于FPGA的等精度频率计设计
摘要
频率计是实验室和科研、生产中最常用的测量仪器之一。
本文介绍了一种基于FPGA芯片设计的等精度频率计。
对传统的等精度测量方法进行了改进,采用SOPC设计技术和基于NIOSII嵌入式软核处理器的系统设计方案,通过在FPGA芯片上配置NIOSII软核处理器进行数据运算处理,利用液晶显示器对测量的频率进行实时显示,可读性好。
整个系统在一片FPGA芯片上实现,系统测量精度高,实时性好,具有灵活的现场可更改性。
本频率测量仪是以Altera公司生产的CycloneII系列EP2C35F672C6器件为核心实现高精度计数功能。
整个电路采用模块化设计,调试制作方便。
经过仿真并下载验证,能够实现等精度测频功能,频率测量范围为1HZ--200MHZ。
关键词:
等精度,频率计,FPGA,SOPC,NiosII
DesignofEqualPrecisionFrequencyMeter
BasedonFPGA
ABSTRACT
Frequencymeterisoneofthemostcommonlyusedmeasuringinstrumentswhichcanbeusedinlaboratory,scientificresearchandproduction.AnequalprecisionfrequencymeterdesignedwithFPGAisintroducedinthisarticle.ItadoptsVery-High-SpeedIntegratedCircuitHardwareDescriptionLanguagetoimplementfunctionmoduleinfrequencymeterbaseontraditionalfrequencymeasurement.SOPCdesigningtechniqueandsystemdesigningplanbasedonNiosIIsoftcoreCPUareusedinthedesign.ItalsoadoptsNiosllsoftcoreCPUasdataprocessingunit,usesLCD1602equipmenttodisplayfrequencyinreal-time.ThewholesystemisintherealizationofaFPGAchip.Soithasahigh-precisionmeasurement,real-timeandflexiblechangeofscene.
ThefrequencymeterisbasedonCycloneIIEP2C35F672C6Alteradeviceasthecoretoachievehigh-precisioncounting.Becauseofthemodulardesignofthiscircuit,itisfacilitatetodebug.Afterthesimulation,anddownloadstheconfirmation,canrealizeequal-precisionfrequencymeasurementfunction.Frequencymeasurementscopeis1--200MHZ.
KEYWORDS:
equalprecisionmeasurement,frequencymeter,FPGA,SOPC,NiosII
1绪论
1.1课题提出的背景
现代数字系统的设计离不开各种先进的仪器,比如数字示波器、逻辑分析仪、频谱分析仪、信号发生器、数字频率计等。
数字频率计是一种及其常用的工具,用于检测输入周期信号的频率。
随着大规模集成电路的发展,很多芯片内部也集成了数字测频单元,大大增强了芯片处理数字信号的能力。
数字频率计广泛应用于航天、电子、测控等领域。
例如,在传统的生产制造企业中,频率计被广泛的应用在产线的生产测试中。
频率计能够快速的捕捉到晶体振荡器输出频率的变化,用户通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量;在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准;在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以被用来对无线电台的跳频信号和频率调制信号进行分析。
采用等精度频率测量方法具有测量精度保持恒定的特点。
数字化是电子设计的必由之路。
EDA技术即以计算机为工具,EDA是ElectronicDesignAutomation(电子设计自动化)的简称。
它是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。
在QuartusII软件平台上,根据硬件描述语言(VHDL)描述的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真、直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
设计者只要利用软件完成对硬件功能的描述,在EDA工具的帮助下和应用相应的PLD器件,就可以得到最后的设计结果。
尽管,目标器件是硬件,但整个设计是软件控制流程。
由于FPGA是纯硬件结构,具有较强的抗干扰能力。
NIOSII是Altera针对其FPGA设计的嵌入式软核处理器,它只占芯片内部很少的一部分逻辑单元和存储资源,成本很低,具有上百兆的性能,灵活的自定义指令集和自定义硬件加速单元,以及友好的图形化开发环境NIOSIIIDE。
随着微电子技术和计算机技术的发展,可编程逻辑器件,EDA技术,SOPC等新概念和新技术层出不穷,新技术的应用迅速渗透到电子、通信、信息、汽车制造等领域,有力的推动了社会生产力的发展和社会信息化程度的提高。
1.2课题选择意义
基于FPGA的等精度频率计有运算速度快、系统较稳定、测量范围广等特点。
其中主要应用到EDA(电子设计自动化)技术。
伴随着集成电路技术的发展,EDA逐渐成为重要的设计手段。
已经广泛应用于模拟与数字电路系统等许多领域。
EDA是一种实现电系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机为工作平台,促进了工程发展。
本设计利用FPGA进行测频计数,单片机实施控制实现频率计的设计过程。
该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。
等精度的测量方法不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。
并采用NIOSII控制液晶显示器显示测量频率。
2EDA及其开发平台简介
2.1EDA的具体开发流程
基于FPGA器件实现数字系统的流程如图2-1所示。
图2-1基于FPGA/CPLD的EDA设计流程图
基于FPGA器件的开发流程主要包含设计输入、综合、FPGA适配、仿真和编程下载。
2.1.1设计输入
设计输入是设计者将所要设计的电路以开发软件要求的某种形式表达出来,并输入到相应软件中的过程。
设计输入有多种方式,最常用的是图形输入和HDL文本输入两种方法。
图形输入主要包括状态图输入,波形图输入和原理图输入等。
在HDL文本输入中,最常用的硬件描述语言有VerilogHDL和VHDL等,VerilogHDL和VHDL的功能比较强大,属于行为描述语言,能描述和仿真复杂的逻辑设计。
2.1.2综合
综合是将设计者在EDA平台上编辑输入的HDL文本、图形描述,依据给定的硬件结构和约束可知条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件的过程。
综合器就是能够自动实现上述转换的软件工具。
综合的方式有三种分别是行为综合,逻辑综合,版图综合(结构综合)。
2.1.3适配
适配是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件的过程。
利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线等。
2.1.4仿真
仿真,也称为模拟,是对所设计的电路的功能验证。
VHDL的仿真流程如图2-2所示,用户可以在设计的过程中对整个系统和各个模块进行仿真,即在计算机上用软件验证功能是否正确,各部分的时序配合是否准确。
若出现问题,则可以随时修改,从而避免了逻辑错误。
高级的仿真软件还可以对整个系统设计的性能进行估计。
规模越大的设计,越需要进行仿真。
仿真不消耗硬件资源,不浪费时间,这样就可避免不必要的损失。
仿真包括功能仿真和时序仿真。
图2-2VHDL仿真流程图
2.1.5编程下载和硬件测试
把适配后生成的编程文件装入到PLD器件中的过程称为下载。
通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程(Program),而将基于SRAM工艺结构的PLD器件的下载称为配置(Configure)。
最常用的编程方式有两种分别是在系统编程(ISP,InSystemProgrammable)和用专用的编程器编程。
2.2简介NIOSIIIDE
NIOSII集成开发环境(IDE)是NIOSII系列嵌入式处理器的基本软件开发工具。
所有软件开发任务都可以NIOSIIIDE下完成,包括编辑、编译和调试程序。
NIOSIIIDE提供了一个统一的开发平台,用于所有NIOSII处理器系统。
仅仅通过一台PC机、一片Altera的FPGA以及一根JTAG下载电缆,软件开发人员就能够往NIOSII处理器系统写入程序以及和NIOSII处理器系统进行通讯。
NIOSIIIDE基于开放式的、可扩展EclipseIDEproject工程以及EclipseC/C++开发工具(CDT)工程。
NIOSIIIDE为软件开发提供四个主要的功能分别是工程管理器,编辑器和编译器,调试器和闪存编程器。
2.2.1工程管理器
NIOSIIIDE提供多个工程管理任务,加快嵌入式应用程序的开发进度。
NIOSIIIDE推出了一个新工程向导(如下图2-3所示),用于自动建立C/C++应用程序工程和系统库工程。
采用新工程向导,能够轻松地在NiosIIIDE中创建新工程。
图2-3NiosIIIDE新工程向导
除了工程创建向导,NIOSIIIDE还以工程模板的形式提供了软件代码实例,帮助软件工程师尽可能快速地推出可运行的系统。
每个模板包括一系列软件文件和工程设置。
通过覆盖工程目录下的代码或者导入工程文件的方式,开发人员能够将他们自己的源代码添加到工程中。
图2-4描述了一些可用的软件工程模板。
图2-4软件工程模板
NIOSIIIDE使开发人员通过使用软件组件能够快速地定制系统。
软件组件(或者称为“系统软件”)为开发人员提供了一个简单的方式来轻松地为特定目标硬件配置他们的系统。
软件组件包括:
NIOSII运行库(或者称为硬件抽象层(HAL)),轻量级IPTCP/IP库-NIOSII版本,MicroC/OS-II实时操作系统(RTOS),Altera压缩文件系统。
2.2.2编辑器和编译器
AlteraNIOSIIIDE提供了一个全功能的源代码编辑器和C/C++编译器。
NIOSIIIDE文本编辑器是一个成熟的全功能源文件编辑器。
其功能包括:
语法高亮显示,代码辅助/代码协助完成,全面的搜索工具,文件管理,广泛的在线帮助主题和教程,引入辅助,快速定位,自动纠错,内置调试。
NIOSIIIDE为GCC编译器提供了一个图形化用户界面,NIOSIIIDE编译环境使设计Altera的NIOSII处理器软件更容易,它提供了一个易用的按钮式流程,同时允许开发人员手工设置高级编译选项。
NIOSIIIDE编译环境自动地生成一个基于用户特定系统配置(SOPCBuilder生成的PTF文件)的makefile。
NIOSIIIDE中编译/链接设置的任何改变都会自动映射到这个自动生成的makefile中。
这些设置可包括生成存储器初始化文件(MIF)的选项、闪存内容、仿真器初始化文件(DAT/HEX)以及profile总结文件的相关选项。
2.2.3调试器
NIOSIIIDE包含一个强大的、在GNU调试器基础之上的软件调试器-GDB。
该调试器提供了许多基本调试功能,以及一些在低成本处理器开发套件中不会经常用到的高级调试功能。
NIOSIIIDE调试器包含如下的基本调试功能:
运行控制,调用堆栈查看,软件断点,反汇编代码查看,调试信息查看,指令集仿真器。
除了上述基本调试功能之外,NIOSIIIDE调试器还支持以下高级调试功能:
硬件断点调试ROM或闪存中的代码,数据触发,指令跟踪。
NIOSIIIDE调试器通过JTAG调试模块和目标硬件相连。
另外,支持片外跟踪功能便于和第三方跟踪探测工具结合使用,如FS2公司提供的用于NIOSII处理器的in-target系统分析仪(ISA-NIOS)。
调试信息查看使用户可以访问本地变量、寄存器、存储器、断点以及表达式赋值函数。
图2-5是调试信息查看的一个实例,显示的是一个应用实例的寄存器。
图2-5调试信息查看——寄存器显示
2.2.4闪存编程器
许多使用NIOSII处理器的设计都在单板上采用了闪存,可以用来存储FPGA配置数据或NIOSII编程数据。
NIOSIIIDE提供了一个方便的闪存编程方法。
任何连接到FPGA的兼容通用闪存接口(CFI)的闪存器件都可以通过NIOSIIIDE闪存编程器来烧结。
除CFI闪存之外,NIOSIIIDE闪存编程器能够对连接到FPGA的任何Altera串行配置器件进行编程。
闪存编程器管理多种数据,如下表2-1所示。
表2-1编程到闪存中的通用内容类型
内容类型
说明
系统固定软件
烧结到闪存中的软件,用于NIOSII处理器复位时从闪存中导入启动程序。
FPGA配置
如果使用一个配置控制器(例如用在Nios开发板中的配置控制器),FPGA能够在上电复位时从闪存获取配置数据。
任意二进制数据
开发人员想存储到闪存内的任何二进制数据,例如图形、音频等。
NIOSIIIDE闪存编程器已做了预先配置,能够用于NIOSII开发套件中的所有单板,而且能够轻易地引入到用户硬件中。
3课题方案选择
3.1频率测量方案选择
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。
测量频率的方法有多种,其中等精度测量频率具有精度高、使用方便、测量迅速,以及便于现测量、过程自动化等优点,是频率测量的重要手段之一。
普通测频有两种方式:
一是直接测频法,二是间接测频法。
3.1.1直接测频法
即在一定闸门时间内测量被测信号的脉冲个数,下图3-1为直接测频法的原理图。
图3-1频率测量原理图
按照频率的定义,即单位时间内周期信号的发生次数,图3-1中晶振提供了测量的时间基准,分频后通过控制电路去开启与关闭时间闸门。
闸门开启时,计数器开始计数,闸门关闭停止计数。
若闸门开放时间为T,计数值为N,则被测频率为:
f=N/T(3-1)
用这种频率测量原理,对于频率较低的被测信号来说,存在着测量实时性和测量精度之间的矛盾。
例如若被测信号为10Hz,精度要求为0.01%,则最短闸门时间为
T=N/f=1000s(3-2)
这样的测量周期根本是不可能接受的,可见频率测量法不适用于低频信号的测量。
3.1.2间接测频法
间接测频法即为周期测频法,周期测量原理和频率测量基本结构是一样的,只是把晶振和被测信号位置互换了一下,如图3-2所示。
T=NTr/M.计数值N和被测信号的周期成正比,N反映了M个信号周期的平均值利用周期测量法在一定信号频率范围内,通过调节分频系数M,可以较好地解决测量数度与实时性的矛盾。
但是对于高频信号,周期法就需要很大的分频系数M,增加了硬件及软件的复杂性,不宜采用。
由此可见,对于传统频率测量方法若是要达到高精度的要求,必须对被测频率分段测量,对于较低频率用周期测量,对较高频率用频率法测量。
图3-2周期测量原理图
3.1.3等精度测频
等精度测频的方法具体是:
采用频率准确的高频信号作为标准频率信号,保证测量的闸门时间为被测信号的整数倍,并在闸门时间内同时对标准信号脉冲和被测信号脉冲进行计数,实现整个频率测量范围内的测量精度相等,当标准信号频率很高,闸门时间足够长时,可实现高精度频率测量。
测量精度与闸门时间的关系分析如下。
如图3-3所示,闸门控制信号(CL)给出高电平,此时并未开始进行测频计数,而要等到被测信号的上升沿到来时才开始对标准时钟信号和被测信号同时进行测频计数。
当闸门控制信号经过Tc时间结束时,也要等到被测信号的上升沿到来时才同时停止对标准信号和被测信号的计数,并读取此时的计数值。
测频计数的闸门时间为Td,标准时钟信号频率为fs,被测信号频率为fx,在Td时间内对标准时钟信号和被测信号的脉冲计数值分别为Ns和Nx,则被测信号的频率可由下式求得:
fx=fs×Nx/Ns(3-3)
图3-3等精度测频原理示意图
对标准信号所产生的计时误差为:
△t=Td-Ns×Ts(3-4)
由于△t最大为一个标准信号的周期,即△t≦Ts,因此:
fx=Nx/(Ns×Ts)=Nx/(Td-△t)(3-5)
而被测信号频率准确值fx0=Nx/Td,则频率测量的相对误差为:
δ=(fx-fx0)/fx0=△t/(Td-△t)(3-6)
当Td远远大于△t时,频率测量的最大误差为:
δm=Ts/(Td-Ts)≈Ts/Td(3-7)
由最后的表达式可知,当频率测量的最大误差由标准时钟信号的周期Ts和频率计数的闸门时间Td决定,Ts越小,Td越大,测量误差越小,即测量精度越高。
在整个频率测量范围内,精度恒定,实现了等精度测量。
当标准信号选取准确的50MHz信号源时,Ts=10ns,只要选取Td≧10ms,就可使测量的最大相对误差≦10-6,即达到百万分之一的测量精度。
测量闸门时间Td的选取,除满足δm式的最大测量误差外,还应保证大于一个被测信号周期Tx。
测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量。
闸门时间越长,标准频率越高,测频的相对误差就越小。
标准频率可由稳定度好、精度高的高频晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测试速度。
表3-1所列为在10MHz时闸门时间与最大允许误差的对应关系。
表3-1闸门与精度的关系
闸门时间(s)
精度
0.01
10-5
0.1
10-6
1
10-7
10
10-8
3.2基于单片机的测频方案
采用单片机AT89C51作为系统控制核心单元,辅以适当的软、硬件资源完成以单片机为核心的等精度频率计的软硬件设计及系统实现。
系统如图3-4所示。
图3-4基于单片机的频率测量计组成框图
前置放大器完成信号放大、电平平移的任务,被测的交流信号D被放大、平移成脉冲直流信号E,再经74HC14施密特反相器整形成矩形脉冲。
与门74LS08作为计数闸门,方波信号被送到与门的一个输入端,与门的另一个输入端连接1s门控信号,实际制作中连接AT89C51的P3.1。
当P3.1脚为高电平时闸门打开,低电平时闸门关闭。
P3.1脚电平的高低可通过指令加以控制。
闸门开时矩形脉冲送到74LS393进行。
74LS393是双4位计数器,在这里接成级联方式,组成一个8位二进制计数器,同时分频比为256的分频器。
采用74LS393的理由是:
AT89C51内有2个16位的二进制加法计数器,一个用作定时器,另一个用作脉冲计数。
16位二进制的最大计数为216-1=65535,不能满足精确测量的需要,虽然可以通过软件计数的方法来提高分辨率,但是AT89C51内置计数器的计数速率受500KHz(12MHz时钟)的限制,所以意义并不大。
74LS393的最大计数速率可达35MHz,与AT89C51内的一个定时器组成24位的计数器,其最大计数值为224-1=16777215,分辨率大大提高。
本电路中没有采用十进制计数,因为AT89C51内置计数器只能进行二进制加法计数,计数结束后再进行二进制转十进制运算,然后将结果送到显示缓冲区进行显示。
3.3基于FPGA的测频方案
在较高精度和高速测量的要求下,必须采用较高的标准频率信号;而单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求。
采用高集成度、高速的FPGA芯片为实现高速、高精度的测频提供了保证。
随着EDA(电子设计自动化)技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景;并且FPGA具有高集成度、高可靠性,几乎可将整个设计系统下载于同一芯片中,实现所谓片上系统,从而大大缩小其体积,具有可编程型和实现方案容易改动的特点,有利于产品的研制和后期升级。
整个测频系统分为多个功能模块,如信号同步输入、放大整形、标准信号、FPGA芯片、液晶显示等模块。
除标准信号、放大整形、液晶显示模块外,其他模块可集成于FPGA芯片中,并且各逻辑模块用硬件描述语言VHDL来描述其功能,然后通过EDA开发平台,如QuartusⅡ对设计文件自动地完成逻辑编译、逻辑化简、综合及优化、逻辑布局布线、逻辑仿真,最后对FPAG芯片进行编程,以实现系统的设计要求。
其系统组成框图如图3-5所示。
图3-5基于FPGA的频率测量计的组成框图
基于单片机的频率测量计设计方案主要是以单片机为基础,原理简单,但由于单片机自身速度问题,测量的范围较小。
基于FPGA的频率测量计设计方案主要是以FPGA为主,使用其中的NiosII核对采集的数据进行处理并由LCD输出测得的频率,以及实现对FPGA内部各个模块的控制。
综上所述并根据设计要求,测频范围为1Hz至200MHz,单片机不能达到此要求,故采用FPGA来完成,并综合其他因素,决定采用基于FPGA的等精度频率测量方案。
4基于FPGA等精度频率计的单元模块设计
基于FPGA等精度频率计设计的单元模块包括,放大整形模块、标准信号产生模块、FPGA芯片模块、液晶显示模块。
4.1放大整形模块设计
放大整形电路由2N2222(实际中可用常见的9018)与74F14等组成,其中2N2222组成放大电路将输入频率为Fx的周期信号如正弦波、三角波等进行放大。
74F14施密特触发器对放大器的输出信号进行整形,使之成为矩形脉冲。
施密特触发器是一种特殊的门电路,与普通的门电路不同,施密特触发器有两个阈值电压,分别称为正向阈值电压和负向阈值电压。
在输入信号从低电平上升到高电平的过程中使电路状态发生变化的输入电压称为正向阈值电压,在输入信号从高电平下降到低电平的过程中使电路状态发生变化的输入电压称为负向阈值电压。
利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。
输入的信号只要幅度大于vt+,即可在施密特触发器的输出端得到同等频率的矩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 精度 频率计 设计 本科 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)