等精度数字频率计的设计.docx

上传人:b****8 文档编号:9529766 上传时间:2023-05-19 格式:DOCX 页数:74 大小:972.88KB
下载 相关 举报
等精度数字频率计的设计.docx_第1页
第1页 / 共74页
等精度数字频率计的设计.docx_第2页
第2页 / 共74页
等精度数字频率计的设计.docx_第3页
第3页 / 共74页
等精度数字频率计的设计.docx_第4页
第4页 / 共74页
等精度数字频率计的设计.docx_第5页
第5页 / 共74页
等精度数字频率计的设计.docx_第6页
第6页 / 共74页
等精度数字频率计的设计.docx_第7页
第7页 / 共74页
等精度数字频率计的设计.docx_第8页
第8页 / 共74页
等精度数字频率计的设计.docx_第9页
第9页 / 共74页
等精度数字频率计的设计.docx_第10页
第10页 / 共74页
等精度数字频率计的设计.docx_第11页
第11页 / 共74页
等精度数字频率计的设计.docx_第12页
第12页 / 共74页
等精度数字频率计的设计.docx_第13页
第13页 / 共74页
等精度数字频率计的设计.docx_第14页
第14页 / 共74页
等精度数字频率计的设计.docx_第15页
第15页 / 共74页
等精度数字频率计的设计.docx_第16页
第16页 / 共74页
等精度数字频率计的设计.docx_第17页
第17页 / 共74页
等精度数字频率计的设计.docx_第18页
第18页 / 共74页
等精度数字频率计的设计.docx_第19页
第19页 / 共74页
等精度数字频率计的设计.docx_第20页
第20页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

等精度数字频率计的设计.docx

《等精度数字频率计的设计.docx》由会员分享,可在线阅读,更多相关《等精度数字频率计的设计.docx(74页珍藏版)》请在冰点文库上搜索。

等精度数字频率计的设计.docx

等精度数字频率计的设计

题目:

等精度数字频率计的设计

摘要

本设计课题为基于FPGA和单片机的等精度数字频率计的设计。

在本设计中,采用先进的自上而下的设计方法,以AT89C52单片机作为系统的主控部件,实现整个电路的信号控制、数据运算处理等功能;一片现场可编程逻辑器件FPGA(FiledProgrammableGateArray)芯片FLEXEPF10K20RC208-4完成各种时序逻辑控制、计数功能。

在数字硬件电路EDA设计平台MAX+plusⅡ上,使用硬件描述语言VHDL编程完成了FPGA内部的数字硬件电路设计、编译、调试、仿真和下载。

本文详细论述了等精度数字频率计的测频原理、硬件电路的组成、设计和单片机软件编程设计。

其中硬件电路包括键盘控制模块、显示模块和测量模块,键盘模块通过对六只按键的选择实现了除测频功能外的周期、脉宽、占空比测量等功能的选择;显示模块采用动态显示方式,节省了FPGA内部大量资源;AT89C52单片机的软件编程采用灵活易读的C语言。

本设计将AT89C52单片机的控制灵活性和FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。

关键词:

EDA技术;单片机;FPGA;频率计

TheDsignOfEqual-AccuracyDigtalFrequency

Abstract

Thetitleofthisdesignisthedesignofequal-accuracydigitalfrequencybasedonFPGAandsinglechipcomputer.Thedigitalfrequencymeterdesigninthispaperwhichadoptstop-downdesignmethodologyusestheAT89C52singlechipcomputerasthemaincontrollingparts.TheAT89C52realizestestsignalcontrol,keyboardscanandoutputdisplayofLED.OneFPGAchipFLEXEPF10K20RC208-4fulfilstiminglogiccontrolandcountfunction.UnderthehardwarecircuitdesignflatofMAX+plusⅡ,FPGAsoftwaredesigning,compiling,debugging,simulationanddownloadarebeencarriedoutinVHDL.

