欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:28495529       资源大小:666KB        全文页数:30页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date等精度频率计相位设计等精度频率计/相位计设计等精度频率计/相位计设计小组成员:江陪:0803741152操彬彬:0803741155一 实验目的:基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,即测量精度随被测信号频率的变化而变化,在实用中有很大的局限性,故本次实验就是为了设计一个等精度频率计,它不仅具有较高的测量精度,且在整个频率区能保持恒定的测量精度。二 设计项目指标:1. 频率测试功能:测频范围0.1HZ100MHZ.测频精度:测频全域相对误差恒为百分之一。2. 脉宽测试功能:测试范围0.1us1s,测试精度0.01us。3. 占空比测试功能:测试(显示)精度1%99%。4. 相位测试功能:测试范围0360°,测试精度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) 测频:首先,进行初始化:单片机发出一个清零信号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程序实现:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity etester isgeneric (n:integer:=500);port(bclk:in std_logic;-tclk:in std_logic;clr:in std_logic;cl:in std_logic;spul: in std_logic;start: out std_logic;eend: out std_logic;sel:in std_logic_vector(1 downto 0);data: out std_logic_vector(15 downto 0);end etester;architecture one of etester is -signal count0:integer range (n-1) downto 0 ; signal count1:integer range (n-1) downto 0 ;signal bzq:std_logic_vector(31 downto 0);signal tsq:std_logic_vector(31 downto 0);signal ena,tclk:std_logic;signal ma,clk1,clk2,clk3:std_logic;signal q1,q2,q3,bena,pul:std_logic;signal ss:std_logic_vector(1 downto 0);beginprocess(bclk)beginif bclk'event and bclk='1' thenif(count1=n) then count1<=0;else count1<=count1+1;end if;if (count1<(integer(n/2) )then tclk<='1'else tclk<='0'end if;end if;end process;start<=ena;data<= bzq(15 downto 0)when sel="00"elsebzq(31 downto 16)when sel="01"elsetsq(15 downto 0)when sel="10"elsetsq(31 downto 16)when sel="11"else"0000010010010000"bzh:process(bclk,clr)beginif clr='1'then bzq<=(others=>'0');elsif bclk'event and bclk='1'thenif bena='1'then bzq<=bzq+1;end if;end if;end process;tf:process(tclk,clr,ena)beginif clr='1'then tsq<=(others=>'0');elsif tclk'event and tclk='1'thenif ena='1' then tsq<=tsq+1;end if;end if;end process;process(tclk,clr)beginif clr='1'then ena<='0'elsif tclk'event and tclk='1' then ena<=cl;end if;end process;ma<=(tclk and cl)or not(tclk or cl);clk1<=not ma;clk2<=ma and q1;clk3<=not clk2;ss<=q2&q3;dd1:process(clk1,clr)beginif clr='1'then q1<='0'elsif clk1'event and clk1='1'then q1<='1'end if;end process;dd2:process(clk2,clr)beginif clr='1'then q2<='0'elsif clk2'event and clk2='1'then q2<='1'end if;end process;dd3:process(clk3,clr)begin if clr='1'then q3<='0'elsif clk3'event and clk3='1'then q3<='1'end if;end process;pul<='1'when ss="10"else'0'eend<='1'when ss="11"else'0'bena<=ena when spul='1'elsepul when spul='0'elsepul;end one;五、 单片机的接口部分: 根据上面原理框图的连接方式,fpga与单片机的接口如下:1、 单片机的GPIOF口的1-16位接fpga的16位数据输出端,负责读取测频数据。2、 单片机可以通过信号start,了解计数是否结束,以确定何时可以读取数据。3、 在测脉宽阶段(spul='0'),EEND的功能与START基本相同,当其由低电平变到高电平时指示脉宽结束。4、 GPIOE的3、4端口与sel1.0相接,用于控制多路通道的数据选择。当sel为“00”,“01”时,由低16位到高16位读出标准频率计数值;当sel为“10”,“11”时,由低16位到高16位读出待测频率计数值。5、 GPIOE的0位接清零信号clr,高定平有效。每一个测频周期开始时,都应该首先清0。6、 GPIOE的1、2位分别接控制信号cl与spul。当spul为1时,cl作为预置门控信号,用于测频计数的时间控制;当spul为0时,cl作为测脉宽控制信号。这时,cl若为1,测tclk的高电平脉宽,当cl为0时,测tclk的低电平脉宽。然后分别从data数据端口读出bzh对标准频率的计数。六、 时序仿真:1. 测频时spul='1',clr='0',cl='1',令bclk=50MHZ, tclk是bclk 100分频的时钟,仿真结果如下:由仿真波形可以看出:当sel=“00”时,data=1010;当sel=“01”时,data=0;当sel=“10”时,data=10;当sel=“11”时,data=0;由此可以知道,bclk与tclk的计数比值为:1010/10=101;这与实际设定的100分频,即100倍基本吻合,正好多了一个+-1误差。所以仿真结果正确。2、 测相时令spul='0',clr='0'1)当cl='1'时,测tclk的高电平脉宽,仿真波形如下:由波形可知:当sel="00"时,data=51,当sel="01"时,data=0;即高电平计数值为51次2) 当cl='0'时,测tclk低电平脉宽,仿真波形如下:由波形可知:当sel="00"时,data=51,当sel="01"时,data=0;即高电平计数值为51次总结:由1),2)仿真结果可知,tclk占空比为51/(51+51)=50%,与仿真所设定的波形相吻合。仿真结果正确。七、 实际测量:bclk由fpga系统时钟50MHZ提供,tclk又信号源提供TTL电平。以测频为例,实测如下:sel="00',测得bclk计数的低16位,即bzh=n1;Sel="01",测得bclk计数的高16位,即bzh=n2;sel="10',测得tclk计数的低16位,即tsq=n3;sel="00',测得bclk计数的低16位,即tsq=n4;测得计数的比值为x=(N1+N2*65536)/(N3+N4*65536),所测频率为f=Fbclk/X;tclk(hz)1001k10k100K1MN14143122255618306278462751N275555N317787817810N400000x500183.0049990.714994.25499.9549.99F(hz)99.9961.00019k10.011k100.01k1.0002M测量误差0.004%0.019%0.11%0.01%0.02%由实测表格中误差可知:从100HZ到1MHZ的测量误差均小于1%,满足题目要求。八、 实验总结:通过本次实验,我们领会了等精度测量的原理及应用,并且通过实测验证了它的准确性。现在,做每一个题目都充满了乐趣与挑战,我们知道,学习的浪潮只会越推越高,只停驻于课本,是远远不够的,翻阅大量的资料书籍,并且结合课本基础知识方是良策。从一开始,我们就知道,学习不是一个人的学习,大的前提不说,小组合作显得尤为重要,而在这一点上,我们做得很好,且不论做出来的成果如何,但至少我们一起在共同进步,学习氛围也极其良好,遇到不懂的相互讨论,然后共同寻找解决的方案,这样下来,我们的心情都很愉悦,学习劲头也很足,我们知道,挑战很大,可是信心十足!大家一起加油吧!-

    注意事项

    本文(等精度频率计相位设计.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开