0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >业界动态 > 基于FPGA自适应数字频率计的设计_数字频率计的设计

基于FPGA自适应数字频率计的设计_数字频率计的设计

2017-08-14
类别:业界动态
eye 259
文章创建人 拍明


在电子工程,资源勘探,仪器仪表等相关应用中,频率计是工程技术人员必不可少的测量工具。频率测量也是电子测量技术中最基本最常见的测量之一。不少物理量的测量,如转速、振动频率等的测量都涉及到或可以转化为频率的测量。目前,市场上有各种多功能、高精度、高频率的数字频率计,但价格不菲。为适应实际工作的需要,本文在简述频率测量的基本原理和方法的基础上,提供一种基于FPGA的数字频率计的设计和实现过程,本方案不但切实可行,而且具有成本低廉、小巧轻便、便于携带等特点。

1 数字频率测量原理和方法及本系统硬件框架

数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波、方波、三角波和尖脉冲信号的频率。而且还可以测量它们的周期。数字频率计在测量其他物理量如转速、振动频率等方面也获得广泛应用。

1.1 数字频率的测频原理和方法

众所周知,所谓“频率”就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可衰示为f=N/T 。

数字频率计测频率的原理框图可示如图1(a)。其中脉冲形成电路的作用是:将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号、若其周期为1s。则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通.被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数,各点的波形如图1(b)所示。由于计数器计得的脉冲数N是在1秒时间内的累计数 所以被测频率fx=NHz。

数字频率计测频基本原理图.png

目前,有三种常用的数字频率测量方法:直接测量法(以下称M法)、周期测量法(以下称T法)和综合测量法(以下称M/T法)。M法是在给定的闸门时间内测量被测信号的脉冲个数,进行换算得出被测信号的频率。T法是通过测量被测信号一个周期时间计时信号的脉冲个数,然后换算出被测信号的频率。这两种测量法的精度都与被测信号有关,因而它们属于非等精度测量法。而M/T法设实际闸门时间为t,被测信号周期数为Nx,则它通过测量被测信号数个周期的时间,然后换算得出被测信号的频率,克服了测量精度对被测信号的依赖性。M/T法的核心思想是通过闸门信号与被测信号同步,将闸门时间t控制为被测信号周期长度的整数倍。测量时,先打开预置闸门,当检测到被测闸门关闭时,标准信号并不立即停止计数,而是等检测到的被测信号脉冲到达是才停止,完成被测信号的整数个周期的测量。测量的实际闸门时间与预置闸门时间可能不完全相同,但最大差值不超过被测信号的一个周期。

1.2 系统的硬件框架设计

本系统由脉冲输入电路、整形电路、核心控制电路(由FPGA构成)和输出显示电路组成,如图2所示。

系统框图.png

控制的核心芯片是FPGA,它由两大功能模块组成:(1)频率计数模块,包含两个部分,选通时间控制部分,可改变选通时间;计数部分,根据选通时间的长短对被测信号正脉冲进行计数;(2)扫描显示模块,对计数的结果进行扫描显示,从而完成整个测频率的过程。外围的电路相对简单,只有信号输入整形电路和数码管显示电路。

系统的工作原理是,被测信号经整形生成矩形波输入到控制核心芯片FPGA的计数模块,计数模块根据所提供的矩形波上升沿计数,计数时间则由选通时间控制部分决定,根据频率所处的范围来决定档位;将计数的结果给显示电路,通过扫描,在数码管上显示频率的大小。

整形电路是将待测信号整形变成计数器所要求的脉冲信号。电路形式采用由555定时器所构成的施密特触发器。若待测信号为正弦波,输入整形电路,设置分析为瞬态分析,启动电路,其输入、输出波形如图1(b)所示。由图可见输出为方波,二者频率相同,频率计测得方波的频率即为正弦波的频率。

2 基于FPGA的系统设计

2.1 EDA技术和VHDL语言的特点

EDA(电子设计自动化)代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”(Top Down)的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终目标器件。FPGA可以通过软件编程对目标器件的结构和工作方式进行重构,能随时对设计进行调整,具有集成度高、结构灵活、开发周期短、快速可靠性高等特点,数字设计在其中快速发展,应用这种技术可使设计过程大大简化。VHDL语言最大的特点是描述能力极强,可以覆盖逻辑设计的诸多领域和层次,并支持众多的硬件模型。其特点包括:

