基于单片机与FPGA的等精度频率计的设计单片机部分_第1页
基于单片机与FPGA的等精度频率计的设计单片机部分_第2页
基于单片机与FPGA的等精度频率计的设计单片机部分_第3页
基于单片机与FPGA的等精度频率计的设计单片机部分_第4页
基于单片机与FPGA的等精度频率计的设计单片机部分_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE68毕业设计论文题目:基于单片机与FPGA的等精度频率计的设计单片机部分内蒙古科技大学毕业设计说明书(毕业论文)基于单片机与FPGA的等精度频率计的设计单片机部分摘要本设计课题为基于单片机与FPGA的等精度频率计的设计。本设计以AT89C51单片机作为系统的主控部件,实现整个电路的信号控制、数据运算处理等功能;一片现场可编程逻辑器件FPGA芯片FLEXEPF10K20RC208-4完成各种时序逻辑控制、计数功能。本文详细论述了等精度数字频率计的测频原理、硬件电路的组成、设计和单片机软件编程设计、系统的误差分析。其中硬件电路包括键盘控制模块、显示模块和测量模块,键盘模块采用独立式的键盘,实现了测频功能,还实现了周期、脉宽、占空比测量等功能的选择;显示模块采用静态显示方式,因此电路结构简单,显示方便;AT89C51单片机的软件编程采用灵活易读的C语言。本设计将AT89C51单片机的控制灵活性和FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。关键词:EDA技术;单片机;频率计;FPGA内蒙古科技大学毕业设计说明书(毕业论文)BasedontheMCUandFPGAsuchasthefrequencyaccuracyofdesignSCMpartAbstractThedesignissuesforthefrequencyofsuchasthefrequencyaccuracyofdesignwhichbasedontheMCUandFPGA.InthedesignAT89C51asamaincomponent,completedthewholecircuit’ssignalcontrol,thedataprocessingfunctionsandsoon;afieldprogrammablelogicdeviceFPGAandchipFLEXEPF10K20RC208-4completedlogiccontrolingandcountingfunction.Thispaperdiscussesindetailtheaccuracyofthefiguressuchasthefrequencyinfrequencymeasurementprinciple,hardwarecircuitcomponents,designandmicrocontrollersoftwaredesign.Circuitincludeshardwarekeyboardcontrolmodule,moduleandmeasurementmodulekeyboardmoduleofsixkeyschoice,itnotonlycompletesthefunctionaltestfrequencybutalsocompletesthecycle,pulsewidth,dutycyclemeasurementfunctionofchoice;Modulestaticdisplaymodemadethecircuitsimple,andconventiontoshow;AT89C51flexiblesoftwareprogramminginClanguageaccessibility.ThedesignwhichcombinatedAT89C51controlflexibilityandFPGAFieldProgrammablePhasenotonlygreatlyshortensthedevelopmentcycletime,butalsomakesthesystemhavetheadvantagesofcompact,smallsize,highreliability,Measuringfrequencyrange,thehigherprecision.Keywords:EDAtechnology;Microcontroller;Cymometer;FPGA内蒙古科技大学毕业设计说明书(毕业论文)目录摘要 IAbstract II第一章引言 11.1研究背景与意义 11.2频率计的发展概况 11.3论文所做的工作与研究内容 2第二章等精度数字频率计测频原理与设计方法 42.1等精度数字频率计测频原理 42.1.1数字频率计的测频方法简介 42.1.2等精度测频原理 52.2等精度数字频率计的设计方法 72.2.1电子系统的设计方法 7第三章主要芯片及设计工具简介 83.1主要芯片性能介绍 83.1.1AT89C51单片机性能介绍 83.1.2FLEX10K系列芯片性能介绍 113.2MAX+PLUSII概述 143.3KEILC51语言简介 143.4VHDL语言简介 16第四章硬件电路设计 184.1系统组成 184.2键盘接口电路 194.3显示电路 204.3.1LED显示模块 204.3.2显示模块 214.4测量电路 234.4.1测量与自校选择电路 244.4.2测频/测周电路 254.4.3脉宽控制电路 274.5硬件电路的VHDL语言描述 284.5.1D触发器 284.5.232位计数器 304.5.3MUX64-8多路选择器 314.5.4MUX2-1选择器 314.5.5时钟发生器 324.5.6单片机主控电路 32第五章软件设计 345.1单片机主程序 345.2复位自检程序 355.3键盘程序 365.4测频子程序 375.5测周期子程序 385.6测脉宽子程序 385.7占空比子程序 385.8显示子程序 39第六章系统性能分析 406.1占空比子程序 406.1.1低端频率 406.1.2高端频率 406.2频率测量精度分析 41结论 43参考文献 44附录A系统原理图 45附录BAT89C51单片机内部框图 46附录C硬件电路的VHDL描述 47附录D单片机C语言程序清单 54致谢 67内蒙古科技大学毕业设计说明书(毕业论文)引言研究背景与意义随着科学技术与计算机应用的不断发展,以单片机作为核心的测量控制系统层出不穷。在被测信号中,较多的是模拟和数字开关信号,此外还经常遇到以频率为参数的测量信号,例如流量、转速、晶压力传感器以及经过参变量―频率转换后的信号等等。频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以研究测频方法是电子测量领域的重要内容。传统的数字频率计一般由分离元件搭接而成,其测量范围、测量精度和测量速度都受到很大的限制。虽然单片机的发展与应用改善了这一缺陷,但由于单片机本身也受到工作频率及内部计数器位数等因素的限制,所以无法在此领域取得突破性的进展。随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成在单个器件中,FPGA根据不同的需要所提供的门数可以从几百万到上百万门,从根本上解决了单片机的先天性不足。本课题所设计的等精度数字频率计不但集成度远远超过了以往的数字频率计,而且在标准频率等外部条件的允许下,可以根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,而不增加系统硬件,从而降低系统的整体造价。此外,系统芯片(SCO)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。该数字频率计的设计及实现应用计数器法,基于上述优势开发的频率计具有良好的应用价值和推广前景。频率计的发展概况传统的数字频率计可以通过普通的硬件电路组合来实现,一般由分离元件搭接而成,其开发过程、调试过程十分繁琐,而且由于电子器件之间的互相干扰,影响频率计的精度,体积较大,已不适应电子设计的发展要求[1][2]。MSC-51系列单片机具有体积小、功能强、性能价格比高等特点,广泛应用于工业测量、控制和智能化仪器、仪表等领域。以MSC-51系列单片机为核心的频率计设计,较分离元件搭接而成的频率计改善了性能、提高了可靠性,并可以采用软件实现各种频率测量方法[3]。但由于受到单片机本身特性的影响,其晶振最大只能为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)的标准化以及设计过程几乎与所用器件的硬件结构无关,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,可以在很短的时间内完成十分复杂的系统设计。论文所做的工作与研究内容随着EDA(ElectronicsDesignAutomation)技术的发展和可编程逻辑器件的广泛应用,传统的自下而上的数字电路设计方法、工具、器件已远远落后于当今技术的发展。基于EDA技术正在承担起越来越多的数字系统设计任务。本设计主要论述了利用FPGA进行测频计数,单片机实施控制,实现多功能频率计的过程,使得频率计具有了测量精度高、功能丰富、控制灵活等特点。该频率计依照等精度的测量原理,克服了传统计数器测频原理随被测信号频率下降而降低的缺点。等精度测量方法不但具有较高的精度,而且在整个频率域保持恒定的测量精度。该频率计利用FPGA来实现对频率、周期、脉宽、占空比的测量计数,由单片机实现对系统的控制、数据的显示、数据运算及数制转换等功能。本设计的主要工作包括以下几项内容:⑴简述了当今频率计的发展状况,对几种常用的测频方法进行了介绍和对比。⑵详细地论述了等精度频率计的测频原理。在FPGA和单片机的基础上采用等精度的测量方法,实现了高精度的频率、周期、脉宽和占空比的测量。⑶采用MSC-51单片机来实现对功能键的控制、数据运算、码制转换、数据显示等功能。⑷完成了频率计的系统硬件电路的设计,同时完成了基于数字硬件电路设计平台Max+plusⅡ的FPGA硬件电路设计,FPGA模块用来完成高速计数器的功能;单片机完成测试控制、数据处理等功能,并对整个系统进行总体控制。⑸对频率计的系统性能进行分析,分别分析了低端频率和高端频率得出本设计的测频范围是0.01Hz~40MHz,同时分析了测量精度。本文分6章介绍了基于FPGA和单片机的等精度数字频率计的设计原理、设计方法、开发步骤,并且对频率计的测量结果和实际输入频率进行比较,分析了本设计影响测量精度的主要因素。等精度数字频率计测频原理与设计方法等精度数字频率计测频原理数字频率计的测频方法简介目前数字频率计的测频方法可以有以下几种实现方法:⑴直接测量法直接测量法是把频率信号经脉冲形成电路后加闸门的一个输入端,只有在闸门开通时间T(以秒计)内,计数脉冲被送到十进制计数器进行计数。设计数器的值为N,由频率定义可以计算得到被测信号频率为:(2-1)经分析,此种测量在低频段的相对测量误差较大。增大T可以提高测量精度,但在低频段仍不能满足任务要求。⑵组合法直接测量周期法在低频段精度高。组合法是指在低频时采用直接测量周期法测量信号的周期,然后换算成频率。这种方法在一定程度上可以弥补方法⑴的不足,电路实现较为复杂。⑶倍频法直接测量法在高频段有着很高的精度。可以把频率测量范围分为多个频段,使用倍频技术,根据频段设置倍频系数将经整形的低频信号进行倍频后进行测量,高频段则进行直接测量。⑷直接测量周期法用被测信号经放大整形后形成的方波信号直接控制计门控电路,使主门开放时间等于信号周期,时标为Ts的脉冲在主门开放时间进入计数器。设T为被测周期,Ts为时标,在Tx时间计数值为N,可以根据以下公式来算得被测信号周期:(2-2)此种方法,被测信号频率越高,测量误差越大。采用多个周期进行计数取平均值的方法虽可提高精度,每一次的等待时间较长,显然是不可取的[4]。本课题测频原理为等精度测频原理[5],下面就等精度测频原理进行具体叙述。等精度测频原理等精度测频法的最大特点是在整个被测频率范围内都能达到相同的测量精度,而与被测信号频率大小无关。其原理图如图2.1所示。图2.1等精度测频原理图图2.2等精度频率计测频波形时序图当方波预置门控信号CL可由单片机发出,CL的时间宽度对测频精度影响较小,所以可以在1秒至0.1秒间选择,在此设其宽度为Tpr。BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是它们的计数允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为Fs;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率为Fxe,被测频率为Fx。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置零,同时通过信号ENA禁止两个计数器计数。这是一个初始化操作。然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1,与此同时,将同时启动计数器BZH和TF,进入“计数允许周期”。在此期间,BZH和TF分别对标准频率信号(频率为Fs)和被测信号(频率为Fx)同时计数。当Tpr秒后,预置门控信号CL被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将把这两个计数器同时关闭。设Fx为整形后的被测信号频率,Fs为基准信号频率,设在一次预置门时间Tpr中对被测信号的计数值为Nx,对标准频率信号的计数值为Ns,则有下式成立:(2-3)不难得到测得的频率为:(2-4)最后通过控制SEL选择信号和64位至8位的多路选择器MUX64-8,将计数器BZH和TF中的两个32位数据分8次读入单片机并按式(2-4)进行计算和结果的显示。等精度数字频率计的设计方法电子系统的设计方法现代电子系统一般由模拟子系统、数字子系统和微处理器子系统三大部分组成。从概念上讲,凡是利用数字技术处理和传输信息的电子系统都可以称为数字系统。传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能。利用EDA工具,采用可编程器件,通过设计芯片来实现系统功能,这种方法称为基于芯片的设计方法。新的设计方法能够由设计者定义器件的内部逻辑,将原来由电路板设计完成的大部分工作放在芯片的设计中进行。这样不仅可以通过芯片设计实现多种数字逻辑系统,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,从而有效的增强了设计的灵活性,提高了工作效率。同时,基于芯片的设计可以减少芯片的数量,缩小系统体积,降低能源消耗。图2-2所示为电子系统的传统设计方法和基于芯片的设计方法。图2-2(a)传统设计方法(b)基于芯片设计方法可编程逻辑器件和EDA技术给今天的硬件系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。现在,只要拥有一台计算机、一套相应的EDA软件和空白的可编程逻辑器件芯片,在实验室里就可以完成数字系统的设计和生产。主要芯片及设计工具简介主要芯片性能介绍AT89C51单片机性能介绍图3-1AT89C51引脚图AT89C51是一个内含4K字节可编程可擦除的快闪存储器(FlashMemory)和128个字节RAM,低电压,高性能CMOS结构的8位单片机。采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和快闪存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。⑴AT89C51的主要特性如下:●与MCS-51兼容●4K字节可编程快闪存储器●寿命:1000次写/擦●数据保留时间:十年●128*8位内部RAM●32可编程I/0线●两个16位定时器/计数器●五个中断源●可编程串行通道●低功耗的闲置和掉电模式●片内振荡器和时钟电路⑵其管脚的具体说明如下:VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每个引脚可驱动8个TTL门电流。当P1口的管脚输入数据时,应先把口置‘1’P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能驱动4个TTL门。P1口管脚写入‘1’P2口:P2口是一个内部提供上拉电阻的8位双向I/0口,P2口缓冲器可驱动4个TTL门电流,当P2口被写‘1’P1口当用作外部程序存储器或外部数据存储器进行存取时,P2口输出16位地址的高八位。在给出地址“1”P3口:P3口管脚是八个带内部上拉电阻的双向I/O口,可驱动4个TTL门电流。当P3口写入‘1’P3口也可作为AT89C51的一些特殊功能。如下表所示:管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(计时器0外部输入)P3.5T1(计对器1外部输入)P3.6(外部数据存储器写选通)P3.7〔外部数据存储器读选通)P3口同时为快闪编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:外部程序存储选择信号,输入,低电平有效。当保持低电平时,则在此期间外部存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式为1时,将内部锁定为RESET;当端保持高电平时,将从内部程序存储器读取指令码,只有当程序计数器PC大于内部程序存储器地址空间时,才从外部程序存储器读取指令码,因此在没有内部ROM或不适用内部ROM的系统中,/VPP引脚一律接地。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。⑶振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡都可以采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。⑷芯片擦除:整个EPROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所有其它芯片的功能,直到下一个硬件复位为止[6]。FLEX10K系列芯片性能介绍随着电子技术的发展,电子系统的设计方法也发生了很大的变化。传统的设计方法正逐步退出历史舞台,而基于EDA技术的芯片设计正在成为电子系统设计的主流。大规模可编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程专用集成电路(ASIC)。可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件,是一种由用户编程来实现某种逻辑功能的新型器件,芯片内的逻辑门、触发器等硬件资源可由用户配置来连接实现专用的用户逻辑功能。它是大规模集成电路技术飞速发展与计算机辅助设计、计算机辅助生产和计算机辅助测试相结合的一种产物,是现代数字系统向超高集成度、超低功耗、超小封装和专用化方向发展的重要基础。它的应用和发展不仅简化了电路设计,降低了成本、提高了系统的可靠性和保密性,而且给数字系统的设计方法带来了革命性的变化。目前常用的可编程逻辑器件从结构上可划分为两大类:CPLD和现场可编程门阵列FPGA。FPGA是20世纪80年代中期出现的可编程逻辑器件,其结构类似于掩膜可编程门阵列(MPGA),它由许多独立的可编程模块构成,用户可以通过编程将这些模块连接起来实现不同的设计。FPGA兼容了MPGA和PLD两者的优点,因而具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。FPGA具有掩膜可编程门阵列(MPGA)的通用结构,它由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。其中FPGA的功能由逻辑结构的配置数据决定。工作时这些配置数据存放在片内的SRAM或熔丝上。基于SRAM的FPGA器件在工作前需要从芯片外部加载配置数据。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场编程。FLEX(FlexiblLogicElementMatrix)10K系列芯片是ALTERA公司新近推出的PLD产品。与ALTERA公司先前推出的MAX7000系列EPLD相比,FLEX10K(以下简称10K)系列具有更加丰富的内部资源(最多可达10万门),更加充裕的可配置的I/O管脚(最多达406条)。再加上其低廉的价格,使得10K系列芯片受到越来越多用户的欢迎。由于10K系列芯片是以可重新配置的CMOS静态RAM单元为基础构成的,因此必须在每次开机时对芯片进行配置。本测频系统选用FPGA器件是Alter公司所生产的FLEX10KEPF1020RC(208-4)。FLEX10K系列是第一款多达25万门的嵌入式PLD,FLEX10K具有高密度和意欲在设计中实现复杂宏函数和存储器的特点,因此可以适应系统级设计的要求。每个FLEX10K器件都包含一个嵌入式阵列,它为设计者提供了有效的嵌入式门阵列和灵活的可编程逻辑。另外,FLEX10K器件也提供多电压I/O接口,它允许器件桥接在不同电压工作系统中。FLEX10K还具有多个低失真时钟,以及时钟锁定和时钟自举锁相环电路,内部三态总线等特性。其具体性能特点如下:⑴工业界第一种嵌入式PLD系列,具有在单个器件中系统集成的能力,具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列。⑵高密度具有10000到250000个可用门,高达40960位内部RAM。⑶系统级特点支持多电压I/O接口;低功耗,维持状态时电流小于0.5mA,遵守PCI总线规定;内置JTAG边界扫描测试电路;器件采用先进SRAM工艺制造;通过外部EPROM、集成控制器或JTAG接口电路实现电路可重构(ICR);时钟锁定和时钟自举有助于减少时钟延迟/变形和对时钟进行倍频;器件内低变形时钟树形分布;所有器件都经过100%的性能测试。⑷灵活的内部连接快速通道连续式布线结构带来快速可预测的连线延时;具有可以用来实现快速加法器、计数器和比较器的专用位链;具有实现告诉、多输入逻辑函数专用级连链;模仿三态功能可以是内部三态总线;6个全局时钟信号和4个全局清除信号。⑸功能强大的I/O引脚每个引脚都有一个独立的三态输出使能控制;每个I/O引脚都有漏极开路选择;可编程输出电压摆率控制可以减小开关噪声。⑹具有快速建立时间和时钟到输出的外部寄存器。⑺多样的封装形式84到600引脚的各种封装,封装形式有TQFP、PQFP、BGA和PLC等;同一种封装中的各种FLEX10K器件的引脚兼容。⑻具有良好的软件设计支持和布局布线的能力。⑼能够与其他公司的多种EDA工具接口[7]。MAX+PLUSII概述MAX+plusⅡ的全称是MultipleArrayMatrixandProgrammableLogicUserSystemⅡ(多阵列矩阵既可编程逻辑用户系统Ⅱ)。MAX+plusⅡ是一个完全集成化的可编程逻辑设计环境,能满足用户各种各样的设计需要。它具有的强大功能能够极大地减轻设计者的负担,是设计者可以快速的完成所需的设计。MAX+plusⅡ开发系统具有很多突出的优点,这使他深受用户的青睐。⑴开放式的界面。Altera公司与EDA的各个开发商紧密合作,使MAX+plusⅡ可以与其他工业标准的设计输入、综合、校验工具相联接。当前MAX+plusⅡ软件提供与多种第三方EDA工具的接口。⑵设计与结构无关。MAX+plusⅡ支持Altera公司的多种可编程逻辑器件,提供了工业界真正与结构无关的可编程逻辑设计环境。⑶可在多种平台上运行。⑷完全集成化。MAX+plusⅡ软件的设计输入、处理、检验功能完全集成于可编程逻辑开发工具内,从而可以更快的进行调试,缩短开发周期。⑸模块化工具。⑹支持硬件描述语言。MAX+plusⅡ支持多种HDL的设计输入,包括标准的VHDL、VerilogHDL以及Altera公司自己开发的硬件描述语言AHDL。 KEILC51语言简介C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是KeilC51。C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。C-51与ASM-51相比,有如下优点:1.

