1、基于CPLD的频率计设计毕业设计论文山东理工大学 毕业设计(论文)题 目:基于CPLD的频率计设计摘要频率检测是电子领域里最基本的测量,也是最重要的测量。由于频率信号抗干扰能力强、易于传输,可以得到相对较高的测量精度,因此频率测量方法的研究也受到越来越多的关注。基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,本次设计中共提出了四种设计方案,通过论证最终决定用等精度的测量方法来完成本次频率计的设计。 在本次设计中选择AT89C51单片机和CPLD的结合来实现。其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD主要完成频率测量功能,频率的测量范围在1HZ1MHZ之间
2、,其中测量误差在1HZ;键盘信号由AT89C51单片机进行处理,它从CPLD读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用5段LED动态显示,由1个74HC138译码器和74HC573锁存器驱动5个数码管。关键词: 频率计,EDA技术,CPLD,单片机,等精度测量AbstractFrequency detection is the most basic in the electronics field measurement, which is the most important measurement. Due to frequency signal transmissio
3、n, strong anti-jamming capability, easy can get relatively high measurement precision, so frequency measurement methods of research have also been more and more attention. Based on the traditional principle of frequency meter frequency measurement accuracy will be along with the decline of the measu
4、red signal frequency is reduced, the design of the communist party of China puts forward four kinds of design scheme, through the argument finally decided to use equal precision measurement method to complete the design of frequency meter.In this design choose the combination of the AT89C51 single-c
5、hip microcomputer and CPLD to implement. The single-chip microcomputer control, the entire measurement circuit test data processing and display output; CPLD main complete frequency measurement function, frequency of measurement range between 1 hz to 1 MHZ, which measurement error in 1 hz; Keyboard s
6、ignals are processed using single-chip computer AT89C51, it read back from CPLD count data and calculation, the measurement results to display circuit output; 5 LED dynamic display, display circuit used by 1, 74 hc138 decoder and 74 hc573 latch drive five digital tube.Key Words: frequency meter, EDA
7、 technologythe, CPLD and single chip microcomputer, such as precision measurement第一章 概述测频一直以来都是电子和通讯系统工作的重要手段也是重要内容。在生活中,频率的测量随处可见,每天都在接触,并且可以直接或间接地根据测量频率来获取我们想要得到的信息。因此频率的测量就显得非常重要了,使用较高精度的方法来测量频率就更加重要了。比如在我们的日常生活中最常见设备时钟就是频率测量的应用,根据测量频率来计算时间,我们在科研中常用的GPS设备通过测量频率也在进行GPS点与GPS卫星距离的计算,从而计算出GPS坐标。测量频率的
8、方法大约可分直接频率测量法与间接频率测量法。直接测频法常常使用测频率法与测周期法。然而测频率法与测周期法计数值都会出现正负1 个字的误差。而以中界频率为界限,对于低频的信号使用测周期法,对于高频的信号使用测频法,这样可以确保测试的准确性。间接测量频率的方法大多是使用等精度测量,此方法是在直接频率测量法下发展的,测量精度非常高。等精度频率测量法的闸门时间并不是一个固定的值,而是与被测信号同步,是被测信号周期的整数倍。因此,清除了计数所产生的正负1 个字的误差,并且测试频段的等精度测量一直保持完全准确,实测精度不会跟所测信号频率变化而发生变化。早先的数字频率计大部分由分立元件组成,它的测量范围、精
9、度以及速度都受到非常多的限制。单片机的开发和应用改变了测量所带来的限制,可是单片机本身也受到一些因素影响,因此在电子领域单片机不能得到突飞猛进的发展。快速发展的大规模可编程逻辑设备技术可以将多量逻辑功能汇集在一个单一的芯片中。根据不同的需要,可以提供从几百至上百万之多的逻辑门数目,从根本上解决了单片机的先天性限制问题。在设备选择上,使用Atmel公司生产的AT89C51单片机和EPM7128SLC84-15。AT89C51是一种带4K字节FLASH的低电压、高性能8位CMOS单片机。该器件采用非易失存储器制作技术,并且与MCS-51引脚和指令集相兼容。编程器可以对芯片上的FPEROM重复编程,
10、1000写/擦循环,并且具有工作电压范围广、可编程串行通道,数据可存储10年等特点。EPM7128SLC84-15是使用氧化物半导体EZPROM 的先进的技术制造的第二代MAX产品。它可以迅速重新编写和确保可编程擦除100次。EPM7128SLC84-15是嵌入式CPLD,可以在系统内编程,宏单元数为128个,逻辑块为8个。使用汇编语言编写单片机软件,用VHDL语言描述来实现CPLD内部丰富的数据层次和结构模型。频率测量仪器的性能也是不一样的。使用等精度测量原理,单片机的良好控制功能和CPLD的高速可靠性相结合,使频率测量仪电路简洁,速度更快,功能全面,精度提高,有效防止干扰。第二章 系统设计
11、方案与论证2.1 测量原理2.1.1 直接测频法在特定的一段时间内测某个周期信号的重复变化次数N,其频率表示为f=N/T,是传统的频率测量方法。它的原理框图见图2-1。在此测量方式中,被测信号的频率发生改变,它的精度也随之发生改变。根据频率(每单位时间周期信号发生的次数)的基本定义,由图中知道测量的时间基准,分频过后可以让时间闸门开启或关闭。闸门若开启则开始计数,闸门若关闭则停止计数。若闸门开放时间为T,计数值为N,则被测频率FN/T。但若被测信号频率过低则存在测量精度与实时性之间的矛盾。例如,被测信号为10HZ, 0.01的精度。由=1/(N-1)*100%10000。则最短的闸门时间T=N
12、/F=10000/10=1000s,我们完全无法接受这样的测量。通过计算对10KHZ 以下的信号用测频法测量反应的时间会大于或等于10秒的时间,低频为了得到准确的频率值,甚至要等到几个小时,必然不可行。因此,这种方法不适用于低频信号的频率测量。图2.1 直接测频法原理框图2.1.2 测周期法测量周期法的原理与测频法大致相同,互换晶振与被测信号。T1=N*T,T为时基信号,被测信号的周期T1与计数值N成正比。这种方法误差比较大,而最大误差也是 =1/(N-1)*100%。如果完成测量精度在0.01以下,则由 =1/(Ns-1)*100%10000。可以通过计算得到结论:测周期法适合于测量低频信号
13、,而对高频信号毫无作用。可见,要使传统频率测量达到高精度标准,必须按照指定的界限划分,以中界频率为界限,对低频段的信号测量使用测周期法,对高频段的信号测量使用测频法。2.1.3 倍频法 把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后再进行测量,对高频段则直接进行测量。倍频法较难实现。2.1.4 等精度测频法等精度测频法实现方式可用图2.1.4说明。图2.1.5 等精度测频法原理图若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是由该信号的上跳沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计
14、数Ns最多相差一个脉冲,即et1,则下式成立:=可分别推得根据相对误差公式有经过整理可得到因为,故,即2.2 系统设计指标在传统测量频率的方法中,被测信号的频率发生变化,它的测量精度也发生变化。使用局限很大,然而等精度频率计测量精度很高,并且测试频段一直保持完全准确,被测精度不会随被测信号频率变化而发生变化。本系统设计的基本指标如下:1、频率测量范围:1HZ-999.999KHZ2、频率测量误差:1HZ3、输入灵敏度:30mV4、输入波形:正弦波、方波、三角波5、最高输入电压:30V6、显示方式:6位LED数码管显示。2.3 系统总体设计框图根据频率计的设计要求,我们可将整个电路系统划分为几个
15、基本模块,如图2.3所示。各模块的实现均有几种不同的设计方案。图2.3 频率计组成模块框图第三章 硬件电路设计3.1系统的组成等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模CPLD/FPGA芯片难以实现。因此,我们选择单片机和CPLD/FPGA的结合来实现。电路系统组成框图如图3.1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD/FPGA完成各种测试功能;键盘信号由AT89C51单片机进行处理,它从CPLD/FPGA读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用七段LED动态显示,由一个个74HC138芯片和一个74H
16、C573驱动数码管。具体的系统组成框图如图3.1所示。图3.1 系统的组成框图3.2 系统的基本工作方式(1) P0口是单片机与FPGA的数据传送通信口,P3口用于键盘扫描,实现各测试功能的转换;P1口为双向控制口。P2口为LED的并行显示控制口。系统设置5个功能键:占空比、脉宽、周期、频率和复位。(2) 5个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。(3) BCLK为测频标准频率50 MHz信号输入端,由晶体振荡源电路提供。(4) 待测信号经放大整形后输入CPLD的TCLK。3.3 CPLD测频专用模块3.3.1 CPLD的结构与功能介绍CPLD(Complex Pro
17、grammable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。相对于PAL和GAL器件来说,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生
18、产(一般在10,000件以下)之中。3.3.2 CPLD测频专用模块逻辑设计利用VHDL设计的测频模块逻辑结构如图3.2所示,其中有关的接口信号规定如下:(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时,作为预置门闸,门宽可通过键盘由单
19、片机控制,START=1时预置门开;当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。利用此功能可分别获得脉宽和占空比数据。 (6) EEND(P2.3):等精度测频计数结束状态信号,EEND=0时计数结束。 (7) SEL2.0(P2.2,P2.1,P2.0):计数值读出选通控制。图3.2 测频模块逻辑图3.3.2.1测频/测周期的实现(1) 令TF=0,选择等精度测频,然后在CONTRL的CLR端加一正脉冲信号以完成测试电路状态的初始化。 (2) 由预置门控信号将CONTRL的START端置高电平,预置门开始定时,此时由被测信号的上沿打开计数
20、器CNT1进行计数,同时使标准频率信号进入计数器CNT2。 (3) 预置门定时结束信号把CONTRL的START端置为低电平(由单片机来完成),在被测信号的下一个脉冲的上沿到来时,CNT1停止计数,同时关断CNT2对fs的计数。 (4) 计数结束后,CONTRL的EEND端将输出低电平来指示测量计数结束,单片机得到此信号后,即可利用ADRC(P2.2)、ADRB(P2.1)、ADRA(P2.0)分别读回CNT1和CNT2的计数值,并根据等精度测量公式进行运算,计算出被测信号的频率或周期值。3.3.2.2控制部件设计 如图3.2.2所示,当D触发器的输入端START为高电平时,若FIN端来一个上
21、升沿,则Q端变为高电平,导通FINCLK1和FSDCLK2,同时EEND被置为高电平作为标志;当D触发器的输入端START为低电平时,若FIN端输入一个脉冲上沿,则FINCLK1与FSDCLK2的信号通道被切断。图3.2.2测频与测周期控制部分电路3.3.2.3计数部件设计 图3.2中的计数器CNT1/CNT2是32位二进制计数器,通过DSEL模块的控制,单片机可分4次将其32位数据全部读出。3.3.2.4脉冲宽度测量和占空比测量模块设计 根据上述脉宽测量原理,设计如图3.2.3(CONTRL2)所示的电路原理示意图。图3.2.3脉冲宽度测量原理图测量脉冲宽度的工作步骤如下:(1) 向CONT
22、RL2的CLR端送一个脉冲以便进行电路的工作状态初始化。(2) 将GATE的CNL端置高电平,表示开始脉冲宽度测量,这时CNT2的输入信号为FSD。(3) 在被测脉冲的上沿到来时,CONTRL2的PUL端输出高电平,标准频率信号进入计数器CNT2。(4) 在被测脉冲的下沿到来时,CONTRL2的PUL端输出低电平,计数器CNT2被关断。(5) 由单片机读出计数器CNT2的结果,并通过上述测量原理公式计算出脉冲宽度。CONTRL2子模块的主要特点是:电路的设计保证了只有CONTRL2被初始化后才能工作,否则PUL输出始终为零。只有在先检测到上沿后PUL才为高电平,然后在检测到下沿时,PUL输出为
23、低电平;ENDD输出高电平以便通知单片机测量计数已经结束;如果先检测到下沿,PUL并无变化;在检测到上沿并紧接一个下沿后,CONTRL2不再发生变化直到下一个初始化信号到来。占空比的测量方法是通过测量脉冲宽度记录CNT2的计数值N1,然后将输入信号反相,再测量脉冲宽度,测得CNT2计数值N2则可以计算出:3.4 单片机主控模块硬件电路设计3.4.1 AT89C51单片机AT89C51单片机是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。单片机的可擦除只读存储器
24、可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51内部主要包含以下部件:(1)一个8位CPU; (2)一个片内振荡器及时钟电路; (3)4K字节ROM程序存储器: (4)128字节RAM数据存储器; (5)两个 16位定时器/计数器; (6)可寻址 64K外部数据存储器和 64K外部程序存储器空间的控制电路; (7)32条可编程的I/O线(四个6位并行I/O
25、端口) (8)一个可编程全双工串行口; (9)具有五个中断源、两个优先级嵌套中断结构。AT89C51单片机各个管脚作用:AT89C51单片机各个管脚如图3.4.1所示:图3.4.1 AT89C51单片机最小系统及管脚图VCC/GND:供电电源。P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:标准输入输出I/O,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:既可用于标准输入输出I/O,也可用于外部程
26、序存储器或数据存储器访问时的高八位地址。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:既可以作标准输入输出I/O,也可作为AT89C51的一些特殊功能口: 管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输
27、出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反
28、向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。74HC138译码器逻辑原理图:图3.4.2 74HC138译码器管脚图3线-8线译码器74HC138译码器的功能表:输入输出HXXXHXXXLXXXXXXXXXHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLHHHHHHHHLHLHLHLHLLHHLLHHLLLLHHHHLHHHHHHHHLHHHHHHHHLHHHHHHHHLHHHHHHHHLHHHHHHHHLHHHHHHHHLHHHHHHHHL表1 74HC138译码器功能表无论从逻辑图还是功能表我们都可以看到74LS138的八个
29、输出引脚,任何时刻要么全为高电平1芯片处于不工作状态,要么只有一个为低电平0,其余7个输出引脚全为高电平1。本次设计采用74LS138译码器作为LED数码管的驱动。3.4.3七段LED数码管七段LED数码管的引脚如下图所示图3.4.3 七段LED数码管管脚图七段LED数码管是利用7个LED外加一个小数点的LED组合而成的显示设备,可显示09等10个数字和小数点,使用非常广泛,这类数码管可以分为共阳极和共阴极两种,共阳极就是把所有的阳极连接到共同点com,共阴极就是把所有的LED的一级连接到共同点com,本次设计采用共阳极七段LED数码管显示。3.4.4 74HC573锁存器图3.4.4 74H
30、C573锁存器3.4.5 单片机与LED显示模块的设计本次设计采用六个共阴极数码管,一个锁存器与一个译码器构成显示模块,本次设计采用动态显示模式,其中P2.0P2.7口为数码管显示内容的输出口,通过一个74HC573锁存器与六个LED数码管连接,P3.5P3.7为数码管显示选择控制端,通过一个74HC138与数码管的公共阴极相连,用来控制数码管的选通与断开。具体的连接图如图3.4.5所示。图3.4.5 单片机显示模块3.4.6 单片机键盘控制模块的设计本次设计共有五个按键,分别为复位、占空比、脉宽、周期和频率。其中复位键直接与单片机的复位引脚相连,其余四个按键分别与单片机的P3.0P3.3口相连,用来控制占空比、脉宽、周期和频率的测量。具体的硬件连接如图3.4.6所示。图3.4.6 单片机键盘控制模块第四章 单片机控制与运算程序的设计4.1程序流程图及相关程序4.1.1主程序流程图ORG 0000H LJMP MAIN ORG 0030HMAIN : CLEAR: MOV R0, #00H MOV R1, #128 MOV A, #00HL1: MOV R0, A INC R0 DJNZ R1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1