基于FPGA的数字频率计实验报告能测占空比.doc
《基于FPGA的数字频率计实验报告能测占空比.doc》由会员分享,可在线阅读,更多相关《基于FPGA的数字频率计实验报告能测占空比.doc(20页珍藏版)》请在沃文网上搜索。
1、 目录一、课程设计目的3二、设计任务3三、功能要求与技术指标3四、数字频率计工作原理概述4五数字频率计实现方法4六结论与误差分析11七VHDL程序:12一、课程设计目的熟悉EDA工具,掌握用VHDL语言进行数字系统设计的基本方法和流程,提高工程实践能力。二、设计任务设计一数字频率计,用VHDL语言描述,用QuartusII工具编译和综合,并在实验板上实现。三、功能要求与技术指标1. 基本功能要求(1) 能够测量出方波的频率,其范围50Hz50KHz。(2) 要求测量的频率绝对误差5Hz。(3) 将测量出的频率以十进制格式在实验板上的4个数码管上显示。(4) 测量响应时间小于等于10秒。以上(1
2、)(4)基本功能要求均需实现。2. 发挥部分(1) 提高测量频率范围,如10Hz100KHz或更高、更低频率,提高频率的测量绝对值误差,如达到1Hz。(2) 可以设置量程分档显示,如X1档(显示范围1Hz9999Hz),X10档(显示范围0.001KHz9.999KHz),X100档(显示范围0.100KHz999.9KHz).可以自定义各档位的范围。量程选择可以通过按键选择,也可以通过程序自动选择量程。(3) 若是方波能够测量方波的占空比,并通过数码管显示。以上(1)(3)发挥功能可选择实现其中的若干项。四、数字频率计工作原理概述1. 数字频率计简介在电子技术中,频率是最基本的参数之一,并且
3、与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。而数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。2. 常用频率测量方法:方案一采用周期法。通过测量待测信号的周期并求其倒数,需要有标准倍的频率,在待测信号的一个周期内,记录标准频率的周期数,这种方法的计数值会产生最大为1个脉冲误差,并且测试精度与计数器中记录的数值有关,为了保证测试精度,测周期法仅适用于低频信号的测量。方案二采用直接测频法。直接测频法就是在确定的闸门时间内,记录被测信号的脉冲个数。由于闸门时间通常不是待测信号的整数倍,这种方法的计数值也会产生最大为1个脉冲误差。进一步分析测量准确
4、度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量相对误差为Tx/T=Tx=1/Fx。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。五数字频率计实现方法本文采用方案二直接测频法进行设计,具体实施方法如下:1. 直接测频法:采用一个标准的基准时钟,在单位闸门时间(1s)里对被测信号的脉冲数进行计数,即为信号的频率。由于闸门时间通常不是待测信号的整数倍,这种方法的计数值也会产生最大为1个脉冲误差。进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量相对误差为Tx/T=Tx=1/F
5、x。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。2. 具体设计流程:1). 基本功能部分:(1). 原理概述:利用FPGA实验板的基准时钟50M分频产生一个1Hz的脉冲方波作为闸门信号;当待测信号的上升沿到来时,利用四个个十进制计数器(即最高能记到9999次数)对其上升沿进行计数;计数的同时不断把数锁存,并送到数码管显示部分显示;当1Hz闸门信号的上升沿到来时,对锁存送到显示部分的数据用十进制显示到四位数码管,一旦显示后就把四个计数器的值清零,计数器重新对待测信号上升沿计数并锁存,直到1Hz闸门信号的下个上升沿到来时在把这次闸门
6、时间内记到的数据送去数码管显示。 如此循环,实现对不是固定频率的待测信号的频率每秒更新 一次的功能。(2)设计原理时序图: 1Hz闸门信号然后计数器清零clr=1,重新计数锁存计数值,并送数码管显示1秒时间宽度待测信号清零信号clr 2). 扩展功能部分:(1). 原理概述:一、分档显示部分在基本功能的计数部分增加至八个计数器(即最高能记到99.999999M次数)对待测信号上升沿进行计数;对记到的数据按优先级由最高位往低位判断,若第七位有进位,则表示第八个计数器有计数,故要锁存最高四位计数器 内容并送数码管显示,若为第六位数码管有进位,则显示次高四位计数器内容,以此类推;判断相应的档位的同时
7、给每个档位一个变量赋值,用于判断小数点的位置 。以KHZ为单位,则四位数码管最高能显示9999Khz。若显示最高四位计数器内容(即是X10000档(1099.99MHZ)),由于已超出四位数码管显示范围,则可以用按键显示最低四位计数器内容,同时让DS1(千位)数码管小数点亮。如图所示显示的频率为25MHZ(25000.000HZ): 未按键时显示最高四位数字; 按住按键S5显示低四位数字若未超出四位数码管显示范围,则按照如下显示小数点:X1000档(19999khz)只显示个位小数,X100档(0.1999.9khz)只显示十位小数点,X10档(0.0199.99khz)只显示百位小数点,X1
8、0档(0.0199.99khz)只显示百位小数点,X1档(0.0019.999khz)只显示千位小数点。显示效果如下图所示:显示频率1953.13KHZ 也可按住按键S5显示其余低位 显示频率6.103HZ(误差1HZ) 显示频率6HZ二、占空比部分利用基准时钟产生一个10MHZ的频率用于标准计数信号;在1HZ闸门信号上升沿到来时,10MHZ计数信号开始计数,同时在待测信号为高电平时,用七个计数器对10MHZ信号的上升沿次数计数,低电平时不计数;当1HZ闸门信号的下个上升沿到来时,10MHZ计数信号刚好计数10M次(1s时间),此时取待测信号高电平期间七个计数器的最高四位的数据锁存并送数码管显
9、示,显示时数码管DS2(百位)小数点亮,所得结果即为待测信号的占空比(单位为%),如下图所示: 按下按键 S6显示占空比(50.00%) (2). 测量占空比设计原理时序图1Hz闸门信号计数器清零clr=1,重新计数高电平时才计数,并送数码管显示1秒时间宽度待测信号标准计数信号10MHZ计上升沿次数10M次(1s时间)六 结论与误差分析1. 频率测量部分:(1). 结论:能测到待测信号的频率范围理论上为1HZ99.999999MHZ,实际测试时最高只用过25MHZ的频率进行测试,结果相差1Hz,达到设计要求。(2). 误差分析:由于采用直接测频法,1S闸门时间通常不是待测信号的整数倍,因此计数
10、值也产生最大为1个脉冲误差。设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量相对误差为Tx/T=Tx=1/Fx。所以,直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。2. 占空比测量部分:(1). 结论:高频时对占空比在5%95%的待测信号测试误差为0.5%,最高能测试到25MHZ的占空比;在低频时测量的占空比有较大误差。(2). 误差分析:由于1S闸门时间内用10MHZ的基准信号在待测信号的高电平是计数,故误差产生的原因有一下两点:待测信号进入闸门的状态随机(可能是高电平,也可能是低电平),所以对高频信号,测量到的占空比
11、误差比较小;对低频信号误差较为明显,若进出闸门的状态同为高电平,则在1S闸门时间内对高电平的状态就有多计数,结果偏高;若进出闸门的状态同为低电平,则在1S闸门时间内对高电平的状态就少计数,结果偏低。待测信号进入闸门的状态随机,且1S闸门时间通常不是待测信号的整数倍,以10MHZ信号作为基准信号计数10M次上升沿作为待测信号在1S时间内整数个周期的时间,本身只是个近似值,所以对高频时误差较小,低频时有较大误差。 七VHDL程序:-*library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fre
12、quency_meter isport(clk ,d0,d1 :in std_logic;clkx :in std_logic;wei :out std_logic_vector(3 downto 0); led :out std_logic_vector(7 downto 0) );end entity frequency_meter;-*Architecture abc of frequency_meter issignal led1, led2, led3, led4 :std_logic_vector(7 downto 0):=11000000; signal ge ,shi, bai
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字频率计 实验 报告 能测占空