等精度频率的测量设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
等精度频率的测量设计报告
报告人:朱伯程(074100138)周哲远(074100137)
报告摘要:本文介绍了一种同步测周期计数器的设计,并基于该计数器设计了一个高精度的数字频率计。文中给出了计数器的VHDL编码,并对频率计的FPGA实现进行了
仿真验证,给出了测试结果。同时在分析了等精度测频在实现时存在的问题的基
础上,介绍了一种基于自适应分频法的频率测量技术,可达到简化测量电路、提高
系统可靠性、实现高精度和宽范围测量的目的
关键词:频率计VHDL FPGA 周期测量等精度自适应分频
一、实验原理
1.频率测量的几种方法:
工程上测量频率和周期的方法一般可以分为无源测频法、有源比较法、电子计数器3种。无源测频法又可分为谐振法和电桥法,常用于频率粗测,精度在1%左右。有源比较法可分为拍频法和差频法,前者是利用信号线性叠加,产生拍频现象,通过检测零差后现象测频,常用于低频测量,误差在零点几赫;后者是利用两个信号非线性叠加,产生差频现象,通过检测零差现象测频,常用于高频测量,误差为士20Hz左右。可见,以上在测量范围和精度上都难以达到要求。
电子计数器的测频原理实质上以比较法为基础,它将被测信号频率人与时基信号频率相比,两个频率相比得到的结果以数字的形式显示出来。同时,它在测量范围和精度上都能达到要求。
2.等精度测频基本原理
等精度频率测量技术又叫做多周期同步测量技术,它主要由被测信号计数器、参考信号计数器、同步闸门控制器、采样时间控制器以及运算单元等组成,工作原理下图所示。
波形图解:
根据设计任务的要求,因此我们选择用等精度测量法进行系统设计。
二、实验任务与要求
(一)任务设计一个简易等精度频率计。
(二)要求
a.测量范围信号:方波幅度:TTL电平;
频率:1Hz~1MHzb.测试误差≤0.1%(全量程)
* 闸门时间:~1s,响应时间:~2s乘除运算:
单片机、FPGA、计算器计算
三、系统总体方案设计
根据测频过程的思路,可编写相应的软件。测频程序流程图下图所示:
根据流程图与要求,本实验的需要注意的地方:
1.计数器的位数。由于要测量的频率范围为1Hz~1MHz。所以可以设置计数器位数为20位。对于基准信号的频率,选用1MHz的标准脉冲信号。
2.分频器。首先要进行2分频。(供粗测使用)。再进行任意分频,供精测使用。
3.锁码器。为的是稳定计数器的最后数据。
4.在第一次计数完成之后,要能自动对计数器进行清零。
四、系统子模块实现及仿真结果
1、首先进行分频.这里要用到自己定制的分频器
它的VHDL代码如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY fsd IS
PORT
(clock: IN STD_LOGIC;
fsd_num:in std_logic_vector(19 downto 0);--输入要分频的数字,比如要8分频,只要输入相应的二进制就可以了。
div_out:out std_logic);
END fsd;
ARCHITECTURE bhv OF fsd IS
BEGIN
PROCESS(clock)
VARIABLE cout:INTEGER:=0;
variable fsd_num_dec,half_fsd_num_dec:integer;
BEGIN
fsd_num_dec:=conv_integer(fsd_num);
half_fsd_num_dec:=fsd_num_dec/2;
IF clock'EVENT AND clock='1' THEN
cout:=cout+1;
IF cout ELSIF cout ELSE cout:=0; END IF; END IF; END PROCESS; end bhv; 2、接着进入同步计数阶段.包括使计数器在一个周期计完后的清零。(计数器用的是异 步清零端。下图中的下方的与门非门等组成的逻辑电路部分是清零控制部分) 3.锁码部分. 这里的my_latch模块是起锁码作用,这样就能使输出的数据能够稳定。最后的exch22to20模块是把输出的23位数据转换为20位数据输出。(由于宏模块的关系,输出的23的数据中只有20位是有用的) 4 计算部分,这部分的功能要把结果显示成十进制,并能进行分段表示.这部分的原理比 较简单,但是用到的元件却比较多,如下: 5.整体布局 五、系统测试 用TTL电平作为输入信号,并用1MHz的脉冲作为基准频率信号。系统测试结果如下: 从实验数据上来看,测试的结果实现了频率范围在1Hz~1MHz的测量,并且测试误差≤0.1%(全量程)。因此从这个角度来看这次设计的系统能够满足实验要求。 六、实验总结 本文设计的同步测周期计数器能够直接对被测信号进行连续的测周期计数,可以在许多频率测量的设计中取代门控计数器,使设计更加灵活。文中采用两个同步测周期计数器设计的数字频率计,无需选择量程便可实现宽频段高精度的频率测量,并在FPGA中实现了系统 集成。同时根据频率的不同能自动适应并测量。并且能通过数据选择器进行分段显示数据。 本文设计的系统达到任务的要求,基本上完成了目标。但是要完整的完成实用系统的应用,还要在一些细节上加强修改,还要精简设计。比如元件的数量,尤其在计数部分,用的器件数远远大于前面的模块。(这样要进行功能扩展的话会带来一些困难,比如Quartus会提示元件不够)。而这归根到底是因为这里所用的器件都是通过宏模块产生的,而不是自己定制的,因此这些元件的一些功能会用不上而造成浪费。 参考文献: [1]钟波,孟晓风。一种基于自适应分频的频率测量方法及其实现。北京航空航天大学仪器 科学与光电工程学院,北京100083 [2]李红刚,张素萍,杨林楠。基于FPGA的高速等精度频率测量系统设计 [3]梁海文.用单片机实现双计数器多周期同步法频率测量[J〕现代电子技术,2007,30(7):137 一139. [4]刘晓明,刘宗行,郭坷.一种全数字新型高精度频率测量方法〔J〕.电子测量技术,1997(33). [5]王毓银。数字电路逻辑设计(第二版)。高等教育出版社。2008年2月