等精度数字频率计 毕业设计_第1页
等精度数字频率计 毕业设计_第2页
等精度数字频率计 毕业设计_第3页
等精度数字频率计 毕业设计_第4页
等精度数字频率计 毕业设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕毕 业业 设设 计计中文题目 数字频率计的设计英文题目 The design of digital frequency meter系 别: 电子与电气工程系年级专业: 电子信息工程II姓 名: 学 号:指导教师: 职 称: 2011 年 5 月 日毕业设计(论文)诚信声明书毕业设计(论文)诚信声明书本人郑重声明:在毕业设计(论文)工作中严格遵守学校有关规定,恪守学术规范;我所提交的毕业设计(论文)是本人在 指导教师的指导下独立研究、撰写的成果,设计(论文)中所引用他人的文字、研究成果,均已在设计(论文)中加以说明;在本人的毕业设计(论文)中未剽窃、抄袭他人的学术观点、思想和成果,未篡改实验

2、数据。本设计(论文)和资料若有不实之处,本人愿承担一切相关责任。学生签名:2011 年 5 月 日I摘要现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即 EDA 技术。它与电子技术、微电子技术的发展密切相关,并且吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。而在电子技术领域内,频率是最基本的参数之一,它与许多电参量的测量方案、测量结果都有十分密切的关系。本文简单介绍了 EDA 技术的发展概况,FPGA 开发的涵义及硬件描述语言,通过对等精度频率计的测频原理的分析,确定了以 FPGA 为核心的等精度频率计的设计。本设计包括 FPGA 和

3、单片机两大部分。在 FPGA 部分中,对待测频率和标准频率同时进行计数,然后通过 8 选 1 数据选择器输出。而单片机部分主要是对输出的数据进行处理,然后通过 8 位数码管显示待测的频率值。FPGA 部分采用了 VHDL 语言编写了各模块的电路,选用的开发环境是 Quartus7.2。而单片机部分采用了 C51 编写了软件。该频率计具有精度高,操作方便,读数方便等优点,具有较强的实用性。关键词关键词: :EDA,VHDL 语言,数字频率计IIAbstractThe core of modern electronic design technology has been turning to c

4、omputer based on electronic design automation technology ,that calls EDA technology . The EDA technology, which is closely connected with the electronic technology, microelectronics technology and computer science, can be used in designing electronic product automatically. In the field of electronic

5、 technology , frequency is one of the most basic parameters, it has very close relationship with the parameters of many measurement schemes and measuring results .This paper briefly introduced the EDA technology, the development of FPGA and the hardware description language.After the analysis of the

6、 high-accuracy digital frequency meters theory ,I decided to design one based on FPGA .The design of system consists of FPGA and MCU. In the FPGA section, make the tested frequency and standard frequency count at the same time, then let the count value out by the Data Selector.The MCUs function is p

7、rocessing the output data, and then display the tested frequency by the 8-bit led . The FPGAs function is realized by VHDL.The platform of development is Quartus .The MCUs function is realized by C.The platform of development is Keil.The system has the advantage of high-accuracy and convenience.Its

8、very practical .Keywords:EDA ,VHDL ,digital frequency meter 目录目录摘要摘要.IABSTRACTABSTRACT.II第一章第一章 绪论绪论.11.1 课题背景及目的 .11.2 研究现状 .11.3 EDA 技术介绍 .21.31 电子设计自动化技术及其发展.21.32 EDA 的优势 .31.4 课题的主要研究内容 .3第第 2 2 章章 系统分析及总体设计系统分析及总体设计.52.1 数字频率计工作原理概述 .52.11 常用测频方案 .52.12 等精度测频原理 .62.13 等精度测频的误差分析 .82.2 系统总体设计方案

9、.82.21 频率计系统设计任务与分析.82.22 系统总体设计方案.92.3 系统的硬件电路介绍 .102.31 FPGA 部分的硬件介绍 .102.32 单片机部分的硬件介绍.112.33 FPGA 与单片机的硬件电路连接 .112.4 本章小结.12第三章第三章 系统的软件设计系统的软件设计.133.1 VHDL 硬件描述语言介绍 .133.2 QUARTUSII 概述.133.3 FPGA 软件模块设计 .143.31 D 触发器模块 .153.32 锁相环模块.163.33 两个 32 位的高速计数器模块.173.34 8 选 1 数据选择器 .183.4 单片机部分的软件设计.18

