ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:289.05KB ,
资源ID:4171020      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4171020.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计频率测量仪设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计频率测量仪设计.docx

1、课程设计频率测量仪设计摘 要 本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用VHDL硬件描述语言编程以MAX+PLUS为开发环境,极大地减少了硬件资源的占用。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。该数字频率计的测量范围为l0Hz10MHz,响应时间小于等于15秒;其测试结果由4只七段数码管稳定显示,测量误差小于等于1 。仿真波形与分析结果表明,所设计的电路通过硬件仿真能够满足数字频率计的功能要求,具有理论与实践意义,实现了电子电路自动化的过程。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改

2、,缩短了设计周期。关键词:VHDL 数字频率计 EDA MAX+PLUS第一章 概述第一节 课题研究背景数字频率计是电子测量与仪表技术最基础的电子仪表类别之一, 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压必不可少的部件。当今数字频率计不仅是作为电压表、计算机、天线电广播通讯设备、工艺过程自动化装置。多种仪表仪器与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用元件少、投资少,体积小,功耗低,且可靠性高,功能强,易于设计和研发,使得它具有技术上的实用性和应用的广泛性。不论从我们用的彩色电视机、电冰箱,DVD,还有我们

3、现在家庭常用到的数字电压表数字万用表等等都包含有频率计。现在频率计已是向数字智能方向发展,即可以很精确的读数也精巧易于控制。数字频率计已是现在频率计发展的方向,它不仅可以很方便的读数,而且还可以使频率的测量范围和测量准确度上都比模拟先进.而且频率计的使用已是很多的方面,数字卫星、数字通讯等高科技的领域都有应用,今天数字频率计的发展已经不仅仅是一个小电子产品的发展也是整个民族乃至整个国家的发展,所以频率计的发展是一个整体的趋势。而从民族产业上来说,我们在这种产业中还落后于西方发达国家,这将会关系到民族产业的兴衰。所以我们必须很重视当前的情况,学习发达国家的先进技术以发展本国的产业。第二节 设计概

4、述所谓频率,就是周期信号在单位时间(1s)里变化的次数。本数字频率计的设计思路是:(一) 根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。(二) 根据数字频率计的基本原理,本文设计方案的基本思想是分为三个模块来实现其功能,即时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块和锁存与译码显示控制电路模块,并且分别用VHDL对其进行编程,实现计数电路、锁存电路、显示电路等。第三节 设计原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟

5、,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1s作为闸门时间。数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1. 1所示。第二章 VHDL程序语言和FPGA简介一 VHDL程序语言介绍:VHDL语言描述能力强,覆盖面广,抽象能力强,可读性好,既能被人容易读懂又能被计算机识别。VHDL语言中设计实体,程序包,涉及库,为设计人员重复利用别人的设计提供了技术

6、手段。当电路系统采用VHDL语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:一 采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。第二层次是RTL方式描述。第三层次是逻辑综合。二.系统可大量采用PLD芯片。利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。三.采用系统早期仿真。在系统设计过程中要进行三级仿真。这三级仿真贯穿系统设计的全过程,从而可以在系统设计的早期发现设计中存在的问

7、题,大大缩短系统设计的周期。四.降低了硬件电路设计难度。在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表)。而利用VHDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大缩短了设计的周期。五.主要设计文件是用VHDL语言编写的源程序。 与传统的电路原理图相比,使用VHDL源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。其三是阅读方便。二 FPGA 简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步

8、发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触

9、发器和IO引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。三 VHDL 在FPGA中的运用近30年来,由于微电子学和计算机科学的迅速发展,给EDA(电子设计自动化)行业带来了巨大的变化。可以说EDA产业已经成为电子信息类产品的支柱产业。就FPGA和CPLD开发而言,比较流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因适合标准化的发展方向而最终成为IEEE标准。随着电子技术的高速发展,CPLD的出现以其高速、高可

