基于FPGA的频率测量计的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的频率测量计的设计与实现
作者:刘梅英
来源:《电子技术与软件工程》2017年第23期
摘要频率测量在控制系统或仪表开发项目中需广泛使用,本文结合实际项目,提出基于FPGA设计的频率测量计的方法,该设计方法集成度高、速度快。
【关键词】频率测量 FPGA 仿真
频率测量在控制系统或仪表开发项目中需广泛使用。通常的测量频率方法是外接示波器或采用单片机等外界电路加以实现,但这些测量方法有精度低、电路的整体差、欠稳定等缺点。现在,在实际工作中,采用大规模集成电路中现场可编程逻辑器件FPGA(Field Programmable Gate Array)设计数字控制系统成为主流,本文结合实际项目,介绍基于FPGA设计的频率测量计的方法。
1 频率测量计原理
针对待测信号频率的测量,通常有两种方式。一是直接测频法,即在一定的时间间隔T1-T0(信号测量闸门时间)T内,待测信号的周期个数为N,则待测信号频率为:F=N/T。同时,直接测频法所测量的数据结果相对误差最大为1/N。
二是间接测周法,使用两个计数器,分别对标准频率信号Fs和待测频率信号Fx同时计数,原理如图1。为了提高测量精度,使待测信号与闸门控制信号同步,即设计同步电路,首先给出预置闸门控制信号上升沿,此时两个计数器并不开始计数,而是等到待测信号的上升沿到来时,两个计数器真正开始计数。同理,在闸门信号结束,下降沿到来时,两个计数器并不立即停止,而是等待测信号的上升沿到来时才停止计数,完成一次测量过程。采用此方法,其精度差值不超过被测频率的一个周期。
误差分析:设标准信号的频率为Fs,待测信号的频率为Fx,在测量时间段Ts内被测频率信号的计数值为Nx,标准频率信号的计数值为Ns,则有关系Ns/Nx=Fs/Fx。设被测信号的频率准确值为Fx0,在一次测量过程中,由于被测信号Fx计数的启停时间是由该信号的上升沿控制的,因此在测量时间段Tws内对Fx的计数Nx无误差,在此时间段内对Fs的计数Ns最多相差一个脉冲,即|△Ns|≤1,则有:Nx/Fx=Ns/Fs;Nx/Fx0=(Ns+△Ns)/Fs;
由上式得出:Fx=Fs*Nx/Ns;Fx0=Fx*Nx/(Ns+△Ns)
根据相对误差公式:△Fx0/Fx0=|Fx0-Fx|/Fx0;
被测信号的相对误差△Fx0/Fx0≤1/Ns;
综合以上,可以得出:
(1)被测信号频率的相对误差与被测信号的频率无关
(2)增大测量时间段Tws或提高Fs,可以增大Ns,从而减小相对误差。
(3)测量精度与实际阀值时间及标准信号频率有关。
(4)由于标准频率信号源的石英晶体振荡为40M且稳定性高,所以标准信号的相对误差小。
实际测量过程中,标准信号为33M,阀值设定为1.5秒。
2 系统设计与实现
FPGA(Field-Programmable Gate Array)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
频率测量设计总体原则:自下而上分层设计,将待测频率信号作同步处理,以提高测量精度。
模块关系:
(1)count.v底层计数模块。输入:clk(时钟信号),rst(复位信号),enable(使能信号),cntout(计数器输出信号)
(2)tcount.v为count.v的仿真模块
(3)tongbuclk.v底层时钟同步模块。clk(时钟信号),rst(复位信号),en(使能信号输入),enable(使能输出信号)其功能相当于一个D触发器。将使能信号上升沿与待测信号同步,提高测量精度。
3 Modelsim软件仿真
Modelsim是一款单内核支持VHDL和Verilog混合仿真的仿真器;具有源代码模版和助手,项目管理等特点。
为了模拟待测频率的实时变化测量结果的影响,采用循环语句随机变化待测时钟频率,仿真结果正确。仿真程序片段及仿真结果如图2。
4 硬件仿真
上面介绍的Modelsim是常用软件仿真,设计程序在实际的芯片中运行结果如何,是否存在“竞争冒险”等时序问题,还需要应用硬件仿真。在Quartus开发环境中,用singnalTapII,在file下面新建一个signaltapII logic analyzer file默认的是stp文件,打开后在左上方setup里面指下载方式,一般是usb下载。Scan Chain栏是显示硬件环境,该栏必须有硬件显示才能下载。然后,sof manager中选择工程中的下载文件,其他的clock指的采样时钟。在中间偏右的框中双击添加想要查看的信号,它可以实时查看硬件里面的运行情况,本系统在硬件仿真运行正常。
5 结束语
本文结合实际项目中所用的频率测量模块,提出了基于FPGA实现频率测量的方法及软件和硬件的仿真验证。该方法具有广泛的应用,可以应用于实时性要求高的场所。
参考文献
[1]唐亚平.基于FPGA与DSP的等精度数字频率计设计[J].微计算机信息,2007,1-2:249-250.
[2]杨潇,翟玉文等.基于CPLD和VHDL的等精度频率装置[J].吉林化工学院学报,2004(09).
作者简介
刘梅英(1972-),女,湖南省澧县人。硕士研究生,硕士学位。现为中国计量科学研究院化学所工程师。研究方向为检测技术及自动化装置。
作者单位
中国计量科学研究院北京市 1000041