Thisarticledetailexpositionofthetestingfrequencyprecisiondigitalprinciples,hardwarecircuitcomposition,designandsoftwareprogrammingdesignofsinglechipcomputer.Thesehardwarecircuitsincludingkeyboardcontrolmodule,displaymodulesandmeasurementmodules.Keyboardmodulethroughsixachievedmadethesystemcanmeasurepulsewidthandoccupy-emptyratioofinputsignal.Theusingofdynamicdisplaymodule,savingalotofinternalFPGAresources.ThesoftwareprogrammingofAT89C52singlechipcomputeradoptstheflexibleandaccessibleClanguage.ThesystemcombinesthecontrollingflexibilityofAT89C52withprogrammableperformanceofFPGA,soitnotonlycanshortendevelopcycle,butalsohasadvantageoftighteningarchitecture,littlevolume,highreliability,widescopeandhighprecision.

Keywords:

EDAtechnique;singlechipcomputer;frequencymeter;FPGA

第一章绪论

一.1研究背景及意义

随着电子技术与计算机技术的不断发展,以单片机为核心的测量控制系统层出不穷。

在被测信号中,经常遇到以频率为参数的信号,例如流量、转速、晶体压力传感器以及经过参变量—频率转换后的信号等。

频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以研究测频方法是电子测量领域的重要内容。

传统的数字频率计一般由分离元件搭接而成,其测量范围、测量精度和测量速度都受到很大的限制。

虽然单片机的发展与应用改善了这一缺陷,但由于单片机本身也受到工作频率及内部计数器位数等因素的限制,所以无法在此领域取得突破性的进展。

随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成在单个器件中,FPGA根据不同的需要所提供的门数可以从几百门到上百万门,从根本上解决了单片机的先天性不足。

本课题所设计的等精度数字频率计不但集成度远远超过了以往的数字频率计,而且在基准频率等外部条件的允许下,可以根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,而不增加系统硬件,从而降低系统的整体造价。

此外,系统芯片(SOC)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。

该数字频率计的设计及实现应用计数器法,基于上述优势开发的频率计具有良好的应用价值和推广前景。

一.2频率计发展概况

传统的数字频率计可以通过普通的硬件电路组合来实现,一般由分离元件搭接而成,其开发过程、调试过程十分繁锁,而且由于电子器件之间的互相干扰,影响频率计的精度,体积较大,已不适应电子设计的发展要求。

MSC-51系列单片机具有体积小、功能强、性能价格比高等特点,广泛应用于工业测量、控制和智能化仪器、仪表等领域。

以MSC-51系列单片机为核心的频率计,较分离元件搭接而成的频率计改善了性能、提高了可靠性,并可以采用软件实现各种频率测量方法。

但由受到单片机本身特性的影响,其晶振最大只能为24MHz,以单片机为核心的频率计的测频范围及精度受到很大的制约。

随着EDA技术的发展,现代频率计的设计多采用基于FPGA芯片的方法来完成频率计的设计,即通过VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)硬件描述语言的设计,用FPGA来实现。

FPGA(FieldProgrammableGateArray)即现场可编程逻辑器件是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。

用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。

掉电后,FPGA恢复成白片,内部逻辑关系消失,因此FPGA能够反复使用。

FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。

当需要修改FPGA功能时,只需换一片EPROM即可。

这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。

因此,FPGA的使用非常灵活。

同时EDA开发工具的通用性、设计语言(在此为VHDL)的标准化以及设计过程几乎与所用器件的硬件结构无关,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,可以在很短的时间里完成十分复杂的系统设计。

一.3论文所做的工作与研究内容

随着EDA(ElectronicsDesignAutomation)技术的发展和可编程逻辑器件的广泛应用,传统的自下而上的数字电路设计方法、工具、器件已远远落后于当今技术的发展。

基于EDA技术和硬件描述语言的自上而下的设计技术正在承担起越来越多的数字系统设计任务。

本设计主要论述了利用FPGA进行测频计数,单片机实施控制的方法实现多功能频率计的过程,使得频率计具有了测量精度高、功能丰富、控制灵活等特点。

该频率计依照等精度的测量原理,克服了传统计数器测频原理随被测信号频率下降而降低的缺点。

等精度的测量方法不但具有较高的测量精度,而且在整个频率域保持恒定的测量精度。

该频率计利用FPGA来实现对被测频率信号及标准频率信号的周期计数,由单片机实现对系统的控制、数据运算及数制转换等功能。

本设计的主要工作包括以下几项内容:

(1)简述了当今频率计的发展状况,对几种常用的测频方法进行了介绍和对比.

(2)在FPGA和单片机的基础上采用等精度测量方法,实现了高精度的频率、周期、脉宽和占空比的测量。

