采用等精度测频原理的数字频率计设计.docx
- 文档编号:12278940
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:16
- 大小:261.55KB
采用等精度测频原理的数字频率计设计.docx
《采用等精度测频原理的数字频率计设计.docx》由会员分享,可在线阅读,更多相关《采用等精度测频原理的数字频率计设计.docx(16页珍藏版)》请在冰豆网上搜索。
采用等精度测频原理的数字频率计设计
采用等精度测频原理的数字频率计设计
一、实验目的
1.了解等精度测频的方法和原理。
2.掌握如何在FPGA内部设计多种功能模块。
3.掌握VHDL在测量模块设计方面的技巧。
二、硬件要求
1.主芯片FPGAEP1K10TC100—3。
2.时钟源。
3.拨码开关。
4.数码管。
三、预备知识
1.等精度测量频率的原理。
2.硬件描述语言。
四、实验原理
频率是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T(也称闸门时间)内测得这个周期性信号的重复变化次数为N,则其频率可表示为f=N/T。
由该表示式可以看到,若时间间隔T取1s,则f=N。
由于闸门的起始和结束的时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。
进一步分析测量准确度:
设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量准确度为δ=Tx/T=1/Fx。
由此可知这种直接测频法的测量准确度与被测信号的频率有关,当待测信号频率较高时,测量准确度也较高,反之测量准确度较低。
因此,这种直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。
若要得到在整个测量频段内的测量精度保持不变的要求,应该考虑待精度频率测量等其它方法。
等精度频率测频的实现框图如下。
图1等精度测频实现框图
所谓等精度是指该频率计在所测量的整个频段内部,均可实现相同精度的测量,即测量精度与频率无关。
上图中预置门信号通常为1s。
其内部包括一个同步门电路,用来实现被测频标与被测频率的同步,提高测量精度,减少基本误差。
该部分与清零脉冲协调工作用来控制两个计数器的启动脉冲。
计数器1和计数器2分别用来给频标和被测数字脉冲计数,设在同步门控制结束时计数器1计数N1,计数器2计数N2,假设频标频率为F1,被测频率位Fx,则可写出公式:
Fx/N2=F1/N1;…………………
(1)
Fx=(F1/N1)*N2……………
(2)
由上两式可以得出如下结论:
1.相对测量误差与频率无关;
2.提高频标频率,可以增大N1,减少测量误差,提高测量精度;
3.选用高稳定度的晶振,可提高测量精度;
4.等精度测频方法测量精度与预置门宽度无关,与被测信号无关。
在该电路中,为了确保频标计数与被测频率完全同步(即被测频率的上升沿开始计数,1s以后,被测频率的下跳沿停止计数),同步门必须由被测信号来控制。
测频时,闸门时间固定为1s,闸门信号是一个0.5Hz的方波,在闸门有效(高电平)期间,对输入的脉冲进行计数,在闸门信号的下降沿时刻,锁存当前的计数值,并且清零所有的频率计数器。
由于闸门时间是1s(0.5Hz方波),所以显示的频率是1s钟更新一次,且显示的内容是闸门下降沿时锁存的值。
由于闸门时间设定为1s,因此这种频率计仅能测出频率大于或者等于1Hz的情况,且频率越高,精度也越高。
实际应用中,频率计的闸门时间是个可变量,当待测频率小于1Hz时,闸门时间就要适当放大。
在设计频率计的时候,八个七段码管最多可以显示99,999,999Hz,因此在设计时用八个4位二进制码(BCD码)来表示,另外还必须有同样的八个4位二进制码来对输入的频率进行计数,在闸门下降沿的时候,将后者的值锁存到寄存器中。
其信号的时序关系如下图2所示:
图2控制信号时序关系
五、实验内容
本实验要完成的任务就是设计一个等精度频率计,需采用直接测频法对待测信号和频标分别进行频率测量,然后依照公式
(2)进行计算处理。
采用直接测频法进行频率测量时,闸门时间为1s(通过对系统时钟进行分频得到),在闸门为高电平期间,对输入的频率进行计数,当闸门变低的时候,记录当前的频率值,并将频率计数器清零,频率的显示每过2秒刷新一次。
被测频率通过一个拨动开关来选择是使用系统中的数字时钟源模块的时钟信号还是从外部输入数字信号进行频率测量。
当拨动开关为高电平时,测量从外部输入的数字信号,否则测量系统数字时钟信号模块的数字信号。
直接测频的实现框图如下:
图3直接测频实现框图
其中,系统时钟为24MHZ。
一、调试后程序代码
1、二选一开关
libraryieee;
useieee.std_logic_1164.all;
entitysel2is
port(a,b,s:
instd_logic;
c:
outstd_logic);
Sel2
endentity;a
architecturebehaveofsel2isbc
begins
c<=(aands)or(band(nots));
endbehave;
2、系统时钟的24分频(产生1MHZ的时钟信号)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitypin1mhz_1is
port(clkin:
instd_logic;
clkout:
outstd_logic);
endentity;
architecturebehaveofpin1mhz_1is
begin
process(clkin)
Pin1mhz_1
variablecnttemp:
integerrange0to23;clkinclkout
begin
ifclkin='1'andclkin'eventthen
ifcnttemp=23thencnttemp:
=0;
elsifcnttemp<12thenclkout<='1';
elseclkout<='0';
endif;
cnttemp:
=cnttemp+1;
endif;
endprocess;
endbehave;
3、千分频(由1MHZ分频产生1KHZ时钟和1HZ时钟)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitypin1hz_1is
Pin1hz_1
port(clkin:
instd_logic;
clkout:
outstd_logic);clkinclkout
endentity;
architecturebehaveofpin1hz_1is
begin
process(clkin)
variablecnttemp:
integerrange0to999;
begin
ifclkin='1'andclkin'eventthen
ifcnttemp=999thencnttemp:
=0;
elsifcnttemp<500thenclkout<='1';
elseclkout<='0';
endif;
cnttemp:
=cnttemp+1;
endif;
endprocess;
endbehave;
4、产生各种控制信号(计数允许、计数清零、锁存控制)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitytestctlis
port(clk:
instd_logic;
testen:
outstd_logic;
clr_cnt:
outstd_logic;
load:
outstd_logic);testen
endtestctl;clkclr_cnt
architecturebehaveoftestctlis
signaldiv2clk:
std_logic;load
signalclr:
std_logic;
signalloadcnt:
std_logic;
begin
process(clk)istestctl
begin
ifclk'eventandclk='1'then
div2clk<=notdiv2clk;
endif;
endprocess;
process(clk,div2clk)
begin
ifclk='0'anddiv2clk='0'then
clr<='1';
elseclr<='0';
endif;
endprocess;
load<=notdiv2clk;
testen<=div2clk;
clr_cnt<=clr;
endbehave;
5、十进制计数
libraryieee;
useieee.std_logic_1164.all;
entitycnt10is
port(clk:
instd_logic;
clr:
instd_logic;
ena:
instd_logic;
cq:
outintegerrange0to15;clkcq
carry_out:
outstd_logic);
endentity;
architecturebehaveofcnt10isclrcarry_out
signalcqi:
integerrange0to15;
beginena
process(clk,clr,ena)
begincnt_10
ifclr='1'then
cqi<=0;
elsifclk'eventandclk='1'then
ifena='1'then
ifcqi=9then
cqi<=1;
elsecqi<=cqi+1;
endif;
endif;
endif;
endprocess;
process(cqi)
begin
ifcqi=9then
carry_out<='1';
elsecarry_out<='0';
endif;
endprocess;
cq<=cqi;
endbehave;
6、数据锁存(32位)
libraryieee;din[31..0]
useieee.std_logic_1164.all;
entityreg32bisdout[31..0]
port(load:
instd_logic;load
din:
instd_logic_vector(31downto0);
dout:
outstd_logic_vector(31downto0));
endentity;reg32b
architecturebehaveofreg32bis
begin
process(load,din)
begin
ifload='1'andload'eventthen
dout<=din;
endif;
endprocess;
endbehave;
7数码显示
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitydiaplayis
port(int0,int1,int2,int3,int4,int5,int6,int7:
instd_logic_vector(3downto0);
lout7:
outstd_logic_vector(6downto0);
sel:
outstd_logic_vector(2downto0);
clk:
instd_logic);
endentity;
architecturebehaveofdiaplayisint0[3..0]lout7[6..0]
signals:
std_logic_vector(2downto0);…
signallout4:
std_logic_vector(3downto0);int7[3..0]sel[2..0]
begin
process(clk)clk
begin
ifclk'eventandclk='1'thendisplay
if(s="111")then
s<="000";
elses<=s+1;
endif;
endif;
sel<=s;
endprocess;
process(s)
begin
casesis
when"000"=>lout4<=int7;
when"001"=>lout4<=int6;
when"010"=>lout4<=int5;
when"011"=>lout4<=int4;
when"100"=>lout4<=int3;
when"101"=>lout4<=int2;
when"110"=>lout4<=int1;
when"111"=>lout4<=int0;
whenothers=>null;
endcase;
caselout4is
when"0000"=>lout7<="1111110";
when"0001"=>lout7<="0110000";
when"0010"=>lout7<="1101101";
when"0011"=>lout7<="1111001";
when"0100"=>lout7<="0110011";
when"0101"=>lout7<="1011011";
when"0110"=>lout7<="1011111";
when"0111"=>lout7<="1110000";
when"1000"=>lout7<="1111111";
when"1001"=>lout7<="1110011";
whenothers=>null;
endcase;
endprocess;
endbehave;
二、直接测频原理图设计
1、原理图设计原理来源于预习部分图3;
2、将VHDL设计的功能模块转换成可供原理图调用的图元文件
在各模块设计界面迪纳吉File\create/update\createsymbolfileforcurrentfile,生成后缀为.bsf的图元文件后,将各工程中所有的除名为db的文件夹外的文件全部复制到原理图所在的工程文件夹下,然后就可以在元件查找的地方的project根目录下找到创建的元件,从而调用之;
3、连好线,做好相关其他处理后可得到如下的直接测频原理图。
三、等精度测频计的设计
原理图
a
待测FXlout4[6..0]
频标F1b
s
VCCsel[2..0]
clk
clk
alout7[6..0]
b
sel[2..0]
GNDs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 采用 精度 原理 数字频率计 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)