等精度频率计相位设计.doc

等精度频率计相位设计.doc

ID:55170307

大小:539.50 KB

页数:7页

时间:2020-04-30

等精度频率计相位设计.doc_第1页
等精度频率计相位设计.doc_第2页
等精度频率计相位设计.doc_第3页
等精度频率计相位设计.doc_第4页
等精度频率计相位设计.doc_第5页
资源描述:

《等精度频率计相位设计.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、等精度频率计/相位计设计小组成员:江陪:操彬彬:一.实验目的:基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,即测量精度随被测信号频率的变化而变化,在实用中有很大的局限性,故本次实验就是为了设计一个等精度频率计,它不仅具有较高的测量精度,且在整个频率区能保持恒定的测量精度。二.设计项目指标:1.频率测试功能:测频范围0.1HZ~100MHZ.测频精度:测频全域相对误差恒为百分之一。2.脉宽测试功能:测试范围0.1us~1s,测试精度0.01us。3.占空比测试功能:测试(显示)精度1%~99%。4

2、.相位测试功能:测试范围0~360°,测试精度0.2°。三.实验原理:1.主系统设计:1)函数发生器输出TTL波形,通过tclk进入fpga;2)测频测相部分由fpga内部完成;3)单片机电路模块:用stm32单片机的按键控制GPIOE口,控制FPGA测频/测相的切换,GPIOF口读取FPGA的数据。4)键盘模块:用stm32键盘的0、1、2、3、4控制fpga的clr,cl,spul的输入,从而起到切换测频/测相的作用。5)显示模块:用stm32上的液晶显示从fpga读取的数据值。2.主系统测频测相原理:1)测

3、频:首先,进行初始化:单片机发出一个清零信号clr,使两个计数器和D触发器置0,同时D触发器通过信号ena,禁止两个计数器计数。其次,从tclk端接入ttl波形,函数单片机发出允许测频指令,即cl置高,spul置高。读取数据用了一个64-16多路选择器,设置了一个sel端,并用单片机的GPIOE口的3、4端来作控制。2)测相:控制单片机按键,从而改变GPIOE口的0、1、2口的电平值,对fpga进行控制。使spul置'0',切换cl,从而测量tclk的高低电平脉宽。四.VHDL程序实现:libraryieee;u

4、seieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityetesterisgeneric(n:integer:=500);port(bclk:instd_logic;--tclk:instd_logic;clr:instd_logic;cl:instd_logic;spul:instd_logic;start:outstd_logic;eend:outstd_logic;sel:instd_logic_vector(1downto0);data

5、:outstd_logic_vector(15downto0));endetester;architectureoneofetesteris--signalcount0:integerrange(n-1)downto0;signalcount1:integerrange(n-1)downto0;signalbzq:std_logic_vector(31downto0);signaltsq:std_logic_vector(31downto0);signalena,tclk:std_logic;signalma,c

6、lk1,clk2,clk3:std_logic;signalq1,q2,q3,bena,pul:std_logic;signalss:std_logic_vector(1downto0);beginprocess(bclk)beginifbclk'eventandbclk='1'thenif(count1=n)thencount1<=0;elsecount1<=count1+1;endif;if(count1<(integer(n/2)))thentclk<='1';elsetclk<='0';endif;end

7、if;endprocess;start<=ena;data<=bzq(15downto0)whensel="00"elsebzq(31downto16)whensel="01"elsetsq(15downto0)whensel="10"elsetsq(31downto16)whensel="11"else"10000";bzh:process(bclk,clr)beginifclr='1'thenbzq<=(others=>'0');elsifbclk'eventandbclk='1'thenifbena='1'

8、thenbzq<=bzq+1;endif;endif;endprocess;tf:process(tclk,clr,ena)beginifclr='1'thentsq<=(others=>'0');elsiftclk'eventandtclk='1'thenifena='1'thentsq<=tsq+1;endif;endif;endprocess;process(tcl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。