首页 百科知识 量程自动转换数字式频率计的设计

量程自动转换数字式频率计的设计

时间:2024-10-26 百科知识 版权反馈
【摘要】:频率计的测量范围为1MHz,量程分10kHz、100kHz和1 000kHz三挡。在计数器停止期间,首先要产生一个锁存信号LOAD,用其上升沿控制锁存器REG32将之前的计数结果存入锁存器中,并由显示模块将其显示出来。本设计通过控制基准时钟信号来实现量程的自动转换。若被测频率仍然高于2挡的测量范围,则输出一报警信号。显示译码模块从锁存器读出数据并通过扫频电路在LED数码管上显示数字频率计的工作挡位和被测频率高4位的数值大小。

9.4 量程自动转换数字式频率计的设计

9.4.1 频率计的设计要求

(1)频率计的测量范围为1MHz,量程分10kHz、100kHz和1 000kHz三挡(最大读数分别为9.99kHz、99.9kHz、999kHz)。

(2)要求量程可根据被测量的大小自动转换,即当计数器溢出时,产生一个换挡信号,让整个计数时间减少为原来的1/10,从而实现换挡功能。

(3)要求实现溢出报警功能,即当频率高于999kHz时,产生一个报警信号,点亮LED灯,从而实现溢出报警功能。

9.4.2 频率计的设计方案

1.频率计的工作原理

常用的测量频率的方法有两种,一种是测周期法,一种是测频率法。

测周期法需要有基准系统时钟频率Fs,在待测信号一个周期Tx内,记录基准时钟频率的周期数Ns,则被测频率可表示为

Fx=Fs/Ns

测频率法就是在一定的时间间隔Tw内,得到这个周期信号重复变化的次数Nx,则被测频率可表示为

Fx=Nx/Tw

本设计采用的是直接测频率的方法。

2.频率计的系统框图

频率计的系统设计可以分为4位十进制计数模块、闸门控制模块、译码显示模块和可自动换挡基准时钟模块,其系统框图如图9.4.1所示。

img480

图9.4.1 频率计的系统框图

可自动换挡基准时钟模块为闸门控制模块提供3个挡,也就是3个测量范围的基准时钟信号,通过计数器的最高位溢出情况来判定工作在第几挡。

闸门控制模块根据基准时钟信号产生基准时钟信号周期2倍的周期使能信号,随后为锁存器产生一周期性的锁存信号,接着为计数模块产生一周期性的清零信号。

4位十进制计数模块在使能信号和清零信号的控制下对被测信号的波形变化进行计数,若产生溢出,则为自动换挡模块输出一换挡信号。

译码显示模块负责不闪烁的显示被测信号的频率及数字频率计目前工作的挡位。

9.4.3 频率计各模块的设计与实现

1.4位十进制计数模块的设计与实现

4位十进制计数模块包含4个级联的十进制计数器,用来对施加到时钟脉冲输入端的待测信号产生的脉冲进行计数,十进制计数器具有计数使能端、清零控制端和进位输出功能。用于计数的时间间隔由闸门控制模块的控制信号发生器所产生的使能信号控制,计数使能信号也在闸门控制模块中产生,自动换挡模块决定计数器读数的单位。

1位十进制计数器的VHDL源程序如下所示。

img481

img482

以上源程序编译成功后,可生成可调用文件cnt10v.sym,用于4位十进制计数器的设计,如图9.4.2所示。

img483

图9.4.2 4位十进制计数器的设计

2.闸门控制模块的设计与实现

以基准信号的周期为1s为例,频率测量的基本原理是计算一秒钟内待测信号的脉冲个数,这就要求能产生一个周期为2s、占空比为50%的周期信号TSTEN。用这个信号作为计数器的EN端输入,使其计数时间正好为1s。当TSTEN为高电平时,计数开始,为低电平时,计数停止。在计数器停止期间,首先要产生一个锁存信号LOAD,用其上升沿控制锁存器REG32将之前的计数结果存入锁存器中,并由显示模块将其显示出来。设置锁存器是为了让显示稳定,不会因为周期性的清零信号使得显示的数值不断闪烁。锁存之后需有一清零信号CLR_CNT将计数器清零,为下一秒的计数操作做准备。