10、3.5 本章小结.23第四章第四章 系统实验及结果分析系统实验及结果分析.244.1 等精度频率计的实现步骤.244.2 实验结果及分析.244.3 本章小结: .25致谢致谢.26参考文献参考文献.271第一章 绪论1.1 课题背景及目的21 世纪人类将全面进入信息化社会,对微电子信息技术不断提出更高的发展要求,微电子技术仍将继续是 21 世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域占有重要的地位。伴随着 IC 技术的发展,电子设计自动化(Electronic Design Automation, EDA)己经逐渐成为重要设计手段,其广泛应用于模拟与

11、数字电路系统等许多领域。数字频率计是数字电路中的一个典型应用,频率是电子测量中一个最为基本的参量,在信号发生器以及振荡器、各种倍频和分频电路的输出信号中,都要进行频率的测量。因此为了能够高效稳定的测量信号频率,设计一款高精度的数字频率计尤为重要。由于实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差,可靠性差。随着复杂可编程逻辑器件(FPGA)的广泛应用,以 EDA 工具作为开发手段,运用 VHDL 语言。将使整个系统大大简化。提高整体的性能和可靠性。数字频率计是通信设备、音、视频等科研生产领域不可缺少的测量仪器。采用 VHDL编程设计实现的数字频率计,除被测信号

12、的整形部分、键输入部分和数码显示部分外,其余全部在一片 FPGA 芯片上实现。整个系统非常精简,且具有灵活的现场可更改性。本课题以 FPGA 为核心设计一个测频范围在 10HZ100MHZ 内的数字频率计,最后用8 位数码管显示出来,具有读数方便、体积小、可靠性高、功耗低的特点。1.2 研究现状设计一款精度高、测频范围大、显示稳定、读数方便而且具有灵活的现场可更改性数字频率计很有意义。本课题旨在设计这样一款频率计。下面将简要介绍频率计在设计时的几种选取方案:方案一:采用小规模数字集成电路制作被测信号经过放大整形变换为脉冲信号后,再与 1 秒脉宽带信号共同输入与非门,其输出作为计数脉冲,由计数器

13、计数,然后锁存、译码输出到数码管显示。若进入计数器的输入脉冲数为 N,则被信号的测频率其频率 F=N/T。2方案二:采用单片机为控制中心进行测频控制单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入测频电路,由单片机对测频电路的输入信号进行处理,得出相应的数据送至显示器显示。采用这种方案优点是成熟的单片机技术、运算功能较强、软件编程灵活、自由度大、设计成本也较低、缺点是显而易见的,在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,整个系统显得十分复杂,并且单品机的频率不能做的很高,使得测量精度大大降低。方案三:采用 FPGA 作为控制中心的数字频率计FPGA 的结构灵

14、活,其逻辑单元、可编程内部连线和 I/O 单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求,其速度快、功耗低,通用性强,特别适用于复杂系统的设计。利用 VHDL( 超高速集成电路硬件描述语言) 工业标准硬件描述语言, 采用自顶向下( Top to Down)和基于库( Library- based)的设计, 设计者不但可以不必了解硬件结构设计, 而且将使系统大大简化, 提高整体的性能和可靠性。1.3 EDA 技术介绍1.31 电子设计自动化技术及其发展现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA(Electronic Design Automation)

15、技术。EDA 技术就是依赖功能强大的计算机,在EDA 工具软件平台上,对以硬件描述语言 HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA 技术在进入 21 世纪以后,得到了更大的发展,突出表现在一下几个方面;(1) 在 FPGA 上实现 DSP 应用成为可能,用纯数字逻辑进行 DSP 模块的设计,使得高速的 DSP 成为现实。(2) 嵌入式处理器软核的成熟,使得 SOPC 步入大规模应用阶段,在一片 FPGA 上实现一个完备的数字处理

16、系统成为可能。(3) 在仿真和设计两方面支持标准硬件描述语言的功能强大的 EDA 软件不断推出。31.32 EDA 的优势与传统的手工设计相比,EDA 技术的优势如下:(1) 用 HDL 对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。(2) EDA 工具之所以能够完成各种自动化设计过程,关键是有各类库的支持(3) 某些 HDL 本身也是文档型的语言,极大的简化了设计文档的管理。(4) EDA 技术最为瞩目的功能,即最具有现代电子设计技术特征的功能是日益强大的逻辑设计