(3)采用MSC-51单片机来实现对功能键的控制、数据的运算、码制的转换、数据的显示等功能。

(4)完成了基于数字硬件电路设计平台Max+plusII的FPGA硬件电路的设计和单片机的测试控制、数据处理程序。

本文分5章介绍了基于FPGA和单片机的等精度数字频率计的设计原理、设计方法、和开发步骤,并对频率计的测量结果和实际输入频率进行了比较,分析了本设计影响测量精度的主要因素。

第二章等精度数字频率计测频原理及设计方法

二.1等精度数字频率计测频原理

二.1.1常用测频方法简介

目前常用的测频方法可以分为3类,即:

(1)比较法

通过与标准频率f0比较确定被测频率fx,测量精度主要取决于标准频率f0的精度。

主要方法有用于低频段测量的拍频法、示波器法和用于高频频段测量的差频法等。

(2)电路频率特性测量法

由电路的已知参数与电路的频率特性得到被测频率fx,主要方法包括用于低频段的电桥法和用于高频或微波频段的谐振法。

(3)计数器法

由单位时间内被测信号的周期重复次数测得fx,即计数器法测频.目前最常用的计数器法是测频法或测周法,其测量精度主要取决于基准时间和计数的量化误差。

当被测频率较高时,采用测频法可以得到较高的测频精度;当被测频率较低时,采用测周法可以得到较高的测频精度。

但当被测频率变化范围较大时,这两种方法均不能保证整个频率范围的测量精度。

[1]

本课题测频原理为等精度测频,下面就等精度测频原理进行具体叙述.

二.1.2等精度测频原理

等精度测频法是在计数器测频法的基础上发展而来的。

其原理图如图2.1所示。

当方波预置门控信号CL可由单片机发出,CL的时间宽度对测频精度影响较小,所以可以在1秒至0.1秒间选择,在此设其宽度为BZH和TF。

BZH和TF是两个可控的32位高速计数器,BENA和ENA分别是他们的计数允许信号端,高电平有效。

标准频率信号从BZH的时钟输入端BCLK输入,设其频率为FS;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率FXE,测量频率为FX。

图2.1等精度测频原理图

测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置零,然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1,与此同时,将同时启动计数器BZH和TF,进入“计数允许周期”。

在此期间,BZH和TF分别对被测信号和标准频率信号同时计数。

当TPR秒后,预置门控信号CL被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将着两个计数器同时关闭。

[2]

设FX为整形后的被测信号频率,FS为基准频率信号频率,若在一次预置门高电平脉宽时间内(TPR)被测信号计数值为Nx;基准频率计数值为NS,则有下式成立:

(2-1)

二.2等精度数字频率计的设计方法

二.2.1电子系统的传统设计方法

现代电子系统一般由模拟电子系统、数字电子系统和模数混合电子系统三大部分组成。

从概念上讲凡是利用数字技术处理和传输信息的电子系统都可以称为数字系统。

传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能。

电子产品设计的基本思路一直是先选用标准通用集成电路芯片,再由这些芯片和其它元件自下而上的构成思路、子系统和系统,即常说的”自底向上”的设计方法。

“自底向上“一般是在系统划分和分解的基础上先进行单元设计,在单元的精心设计后逐步进行功能模块设计,然后再进行子系统的设计,最后完成系统总体设计。

这样设计出的电子系统所用元件的种类和数量较多,体积与功耗大,可靠性差。

图2.2(a)所示为传统“自底向上”设计方法的具体设计步骤。

随着集成电路技术的不断进步和EDA技术的迅速发展,可编程逻辑器件及EDA技术给今天的电子系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。

现在,只要拥有一台计算机、一套相应的EDA软件和空白的可编程逻辑器件芯片,在实验室里就可以完成数字系统的设计和生产。

二.2.2当代电子系统的设计方法

随着集成电路技术的不断进步和EDA技术的迅速发展,现在人们可以把数以亿计的晶体管,几十万门甚至几百万门的电路集成在一块芯片上。

半导体集成电路已由早期的单元集成、部件电路集成发展到整机电路集成和系统电路集成。

利用EDA工具,采用可编程器件,通过设计芯片来实现系统功能,这种方法称为基于芯片的设计方法。

新的设计方法能够由设计者定义器件内部逻辑,将原来由电路板设计完成的大部分工作放在芯片的设计中进行。

