资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
光电与通信工程学院课程设计报告书课 设 名 称: 等精度频率计 年级专业及班级: 姓 名: 学 号: 一、课程设计目的 1、进一步熟悉 Quartus 的软件使用方法,熟悉 keil 软件使用; 2、 熟悉单片机与可编程逻辑器件的开发流程及硬件测试方法; 3、掌握等精度频率计设计的基本原理。 4、掌握独立系统设计及调试方法,提高系统设计能力。 实验设备 EDA最小系统板一块(康芯) 、PC机一台、示波器一台、信号发生器一台、万用表一个。 二、设计任务 利用单片机与FPGA设计一款等精度频率计, 待测脉冲的检测及计数部分由FPGA实现,FPGA的计数结果送由单片机进行计算,并将最终频率结果显示在数码管上。要求该频率计具有较高的测量精度,且在整个频率区域能保持恒定的测试精度,具体指标如下: a)具有频率测试功能:测频范围 100Hz5MHz。测频精度:相对误差恒为基准频率的万分之一。 b)具有脉宽测试功能:测试范围 10s1s,测试精度:0.1s。 c)具有占空比测试功能:测试精度1%99%。 d)具有相位测试功能。 (注:任务a 为基本要求,任务 b、c、d 为提高要求) 三、基本原理 基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低, 在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个频率区域能保持恒定的测试精度。 3.1 等精度测频原理 等精度频率计主控结构如图 1 所示 预置门控信号 CL 选择为 0.11s 之间(通过测试实验得出结论:CL 在这个范围内选择时间宽度对测频精度几乎没有影响) 。BZH 和 TF 分别是 2 个高速计数器,BZH 对标准频率信号(频率为 Fs)进行计数,设计数结果为 Ns;TF 对被测信号(频率为Fx)进行计数,计数结果为 Nx,则有 MUX64-8 模块并不是必须的,可根据实际设计进行取舍。分析测频计测控时序,着重分析 START的作用,完成等精度频率计设计。 3.2 FPGA 模块 FPGA模块所要完成的功能如图 1 所示,由于单片机的速度慢,不能直接测量高频信号,所以使用高速 FPGA 为测频核心。100MHZ 的标准频率信号由FPGA 内部的 PLL 倍频实现,待测信号 TCLK 为方波,由信号发生器给出待测方波信号(注意:该方波信号带有直流偏置,没有负电压,幅值3.3V) 。预制门控信号 CL 由单片机发出,BRNA 和 ENA 分别是 BZH 与 TF 两个计数器的计数允许信号端。FPGA 将允许计数时间内的 BZH、TF 的运行结果送入单片机进行最后的计算。 顶层文件如下:2以下是把20M 5倍频的设置,利用FPGA内部的PLL。电路需要100M标准频率信号,FPGA提供20M的频率,所以需要建立PLL模块,使之五杯频,得到所需的100M信号。 功能仿真设置:下图是波形仿真的结果:3.3 单片机模块单片机模块完成对整个测频系统的控制,包括对FPGA的控制以及数码管的显示控制。测频允许信号由单片机发出,并且单片机的P0 口负责循环读取FPGA发送过来的测频结果数据(BZH、TF两个计数器的计数结果,每次传送8位数据),P2负责发送控制信号,单片机可以通过结束信号了解测频记数是否结束,以确定何时开始读取数据。附上康芯原理图截图:四、实验现象占空比五、心得体会这周课程设计的题目是等精度频率计的设计,由于书本上有一段程序,所以一开始只是将书上的程序和显示波形研究了一下。当到课程设计的时候,将书上程序敲入并实现效果后有点茫然的感觉。于是,我又仔仔细细地分析了一遍设计原理,从新改变了输入的代码,加上自己的思路,并能自己添加预置控制信息CL模块。原本我还想将测试频率显示在数码管上,但是最终没能实现,这应该是我的一个遗憾吧。设计中,我感受到了硬件描述语言的强大,我可以几乎不用考虑硬件条件,将代码导入就可实现功能。不要总想着去依靠书本上的原题或者是他人,自己思考的做出来的,才算是自己真正收获的。本次实验最大的收获莫过于,独立系统的去完成一项任务。在其中我查阅了大量的资料,尤其是数字电路、quarters软件使用说明、EDA设计等方面的资料。通过本次学习使我对时序电路有了更深的理解,具体体现在复位、计数、锁存多环节的控制上。同时,在这次实验中,我第一次联合单片机和EDA一起完成一个项目。EDA充分的发挥其高频工作的特点,使得频率测量的上限很高。单片机则在整个系统中充当控制及数据处理的作用设计的优点及缺点本频率计最大优点在于它的高精度。信号频率的测量,不受闸门信号精度的影响。在被测信号送入计数器之前,先通过D触发器,使闸门信号和被测信号同步,有效地避免了1误差。不仅如此,本频率计对100HZ至5MHZ的全域相对误差均小于百万之一。当然,本频率计也存在缺点。在频率计的设计中,乘法器为32位,除法器采用64位,资源占用率太大。单片机处理32位数据的方式有待改进,要是它变得更优化 六、系统设计步骤及程序,结果 FPGA:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY EQUALFRECOUNT ISPORT(BCLK,TCLK:IN STD_LOGIC;DATA_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);EN:IN STD_LOGIC;ADDRESS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);END EQUALFRECOUNT;ARCHITECTURE ARCH OF EQUALFRECOUNT ISSIGNAL EN2,WIDE_TEST:STD_LOGIC;SIGNAL WIDE_COUNT,B_COUNT,T_COUNT:STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL SAVE_WIDE,SAVE_B,SAVE_T:STD_LOGIC_VECTOR(31 DOWNTO 0);BEGINPROCESS(EN,TCLK)BEGINIF RISING_EDGE(TCLK) THENEN2=EN;ELSE NULL;END IF;END PROCESS;PROCESS(EN2,TCLK,BCLK)BEGINIF EN2=1 THENIF RISING_EDGE(TCLK) THENIF T_COUNT=XFFFF_FFFF THENT_COUNT1);ELSE T_COUNT=T_COUNT+1;SAVE_T=T_COUNT+1;-SAVE T_COUNTEND IF;ELSE NULL;END IF;IF FALLING_EDGE(TCLK) THENIF WIDE_TEST=0 THENWIDE_COUNT=B_COUNT;WIDE_TEST=1;ELSE SAVE_WIDE=WIDE_COUNT;-SAVE WIDE_COUNTEND IF;END IF;IF RISING_EDGE(BCLK) THENIF B_COUNT=XFFFF_FFFF THENB_COUNT1);ELSE B_COUNT=B_COUNT+1;SAVE_B=B_COUNT+1;-SAVE B_COUNT IN SAVE_BEND IF;ELSE NULL;END IF;ELSE-WHEN ENA=0,WE OUTPUT THE DATA AND RESET THE COUNTER.WIDE_COUNT0);B_COUNT0);T_COUNT0);WIDE_TESTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTDATA_OUTNULL;END CASE;ELSE NULL;END IF;ELSE NULL;END IF;END PROCESS;END ARCH;单片机:/* *.c文件,文件名:EqualFre_main.c *各模块的流程控制*/#include EqualFre_main.hint main(void)communicationInit_Ex();while(1)mode = getMode_Ex(); /确定选择的模式askForData_Ex(); /请求数据if(HOLD_DATA_MODE != mode) /表示没有固定数据时,则载入数据loadData();disData(); /数据显示/数据载入static
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号