设为首页
联系站长
加入收藏
 您的位置: Pecker's Home >> 文章频道 >> 电子技术 >> 测试测量/传感器 >> 测试测量 >> 正文
  一种高性价比等精度数字频率计方案设计         
一种高性价比等精度数字频率计方案设计
[ 作者:田开坤、刘颖    转贴自:EDN    点击数:1140    更新时间:2010-2-17    文章录入:pecker

  引言

  频率的概念就是1 s时间内被测信号的周期个数,最直接的测量方法就是单位时间内计数法,这种方法比较适合高频测量。低频通常用测周期法。这两种方法的测量精度不固定,与被测信号的范围相关。

  等精度频率测量法融合以上两种方法的优点,可兼顾低频与高频信号;但较以上两种方法而言,等精度频率测量有较高的测量精度,且误差不会随着被测信号频率的改变而改变。

  1 等精度频率测量原理

  等精度频率测量原理框图如图1所示。图中计数器是带使能控制的32位计数器,EN是计数允许使能信号,高电平允许计数。计数器1对基准时钟信号fb计数,计数器2对被测信号fx计数。D触发器实现对被测信号fx上升沿检测,实现门控信号与fx上升沿同步,从而保证计数器2对被测信号计数刚好为整数个周期,零误差。

等精度频率测量原理框图

  测量过程控制时序波形如图2所示。测量开始,t0时刻MCU发出一个清零信号Clr,使计数器和D触发器置0;t1时刻MCU发出测量启动信号Gate,使 D触发器输人D为高电平;在被测信号fb上升沿到来t2时刻,D触发器Q端才被置1,使计数器1和计数器2的EN同时为1,计数器开始计数,系统进入计数允许周期。这时,计数器1和2分别对基准时钟信号和被测信号同时计数。一段时间过后,t3时刻MCU发出停止信号,即D触发器输入D为低电平,但此时计数器仍然没有停止计数,直到下一个被测信号的上升沿t4时刻到来时,D触发器Q输出0将这2个计数器同时关闭。

测量过程控制时序波形

  由图2可见,Gate的宽度Tc和发生的时间都不会直接影响计数使能信号EN,EN总是在被测信号fx上升沿改变,从而保证了被测信号被计数的周期总是整数个周期nTx,而与被测信号的频率无关。正确理解这点,是理解等精度频率测量的关键。由于测量过程中不能保证基准时钟周期的完整性,还会引入测量误差。这种随机误差dt最多只有基准时钟fb信号的一个时钟周期。由于fb的信号通常由高稳定度的高频晶体振荡器发出,任何时刻的绝对测量误差只有1/N1。例如,对于门控信号接近1 s的测量过程,fb取100 MHz的晶振,最大误差可以达到10-8。

  2 方案设计

  2.1系统方案

  单片机定时器/计数器电路如图3所示。当C/T=0,TR=1,GATE=1时,单片机内部计数器时钟开关可受外部引脚INTn控制,这样就可以实现单片机内部计数器与外部计数器同步开关。

单片机定时器

  正是基于单片机这种电路结构,根据等精度原理,提出图4所示的系统框图。单片机加CPLD结构,利用单片机内部定时器定时,外部CPLD实现等精度测量逻辑电路和计数功能。基准时钟fb由单片机晶振提供,频率为单片机时钟晶振12分频后所得机器时钟。预置闸门由单片机引脚P1.0输出控制,计数器清零和复位由单片机引脚P1.1输出控制,单片机引脚P3.2是内部定时器使能开关控制引脚。

系统框图

  2.2单片机与CPLD接口设计

  图5所示为一种基于总线的接口方案,采用三总线(数据、控制、地址)结构,用于实现单片机与CPLD之间的数据传输。

基于总线的接口方案

  单片机P0口为双向数据总线,与CPLD的通用IO口连接,完成数据和低8位地址传送。控制总线包括单片机读写控制总线RD和WR,以及地址锁存信号ALE(Address Lock Enable)。地址总线A15(P2.7)通过CPLD的全局输入信号引脚输入。

  2.3 CPLD电路

  CPLD 内部电路原理框图如图6所示。当预置闸门GATE输入高电平时,由于DFF触发器为边沿触发器,在上升沿时才将数据输出,所以Q输出端并不立即置1,只有当外部信号上升沿到来时,Q才为1,使能计数器和定时器。这样保证了计数器和定时器在被测信号的上升沿到来时同时有效。当预置闸门GATE=0关闭时,两计数器的允许信号同样在被测信号的上升沿到来时同时关闭。由于基准信号的定时器与被测信号严格同步,所以理论上最大误差只有基频的一个周期。CPLD内计数器为32位,在预置时间内,只要计数器不溢出,即可准确测量被测信号个数。

CPLD 内部电路原理框图

  3 方案实现

  3.1电路原理

  电路原理如图7所示。图中给出了单片机(STC89C52RC)与CPLD(ATF1504AS)的具体接口电路,LCD1602接口电路,带ISP下载接口的CPLD电路,被测信号从J1直接输入给CPLD I/O引脚。这里没有给出信号前置调理与波形整形电路。

电路原理

   3.2 CPLD电路设计

  CPLD 开发选择Altera公司的EDA软件QuartusII和目标器件EPM7064SLC44=10,需要完成电路设计输入、编译、仿真、引脚绑定(引脚分配请参考电路图),并编译得到最终配置文件*.pof。然后再使用Atmel公司提供的转换工具POF2JED软件将前面得到的*.pof文件转换成*.jed文件,再用AtmelISP软件将*.jed文件下载到CPLD器件ATF1504即可。

  以下是采用VerilogHDL硬件描述语言设计的CPLD内部电路源码:

CPLD内部电路源码

CPLD内部电路源码

  3.3 程序设计

  整个测量过程由MCU控制完成,然后计算并把结果送LCD显示。测量开始,MCU首先发出清零CLR信号,对外部CPLD电路复位和计数器清零,还要将定时器软计数器清零,之后发出启动信号GATE=1,测量开始。MCU通过查询软计数器(定时中断加1),控制闸门时间大致在1 s左右,时间到,MCU立即发出停止信号GATE=0,随后查询引脚INT0,确认计数停止。之后,分别读回外部计数和内部计数器计数结果,MCU根据等精度原理算出信号频率,将结果送LCD显示。程序主流程和定时中断流程如图8所示。

程序主流程和定时中断流程

  4 测试结果

  笔者在实验室使用RIGOL-DG1015DDS信号发生器校准。通过修正单片机时钟偏差,22.118 4 MHz的12分频为1.843 2 MHz,对1 843 200 Hz修正86.95 Hz后带入程序计算,整数频点测量结果可以达到和信号发生器完全一致,接近零误差。特针对一些非整数频点进行测量,结果如表1所列,误差达到10-7数量级,与理论值一致。

测试结果

  由于系统采用的是单片机机器时钟作为基准信号时钟,基准信号频率较低,使得测量精度不高;如果采用外部更高频基准信号做时钟信号,精度还可进一步提高。

  结语

  将等精度频率测量原理巧妙地用MCU+CPLD实现,设计了一种低成本、高性价比的频率计方案。MCU选择STC89C52RC,CPLD选择Atmel公司的ATF1504AS,实现了宽范围高精度的频率测量。该方案具有结构简单,成本低等优点,具有广阔的市场前景。

作者:湖北师范学院电工电子实验中心,田开坤、刘颖

分享到:
    免责声明:本文仅代表作者个人观点,与Pecker's Home无关。登载目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字和图片(或其他媒体形式内容)的真实性、完整性、及时性本站不作任何保证或承诺。请读者仅作参考,并请自行核实相关内容。如果有侵犯版权事宜,请通知master@peckerhome.com,我们将在第一时间删除该信息。
  • 上一篇文章: LM567及其在超声波检测中的应用

  • 下一篇文章: 高边和低边电流检测技术分析
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
    处理器架构消亡史[00140]
    通信恩仇,5G江湖[00281]
    官方辟谣扫码支付引爆加油…[00524]
    谷歌搭售是不是作恶?可以…[00285]
    你对Zigbee无线连接了解多…[00515]
     
     最新5篇推荐文章
    Pecker之家开通用于电子元…[02-13]
    印刷电路板图设计经验[04-04]
    基于电力线通信的家庭网络…[03-23]
    利用USB控制器设计的Windo…[01-20]
    基于ARM920T微处理器的IDE…[01-20]
     
     相 关 文 章
    泰克公司推出三位一体的计…[00511]

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论