17、仿真测试技术。(5) 传统的电子设计方法至今没有任何标准规范加以约束,因此设计效率低、系统性能差、开发成本高、市场竞争能力小。EDA 技术的设计语言是标注化的,不会由于设计的对象不同而改变;它的开发工具是规范化的,EDA 软件平台支持任何标准化的设计语言;它的设计成果是通用性的,IP 核具有规范的接口协议;良好的可移植性与可测试性,为系统开发提供了可靠的保证。(6) 从电子设计方法学来看,EDA 技术最大的优势就是能够将所有的设计环节纳入统一的自顶向下的设计方案中。(7) EDA 不但在整个设计流程上充分利用计算机的自动设计能力、在各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设

18、计结束后仍可利用计算机对硬件系统进行完整的测试1。1.4 课题的主要研究内容本系统采用了 FPGA 与单片机相结合来实现频率测量系统中的数字频率计的设计。除数据处理和显示部分外,其余全部在一块 FPGA 上实现,整个系统非常精简,而且具有灵活的现场可更改性。通过查阅资料,了解发展现状,在此基础上,对系统的方案进行了设计。在本论文中对各个功能模块的设计进行了详细的介绍,并给出了相应的仿真结果。本文主要研究内容如下:(1)根据等精度频率计的工作原理,设计了整个系统的结构框图。4(2)采用 FPGA 对待测频率和标准频率同时进行计数,然后通过 8 选 1 数据选择器输出。而单片机部分主要是对输出的数

19、据进行处理,然后通过 8 位数码管显示待测的频率值。(3)编写软件系统,实现待测频率与标准频率的同时计数,FPGA 与单片机的接口,单片机的数据处理及显示等功能。(4)通过设计实验,验证输入频率与 8 位数码管的显示是否相同。5第 2 章 系统分析及总体设计2.1 数字频率计工作原理概述数字频率计的测量原理实际上是采用一个标准的基准时钟,在单位时间(1s)里对被测信号的脉冲数进行计数,即为信号的频率。但是由于闸门的开启和关闭时刻对于被测信号来说是随机的,这样计数值可能会产生一个脉冲的误差。进一步分析测量准确度:设待测信号脉冲的频率为,周期为,当测量时间为=1s 时,测量准确度为xfXTT=/T

20、=1/。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率XTxf较高时,测量准确度也较高,反之测量准确度也较低。因此直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。测量单位时间内的周期数。这种方法免去了实测以前的预测,同时节省了划分频段的时间,克服了原来高频段采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。为了满足高速度、高精度的测频要求,采用闸门信号和待测频率信号对计数器的使能端进行双重控制,大大提高了准确度。当闸门信号开启时,计数器并不马上计数,只有等到待测频率信号的上升沿到来时,使能端才开始发送有效信号,两个计数器同时

21、开始计数。当闸门信号关闭时,计数器也不是马上停止计数,而是等待测信号的下一个上升沿到来时才停止计数。因此测量的误差最多为一个标准时钟周期。2.11 常用测频方案频率测量方案方案一:采用直接测频法。直接测频法就是在确定的闸门时间内,记录被测信号的脉冲个数。由于闸门时间通常不是待测信号的整数倍,这种方法的计数值也会产生最大为1 个脉冲误差。进一步分析测量准确度:设待测信号脉冲周期为,频率为,当XTxf测量时间为=1s 时,测量准确度为=/T=1/。由此可知直接测频法的测量准确度TXTxf与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。因此直接测频法只适合测量频率较高

22、的信号,不能满足在整个测量频段内的测量精6度保持不变的要求。方案二:采用周期法。通过测量待测信号的周期并求其倒数,需要有标准倍的频率,在待测信号的一个周期内,记录标准频率的周期数,这种方法的计数值会产生最大为1个脉冲误差,并且测试精度与计数器中记录的数值有关,为了保证测试精度,测周期法仅适用于低频信号的测量。方案三:采用等精度频率测量法,测量精度保持恒定,不随所测信号的变化而变化。在快速测量的要求下,要保证较高精度的测频,必须采用较高的标准频率信号。单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求;而采用高集成度、高速的现场可编程门阵列 FPGA 为实现高

