网站大量收购独家精品文档,联系QQ:2885784924

等精度频率测量技巧.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字系统设计实践 设计报告 实验名称 等精度频率测量技术 班 级 通信112 学生姓名 周焕强 学 号 116040268 指导教师 应祥岳 完成日期 2013-05-08 摘要 频率计的主要功能是准确测量出待测频率的频率、周期、脉宽及占空比。在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。有种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是周期测频法 关键词:频率、周期、十进制显示、等精度 目录 一、设计任务 1 二、设计要求 1 三、系统方案 1 3.1 分频器模块 1 3.2 同步电路模块 1 3.3 门控闸门计数模块 1 3.4 运算模块 1 3.5 进制转化模块 1 3.6 输出控制模块 2 四、系统理论分析与计算 2 4.1 理论分析 2 4.2 理论计算 3 五、电路与程序设计 3 5.1电路的设计 3 5.1.1频率计顶层图形设计 3 5.1.2系统电路原理图 4 5.2程序的设计 5 5.2.1分频器模块的vhdl设计 6 5.2.2同步电路模块的vhdl设计 7 5.2.3进制转化模块的设计 7 5.2.4输出控制模块的VHDL设计 9 六、测试方案与测试结果 10 6.1测试方案 10 6.1.1软件测试 10 6.1.2硬件测试 10 6.2测试结果与分析 11 6.2.1.测试结果 11 6.2.2.测试分析与结论 12 设计任务 设计一个简易等精度频率计。 设计要求 A、测量范围 信号:方波 幅度: TTL电平; 频率:1Hz~1MHz B、测试误差≤0.1%(全量程) C、闸门时间:~1s, 响应时间:~2s 乘除运算: FPGA 计算:时钟频率 显示:十进制(七个数码管显示,小数部分和整数部分按键切换) 三、系统方案 3.1分频器模块 由系统时钟CLK1作为时钟脉冲,仿照单片机的延时电路和计数器,Tc=1/10000s,跳10K下控制输出翻转一下,从而产生脉宽为1s的门控信号。 3.2 同步电路模块 利用一个D触发器产生同步的闸门脉冲信号 3.3 门控闸门计数模块 利用计数器分别求出在1s的门控信号内被测信号fx与系统时钟fc所经过的个数Nx和Nc,等将数据存入寄存器后,再送到运算模块里。 3.4 运算模块 Fx=Nx*fc/Nc,先将Nc*10K,然后放大1000倍,将小数部分升为整数部分,保证计算的精度。 3.5 进制转化模块 用10个除法器对输出频率进行转码,f经过一个除法器之后,余数作为10进制数M的第一位,商输入第二个除法器,依次类推,总共用到10个除法器。 3.6 输出控制模块 通过一个使能端,控制输出整数还是小数,显示在数码管上。 四、系统理论分析与计算 波形图 4.2 理论计算 被测频率: 测量误差:考虑最大误差为1,则 由实验要求测试误差≤0.1%(全量程)则可知≥=1000,由于阈值闸门时间为1s,所以时钟发生器频率fo≥1000Hz,为使测量误差尽量小实验中取fo=10KHz,实验中待测信号和时钟信号分别采用实验箱中CLK1时钟。 五、电路与程序设计 5.1.2系统电路原理图 (1)输入模块 (2)同步计数模块 (3)运算模块 (4)进制转化输出模块 (5)总电路图 5.2 程序的设计 5.2.1分频器模块的vhdl设计 library ieee; use ieee.std_logic_1164.all; entity zhamen is port(clr,cp:in std_logic; p:out std_logic); end zhamen; architecture a of zhamen is signal count:integer range 0 to 10000; signal temp:std_logic; begin process(clr,cp) begin if clr=1then count=0;temp=0; elsif cpevent and cp=1then if

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档