(1)设计技术齐全,方法灵活,支持广泛;

(2)系统硬件描述能力强;

(3)VHDL语言可以与工艺无关地进行编程;

(4)VHDL语言标准、规范,易于共享和重用。

2.2 系统设计

设计采用实验教学中常用的altera公司的FLEX10K10系列芯片,该芯片的反应时间可达ns级,频率计的测频范围可为1Hz~999MHz。系统在兼顾测量精度和测量反应时间的基础上,实现了量程的自动转换,测量可以全自动地进行。其控制和逻辑电路是基于quartus II和VHDL语言进行设计,外部电路相当简单。图3是本设计的顶层示意图。设计主要由分频模块、控制模块、锁存模块等共七个模块组成。脉冲信号由fsin引脚输入到cntrl模块,由clr引脚和fdiv输出信号q共同决定fsin的有效性,并由cntd实现自适应控制,当fsin的频率高出或低于某个量程,cntrl模块会根据具体的值选择相应合适的量程(本设计共有分为1~9999Hz、10~99.99kHz、100~999.9kHz、1M~999M等四个量程)。再经由lock锁存之后,由dspnum选择具体的通路,由dspsel和disp实现动态扫描显示,扫描显示模块有dspsel控制七段数码管的片选信号,间锁存保存的BCD码数据动态扫描译码,以十进制形式显示。以上的各功能模块都是在FLEX10K10中,用VHDL予以实现的,较之以往的传统型电路更为简单,更易于实现频率计的小型化、微型化甚至芯片化设计。

频率计的顶层示意图.png

顶层示意图中的各模块用VHDL语言生成后,再生成图3所示的示意图,经编译链接之后就可以下载到系统中。再在外部扩展信号采集和相应的数码显示电路,就可以完成一个相对简单的数字频率计。图4是系统的整体框图。

系统整体框图.png

信号从被测信号输入处输入到波形整形电路后,经过FPGA算法处理,再由数字显示部分输出。在数字显示部分根据不同的档位,可以把相应的单位加入即可,人一档时单位为Hz,二档时为kHz,其余类推。

此外,在硬件电路设计时,应注意FPGA的接口部分,包括电平转换、标准CPU接口等等。比如FPGA器件的I/O电压不能达到TTL电平,则需要添加必要的电平转换芯片,即通常指的Transceiver。又如,驱动LED等功能的需要是经常遇到的,但FPGA器件的驱动能力不一定能够满足需要,因此提供驱动能力也是设计时需要考虑的问题之一。同时,时钟设计是FPGA设计的核心问题之一,时钟系统的不稳定和不合理,往往不能发挥器件的全部功能和潜力,严重时还会导致系统失败。对于多时钟、多速率系统,如何做到全局同步设计、保证时延特性、达到设计速率等,对系统成功都是极为关键的。

3 结束语

本文在介绍了频率计的基本原理的基础上,阐述了如何基于FPGA设计和实现自适应频率计的设计,并且给出了完整的设计过程,以及针对设计中应该注意的问题加以说明。其外,如果使用更高频率的FPGA芯片,频率计的量程上限可以进一步的提高。


FPGA设计需注意的方方面面

不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。

I/O信号分配

可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较容易),但赛灵思的FPGA设计指导原则却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤:

1. 使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。

2. 检查制造商的块/区域兼容性准则。

3. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。

4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。

5. 按照受限制程度重新分配信号总线。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。如果某个特定块所选择的I/O标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。

6. 在合适的地方分配剩余的信号。

在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。

这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。

你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。

信号完整性

大多数先进FPGA能够处理速度为数百兆赫兹的并行总线和具有工作在千兆赫兹范围的串行接口。以这么快的速度工作时,你需要了解信号完整性的原理,因为高频信号的处理会给我们精确简单的数字世界带来一连串模拟设计问题。

安排一些时间阅读FPGA供应商提供的文献。即使你对某个器件或者供应商的信息已经烂熟于心,也有必要参考其他供应商提供的文档,因为不同公司的文档往往有不同的见解。你将会发现在很多问题上不同的供应商拥有不同的观点,如什么会产生高速信号、切换信号之间可以存在多少时延而仍然可以认为它们是同时的等等。FPGA供应商的工具通常可以很好地执行一些基本的信号完整性分析,因此你必须完全了解你所获得的工具包的所有潜能。