23、速、高精度的测频提供了保证。本设计所采用的测频方法就是等精度频率测量法。2.12 等精度测频原理等精度测频方法是在直接测频方法的基础上发展起来的。它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,避除了对被测信号计数所产生1 个字误差,并且达到了在整个测试频段的等精度测量。其测频原理如图 2-1 所示。在测量过程中,有两个计数器分别对标准信号和被测信号同时计数。首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才

24、结束计数,完成一次测量过程。可以看出,实际闸门时间 t 与预置闸门时间 t1 并不严格相等,但差值不超过被测信号的一个周期2。7图 2-1 等精度测频原理波形图等精度测频的实现方法可简化为图 2-2 所示。CNT1 和 CNT2 是两个可控计数器,标准频率信号从 CNT1 的时钟输入端 CLK 输入;经整形后的被测信号从 CNT2 的时钟输入端 CLK输入。当预置门控信号为高电平时,经整形后的被测信号的上升沿通过 D 触发器的 Q 端同时启动 CNT1 和 CNT2。CNT1、CNT2 同时对标准频率信号和经整形后的被测信号进行计数,分别为 NS与 NX。当预置门信号为低电平的时候,后而来的被

25、测信号的上升沿将使两个计数器同时关闭,所测得的频率为(/)*。则等精度测量方法测量精度与预置门sfsNxN宽度的标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同8CNT1OUT1CLKENCNT2CLKENOUT1DQ标准频率信号预置闸门信号被测信号而被测信号频率不同的情况下,等精度测量法的测量精度不变。图 2-2 等精度测频的实现方法2.13 等精度测频的误差分析设在一次实际闸门时间 t 中计数器对被测信号的计数值为,对标准信号的计数值XN为。标准信号的频率为,则被测信号的频率如式(2-1):SNsf =(/) (2-1)xfXNSNsf由式 2-1 可知,若忽略标准频

26、率的误差,则等精度测频可能产生的相对误差如式sf(2-2): =(|-|/)100% (2-2)0fxf0f其中为被测信号频率的准确值。0f在测量中,由于计数的起停时间都是由该信号的上升沿触发的,在闸门时间 t 内xf对的计数无误差;对的计数最多相差一个数的误差,即|1,其测量xfXNsfSNSN频率如式(2-3): =/(+) (2-3)0fXNSNSNsf将式(2-1)和(2-3)代入式(2-2),并整理如式(2-4): =|/1/=1/(t) (2-4)SNSNSNsf由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度

27、测量。闸门时间越长,标准频率越高,测频的相对误差就越小。标准频率可由稳定度好、精度高的高频率晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测9试速度3。2.2 系统总体设计方案数字频率计的设计方案多种多样,有用具有记忆功能的触发器设计而成的频率计,还有以单片机为核心器件设计而成的频率计。而可编程逻辑器件 FPGA 和 EDA 技术的应用和发展,使传统的电子系统设计发生了根本的变革。本课题是用单片机和 FPGA 相结合的方法来实现数字频率计设计的。2.21 频率计系统设计任务与分析本课题的设计任务是以 FPGA 为中心,测量频率范围在 10HZ100MHZ

28、 内的方波、正弦波、三角波,测量结果用 LED 显示,测量分辨率为 1HZ。为了设计一款具有高精度,高速和高可靠性等特点的频率计,本课题以 FPGA 为中心,采用等精度的方法进行设计。但是由于等精度频率计涉及到的加、减、乘、除耗用的资源比较大,用 FPGA 芯片难以实现,因此本系统采用了 FPGA 器件和单片机结合实现频率测量系统中的数字频率计的设计。除被测信号的整形部分,LED 显示部分,和数据处理部分外,其余全部在一片 FPGA 芯片上实现,整个系统非常简洁,而且具有灵活的现场可更改性。本设计采用 VHDL 语言对 FPGA 部分进行软件开发与设计,单片机部分的软件则采用C 语言进行。设计

