欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的等精度频率计设计.docx

    • 资源ID:16958580       资源大小:147.45KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的等精度频率计设计.docx

    1、基于单片机的等精度频率计设计摘 要本文主要论述了利用FPGA(Field Programmable Gate Array,现场可编程门阵列)进行测频计数,单片机实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。设计中用一块FPGA芯片(型号为Cyclone的EP2C5T144C8N)完成各种时序逻辑控制、计数功能。在Quartus平台上,用VHDL语言编程完成了FPGA的软件设计、编译、调试、仿真和下载。用STC89C52RC单片机作

    2、为系统的主控部件,实现整个电路的测试信号控制,数据运算处理和控制数码管的显示输出。系统将单片机的控制灵活性及FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。文章详细论述了系统自上而下的设计方法及各部分硬件电路组成及单片机、FPGA的软件编程设计。使用杭州康芯KX-7C5T型EDA实验开发与电子设计学习板为主的实验环境下,配合单片机最小系统对软硬件进行仿真和验证,达到了较高的测量精度和测量速度。关键词:FPGA,VHDL,频率计,单片机,STC89C52RC 目 录摘 要 I第一章 概 论 11.1课题研究的目的

    3、和意义 11.2 测量原理 11.3 系统设计指标 3第二章 硬件电路设计 52.1 系统顶层电路设计 52.2 FPGA测频模块逻辑设计 52.3 单片机主控模块 62.4 外围电路设计 8第三章 软件设计 113.1 Quartus II概述 113.2 VHDL语言简介 123.3 频率计FPGA模块的顶层设计 123.4 频率计FPGA模块的仿真 143.5 单片机的C语言编程 15第四章 系统测试 174.1 测频精度分析 174.2实验测试数据 18第五章 总结 19致 谢 21参考文献 23第一章 概 论1.1课题研究的目的和意义测频一直以来都是电子和通讯系统工作的重要手段之一。

    4、高精度的测频仪有着广泛的市场前景。以往的测频仪都是在低频段利用测周期的方法、高频段用测频率的方法,其精度往往会随着被测频率的下降而下降。基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。所以等精度频率计有研究的价值。1.2 测量原理等精度测频法:其实现方法可用主控结构图1-1和波形图1-2来说明。图1-1 等精度频率计主控结构图计数允许周期Tpr图1-2 频率计测控时序图1-1中的“预置门信号”CL由单片机发出,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为Tpr。BZH和

    5、TF模块是两个可控的32位高速计数器,EN为它们的技术允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为Fs;经放大整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为Fxe,被测频率为Fx。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器清零,同时通过信号EN,禁止两个计数器计数。这是一个初始化操作。如果系统启动不能正常清零,可以由外部的按键强制清零。然后由单片机发出允许测频信号,即令预置门控信号CL为高电平(把图1-1和图1-2结合起来看),这时D触发器要一直等到被测信号的上升沿通过时Q端才

    6、被置1(即令START为高电平),与此同时,将同时启动计数器BZH和TF,进入图1-2所示的“计数允许周期”。在此期间,BZH和TF分别对被测信号(频率为Fx)和标准频率信号(Fs=100MHz)同时计数。当Tpr秒后,预置门信号被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。由图1-2可见,CL的宽度和发生的时间都不会影响这样一个事实,计数使能信号(START)允许计数的周期总是恰好等于待测信号TCLK的完整周期数,这正是确保TCLK在任何频率条件下都能保持恒定精度的关键。而且,CL宽度的改变以及随机的出现时

    7、间造成的误差最多只有BCLK信号的一个时钟周期,但是BCLK是倍频后的100MHz信号,则任何时刻的绝对测量误差只有亿分之一秒。被测频率值为Fx,标准频率为Fs,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准信号的计数值为Ns,则下式成立:Nx / Fx = Ns / Fs由此式可推得:Fx = ( FsNx ) / Ns最后通过控制SEL选择信号和64位至8位的多路选择器MUX64-8,将计数器BHZ和TF中两个32位数据分8次读入单片机并按式进行计算和结果显示。1.3 系统设计指标设计并制作出一种数字频率计,其技术指标如下: (1)频率测量范围: 0.1Hz128MHz; (2)

    8、输入电压幅度: 300mV; (3)输入信号波形:任意周期方波信号;(4)显示位数: 8位LED数码管显示;(5)电源: 220V、50Hz。第二章 硬件电路设计2.1 系统顶层电路设计等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模的FPGA芯片难以实现。因此,我们选择单片机和FPGA的结合来实现。电路系统原理图如图2-1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;FPGA完成测频功能。显示电路采用7段LED动态显示,由单片机P2口直接驱动。图2-1 系统原理图等精度频率计主要由由以下几个部分构成:信号放大整形电路:用于对待测信号进行放大整

    9、形,以便作为FPGA的输入信号。测频电路:是测频的核心模块,由FPGA担任。单片机模块:用于控制FPGA的测频操作和读取测频数据,并发出相应数据处理。安排单片机的P0口直接读取测试数据。控制命令从P1口或是P3的相关口线发出。20MHz的标准频率信号源:本模块采用倍频技术,倍频出一个100MHz标准频率信号源,产生100MHz的标准频率给FPGA使用。数码管显示模块:采用8个7段LED动态显示,使用P2口作为段信息的输出,使用P1口的低四位控制串行移位寄存器的三个输入及CLK端,实现LED的动态扫描。2.2 FPGA测频模块逻辑设计根据图1-1和图1-2以及测频原理说明,可以比较容易地写出相应

    10、的VHDL功能描述。图2-2为VHDL描述的RTL电路图(图中spul为外部清零信号,由按键输入)。与单片机的接口按照如下方式连接:1 单片机的P0口接8位数据DATA7.0,负责读取测频数据;2 START信号输出到单片机的P3.2口线,通过中断的方式来判断计数是否结束,以确定何时可以读取数据;3 P1.6,P1.5和P1.4与SEL2.0相接,用于控制多路数据选择器,当SEL分别为“000”、“001”、“010”、“011”时,由低8位到高8位读出标准频率计数值;当SEL分别为“100”、“101”、“110”、“111”时,由低8位到高8位读出待测频率计数值。图2-2等精度频率计FPG

    11、A部分的RTL电路图4 P3.3接清零信号CLR,高电平有效。每一个测频周期开始,都应该首先清零。5 P1.7接预置门控信号CL,CL是由定时器T0产生的一个周期为2S的方波信号,即每隔1S钟左右测试一次频率,频率低于1Hz后,测频的间隔会大于1S钟,特别是待测频率为0.1Hz时,每隔10S钟测试一次。2.3 单片机主控模块STC89C52RC单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。其封装有LQFP44,PDIP40,PLCC44及PQFQ44,本设计中所使用的是PDIP40封装,图形

    12、如图2-3所示。图2-3 STC89C52RC单片机PDIP40封装图STC89C52RC单片机特点如下:、增强型6时钟/机器周期、12时钟/机器周期任意设置。、工作电压:5.53.4V(5V单片机)/2.03.8V(3V单片机)。、工作频率:040MHz,相当于普通8051单片机;实际使用范围为080MHz。、8KB片内Flash程序存储器,擦写次数10万次以上。、片上集成512B RAM数据存储器。、通用I/O口(32/36个),复位后为: P1、P2、 P3、P4是弱上拉/准双向口(与普通MCS-51 I/O口功能一样);P0口是开漏输出口,作为总线扩展时用,不用加上拉电阻;P0口作为I

    13、/O口用时,需加上拉电阻。、ISP在系统可编程,无需专用编程器/仿真器,可通过串口(P30/ P31)直接下载用户程序,8KB程序3s即可完成一片。、芯片内置EEPROM功能。、硬件看门狗(WDT)。、共3个16位定时器/计数器,兼容普通MCS-51单片机的定时器,其中定时器T0还可以当成2个8位定时器使用。 、外部中断4路,下降沿中断或低电平触发中断,掉电模式可由外部中断唤醒。、全双工异步串行口(UART),兼容普通8051单片机的串口。、工作温度范围:075/4085。除此之外,STC89C52RC单片机自身还有很多独特的优点:、加密性强, 无法解密。、超强抗干扰。主要表现在:高抗静电(E

    14、SD保护),可以轻松抗御2KV/4KV快速脉冲干扰(EFT测试),宽电压、不怕电源抖动,宽温度范围为4085,I/O口经过特殊处理,单片机内部的电源供电系统、时钟电路、复位电路及看门狗电路经过特殊处理。、三大降低单片机时钟对外部电磁辐射的措施:禁止ALE 输出;如选6 时钟/ 机器周期,外部时钟频率可降一半;单片机时钟振荡器增益可设为1/2gain;、超低功耗:掉电模式,典型电流损耗0.1A;空闲模式,典型电流损耗为2mA;正常工作模式,典型电流损耗4mA7mA。2.4 外围电路设计1、电源模块整个电路的供电电源如图2-4所示,220V交流经变压、整流、滤波后,由一片78L05三端稳压器向系统

    15、提供+5V电压信号。图2-4 电源模块2、LED数码管显示电路本设计中采用LED数码管动态显示。8位数码管采用两个4位一体的共阳型数码管组成;段信息使用单片机的P2控制;为了节约口线,在位的控制上,采用了一片74LS138芯片,把A,B,C三个脚分别用P1.0、P1.1及P1.2控制,此外把6号脚接单片机P1.3脚,用来控制数码管的亮灭。电路图如图2-5所示。图2-5 LED数码管显示电路3、其他电路单片机的时钟电路由12MHz的晶振提供。FPGA的标准频率信号由20MHz的有源晶振提供。被测信号经过放大整形电路调理后输入。第三章 软件设计3.1 Quartus II概述Quartus II是

    16、Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX十plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成FPGA开发的整个流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的Quartus II提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提

    17、供了集成综合环境。Quartus II设计工具完全支持VHDL, Verilog的设计流程,其内部嵌有VHDL, Verilog逻辑综合器。Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum, Synplify Pro,FPGA Compiler II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,QuartusII与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。 Quartus II包括模块化的编译器。编译器包括的功能

    18、模块有分析/综合器(Analysis&Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Compiler Database Interface)等。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool (Tools菜单),在CompilerTool窗口中运行该模块来启动编译器模块。在Compiler

    19、Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。 此外,Quartos II还包含许多十分有用的LPM (Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartos II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。 Quartus II编译器支持的硬件

    20、描述语言有VHDL(支持VHDL 87及VHDL 97标准)、Verilog HDL及AHDL (Altera HDL),AHDL是Altera公司自己设计、制定的硬件描述语言,是一种以结构描述方式为主的硬件描述语言,只有企业标准。 Quartus II允许来自第三方的EDIF文件输入,并提供了很多EDA软件的接口,Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。Quartus II拥有性能良好的设计错误定位器,用于

    21、确定文本或图形设计中的错误。对于使用HDL的设计,可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。在进行编译后,可对设计进行时序仿真。在作仿真前,需要利用波形编辑器编辑一个波形激励文件,用于仿真验证时的激励。编译和仿真经检测无误后,便可以将下载信息通过QuartusII提供的编程器下载入目标器件中了。3.2 VHDL语言简介20处纪80年代后期,美国国防部开发的VHDL语言(VHS工C硬件描写语言,VHSIC是非常高度迅速综合的电路的缩写)是工EEE标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA公司的支持。VHDL语言覆盖面广,描述能力强,

    22、能支持硬件的设计子验证、综合和测试,是一种多层次的硬件描述语言。其设计描述可以是描述电路具体组成的结构描述,也可以是描述电路功能的行为描述。这些描述可以从最抽象的系统级直到最精确的逻辑级,甚至门级。运用VHDL语言设计系统一般采用自顶向下分层设计的方法,首先从系统级功能设计开始,对系统高层模块进行行为描述和功能仿真。系统的功能验证完成后,将抽象的高层设计自顶向下逐级细化,直到与所用可编程逻辑器件相对应的逻辑描述。3.3 频率计FPGA模块的顶层设计在本测频系统中,对标准频率信号和被测信号进行测试功能的工作由FPGA来完成。其硬件电路的实现在前面已述,其软件部分由VHDL语言实现。下面将给出由V

    23、HDL语言实现的顶层模块程序。频率计测试模块GW.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY GW IS PORT(BCLK:IN STD_LOGIC; -标准频率时钟信号 TCLK:IN STD_LOGIC; -待测频率时钟信号 CLR :IN STD_LOGIC; -清零和初始化信号 CL :IN STD_LOGIC; -预置门信号 SPUL:IN STD_LOGIC; -清零,由按键产生信号 START:OUT STD_LOGIC; -起始计数标识信号 SEL: IN

    24、 STD_LOGIC_VECTOR(2 DOWNTO 0); DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END GW;ARCHITECTURE behav of GW ISSIGNAL BZQ:STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL TSQ:STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL ENA,PUL:STD_LOGIC; -计数使能、脉宽计数使能BEGINSTART =ENA;DATA =BZQ(7 DOWNTO 0) WHEN SEL=000 ELSE BZQ(15 DOWNTO 8) WH

    25、EN SEL=001 ELSE BZQ(23 DOWNTO 16) WHEN SEL=010 ELSE BZQ(31 DOWNTO 24) WHEN SEL=011 ELSE TSQ(7 DOWNTO 0) WHEN SEL=100 ELSE TSQ(15 DOWNTO 8) WHEN SEL=101 ELSE TSQ(23 DOWNTO 16) WHEN SEL=110 ELSE TSQ(31 DOWNTO 24) WHEN SEL=111 ;BZH:PROCESS(SPUL,BCLK,CLR,ENA) BEGIN IF(SPUL=1)THEN BZQ0); ELSIF(CLR=1)THEN

    26、 BZQ0); ELSIF BCLKEVENT AND BCLK=1 THEN IF ENA=1 THEN BZQ=BZQ + 1 ; END IF; END IF; END PROCESS; TF: PROCESS(SPUL,TCLK,CLR,ENA) BEGIN IF(SPUL=1)THEN TSQ0); ELSIF(CLR=1)THEN TSQ0); ELSIF TCLKEVENT AND TCLK=1 THEN IF ENA =1 THEN TSQ=TSQ + 1; END IF; END IF; END PROCESS;PROCESS(TCLK,CLR)BEGIN-IF(SPUL=1

    27、)THEN ENA=0;IF CLR=1 THEN ENA =0;ELSIF TCLKEVENT AND TCLK=1 THEN ENA=CL;END IF;END PROCESS;END behav;图3-1 频率计测试模块3.4 频率计FPGA模块的仿真对频率计测试模块编译,仿真结果如图3-2所示。图3-2 频率计测试仿真波形从图3-2可以看出,CLR一个正脉冲后,系统被初始化。然后CL被置为高电平,但这时两个计数器并未开始计数(start=0),直到此后被测信号TCLK出现一个上升沿,START=1时2个计数器同时启动分别对被测信号和标准信号开始计数,其中BZQ和TSQ分别为标准频率计数

    28、器和被测频率计数器的计数值。由图可见,在CL变为低电平后,计数器仍未停止,直到TCLK出现一个上升沿为止,这时START=0,可作为单片机了解计数器结束的标识信号。仿真波形中TCLK和BCLK的周期分别设置为10us和500ns。由图可见,计数结果是,对TCLK的计数值是3,对BCLK的计数值为60。通过控制SEL就能按照8个8位将计数器中的32位数读入单片机中进行计算。由公式Fx = ( FsNx ) / Ns=2MHz3/60=0.1MHz,也就是周期为10us,可以验证图1-1描述的等精度测频的功能完全正确。3.5 单片机的C语言编程单片机在该系统中,主要是完成整个测量电路的测试控制、数

    29、据处理和显示输出。系统启动后,如不能正常测试,可以由按键强制性清零。主程序不断的扫描显示程序,并扫描计数结束标识START是否为零,一旦为零,立即把FPGA的两个计数器技术结果取出、计算,把计算的结果送去显示。在资源的分配上,除了用于控制FGPA的外,P2口用来进行LED数码管段信息的处理;P1口的低四位用来控制LED数码管的位(其中P1.0,P1.1,P1.2控制74LS138的三个输入端A,B,C实现3-8译码,P1.3控制74LS138的CLR端,用以实现位的关和开);P3.5,P3.6,P3.7控制测频后的单位显示(P3.5是MHz,P3.6是KHZ)。主程序主要是用来显示和测频,流程

    30、图如图3-3所示。图3-3 单片机主程序流程图第四章 系统测试4.1 测频精度分析 由第一章所述的测量原理可知,本系统的测频公式为:Fx = ( FsNx ) / Ns 其误差分析如下:设所测频率值为Fx,其真实值为Fxe,标准频率为Fs。在一次测量中,由于Fx计数的起停时间都是由该信号的上跳沿触发的,在Tpr时间内Fx的计数Nx无误差;此时内的计数Ns最多相差一个脉冲,即|Ns|1则:Fx/Nx=Fs/NsFxe/Nx=Fs/(Ns+Ns)由此推得:Fx=(Fs/Ns)NxFxe=Fs/(Ns+Ns) Nx根据相对误差公式有:Fxe/Fxe=|Fxe-Fx|/Fxe可以得:Fxe/Fxe=|

    31、Ns|/Ns|Ns|1 |Ns|/Ns1/Ns即相对误差Fxe/Fxe1/Ns又Ns=TprFs由此可知:(1)相对测量误差与频率无关;(2)增大Tpr或提高Fs,可以增大Ns,减少测量误差,提高测量精度;(3)本测频系统的测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,本测频系统所采用的测量方法的测量精度不变。为了恒定测量精度,可采用高频率稳定度和高精度晶体振荡器作标准频率发生器。本系统选用了20MHz的有源晶振,通过倍频技术倍频到100MHz。4.2实验测试数据在系统设计好后,利用FPGA在不同的引脚上发出标准的频率值进行


    注意事项

    本文(基于单片机的等精度频率计设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开