第八讲 等精度测频

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八讲三、设计实例等精度频率、占空比测量仪

1.综述

传统频率测量方法是对设定的闸门时间内脉冲进行计数,有两个主要因素影响精度,其一是闸门时间的准确度,其二是对低频信号的取整误差,为了消除以上两个因素的影响可选择等精度测频法。但等精度测频法占用可编程器件资源量大,如选用24位计数器的频率计,仅测频部分就占用了EPM7128芯片的百分之九十以上的资源;若选用100MHz标准时钟,其闸门时间仅能选择在0.168s以下,测频范围在6Hz以上,限制了对低频的测量。若要扩大低频量程,需要相应增大可编程器件容量,则体积、功耗和价格相应增加。

本文所述等精度频率、占空比测量仪采用将复杂可编程逻辑器件(CPLD)与低功耗单片机相结合,由CPLD完成高频信号计数,单片机完成低频信号计数、频率和占空比计算和显示控制等功能,即简化了仪器的结构,又扩大了低频量程。如单片机采用长整形变量计数(32位),再加上CPLD中16位计数器,等效为48位计数器构成的等精度测量仪,当选用100MHz标准时钟时,低频范围可达3.55×10-7Hz。

本文所述等精度频率、占空比测量仪结构框图如图8-1所示,CPLD可编程逻辑器件选用的是EPM7064芯片,单片机可根据实际情况选用。

图8-1 等精度频率、占空比测量仪结构框图

单片机发出如下所示控制信号:

CLEAR:SLCE为高时CPLD芯片内各计数器清零信号;SLCE为低时占空比清零和测量启动信号。

SLCE:功能选择控制信号。高电平测频;低电平测占空比。

CONTRL:闸门时间信号。高电平测频;低电平测占空比。

S[2..0]:输出选择控制信号。000—CPLD 输出标准时钟信号四位计数值最低位;001—CPLD 输出标准时钟信号计数值次低位;010—CPLD 输出标准时钟信号计数值第三位;011—CPLD 输出标准时钟信号计数值第四位;100—CPLD 输出被测信号四位计数值最低位;101—CPLD 输出被测信号计数值次低位;110—CPLD 输出被测信号计数值第三位;111—CPLD 输出被测信号计数值第四位。

单片机读入如下所示信号:

BZTC :标准时钟信号计数值进位位。 BCTC :被测信号计数值进位位。 CPEND :测频或测占空比结束信号。 DOUT :测量结果输出值,4位二进制数。

2.等精度测频工作原理

等精度测频工作原理如图8-2所示。闸门时间控制信号Contr 并不直接作用于计数器计数使能端ENA ,而是经D 触发器再作用于ENA ,D 触发器的触发信号为被测频率信号BCclk ,通过此D 触发器消除了被测频率信号取整误差,仿真波形图如图8-3所示。

图8-2 等精度测频工作原理图

图8-3 等精度测频闸门控制信号波形图

由于被测频率信号BCclk 计数值N C 与标准频率信号BZclk 计数值N B 是同一时间计数值,可得如下关系式:

N f

N f

B

B

C

C

(1)

其中:f C 为被测频率信号BCc lk 频率;N C 为被测频率信号BCclk 计数值;f B 为标准频率信号BZclk 频率;N B 为标准频率信号BZc lk 计数值。f B 、频率为已知量,N C 、N B 为测得量,通过关系式(1)即可计算出被测频率。对标准频率信号取整是影响测频精度的重要因素,可通过选择合适闸门时间和提高标准频率信号频率加以抑制。

占空比测量原理是测得被测脉冲高电平标准频率信号计数值N1和低电平标准频率信号计数值N2,占空比q 为:

2

11N N N q +=

(2)

3.CPLD 功能设计

根据以上原理,采用图形法与VHDL 语言混合设计方法对CPLD 进行功能设计,整体功能图如图8-4所示。其中各单元模块功能、内部结构分别介绍如下:

图8-4 CPLD 整体功能图

(1)UP_COUNT 单元:带进位、使能和清零端16位加计数器。具体VHDL 语言程序如下所示。

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL;

ENTITY up_count IS

PORT (clk,clr,ena : IN Std_logic; tc : OUT Std_logic;

q: INOUT Std_logic_vector(15 DOWNTO 0)

);

END up_count;

ARCHITECTURE behav OF up_count IS

BEGIN

PROCESS( clk,clr )

BEGIN

IF clr = '0' THEN q <= (OTHERS=> '0');

ELSIF clk'EVENT AND clk = '1' THEN

IF q = "0000000000000000" THEN

tc <= '0';

END IF;

IF q = "1111111111111111" THEN

tc <= '1';

END IF;

IF ena = '1' then q <= q + 1; END IF;

END IF;

END PROCESS;

END behav;

(2)MUX32_4单元:32位—4位多路数据输出选择器。具体VHDL语言程序如下所示。

library IEEE;

use IEEE.std_logic_1164.all;

entity mux32_4 is

port (

q: in STD_LOGIC_VECTOR (31 downto 0);

s: in STD_LOGIC_VECTOR (2 downto 0);

Y: out STD_LOGIC_VECTOR (3 downto 0)

);

end mux32_4;

architecture behav of mux32_4 is

相关文档
最新文档