10、靠性、串并行工作方式等突出优点在电子设计中广泛应用,并代表着未来EDA设计的方向。CPLD的设计采用了高级语言(如VHDL语言),进一步打破了软硬件之间的界限,加速了产品的开发过程。采用先进的CPLD(复杂可编程逻辑器件)取代传统的标准集成电路、接口电路也是电子技术发展的必然趋势。EDA(电子设计自动化) 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC) 实现,然后采用硬件描述语言(HDL) 完成系统行为级设计,最后通过综合器和适配器生成最终目标器件。 采用VDHL 编

11、程设计实现的数字频率计, 除被测信号的整形部分、键输入部分和数码显示部分以外, 其余全部在一片FPGA 芯片上实现, 整个设计过程变得十分透明、快捷和方便。四 软件组成MAX+PLUS软件采用模块化结构,包括设计输入、项目处理、项目校验和器件编程4个部分,所有这些部分都集成在一个可视化的操作环境下。(一) 设计输入MAX+PLUS的设计输入方法有多种,主要包括文本设计输入、原理图输入、波形设计输入等多种方式。另外,还可以利用第三方EDA工具生成的网表文件输入(二) 项目处理设计处理的任务就是对项目进行编译(Compile),编译实际就是将设计者编写的设计改为可以用于生产的“语言”。编译器通过读

12、入设计文件并产生用于编程、仿真和定时分析的输出文件来完成编译工作。MAX+PLUS提供的编译软件,只需简单的操作。(三) 项目校验MAX+PLUS提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,要再用专用软件进行仿真。如果发现了错误,则应对设计输入进行部分修改直至无误。(四) 器件编程MAX+PLUS通过编程器(Device Programmer)将编译器生成的编程文件编程或配置到Altera CPLD器件中,然后加入实际激励信号进行测试,检查是否达到了设计要求?在设计过程中,如果出现错误,则需要重新回到设计输入阶段,改正错误或调整电路后重复上述过程。五 设计流程使用MAX+

13、PLUS进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图第三章 系统分析第一节 数字频率计的设计任务及要求设计一个四位十进制的数字频率计,要求具有以下功能:(一) 测量范围:1Hz10kHz。(二) 测量误差1%。(三) 响应时间15s。(四) 显示时间不少于1s。(五) 具有记忆显示的功能,即在测量的过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次测量结束。等精度测量法 等精度测量法的机理是在标准频率比较测量法的基础上改变计数器的计数开始和结束与闸门门限的上升沿和下降沿的严格关系。

14、当闸门门限的上升沿到来时,如果待测量信号的上升沿未到时两组计数器也不计数,只有在待测量信号的上升沿到来时,两组计数器才开始计数;当闸门门限的下降沿到来时,如果待测量信号的一个周期未结束时两组计数器也不停止计数,只有在待测量信号的一个周期结束时两组计数器才停止计数。这样就克服了待测量信号的脉冲周期不完整的问题,其误差只由标准频率信号产生, 与待测量信号的频率无关。最大误差为正负一个标准频率周期,即t=1/f0。由于一般标准信号频率都在几十兆赫兹以上,因此误差小于 10-6HZ。考虑到精度问题这次我们选择了等精度方法,具体实现逻辑框图如图一图一首先按键发出一个清零信号CLR,使2个32 bit的计

15、数器和D触发器置0,然后按键再发出允许测频命令,即使预置门控信号GATE为高电平,这时D触发器要一直等到被测信号的上升沿通过时,Q端才被置1,即使计数器1和计数器2的EN同时为1,将启动计算器计数,系统进入计算允许周期。这时,计数器1和2分别对被测信号和标准频率信号同时计数。当Tc秒过后,预置门控信号被D触发器置为低电平,但此时2个32 bit的计数器仍然没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将这2个计算器同时关闭。由图所示的测频时序图可见,GATE的宽度和发生的时间都不会影响计数使能信号允许计数的周期总是恰好等于待测信号XCLK的完整周期,这正是确保XCLK在

16、任何频率条件下都能保持恒定测量精度的关键。因为,此时GATE的宽度Tc改变以及随机的出现时间造成的误差最多只有基准时钟BCLK信号的一个时钟周期。第二节 模块的划分根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图3. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。(一) 时基产生与测频时序控制电路模块时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CCLR和锁存信号LOCK。(二) 待测信号脉冲计数电路模块待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选

