[发明专利]一种基于FPGA的频率测量方法无效
申请号: | 201310439616.4 | 申请日: | 2013-09-25 |
公开(公告)号: | CN103499739A | 公开(公告)日: | 2014-01-08 |
发明(设计)人: | 符云越 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G01R23/10 | 分类号: | G01R23/10 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 频率 测量方法 | ||
1.一种基于FPGA的频率测量方法, 其特征在于包括:采用一个标准的基准时钟,在单位时间(1s)里对被测信号的脉冲数进行计数,即为信号的频率,由于闸门的起始和结束时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差,进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量准确度为&=Tx/T=1/Fx;已知直接测频法的测量准确度与信号的频率有关:当待测信号频率越高,测量准确度也越高,反之测量准确度也越低;直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变频率的要求,为克服低频段测量的不准确问题,采用门控信号和被测信号对计数器的使能信号进行双重控制,提高了准确度,当门控信号为1时,使能信号并不为1,只有被测信号的上升沿到来时,使能端才开始发送有效信号,两个计数器同时开始计数,当门控信号变为0时,使能信号并不是立即改变,而是当被测信号的下一个上升沿到来时才变为0,计数器停止计数,因此测量的误差最多为一个标准时钟周期,当采用100MHz的信号作为标准信号时,误差最大为0.01μs;具体步骤如下:
1)利用串行总线数据传输方法,计算每秒钟内待测信号脉冲个数,要求计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器cnt10的ENA使能端进行同步控制,当TSTEN为高电平时,允许计数;低电平时,停止计数,并保持其所计的数,在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的译码器译出并稳定显示,锁存信号之后,必须由清零信号CLR_CNT对计数器进行清零,为下一秒钟的计数操作做准备;
2)当系统正常工作时,脉冲发生器提供的1 Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在液晶屏显示的十进制结果;
3)频率计采用等精度频率测量法,测量精度保持恒定,不随所测信号的变化而变化,在快速测量的要求下,要保证较高精度的测频,必须采用较高的标准频率信号,单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求;而采用高集成度、高速的现场可编程门阵列FPGA为实现高速、高精度的测频提供了保证;
4)等精度测量方法的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,避除了对被测信号计数所产生±1个字误差,并且达到了在整个测试频段的等精度测量,在测量过程中,有两个计数器分别对标准信号和被测信号同时计数,首先给出闸门开启信号,即预置闸门上升沿信号,此时计数器并不开始计数,而是等到被测信号的上升沿信号到来时,计数器才真正开始计数,然后预置闸门关闭信号,即下降沿信号到时,计数器并不立即停止计数,而是等到被测信号的上升沿信号到来时才结束计数,完成一次测量过程,能够看出,实际闸门时间t与预置闸门时间t1并不严格相等,但差值不超过被测信号的一个周期;
5)等精度测频方法中,CNT1和CNT2是两个可控计数器,标准频率信号从CNT1的时钟输入端CLK输入;经整形后的被测信号从CNT2的时钟输入端CLK输入,当预置门控信号为高电平时,经整形后的被测信号的上升沿信号通过D触发器的Q端同时启动CNT1和CNT2,CNT1、CNT2同时对标准频率信号和经整形后的被测信号进行计数,分别为NS与NX,当预置门信号为低电平的时候,后而来的被测信号的上升沿信号将使两个计数器同时关闭,所测得的频率为(FS/NS)*NX,则等精度测量方法测量精度与预置门宽度的标准频率有关,与被测信号的频率无关,在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变;
6)误差分析:设在一次实际闸门时间t中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns,标准信号的频率为fs,则被测信号的频率如式(2-1):
fx=(Nx/Ns)·fs (2-1)
由式1-1可知,若忽略标频fs的误差,则等精度测频可能产生的相对误差如式(2-2):
δ=(|fxe-fx|/fxe)×100% (2-2)
其中fxe为被测信号频率的准确值;
在测量中,由于fx计数的起停时间都是由该信号的上升沿触发的,在闸门时间t内对fx的计数Nx无误差(t=NxTx);对fs的计数Ns最多相差一个数的误差,即|ΔNs|≤1,其测量频率如式(2-3):
fxe=[Nx/(Ns+ΔNs)]·fs (2-3)
将式(2-1)和(2-3)代入式(2-2),并整理如式(2-4):
δ=|ΔNs|/Ns≤1/Ns=1/(t·fs) (2-4)
由上式看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量,闸门时间越长,标准频率越高,测频的相对误差就越小,标准频率可由稳定度好精度高的高频率晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测试速度;
7)系统总体设计如下:
当系统正常工作时,由系统时钟提供的100MHz的输入信号,经过信号源模块,先通过100分频产生1MHZ的时钟信号,再将1MHZ的时钟信号分频产生多种频率输出,其中1HZ的输出频率被作为控制模块的时钟输入,7812HZ的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号testen和清零信号clr对计数模块进行控制,而由其产生的锁存信号load对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示器部分用1602液晶显示,数字频率计是由5个部分组成组成,分别是:分频器、门控电路、计数器、锁存器和显示器;
其中:根据数字频率计的系统原理,gate_control控制信号发生器,gate_control的计数使能信号gate_control能产生一个1 s宽的周期信号,并对频率计的每一计数器couter的ENA使能端进行同步控制:当gate_control高电平时允许计数、低电平时停止计数;
flip_latch为锁存器,在信号load的上升沿时,立即对模块的输入口的数据锁存到flip_latch的内部,并由flip_latch的输出端输出,然后,1062液晶屏输出,在这里使用了锁存器,好处是稳定显示数据,不会由于周期性的清零信号而不断闪烁;
counter为十进制计数器,有一时钟使能输入端ENA,用于锁定计数值,当高电平时允许计数,低电平时禁止计数,将八个十进制计数器counter级联起来实现8 位十进制计数功能[2,7] ;
LCD_Driver为七段译码显示驱动电路,将频率计数的结果译成能在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果;
为了实现系统功能,测频控制信号发生器gate_control、计数器counter、锁存器flip_latch存在一个工作时序的问题,设计时需要综合考虑;
8位数字频率计的顶层框图main.bdf,设计实现包括信号源模块F1MHZ、CNT、频率计模块FREQ和显示模块LCD_Drive三大模块,下面分别介绍三个模块的结构和实现方法;
信号源模块
信号源是为了产生1MHz 的门控信号和待测的定频信号,而对输入系统时钟clk(50MHz)进行分频的模块,设计源代码gate_control.v 对输入系统时钟clk(50MHz)进行分频产生1MHz 信号;
分频器
CLK为PIN1MHZ输入的1MHZ信号,freq1为输出给控制信号发生器的1HZ信号;
测频控制信号产生器
控制模块的作用是产生测频所需要的各种控制信号,控制信号的标准输入时钟为1HZ,每两个时钟周期进行一次频率测量,该模块产生的个控制信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间,fdiv为计数允许信号,在fdiv信号的上升沿时刻计数模块开始对输入信号的频率进行测量,测量时间恰为一个时钟周期,正好为单位时间1s,在此时间里被测信号的脉冲数进行计数,即为信号的频率,然后将值锁存,并送到数码管显示出来,设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁,在每一次测量开始时,都必须重新对计数器清0;
锁存器
锁存器模块也是必不可少的,测量模块测量完成后,在load信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块,锁存器是起数据保持的作用,它将会把数据保存到下次触发或复位,锁存器模块是主从触发器组成的,用于存储数据来进行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换;
程序是用来实现锁存器模块的功能,在锁存信号load的上升沿到来时,锁存器将测量值锁存到寄存器,然后输出到显示模块,锁存输出并不是立即进行的,而是经历了一个短暂的延时,这是由于硬件引起的;
十进制计数器
计数器模块是由8个带有异步清零端,进位信号输出的模为10的计数模块级连而成,通过counter进行元件例化实现,此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定计数器,当高电平计数允许,低电平时计数禁止,计数器模块用于对输入信号的脉冲进行计数,该模块必须有计数允许、异步清零等端口,以便于控制模块对其进行控制;
程序模块实现的功能是带使能端的10进制计数,程序要求只有当使能端信号为高电平时计数器才能正常工作,每个时钟的上升沿到来时计数器加1,因为这里要实现的是10进制计数,所以当计数到10时计数器清零,同时产生进位信号,这里的进位信号仅为一个脉冲信号,一旦计数从10变为1,脉冲信号立即变为低电平,同时该计数器也应带有清零信号,一旦清零信号为高电平,计数器立即清零。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310439616.4/1.html,转载请声明来源钻瓜专利网。