




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 I 摘摘 要要 数字频率计是电子测量与仪表技术最基础的电子仪表之一,也是计算机、 通讯设备、音频视频等科研生产领域不可缺少的测量仪器。 本文主要介绍一种以 FPGA(Field Programmable Gate Array)为核心,基于 硬件描述语言 VHDL 的数字频率计设计与实现。并在 EDA(电子设计自动化)工具 的帮助下,用大规模可编程逻辑器件(FPGA/CPLD)实现数字频率计的设计原理及 相关程序。特点是:无论底层还是顶层文件均用 VHDL 语言编写,避免了用电路 图形式设计时所引起的毛刺现象;改变了以往数字电路小规模多器件组合的设 计方法,整个频率计设计在一块 FPGA/CPLD 芯片上,与用其他方法做成的频率 计相比,体积更小,性能更可靠。 关键词关键词:FPGA 频率计 电子设计自动化 目 录 II 目目 录录 摘摘 要要.I 目目 录录.II 第一章第一章 绪论绪论.1 1.1 课题研究背景.1 1.2 研究目的和意义.1 第二章第二章 系统方案的设计系统方案的设计.2 2.1 问题引入.2 2.2 设计目的.2 2.3 设计内容.2 2.3.1 数字频率计的基本原理.2 2.3.2 实际电路.2 第三章第三章 系统硬件电路的设计系统硬件电路的设计.5 3.1 设计要求.5 3.1.1 所需仪器仪表.5 3.2 系统框图.5 3.2.1 电源与整流稳压电路.5 3.2.2 全波整流与波形整形电路.5 3.2.3 分频器.6 3.2.4 信号放大、波形整形电路.6 3.2.5 控制门.7 3.2.6 计数器.7 3.2.7 锁存器.7 3.2.8 显示译码器与数码管.7 第四章第四章 软件设计软件设计.8 4.1 设计要求.8 4.2 模块及模块的功能.8 第五章第五章 基于基于 FPGA 数字频率计的设计与仿真数字频率计的设计与仿真.14 5.1 同步测周期频率计的原理.14 5.2 数字频率计的 VHDL 实现 .14 5.3 频率计的仿真验证.15 第六章第六章 总结与展望总结与展望.16 致致 谢谢.17 参考文献参考文献.18 绪论 1 第一章第一章 绪论绪论 1.1 课题研究背景 数字频率计是一种基础测量仪器,到目前为止已有 30 多年的历史,早起设 计师们追求的目标主要是扩展测量范围,再加上提高测量的精度、稳定度等, 这些也是人们衡量数字频率计的技术水平,决定数字频率计价格高低的主要依 据。目前这些基本技术日益完善,成熟。应用现代技术可以轻松的将数字频率 计的测频上限扩展到微波频段。当今数字频率计不仅是作为电压表、计算机、 天线电广播通讯设备、工艺工程自动化装置。多种仪表仪器与家庭电器等许多 电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用 元件投资体积小、功耗低,且可靠性高,功能强,易于设计和研发,使得它具 有技术上的实用性和应用的广泛性。 而从民族产业上来说,我们在这种产业中还落后于西方发达国家,这将会 关系到民族产业的兴衰。所以我们必须很重视当前的情况。学习发达国家的先 进技术以发展本国的产业。 1.2 研究目的和意义 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测 量仪器。随着人们文化生活水平的提高,加上现在中国国力的上升,人民在不 断的追求高质量生活的同时大都在密切的关注着我们的民族产业的发展前景。 而频率计的发在虽是一个极小部分但也可以反映出我国民族产业发展的现状。 我国在很多的方面都已不是过去那个很贫穷落后的国家,但是关系着我们国计 民生的民族产业的发展却是不尽人意,不能不成为今天令人注目的焦点。 本论文主要讲述了使用 FPGA 实现的数字频率计,它采用 VHDL 语言编程, 用 MaxplusII 集成开发环境进行波形仿真,编译,并下载到 FPGA 中。正是因为 数字频率计的应用是如此的广泛,才使得它的作用是如此的重要,所以更应该 去关注和研究。 淮安信息职业技术学院毕业设计论文 2 第二章第二章 系统方案的设计系统方案的设计 2.1 问题引入 在许多情况下,要对信号的频率进行测量,利用示波器可以粗略测量被测 信号的频率,精确测量则要用到数字频率计。 2.2 设计目的 本设计与制作项目可以进一步加深我们对数字电路应用技术方面的了解与 认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。 2.3 设计内容 2.3.1 数字频率计的基本原理 数字频率计的主要功能是测量周期信号的频率。频率是单位时间( 1S ) 内信号发生周期变化的次数。如果我们能在给定的 1S 时间内对信号波形计数, 并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得 相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识 别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算 后显示出来。这就是数字频率计的基本原理。 2.3.2 实际电路 对 100Hz 全波整流输出信号的分频采用 7 位二进制计数器 74HC4024 组成 100 进制计数器来实现。计数脉冲下降沿有效。在 74HC4024 的 Q7 、 Q6 、 Q3 端通过与门加入反馈清零信号,当计数器输出为二进制数 (十进制数为 100 )时,计数器异步清零。 实现 100 进制计数。为了获得稳定的分频输出,清零信号与输入脉冲 “与”后再清零,使分频输出脉冲在计数脉冲为低电平时保持一段时间( 10mS )为高电平。 系统方案的设计 3 图 4 数字频率计电路图 电路中采用双 JK 触发器 74HC109 中的一个触发器组成 触发器,它 将分频输出脉冲整形为脉宽为 1S 、周期为 2S 的方波。从触发器 Q 端输出 的信号加至控制门,确保计数器只在 1S 的时间内计数。从触发器 端输出 的信号作为数据寄存器的锁存信号。 被测信号通过 741 组成的运算放大器放大 20 倍后送施密特触发器整形, 得到能被计数器有效识别的矩形波输出,通过由 74HC11 组成的控制门送计 数器计数。为了防止输入信号太强损坏集成运放,可以在运放的输入端并接两 个保护二极管。 淮安信息职业技术学院毕业设计论文 4 频率计数器由两块双十进制计数器 74HC4511 组成,最大计数值为 9999Hz 。 由于计数器受控制门控制,每次计数只在 JK 触发器 Q 端为高电平时进行。当 JK 触发器 Q 端跳变至低电平时,端的由低电平向高电平跳变,此时, 8D 锁 存器 74HC374 (上升沿有效)将计数器的输出数据锁存起来送显示译码器。计 数结果被锁存以后,即可对计数器清零。由于 74HC4518 为异步高电平清零, 所以将 JK 触发器的 同 100Hz 脉冲信号“与”后的输出信号作为计数器的 清零脉冲。由此保证清零是在数据被有效锁存一段时间( 10mS )以后再进行。 系统硬件电路的设计 5 第三章第三章 系统硬件电路的设计系统硬件电路的设计 3.1 设计要求 设计并制作出一种数字频率计,其技术指标如下: (1)频率测量范围: 10 9999Hz 。 (2)输入电压幅度 300mV 。 (3)输入信号波形:任意周期信号。 (4)显示位数: 4 位。 (5)电源: 220V 、 50Hz 3.1.1 所需仪器仪表 示波器、音频信号发生器、逻辑笔、万用表、数字集成电路测试仪、直流 稳压电源。 3.2 系统框图 从数字频率计的基本原理出发,根据设计要求,得到如图 8.3 所示的电 路框图。 下面介绍框图中各部分的功能及实现方法 3.2.1 电源与整流稳压电路 框图中的电源采用 50Hz 的交流市电。市电被降压、整流、稳压后为整 个系统提供直流电源。系统对电源的要求不高,可以采用串联式稳压电源电路 来实现。 3.2.2 全波整流与波形整形电路 本频率计采用市电频率作为标准频率,以获得稳定的基准时间。按国家标 准,市电的频率漂移不能超过 0.5Hz ,即在 1 的范围内。用它作普通频率 计的基准信号完全能满足系统的要求。全波整流电路首先对 50Hz 交流市电 进行全波整流,得到如图 1 所示 100Hz 淮安信息职业技术学院毕业设计论文 6 图 1 数字频率计框图 的全波整流波形。波形整形电路对 100Hz 信号进行整形,使之成为如图 2 所 示 100Hz 的矩形波。 图 2 全波整流与波形整形电路的输出波形 波形整形可以采用过零触发电路将全波整流波形变为矩形波,也可采用施 密特触发器进行整形。 3.2.3 分频器 分频器的作用是为了获得 1S 的标准时间。电路首先对图 1 所示的 100Hz 信号进行 100 分频得到如图 2( a )所示周期为 1S 的脉冲信号。然 后再进行二分频得到如图 8.5 ( b )所示占空比为 50 脉冲宽度为 1S 的 方波信号,由此获得测量频率的基准时间。利用此信号去打开与关闭控制门, 可以获得在 1S 时间内通过控制门的被测脉冲的数目。 分频器可以采用第 5 章介绍过的方法,由计数器通过计数获得。二分频 可以采用 触发器来实现。 3.2.4 信号放大、波形整形电路 为了能测量不同电平值与波形的周期信号的频率,必须对被测信号进行放 系统硬件电路的设计 7 大与整形处理, 图 3 分频器的输出波形 使之成为能被计数器有效识别的脉冲信号。信号放大与波形整形电路的作 用即在于此。信号放大可以采用一般的运算放大电路,波形整形可以采用施密 特触发器。 3.2.5 控制门 控制门用于控制输入脉冲是否送计数器计数。它的一个输入端接标准秒信 号,一个输入端接被测脉冲。控制门可以用与门或或门来实现。当采用与门时, 秒信号为正时进行计数,当采用或门时,秒信号为负时进行计数。 3.2.6 计数器 计数器的作用是对输入脉冲计数。根据设计要求,最高测量频率为 9999Hz ,应采用 4 位十进制计数器。可以选用现成的 10 进制集成计数器。 3.2.7 锁存器 在确定的时间( 1S )内计数器的计数结果(被测信号频率)必须经锁定 后才能获得稳定的显示值。锁存器的作用是通过触发脉冲控制,将测得的数据 寄存起来,送显示译码器。锁存器可以采用一般的 8 位并行输入寄存器,为 使数据稳定,最好采用边沿触发方式的器件。 3.2.8 显示译码器与数码管 显示译码器的作用是把用 BCD 码表示的 10 进制数转换成能驱动数码管 正常显示的段信号,以获得数字显示。 选用显示译码器时其输出方式必须与数码管匹配。 淮安信息职业技术学院毕业设计论文 8 第四章第四章 软件设计软件设计 4.1 设计要求 频率计共分四档: 一档: 0 9999Hz ; 二档: 10 99.99KHz ; 三档: 100.0 999.9KHz ; 四档: 1.000 9.999MHz ; 在此频率计的换档程序设计中,突破了以往常用的改变闸门时间的方法,使自 动换档的实现简单可靠。 总体框图如图 1 所示 4.2 模块及模块的功能 (1)模块 FEN 见图 1.1 ,通过对 4MHz 时钟进行分频以获得 0.5 Hz 时钟, 为核心模块 CORNA 提供 1 的闸门时间。 library ieee; use ieee.std_logic_1164.all; entity fen is port(clk:in std_logic; q:out std_logic); end fen; architecture fen_arc of fen is begin process(clk) variable cnt: integer range 0 to ; variable x:std_logic; variable x:std_logic; begin if clkevent and clk=1then if cnt then cnt:=cnt+1; else cnt:=0; x:=not x; end if; end if; q=x; end process; end fen_arc; 软件设计 9 (2)模块 SEL 见图 1.2,该模块产生数码管的片选信号。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity sel is port(clk:in std_logic; sel:out std_logic_vector(2 downto 0); end sel; architecture sel_arc of sel is begin process(clk) variable cnt:std_logic_vector(2 downto 0); begin if clkevent and clk=1then cnt:=cnt+1; end if; sel=cnt; end process; end sel_arc; (3)核心模块 CORNA 见图 1.3,该模块是整个程序的核心,它能在 1 的 闸门时间里完成对被测信号频率计数的功能,并通过选择输出数据实现自动换 档的功能。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity corna is port(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0); end corna; architecture corn_arc of corna is begin process(door,sig) variable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0); variable x:std_logic; begin if sigevent and sig=1then if door=1then if c01001then c0:=c0+1; else c0:=0000; if c11001then c1:=c1+1; 淮安信息职业技术学院毕业设计论文 10 else c1:=0000; if c21001then c2:=c2+1; else c2:=0000; if c31001then c3:=c3+1; else c3:=0000; if c41001then c4:=c4+1; else c4:=0000; if c51001then c5:=c5+1; else c5:=0000; if c61001then c6:=c6+1; else c6:=0000; alm=1; end if; end if; end if; end if; end if; end if; end if; else if clr=0then alm=0; end if; c6:=0000; c5:=0000; c4:=0000; c3:=0000; c2:=0000; c1:=0000; c0:=0000; end if; if c6/=0000then q3=c6; q2=c5; q1=c4; q0=c3; dang=0100; elsif c5/=0000then q3=c5; 软件设计 11 q2=c4; q1=c3; q0=c2; dang=0011; elsif c4/=0000then q3=c4; q2=c3; q1=c2; q0=c1; dang=0010; elsif c3/=0000then q3=c3; q2=c2; q1=c1; q0=c0; dang=0001; end if; end if; end process; end corn_arc; (4)模块 LOCK 见图 1.4,该模块实现锁存器的功能,在信号 L 的下降沿到来 时将信号 A4、A3、A2、A1 锁存。 library ieee; use ieee.std_logic_1164.all; entity lock is port(l:in std_logic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0); end lock; architecture lock_arc of lock is begin process(l) variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0); begin if levent and l=0then t4:=a4; t3:=a3; t2:=a2; t1:=a1; t0:=a0; end if; q4=t4; q3=t3; q2=t2; q1=t1; q0qqqqqqqqqqqqqqqqq=; end case; 软件设计 13 end process; end disp_arc; 淮安信息职业技术学院毕业设计论文 14 第五章第五章 基于基于 FPGAFPGA 数字频率计的设计与仿真数字频率计的设计与仿真 5.1 同步测周期频率计的原理 频率信号的一个周期为时限进行脉冲计数传统的测周期计数器采用门控计 数器来实现,即采用一个同被测频率信号周期宽度相同的门控脉冲来控制计数 器的计停其缺点在于无法实现对被测在数字频率计中,测周期计数器是主要的 电路,其功能是:使用标准时钟以被测信号的连续测周期计数 本文设计的同 步测周期计数器假设其计数时钟为 clk0, 频率为 f0;被测信号为 clkx,频率为 fx采用一个 D 触发器对输入的被测信号 clkx 进行同步。在 clk0 的上升沿到来 之前,如果 clkx 出现了上升跳变,则 le 信号变为高电平,计数器 ct 的重载信号 和锁存器 cout 的使能信号有效当 clk0 的上升沿到来时,计数器的计数值锁存, 同时计数器重载为 1,重新开始计数 le 变为低电平计数器在其他时间里进行 加 1 计数,锁存器的值则保持不变该测周期计数器能在 clkx 的每个上升沿之 后输出计数值,实现了对被测信号进行测周期计数,并始终输出其最新一个周 期的计数值,cint 端输出一个 clk0 周期宽度的高脉冲,用于指示新的计数值锁 存。 5.2 数字频率计的 VHDL 实现 同步测周期计数器的 VHDL 描述如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity freq_count is -实体定义 port( reset: in std_logic; clk0 : in std_logic; clkx : in std_logic; cint : out std_logic; cout : out std_logic_vector(23 downto 0); end entity freq_count; architecture ar of freq_count is signal s0 : std_logic; signal ct : std_logic_vector(23 downto 0); begin p0: process(reset clk0) -计数器进程 begin if reset=0 then 基于 FPGA 数字频率计的设计与仿真 15 s0=0; cint=1; cout=conv_std_logic_vector(0 24); else if clk0event and clk0=1 then s0=clkx; if s0=0 and clkx=1 then cout=ct; cint=0; ct=conv_std_logic_vector(1 24); else cint=1; ct=ct+1; end if; end if; end if; end process p0; end ar; 此外,为了使频率计的设计更加灵活,频率计中分频器的分频系数也可改为由 外部输入。在频率计运行期间,由外部控制器设置不同的分频系数 CO,这样可 实现更宽范围的频率测量。 5.3 频率计的仿真验证 此频率计的 VHDL 设计在 Altera 公司的 Quartus II 开发平台下进行了编译和 仿真,它是在 clk0 输入 10 MHz 方波,clkx 输入周期为 156ms(频率为 6.41KHz) 方波,分频系数 C0 取 15000 时的仿真波形。 淮安信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行入职考试试题及答案
- 医院普法考试试题及答案
- 六一儿童节病区活动方案
- 六一公司策划方案
- 六一化妆环节活动方案
- 六一宾馆活动方案
- 医学考试面试试题及答案
- 六一活动平价活动方案
- 六一活动教室活动方案
- 六一活动绘画活动方案
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试备考试题及答案详解一套
- 2025年泸州市中考语文试卷真题
- 2025年动漫IP产业链构建与动漫产业产业链协同效应研究报告
- 2025年安全员之A证企业负责人模拟题库及答案(附答案)
- 食管癌全程管理专家共识(2025)解读
- 山东省潍坊安丘市等三县2024-2025学年高一下学期期中考试英语试题(原卷版+解析版)
- 2024-2025学年八年级下册道德与法治期末测试模拟卷(统编版)(含答案)
- 美团入驻协议书
- 电力故障应急演练改进预案
- 胃肠间质瘤规范化外科治疗中国专家共识(2025版)解读
- 公路水运工程生产安全重大事故隐患判定标准2025
评论
0/150
提交评论