此外,目前市场上有几百种关于信号完整性和降噪的书。如果你是个新手或者需要一个进修课程,你可以考虑阅读Douglas Brooks编写的“信号完整性问题和PCB设计”。如果需要进行更深入的探讨,可以阅读Howard Johnson编写的“高速数字设计”。

FPGA可能会由于太多的高速SSO而对系统中的信号(或其它FPGA信号)带来严重破坏,因为这会导致称为同时切换噪声(SSN)的噪声。SSN也叫做地反弹或VCC反弹,对于单端标准,SSN是在输出由低到高时提供瞬态电流和由高到低时吸收瞬态电流的过程中,由多个输出驱动器同时切换和导致器件电压与系统电压之间的变化而引起的。

在高到低的转换引起地反弹时,由低到高转换也会导致VCC下降。由于电容通常安放在VCC和接地层之间,因此SSN典型地存在于这两个地方。由低到高转变时地反弹也有可能出现。 于是,SSO变成了干扰信号,它会产生可能耦合到邻近信号的噪声。对于某个区域而言太多SSO可能会导致电源的扰动。由于以下2个原因,SSO已经变成一个必须认真对待的问题:1. 切换时间大幅下降;2. 过孔尺寸和走线宽度的减小加上更大的板厚度已经推高了板极电感,这将大幅增加出现地反弹的可能性。更大的负载电容也可能导致SSN,虽然程度上会轻一点。当有效VCC低于期望值,从而导致I/O缓存的转换速度低于期望速度时,SSN也可能导致时序问题变得突出起来。

有几个方法可以减小SSN。有些器件只需通过限制I/O标准的选择就可简化这个问题,但不是所有器件都能这么做。一些供应商建议将高速总线输出分布到整个裸片上,如果SSN是你唯一关注的问题,那么这绝对是一个很好的建议。不过,如果按照这个建议去做,有2个基本问题将会冒出来。

首先,这可能会带来下游布通性问题,因为将信号散布到整个裸片上经常会引起更多的走线交叉。而这就导致需要更多的信号布线层。其次,大多数设计在散布信号前也要求进行仔细研究,因为当一个总线散布到特定的块或区外时会引起块/区间的兼容性问题。因此,如果你能在考虑布通性的同时,小心地将一个较小的总线分布到一个或两个块/区域内,那么系统将会工作得很好。

如果你被一个具有相邻高速切换输出的设计所困扰,有好几种技术能帮助你解决潜在的SSN问题。首先对你的设计进行合适的布局和去耦合。对于去耦合,使用距离尽可能近的电源和地平面对,中间用一个SMT电容隔开。使用SMT电容进行去耦合也有助于减小电感,而电感是产生系统噪声的一个主要因素。

如果你仍然觉得需要使用去耦电容(为了减小SSN),应该使得这些电容的位置尽可能靠近高速输出引脚。Altera的一项研究发现,如果这些电容到引脚的距离大于1英寸,在使用适当的SMT电容去退耦时,这些电容变得效率极低。其他减小SSN或者其可能产生影响的建议包括:避免将敏感信号(复位、时钟和使能等)位于SSO附近;可能时,使用较小偏移的输出和使用最低电感的过孔;通过在合适位置插入延时使得输出信号交替出现。即使已经完成了PCB的生产,这个建议仍然可以应用。

参考将被连接到FPGA上的器件的相关资料。对于每个器件,确定最大输入低电压门限(单位毫伏)。这是FPGA驱动该器件需要的最大电压,所以该设备仍然可以检测到一个有效逻辑低状态(最大VIL值)。同样,还要确定器件可以容忍且能继续工作的最大输入负脉冲信号(单位毫伏)。

在某些情况下,最大容许的地反弹可能不是或者不仅是以上给出的值。而是要通过获得最大输入低电压门限的最小值、最大输入负脉冲信号、或者所有器件的最大地反弹来确定最大的系统地反弹。