17、通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果10。(三) 锁存与译码显示控制电路模块锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。四 Bin转BCD码模块由于要求数码管10进制输出,因此需要一个二进制转bc

18、d码的模块。操作是这样的:用两个寄存器,一个32bit,一个40bit,分别存bin码和有待实现的bcd码。接下来,逐位将BIN的最高位移入BCD的最低位。同时,将BCD的40位寄存器按每四位划成一块,我们称之为个十百千好了。但记住,个,十,百,千等都有4个bit位。1.将bin31(bin是bin31:0)移入bcd0。这样,bin31就变成了原来的bin30,bin0=0。2.分别检查个十百千里存的数是不是大于等于5(按二进制换十进制那样换算),如果是,加3。3.重做1,2直到全部移进去。 第三节 设计分析一 测频模块逻辑结构利用VHDL程序设计的测频模块逻辑结构如图所示,其中有关的接口信

19、号规定如下:TP(P2.7):TF=0 时等精度测频;TF=1 时测脉宽; CLR/TRIG(P2.6):当TF=0 时系统全清零功能;当TF=1 时CLRTRIG 的上跳沿将启动CNT2 ,进行脉宽测试计数; ENDD (P2.4):脉宽计数结束状态信号,ENDD=1计数结束;CHOICE(P3.2):自校/测频选择,CHOICE=1 测频;CHOICE=0自校; START(P2.5):当TF=0 时,作为预置门闸,门宽可通过键盘由单片机控制,START=1时预置门开;当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。利用此功能可分别获得脉宽

20、和占空比数据。 EEDN(P2.3):等精度测频计数结束状态信号,EEND=0时计数结束。 SELP2.2(P2.2,P2.1,P2.0):计数值读出选通控制;当SEL2.0=“000”,“001”, “010”. “111”时,将CNT1,CNT2的计数值分8次,每次读出8位,并传达到单片机的P0口。图4.1 测频模块逻辑图二 各模块功能和工作步骤如下:(一) 测频/测周期的实现被测信号脉冲从CONTRL模块的FIN端输入,标准频率信号从CONTRL 的FSD端输入,CONTRL的CLR是此模块电路的工作初始化信号输入端。在进行频率或周期测量时,其工作步骤如下: 令TF=0,选择等精度测频,

21、然后再CONTRL的CLR端加一正脉冲信号以完成测试电路状态的初始化。 由预置门控信号将CONTRL的START端置高电平,预置门开始定时,此时由被测信号的上沿打开计数器CNT1进行计数,同时使标准频率信号进入计数器CNT2。 预置门定时结束信号把CONTRL的START端置为低电平(由单片机来完成),在被测信号的下一次脉冲的上沿到来时,CNT1停止计数,同时关断CNT2对FS的计数。 计数结束后,CONTRL的EEND端将输出低电平来指示测量计数结束,单片机得到此信号后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分别读回CNT1 和CNT2的计数值,并根据精度测

22、量公式进行运算,计算出被测信号的频率或周期值。(二) 控制部件设计如图所示,当D触发器的输入端START为高电平时,若FIN端来一个上升沿,则Q端变为高电平,导通FIN-CLK1和FSD-CLK2,同时EEND被置为高电平作为标志;当D触发器的输入端START为低电平时,若FIN端输入一个脉冲上沿,则FIN-CLK1与FSD-CLK2的信号通道被切断。图4.2 测频与测周期控制部分电路计数部件设计 图中的计数器CNT1/CNT2是32位二进制计数器,通过DSEL模块的控制,单片机可分4次将其32位数据全部读数。(三) 脉冲宽度测量和占空比测量模块设计 根据上述脉宽测量原理,设计如图(CONTR

23、L)所示的电路原理示意图。该信号的上沿和下沿信号对应于未经处理时的被测信号50%幅度时的上沿和下沿.被测信号从FIN端输入,CLR为初始化信号START为工作使能信号.CONTRL2模块的PUL端与GATE的输入端PUL连接.图4.3 脉冲宽度测量原理图测量脉冲宽度的工作步骤如下:1 向CONTRL的CLR端送一个脉冲以便进行电路的工作状态初始化.2 将GATE的CNL端置高电平,表示开始脉冲宽度测量,这时CNT2的输入信号为FSD.3 在被测脉冲的上沿到来时,CONTRL2的PUL端输出高电平,标准频率信号进入计数器CNT2.4 在被测脉冲的下沿到来时,CONTRL2的PUL端输出低电平,计

