《基于单片机的智能电子计数器的设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能电子计数器的设计毕业论文.doc(40页珍藏版)》请在三一办公上搜索。
1、 毕业设计(论文)题 目: 基于单片机的智能 电子计数器的设计 学 校: 专 业: 电子信息工程 学生姓名: 指导教师: 毕业设计(论文)时间:二 0 一 一年 3 月 日 5 月 日 共 周摘 要数字频率计是电子测量领域中最常见的测量仪器之一。它可以测量方波和正弦波的频率、周期和脉冲宽度等时间参数。本设计是由单片机控制的数字频率计设计。本文在讨论频率测量的常用方法与原理的基础上,阐述了等精度测频系统的设计。系统包括稳压电源电路、信号放大整形电路、测频电路、单片机电路模块、标准频率信号源、键盘模块、数码显示模块等。采用软硬件结合的方法,频率、周期、脉宽和占空比的计算由单片机89C51完成,外围
2、电路其数字电路部分使用了CPLD,并采用VHDL语言进行设计描述,其输入通道由模拟电路来实现。系统将单片机AT89C51的控制灵活性及CPLD芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。关键词: 频率计 单片机 CPLD 等精度AbstractDigital cymometer is one of the most common instruments of electronic measurement. It can measure time parameters such as the square wave
3、and the sine wave frequency, cycle and pulse width, and so on.The design is the digital cymometer based on the signal chip computer control. Based on the discussion of the commonly used method of measuring frequency and on the basis of principle, it describes the design of frequency measurement syst
4、em with the same accuracy including the power supply system circuit, signal amplification plastic circuit, measuring frequency circuits, MCU circuit module, the standard frequency signal source, keyboard module, the digital display module, and so on. It takes the method of combination of hardware an
5、d software: frequency, period, pulse width and room-occupying ratio of calculation completed by the MCU 89C51, the external circuit part of its digital circuits used with the CPLD, input channels from analog circuits to achieve, and use of VHDL design Description. The system combines the control fle
6、xibility of 89C51 with programmable performance of CPLD, so not only can it shorten the period of the development and research but also has the advantages of compact structure little volume, high reliability, wide scope and high precision. Key Words: cymometer; signal chip computer; CPLD; equal prec
7、ision目录第一章 引言1.1 课题研究的现状与发展趋势1.2 课题研究的意义与作用1.3 数字频率计的基本原理1.4 系统设计技术指标1.4.1 基本指标1.4.2 发挥部分第二章 系统硬件设计2.1 频率测量的方法的研究2.1.1 数字化直接测量频率的原理2.1.2 数字化直接测量周期的原理2.1.3 多周期同步等精度测量的原理2.2 实验方案的确定2.2.1 测量方法的确定2.2.2 频率测量模块的方法2.2.3 周期测量模块的方法2.2.4 脉冲宽度测量模块的方法2.3 系统硬件设计2.3.1 稳压电源电路2.3.2 信号放大整形电路2.3.3 单片机控制电路2.3.4 标准频率信号
8、源2.3.5 数码管显示模块第三章 系统软件设计3.1 CPLD测频专用模块的设计3.1.1 频率计CPLD部分的VHDL程序3.1.2 频率计CPLD部分的仿真 3.2 单片机控制与运算程序的设计3.2.1 单片机主程序的设计3.2.2 频率、周期计数子程序的设计3.2.3 脉宽、占空比子程序的设计3.2.4 键盘扫描及数码管显示子程序的设计总结参考文献致谢第一章 引言1.1 课题研究的现状与发展趋势随着大规模集成电路技术的发展及电子产品市场运作节奏的进一步加快,涉及诸如计算机应用、通信、智能仪表、医用设备、军事、民用电器等领域的现代电子设计技术已迈入一个全新的阶段。在电子测量中,频率的测量
9、精确度是非常高的。利用计数法测量频率具有精度高、使用方便、容易实现测量过程自动化等一系列突出优点,已成为目前频率测量的重要方法。人们将许多参数的测量转换为频率量来测量和处理。传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,在使用过程中存在电路结构复杂,测量精度低、故障率高、维护不易等问题,其产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。频率测量在科技研究和实际应用中的作用日益重要。测量的数字化、智能化是当前测量技术发展的趋势。1.2 课题研究的意义与作用数字频率计数器又称通用计数器,是电子测量领域中最常见的测量仪器之一。它可以测量正弦波的频率(周期),脉冲波的频率(
10、周期),脉冲宽度等时间参数。随着单片机技术的不断发展,用单片机通过软件设计,采用适当的算法取代这部分电路不仅能弥补上述不足,而且性能也将大有提高。针对普通频率计存在读数难、测量精度不高等问题, 目前采用单片机控制的数字频率计, 用于测量方波、正弦波或其它脉冲信号的频率, 并用数字显示, 具有精度高、测量迅速、读数方便等优点, 已经在电子测量领域里得到了广泛应用。MCS51系列单片机具有体积小,功能强,性能价格比较高等特点,因此被广泛应用于工业控制和智能化仪器,仪表等领域。本次设计的数字频率计以AT89C51单片机为核心,具有性能优良,精度高,可靠性好等特点。1.3 数字频率计的基本原理频率计的
11、基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。1.4 系统设计技术指标基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。课题要
12、求运用单片机或者CPLD技术,结合传统直接测量频率方法和等精度测量频率的方法,实现高频和低频的测量,本系统设计的基本指标如下。1.4.1 基本指标(1) 频率:10Hz30MHz (2) 闸门时间为0.1秒、1秒 (3)实现对频率、周期和时间间隔的测量功能1.4.2 发挥部分(1) 信号:方波、正弦波(2) 幅度:0.02V0.5V(3) 周期脉冲宽度幅度(0.5V5V、频率1Hz1KHz)的占空比,占空比变化范围为10%90%,测试误差1%。第二章 系统硬件设计2.1频率测量的方法的研究2.1.1 数字化直接测量频率的原理无论频率、周期还是时间间隔的数字化测量,均是基于主门(闸门)加计数器的
13、结构而实现的,图2.1(a)示出了这种计数式直接测频的原理框图。其中主门(闸门)具有“与门”的逻辑功能。主门(闸门)的一个输入端送入的是频率为的窄脉冲,它是由被测信号经A通道放大整形后得到的。主门(闸门)的另一个输入端送来的是来自门控双稳的闸门时间信号Ts。因为门控双稳是受时基(标准频率)信号控制的,所以Ts即准确又稳定。设计时通过晶体震荡器和分频器的配合,可以获得10S、1S、0.1S等闸门时间。由于主门(闸门)的“与”功能,它的输出端只有在闸门信号Ts有效时间才有频率的窄脉冲输出,并送到计数器去计数。设计数器的值为N,由频率定义式可以计算得到被测信号频率为=N/Ts (2-1)其原理框图和
14、时序图如图2.1所示。(a) 直接测频法原理框图时基脉冲被测信号实际检出信号Ts(b) 直接测频法时序图图2.1 (a)直接测频法原理框图; (b)直接测频法时序图由式(2-1)可知,当闸门时间T为1S时,N值即为被测量信号的频率。该测量方法由于主门的开启时间与被测信号之间不同步,而使计数值N带有1量化误差;且当被测信号频率越低时,该量化误差的影响越大。若再考虑由晶体振荡器引起的闸门时间误差,对式(2-1)进行误差的累积与合成运算后,可以得到直接测量测频率误差的计算公式如下: (2-2)上式右边第一项为量化误差的相对值,其中=1;第二项为闸门时间的相对误差,数值上等于晶体振荡器基准频率的相对不
15、确定度。在一定时,闸门时间T越长,测量准确度越高。而当T选定后,越高,由于1误差对测量结果的影响减小,测量准确度越高。但是随着1误差的影响的减小,闸门时间(也即基准频率)自身的准确度对测量结果的影响不可忽略,这时可以认为是计数式直接测频率准确度的极限。2.1.2 数字化直接测量周期的原理虽然直接测频法可以测出单位时间内脉冲的个数即频率,但是对于较低频率的信号其检测误差会大大增大,解决办法就是改直接测频法为直接测周期法。图2.2(a)为计数式直接测周期的原理框图。与测频原理框图相比,其中门控双稳改由输入信号放大、整形和分频后的脉冲控制,所以闸门时间的宽度就等于k倍被测信号的周期k;而主门的另一个
16、输入端,送入由晶体震荡器和分频器产生的周期为T0的时标脉冲信号。由于主门的“与”功能,它的输出端只有在闸门信号k期间有时标脉冲输出,并送到计数器去计数,计数器的值为N。不难看出,被测信号的周期为: (2-3) 其原理框图和时序图如图2.2所示:(a) 测周期法原理框图被测闸门信号高频基准信号实际检出已知信号Tx(b)测周期法时序图图2.2 (a)测周期法原理框图; (b)测周期法时序图与计数式测频率相似,由于和T0之间也不是同步的,所以计数值N也带有1量化误差;此外由于晶振的不确定度,时标的周期T0也存在误差;最后,由于被测输入信号噪声的影响,使经B通道放大整形后的脉冲周期中还引入了一种触发误
17、差。对式(2-3)进行误差的积累和合成运算,可以得到测周期误差的计算公式如下: (2-4) 上式右边第一项为量化误差的相对值,其中计数误差=1;第二项为时标的相对误差;第三项为触发误差,其中R为被测信号与噪声比,可由公式R=20计算(单位为dB)。要降低触发误差就必须增大信噪比R,并采用多周期测量,还可以在整形电路中采用具有滞回特性电路来减小噪声的影响。 在倍率k和时标T0固定时,与测频率相反,测量周期的误差随被测信号的频率升高而增大,此外由于有限的信噪比,使触发误差成为影响测量周期准确度的主要因素。采用多周期测量可以有效的降低触发误差的影响。 2.1.3 多周期同步等精度测量的原理无论是直接
18、测频法还是测周期法,都无法保证闸门信号和另一信号的首尾实现同步,这就难以保证获得较高的测量精度,其误差在一个脉冲之内。由此,当引入多周期同步等精度测量法时,可以较好的解决这个问题。多周期同步等精度测量法的原理是:电路需引入一个比被测信号频率高若干倍的内部时基信号,测量结果的误差范围便在这一个时基信号范围内。首先由相应的控制电路给出闸门开启信号,此时计数器并不开始计数,而是等到被测信号的上升沿到来时才真正开始计数。然后,两组计数器分别对被测信号和时基信号脉冲计数,当控制电路给出闸门关闭信号,此时计数器并不停止计数,而是等到被测信号的上升沿到来时才真正停止计数。图2.3中为输入信号频率,为时钟脉冲
19、的频率。A、B两个计数器在同一闸门时间T内分别对和进行计数,计数器A的计数值,计数器B的计数值为。由于NAfx=Nfc=T,则被测频率和周期分别为: (2-7)式(2-6)中=1/,为时钟的周期。图2.3中同步电路(D触发器)的作用在于使计数闸门信号与被测信号同步,实现同步开门,并且开门时间T准确地等于被测信号周期的整数倍,故式(2-6)、(2-7)中的计数没有1量化误差。计数器虽然有量化误差,但由于很高,远大于1,所以的1量化误差的相对值(1/)很小,且该误差与被测频率无关,因此在整个测频范围内,多周期同步等精度测量法能够实现等精度的测量。该测试方法需要的除法功能运算,对于使用微处理器的仪器
20、来说,是不难实现的。考虑计数值的1量化误差、时钟的不确定度和同步门的触发误差时,根据式(2-6)和式(2-7)可以推导出倒数计数器的测频、测周期误差的计算公式: (2-8)上式中R=20,为被测信号与噪声比,k为多周期倍率。与式(2-2)、(2-4)相比较,式(2-8)中没有对被测信号计数引起的1量化误差,只有计数器在同步门T周期的1计数误差/,而且与被测量信号的频率无关,即在整个测量频段上是等精度的。这时多周期同步等精度测量法的测频、测周期的精度在整个测量频段上均可达到量级。其原理框图和时序图如图2.3所示。(a)多周期同步等精度测量法原理框 (b)多周期同步等精度测量法时序图图2.3 (a
21、)多周期同步等精度测量法原理框图; (b) 多周期同步等精度测量法时序图2.2 实验方案的确定2.2.1 测量方法的确定 经过2.1节对频率测量和周期测量方法的分析,得知直接测量法不可能满足该任务所要求的测量精度,只要采用多周期同步等精度测量法就可以直接读出被测信号的周期值或者频率值,在中界频率附近能达到较高的测量精度。基于以上讨论,决定选用多周期同步测量法来实现该数字频率计。2.2.2 频率测量模块的方法频率测量模块我们选择等精度测频法,其实现方式可用图2.4来说明。 图2.4 等精度测频原理图 当方波预置门控信号由底变为高电平时,经整形后的别测信号上升沿启动D触发器,由D触发器的R段同时启
22、动可控计数器 CNTI和CNT2同时计数,当预置门为低电平时,随后而至的被测信号使可控计数器同时关闭。设Fx为整形后的被测信号,Fs为基准频率信号,若在一次预置门高电平脉宽时间内被测信号计数值为NX,基准频率计数值NS,则有:Fx=(FsNS)NX2.2.3 周期测量模块的方法周期测量与频率测量完全相同,只是在进行计算时公式不同,用周期T代换等精度频率测量公式中的频率因数即可。计算公式为 (2-15)式中,为被测信号周期的测量值,、分别与(12)式中的Ns、含义相同。2.2.4 脉冲宽度测量模块的方法 在进行脉冲宽度测量时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上部分才能输
23、入数字测量部分。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿是关闭计数器,设脉冲宽度为Twx,计算公式为:Twx=Nx/fs。2.2.5 周期脉冲信号占空比测量模块测一个脉冲信号的脉宽,记其值为Twx1;信号反相后,再测一次脉宽并记录其值Twx2,通过以下公式汁算:占空比T wx1/(Twx1+Twx2)100% (2-17)2.3 系统硬件设计根据频率计的设计要求,我们可将整个电路系统划分为几个基本模块,组成模块框图如图2.5所示。图2.5 频率计组成模块框图其主要由以下几个部分构成:(1) 信号整形电路。用于对待测信号进行放大
24、和整形,以便作为CPLD的输入信号。(2) 测频电路。是测频的核心电路模块,由CPLD器件担任。(3) 单片机电路模块。用于控制CPLD的测频操作和读取测频数据,并作出相应数据处理。(4) 50MHz的标准频率信号源。本模块采用高频率稳定度和高精度的晶振作为标准频率发生器,产生50MHz的标准频率信号直接进入CPLD。(5) 键盘模块。可以用5个键执行测试控制,一个是复位键,其余是命令键。(6) 数码显示模块。可以用7个数码管显示测试结果,最高可表示百万分之一的精度。2.3.1 稳压电源电路 本项设计要求的电源均为5V的直流稳压电源。7905空载时测量输出在6V左右加上负载,输出正常。7805
25、驱动电流可达1A,运行时电流200300mA,7805温度有50度左右。频率计稳压电源电路图如图2.6所示。图2.6 频率计稳压电源电路2.3.2 信号放大整形电路信号放大整形电路包括放大级和整形级两部分。放大级的设计主要考虑增益和带宽的指标。因为后面的整形级采用了电压比较器,所以放大级的增益应根据频率计指标提出的最小输入信号幅度(0.02V)和电压比较器所要求的输入电压的最小压摆率来决定。在本通道中,电压比较器整形级是设计过零触发方式的,因此必须对输入信号过零处的压摆率予以审查。,从输入级到第二放大级其带宽大于10MHz的指标要求完全可以达到的。因为模拟通道部分所用的器件都是带宽高速器件,为
26、了防止寄生振荡,在每个器件的电源引脚附近到地之间均需要加上去耦电容,每组去耦电容由两种电容并联起来,以取得良好的宽频带宽去耦效果。其中容量小的(0.1F)用陶瓷电容,对高频分量有良好的去耦作用;容量大的(6.8F)用钽电解电容,对低频分量有良好的去耦作用。整形级选用输出为TTL电平的高速集成双压比较器MAX902来构成,它比TTL电路有触发灵敏度高、因而可降低放大级增益的优点;上面已讨论过,根据手册提示,使用高速电压比较器时必须保证输入信号的压摆率大于手册上所给的最小容许值,以免在比较器输出信号的前后沿部位产生振荡。此外电源引脚附近也需要加接良好的去耦电容,布线短,数字电源和模拟电源的接地要分
27、开,以免比较器输出端的数字信号干扰模拟电路部分的工作。为了防止输入信号过大而损坏后面的元器件,在输入端加上由一个470电阻和两个二极管组成的限幅保护电路。限幅二极管应选用结电容小,开关时间短,容许的正向电流大且正向压降小的管子,2DK17A开关二极管是符合上述要求的一种。有时被测信号中含有较高的直流分量,为了保证通道放大器正常工作,输入信号应通过隔直流电容耦合到输入级的输入端,为此还要加上交、直流耦合切换开关S1。图2.7 信号放大整形电路2.3.3 单片机控制电路对单片机这部分的主要指标考虑如下:由+5V电源供电,I/O口与TTL电平兼容,并有足够数目的I/O口;要有丰富的四则算术运算和逻辑
28、运算指令,指令执行速度要快;片内除RAM外还要有EPROM;至少有两个16位的定时器/计数器;有外部中断输入引脚;具有串行通信口;价格要低廉。根据以上条件,查阅相关资料,发现8位单片机AT89C51的指标已经能够满足要求。而对于实验环境的限制,能选择的CPLD有限,所以根据实验室的情况选用了XILINX公司的XC9572。由于等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大。因此,我们选择单片机和CPLD的结合来实现。单片机控制电路如图2.8所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD完成各种测试功能;键盘信号由89C51单片机进行处理,它从CPLD
29、读回计数器数据并进行运算,然后向显示电路输出测量结果。等精度数字频率计电路系统原理框图如图2.8所示。系统的基本工作方式如下:(1) P2口是单片机与CPLD的数据传送通信口,P0口为双向控制口。P3口利用键盘显示管理芯片ZLG7289作为数码管显示,实现数据显示。系统的P1口设置5个功能键:占空比、脉宽、周期、频率、自检,进行各测试功能的转换。(2) 7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。(3) Fs为测频标准频率50MHz信号输入端,由晶体振荡源电路提供。(4) Fx为被测信号输入,此待测信号是经放大整形后输入CPLD的。图2.8 等精度数字频率计电路系统原理
30、框图2.3.4 标准频率信号源本设计采用50MHZ的晶体振荡器产生标准频率方波信号(频标)供数字测量电路使用。由公式(2-8)及其讨论可知,多周期同步等精度测量法所达到的测量精度和系统时钟源的精度量级相近。晶体振荡器采用恒温晶振,稳定度可以达到为:2.010724小时。2.3.5 数码管显示模块从实验条件等实际出发考虑,数码管显示模块采用了ZLG7289。ZLG7289是一片具有串行接口的,可同时驱动8位共阴式数码管的显示驱动芯片,同时还可连接多达64键的键盘矩阵,单片即可完成LED显示的全部功能。ZLG7289具有的特点和丰富的指令系统,使得由其组成的LED显示和键盘电路具有外围电路简单,功
31、能强大,使用方便,可靠性高,与MCU接口简单等特点,是LED显示和键盘电路的首选器件。ZLG7289与单片机的连接如下图2.9所示。 图2.9 ZLG7289与单片机的连接因为本设计用等精度测频的方法,预置门时间为1s,在标准频率信号为50MHz的情况下,可以算出测量精度为电路中采用了8位LED显示器.其中7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。当测频率时,有显示指示,为了保证频率计有足够的显示时间,并且在打开门控信号之前,要先清零,以使测量数字计数器每次从零开始计数。第三章 系统软件设计设计包括频率计的测频模块和利用对单片机的编程。单片机的编程又由三部分构成:对C
32、PLD的数据读取及控制信号输出,键盘电路的扫描以及数码管显示输出。3.1 CPLD测频专用模块的设计利用VHDL设计的测频模块主逻辑结构如图3.1所示, 图3.1 等精度频率计主逻辑结构图图3.1中,预置门控信号CL可由单片机发出,可以证明,在1秒至0.1秒间选择的范围内,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为Tpr。BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是他们的允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BLCK输入,设其频率为Fs;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为,被测量频率为
33、。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D的触发器置零,同时通过信号ENA,禁止两个计数器计数。这是一个初始化的操作。然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1(即令START为高电平),与此同时,将同时启动计数器BZH和TF,进入计数允许周期。在此期间,BZH和TF分别对被测信号(频率为)和标准频率信号(频率为Fs)同时计数。当Tpr秒后,预置门信号被单片机置为低电平,但此时两个计数器并没有停止计数,一直等到被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。 被测频率值为,
34、标准频率值为Fs,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns,则下式成立: (3-1)不难得到测得的频率为: FX=FSNXNS (3-2)最后通过控制SEL选择信号和64位至8位的多路选择器MUX,将计数器BHZ和TF中的两个32位数据按照SEL2.0的编码次序,分8次依次读入单片机,并按照各个模块的计算公式进行计算和显示。3.1.1 频率计CPLD部分的VHDL程序根据图3.1的主逻辑结构图和图3.2的测控时序,以及测频原理,可以写出相应的VHDL功能描述。相应的RTL电路图如图3.3。频率计CPLD部分的VHDL程序设计如下:LIBRARY IEEE;
35、 -等精度频率计CPLD设计部分USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY etester IS PORT(BCLK:IN STD_LOGIC; -标准频率时钟信号clock2,50MHZTCLK:IN STD_LOGIC; -待测频率时钟信号CLR:IN STD_LOGIC; -清零和初始化信号CL:IN STD_LOGIC; -当SPUL为高电平时,CL为预置门控信号,用于测频计数 -时间控制当SPUL为低电平时,CL为测脉宽控制信号 -CL高电平时测高电平脉宽而当CL为低电平时,测低电平脉宽SP
36、UL:IN STD_LOGIC; -测频或测脉宽控制START:OUT STD_LOGIC; -起始计数标志信号EEND:OUT STD_LOGIC; -由低电平变到高电平时指示脉宽计数结束SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0); -数据读出选同控制DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据读出END etester; ARCHITECTURE behav OF etester IS SIGNAL BZQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -标准计数器SIGNAL TSQ : STD_
37、LOGIC_VECTOR(31 DOWNTO 0); -测频计数器SIGNAL ENA : STD_LOGIC; -计数使能SIGNAL MA, CLK1, CLK2, CLK3: STD_LOGIC; SIGNAL Q1, Q2, Q3, BENA, 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
38、DOWNTO 16) WHEN SEL=010 ELSE BZQ(31 DOWNTO 24) WHEN SEL=011 ELSE -标准频率计数值最高8位输出TSQ(7 DOWNTO 0) WHEN SEL=100 ELSE -待测频率计数值最低8位输出SQ (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); BZH : PROCESS(BCLK, CLR) -标准频率测
39、试计数器,标准计数器BEGIN IF CLR = 1 THEN BZQ 0);ELSIF BCLKEVENT AND BCLK = 1 THENIF BENA = 1 THEN BZQ = BZQ + 1; END IF;END IF; END PROCESS; 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; P
40、ROCESS (TCLK, CLR) BEGIN IF CLR = 1 THEN ENA = 0; ELSIF TCLKEVENT AND TCLK=1 THEN ENA = CL; END IF; END PROCESS; MA=(TCLK AND CL) OR NOT(TCLK OR CL) ; -测脉宽逻辑CLK1=NOT MA ; CLK2=MA AND Q1 ; CLK3=NOT CLK2; SS=Q2 & Q3;DD1: PROCESS (CLK1, CLR) BEGINIF CLR = 1 THEN Q1 = 0;ELSIF CLK1EVENT AND CLK1 = 1 THEN
41、 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; PUL=1 WHEN SS=10 ELSE-当SS=“10”时,PU
42、L高电平,允许标准计数器计数0 ; -禁止计数EEND=1 WHEN SS=11 ELSE-EEND为低电平时,表示正在计数,由低电平变到高电平 0; -时,表示计数结束,可以从标准计数器中读数据了BENA=ENA WHEN SPUL=1 ELSE -标准计数器时钟使能控制信号,当SPUL为1时,测频率PUL WHEN SPUL=0 ELSE -当SPUL为0时,测脉宽和占空比PUL; END behav;利用VHDL设计的测频模块其中有关的接口信号规定如下:1、BCLK:标准频率输入信号,50MHz。 2、TCLK:待测频率输入信号,0.1Hz10MHz。最高可以为50MHZ。 3、CLR:
43、全局清0和初始化输入,高电平有效,由单片机向CPLD发出。 4、CL:预置门控制输入,时间为1s,高电平有效,由单片机向CPLD发出。 5、SPUL:高电平测频率,低电平测脉宽,由单片机向CPLD发出。 6、START:此信号由单片机读取。在测频时,高电平时表示进入计数周期,低电平时表示计数结束,单片计可以读取CPLD中的计数。 7、EEND:在测脉宽期间(SPUL=0),由低电平变为高电平,表示脉宽计数结束,EEND信号由单片机读取。 8、DATA:计数数据输出,8位,由单片机根据SEL选择信号分别读取。 9、SEL:计数数据读出控制,3位,由单片机输出控制。 当SEL分别等于:“000”、“001”、“010”、“011”;可由DATA分别读出:BZQ7.0、15.8、2