29、选用的开发环境是 Quartus6.0,测频系统的生成,编译,仿真都是在该开发环境中完成的。2.22 系统总体设计方案在快速测量的要求下,要保证高精度的测频,必须采用较高的标准频率信号,而单片机受本身时钟频率和若干指令运算的限制,测频的速度较慢,无法满足高速、高精度的测频要求。而采用高度集成、高速的 FPGA 为实现高速,高精度的测频提供了保证。本设计的总体设计方案如图 2-3 所示。系统总体的设计方案主要由以下几个部分构成:1) 测频电路。是测频的核心电路模块,由 FPGA 来实现。2) 20MHZ 的晶振经过锁相环的 10 倍频进入 FPGA.10待测信号晶振锁相环200MHZBCLKTC

30、LK数据控制信号FPGA单片机数码显示图 2-3 系统总体设计方案图3) 单片机电路模块。用于控制 FPGA 的测频操作和读取测频数据,并做出相应的数据处理。安排单片机的串行通信口和 FPGA 进行通信。4) 数码显示模块。由 8 个数码管来显示测量结果,由单片机进行控制。系统的基本工作方式如下:(1)。单片机的 P0 口接 FPGA 的 8 位输出数据 DATA,负责读取测频数据。单片机可以通过结束信号了解测频计数是否结束,以确定何时开始读取数据。P2 口用于控制多路通路的数据选择。分别读出标准频率数值和待测频率数值。P3 口为 LED 串行显示控制口。(2)显示电路由 8 个数码管组成,7

31、 个 LED 数码管组成测量数据显示器,最后一位显示单位,数码管最上面一横表示单位为 Hz,中间一横表示单位为 KHz,最底下一横表示单位为 MHz,且具有自动消 0 的功能。112.3系统的硬件电路介绍本次设计选用的是杭州康芯电子有限公司的 SOPC、EDA、现代 DSP 系统开发板。下面将对板上的 FPGA 部分和单片机部分做详细的介绍。2.31 FPGA 部分的硬件介绍FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在 PAL、GAL、EPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种

32、半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。本次选用的芯片是 Altera 公司的 Cyclone 系列的 EDA芯片 EP1C3T144C8,该芯片是 Altera 公司推出的低价格、高容量的 FPGA,其以极低的价格、优良的特性及丰富的片上资源在实际应用中被广泛采用,这些都是其他同类产品无法相比的。2.32 单片机部分的硬件介绍 本系统中单片机主要用于数据的处理和对 FPGA 的控制,它和 FPGA 一起完成等精度测频。本次选用的芯片是 AT89S8253。AT89S8253 是一种低功耗、高性能 CMOS8 位微控制器,具有 12K 在系统可编程

33、 Flash 程序存储器和 2K EEPROM 数据存储器。AT89S8253 使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,AT89S8253 拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S8253 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S8253 具有以下标准功能: 12k 字节 Flash,2K EEPROM,256 字节 RAM,32 位I/O 口线,可编程看门狗定时器,2 个数据指针,三个 16 位定时器/计数

34、器,一个 6 向量 4 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S8253 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。片内 Flash/EEPROM 可通过 SPI12串口访问。保持 RESET 有效即可迫使 SPI 总线进入串行编程接口状态并允许对程序存储器进行读写,除非一个或多个锁定位已被激活。2.33 FPGA 与单片机的硬件电路连接开发板上 FPGA 与单片机的硬件连接如

35、图 2-4 所示图 2-4 FPGA 与单片机的硬件连接2.4 本章小结本章详细的介绍了等精度频率计的测频原理及误差分析。然后介绍了等精度频率计设计的总体框图,并对框图的每一部分的功能做了介绍。最后介绍了系统的硬件电路部分,包括 FPG 部分、单机部分及 FPGA 与单片机的硬件连接情况。13第三章 系统的软件设计设计采用 FPGA 与单片机相结合的方式来实现对频率的测量,它们都是可编程芯片,需要对其进行软件编程。FPGA 可以在 Quartus6.0 的开发平台下运用 VHDL 语言进行编程、仿真及验证,而单片机的程序则可以在 Keil uVision2 平台上运用 C 语言进行编写。3.1

