• 816.50 KB
  • 2022-04-22 11:31:56 发布

电子信息工程毕业论文.doc

  • 40页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'毕业设计(论文)题目:基于单片机的智能电子计数器的设计学校:专业:电子信息工程学生姓名:指导教师:毕业设计(论文)时间:二0一一年3月日~5月日共周 摘要数字频率计是电子测量领域中最常见的测量仪器之一。它可以测量方波和正弦波的频率、周期和脉冲宽度等时间参数。本设计是由单片机控制的数字频率计设计。本文在讨论频率测量的常用方法与原理的基础上,阐述了等精度测频系统的设计。系统包括稳压电源电路、信号放大整形电路、测频电路、单片机电路模块、标准频率信号源、键盘模块、数码显示模块等。采用软硬件结合的方法,频率、周期、脉宽和占空比的计算由单片机89C51完成,外围电路其数字电路部分使用了CPLD,并采用VHDL语言进行设计描述,其输入通道由模拟电路来实现。系统将单片机AT89C51的控制灵活性及CPLD芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。关键词:频率计单片机CPLD等精度IIII AbstractDigitalcymometerisoneofthemostcommoninstrumentsofelectronicmeasurement.Itcanmeasuretimeparameterssuchasthesquarewaveandthesinewavefrequency,cycleandpulsewidth,andsoon.Thedesignisthedigitalcymometerbasedonthesignalchipcomputercontrol.Basedonthediscussionofthecommonlyusedmethodofmeasuringfrequencyandonthebasisofprinciple,itdescribesthedesignoffrequencymeasurementsystemwiththesameaccuracyincludingthepowersupplysystemcircuit,signalamplificationplasticcircuit,measuringfrequencycircuits,MCUcircuitmodule,thestandardfrequencysignalsource,keyboardmodule,thedigitaldisplaymodule,andsoon.Ittakesthemethodofcombinationofhardwareandsoftware:frequency,period,pulsewidthandroom-occupyingratioofcalculationcompletedbytheMCU89C51,theexternalcircuitpartofitsdigitalcircuitsusedwiththeCPLD,inputchannelsfromanalogcircuitstoachieve,anduseofVHDLdesignDescription.Thesystemcombinesthecontrolflexibilityof89C51withprogrammableperformanceofCPLD,sonotonlycanitshortentheperiodofthedevelopmentandresearchbutalsohastheadvantagesofcompactstructurelittlevolume,highreliability,widescopeandhighprecision.KeyWords:cymometer;signalchipcomputer;CPLD;equalprecisionIII目录III目录第一章引言III 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标准频率信号源2.3.5数码管显示模块第三章系统软件设计3.1CPLD测频专用模块的设计3.1.1频率计CPLD部分的VHDL程序III3.1.2频率计CPLD部分的仿真3.2单片机控制与运算程序的设计3.2.1单片机主程序的设计3.2.2频率、周期计数子程序的设计2V 3.2.3脉宽、占空比子程序的设计3.2.4键盘扫描及数码管显示子程序的设计总结参考文献致谢2V 第一章引言1.1课题研究的现状与发展趋势随着大规模集成电路技术的发展及电子产品市场运作节奏的进一步加快,涉及诸如计算机应用、通信、智能仪表、医用设备、军事、民用电器等领域的现代电子设计技术已迈入一个全新的阶段。在电子测量中,频率的测量精确度是非常高的。利用计数法测量频率具有精度高、使用方便、容易实现测量过程自动化等一系列突出优点,已成为目前频率测量的重要方法。人们将许多参数的测量转换为频率量来测量和处理。传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,在使用过程中存在电路结构复杂,测量精度低、故障率高、维护不易等问题,其产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。频率测量在科技研究和实际应用中的作用日益重要。测量的数字化、智能化是当前测量技术发展的趋势。1.2课题研究的意义与作用数字频率计数器又称通用计数器,是电子测量领域中最常见的测量仪器之一。它可以测量正弦波的频率(周期),脉冲波的频率(周期),脉冲宽度等时间参数。随着单片机技术的不断发展,用单片机通过软件设计,采用适当的算法取代这部分电路不仅能弥补上述不足,而且性能也将大有提高。针对普通频率计存在读数难、测量精度不高等问题,目前采用单片机控制的数字频率计,用于测量方波、正弦波或其它脉冲信号的频率,并用数字显示,具有精度高、测量迅速、读数方便等优点,已经在电子测量领域里得到了广泛应用。MCS—51系列单片机具有体积小,功能强,性能价格比较高等特点,因此被广泛应用于工业控制和智能化仪器,仪表等领域。本次设计的数字频率计以AT89C51单片机为核心,具有性能优良,精度高,可靠性好等特点。21.3数字频率计的基本原理频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。2闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。2 数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。1.4系统设计技术指标基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。课题要求运用单片机或者CPLD技术,结合传统直接测量频率方法和等精度测量频率的方法,实现高频和低频的测量,本系统设计的基本指标如下。1.4.1基本指标(1)频率:10Hz~30MHz(2)闸门时间为0.1秒、1秒(3)实现对频率、周期和时间间隔的测量功能1.4.2发挥部分(1)信号:方波、正弦波(2)幅度:0.02V~0.5V(3)周期脉冲宽度幅度(0.5V~5V、频率1Hz~1KHz)的占空比,占空比变化范围为10%~90%,测试误差≤1%。23 第二章系统硬件设计2.1频率测量的方法的研究2.1.1数字化直接测量频率的原理无论频率、周期还是时间间隔的数字化测量,均是基于主门(闸门)加计数器的结构而实现的,图2.1(a)示出了这种计数式直接测频的原理框图。其中主门(闸门)具有“与门”的逻辑功能。主门(闸门)的一个输入端送入的是频率为的窄脉冲,它是由被测信号经A通道放大整形后得到的。主门(闸门)的另一个输入端送来的是来自门控双稳的闸门时间信号Ts。因为门控双稳是受时基(标准频率)信号控制的,所以Ts即准确又稳定。设计时通过晶体震荡器和分频器的配合,可以获得10S、1S、0.1S等闸门时间。由于主门(闸门)的“与”功能,它的输出端只有在闸门信号Ts有效时间才有频率的窄脉冲输出,并送到计数器去计数。设计数器的值为N,由频率定义式可以计算得到被测信号频率为=N/Ts(2-1)其原理框图和时序图如图2.1所示。3(a)直接测频法原理框图时基脉冲被测信号实际检出信号Ts(b)直接测频法时序图图2.1(a)直接测频法原理框图;(b)直接测频法时序图5 由式(2-1)可知,当闸门时间T为1S时,N值即为被测量信号的频率。该测量方法由于主门的开启时间与被测信号之间不同步,而使计数值N带有±1量化误差;且当被测信号频率越低时,该量化误差的影响越大。若再考虑由晶体振荡器引起的闸门时间误差,对式(2-1)进行误差的累积与合成运算后,可以得到直接测量测频率误差的计算公式如下:(2-2)上式右边第一项为量化误差的相对值,其中=±1;第二项为闸门时间的相对误差,数值上等于晶体振荡器基准频率的相对不确定度。在一定时,闸门时间T越长,测量准确度越高。而当T选定后,越高,由于±1误差对测量结果的影响减小,测量准确度越高。但是随着±1误差的影响的减小,闸门时间(也即基准频率)自身的准确度对测量结果的影响不可忽略,这时可以认为是计数式直接测频率准确度的极限。542.1.2数字化直接测量周期的原理虽然直接测频法可以测出单位时间内脉冲的个数即频率,但是对于较低频率的信号其检测误差会大大增大,解决办法就是改直接测频法为直接测周期法。图2.2(a)为计数式直接测周期的原理框图。与测频原理框图相比,其中门控双稳改由输入信号放大、整形和分频后的脉冲控制,所以闸门时间的宽度就等于k倍被测信号的周期k;而主门的另一个输入端,送入由晶体震荡器和分频器产生的周期为T0的时标脉冲信号。由于主门的“与”功能,它的输出端只有在闸门信号k期间有时标脉冲输出,并送到计数器去计数,计数器的值为N。不难看出,被测信号的周期为:(2-3)其原理框图和时序图如图2.2所示:5 (a)测周期法原理框图被测闸门信号高频基准信号实际检出已知信号Tx5(b)测周期法时序图图2.2(a)测周期法原理框图;(b)测周期法时序图6与计数式测频率相似,由于和T0之间也不是同步的,所以计数值N也带有±1量化误差;此外由于晶振的不确定度,时标的周期T0也存在误差;最后,由于被测输入信号噪声的影响,使经B通道放大整形后的脉冲周期中还引入了一种触发误差。对式(2-3)进行误差的积累和合成运算,可以得到测周期误差的计算公式如下:(2-4)上式右边第一项为量化误差的相对值,其中计数误差Δ=±1;第二项为时标的相对误差;第三项为触发误差θ,其中R为被测信号与噪声比,可由公式R=20㏒计算(单位为dB)6 。要降低触发误差就必须增大信噪比R,并采用多周期测量,还可以在整形电路中采用具有滞回特性电路来减小噪声的影响。在倍率k和时标T0固定时,与测频率相反,测量周期的误差随被测信号的频率升高而增大,此外由于有限的信噪比,使触发误差成为影响测量周期准确度的主要因素。采用多周期测量可以有效的降低触发误差的影响。2.1.3多周期同步等精度测量的原理无论是直接测频法还是测周期法,都无法保证闸门信号和另一信号的首尾实现同步,这就难以保证获得较高的测量精度,其误差在一个脉冲之内。由此,当引入多周期同步等精度测量法时,可以较好的解决这个问题。6多周期同步等精度测量法的原理是:电路需引入一个比被测信号频率高若干倍的内部时基信号,测量结果的误差范围便在这一个时基信号范围内。首先由相应的控制电路给出闸门开启信号,此时计数器并不开始计数,而是等到被测信号的上升沿到来时才真正开始计数。然后,两组计数器分别对被测信号和时基信号脉冲计数,当控制电路给出闸门关闭信号,此时计数器并不停止计数,而是等到被测信号的上升沿到来时才真正停止计数。图2.3中为输入信号频率,为时钟脉冲的频率。A、B两个计数器在同一闸门时间T内分别对和进行计数,计数器A的计数值,计数器B的计数值为。由于NA/fx=N/fc=T,则被测频率和周期分别为:6(2-7)式(2-6)中=1/,为时钟的周期。图2.3中同步电路(D触发器)的作用在于使计数闸门信号与被测信号同步,实现同步开门,并且开门时间T准确地等于被测信号周期的整数倍,故式(2-6)、(2-7)中的计数没有±1量化误差。计数器虽然有量化误差,但由于很高,远大于1,所以的±1量化误差的相对值(±1/)很小,且该误差与被测频率无关,因此在整个测频范围内,多周期同步等精度测量法能够实现等精度的测量。该测试方法需要的除法功能运算,对于使用微处理器的仪器来说,是不难实现的。考虑计数值的±1量化误差、时钟的不确定度和同步门的触发误差时,根据式(2-6)和式(2-7)可以推导出倒数计数器的测频、测周期误差的计算公式:(2-8)上式中R=20㏒,为被测信号与噪声比,k为多周期倍率。与式(2-2)、(2-4)相比较,式(2-8)中没有对被测信号计数引起的±1量化误差,只有计数器在同步门T周期的±1计数误差/7 ,而且与被测量信号的频率无关,即在整个测量频段上是等精度的。这时多周期同步等精度测量法的测频、测周期的精度在整个测量频段上均可达到量级。7其原理框图和时序图如图2.3所示。(a)多周期同步等精度测量法原理框7(b)多周期同步等精度测量法时序图9图2.3(a)多周期同步等精度测量法原理框图;(b)多周期同步等精度测量法时序图2.2实验方案的确定8 2.2.1测量方法的确定经过2.1节对频率测量和周期测量方法的分析,得知直接测量法不可能满足该任务所要求的测量精度,只要采用多周期同步等精度测量法就可以直接读出被测信号的周期值或者频率值,在中界频率附近能达到较高的测量精度。基于以上讨论,决定选用多周期同步测量法来实现该数字频率计。2.2.2频率测量模块的方法频率测量模块我们选择等精度测频法,其实现方式可用图2.4来说明。图2.4等精度测频原理图8当方波预置门控信号由底变为高电平时,经整形后的别测信号上升沿启动D触发器,由D触发器的R段同时启动可控计数器CNTI和CNT2同时计数,当预置门为低电平时,随后而至的被测信号使可控计数器同时关闭。设Fx为整形后的被测信号,Fs为基准频率信号,若在一次预置门高电平脉宽时间内被测信号计数值为NX,基准频率计数值NS,则有:Fx=(Fs/NS)NX2.2.3周期测量模块的方法周期测量与频率测量完全相同,只是在进行计算时公式不同,用周期T代换等精度频率测量公式中的频率因数即可。计算公式为(2-15)式中,为被测信号周期的测量值,、分别与(1—2)式中的Ns、含义相同。2.2.4脉冲宽度测量模块的方法9 在进行脉冲宽度测量时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上部分才能输入数字测量部分。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿是关闭计数器,设脉冲宽度为Twx,计算公式为:Twx=Nx/fs。2.2.5周期脉冲信号占空比测量模块测一个脉冲信号的脉宽,记其值为Twx1;信号反相后,再测一次脉宽并记录其值Twx2,通过以下公式汁算:占空比Twx1/(Twx1+Twx2)]×100%(2-17)92.3系统硬件设计根据频率计的设计要求,我们可将整个电路系统划分为几个基本模块,组成模块框图如图2.5所示。13图2.5频率计组成模块框图其主要由以下几个部分构成:(1)信号整形电路。用于对待测信号进行放大和整形,以便作为CPLD的输入信号。(2)测频电路。是测频的核心电路模块,由CPLD器件担任。(3)单片机电路模块。用于控制CPLD的测频操作和读取测频数据,并作出相应数据处理。(4)50MHz10 的标准频率信号源。本模块采用高频率稳定度和高精度的晶振作为标准频率发生器,产生50MHz的标准频率信号直接进入CPLD。(5)键盘模块。可以用5个键执行测试控制,一个是复位键,其余是命令键。(6)数码显示模块。可以用7个数码管显示测试结果,最高可表示百万分之一的精度。102.3.1稳压电源电路本项设计要求的电源均为±5V的直流稳压电源。7905空载时测量输出在6V左右.加上负载,输出正常。7805驱动电流可达1A,运行时电流200~300mA,7805温度有50度左右。14频率计稳压电源电路图如图2.6所示。图2.6频率计稳压电源电路2.3.2信号放大整形电路信号放大整形电路包括放大级和整形级两部分。放大级的设计主要考虑增益和带宽的指标。因为后面的整形级采用了电压比较器,所以放大级的增益应根据频率计指标提出的最小输入信号幅度(0.02V)和电压比较器所要求的输入电压的最小压摆率来决定。在本通道中,电压比较器整形级是设计过零触发方式的,因此必须对输入信号过零处的压摆率予以审查。,从输入级到第二放大级其带宽大于10MHz的指标要求完全可以达到的。14因为模拟通道部分所用的器件都是带宽高速器件,为了防止寄生振荡,在每个器件的电源引脚附近到地之间均需要加上去耦电容,每组去耦电容由两种电容并联起来,以取得良好的宽频带宽去耦效果。其中容量小的(0.1μF)用陶瓷电容,对高频分量有良好的去耦作用;容量大的(6.8μF)用钽电解电容,对低频分量有良好的去耦作用。11 整形级选用输出为TTL电平的高速集成双压比较器MAX902来构成,它比TTL电路有触发灵敏度高、因而可降低放大级增益的优点;上面已讨论过,根据手册提示,使用高速电压比较器时必须保证输入信号的压摆率大于手册上所给的最小容许值,以免在比较器输出信号的前后沿部位产生振荡。此外电源引脚附近也需要加接良好的去耦电容,布线短,数字电源和模拟电源的接地要分开,以免比较器输出端的数字信号干扰模拟电路部分的工作。为了防止输入信号过大而损坏后面的元器件,在输入端加上由一个470电阻和两个二极管组成的限幅保护电路。限幅二极管应选用结电容小,开关时间短,容许的正向电流大且正向压降小的管子,2DK17A开关二极管是符合上述要求的一种。有时被测信号中含有较高的直流分量,为了保证通道放大器正常工作,输入信号应通过隔直流电容耦合到输入级的输入端,为此还要加上交、直流耦合切换开关S1。图2.7信号放大整形电路112.3.3单片机控制电路对单片机这部分的主要指标考虑如下:①由+5V电源供电,I/O口与TTL电平兼容,并有足够数目的I/O口;②要有丰富的四则算术运算和逻辑运算指令,指令执行速度要快;③片内除RAM外还要有EPROM;④至少有两个16位的定时器/计数器;⑤有外部中断输入引脚;⑥具有串行通信口;⑦价格要低廉。根据以上条件,查阅相关资料,发现8位单片机AT89C51的指标已经能够满足要求。而对于实验环境的限制,能选择的CPLD有限,所以根据实验室的情况选用了XILINX公司的XC9572。12 由于等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大。因此,我们选择单片机和CPLD的结合来实现。单片机控制电路如图2.8所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD完成各种测试功能;键盘信号由89C51单片机进行处理,它从CPLD读回计数器数据并进行运算,然后向显示电路输出测量结果。等精度数字频率计电路系统原理框图如图2.8所示。系统的基本工作方式如下:(1)P2口是单片机与CPLD的数据传送通信口,P0口为双向控制口。P3口利用键盘显示管理芯片ZLG7289作为数码管显示,实现数据显示。系统的P1口设置5个功能键:占空比、脉宽、周期、频率、自检,进行各测试功能的转换。(2)7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。(3)Fs为测频标准频率50MHz信号输入端,由晶体振荡源电路提供。(4)Fx为被测信号输入,此待测信号是经放大整形后输入CPLD的。12图2.8等精度数字频率计电路系统原理框图13 2.3.4标准频率信号源本设计采用50MHZ的晶体振荡器产生标准频率方波信号(频标)供数字测量电路使用。由公式(2-8)及其讨论可知,多周期同步等精度测量法所达到的测量精度和系统时钟源的精度量级相近。晶体振荡器采用恒温晶振,稳定度可以达到为:2.0×107/24小时。132.3.5数码管显示模块从实验条件等实际出发考虑,数码管显示模块采用了ZLG7289。ZLG7289是一片具有串行接口的,可同时驱动8位共阴式数码管的显示驱动芯片,同时还可连接多达64键的键盘矩阵,单片即可完成LED显示的全部功能。ZLG7289具有的特点和丰富的指令系统,使得由其组成的LED显示和键盘电路具有外围电路简单,功能强大,使用方便,可靠性高,与MCU接口简单等特点,是LED显示和键盘电路的首选器件。ZLG7289与单片机的连接如下图2.9所示。图2.9ZLG7289与单片机的连接因为本设计用等精度测频的方法,预置门时间为1s,在标准频率信号为50MHz的情况下,可以算出测量精度为电路中采用了8位LED显示器.其中7个LED14 数码管组成测量数据显示器,另一个独立的数码管用于状态显示。当测频率时,有显示指示,为了保证频率计有足够的显示时间,并且在打开门控信号之前,要先清零,以使测量数字计数器每次从零开始计数。14177第三章系统软件设计15 设计包括频率计的测频模块和利用对单片机的编程。单片机的编程又由三部分构成:对CPLD的数据读取及控制信号输出,键盘电路的扫描以及数码管显示输出。153.1CPLD测频专用模块的设计利用VHDL设计的测频模块主逻辑结构如图3.1所示,58图3.1等精度频率计主逻辑结构图图3.1中,预置门控信号CL可由单片机发出,可以证明,在1秒至0.1秒间选择的范围内,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为Tpr。BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是他们的允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BLCK输入,设其频率为Fs;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为,被测量频率为。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D的触发器置零,同时通过信号ENA,禁止两个计数器计数。这是一个初始化的操作。然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1(即令START为高电平),与此同时,将同时启动计数器BZH和TF,进入计数允许周期。在此期间,BZH和TF分别对被测信号(频率为)和标准频率信号(频率为Fs)同时计数。当Tpr秒后,预置门信号被单片机置为低电平,但此时17 两个计数器并没有停止计数,一直等到被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。被测频率值为,标准频率值为Fs,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns,则下式成立:(3-1)不难得到测得的频率为:FX=FS×NX/NS(3-2)最后通过控制SEL选择信号和64位至8位的多路选择器MUX,将计数器BHZ和TF中的两个32位数据按照SEL[2..0]的编码次序,分8次依次读入单片机,并按照各个模块的计算公式进行计算和显示。3.1.1频率计CPLD部分的VHDL程序根据图3.1的主逻辑结构图和图3.2的测控时序,以及测频原理,可以写出相应的VHDL功能描述。相应的RTL电路图如图3.3。频率计CPLD部分的VHDL程序设计如下:LIBRARYIEEE;--等精度频率计CPLD设计部分USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYetesterISPORT(BCLK:INSTD_LOGIC;--标准频率时钟信号clock2,50MHZTCLK:INSTD_LOGIC;--待测频率时钟信号CLR:INSTD_LOGIC;--清零和初始化信号CL:INSTD_LOGIC;--当SPUL为高电平时,CL为预置门控信号,用于测频计数--时间控制当SPUL为低电平时,CL为测脉宽控制信号--CL高电平时测高电平脉宽而当CL为低电平时,测低电平脉宽SPUL:INSTD_LOGIC;--测频或测脉宽控制16START:OUTSTD_LOGIC;--起始计数标志信号EEND:OUTSTD_LOGIC;--由低电平变到高电平时指示脉宽计数结束SEL:INSTD_LOGIC_VECTOR(2DOWNTO0);--数据读出选同控制DATA:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位数据读出17 ENDetester;ARCHITECTUREbehavOFetesterISSIGNALBZQ:STD_LOGIC_VECTOR(31DOWNTO0);--标准计数器SIGNALTSQ:STD_LOGIC_VECTOR(31DOWNTO0);--测频计数器SIGNALENA:STD_LOGIC;--计数使能SIGNALMA,CLK1,CLK2,CLK3:STD_LOGIC;SIGNALQ1,Q2,Q3,BENA,PUL:STD_LOGIC;SIGNALSS:STD_LOGIC_VECTOR(1DOWNTO0);BEGINSTART<=ENA;DATA<=BZQ(7DOWNTO0)WHENSEL="000"ELSE--标准频率计数低8位输出BZQ(15DOWNTO8)WHENSEL="001"ELSEBZQ(23DOWNTO16)WHENSEL="010"ELSEBZQ(31DOWNTO24)WHENSEL="011"ELSE--标准频率计数值最高8位输出TSQ(7DOWNTO0)WHENSEL="100"ELSE--待测频率计数值最低8位输出SQ(15DOWNTO8)WHENSEL="101"ELSETSQ(23DOWNTO16)WHENSEL="110"ELSETSQ(31DOWNTO24)WHENSEL="111"ELSE--待测频率计数值最高8位输出TSQ(31DOWNTO24);BZH:PROCESS(BCLK,CLR)--标准频率测试计数器,标准计数器17BEGINIFCLR="1"THENBZQ<=(OTHERS=>"0");ELSIFBCLK"EVENTANDBCLK="1"THENIFBENA="1"THENBZQ<=BZQ+1;ENDIF;ENDIF;ENDPROCESS;23TF:PROCESS(TCLK,CLR,ENA)--待测频率计数器,测频计数器BEGINIFCLR="1"THENTSQ<=(OTHERS=>‘0’);ELSIFTCLK"EVENTANDTCLK="1"THENIFENA="1"THENTSQ<=TSQ+1;ENDIF;18 ENDIF;ENDPROCESS;PROCESS(TCLK,CLR)BEGINIFCLR="1"THENENA<=‘0’;ELSIFTCLK"EVENTANDTCLK="1"THENENA<=CL;ENDIF;ENDPROCESS;MA<=(TCLKANDCL)ORNOT(TCLKORCL);--测脉宽逻辑CLK1<=NOTMA;CLK2<=MAANDQ1;CLK3<=NOTCLK2;SS<=Q2&Q3;DD1:PROCESS(CLK1,CLR)BEGINIFCLR="1"THENQ1<=‘0’;18ELSIFCLK1"EVENTANDCLK1="1"THENQ1<=‘1’;ENDIF;ENDPROCESS;DD2:PROCESS(CLK2,CLR)BEGINIFCLR="1"THENQ2<=‘0’;ELSIFCLK2"EVENTANDCLK2="1"THENQ2<=‘1’;ENDIF;ENDPROCESS;DD3:PROCESS(CLK3,CLR)BEGINIFCLR="1"THENQ3<=‘0’;ELSIFCLK3"EVENTANDCLK3="1"THENQ3<=‘1’;ENDIF;ENDPROCESS;19PUL<="1"WHENSS="10"ELSE--当SS=“10”时,PUL高电平,允许标准计数器计数"0";--禁止计数EEND<="1"WHENSS="11"ELSE--EEND为低电平时,表示正在计数,由低电平变到高电平"0";--时,表示计数结束,可以从标准计数器中读数据了19 BENA<=ENAWHENSPUL="1"ELSE--标准计数器时钟使能控制信号,当SPUL为1时,测频率19PULWHENSPUL="0"ELSE--当SPUL为0时,测脉宽和占空比PUL;ENDbehav;利用VHDL设计的测频模块其中有关的接口信号规定如下:1、BCLK:标准频率输入信号,50MHz。2、TCLK:待测频率输入信号,0.1Hz–10MHz。最高可以为50MHZ。3、CLR:全局清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分别读出:BZQ[7..0]、[15..8]、[23..16]、[31..24]共32位。当SEL分别等于:“100”、“101”、“110”、“111”;可由DATA分别读出:TSQ[7..0]、[15..8]、[23..16]、[31..24]共32位。203.1.2频率计CPLD部分的仿真图3.4和图3.5分别是频率测试仿真波形和脉宽测试仿真波形。从图3.4可以看出,SPUL="1"时,系统进行等精度测频。这时,CLR一个正脉冲后,系统被初始化。然后CL被置为高电平,但这时两个计数器并未开始计数(START="0"),直到此后被测信号TCLK出现一个上升沿,START=‘1’时2个计数器同时启动分别对被测信号和标准信号开始计数,其中BZQ和TSQ分别为标准频率计数器和被测频率计数器的计数值。由图可见,在CL变为低电平后,计数仍未停止,直到TCLK出现一个上升沿为止,这时START="0",可作为单片机了解计数结束的标志信号。仿真波形中TCLK和BCLK的周期分别设置为10μ20 s和500ns。由图可见,计数结果是,对TCLK的计数值是5,对BCLK的计数值是64(十六进制)。通过控制SEL就能按照8个8位将两个计数器中的32位数读入单片机中进行计算。从图中的波形可以看出,VHDL部分描述的测频的功能完全正确。2025图3.4频率/周期测量仿真图图3.5脉宽/占空比测量仿真图图3.5中,取SPUL="0"时,则系统进行脉宽测试。为了便于观察,图中仿真波形中的TCLK和BCLK的周期分别设置为75μs和500ns。由VHDL程序和RTL电路图可以分析,CL和CLR的功能都发生了变化,前者为"1"时测信号高电平的脉宽,为"0"时测低电平的脉宽;而后者CLR变为‘1’时作系统初始化,由‘1’变为‘0’后启动电路系统的标准信号计数器BZQ准备对标准频率进行计数。而允许计数的条件是此后出现的第一个脉宽的宽度。由图3.5可见,当CL=‘1’21 ,TCLK的高电平脉冲到来时,即启动了BZQ进行计数,而在TCLK的低电平到来时停止计数,状态信号EEND则由低电平变为高电平,告诉单片机计数结束。计数值可以通过SEL读出,这里是4BH。21由此不难算出,TCLK的高电平脉宽应该等于4BH乘以BCLK的周期。改变CL为‘0’,又能测出TCLK的低电平脉宽,从而可以获得TCLK的周期和占空比。223.2单片机控制与运算程序的设计完成VHDL硬件语言编程,系统内CPLD芯片中的逻辑资源尚缺一点即可大功告成,系统需要单片机为它实现控制,运算,显示等功能。所以,采用89C51单片机控制模块对各种信号进行处理并显示。与单片机可以按照如下方式接口:(1)单片机的P0口接八位数据DATA[7..0],负责读取测频数据。(2)单片机可以通过信号START(P2.7),指示计数是否结束,以确定何时可以读取数据。(3)P2.0、P2.1、P2.2与SEL[2..0]相接,用于控制多路通道的数据选择。当SEL分别为“000”、“001”、“010”、“011”时,由低八位到高八位读出标准频率计数值;当SEL分别为“100”、“101”、“110”、“111”;由低八位到高八位读出待测频率计数值。(4)EEND(P2.3)与START功能基本相同,当其由低电平变到高电平使指示脉冲宽度计数结束。(5)P2.5和P2.6分别接控制信号CL和SPUL。CL和SPUL协同控制测试操作。即当为‘1’时,CL作为测脉宽控制信号。这时,CL若为‘1’,测TCLK的高电平脉宽,而当CL为‘0’,则测TCLK的低电平脉宽。然后分别从DATA数据口读出BZH对标准频率的计数,即只需令SEL的取值分别为“000”、“001”、“010”、“011”即可。(6)P0.0接清零信号CLR,高电平有效。每一测频周期开始时,都应该首先清零。3.2.1单片机主程序的设计当系统通过5V电源供电时,自动进入自检状态,由单片机发出按键扫描信号对各个按键进行扫描。系统进行初始化后,此时当某键按下时,程序跳转到相应的子程序执行功能,然后返回继续执行键盘扫描主程序。单片机控制主程序流程图如图3.6。2330 图3.6单片机主程序流程图3.2.2频率、周期计数子程序的设计如果按下测频键,则开始测量过程:首先,由单片机的P2.4发出一个清零信号P2.4=1,把计数使能信号START的预置门控信号CL置成0。然后P2.5(CL控制端)给出一个高电平的脉冲,长度控制在0.1秒至1秒之间。在此过程中,CPLD部分已经完成测频的任务。P2.5(CL控制端)下跳成0后,要有一个延迟时间单片机再开始读取CPLD信息,这个延迟由单片机控制,长度要大于等于待测量信号的一个周期。然后就是读取待测频率的过程了,P0口负责读取数据。P2.0、P2.1、P2.2与SEL[2..0]相接,用于控制多路通道的数据选择。当SEL分别为“000”、“001”、“010”、“011”时,由低八位到高八位读出标准频率计数值;当SEL分别为“100”、“101”、“110”、“111”;由低八位到高八位读出待测频率计数值。然后单片机计算(Fs/Ns)·Nx值,通过ZLG7289传给LED显示。22 在测量周期时只要将计算结果由频率值取倒数转换为周期值即可。图3.7频率、周期计数子程序流程图23 图3.8测周期子程序流程图2425 图3.9测频率子程序流程图3.2.3脉宽、占空比子程序的设计脉宽测量子程序与周期测量子程序基本一致,脉宽测量是将被测量信号的脉宽作为闸门信号对标准频率计数。占空比子程序是分别测量出高低电平的脉宽计数值N1,N2,由公式占空比=N1/(N1+N2)*100%算出。25图3.10脉宽、占空比计数子程序流程图26 26 图3.11测脉宽子程序流程图3.2.4键盘扫描及数码管显示子程序的设计键盘采用的是循环扫描的工作方式,当有键输入时,将读到的键值存入预存单元,用软件延时10ms消除抖动,再读键值,和原键值进行比较,若不相同,则继续进入扫描,如相同,则跳转到相应的入口执行子程序。单片机读入测量结果后,还要根据等精度测频原理进行计算,才能得到最终的测量结果。图3.12为键盘扫描子程序的流程图。数码管显示部分采用的是ZLG7289。ZLG7289是一片具有串行接口的,可同时驱动8位共阴式数码管的显示驱动芯片,单片即可完成LED显示。显示子程序的流程图如图3.13所示。27 图3.12扫描子程序流程图28 图3.13显示子程序流程图2929 总结1.在系统总体设计方面,充分利用单片机和CPLD各自的优势,将测控的主体分配给CPLD,既可满足频测对速度方面的要求和多I/O口的要求,同时利用单片机具有良好的人机接口和控制运算的功能,可以较简单地实现键盘和显示控制以及数据处理运算。2.在频率测量方面,由于采用了等精度测频法,使该系统具有以下特点:①相对测量误差与被测频率的高低无关;②增大或可以增大Ns,减少测量误差,提高测量精度;③测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变。3.在显示方面,采用串行接口8位LED数码管及64键键盘智能控制芯片ZLG7289,节约了I/O口,简化了驱动电路的设计。30 致谢三个月的时间很快过去了,在这里首先要感谢院、系领导给予的大力支持,为我们提供了良好的设计条件,特别要感谢指导老师给予的悉心指导和不厌其烦的热情帮助。在此谨向导师表示最衷心的感谢、并致以崇高的敬意。同时要感谢参加论文评审和答辩委员会的各位老师,感谢他们对我的论文提出了宝贵的建议。在过去的这段时间中,我得到了来自各方面的热情帮助,在此向在我学业生涯中所有帮助过我的朋友表示深深的谢意.31 参考文献[1]张杰,杨艳丽,马莉莉等.基于单片机C语言的数字频率计设计[J].内蒙古农业大学学报,2007,28(2):191~192.[2]邹道生,李铭,杨汉祥.多功能数字频率计的设计[J].赣南师范学院学报,2004,3:16~18.[3]李春树.基于AT89C51单片机的等精度数显频率计[J].零陵学院学报,2003,24(2):50~54..[4]王保强,窦文,白红.高精度测频方案设计[J].成都信息工程学院学报,2002,2:77~81.[5]洛家华.用MCS51系列单片机测量频率的方法研究[J].辽宁工学院学报,2000(5).32~33.[6]孙笑雨.用单片机实现高精度数字频率计[J].沈阳高等专科学校学报,1999,1(3):20~22.[7]刘永强.8031单片机测频方法及其应用[J].自动化与仪器仪表,1997,(4).[8]徐淑华,程退安,姚万生.单片机微型机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,1994.[9]公茂法.单片机人机接口实例集[M].北京航天航空大学出版社,1997.[10]马宏杰,张思东等.微机通信原理与实用技术[M].北京:清华大学出版社,1994.[11]张德贞.基于单片机的数字频率计[D].黄河科技大学,2002.[12]张永艳.基于复杂可编程逻辑器件及用VHDL语言编程的数字频率计的设计[D].内蒙古大学,2004.[13]张永安.基于CPLD的多功能等精度数字频率计的设计[D].内蒙古大学,2004.[14]刘夫江.基于单片机和CPLD的等精度数字频率计设计[D].山东科技大学,2007.3236 外文翻译AT89C51TheAT89C51isalow-power,high-performanceCMOS8-bitmicrocomputerwith4KbytesofFlashprogrammableanderasablereadonlymemory(PEROM)and128bytesofdatarandom-accessmemory(RAM).ThedeviceismanufacturedusingATMELCo.’shigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindustry-standardMCS-51instructionsetandpin-out.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithFlashonamonolithicchip,theATMELCo.’sAT89C51isapowerfulmicrocomputerwhichprovidesahighly-flexibleandcost-effectivesolutiontomanyembeddedcontrolapplications.Features:·CompatiblewithinstructionsetofMCS-51products·4Kbytesofin-systemreprogrammableFlashmemory·Endurance:1000write/erasecycles·Fullystaticoperation:0Hzto24MHz·Three-levelprogrammemorylock·128×8-bitinternalRAM·32programmableI/Olines·Two16-bitTimer/Counters·Sixinterruptsource·Programmableserialchannel·Low-poweridleandPower-downmodesFunctionCharacteristicDescription:TheAT89C51providesthefollowingstandardfeatures:4KbytesofFlashmemory,128bytesofRAM,32I/Olines,two16-bittimer/counters,afivevectortwo-levelinterruptarchitecture,afullduplexserialport,on-chiposcillator35 andclockcircuitry.Inaddition,theAT89C51isdesignedwithstaticlogicforoperationdowntozerofrequencyandsupportstwosoftwareselectablepowersavingmodes.TheIdleModestopstheCPUwhileallowingtheRAM,timer/counters,serialportandinterruptsystemtocontinuefunctioning.ThePower-downModesavestheRAMcontentsbutfreezestheoscillatordisablingallotherchipfunctionsuntilthenexthardwarereset.35 AT89C51AT89C51是美国ATMEL公司生产的低电压,高性能COMS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数:·与MCS-51产品指令系统完全兼容·4K字节可重擦写Flash闪速存储器·1000次擦写周期·全静态操作:0Hz—24MHz·三级加密程序存储器·128×8字节内部RAM·32个可编程I/O口线·2个16位定时/计数器·6个中断源·可编程串行UART通道·低功耗空闲和掉电模式功能特性概述:AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器。串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。35'