基于FPGA的等精度频率计IP Core设计
频率测量是电子测量技术中最基本的测量之一。在现代信号分析和处理领域中,高精度的频率测量有非常重要的意义。
常用的测频方法有计数法和周期法。计数法是在预制的闸门时间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 误差分析
设所测频率值为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,则被测时钟信号的占空比为:。
- 单片DSP处理器功能系统的SOPC技术设计(01-12)
- 基于DSP和SOPC数字信号发生器的设计(01-05)
- 基于Linux的SoPC应用系统设计(04-23)
- 基于DSP的实时数据处理系统浅析(02-28)
- 基于LXI总线的1553B通讯模块设计与开发(11-24)
- 双MicroBlaze软核处理器的SOPC系统设计(01-27)