新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA的等精度频率计IP Core设计

基于FPGA的等精度频率计IP Core设计

作者:时间:2017-06-05来源:网络收藏

频率测量是电子测量技术中最基本的测量之一。在现代信号分析和处理领域中,高精度的频率测量有非常重要的意义。

常用的测频方法有计数法和周期法。计数法是在预制的闸门时间TW内测量被测信号的脉冲个数Nx,进行换算得出被测信号的频率为fx=Nx/:TW。这种测量方法的测量精度取决于闸门时间和被测信号频率。当被测信号频率较低时将产生较大误差,除非闸门时间取得很大。周期法是在被测信号的一个周期Tx内,测量标准信号(周期TC)ΔFS/FS的周期个数NS,进行换算得出被测信号的频率为fx=fC/NS。这种测量方法的测量精度取决于被测信号的周期和计时精度。本文采用的测量方法克服了以上两种方法的缺点,测频精度与被测信号的频率大小无关,从而保证了频率的等精度测量。

随着FPGA和SoPC技术的迅速发展,在单芯片上实现的功能越来越复杂。这就使得设计师的工作量非常大,而IP Core的复用可以大大减少工作量,从而减小设计的复杂性,提高产品的设计效率。本文根据的原理,用VHDL语言实现了等精度频率计的IP Core,实现软核的重用。

1

1.1 原理

基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性。而等精度频率计不但具有较高的测量精度,并且在整个频率区域保持恒定的测量精度。

等精度频率测量用被测信号的多周期而不是单周期作门控信号;门控信号周期数可根据被测频率的大小自动调节,使计数值Ns保持不变,从而实现等精度测量。

等精度测频的原理框图如图1所示。图中预置门控信号是宽度为Tpr的一个脉冲,Counterl和Counter2是两个可控计数器,标准频率信号从Counter1的时钟输入端CLK输入,其频率为Fs;经整形后的被测信号从Counter2的时钟输入端CLK输入,设其实际频率为Fxe,测量频率为Fx。

当预置门控信号为高电平时,经整形后的被测信号的上沿通过D触发器的Q端同时启动计数器Counter1和Counter2。Counter1、Counter2分别对被测信号(频率为Fx)和标准频率信号(频率为Fs)同时计数。当预置门信号为低电平时,随后而至的被测信号的上沿将使这两个计数器同时关闭。设在一次预置门时间Tpr中对被测信号计数值为Nx;对标准频率信号的计数值为Ns,则下式成立:


1.2 误差分析

本文引用地址:http://www.eepw.com.cn/article/201706/349185.htm

设所测频率值为Fx,其真实值为Fxe,标准频率为Fs。在一次测量中,由于计数的起停时间都是由该信号的上跳沿触发的,在Tpr时间内对Fx的计数Nx无误差;在此时间内,Fs的计数Ns最多相差一个脉冲,即:

则下式成立:

根据相对误差的公式有:

由上式可以得出以下结论:

(1)相对测量误差与频率无关。
(2)增大Tpr或提高Fs,可以增大Ns,减少测量误差,提高测量精度。
(3)标准频率误差为ΔFs/Fs。
(4)等精度测频方法测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同,而被测信号频率不同的情况下,等精度测量法的测量精度不变,而常规的直接测频法精度随着被测信号频率的下降而下降。测试电路可采用高频率稳定度和高精度的恒温可微调的晶体振荡器作标准频率发生电路。

1.3 等精度频率计的实现方法

随着微电子技术与工艺的发展,等精度频率计的实现从完全使用小规模集成电路、单片机+小规模集成电路、FPGA+单片机发展到基于FPGA的SoPC设计。小规模集成电路在实现乘除运算时相当复杂,而单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求,同时需要外部分离元件的支持,这增加了系统的复杂度。采用高集成度、高速的现场可编程门阵列FPGA为实现高速、高精度的测频提供了保证。
本系统采用基于FPGA的SoPC技术实现等精度频率测量。基于SoPC的特点,本系统具有灵活的设计方式,体积小、开发周期短、可裁剪、可扩充、可升级,并具备软硬件在系统可编程的功能。

2 等精度频率计IP Core

本文主要介绍等精度频率计的功能模块设计,包括任务逻辑、寄存器文件及Avalon接口的设计。

2.1 任务逻辑

任务逻辑框图如图2所示。任务逻辑完成用户定制元件的基本功能。本设计中任务逻辑完成频率测量、脉宽测量及占空比测量三个功能。由于FPGA低偏斜、高负载的布线资源有限,为了避免高速、高频率系统时序中潜在的竞争、毛刺、建立和保持时间违反问题,本系统采用同步设计。然而在实际运用中经常出现时钟选择和时钟控制的异步设计,导致系统产生毛刺和时钟偏斜及时钟分析路径复杂等问题。为了解决该问题,需将时钟控制改为触发器输入允许,将时钟选择改为独立的时钟分析。

当功能切换和门控信号同时为1时,该系统实现频率的测量。Counter1和Counter2分别输出标准频率数(Ns)和被测频率数(Nx)。考虑到等精度频率计的精度和速度,该系统选择标准频率计数器计满20位时产生中断,同时输出Ns和Nx。

当功能切换为0、门控信号为1时,系统实现被测时钟信号的高电平宽度测量(即脉宽测量),并由Counter1输出其宽度值N1;当功能切换和门控信号同时为0时,系统实现被测时钟信号的低电平宽度测量,同时由Counter1输出其宽度值N2,则被测时钟信号的占空比为:


功能切换=1时,测频率;功能切换=0时,测占空比和脉冲宽度。门控信号在测频率时是门控信号;测占空比时,门控信号=1,测高电平宽度;门控信号=0,测低电平宽度。

2.2 寄存器文件

寄存器文件提供了任务逻辑与外界交换信息的途径。用户可以通过Avalon接口采用基地址 +地址偏移量的方式来访问元件内部各寄存器。本IP Core内部寄存器如表1所示。


2.3 Avalon接口设计

Avalon接口为寄存器文件提供了一个标准的Avalon前端,它使用Avalon必须的信号来访问寄存器文件,并且支持任务逻辑的传输类型。 等精度频率计的Avalon接口信息如表2所示。


3 测试与验证

IP Core设计完成后,利用SoPC Builder搭建一测试该IP Core的系统,并在其中加入该IP核。硬件测试结果如表3所示。

本设计通过SoPC技术在FPGA上实现了等精度频率计的IP Core设计。系统采用同步设计,避免了由时钟异步导致的时钟偏斜。

经测试证明,该频率计的测频范围为0.1Hz~100MHz,测频精度恒为百万分之一,能够满足高速度、高精度的测频要求。本设计可移植性好、稳定性好、精确度高、测频速度快,达到设计要求。



评论


相关推荐

技术专区

关闭