36、 VHDL 硬件描述语言介绍硬件描述语言 HDL 是 EDA 技术的重要组成部分,常见的 HDL 主要有VHDL、Verilog HDL、ABEL、AHDL、SystemVerilog 和 SystemC。其中 VHDL、Verilog在现在的 EDA 设计中使用最多,也拥有几乎所有主流 EDA 工具的支持,而 SystemC 和SystemVerilog 还处于完善过程中。VHDL 的英文全名是 VHSIC(Very-High -Speed Integrated Circuit Hardware Description Language) ,于 1983 年由美国国防部发起创建,由 IEEE

37、(The Institute of Electrical and Electronics Engineers)进一步发展,并在 1987 年作为“IEEE 标准 1076”发布。从此,VHDL 成为硬件描述语言的业界标准之一。自 IEEE 公布了 VHDL 的标准版本之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣传自己的设计工具支持VHDL。此后,VHDL 在电子设计领域得到了广泛的应用,并逐步取代了原有的非标准硬件描述语言。VHDL 语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大的简化了硬件设计任务,提高了设计效率和可靠性。VHDL 具有与

38、具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力1。3.2 QuartusII 概述QuartusII 是 Altera 提供的 FPGA/CPLD 开发集成环境。Altera 的 QuartusII 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和 SOPC 开发的基本设计工具,并为 Altera DSP 开发包进行系统模型设计提供了集成组合环境。QuartusII 设计工具完全支持 VHDL、Verilog 的设计流程,其14内部嵌有

