等精度频率测量技能.docx
《等精度频率测量技能.docx》由会员分享,可在线阅读,更多相关《等精度频率测量技能.docx(12页珍藏版)》请在冰豆网上搜索。
等精度频率测量技能
数字系统设计实践
设计报告
实验名称等精度频率测量技术
班级通信112
学生姓名周焕强
学号116040268
指导教师应祥岳
完成日期2013-05-08
摘要
频率计的主要功能是准确测量出待测频率的频率、周期、脉宽及占空比。
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
频率测量一般有三种方式:
一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数,该方案将随被测信号频率的下降而下降;二是周期测频法,即是通过测量被测信号一个周期时间计时信号的脉冲个数,然后换算得出被测信号的频率,但该方法在被测信号的周期较短时,其精度大大下降;方法三是等精度测频,可以将误差降到很低。
本实验将应用等精度测频技术,利用FPGA技术设计一个测频计,将测得频率用十进制显示在数码管上。
关键词:
频率、周期、十进制显示、等精度
4.1理论分析2
4.2理论计算3
一、设计任务
设计一个简易等精度频率计。
二、设计要求
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.1理论分析
1.工作原理:
采用频率准确的高频信号作为标准频率信号,保证测量的闸门时间为被测时间的整数倍,并在闸门时间内同时对标准信号脉冲和被测信号脉冲进行计数,实现整个频率测量范围内的测量精度相等,当标准信号频率很高,闸门时间也足够长时,就可实现高精度的频率测量。
简单来说,即为:
测量一定闸门时间内标准信号与被测信号的脉冲个数,分别记为Nc和Nx,则被测信号频率为:
Fx=Nx*fc/Nc。
2.波形图
4.2理论计算
1、被测频率:
2、测量误差:
考虑最大误差为1,则
由实验要求测试误差≤0.1%(全量程)则可知≥=1000,由于阈值闸门时间为1s,所以时钟发生器频率fo≥1000Hz,为使测量误差尽量小实验中取fo=10KHz,实验中待测信号和时钟信号分别采用实验箱中CLK1时钟。
五、电路与程序设计
5.1电路的设计
5.1.1等精度频率计顶层图形设计
5.1.2系统电路原理图
(1)输入模块
(2)同步计数模块
(3)运算模块
(4)进制转化输出模块
(5)总电路图
5.2程序的设计
5.2.1分频器模块的vhdl设计
libraryieee;
useieee.std_logic_1164.all;
entityzhamenis
port(clr,cp:
instd_logic;
p:
outstd_logic);
endzhamen;
architectureaofzhamenis
signalcount:
integerrange0to10000;
signaltemp:
std_logic;
begin
process(clr,cp)
begin
ifclr='1'then
count<=0;temp<='0';
elsifcp'eventandcp='1'then
ifcount<10000then
count<=count+1;
else
count<=0;
temp<=nottemp;
endif;
endif;
endprocess;
p<=temp;
enda;
5.2.2同步电路模块的vhdl设计
libraryieee;
useieee.std_logic_1164.all;
entitydflipflopis
port(cp,d:
instd_logic;
f:
outstd_logic);
end;
architectureaofdflipflopis
begin
process(cp,d)
begin
ifcp'eventandcp='1'then
f<=d;
endif;
endprocess;
enda;
5.2.3进制转化模块的设计
5.2.4输出控制模块的VHDL设计
libraryieee;
useieee.std_logic_1164.all;
entityoutputis
port(a1,a2,a3,b1,b2,b3,b4,b5,b6,b7:
inintegerrange0to9;
clr,yiwei:
instd_logic;
q1,q2,q3,q4,q5,q6,q7:
outintegerrange0to9);
end;
architectureaofoutputis
begin
process(a1,a2,a3,b1,b2,b3,b4,b5,b6,b7,clr,yiwei)
begin
ifclr='1'then
q1<=0;q2<=0;q3<=0;q4<=0;q5<=0;q6<=0;q7<=0;
else
ifyiwei='0'then
q1<=b1;q2<=b2;q3<=b3;q4<=b4;q5<=b5;q6<=b6;q7<=b7;
else
q1<=a1;q2<=a2;q3<=a3;q4<=0;q5<=0;q6<=0;q7<=0;
endif;
endif;
endprocess;
enda;
六、测试方案与测试结果
6.1测试方案
6.1.1软件测试
在quartus7.1环境下,对电路进行仿真和测试。
6.1.2硬件测试
a.将程序下载到EDA实验箱进行测试,观察与理论结果是否一致。
b.引脚分配
输入:
clr:
清零
fc:
clk1
Fx:
实验箱自带的波形输入
yiwei:
用于控制输出整数还是小数
输出:
fx1[3..0],fx2[3..0],…fx7[3..0]:
数码管1、2、3、4、5、6、7,以十进制的形式显示测得的频率。
6.2测试结果及分析
6.2.1测试结果
下载到实验箱后,各按键功能正常,输入输出都没有问题,数码管能对应的显示十进制数。
频率测试数据记录表
理论值
输出值
相对误差
50HZ
50.010HZ
0.02%
100HZ
100.020HZ
0.02%
500KZ
500.150KZ
0.03%
1KHZ
1000.300HZ
0.03%
5KHZ
5000.999HZ
0.02%
10KHZ
10001.999HZ
0.02%
50KHZ
50011.998HZ
0.024%
100KHZ
100024.997HZ
0.02%
500KHZ
500125.987HZ
0.025%
6.2.2测试分析与结论
由实验数据可知,数码管显示的频率与实际频率相比,误差都小于%0.1,符合设计要求。
通过本次实验,掌握了等精度频率计的设计方法,认识到了这种频率测试方法的优越性。
实验中碰到的各种问题也都一一解决,培养了自学能力。