这样不仅可以通过芯片设计实现多种数字逻辑系统,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,从而有效的增强了设计灵活性,提高了工作效率。

同时,基于芯片的设计可以减少芯片的数量,缩小系统的体积,降低能源消耗。

电子系统的设计方法也由传统的“自底向上“的方法改为”自顶向下“的设计方法。

在这种新的设计方法中,由整机系统用户对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路ASIC来实现,且这些专用集成电路是由系统和电路的设计师亲自参与设计的,直至完成电路到芯片版图的设计,再交由IC工厂加工,或者用可编程ASIC(例如CPLD和FPGA)现场编程实现。

[1]

在“自顶向下“的设计中,首先需要进行行为设计,确定该电子系统的功能、性能及允许的芯片面积和成本等。

接着进行结构设计,根据该电子系统或芯片的特点,将其分为接口清晰、相互关系明确、尽可能简单的子系统,得到一个总体结构。

这个结构可能包括算术逻辑单元、控制子单元、数据通道、各种算法状态机等。

下一步是把结构转换成逻辑图,这时需要进行硬件仿真,以最终确定本次设计的正确性。

最后进行版图设计,即将电路图转化成版图。

图2.2(a)“自顶向下“设计步骤(b)“自底向上“设计步骤

本设计所采用的正是自顶向下的设计方法,缩短了设计周期,降低了设计成本。

第三章主要芯片及设计工具简介

三.1主要芯片介绍

三.1.1AT89C52单片机性能简介

图3.1AT89C52引脚图

AT89C52是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含8K字节可反复擦写的只读程序存储器(EPROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52适合于许多较为复杂的控制应用场合,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

其引脚图如图3.1,内部方框图见附录一。

(1)主要性能参数:

·与MCS-51产品指令和引脚完全兼容兼容

·8K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·256*8字节内部RAM

·32可编程I/O线

·3个16位定时器/计数器

·8个中断源

·可编程串行UART通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电共组模式。

空闲方式停止CPU工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

(2)引脚功能说明:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,即地址/数据复用总线。

作为输出口用时,每脚可驱动8TTL门电流。

当P1口的管脚写1时,被定义为高阻抗输入。

P0能够用于访问外部程序/数据存储器,它可以被定义为地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口输出缓冲器能接收/输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高电平,此时可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P1.0、P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双响I/O口。

P3口输出缓冲级可驱动4个TTL逻辑门电路。

P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口管脚备选功能如下所示:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

(3)振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

(4)芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

[3]

三.1.2FLEX10K芯片系列简介

随着电子技术的不断发展,电子系统的设计方法也发生了很大的变化,传统的设计方法正逐步退出历史舞台,而基于EDA技术的芯片设计正在成为电子系统设计的主流。

大规模可编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程专用集成电路(ASIC)。

可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件,是一种由用户编程来实现某种逻辑功能的新兴器件,芯片内的逻辑门、触发器等硬件资源可由用户配置来连接来实现专用的用户逻辑功能。

它是大规模集成电路技术飞速发展与计算机辅助设计、计算机辅助生产和计算机辅助测试相结合的一种产物,是现代数字系统向超高集成度、超低功耗、超小封状和专用化方向发展的重要基础。

它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性和保密性,而且给数字系统的设计方法带来了革命性的变化。

目前常用的可编程逻辑器件从结构上可将其划分为两大类:

CPLD和现场可编程门阵列FPGA。

FPGA是20世纪80年代中期出现的可编程逻辑器件,其结构类似于掩膜可编程门阵列(MPGA),它由许多独立的可编程模块组成,拥护可以通过编程将这些模块连接起来实现不同的设计。

FPGA兼容了MPGA和PLD两者的优点,因而具有更高的集成读、更强的逻辑实现能力和更好的设计灵活性。

FPGA具有掩膜可编程门阵列(MPGA)的通用结构,它由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。

其中FPGA的功能由逻辑结构的培植数据决定。

工作时这些配置数据存放在片内的SRAM或熔丝上。

基于SRAM的FPGA器件在工作前需要从芯片外部加载配置数据。

用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场编程。

FLEX10K器件结构图如图3.2所示:

图3.2FLEX10K器件结构图

各种FPGA再结构上的差异主要反映在可编程逻辑块C

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2