采用等精度测频原理的数字频率计设计Word文档下载推荐.docx

上传人:b****2 文档编号:3062830 上传时间:2023-05-01 格式:DOCX 页数:16 大小:261.55KB
下载 相关 举报
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第1页
第1页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第2页
第2页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第3页
第3页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第4页
第4页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第5页
第5页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第6页
第6页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第7页
第7页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第8页
第8页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第9页
第9页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第10页
第10页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第11页
第11页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第12页
第12页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第13页
第13页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第14页
第14页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第15页
第15页 / 共16页
采用等精度测频原理的数字频率计设计Word文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

采用等精度测频原理的数字频率计设计Word文档下载推荐.docx

《采用等精度测频原理的数字频率计设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《采用等精度测频原理的数字频率计设计Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

采用等精度测频原理的数字频率计设计Word文档下载推荐.docx

上图中预置门信号通常为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的时钟信号)

useieee.std_logic_unsigned.all;

entitypin1mhz_1is

port(clkin:

clkout:

architecturebehaveofpin1mhz_1is

begin

process(clkin)

Pin1mhz_1

variablecnttemp:

integerrange0to23;

clkinclkout

begin

ifclkin='

1'

andclkin'

eventthen

ifcnttemp=23thencnttemp:

=0;

elsifcnttemp<

12thenclkout<

='

;

elseclkout<

0'

endif;

cnttemp:

=cnttemp+1;

endif;

endprocess;

3、千分频(由1MHZ分频产生1KHZ时钟和1HZ时钟)

entitypin1hz_1is

Pin1hz_1

architecturebehaveofpin1hz_1is

integerrange0to999;

ifcnttemp=999thencnttemp:

500thenclkout<

4、产生各种控制信号(计数允许、计数清零、锁存控制)

entitytestctlis

port(clk:

testen:

outstd_logic;

clr_cnt:

load:

testen

endtestctl;

clkclr_cnt

architecturebehaveoftestctlis

signaldiv2clk:

std_logic;

load

signalclr:

signalloadcnt:

process(clk)istestctl

ifclk'

eventandclk='

then

div2clk<

=notdiv2clk;

process(clk,div2clk)

ifclk='

anddiv2clk='

clr<

elseclr<

load<

testen<

=div2clk;

clr_cnt<

=clr;

5、十进制计数

entitycnt10is

clr:

ena:

cq:

outintegerrange0to15;

clkcq

carry_out:

architecturebehaveofcnt10isclrcarry_out

signalcqi:

integerrange0to15;

beginena

process(clk,clr,ena)

begincnt_10

ifclr='

cqi<

elsifclk'

then

ifena='

ifcqi=9then

=1;

elsecqi<

=cqi+1;

process(cqi)

begin

carry_out<

elsecarry_out<

cq<

=cqi;

6、数据锁存(32位)

din[31..0]

entityreg32bisdout[31..0]

port(load:

din:

instd_logic_vector(31downto0);

dout:

outstd_logic_vector(31downto0));

reg32b

architecturebehaveofreg32bis

process(load,din)

ifload='

andload'

dout<

=din;

7数码显示

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);

architecturebehaveofdiaplayisint0[3..0]lout7[6..0]

signals:

std_logic_vector(2downto0);

signallout4:

std_logic_vector(3downto0);

int7[3..0]sel[2..0]

process(clk)clk

ifclk'

thendisplay

if(s="

111"

)then

s<

="

000"

elses<

=s+1;

sel<

=s;

process(s)

casesis

when"

=>

lout4<

=int7;

001"

=int6;

010"

=int5;

011"

=int4;

100"

=int3;

101"

=int2;

110"

=int1;

=int0;

whenothers=>

null;

endcase;

caselout4is

0000"

lout7<

1111110"

0001"

0110000"

0010"

1101101"

0011"

1111001"

0100"

0110011"

0101"

1011011"

0110"

1011111"

0111"

1110000"

1000"

1111111"

1001"

1110011"

whenothers=>

二、直接测频原理图设计

1、原理图设计原理来源于预习部分图3;

2、将VHDL设计的功能模块转换成可供原理图调用的图元文件

在各模块设计界面迪纳吉File\create/update\createsymbolfileforcurrentfile,生成后缀为.bsf的图元文件后,将各工程中所有的除名为db的文件夹外的文件全部复制到原理图所在的工程文件夹下,然后就可以在元件查找的地方的project根目录下找到创建的元件,从而调用之;

3、连好线,做好相关其他处理后可得到如下的直接测频原理图。

三、等精度测频计的设计

原理图

待测FXlout4[6..0]

频标F1b

s

VCCsel[2..0]

clk

alout7[6..0]

b

sel[2..0]

GNDs

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2