简易等精度频率计-王章蓓(打印)

上传人:012****78 文档编号:183235774 上传时间:2021-06-01 格式:DOC 页数:12 大小:1.10MB
返回 下载 相关 举报
简易等精度频率计-王章蓓(打印)_第1页
第1页 / 共12页
简易等精度频率计-王章蓓(打印)_第2页
第2页 / 共12页
简易等精度频率计-王章蓓(打印)_第3页
第3页 / 共12页
简易等精度频率计-王章蓓(打印)_第4页
第4页 / 共12页
简易等精度频率计-王章蓓(打印)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《简易等精度频率计-王章蓓(打印)》由会员分享,可在线阅读,更多相关《简易等精度频率计-王章蓓(打印)(12页珍藏版)》请在金锄头文库上搜索。

1、个人收集整理 勿做商业用途 简易等精度频率计设计 0 数字系统设计实践数字系统设计实践 设计报告设计报告 实验名称 简易等精度频率计设计 班 级 11 电信升本 学生姓名 王章蓓 学 号 113040063 完成日期 20120509 个人收集整理 勿做商业用途 简易等精度频率计设计 1 目录目录 任务书任务书.2 一、设计任务 .2 二、设计要求 .2 三、设计说明 .2 正文正文 .3 一、使用方法的选择和实现.3 1。1 等精度频率计.3 二、系统设计.4 2.1 程序总图.4 三、系统功能、指标及调试.4 3。1 输入模块设计.4 3。2 分频器模块设计.5 3.3 同步电路模块设计.

2、5 3.4 门控闸门计数模块设计.5 3.5 运算模块设计.6 3。6 除法器进制转化模块设计.6 3.7 控制输出模块设计.7 四、系统模块程序.8 4。1 分频模块程序.8 4。2 寄存器模块.8 4。3 输出模块.9 五、引脚配置.10 六、系统测试.11 个人收集整理 勿做商业用途 简易等精度频率计设计 2 任务书任务书 一、一、设计任务设计任务 1.设计一个简易等精度频率计。 2.通过 7 段数码管直接显示十进制的频率控制字和输出频率。 二、二、设计要求设计要求 1. 测量范围 信号:方波; 幅度:TTL 电平; 频率:1Hz1MHz。 2. 测量误差0。1(全量程). 3. 闸门时

3、间:1s,响应时间:2s. 4. 乘除运算:单片机、FPGA、计算器. 5. 计算:时钟频率. 三、三、设计说明设计说明 1. 预置闸门闸门可由一个“与” (或“或” )逻辑门电路实现。 2. 由于 D 触发器有锁存功能,同步信号由 D 触发器实现. 3. 输入频率与时钟频率之间的转换可以调用乘除法模块实现. 个人收集整理 勿做商业用途 简易等精度频率计设计 3 正文正文 摘要摘要 等精度频率计中频率的定义是周期信号在单位时间(1s1s)内的变化次数即周期数。如 果在一定时间间隔 T T 内周期信号重复变化了 N N 次,则频率可表达为:f fN/TN/T。本实验实现将 需累加计数的信号即频率

4、测量时为被测信号通过由一个“闸门”控制,并由一个“门控” 信号控制闸门的开启(计数允许)与关闭(计数停止)输出一个同步信号,经计数器 A 计 数器 B 计数后通过运算电路还原出原始输入信号的频率。本实验基于 FPGA,通过 QuartusII 软件编写的等精度频率计,通过编写,画图,模拟,仿真,调试等,最终在硬件箱 上实现规定范围内的任意频率的调试,并用 7 段数码管直接显示。 一、使用方法的选择和实现 1。1 等精度频率计 图 1-1 等精度频率计原理图 输入端: 显示器清零端 clr; 外部被测信号 fx. 输出端: 以十进制的形式显示被测信号的频率。 误差估计: 误差与被测频率 fx 无

5、关,这就是等精度测量方法。 首先将预置闸门选择为 0.5hz,占空比为 50。误差|=1/(T*fs) 0。1,因为最大测试频率达到 1Mhz,所以计算器 A 选择为 20 位,计算器 B 选择为 14 位,预闸门脉宽 T 为 1s,fs 为 10KHz,可以满足最大计数值误差为 0。1的要求。显示用实验开发平台上的 6 个数码管直接显示(四个整数位、 个人收集整理 勿做商业用途 简易等精度频率计设计 4 两个小数位). 二、系统设计 2。1 程序总图 用实验箱内部时钟作为系统时钟,频率选择为 10Khz;将时钟通过预置闸 门脉冲发生器产生频率为 0。5hz,脉宽为 1s 的同步后的闸门脉冲;

6、预置闸门脉 冲发生器通过计数器来实现;同步电路采用 D 触发器,闸门 AB 采用与门;通过 闸门 A、B 对输入波形和系统时钟波形进行计;计数器 AB 采用带异步清零端 的计数器,最后讲两计数器连入两个寄存器,在同步后的脉冲下降沿来临时将 数据锁存,然后将所存的计数值 Na,Nb 通过 LPM 乘除法模块进行频率公式计算, 最后将计算值直接输出,方便观察。 三、系统功能、指标及调试 3.1 输入模块设计 图 3.11 输入模块引脚 模块说明: en:系统清零端,en=0 时系统自动清零; fx 由信号发生器产生被测的方波信号; 个人收集整理 勿做商业用途 简易等精度频率计设计 5 fc 芯片外

