等精度频率计的设计.doc_第1页
等精度频率计的设计.doc_第2页
等精度频率计的设计.doc_第3页
等精度频率计的设计.doc_第4页
等精度频率计的设计.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

等精度频率计的设计一、实验原理基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,即测量精度随被测信号的频率的变化而变化,在实用中有较大局限性,而等精度频率计不但具有较高的测量精度,且在整个频率区域能保持恒定的测试精度。设计项目可达到的指标如下:频率测试功能:测频范围0.1Hz100Hz。测频精度:测频全域相对误差恒为百万分之一。脉宽测试功能:测试范围:0.1us1s,测试精度1%99%。占空比测试功能:测试(显示)精度1%99%。相位测试功能:测试范围0360度,测试精度0.2度。主系统组成等精度频率计的主系统由六个部分组成:信号整形电路。用于对待测信号进行放大和整形,以便作为PLD器件的输入信号。测频电路。是测频的核心模块,可以由FPGA器件担任。100MHz的标准频率信号源(可通过PLL倍频所得)进入FPGA.。单片机电路模块。用于控制FPGA的测频操作和读取测频数据,并作出相应数据处理。安排单片机的P0口读取测试数据,P2口向FPGA发控制命令。键盘模块。可以用5个键执行测试控制,一个是复位键,其余是命令键。数码显示模块。可以用7个数码管显示测试结果,最高可表示百万分之一的精度。考虑到提高单片机IO口的利用率,降低编程复杂性,提高单片机的计算速度以及降低数码显示器对主系统的干扰,可以采用串行静态显示或液晶显示方式。主系统组成测频原理等精度测频原理为:“预置门控信号”CL由单片机发出,可以证明,在1秒至0.1秒间的选择范围内,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为。BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是它们的计算允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为,被测频率为。等精度测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置0,同时D触发器通过信号ENA,禁止两个计数器技术。这是一个初始化操作。然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端子才被置1(即令START为高电平),与此同时,将同时启动计数器BHZ和TF,进入图b所示的“计数允许周期”。在此期间,BHT和TF分别对被测信号(频率为)和标准频率信号(频率为)同时计数。当秒后,预制门信号被单片机置为低电平,但此时两个计数器并没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。由图b可见,CL的宽度和发生的时间都不会影响计数使能信号(START)允许计数的周期总是恰好等于待测信号TCLK的完整周期数这样一个事实,这正是确保TCLK在任何频率条件下都能保持恒定精度的关键。而且,CL宽度的改变以及随机的出现时间造成的误差最多只有BCLK信号的一个时钟周期,如果BCLK由精度稳定的晶体振荡器(100MHz)发出,则任何时刻的绝对测量误差只有10ns。设在一次预置门时间中对被测信号的计数值为,对标准频率信号的计数值为,则下式成立:不难得到测得的频率为最后通过控制SEL选择信号和64位至8位的多路选择器MUX64-8,将计数器BHZ和TF中的两个32位数据分8次读入单片机并按式进行计算,并显示结果。二、等精度频率计原理图等精度频率计原理图三、VHDL程序设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY etester IS PORT (BCLK : IN STD_LOGIC; TCLK : IN STD_LOGIC; CLR : IN STD_LOGIC; CL : IN STD_LOGIC; SPUL : IN STD_LOGIC; START : OUT STD_LOGIC; EEND : OUT STD_LOGIC; SEL : IN STD_LOGIC_VECTOR(2 DOWNTO 0); RST : IN STD_LOGIC; DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END etester;ARCHITECTURE behav OF etester IS SIGNAL BZQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -标准计数器 SIGNAL TSQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -测频计数器 SIGNAL ENA : STD_LOGIC; - 计数使能 SIGNAL MA : STD_LOGIC; SIGNAL CLK1 : STD_LOGIC; SIGNAL CLK2 : STD_LOGIC; SIGNAL CLK3 : STD_LOGIC; SIGNAL Q1 : STD_LOGIC; SIGNAL Q2 : STD_LOGIC; SIGNAL Q3 : STD_LOGIC; SIGNAL BENA : STD_LOGIC; SIGNAL PUL : STD_LOGIC; -脉宽计数使能 SIGNAL SS : STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN START = ENA ; DATA = BZQ(7 DOWNTO 0) WHEN SEL = 000 ELSE - 标准频率计数低8位输出 BZQ(15 DOWNTO 8) WHEN SEL = 001 ELSE BZQ(23 DOWNTO 16) WHEN SEL = 010 ELSE BZQ(31 DOWNTO 24) WHEN SEL = 011 ELSE - 标准频率计数最高8位输出 TSQ(7 DOWNTO 0) WHEN SEL = 100 ELSE -待测频率计数值最低8位输出 TSQ(15 DOWNTO 8) WHEN SEL = 101 ELSE TSQ(23 DOWNTO 16) WHEN SEL = 110 ELSE TSQ(31 DOWNTO 24) WHEN SEL = 111 ELSE -待测频率计数值最高8位输出 TSQ(31 DOWNTO 24) ; -HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH BZH : PROCESS(BCLK, CLR) -标准频率测试计数器,标准计数器 BEGIN IF CLR = 1 THEN BZQ 0 ) ; ELSIF BCLKEVENT AND BCLK = 1 THEN IF BENA = 1 THEN BZQ = BZQ + 1; END IF; END IF; END PROCESS;- gggggggggggggggggggggggggggggggggggggggggggggggggggg TF : PROCESS(TCLK, CLR, ENA) -待测频率计数器,测频计数器 BEGIN IF CLR = 1 THEN TSQ 0 ); ELSIF TCLKEVENT AND TCLK = 1 THEN IF ENA = 1 THEN TSQ = TSQ + 1; END IF; END IF; END PROCESS;-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PROCESS(TCLK,CLR) -计数控制使能触发器,CL为预置门控信号,同时兼作正负脉宽测试控制信号 BEGIN IF CLR = 1 THEN ENA = 0 ; ELSIF TCLKEVENT AND TCLK = 1 THEN ENA = CL ; END IF; END PROCESS;-OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO MA = (TCLK AND CL) OR NOT(TCLK OR CL) ; -测脉宽逻辑 CLK1 = NOT MA ; CLK2 = MA AND Q1 ; CLK3 = NOT CLK2 ; SS = Q2 & Q3 ;-HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH DD1: PROCESS(CLK1,CLR) BEGIN IF CLR = 1 THEN Q1 = 0 ; ELSIF CLK1EVENT AND CLK1 = 1 THEN Q1 = 1 ; END IF; END PROCESS;DD2: PROCESS(CLK2,CLR) BEGIN IF CLR = 1 THEN Q2 = 0 ; ELSIF CLK2EVENT AND CLK2 = 1 THEN Q2 = 1 ; END IF; END PROCESS;DD3: PROCESS(CLK3,CLR) BEGIN IF CLR = 1 THEN Q3 = 0 ; ELSIF CLK3EVENT AND CLK3 = 1 THEN Q3 = 1 ; END IF; END PROCESS;-HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGT : PUL = 1 WHEN SS = 10 ELSE -当SS=“10”时,PUL高电平,允许标准计数器计数, 0 ; -禁止计数 EEND = 1 WHEN SS = 11 ELSE -EEND为低电平时,表示正在计数,由低电平变到高电平 0 ; -时,表示计数结束,可以从标准计数器中读数据了-UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU BENA = ENA WHEN SPUL = 1 ELSE -标准计数器时钟使能控制信号,当SPUL为1时,测频率 PUL WHEN SPUL = 0 ELSE -当SPUL为0时,测脉宽和占空比 PUL ;-UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEND behav;四、仿真接键7,系统清0测频计数结束标志,接发光管D8接键6,测频/测脉宽选择接键8,预置门控制测脉宽结束标志,接发光管D7SEL测频率/脉宽选通控制,接键3/2/18位计数值显示于(模式5)数码管2/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论