等精度数字频率计主设计Word文件下载.docx
- 文档编号:19410468
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:20
- 大小:139.27KB
等精度数字频率计主设计Word文件下载.docx
《等精度数字频率计主设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《等精度数字频率计主设计Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
4.5自校/测试频率选择模块
4.6计数器二频率切换模块
第五章项目硬件测试及仿真结果
5.1硬件试验情况
5.2仿真结果
第六章设计总结
附录一参考文献
第一章设计项目的分析
频率计用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。
通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1s。
闸门时间也可以大于或小于1s。
闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。
闸门时间越短,测得频率值刷新就越快,但测得的频率精度就受影响。
(1)对于频率测试功能,测频范围为0.1Hz~70MHz;
对于测频精度,测频全域相对误差恒为百万分之一。
(2)对于周期测试功能,信号测试范围与精度要求与测频功能相同。
(3)对于脉宽测试功能,测试范围为0.1μs~1s,测试精度为0.01μs。
(4)对于占空比测试功能,测试精度为1%~99%。
1.3
设计思路
利用计数器A对时钟脉冲信号进行计数,同时使用另一个计数器B对被测信号计数。
当测量时钟脉冲信号的计数器A累积到一定数值时,将计数器B的结果传送到触发器中并通过一个时钟脉冲锁存,并译码送到七段数码管输出。
为了使测量误差尽可能小,可以在被测信号的上升沿使计数器A和计数器B同时计数,为此,可添加一个D触发器,以被测信号作为D触发器的时钟信号,高电平为输入端,输出端Q作为两个计数器的计数允许信号。
其原理可用图1表示。
基于传统测频原理的频率计的测量精度将随被测信号的频率的下降而降低,在
使用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个频率区域能保持恒定的测试精度。
图2-1等精度数字频率计工作原理图
图中“预置门控制信号”CL可由单片机发出,可以证明,在1秒~0.1秒时间选择的范围内,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为Tpr。
BZH和TF模块是两个可控的32为高速计数器,BENA和ENA分别是它们的计数允许信号端,高电平有效。
标准频率信号从BZH的时钟输入端BCLK输入,设其频率为Fs;
经整形后的被测信号从与BZH相似的32为计数器TF的时钟输入端TCLK输入,设其真实频率值为Fxe,被测频率为Fx。
测频原理说明如下:
图2-2TOP模块图
测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置0,同时通过信号ENA,禁止两个计数器计数。
这是一个初始化操作。
然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1,与此同时,将同时启动计数器BZH和TF,进入“计数允许周期”。
在此期间,BZH和TF分别对呗测信号和标准信号同时计数。
当Tpr秒后,预置门信号被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的呗测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。
被测频率值为Fx,标准频率为Fs,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准信号的计数值为Ns,则下式成立:
Fx/Nx=Fs/Ns
由此可推得:
Fx=(Fs*Nx)/Ns
最后通过控制SEL选择信号和64位至8位的多路选择器MUX64—8,将计数器BHZ和TF中的两个32位数据分8此读入单片机并按照上式进行计算和结果显示。
2.2频率测量模块
图2-3自校/测试频率选择模块图
图2-4计数器二频率切换模块
(1)直接测频法:
把被测频率信号经整形电路处理后加到闸门的一个输入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲送到十进制计数器进行计数。
(2)组合测频法:
是指在高频时采用的直接测频法,低频时采用直接测量周期法测信号的周期,然后换算成频率。
(3)倍频法:
是指把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后再进行测量,对高频段则直接进行测量。
被频法较难实现。
(4)等精度测频法
2.3周期测量模块
图2-5测频、周期控制模块图
(1)直接周期测量法:
用被测信号经放大整形后形成的方波信号直接控制计数门控电路,使主门开放时间等于信号周期Tx,时标为Ts的脉冲在主门开放时间进入计数器。
设在Tx期间计数值为N,可以根据以下公式来算得被测次你好周期:
Tx=N*Ts
经误差分析,可得结论:
用该测量法测量时,被测信号的频率越高,测量越大。
(2)等精度周期测量法:
该方法在测量电路和测量精度上与等精度频率测量
完全相同,只是在进行计算时公式不同,用周期1/T代换频率f即可,其计算
公式为:
Tx=(Ts*Ns)/Nx
2.4脉宽测量模块
图2-6测脉宽、占空比控制模块图
在进行脉冲宽度测量时,首先经信号处理电路进行处理,限制只有信号的70MHZ幅度及其以上部分才能输入数字测量部分。
脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。
测量电路在检测到脉冲信号的上升沿时倒开计数器,在下降沿时关闭计数器,设脉冲宽度为Twx,计算公式为:
Twx=Nx/fs
2.5占空比测量模块
对于占空比K的测量,可以通过测量正反两个脉宽的计数值来获得。
设正脉宽的计数值N1,对负脉宽的计数值为N2,则周期计数值为N1+N2,于是K为:
K=N1/(N1+N2)*%
第三章系统设计方案
3.1等精度数字频率计项目设计方案
3.1.1等精度数字频率计的原理
等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比
较大,用一般中小规模CPLD/FPGA芯片难以实现。
因此,我们选择单片机和CPLD/FPGA的结合来实现。
电路系统原理框图如图3-1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;
CPLD/FPGA完成各种测试功能;
键盘信号由AT89C51单片机进行处理,它从CPLD/FPGA读回计数数据并进行运算,向显示电路输出测量结果;
显示器电路采用七段LED动态显示,由8个芯片74LS164分别驱动数码管。
图3-1等精度数字频率计电路系统原理图
3.1.2等精度数字频率计主要由以下几个部分组成
(1)信号整形电路。
用于对待侧信号进行放大和整形,以便作为PLD器件的属于信号。
(2)测频电路。
测频电路是测频的核心电路模块,可以由FPGS等PLD器件担任。
(3)单片机电路模块。
用于控制FPGA的测频操作和读取测频数据,并作出相应数据处理。
安排单片机的P0口直接读取测试数据,P2口香FPGA发控制命令。
(4)100MHZ的标准频率信号源。
本模块采用高频稳定度和高精度度的晶振作为标准频率发生器,产生100MHZ的标准频率信号直接进入FPGA。
(5)键盘模块。
可以用5个键执行测试控制,一个是复位键,其余是命令键。
(6)数码显示模块。
可以用7个数码管显示测试结果,最高可表达百万分之一的精度。
考虑到提高单片机I/O口的利用率,降低编程复杂性,提高单片机的计算速度以及降低数码显示器对主系统的干扰,可以采用串行静态显示方式。
3.1.3系统的基本工作方式如下
(1)P0口是单片机与FPGA的数据传送通信口,P1口用于键盘扫描,实现各测试功能的转换;
P2口为双向控制口。
P3口为LED的串行显示控制口。
系统设置5个功能键:
占空比、脉宽、周期、频率和复位。
(2)7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。
(3)BCLK为测频标准频率50MHz信号输入端,由晶体振荡源电路提供。
(4)待测信号经放大整形后输入CPLD/FPGA的TCLK。
利用VHDL设计的测频模块逻辑结构如图4所示,其中有关的接口信号规定如下:
(1)TF(P2.7):
TF=0时等精度测频;
TF=1时测脉宽。
(2)CLR/TRIG(P2.6):
当TF=0时系统全清零功能;
当TF=1时CLRTRIG的上跳沿将启动CNT2,进行脉宽测试计数。
(3)ENDD(P2.4):
脉宽计数结束状态信号,ENDD=1计数结束。
(4)CHOICE(P3.2):
自校/测频选择,CHOICE=1测频;
CHOICE=0自校。
(5)START(P2.5):
当TF=0时,作为预置门闸,门宽可通过键盘由单片机控制,START=1时预置门开;
当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。
利用此功能可分别获得脉宽和占空比数据。
(6)EEND(P2.3):
等精度测频计数结束状态信号,EEND=0时计数结束。
(7)SEL[2..0](P2.2,P2.1,P2.0):
计数值读出选通控制。
3.2测频/测周期的实现
(1)令TF=0,选择等精度测频,然后在CONTRL的CLR端加一正脉冲信号以完成测试电路状态的初始化。
(2)由预置门控信号将CONTRL的START端置高电平,预置门开始定时,此时由被测信号的上沿打开计数器CNT1进行计数,同时使标准频率信号进入计数器CNT2。
(3)预置门定时结束信号把CONTRL的START端置为低电平(由单片机来完成),在被测信号的下一个脉冲的上沿到来时,CNT1停止计数,同时关断CNT2对fs的计数。
(4)计数结束后,CONTRL的EEND端将输出低电平来指示测量计数结束,单片机得到此信号后,即可利用ADRC(P2.2)、ADRB(P2.1)、ADRA(P2.0)分别读回CNT1和CNT2的计数值,并根据等精度测量公式进行运算,计算出被测信号的频率或周期值。
图3-2测频模块逻辑图
图3-3测频/测周期的实现电路图
3.3控制部件设
如图3-3所示,当D触发器的输入端START为高电平时,若FIN端来一个上升沿,则Q端变为高电平,导通FIN→CLK1和FSD→CLK2,同时EEND被置为高电平作为标志;
当D触发器的输入端START为低电平时,若FIN端输入一个脉冲上沿,则FIN→CLK1与FSD→CLK2的信号通道被切断。
图3-4测频与测周期控制部分电路
3.4计数部件设计
计数部件模块图
计数部件电路原理图
图3-4中的计数器CNT1/CNT2是32位二进制计数器,通过DSEL模块的控制单片机可分4次将其32位数据全部读出。
3.5脉冲宽度测量和占空比测量模块设计
3.5.1脉冲宽度测量原理图
根据2.4节中脉宽测量原理,设计如图3-4(CONTRL2)所示的电路原理示意图
图3-4测脉宽、占空比控制模块原理图
3.5.2测量脉冲宽度的工作步骤
(1)向CONTRL2的CLR端送一个脉冲以便进行电路的工作状态初始化。
(2)将GATE的CNL端置高电平,表示开始脉冲宽度测量,这时CNT2的输入信号为FSD。
(3)在被测脉冲的上沿到来时,CONTRL2的PUL端输出高电平,标准频率信号进入计数器CNT2。
(4)在被测脉冲的下沿到来时,CONTRL2的PUL端输出低电平,计数器CNT2被关断。
(5)由单片机读出计数器CNT2的结果,并通过上述测量原理公式计算出脉冲宽度。
CONTRL2子模块的主要特点是:
电路的设计保证了只有CONTRL2被初始化后才能工作,否则PUL输出始终为零。
只有在先检测到上沿后PUL才为高电平,然后在检测到下沿时,PUL输出为低电平;
ENDD输出高电平以便通知单片机测量计数已经结束;
如果先检测到下沿,PUL并无变化;
在检测到上沿并紧接一个下沿后,CONTRL2不再发生变化直到下一个初始化信号到来。
占空比的测量方法是通过测量脉冲宽度记录CNT2的计数值N1,然后将输入信号反相,再测量脉冲宽度,测得CNT2计数值N2则可以计算出占空比:
占空比=N1/(N1+N2)*%
4.1-等精度频率计测试模块DJDPLJ.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYDJDPLJIS
PORT(CHEKF,FINPUT,CHOICE:
INSTD_LOGIC;
START,CLRTRIG,FSTD,TF:
SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
OO:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
EEND:
OUTSTD_LOGIC;
--CPBZ
ENDD:
OUTSTD_LOGIC);
ENDENTITYDJDPLJ;
ARCHITECTUREARTOFDJDPLJIS
COMPONENTFINIS--自校/测试频率选择模块例化
PORT(CHKF,FIN,CHOIS:
FOUT:
ENDCOMPONENTFIN;
COMPONENTCONTRLIS--测频、周期控制模块例化
PORT(FIN,START,CLR,FSD:
CLK1,EEND,CLK2,CLRC:
ENDCOMPONENTCONTRL;
COMPONENTCNTIS--计数模块的例化
PORT(CLK,CLR:
Q:
OUTSTD_LOGIC_VECTOR(31DOWNTO0));
ENDCOMPONENTCNT;
COMPONENTCONTRL2IS--测脉宽、占空比控制模块例化
PORT(FIN,START,CLR:
ENDD,PUL:
ENDCOMPONENTCONTRL2;
COMPONENTGATEIS--计数器二频率切换模块例化
PORT(CLK2,FSD,CNL,PUL:
CLKOUT:
ENDCOMPONENTGATE;
SIGNALINCLK:
STD_LOGIC;
SIGNALFOUT,CLRC:
SIGNALCLK1,CLK2,CLKOUT,PUL:
SIGNALQ1,Q2:
STD_LOGIC_VECTOR(31DOWNTO0);
BEGIN
OO<
=Q1(7DOWNTO0)WHENSEL="
000"
--当SEL输入000时将Q1赋给OO
ELSEQ1(15DOWNTO8)WHENSEL="
001"
ELSE
Q1(23DOWNTO16)WHENSEL="
010"
Q1(31DOWNTO24)WHENSEL="
011"
Q2(7DOWNTO0)WHENSEL="
100"
Q2(15DOWNTO8)WHENSEL="
101"
Q2(23DOWNTO16)WHENSEL="
110"
Q2(31DOWNTO24)WHENSEL="
111"
"
00000000"
;
FENPIN:
PROCESS(FSTD)IS
IFFSTD'
EVENTANDFSTD='
1'
THEN--由FSTD=’1’装载新数据
INCLK<
=NOTINCLK;
ENDIF;
ENDPROCESSFENPIN;
FCH:
FINPORTMAP(CHKF=>
CHEKF,FIN=>
FINPUT,CHOIS=>
CHOICE,FOUT=>
FOUT);
CON:
CONTRLPORTMAP(FIN=>
FOUT,START=>
START,CLR=>
CLRTRIG,FSD=>
INCLK,
CLK1=>
CLK1,EEND=>
EEND,CLK2=>
CLK2,CLRC=>
CLRC);
CONT1:
CNTPORTMAP(CLK=>
CLK1,CLR=>
CLRC,Q=>
Q1);
CONT2:
CLKOUT,CLR=>
Q2);
CON2:
CONTRL2PORTMAP(FIN=>
CLRC,
PUL=>
PUL,ENDD=>
ENDD);
GATE1:
GATEPORTMAP(CLK2=>
CLK2,FSD=>
INCLK,CNL=>
TF,
PUL=>
PUL,CLKOUT=>
CLKOUT);
ENDARCHITECTUREART;
4.2--计数模块CNT.VHD
ENTITYCNTIS
ENDENTITYCNT;
ARCHITECTUREARTOFCNTIS
SIGNALCNT:
--定义CNT的数据类型
PROCESS(CLK,CLR)IS
IFCLR='
THENCNT<
="
00000000000000000000000000000000"
--利用IF语句确定CNT的数据
ELSIFCLK'
EVENTANDCLK='
=CNT+1;
ENDPROCESS;
Q<
=CNT;
--将最后确定的CNT数据赋给Q
4.3-测频、周期控制模块CONTRL.VHD
ENTITYCONTRLIS
CLK1,EEND,CLK2,CLRC:
ENDENTITYCONTRL;
ARCHITECTUREARTOFCONTRLIS
SIGNALQQ1:
PROCESS(FIN,CLR,START)IS
BEGIN
THENQQ1<
='
0'
--给QQ1赋值
ELSIFFIN'
EVENTANDFIN='
=START;
CLRC<
=CLR;
EEND<
=QQ1;
CLK1<
=FINANDQQ1;
--FIN和QQ1的值相与后赋给CLK1
CLK2<
=FSDANDQQ1;
--FSD和QQ1的值相与后赋给CLK2
4.4-测脉宽、占空比控制模块CONTRL2.VHD
ENTITYCONTRL2IS
PORT(FIN,START,CLR:
ENDENTITYCONTRL2;
ARCHITECTUREARTOFCONTRL2IS
SIGNALQQ:
STD_LOGIC_VECTOR(3DOWNTO1);
SIGNALA0,B0,C0,F2:
SIGNALS:
STD_LOGIC_VECTOR(1DOWNTO0);
S(0)<
=QQ(3);
S
(1)<
(2);
PROCESS(START,S)IS
BEGIN
IFSTART='
THENF2<
=FIN;
--确定F2的数据
ELSEF2<
=NOTFIN;
IFS=2THENPUL<
--如果S=2则PUL输出高电平
ELSEPUL<
--否则PUL输出低电平
IFS=3THENENDD<
--如果S=3则ENDD输出高电平
ELSEENDD<
--否则ENDD输出低电平
ENDIF;
A0<
=F2ANDQQ
(1);
--将F2和QQ
(1)的数据相与再赋给A0
B0<
=NOTA0;
--将A0的数据取反赋给B0
C0<
=NOTF2;
--将F2的数据取反赋给C0
PROCESS(C0,CLR)IS
THENQQ
(1)<
ELSIFC0'
EVENTANDC0='
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精度 数字频率计 设计