基于CPLD的等精度频率测量计0407文档格式.docx
《基于CPLD的等精度频率测量计0407文档格式.docx》由会员分享,可在线阅读,更多相关《基于CPLD的等精度频率测量计0407文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
ABSTRACT
Frequencymeterisacomputer,communicationequipment,audiovideoforscientificresearch,theproductionfieldindispensablemeasuringinstrument.Itisakindofdecimaldigitaldisplaymeasuredsignalfrequencydigitalmeasuringinstrument.Itisthebasicfunctionofsquarewavesignalmeasurementsinesignal,andallkindsofotherunitoftimetochangethephysicalquantities.Thesimulationanddigitalcircuitdesign,installation,debuggingprocess,becauseitsusingdecimalnumberdisplay,measuringrapidly,highprecision,theshowintuitional,frequentlymustusefrequencymeter.
ThisdesigncompletelydesignedbasedonCPLDfrequencymeter,andsuccessfulcommissioning.DesignofCPLDdesignsignificance,thedesignmethod,debughavespecificdescriptionofwave.DesignhavetobefamiliarwithVHDLVHDL,MAX+plusⅡetcEDAsoftwareandabletousethemforsoftwareprogramming.Inthisdesign,werepresentedbasedonCPLDfrequencymeterthesourceprogram.
【KEYWORDS】:
FREQUENCYMETER,CPLD,Etcprecision,VHDLLANGUAGE
目录
引言1
一、频率测量原理2
(一)常用的频率测量方法2
1.频率测量法2
2.周期测量法2
3.等精度测量法3
二、方案设计5
(一)方案的提出5
1.基于单片机的方案5
2.基于CPLD的方案5
(二)方案的论证与选择5
三、硬件电路设计5
(一)电源模块5
(二)整形部分6
(三)显示部分6
(四)报警部分8
(五)晶振部分8
四、软件设计8
(一)CPLD开发环境简介8
1.CPLD设计意义8
2.VHDL语言9
3.Max+PlusⅡ开发工具9
(二)单元模块设计10
1.校正模块11
2.分频器模块12
3.D触发器模块13
4.计数器模块14
5.除法器模块16
6.乘法器模块18
7.高、低位转换模块19
8.显示模块20
9.频率计顶层模块设计22
五、软件调试22
结论25
参考文献26
致谢27
引言
频率测量是电子测量的重要领域,在我们的生活中都需要直接或者间接通过测量频率来获取我们想要得到信息,比如我们日常生活中最平常的时钟就是一个测量频率的设备,通过测量频率我们来计算时间的长短;
在科研中经常使用的GPS设备也是通过测量频率的方式来得到GPS点与GPS卫星的距离,从而来测算GPS的坐标。
频率的测量在我们的生活中无处不在,无时不刻都在接触。
频率的测量就显得很重要,用较高精度的方法来测量频率就更加重要了。
测量频率的方法大体上来分可以分为直接频率测量方法和间接频率测量方法。
常见的直接频率测量方法主要有测频法和测周期法。
测频法就是在确定的闸门时间Tw内,记录被测信号的变化周期数(或者脉冲个数)Nx,则被测信号的频率就是Fx=Nx/Tw。
测周期法需要有标准信号的频率Fs,在待测信号的一个周期Tx内,记录标准频率的周期数Ns,则被测信号的频率是Fx=Fs/Ns。
这两种方法的计数值都会产生正负1个字误差,并且测试精度和计数器中记录的数值Nx或Ns有关。
为了保证测试精度,一般以中界频率为界限,对于低频信号采用测周期法;
对于高频信号采用测频法,因此测试时很不方便。
间接测频法在高精度的频率测量方面使用比较多,测得的频率精度非常高,尤其在空间技术领域。
在一般领域比较常见的间接测频方法主要是等精度测频法。
传统的数字频率计一般是由分立元件搭接而成,随着单片机的大规模的应用,单片机在频率测量方面也越来越多的被使用,出现了不少用单片机控制的频率测量系统。
相对于以前用分离元件搭接起来的频率测量系统,单片机控制的频率测量系统在频率测量范围、频率测量精度和频率测量速度上都有了很大的提高,但由于单片机先天性的限制(如单片机工作频率的限制、单片机内部计数器位数的限制),由单片机控制的频率测量系统无法在频率测量范围、频率测量精度和频率测量速度上取得重大突破,若再增加别的器件,以弥补单片机的不足,不仅会大大增加系统的复杂性,而且也不利于系统的集成化。
随着大规模可编程逻辑器件技术的发展,能够将大量的逻辑功能集成于单个芯片中。
根据不同的需要所提供的逻辑门数目可以从几百至上百万之多,从根本上解决了单片机的先天性限制问题。
本设计完整地设计出了基于CPLD的等精度频率计,并成功调试。
本设计的主要技术指标如下:
1.频率测量范围:
0Hz~40MHz。
2.测量误差:
±
1。
3.测量结果显示:
4位数码管显示。
4.具有超量程报警功能。
一、频率测量原理
(一)常用的频率测量方法
1.频率测量法
频率测量法原理如图1-1所示。
频率测量法又称直接测量法。
图1-1频率测量原理图
按照频率的定义即单位时间内周期信号的发生次数,图中晶振提供测量的时间基准,分频后通过控制电路去开启与关闭主门。
主门开启时,计数器开始计数,主门关闭停止计数。
若主门开放时间为T,计数值为N,则被测频率fx=N/T。
用这种频率测量原理,对于频率较低的被测信号来说,存在着测量实时性和测量精度之间的矛盾。
例如若被测信号为10Hz,精度要求为0.01%,则最短主门时间为T=N/f=1000s,这样的测量周期根本是不可能接受的,可见频率测量法不适用于低频率信号的测量。
2.周期测量法
周期测量法的原理图如图1-2所示。
周期测量法又称间接测量法。
图1-2周期测量原理图
周期测量原理和频率测量基本结构是一样的,只是把晶振和被测信号位置互一下。
T=NTr/M。
计数值N和被测信号的周期成正比,N反映了M个信号周期的平均值。
利用周期测量法在一定信号频率范围内,通过调节分频系数M,可以较好地解决测量精度与实时性的矛盾。
但是对于高频率信号,周期法就需要很大的分频系数M,增加了硬件及软件的复杂性,不宜采用。
由此可见,对于传统的频率测量方法若是要达到高精度的要求,必须对被测频率分段测量,对于较低频率用周期测量,对于较高频率用频率法测量。
3.等精度测量法
等精度测量的方法是:
采用频率准确的高频信号作为标准频率信号,保证测量的闸门时间为被测信号的整数倍,并在闸门时间内同时对标准信号脉冲和被测信号脉冲进行计数,实现整数个频率测量范围内的测量精度相等,当标准信号频率很高,闸门时间足够长时,可实现高精度的频率测量。
其原理图如图1-3。
图1-3等精度测量原理图
等精度测频原理示意图如图1-4。
测量精度与闸门时间的关系分析如下。
图1-4等精度测频原理示意图
预制闸门控制信号给出高电平,此时并未开始进行测频计数,而要等到被测信号的上升沿到来时才开始对标准时钟信号和被测信号同时进行测频计数。
当闸门控制信号经过Tc时间结束时,也要等到被测信号的上升沿到来时才同时停止对标准信号和被测信号的计数,并读取此时的计数值。
测频计数的闸门时间为Td,标准时钟信号频率为Fs,被测信号频率为Fx,在Td时间内对标准时钟信号和被测信号的脉冲计数值分别为Ns和Nx,则被测信号的频率可由下式求得:
Fx=Fs·
Nx/Ns
设在1次实际闸门时间Td中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns,标准信号的频率为Fs,由图可知:
NsTs=NxTx,则被测信号的频率可由下式求得:
fx=fs·
由于测量过程中不能保证基准时钟周期的完整性,会引入误差。
对标准信号所产生的计时误差为:
Δt=Td-Ns·
Ts。
但Δt最大为一个标准信号的周期,即Δt≤Ts。
因此:
。
而被测信号频率的准确值
,
则测频的相对误差为:
当
时,测频最大误差为
[4]。
由上式可知,当频率测量的最大误差由标准时钟误差信号的周期Ts和频率计数的闸门时间Td决定,Ts越小,Td越大,测量误差越小,即测量精度越高。
在整个测频范围内,精度恒定,实现了等精度测量。
当标准信号选取准确的100MHZ信号源时,即Ts=10ns。
只要选取闸门时间Td≥10ms,就可以使测量的最大误差
,即达到百万分之一的测量精度。
闸门时间Td的大小,除满足
式的最大测量误差外,还应保证大于一个被测信号周期Tx。
由
可知,在保证测量精度不变的前提下,提高标准信号频率可使闸门时间缩短,即提高测试速度。
测频的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量[5]。
闸门时间越长,标准频率越高,测频的相对误差就越小。
标准频率可由稳定度好、精度高的高频晶体振荡器产生。
表1-5所示是标频在100MHZ时闸门时间与最大允许误差的对应关系
表1-5闸门时间与精度的对应关系
闸门时间Td(s)
精度
0.01
10-6
0.1
10-7
1
10-8
10
10-9
二、方案设计
本设计基于CPLD的等精度原理设计一个频率计。
(一)方案的提出
1.基于单片机的方案
由单片机单独完成,利用单片机内部计数器及软件共同控制下,在设定的时间内,利用单片机内部的两个计数器分别对外部测试信号和内部时钟周期信号进行同步计数,计数结果暂存于单片机内部。
计数结束后,通过单片机进行计算得到测量结果。
2.基于CPLD的方案
CPLD单独完成,应用VHDL硬件描述语言,利用CPLD内部丰富的数据类型和层次化的结构模型,对整个系统进行逻辑设计并用计算机仿真,生成符合要求的、在电路结构上可实现的数字逻辑,再下载到可编程逻辑器件中,即可完成设计任务。
(二)方案的论证与选择
基于单片机的频率计设计方案主要以单片机为基础,原理简单。
但根据设计要求,测频范围为0Hz~100MHz,在快速测量的要求下要保证较高精度的测量,必须采用较高的标准频率信号;
而单片机受本身时钟频率和若干指令运算的限制,测量速度较慢,无法满足高速、高精度的测频要求。
故决定采用CPLD来实现。
硬件电路组成框图如图2.1所示,整个测频系统分为多个功能模块,如CPLD模块、信号放大整形模块、显示模块、电源模块和其他电路组成。
除电源电路、放大整形、标准频率信号和数码显示外,其余模块可集成于CPLD芯片中,并且各逻辑模块用硬件描述语言VHDL来描述其功能,然后通过EDA开发平台对QuartusII设计文件自动地完成逻辑编译、逻辑化简、综合及优化、逻辑仿真,最后对CPLD芯片进行编程,以实现系统的设计要求。
三、硬件电路设计
(一)电源模块
本设计采用5V电源电压为其供电。
直流稳压电源一般由电源变压器、整流滤波电路以及稳压电路所组成,如图3-1所示。
图3-1电源电路
电源变压器是将交流电网220V的电压变为所需的值,然后经过整流电路将交流电压变成脉动的直流电压。
由于此脉动的直流电压还含有较大的纹波,必须经过滤波电路加以滤除,从而得到平滑的直流电压。
但这样的电压还随电网电压波动(一般有10%左右的波动),随负载和温度的变化而变化。
因而在整理、滤波之后,还需接稳压电路。
稳压电路的作用是当电网电压波动、负载和温度变化时,维持输出直流电压稳定。
选用输出电压固定为+5V的三端集成稳压器7805。
变压器将电网220V电压变为+9V电压,经二极管桥式整流后,为7~8V的电压送入7805的输入端,电容C11和C12用来实现频率补偿,防止稳压器7805产生高频自激振荡和抑制电路引入的高频干扰,C13是电解电容,以减小稳压电源输出端由输入电源引入的低频干扰。
(二)整形部分
图3-2为输入信号整形电路。
被测信号经限幅电路(由两片1N4148组成)限幅后,由两级直接耦合放大器放大,最后再由施密特触发器(4093)整形,送入CPLD芯片进行测频。
该电路R、C参数根据实际所测信号的带宽确定,如频率较高大于70MHz,则电路和PCB布线都需作较大改动。
因测频范围在0至9.999MHz之间,所以不需要较大改动即可满足要求。
电路如图3-2所示。
图3-2整形部分设计电路图
(三)显示部分
本设计显示部分如图所示,其采用串行接口静态显示方式。
所谓静态显示,是由一次输出显示后,就能保持该显示结果,直到下次送新的显示码为止。
这种显示占用机时少,亮度大,显示可靠稳定。
移位寄存器74LS164的两个输入端A和B与CPLD的数据输出口相接,时钟信号CLK与同步移位脉冲输出口相接。
前一个移位寄存器的输出端也与下一个移位寄存器的输入端A、B相连,这样首尾相连,直到传送4位显示数为止。
当显示完以后,先送出的数显示在最右边一位,最后送出的数显示在最左边一位。
其电路如图3-3所示。
图3-3显示部分设计电路图
使用74LS164驱动LED静态显示,其方法简单,显示效果好,并且占用的的I/O口少(只要2个),且74LS164芯片很便宜,成本很低,所以在实际中经常使用。
一般来说,用这种方法可以扩展很多个LED块,显示很多位数字。
数字逻辑系统中常用的显示器件是数码管,半导体数码管每一个都是一个发光二极管(LightEmittingDiode,LED),因而也称为LED数码管或LED显示器。
LED数码管用7段发光二极管(带小数点时为八段)来显示数字,每一段都是一个发光二极管,一般把所有段的相同一端相连,连接到地(共阴极接法)或者是连接到电源(共阳极接法)。
共阴极接法的公共端连接到地,另一端分别接一个限流电阻后再接到控制电路的信号端,当信号端为高电平时,该段即被点亮,否则不亮。
共阳极接法正好相反,公共端连接到电源,另一端分别接一个限流电阻后再接到控制电路的信号端,只有信号端为低电平时才被点亮,否则不亮。
本设计使用的是共阴极接法,其显示译码表如表3-4所示。
表3-4共阴极LED数码管显示译码真值表
BCD码输入
输出电平
输出字形
DCBA
gfedcba
0101
1101101
5
0000
0111111
0110
1111101
6
0001
0000010
0111
0000111
7
0010
1001101
2
1000
1111111
8
0011
1001111
3
1001
1101111
9
0100
1100110
4
(四)报警部分
报警部分是占用CPLD一根I/O口,连接蜂鸣器。
此I/O接计数器模块的最高位的进位部分,当有进位时,为高电平‘1’,则蜂鸣器响。
这样可在超出目前量程时,给予报警提示,如图3-5所示。
图3-5报警部分设计电路
(五)晶振部分
本设计晶振部分可接BYGY-EDA试验箱,试验箱可提供4MHz的有源晶振,作为标准频率信号的输入。
也可以如图3-7进行晶振部分设计,来提供50MHz的晶振频率。
图3-7晶振部分设计电路图
四、软件设计
(一)CPLD开发环境简介
1.CPLD设计意义
EDA(电子自动化)技术以计算机为工具,在EDA软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统的性能特点完成一系列准确的测试与仿真操作,大大提高了打规模系统电子设计的自动化程度设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果,这使得对整个硬件系统的设计和修改过程如同完成软件设计一样方便、高效。
基于EDA技术的设计方法为“自顶向下”设计,其步骤是采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的基本功能或行为级上对设计的产品进行行为描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认。
然后利用EDA工具的逻辑综合功能,把功能描述转换为某一具体目标芯片的网表文件,经编程器下载到可编程目标芯片中(如FPGA芯片),使该芯片能够实现设计要求的功能。
CPLD是一种新兴的高密度大规模可编程逻辑器件,它具有门阵列的高密度和PLD器件的灵活性和易用性,目前已成为一类主要的可编程器件。
可编程器件的最大特点是可通过软件编程对其器件的结构和工作方式进行重构,能随时进行设计调整而满足产品升级。
使得硬件的设计可以和软件设计一样方便快捷,从而改变了传统数字系统及用单片机构成的数字系统的设计方法、设计过程及设计观念,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。
采用CPLD可编程器件,可利用计算机软件的方式对目标器件进行设计,而以硬件的形式实现既定的系统功能。
在设计过程中,可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的CPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实行多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量及难度,同时,这种基于可编程芯片的设计大大减轻了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。
2.VHDL语言
VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,超高速集成电路硬件描述语言)是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE的一种工业标准硬件描述语言。
相比传统的电路系统设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计的特点,因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
3.Max+PlusⅡ开发工具
Max+PlusⅡ开发工具是美国Altera公司自行设计的一种CAE软件工具。
它具有全面的逻辑设计能力,设计者可以自由组合文本、图形和波形输入法,建立起层次化的单器件或多器件设计。
利用该工具配备的编辑、编译、仿真、综合、芯片编程等功能,将设计的电路图或电路描述程序变成基本的逻辑单元写入到可编程芯片中(如CPLD、FPGA),做成ASIC芯片。
它支持FLEX、MAX及Classic等系列CPLD器件,设计者无须精通器件内部的复杂结构,只需用自己熟悉的设计输入工具,如高级行为语言、原理图或波形图进行设计输入,它便将这些设计转换成目标结构所要求的格式,从而简化了设计过程。
而且Max+PlusⅡ提供了丰富的逻辑功能库供设计者使用。
设计者利用以上这些库及自己添加的宏功能模块,可大大减轻设计的工作量。
使用Max+PlusⅡ设计CPLD器件的流程如图4-1所示。
图4-1Max+PlusⅡ设计CPLD器件的流程图
(二)单元模块设计
本设计的核心部件是CPLD芯片,所有信号包括基准频率信号,被测信号均送到CPLD芯片中,基于等精度测频法设计的测频系统包括以下模块:
校正模块、D触发器模块、分频器模块、四位除法器模块、二个十进制计数器模块、乘法器模块、高、低位转换模块、显示模块。
其电路如图4-2所示。
图4-2采用等精度测频法的数字频率计设计
频率测量的原理是:
设CNT10-1和CNT10-2是两个可控十进制计数器。
标准频率信号从CNT10-1的时钟输入端CLK输入,其频率为Fs,被测频率信号从CNT10-2的时钟输入端CLK输入,其频率为Fx。
当预置门控信号为高电平时,被测信号的上升沿通过触发器D的Q端同时启动计数器CNT10-1和CNT10-2。
CNT10-1和CNT10-2分别对标准信号Fs和被测信号Fx同时计数。
当预置门信号为低电平时,随后而至的被测信号的上升沿将使两个计数器同时关闭,所得的计数值经过一系列的计算模块后输出显示。
利用Max+plusII的编程环境,编写校正模块、分频器模块、D触发器模块、计数器模块、除法器模块、乘法器模块、高、低位转换模块、显示模块部分程序。
1.校正模块
AS为测频和自校选择,当AS为‘0’时,为选择测量被测信号频率;
当AS为‘1’时,为选择自校频率测量。
Fs为标准信号,外接EDA试验箱4MHz,Fx为被测信号输入。
此部分电路由原理图输入法完成,其电路如图4-3所示。
图4-3校正模块连接图
校正模块的封装图如4-4所示。
图4-4校正模块封装图
2.分频器模块
此程序要求将4MHz的标准信号转换成合适的标准测量频率信号,以供测量需要。
分频器的封装图如图4-5,图中CLK为标准信号输入的4MHZ信号,CLK0为输出的分频信号。