24、数器CNT2被关断.5 由单片机读出计数器CNT2的结果,并通过上述测量原理公式计算出脉冲宽度.(四) 电路显示模块系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8位并出的74LS164芯片组成。 图4.4 显示电路图这种显示方式不仅占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路如图4.4所示。第四章 各功能模块基于VHDL的设计第一节 时基产生与测频时序控制电路模块的VHDL源程序程序ctr

25、l.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL IS PORT(CLK: IN STD_LOGIC; -系统时钟 LOCK: OUT STD_LOGIC; -锁存信号 EN: OUT STD_LOGIC; -计数允许信号 CLR: OUT STD_LOGIC); -清零信号END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定义变量BEGINPROCESS(CLK) BE

26、GIN IF(CLKEVENT AND CLK=1)THEN -检测时钟上升沿 IF Q=1111THEN Q=0000; -计数大于15,清零 ELSE Q=Q+1; -允许计数 END IF; END IF; EN=NOT Q(3); LOCK=Q(3) AND NOT(Q(2) AND Q(1); CLR=Q(3) AND Q(2) AND NOT(Q(1); END PROCESS;END ART; 程序主要讲述了由时钟信号产生计数允许信号、清零信号和锁存信号,而且限定了响应时间为不超过15s。第二节 待测信号脉冲计数电路模块的VHDL源程序一 十进制加法计数器的VHDL源程序程序cb

27、10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 IS PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -计数输信号END CB10;ARCHITECTURE ART OF CB10 IS -结构体 BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=1 THEN COUNT10=0000; -计数器清零 ELSIF RISING_E

28、DGE(CLK) THEN -检测时钟上升沿 IF(EN=1) THEN -检测是否允许计数 IF COUNT10=1001 THEN COUNT10=0000; -计数值满9清零 ELSE COUNT10=COUNT10+1; -允许计数 END IF; END IF; END IF; END PROCESS;END ART; 程序主要讲述了十进制加法计数器的使用,在符合了一定的标准以后十进制的使用,在计数器满9后清零。二 待测信号脉冲计数器的VHDL源程序程序count.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOG

29、IC_UNSIGNED.ALL;ENTITY COUNT IS PORT(CLK: IN STD_LOGIC; -待测时钟信号 EN: IN STD_LOGIC; -计数选通控制信号 CLR: IN STD_LOGIC; -计数器清零信号 QA,QB,QC,QD: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -结果输出信号END;ARCHITECTURE ART OF COUNT IS COMPONENT CB10 -元件CB10引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECT

30、OR(3 DOWNTO 0); -计数输出信号 END COMPONENT; SIGNAL CLK2: STD_LOGIC; SIGNAL CLK3: STD_LOGIC; SIGNAL CLK4: STD_LOGIC; BEGIN CLK2=NOT QA(3); CLK3=NOT QB(3); CLK4=NOT QC(3); U1:CB10 PORT MAP(CLK,EN,CLR,QA); -元件引用例示 U2:CB10 PORT MAP(CLK2,EN,CLR,QB); -元件引用例示 U3:CB10 PORT MAP(CLK3,EN,CLR,QC); -元件引用例示 U4:CB10 PO

31、RT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;第三节 锁存与译码显示控制电路模块的VHDL源程序一 译码显示电路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD输入信号 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段译码输出信号END;ARCHITECTURE ART OF BCD7 IS BEGIN LED=0111111 WHEN BCD=0000 ELSE -对照七段字形显示译码器真值表 0000110 WHEN BCD=0001 ELSE 1011011 WHEN BCD=0010 ELSE 1001111 WHEN BCD=0011 ELSE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1