对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;2.

寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;3.

程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;4.

具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;5.

提供的库包含许多标准子程序,具有较强的数据处理能力;6.

由于具有方便的模块化编程技术,使已编好程序可容易地移植;KeilC51µVision2集成开发环境是KeilSoftware,Inc/KeilElektronikGmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。尤其C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。KeilC51集成开发环境的主要功能有以下几点:µVision2forWindowsTM:是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;C51国际标准化C交叉编译器:从C源代码产生可重定位的目标模块;A51宏汇编器:从80C51汇编源代码产生可重定位的目标模块;BL51连接/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;LIB51库管理器:从目标模块生成链接器可以使用的库文件;OH51目标文件至HEX格式的转换器:从绝对目标模块生成IntelHEX文件;RTX-51实时操作系统:简化了复杂的实时应用软件项目的设计。本设计采用的是C51的语言,因为C语言的可读性好、通俗易懂。VHDL语言简介美国国防部在20世纪70年代末和80年代初提出了VHSIC(VeryHighSpeedIntegratedCircuit)计划,VHSIC计划的目标是为下一代集成电路的生产、实现阶段性的工艺极限以及完成10万门级以上的设计建立一项新的描述方法。1981年美国国防部提出了一种新的硬件描述语言HDL,称为“超高速集成电路硬件描述语言”,简称VHDL(VHISCHardwareDescriptionLanguage)语言。VHDL语言是IEEE标准化的硬件描述语言,并且已经成为系统描述的国际公认标准。VHDL语言的特点决定了它的地位,它的特点主要有:⑴强大的功能和灵活性。VHDL语言具有功能强大的语言结构,可以用简明明确的程序来描述复杂的逻辑控制。为了有效控制设计的实现,它具有多层次的设计描述功能,支持设计库和可重复使用的元件生成;而且它还支持阶层设计和提供模块设计的创建。⑵独立于器件的设计。⑶可进行程序移植。VHDL语言的移植能力就是指同一个设计的VHDL语言描述可以从一个模拟工具移植到另一个模拟工具、从一个综合工具移植到另一个综合工具或者从一个工作平台移植到另一个工作平台。⑷性能评估能力。⑸易于ASIC移植。⑹VHDL语言标准、规范,易于共享和复用。VHDL语言的语法规范、标准,可读性强。用VHDL语言书写的代码文件既是程序,又是文档;既是设计人员进行设计成果交流的交流文件,也可以作为合约签约者之间的合同文本。尽管VHDL语言作为IEEE的工业标准具有许多其它硬件描述语言所不具有的主要优势,同时他也存在着一些不足之处。具体表现在:⑴需要了解较多的硬件电路知识。⑵VHDL语言的描述会与实际硬件电路的工作方式不符。⑶不具有描述模拟电路的能力[7]。硬件电路设计系统组成本设计的核心部件为AT89C51单片机和现场可编程芯片FPGA,所有信号包括标准频率信号,被测信号,自校信号均可在AT89C51单片机的控制下送到FPGA芯片中,单片机将每次测试结果读入内存RAM中,经运算处理后,由RXD口以BCD码的形式送入数码管显示电路显示。整个系统在硬件上可分为显示模块、键盘输入模块和测频模块三个部分。键盘控制命令直连单片机,快速的实现测频、测周期、测脉宽、测占空比及复位等功能的控制。该设计以FPGA系统外接的40MHz晶振作为标准频率,单片机由外接的12MHz标准晶振提供时钟电路。等精度测频框图如图4.1所示。图4.1等精度测频系统框图键盘接口电路本设计采用独立式键盘,其一般应用在按键数量比较少的系统中。键盘控制命令由键盘扫描译码电路读入,当有按键按下时向单片机发出中断请求读取键值。键盘译码电路的ky引脚接单片机的外部中断0输入引脚,用于向单片机发出中断请求读取键值。没有按键按下时,键盘译码电路的ky为高电平;当有按键按下时,键盘扫描译码电路在确定不是干扰后,ky引脚变为低电平,向单片机发出中断请求读取键值,当按键撤销后,ky恢复高电平。键盘译码电路的k[0..2]用于向单片机输入键值。由于单片机读取键值的操作是通过外部中断引起的,这样在没有键按下时,CPU就不会执行扫描程序,提高了CPU工作的效率。键盘接口电路如图4.2所示。图4.2键盘接口电路显示电路LED显示模块发光二极管LED是一种通电后能发光的半导体器件,其导电性质与普通二极管类似。LED数码显示器就是由发光二极管组合而成的一种新型显示器件。在单片机系统中应用非常普遍。LED数码显示器是一种由LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。LED数码显示器有两种连接方法:(1)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。(2)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。在本设计中所采用的是共阴极接法的LED数码显示器,其引脚排列如图4.3所示:图4.3LED数码显示管示意图显示模块LED数码管显示电路采用八片首尾相连的74LS164锁存器和8个LED数码管显示测试结果。考虑到提高单片机IO口的利用率,降低编程复杂性,提高单片机的计算速度以及降低数码显示器对主系统的干扰,采用串行静态显示方式。八片首尾相连的74LS164作为LED数码管的静态显示锁存器,芯片74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2管脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,公用一个输入信号时可并接,本次设计中将其接到AT89C51的RxD端,CLK(第8管脚)为时钟输入端,连接到AT89C51的TxD端。每一个时钟信号的上升沿加到CLK端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。(第9管脚)为复位端,当=0时,移位寄存器各位复0,只有当=1时,时钟脉冲才起作用。由于74LS164芯片输出低电平时具有8mA的灌电流能力,在静态显示方式下足以保证显示亮度。因为74LS164输出没有锁存功能,所以在传送信号时输出端数码管会有瞬间闪烁,但由于系统采用12HMz晶振,传送波特率高达1M,且一次发送数据较少,故闪烁并不明显[9]。表4-1是七段数码管可以显示的字符。表4-1七段数码管可以显示的字符字符b7b6b5b4b3b2b1b0共阴笔端码0110000003FH11111100106H2101001005BH3101100004FH41001100166H5100100106DH6100000107DH71111100007H8100000007FH9100100006FHA1000100077HB100000117CHC1110011039HD101000015EHE1000011079HF1000111071Hp1000110073HH1000100176HY100100016EH不显示1111111100H测量电路测量电路是由测频与自校选择模块、脉宽控制模块和测频/测周期模块组成。其中测频与自校选择模块是在系统自检时,将标准频率作为被测频率信号送给系统,而在系统正常测量时,将被测信号送给系统。脉宽控制模块和测频/测周期模块是根据按键键值共同控制选择被测量。其中管脚Spul为脉宽和测频/测周期的选择输入信号,由单片机根据需要发出。当Spul为高电平时,测频/测周期模块的32位计数器的输入使能由D触发器控制,其测量预置门控时间为被测信号周期的整数倍,此时计数值用来计算被测信号的频率;当SPUL为低电平时,标准计数器的输入使能由附加模块的PL输出来控制,测量门控时间为被测信号的一个正脉宽的时间或一个负脉宽的时间宽度,此时标准计数器的计数值用来测量被测信号的脉宽宽度。CLR为低电平时,计数器使能端BENA为低电平,测频/测周期电路不工作,系统清零。Spul为1时,系统测量被测信号的频率,当CL变为高电平时,在随后到来的TCLK的上升沿BENA及START引脚变为高电平,计数器开始计数;当CL变为低电平时,在随后到来的TCLK上升沿BENA变为低电平,计数器停止计数。同时START引脚变为低电平用以通知单片机计数结束。在单片机发出的sel2~sel0控制下通过data7~data0分8次将计数器的计数值读入单片机[8]。测量电路原理图如图4.4所示,测量电路波形图如图4.5所示。图4.4测量电路原理图图4.5测量电路波形图测量与自校选择电路测频与自校选择电路采用的是图形输入方式,其原理图如图4.6所示。As为自校与测频选择,接单片机的P2.7引脚,FX接标准频率输入,FS接被测频率输入。测频与自校选择电路用于系统自检,当as为高电平时,系统自检开始,FOUT输出标准频率BCLK,将标准频率作为被测频率进行测量,根据测量结果来判断系统运行是否正常;当as为低电平时,系统自检结束,FOUT输出被测频率TCLK。标准频率取自FPGA的外部晶振。选择控制信号as为高电平时,输出端为BCLK;as为低电平时,输出端为TCLK。测频与自校选择电路波形图如图4.7所示。图4.6测频与自校选择电路原理图图4.7测频与自校选择电路波形图测频/测周电路测频原理图如图4.8所示。测频/测周期电路是由两个32位计数器、一个D触发器和一片MUX64-8选择器组成。BCLK管脚为标准频率信号的输入引脚,TCLK管脚为被测频率信号的输入引脚;CL管脚为预置门控信号输入引脚;CLR为计数器清零信号输入引脚,每次新的测量开始时都要将计数器清零,以免产生错误;sel2~sel0管脚为单片机读入数据时的数据选择信号输入,以便单片机分八次将两个32位计数器的计数值读入。图4.8等精度测频原理图当系统开始测量被测信号的频率时,首先由单片机将CLR端置为高电平,完成测试电路的初始化。接下来,单片机将门控信号CL置为高电平,由被测信号的上升沿将两个计数器同时打开,对被测频率和标准频率同时进行计数。门控时间结束后,单片机将门控信号CL置为低电平,在被测信号的下一个脉冲的上升沿到来时,两个计数器将同时停止工作。计数结束后,由START端输出的低电平来指示计数的结束,通过sel信号和MUX64-8多路选择器将计数器中得到的64位数据分8次读入单片机并按下式计算和结果显示。设标准信号的频率为Fs,被测信号的频率为Fx,在一次预置门控时间内,对被测信号的计数器为Nx,对标准信号的计数值为Ns,则下式成立:(4-1)两计数器的计数周期总是等于被测信号TCLK周期的整数倍,这是确保TCLK在任何频率下测频结果都能保持恒定精度的关键。测频模块的波形图如图4.9所示,CLR为低电平时,计数器使能端BENA为低电平,测频电路不工作。当CLR和CL均为高电平后,在随后到来的TCLK上升沿使BENA变为高电平,计数器开始计数;当CL便为低电平后,在随后到来的TCLK上升沿使BENA变为低电平,计数器停止计数,同时START引脚变为低电平,通知单片机计数已结束。在单片机发出的sel2~sel0控制下通过data7~data0分8次将计数器的计数值读入单片机。图4.9测频模块的波形图脉宽控制电路脉宽控制电路原理图如图4.10所示。该电路采用的是图形输入法。CL为单片机发出的预置门控信号,CLR为单片机发出的复位信号,TCLK为被测信号的输入,1引脚始终接高电平。输出引脚PL有两个作用:一是在某些情况下作为标准频率计数器的使能控制信号;二是作为计数器计数结束信号通知单片机读取数据。CLR为低电平时,输出PL为低电平,CL与SPUL联合控制实现其功能。CL=0时,PL输出一个宽度为被测信号负脉冲的脉冲;CL=1时,PL输出一个宽度为被测信号正脉冲的脉冲。此脉冲作为计数器的计数使能信号,控制计数的起止。当计数结束后,由PL输出的计数结束信号(低电平)通知单片机读取数据。图4.10脉宽控制电路原理图脉宽控制电路波形图如图4.11所示,其中1引脚始终为高电平,当CL为高电平时,PL引脚输出宽度TCLK高(正)脉冲宽度的脉冲;CL为低电平时,PL输出宽度为TCLK低(负)脉冲宽度的脉冲。图4.11脉宽控制电路波形图硬件电路的VHDL语言描述D触发器D触发器是现代数字系统中最基本的时序单元和低层元件,许多功能电路都有其构成,D触发器因不同的应用场合的设计是十分必要的。本设计中的D触发器为带有异步清零功能的D触发器。当复位信号RESET为低电平时,D触发器的输出端Q和Qb分别输出逻辑0和1,与其他输出无关。当复位信号RESET为高电平时,每当时钟输入CLK有一个上升沿时,输出端Q便转换为与输入信号D相同的逻辑值,输出端Qb的值始终与Q端相反。D触发器真值表如表4-2所示:表4-2D触发器真值表RESETDCLKQQb0X↑011X↑X其工作波形如图4.12所示:图4.12D触发器工作波形图D触发器逻辑符号如图4.13所示:图4.13D触发器逻辑符号图D触发器硬件描述语言VHDL语言描述见附录C(1)。32位计数器计数器就是指能够记忆时钟信号脉冲个数的时序逻辑电路,它是数字电路中应用极其广泛的一种基本逻辑单元,不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。本设计用到的两个32位计数器分别用于计标准频率信号和被测频率信号的周期数。计数器是以二进制数据的形式计数,由于标准频率信号的频率为40MHz,为了提高测量精度,因此将计数器的位数设为32位。在计数器使能端ENA为高电平有效的情况下,每当被测频率信号CLR有一个上升沿到达时,计数器的值便加1,直至使能端ENA变为低电平。CLR信号为低电平时,计数器的值清零。Q[31..0]显示的数值即为计数器的计数值,Q[31..0]引脚的作用是将计数器的值送到MUX64-8多路选择器以便单片机将计数值读入。32位计数器工作波形图如图4.14所示:图4.1432位计数器工作波形图32位计数器的逻辑符号如图4.15所示:图4.1532位计数器的逻辑符号32位计数器的硬件描述语言VHDL语言描述见附录C(2)。MUX64-8多路选择器因为单片机的数据总线有限,不可能一次性将两个计数器的值读入。MUX64-8多路选择器的作用就是将两个计数器的64位计数值暂时存储,然后在单片机发出的选择信号sel2~sel0的控制下分8次将计数值读入。MUX64-8多路选择器的波形图如图4.16所示:图4.16MUX64-8多路选择器的波形图MUX64-8多路选择器的逻辑符号图如图4.17所示:图4.17MUX64-8多路选择器的逻辑符号图MUX64-8多路选择器硬件描述语言VHDL语言描述见附录C(3)。MUX2-1选择器MUX2-1选择器芯片的功能是在选择信号S的控制下输出端Z输出不同的信号。当S为逻辑1时输出端与输入信号B相同,当S为逻辑0时,输出信号Z与输入信号A相同,其工作波形图如图4.18所示。MUX2-1选择器硬件描述语言VHDL描述语言见附录C(4)。图4.18MUX2-1选择器工作波形图时钟发生器时钟发生器即分频器,它的作用是将频率较高的信号转换为用户所需的低频信号,实质就是一个计数器。每当输入时钟的上升沿到达时,计数器的值CNT便加1,在计数器计数值为一半时输出信号取反,当计数器计数满时输出信号再次取反,计数器每计数满一次就是用户所需低频信号的一个周期。时钟发生器的波形图如图4.19所示。图4.19时钟发生器的波形图时钟发生器硬件描述语言VHDL语言描述见附录C(5)。单片机主控电路单片机测频控制电路附录图所示,由单片机控制FPGA完成整个系统的电路测试、数据处理和显示输出等各种功能。单片机引脚分配如下:⑴sel2~sel0:单片机的数据总线为8位,但是系统的两个计数器的总位数为64位,因此单片机需要分8次将计数器的结果读入。sel[2..0]引脚的作用就是控制多路通道的数据选择。当sel分别为“000”、“001”、“010”、“011”时,由低8位到高8位读取标准频率计数值;当sel分别为“100”、“101”、“110”、“111”时,由低8位到高8位读取被测频率计数值。sel2~sel0分别接单片机P2口的2、3、4引脚。⑵spul:此引脚的作用是控制系统选择测频或测脉宽,spul接单片机P2.6引脚控制。当spul=0时,测脉宽;spul=1时,等精度测频。⑶clr:系统全清零功能,高电平有效。每一测频周期开始时,都应该首先清零。由单片机的P2.1口控制。⑷start:计数结束信号,用来通知单片机计数器计数结束,此信号接单片机外部中断1(INT1)输入引脚。⑸cl:cl和spul协同控制操作。即当spul为‘1’时,cl作为预置门控信号,用于测频计数的时间控制(本设计取0.5秒);当spul为‘0’时,cl作为测脉宽控制信号。这时,cl若为‘1’,测TCLK的高电平脉宽,而当cl为‘0’时,则测TCLK的低电平脉宽。然后分别从data7~data0数据口读出BZH对标准频率的计数,即只需令sel的取值分别为“000”、“001”、“”010、“011”即可。⑹k[0..2]:键盘译码,接单片机的P1[0..2]。⑺ky:按键标志信号,用来通知单片机有键按下。接单片机的外部中断0(INT0)输入引脚。⑻data7~data0:单片机与FPGA之间的数据总线,负责读取测频数据,接单片机P0口。⑼as:测频与自校选择控制,接单片机P2.7口。as=0时用于自校;as=1适用于测频。软件设计单片机主程序单片机主程序流程图如图5.1所示。系统上电后,单片机内部首先开始执行的是复位自检程序。自检程序结束后,如果系统正常,则8片LED显示“88888888”,否则显示“--------”,等待用户检修。在自检正常后,系统就开始无限循环等待有键按下进行测量。图5.1主程序流程图复位自检程序因为器件的不足,在本系统中没有设硬件复位电路,采用的是软件复位。当复位键按下后就开始执行此程序。首先是对系统进行初始化,此部分包括对各个控制信号初值的设置、各个特殊寄存器的初值设置以及定时器、串行口的初始化等等。在进行初始化摄制完毕以后就开始进行自检。自检结束后,如果系统正常则8片LED显示“88888888”,否则显示“--------”,等待用户自修。在自检正常以后单片机便继续执行下面的程序。复位自检程序流程图如图5.2所示。图5.2复位自检程序流程图键盘程序键盘主要的作用有:对键盘进行防抖动的处理,当有键按下时将其转换为相对应的键值,在确认有键按下并且不是干扰后向单片机发出读取键值的请求。本设计采用的是软件防抖方法。当第一次检测到有键按下时,先用软件延时10ms,而后再确认该键电平是否仍维持闭合状态电平。若保持闭合状态电平,则确认此键确已按下,从而消除了抖动的影响。键值读取是通过中断来实现的。外部有键按下时且有效时是通过外部中断0请求,来通知单片机读取键值。单片机读取并判断键值,根据键值的不同调用不同功能的模块,从而实现不同的功能。键盘程序的流程图如图5.3所示。图5.3键盘程序流程图测频子程序测频子程序的流程图如图5.4所示。测频子程序先置测频控制位CLR(P2.1)将FPGA内的计数器清零,然后通过键盘将预置门CL的时间值读入单片机,打开预置门CL进行测频计数,等预置门CL时间到后,关断预置门CL,FPGA关断预置门CL后将给单片机一个结束信号,单片机读到结束信号后,通过SEL的不同值分8次将测频结果的64位数据读入单片机,计算后将结果转换为BCD码送LED显示输出。图5.4测频子程序流程图测周期子程序首先先来了解一下周期测量原理。我们知道,周期为频率的倒数,因此完全可以利用频率测量原理来测量信号周期,只要把相应的公式改动一下。公式如下:(5-1)其中Tx为被测频率信号的周期个数,Nx为被测频率信号的计数值,Ns为标准信号的计数值,Fs为标准信号的频率。测周期时只要把计算结果由频率值取倒转换为周期值即可。测脉宽子程序脉宽的测量子程序与周期测量子程序基本一致,只是脉宽测量是在被测信号的脉宽内对标准频率进行计数,所以FPGA内要有对上下沿的处理过程,而且技术结果为一组数据,不像测频和测周期一样同时对被测信号和标准信号进行计数。占空比子程序占空比子程序是在脉冲子程序的基础上,先对一个脉宽进行计数,测得计数值为N1,然后将输入信号反相,再测其脉冲宽度,测得计数值为N2,则可以计算出:占空比=(5-2)占空比测量程序是本设计中的一个重要的功能,当调用占空比程序时就开始实现本功能。此程序首先将脉宽高低控制位置1,然后调用脉宽测量程序,测出被测信号的高电平脉宽宽度并读取计数器计数值;然后将脉宽控制位置0,测出被测信号低电平脉宽宽度并读取计数器计数值,占空比测量结束。占空比测量程序流程图如图5.5所示。显示子程序此次设计采用8位LED显示,LED显示器工作在静态方式,通过74LS164与单片机相连。进入显示子程序后,首先要从显示缓冲区取数,然后送段选码,位选码进行显示,等待八位都显示结束后便结束此子程序。图5.5占空比测量程序流程图图5.6显示子程序流程图系统性能分析任何仪器设备都会有测量范围限制和测量精度问题的考虑,二者是相互影响,并且与很多因素相关。下面就针对于这两个方面进行简单的分析。占空比子程序本设计中影响测量范围的因素主要有标准频率信号的频率、显示电路和门控时间。下面具体对测量范围进行分析(被测信号与标准信号均不进行分频和倍频处理)。低端频率本设计中所采用的标准频率信号频率为40MHz,七段LED显示位数为6位十进制数据。决定低端频率信号的是计数器的最大计数值,因为测量时间为被测信号周期的整数倍,本设计采用的计数器时32位二进制计数器,其最大计数值为232,即为4294967296,由测频公式:(6-1)由公式可知,当Nx为1,Ns为最大值,即4294967296时,被测信号的频率为低端频率,此时Fx小于0.01,因此此设计的低端频率信号理论上可达到0.01Hz。其中Fx为被测信号的测量频率,Fs为标准信号的频率,Nx为被测信号计数器的计数器,Ns为标准信号计数器的计数器。高端频率由测频公式(6-1)由公式可知,影响测量信号高端频率值的主要因素是测量精度问题的考虑,假设系统设定门控时间为1s,此时影响测量精度的因素只有标准频率信号自身的频率及被测信号的频率大小。当被测信号频率小于标准信号频率时,测量精度不变;当被测信号频率大于标准信号频率时,测量精度随着被测信号频率值的增加而下降。因此,在理论上被测信号的高端频率与标准信号的频率相同,即为40MHz。频率测量精度分析由第一部分所述测量原理可知,系统的测频公式为:(6-1)其误差分析如下:设所测频率值为Fx,其真值为Fxe,标准频率为Fs。在一次测量中,由于Fx计数的起停时间都是由该信号的上升沿触发的,在Tpr时间内对Fx的计数Nx无误差;在此时间内Fs的计数Ns最多相差一个脉冲,即|△et|≤1,则下式成立:(6-2)(6-3)所以有:(6-4)根据相对误差公式有:(6-5)代入整理得:(6-6)又因为:|△et|≤1所以:|△et|/Ns≤1/Ns(6-7)即:|δ|=(6-8)其中:(6-9)由以上推导结果可得出下面结论:(1)相对测量误差与被测频率无关,而只与Ns有关。(2)增大Tpr或提高Fs,可以增大Ns,降低测量误差。当Ns足够大,则可以保证相对误差足够小,进而提高测量精度。(3)标准频率误差为△Fs/Fs,由于设计时使用的晶振的稳定度很高,标准频率误差可以进行校准。(4)等精度测频方法测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。在预置门控信号持续时间不变的情况下,无论被测信号频率是否发生变化,等精度测频方法的测量精度不变。结论经过几个月的设计,终于完成了本次设计。在老师的指导和同学的帮助下,按时完成了此次设计任务。整个设计过程可分为前期的资料查询、相关知识的学习、文献综述的编写,中期设计整体的框架、软硬件设计,后期的调试及毕业论文的编写三个阶段。前期的工作为中后期设计方案的选定及软硬件的设计奠定了一定的基础,为论文的编写铺好了道路。中期的软硬件设计是整个设计过程中最关键的阶段。后期的硬件调试是对前面所做的所有工作的验证,毕业论文的编写是对整个设计的总结。我的设计课题是基于单片机和FPGA的等精度频率计的设计单片机部分。等精度频率计的特点是在整个测量频段内的测量精度是相同的,与被测信号频率的大小无关。本设计采用AT89C51单片机和可编程芯片FPGA相结合,缩短了开发研制周期,使系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。采用AT89C51单片机来实现功能键的控制、数据的运算、码制的转换、数据的显示等功能,完成了频率计的系统硬件电路的设计;采用可编程芯片FPGA实现计数的功能;对频率计的软硬件进行了调试和试验,给出了频率测量的结果,分析了测量的精度。论文分为6章,介绍了基于单片机和

温馨提示

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

评论

0/150

提交评论