39、 VHDL、Verilog 逻辑综合器。QuartusII 也可利用第三方的综合工具。同样,QuartusII 具备仿真功能,同时也支持第三方的仿真工具,如 ModelSim。此外,QuartusII 与 MATLAB 和 DSP Builder 结合,可以进行基于 FPGA 的 DSP 系统开发和数字通信模块的开发。QuartusII 包括模块化的编译器。此外,QuartusII 还包含许多十分有用的 LPM(Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在 SOPC 设计中被大量使用,也可以与 QuartusII 普通设计文

40、件一起使用。 。QuartusII 支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与 HDL 混合输入设计的问题。在设计输入之后,QuartusII 的编译器将给出设计输入的错误报告。可以使用 QuartusII 带有的 RTL Viewer 观察综合后的 RTL 图1。3.3 FPGA 软件模块设计FPGA 部分的总的模块框图如图 3-1 所示:图 3-1 FPGA 部分的总体模块框图总体框图有五个输入端,两个输出端,各个端口的信号功能介绍如下:BCLK:标准频率信号,这里是指开发板上 20MHZ 的晶振信号。15CL:预置门控

41、信号,和待测频率信号一起控制计数器的启动和停止,由单片机的延时提供。CLR:清零信号,高电平有效,由单片机控制。TCLK:待测信号,和门控信号一起控制计数器的计数时间。SEL2.0:三位的选择信号,控制 8 选 1 数据选择器的输出。START:计数开始信号,为高电平时表示两个计数器正在计数,为低电平时表示计数器停止计数。单片机根据这个信号的变化来判断何时接收 FPGA 输出的数据。DATA7.0:数据选择器根据选择信号输出的 8 位数据。FPGA 部分总体模块框图的仿真图如图 3-2 所示:图3-2 FPGA 部分的总体模块框图仿真图从上面的总体模块框图中可以看出,FPGA 部分主要模块为

42、D 触发器、10 倍频的锁相环、两个 32 位的高速计数器和一个 8 选 1 数据选择器。下面将具体介绍每一个模块。3.31 D 触发器模块FPGA 的内部模块中,使用了一个异步清零、上升沿出发的 D 触发器,如图 3-3 所示。它的作用是用来控制计数的开始和计数的停止,因为计数的开始和停止都是在被测频率的上升沿到来时起作用的,所以测量时间一定是被测频率的整数倍个,这就保证了被测频率所记的个数一定是整数个。16Cycloneinclk0 frequency: 20.000 MHzOperation Mode: NormalClk Ratio Ph (dg) DC (%)c010/10.0050

43、.00inclk0c0PLLUinst6图 3-3 D 触发器模块图从图中可以看到这个模块有三个输入端,一个输出端,各个端口的作用如下:CLK 为待测信号,它与预置门控信号一起控制着输出。D 为预置门控信号,当该信号发生变化时,触发器做好准备等待被测信号的上升沿到来,从而控制输出结果。CLR 是清零信号,高电平有效。Q 是输出信号,由待测信号和预置门控信号决定,同时它控制着计数器的使能端。D 触发器的仿真结果如图 3-4 所示:图 3-4 D 触发器的仿真图3.32 锁相环模块Cyclone 等系列的 FPGA 中含有高性能的嵌入式模拟锁相环,次锁相环 PLL 可以与一输入的时钟信号同步,并以

44、其作为参考信号实现锁相,从而输出一至多个同步倍频或分频的片内时钟,以供逻辑系统应用。与直接来自外部的时钟相比,这种片内时钟可以减少时钟延时和时钟变形,减少片外干扰;还可以改善时钟的建立时间和保持时间,是系统稳定工作的保证。从前面的误差分析中得知:闸门时间越长,标准频率越高,测频的相对误差就越小。所以为了减小误差,提高显示的稳定度,在此系统中用了 10 倍频的锁相环,如图 3-5 所示:17BENABCLKCLRBZQ31.0BZHinst3图 3-5 锁相环模块该模块有一个输入端,一个输出端,各个端口的作用如下:inclk0 输入端,它接的是开发板上 20MHZ 的晶振,经过锁相环的 10 倍

45、频后输出给c0 端。C0 是输出端,它将 10 倍频之后的信号输入给计数器。3.33 两个 32 位的高速计数器模块计数器是整个测频系统的核心模块。在此测频系统中,需要两个计数器,一个是对标准频率进行计数的计数器,另一个是对待测频率进行计数的计数器。它们在预置闸门时间内进行计数,计数完毕之后,经过一个选择器把数值交给单片机,由其计算出待测频率。计数器模块如下图 3-63-6 标准频率计数器从其模块图中可以看出,该模块有三个输入端,一个输出端,下面详细介绍每个端口的作用。BENA 是输入端,它是计数器的使能端,高电平有效。它是由 D 触发器的输出端 Q 控制,当 Q 为高电平时,计数器开始计数。

46、BCLK 是输入端,它的输入信号是经过锁相环 10 倍频后的标准频率信号,CLR 是清零信号,是由单片机控制的,高电平有效。BZQ31.0是计数器输出的 32 位计数值。计数器的仿真图如图 3-7 所示:18SEL2.0BZQ31.0TSQ31.0DATA7.0MUX64_8inst图 3-7 计数器仿真图3.34 8 选 1 数据选择器8 选 1 数据选择器是 FPGA 与单片机直接进行通信模块,它将标准频率计数器和待测频率计数器读出的数值按 8 位有选择性的输出给单片机的 P0 口。它的模块图如图 3-8 所示。图 3-8 数据选择器模块图从上图中可以看出,该模块有三个输入端,一个输出端,

47、其中:SEL2.0是输入端,是选择脉冲信号。它是由单片机的 P2.2、P2.1、P2.0 三个端口控制,它将标准频率计数器的 32 位计数值和待测频率计数器的 32 位计数值按 8 位依次送入单片机内。BZQ31.0是输入端,是标准频率计数器的 32 位计数值。TSQ31.0是输入端,是待测频率计数器的 32 位计数值。DATA7.0是输出端,它根据选择脉冲信号,输出相应的 8 位数据送入单片机内进行数据处理。数据选择器的仿真图如图 3-9 所示:19开始初始化产生闸门时间START=0?采集数据数据处理显示控制新数?结束YNYN图 3-9 数据选择器仿真图3.4 单片机部分的软件设计单片机负

48、责对测频系统核心 FPGA 和数码管的控制,由于单片机的速度慢,不能直接测量高频信号,所以使用高速 FPGA 为测频核心,FPGA 由单片机控制,单片机的 P0 口负责读取数据,P2 负责发送信号。单片机的 P0 口接 8 位数据 DATA,负责读取测频数据。单片机可以通过结束信号了解测频计数是否结束,以确定何时开始读取数据。P2 口用于控制多路通路的数据选择。分别读出标准频率数值和待测频率数值。单片机根据读取的数据计算出被测频率的数值,然后使用串行口的同步模式驱动移位寄存器显示被测信号的频率值。单片机部分的流程图如图 3-10 所示;20图 3-10 单片机执行流程图单片机程序设计过程中的部

49、分问题分析:(1) 数据采集部分的问题。FPGA 的两个的 32 位计数器的计数值,在选择信号的控制下,按 8 位有选择性的输出给单片机的 P0 口,那么在单片机内如何重新组合两个 32 位的计数值?本设计主要通过如下程序实现。unsigned long *BZQ,*TSQ;unsigned char BZQ_tab4; unsigned char TSQ_tab4;BZQ=BZQ_tab; /利用首地址相同的指针和数值,巧妙的进行数据采集TSQ=TSQ_tab; /利用首地址相同的指针和数值,巧妙的进行数据采集 先定义了两个指向长整型变量的指针变量,然后定义了两个字符型的数组。由于数组名代表

50、数组中的首元素的地址,通过后两句的程序,使指针和数组的首地址相同。while(START!=0);SEL_2=0; SEL_1=0; SEL_0=0; BZQ_tab3=P0;SEL_2=0; SEL_1=0; SEL_0=1; BZQ_tab2=P0;SEL_2=0; SEL_1=1; SEL_0=0; BZQ_tab1=P0;SEL_2=0; SEL_1=1; SEL_0=1; BZQ_tab0=P0;SEL_2=1; SEL_1=0; SEL_0=0; TSQ_tab3=P0;SEL_2=1; SEL_1=0; SEL_0=1; TSQ_tab2=P0;SEL_2=1; SEL_1=1;

51、 SEL_0=0; TSQ_tab1=P0;SEL_2=1; SEL_1=1; SEL_0=1; TSQ_tab0=P0; 单片机通过结束信号判断两个计数器是否计数结束,当计数结束之后,单片机将 P0的值依次给数组中的每一个元素,由于数组是字符型的,每一个数组中的元素刚好是 821位。这样就将 32 位的标准频率计数值送入了数组 BZQ_tab4中,而 32 位的待测频率计数值被送入了数组 TSQ_tab4中。由于长整型的指针变量是 32 位的,在此程序中又使指针和数组的首地址相同,所以通过*BZQ,*TSQ 巧妙的采集到了标准频率计数值和待测频率计数值。(2) 数据处理部分的问题。如何消除前

52、面的 0 及让小数点能随着数值的变化而变化,小数点变化实现的是让显示结果根据自身值的大小分别以 HZ、KHZ、MHZ 为单位。如:正常情况下,当频率为 542.3KHz 的时候,8 位数码管显示为 00542300,而本设计的显示为542.3000- 。当频率为 15.423Hz 的时候,8 位数码管显示为 00000015,本设计的显示为15.42300。unsigned char FCounter13;首先定义了一个包含 13 个元素的字符型数组。TCLK=(BCLK*(double)*TSQ)/(double)*BZQ);/计算待测频率的值 TEMP=(BCLK*(double)*TSQ

53、)/(double)*BZQ)*100000;/取 5 位小数FCounter0=TCLK%100000000/10000000;FCounter1=TCLK%10000000/1000000;FCounter2=TCLK%1000000/100000;FCounter3=TCLK%100000/10000;FCounter4=TCLK%10000/1000;FCounter5=TCLK%1000/100;FCounter6=TCLK%100/10;FCounter7=TCLK%10;FCounter8=TEMP%100000/10000;FCounter9=TEMP%10000/1000;F

54、Counter10=TEMP%1000/100;FCounter11=TEMP%100/10;FCounter12=TEMP%10; 给数组的前八个元素赋值,这样,FCounter0 FCounter7分别代表 TCLK 以HZ 为单位整数部分的最高位到最低位。FCounter8 FCounter10分别代表小数点的22后 5 位。i=0; /判断前零的个数 for(m=0;m7;m+) if(FCounterm=0)i+; else m=8; /跳出循环 通过上段程序,i 成为 TCLK 中前零的个数。for(n=0;n7;n+) if(i%3=0 & n=1)SBUF=LED_tabFCountern+i|0 x01; else if(i%3=1 & n=0)SBUF=LED_tabFCountern+i|0 x01; else if(i%3=2 & n=2)SBUF=LED_tabFCountern+i|0 x01; else SBUF=LED_tabFCountern+i;while(TI!=1);TI=0;显示的时候,根据 i 的值消除前零,自动的从不为零的最高位开始显示。这里,n=0n=6 分别表示最高位到最低位。小数点的位置(如 n=0 表示小数点的位置在第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论