基于单片机的等精度频率计设计.doc
《基于单片机的等精度频率计设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的等精度频率计设计.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要本文主要论述了利用FPGAField Programmable Gate Array,现场可编程门阵列进行测频计数,单片机实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。设计中用一块FPGA芯片型号为Cyclone的EP2C5T144C8N完成各种时序逻辑控制、计数功能。在Quartus平台上,用VHDL语言编程完成了FPGA的软件设计、编译、调试、仿真和下载。用STC89C52RC单片机作为系统的主控部件,实现整个电路的测试
2、信号控制,数据运算处理和控制数码管的显示输出。系统将单片机的控制灵活性及FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。文章详细论述了系统自上而下的设计方法及各部分硬件电路组成及单片机、FPGA的软件编程设计。使用杭州康芯KX-7C5T型EDA实验开发与电子设计学习板为主的实验环境下,配合单片机最小系统对软硬件进行仿真和验证,到达了较高的测量精度和测量速度。关键词:FPGA,VHDL,频率计,单片机,STC89C52RC学习文档 仅供参考 目 录摘 要I第一章 概 论11.1课题研究的目的和意义11.2 测量原
3、理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和TF模块是两个可控的32位高速计数器,EN为
5、它们的技术允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为Fs;经放大整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为Fxe,被测频率为Fx。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器清零,同时通过信号EN,禁止两个计数器计数。这是一个初始化操作。如果系统启动不能正常清零,可以由外部的按键强制清零。然后由单片机发出允许测频信号,即令预置门控信号CL为高电平把图1-1和图1-2结合起来看,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1即令START为高电平,与此同时,将同时启
6、动计数器BZH和TF,进入图1-2所示的“计数允许周期”。在此期间,BZH和TF分别对被测信号频率为Fx和标准频率信号Fs=100MHz同时计数。当Tpr秒后,预置门信号被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。由图1-2可见,CL的宽度和发生的时间都不会影响这样一个事实,计数使能信号START允许计数的周期总是恰好等于待测信号TCLK的完整周期数,这正是确保TCLK在任何频率条件下都能保持恒定精度的关键。而且,CL宽度的改变以及随机的出现时间造成的误差最多只有BCLK信号的一个时钟周期,但是BCLK是倍
7、频后的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输入电压幅度: 300mV; 3输入信号波形:任意周期
8、方波信号;4显示位数: 8位LED数码管显示;5电源: 220V、50Hz。学习文档 仅供参考学习文档 仅供参考第二章 硬件电路设计2.1 系统顶层电路设计等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模的FPGA芯片难以实现。因此,我们选择单片机和FPGA的结合来实现。电路系统原理图如图2-1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;FPGA完成测频功能。显示电路采用7段LED动态显示,由单片机P2口直接驱动。图2-1 系统原理图等精度频率计主要由由以下几个部分构成:信号放大整形电路:用于对待测信号进行放大整形,以便作为FPGA的输入信号
9、。测频电路:是测频的核心模块,由FPGA担任。单片机模块:用于控制FPGA的测频操作和读取测频数据,并发出相应数据处理。安排单片机的P0口直接读取测试数据。控制命令从P1口或是P3的相关口线发出。20MHz的标准频率信号源:本模块采用倍频技术,倍频出一个100MHz标准频率信号源,产生100MHz的标准频率给FPGA使用。数码管显示模块:采用8个7段LED动态显示,使用P2口作为段信息的输出,使用P1口的低四位控制串行移位寄存器的三个输入及CLK端,实现LED的动态扫描。2.2 FPGA测频模块逻辑设计根据图1-1和图1-2以及测频原理说明,可以比较容易地写出相应的VHDL功能描述。图2-2为
10、VHDL描述的RTL电路图图中spul为外部清零信号,由按键输入。与单片机的接口按照如下方式连接: 单片机的P0口接8位数据DATA7.0,负责读取测频数据; START信号输出到单片机的P3.2口线,通过中断的方式来判断计数是否结束,以确定何时可以读取数据; P1.6,P1.5和P1.4与SEL2.0相接,用于控制多路数据选择器,当SEL分别为“000”、“001”、“010”、“011”时,由低8位到高8位读出标准频率计数值;当SEL分别为“100”、“101”、“110”、“111”时,由低8位到高8位读出待测频率计数值。图2-2等精度频率计FPGA部分的RTL电路图 P3.3接清零信号
11、CLR,高电平有效。每一个测频周期开始,都应该首先清零。 P1.7接预置门控信号CL,CL是由定时器T0产生的一个周期为2S的方波信号,即每隔1S钟左右测试一次频率,频率低于1Hz后,测频的间隔会大于1S钟,特别是待测频率为0.1Hz时,每隔10S钟测试一次。2.3 单片机主控模块STC89C52RC单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。其封装有LQFP44,PDIP40,PLCC44及PQFQ44,本设计中所使用的是PDIP40封装,图形如图2-3所示。图2-3 STC89C52R
12、C单片机PDIP40封装图STC89C52RC单片机特点如下:、增强型6时钟/机器周期、12时钟/机器周期任意设置。、工作电压:5.53.4V5V单片机/2.03.8V3V单片机。、工作频率:040MHz,相当于普通8051单片机;实际使用范围为080MHz。、8KB片内Flash程序存储器,擦写次数10万次以上。、片上集成512B RAM数据存储器。、通用I/O口32/36个,复位后为: P1、P2、 P3、P4是弱上拉/准双向口与普通MCS-51 I/O口功能一样;P0口是开漏输出口,作为总线扩展时用,不用加上拉电阻;P0口作为I/O口用时,需加上拉电阻。、ISP在系统可编程,无需专用编程
13、器/仿真器,可通过串口P30/ P31直接下载用户程序,8KB程序3s即可完成一片。、芯片内置EEPROM功能。、硬件看门狗WDT。、共3个16位定时器/计数器,兼容普通MCS-51单片机的定时器,其中定时器T0还可以当成2个8位定时器使用。 、外部中断4路,下降沿中断或低电平触发中断,掉电模式可由外部中断唤醒。、全双工异步串行口UART,兼容普通8051单片机的串口。、工作温度范围:075/4085。除此之外,STC89C52RC单片机自身还有很多独特的优点:、加密性强, 无法解密。、超强抗干扰。主要表现在:高抗静电ESD保护,可以轻松抗御2KV/4KV快速脉冲干扰EFT测试,宽电压、不怕电
14、源抖动,宽温度范围为4085,I/O口经过特殊处理,单片机内部的电源供电系统、时钟电路、复位电路及看门狗电路经过特殊处理。、三大降低单片机时钟对外部电磁辐射的措施:禁止ALE 输出;如选6 时钟/ 机器周期,外部时钟频率可降一半;单片机时钟振荡器增益可设为1/2gain;、超低功耗:掉电模式,典型电流损耗0.1A;空闲模式,典型电流损耗为2mA;正常工作模式,典型电流损耗4mA7mA。2.4 外围电路设计1、电源模块整个电路的供电电源如图2-4所示,220V交流经变压、整流、滤波后,由一片78L05三端稳压器向系统提供+5V电压信号。图2-4 电源模块2、LED数码管显示电路本设计中采用LED
15、数码管动态显示。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是Altera提供的FPGA/CPLD开发集成
16、环境,Altera是世界最大可编程逻辑器件供给商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX十plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成FPGA开发的整个流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的Quartus II提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工
17、具完全支持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包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis&Syn
18、thesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Compiler Database Interface)等。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool (Tools菜单),在CompilerTool窗口中运行该模块来启动编译器模块。在Compiler Tool窗口中,可以打开该模块的设置文件或报
19、告文件,或打开其他相关窗口。 此外,Quartos II还包含许多十分有用的LPM (Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartos II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。 Quartus II编译器支持的硬件描述语言有VHDL(支持VHDL 87及VH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 精度 频率计 设计
限制150内