7、时钟发生器,根据误差要求,设定为 10KHz; high_or_low :等于 0 时输出所得结果前八位,反之输出剩下的两位. 3。2 分频器模块设计 图 3。2 分频器模块 模块说明: 将 fc 作为时钟脉冲输入,仿照单片机的延时电路和计数器,Tc=1/10000s,实 现跳变 1000 次时控制输出翻转一次,从而产生脉宽为 1s 的门控信号。 3。3 同步电路模块设计 图 3.3 同步电路模块 模块说明: 使用同步电路模块来产生同步的闸门脉冲信号.同步电路使用 D 触发器形式, 由于 D 触发器有锁存功能,因此能产生同步信号。 3。4 门控闸门计数模块设计 个人收集整理 勿做商业用途 简易

8、等精度频率计设计 6 图 3.4 门控闸门计数模块 模块说明: 利用计数器分别求出在 1s 的门控信号内被测信号 fx 与系统时钟 fc 所经过 的个数 Nx 和 Nc,同步后的 fx 和 fc 分别上升沿触发两个计数器计数,等将数 据存入寄存器后,两计数器延时清零,准备下一次任务。位数说明见运算模块。 3.5 运算模块设计 图 3.5 运算模块 模块说明: 基于运算公式 fx=Nxfc/Nc,先将 Nc*10K,然后放大 1000 倍,将小数部分 升为整数部分,保证计算的精度。1M 小于 10241024,即 2 的 20 次方,而且 十进制的 1000000 转成二进制的 11110100

9、001001000000 需要 20 位,换言之二进 制的 11111111111111111111 转成十进制的 1048575 为理论最大被测频率 1.04MHz,同理 10K10011100010000,共计 14 位。 3。6 除法器进制转化模块设计 个人收集整理 勿做商业用途 简易等精度频率计设计 7 3.61 触发器进制转化模块 1 其实际模块电路为: 图 3。6-2 触发器进制转化模块 2 3。7 控制输出模块设计 图 3。7 控制输出模块 模块说明: 输出显示模块从运算模块中获得直接显示输出六位有效数字(两位是小数 部分). 个人收集整理 勿做商业用途 简易等精度频率计设计 8

10、 四、系统模块程序 4.1 分频模块程序 library ieee; use ieee。std_logic_1164.all; use ieee.std_logic_unsigned。all; entity a is port( en,fc:in std_logic; f_out:out std_logic) ; end a; architecture behave of a is signal count:integer range 0 to 10000; signal c:std_logic; begin process(en,fc) begin if en=0 then f_out=0;

11、 count=0; elsif(fcevent and fc=1) then if(count10000)then count=count+1; else count=0; c=not c; end if; end if; f_out=c; end process; end behave; 4.2 寄存器模块 寄存器 1: library ieee; use ieee。std_logic_1164。all; use ieee.std_logic_unsigned.all; entity reg is port( reg_clk:in std_logic; 个人收集整理 勿做商业用途 简易等精度

12、频率计设计 9 reg_in:in std_logic_vector(19 downto 0); reg_out:out std_logic_vector(19 downto 0)); end reg; architecture behave of reg is begin process(reg_clk) begin if(reg_clkevent and reg_clk=0)then reg_out=reg_in; end if; end process; end behave; 寄存器 2: library ieee; use ieee。std_logic_1164.all; use i

13、eee。std_logic_unsigned。all; entity reg2 is port( reg_clk:in std_logic; reg_in:in std_logic_vector(13 downto 0); reg_out:out std_logic_vector(13 downto 0)); end reg2; architecture behave of reg2 is begin process(reg_clk) begin if(reg_clkevent and reg_clk=0)then reg_out=reg_in; end if; end process; en

14、d behave; 4。3 输出模块 library ieee; use ieee.std_logic_1164。all; entity shuchu is port( data1,data2,data3,data4,data5,data6,data7,data8,data9,data10:in integer range 0 to 9; res: in std_logic; high_or_low:in std_logic; q1,q2,q3,q4,q5,q6,q7,q8: out integer range 0 to 9); 个人收集整理 勿做商业用途 简易等精度频率计设计 10 end

15、shuchu; architecture a of shuchu is begin process (data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,high_or_low) begin if res = 1 then q1=0;q2=0;q3=0;q4=0;q5=0;q6=0;q7=0;q8=0; else if (high_or_low=0)then q1=data8;q2=data7;q3=data6;q4=data5;q5=data4;q6=data3;q7=data2;q 8=data1; else q7=da

16、ta10;q8=data9;q6=0;q5=0;q4=0;q3=0;q1=0;q2=0; end if; end if; end process; end a; 五、引脚配置 个人收集整理 勿做商业用途 简易等精度频率计设计 11 六、系统测试 运行该程序,将起下载到实验箱上,并用信号发生器对其进行测试,得到 如下结果: 理论值输出值绝对误差 1。000HZ1。00HZ0 100HZ100。00HZ0 500KZ500。00KZ0 1KHZ1.00KHZ0 5KHZ4.99KHZ0.01% 10KHZ9.99KHZ0。01 50KHZ49。99KHZ0.01% 100KHZ99.99KHZ0.009998 500KHZ49.99KHZ0.010398% 1MHZ999。89KHZ0。010498 表 6 实际值与测量值之误差表 由上表看出,所测试的误差均0.1,测试频率的范围满足 1Hz1MHz 的要求。所以该设计符合要求.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 工学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号