闸门控制模块的VHDL源程序如下所示。

img484

闸门控制电路的仿真波形如图9.4.3所示。

img485

图9.4.3 闸门控制电路的仿真波形

3.可自动换挡基准时钟模块的设计与实现

本设计通过控制基准时钟信号来实现量程的自动转换。如果一个周期为0.1s的信号作为时钟信号通过一个十进制计数器,在十进制计数器的进位输出端将会得到一个周期为1s的信号。因此,频率计的三个挡位可通过3个十进制计数器的级联来实现,如图9.4.4所示。

img486

图9.4.4 频率计的三个挡位的电路图

在第一个计数器的CLK端接一周期为0.01s的时钟信号,在第一个计数器的COUT端将会得到周期为0.01s的信号,即为2挡,其测量范围为100~999 900Hz。同理,第二个计数器COUT端将会得到周期为0.1s的信号,即为1挡,其测量范围为10~99 990 Hz;第三个计数器的COUT端将会得到周期为1s的信号,即为0挡,其测量范围为0~9 999Hz。

这里还需要一个3选1选择器来选择第几个计数器的COUT端作为基准时钟信号。

3选1选择器可以将十进制计数模块的溢出情况作为选择标准。先使可自动换挡基准时钟模块工作在0挡,若被测频率高于0挡的测量范围,则会使4位十进制计数模块产生溢出,用这个溢出信号(也就是十进制计数模块中最高位计数器的进位端)来使自动换挡基准时钟模块工作在1挡;同理,如果被测频率还是高于1挡的测量范围,就再自动换为2挡。若被测频率仍然高于2挡的测量范围,则输出一报警信号。

可自动换挡基准时钟模块的VHDL源程序如下。

img487

img488

可自动换挡基准时钟模块的电路图如图9.4.5所示。

img489

图9.4.5 可自动换挡基准时钟模块电路图

图9.4.5中将所有计数器的清零信号接地,因为清零信号为高电平有效,接地信号一直保持零电平,这样保证计数器不会被清零,一直正常工作。

所有计数器的使能端需要一高电平信号EN使其一直保持工作状态。

角标为37的计数器并不属于实现基准时间信号换挡功能的计数器组,它直接为3选1选择器MUX3服务,统计来自4位十进制计数模块的最高位进位信号的个数。举例来说,4位十进制计数模块连续2次溢出时,它的计数值为2,3选1选择器使得可自动换挡基准时钟模块工作在2挡。

角标为34的计数器CLK端接周期为0.001s的时钟信号。

3选1选择器MUX3的O输出端输出报警信号,Y输出端输出经过自动调整了的适合于被测频率的基准时钟信号。

4.译码显示模块的设计与实现

译码显示模块的设计分为显示锁存器的设计和七段数码显示译码器的设计两个部分。

显示锁存器是在计数结束后,利用LOAD信号的上升沿把最新计数结果保存起来。显示锁存器的VHDL源程序如下。

img490

七段数码显示译码器的VHDL源程序如下。

img491

img492

译码显示模块的电路图如图9.4.6所示。

img493

图9.4.6 译码显示模块的电路图

5.量程自动转换数字式频率计的顶层文件

量程自动转换数字式频率计的电路图如图9.4.7所示。

img494

图9.4.7 量程自动转换数字式频率计的电路图

计数器34的CLK端接周期为0.001s的周期信号,并让计数器34、35、36级联,分别产生周期为0.01s、0.1s、1s,测量范围为999kHz、99.9kHz、9.99kHz的2挡、1挡、0挡信号。将这三挡信号通过MUX3(3选1选择器),并通过选择4位十进制计数模块的溢出情况来决定输出为哪一挡或产生报警信号。MUX3将适合于被测频率的基准时间信号输入TESTCTL(闸门与控制信号生成器),由TESTCTL生成决定计数周期的使能信号、计数器清零信号和锁存器锁存信号。4位十进制计数模块在使能信号和清零信号的控制下统计出被测信号波形变化的次数,并将结果送入锁存器。显示译码模块从锁存器读出数据并通过扫频电路在LED数码管上显示数字频率计的工作挡位和被测频率高4位的数值大小。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