然后,根据具有相似负载特点的网络连接的数目和种类对类似的FPGA总线进行分组。接着研究每个部分、区域或者块的电源和接地引脚数目,还有对于所使用的每个I/O标准,每个电源和接地管脚对所允许的SSO数目。这些数目可以用于计算每个组的总电容负载和每个输出驱动的电容,以确定可以容忍的SSO最大值。

你也应该咨询供应商以确定基于每个块和每一对块你是否超过了推荐的SSO数目,前提是供应商已经研究了这些问题。同时,因为有多个因素会导致SSN,所以最好建立一个具有内置抗噪声性能的鲁棒系统。否则,就使用针对每个引脚限制I/O标准的器件,这样就可以减少可能的SSN问题。

差分信号

在FPGA设计中,你可能会发现对差分信号的处理存在最多的争议。类似于SSN,最好从供应商、书籍和用户群获得尽可能多的信息。同时,在确定某个方案前咨询你的布局部门以了解他们推荐的建议和信息。

主要争论开始于差分信号对是否应该采用宽边耦合还是边缘耦合,以及每对之间到底应该存在多少耦合。答案通常是“根据具体情况确定”,所以需要进行具体研究。

如果你不能确定对于一个单端信号为什么需要选择差分I/O标准,答案很简单。使用差分信号,你几乎可以完全控制信号的回路。因为这是信号对的一部分,而且理论上在任何一个接地(或者电源)平面上不应该出现来自信号对的电流。

这里假设走线对具有相等长度,布设在相邻区域且间距不变,走线阻抗恒定且匹配。此外,利用单端信号,你很难控制信号回程,而且测试一个信号的返回也可能徒劳无益。

差分信号的主要缺点是他们需要两根走线彼此临近。当在一个PCB上分配几百个差分信号时这可能是个难点。但这是布线工程师的问题,不是吗?


数字频率计的设计


数字频率计是我们经常会用到的实验仪器之一,本实验要使用单片机和计数电路及液晶器件来设计一个宽频的数字频率计。

数字频率计的实验电路图(初步方案)

1) 数字频率计的计数及显示电路:

数字频率计的设计电路图.png

图1数字频率计的设计电路图

2)前置放大及分频电路

数字频率计的设计思路

频率的测量实际上就是在1S时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用两种办法,1)使用单片机自带的计数器对输入脉冲进行计数,或者测量信号的周期;2)单片机外部使用计数器对脉冲信号进行计数,计数值再由单片机读取。

由于单片机自带计数器输入时钟的频率通常只能是系统时钟频率的几分之一甚至几十分之一,因此采用单片机的计数器直接测量信号频率就受到了很大的限制。

本实验电路采用方式2,使用一片74LS393四位双二进制计数器和Atmega8的 T1计数器组成了24位计数器,最大计数值为16777215。如果输入信号经过MB501分频器进行64分频后再进行测量,则固定1S时基下最高测量频率为1073.741760Mhz。

为了方便得到准确的1秒钟测量闸门信号,我们使用了Atmega8的异步实时时钟功能,采用32.768Khz的晶振由TC2产生1秒钟的定时信号。

数字频率计的测量原理

单片机打开测量闸门,即PB1输出高电平,同时TC2定时器启动。74LS393开始对输入脉冲进行计数,74LS393每计数达256时,Atmega8的T1计数器也向上计数1次。当1S定时到达时,单片机产生中断,PB1输出低电平关闭测量闸门,然后Atmega8读取74LS393和T1的计数值,然后送LCD显示。

所谓“频率”,就是周期性信号在单位时间变化的次数。电子计数器是严格按照f=N/T的定义进行测频,其对应的测频原理方框图和工作时间波形如图1 所示。从图中可以看出测量过程:输入待测信号经过脉冲形成电路形成计数的窄脉冲,时基信号发生器产生计数闸门信号,待测信号通过闸门进入计数器计数,即可得到其频率。若闸门开启时间为T、待测信号频率为fx,在闸门时间T内计数器计数值为N,则待测频率为

fx = N/T (1)

若假设闸门时间为1s,计数器的值为1000,则待测信号频率应为1000Hz或1.000kHz,此时,测频分辨力为1Hz。

本实验的闸门时间分为为4档:1s,100ms,10ms,1ms。

测频原理框图和时间波形.png

图2 测频原理框图和时间波形


责任编辑:Davia

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: FPGA 频率计

相关资讯