《基于cpld数字频率计的设计.doc》由会员分享,可在线阅读,更多相关《基于cpld数字频率计的设计.doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、山东理工大学 毕业设计(论文)题 目:基于CPLD的频率计设计学 院: 电气与电子工程学院专 业: 电子信息工程 学生姓名: 徐 伯 温 指导教师: 张 娟 毕业设计(论文)时间:二一 年 3月 1 日 6 月17 日 共 16 周摘 要本文主要论述了利用CPLD进行测频计数,单片机实施控制实现多功能频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个频率区域保持恒定的测试精度。该频率计利用CPLD来实现频率、周期、脉宽和占空比的测量计数。利用单片机完成整个测量电路的测试控制
2、、数据处理和显示输出。并详细论述了硬件电路的组成和单片机的软件控制流程。其中硬件电路包括键控制模块、显示模块、输入信号整形模块以及单片机和CPLD主控模块。本文详细论述了系统自上而下的设计方法及各部分硬件电路组成及单片机、CPLD的软件编程设计。使用以GW48-CK EDA实验开发系统为主的实验环境下进行了仿真和验证,达到了较高的测量精度。关键词: 频率计,EDA技术,CPLD,单片机AbstractThis article discusses the use of frequency counts for CPLD, microcontroller control to achieve th
3、e implementation of the design process of multi-frequency meter. The use of such precision frequency meter design ways to overcome the traditional frequency measurement based on the principle of the measurement precision frequency meter with a decline in the measured signal frequency decreases the s
4、hortcomings. And other precision measurement method not only has high accuracy, but in the entire frequency region to maintain a constant precision. The frequency meter using CPLD to implement the frequency, period, pulse width and duty cycle measurement count .I used SUM complete the measurement ci
5、rcuit control, data processing and display output. Then I discussed about the composition of hardware and microcontroller software control flow. The hardware circuit includes key control module, display module, the input signal shaping module and MCU and CPLD control module.This paper has particular
6、ly described the top-to-bottom design method of the system, the circuit composite of the hardware and the software program device of CPLD and single chip computer. Under the test environment of the system developed by GW48-CK EDA experiment, the precision and velocity of the measurement have been ob
7、tained after the simulation and the test of the hardware.KEYWORDS: Frequency meter, EDA technique, CPLD, Single chip computer目 录摘 要IAbstractII目 录III第一章 引言1第二章 硬件电路设计43.1 系统顶层电路设计43.2 测频模块的工作原理及设计53.2.1 CPLD的结构与功能介绍53.2.2 CPLD测频专用模块逻辑设计63.3 单片机主控模块103.3.1 AT89C51单片机性能103.3.2 单片机控制电路123.4 外围电路设计143.4.
8、1 键盘接口电路143.4.2 显示电路153.4.3 电源模块153.4.4 其他电路16第四章 软件设计174.1 VHDL语言174.1.1 VHDL简介174.1.2 VHDL程序设计184.1.3 VHDL的设计方法184.2 本系统CPLD模块的设计204.2.1程序设计步骤:204.2.2 本系统CPLD模块的顶层设计21参考文献34致 谢35第一章 引言 随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流迅猛发展的引擎就是日趋进步和完善的设计技术。目前数字频率计的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下的逐层完成
9、相应的描述、综合、优化、仿真与验证,直到生成器件。上述设计过程除了系统行为和功能描述以外,其余所有的设计过程几乎都可以用计算机来自动地完成,也就是说做到了电子设计自动化(EDA)。这样做可以大大地缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求,提高产品的竞争能力。 电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路,即要用所谓硬件描述语言来描述硬件电路。所以硬件描述语言及相关的仿真、综合等技术的研究是当今电子设计自动化领域的一个重要课题。 硬件描述语言的发展至今已有几十年的历史,并已成功地应用到系统的仿真、验证和设计综合等方面。到本世纪80年代后期,
10、已出现了上百种的硬件描述语言,它们对设计自动化起到了促进和推动作用。但是,它们大多各自针对特定设计领域,没有统一的标准,从而使一般用户难以使用。广大用户所期盼的是一种面向设计的多层次、多领域且得到一致认同的标准的硬件描述语言。80年代后期由美国国防部开发的VHDL语言(VHSIC Hardware Description Language)恰好满足了上述这样的要求,并在1987年12月由IEEE标准化(定为 IEEE std 1076-1987标准,1993年进一步修订,被定为ANSI/IEEE std 1076-1993标准)。它的出现为电子设计自动化(EDA)的普及和推广奠定了坚实的基础。
11、据1991年有关统计表明,VHDL语言业已被广大设计者所接受。另外,众多的CAD厂商也纷纷使自己新开发的电子设计软件与VHDL语言兼容。由此可见,使用VHDL语言来设计数字系统是电子设计技术的大势所趋。第二章 硬件电路设计2.1 系统顶层电路设计 2.2.1 CPLD的结构与功能介绍可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件,它是大规模集成电路技术的飞速发展与计算机辅助设计、计算机辅助生产和计算机辅助测试相结合的一种产物,是现代数字电子系统向超高集成度、超低功耗、超小封装和专用化方向发展的重要基础。它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性和保密性,而且给
12、数字系统的设计方法带来了革命性的变化。该测频系统选用的CPLD器件是ALTERA公司所生产的MAX7000系列中的EPM7128SLC84-15。图3-2是EPM7128SLC84-15的结构框图,其中逻辑阵列块(LAB)由16个宏单元(Macrocells)阵列组成,多个逻辑阵列块通过可编程互连阵列(PIA)互相连按;宏单元(Macrocells)由逻辑阵列、乘积项选择阵列和可编程寄存器等3个功能模块组成:可编程互连阵列(PIA)是一种可编程全局总线,连接着器件中的任何的信号起源和信号目的地,使信号可以通过整个器件,且PIA消除了信号之间的时间偏移,有固定的延时,使时间性能容易预测;I/0控
13、制块(I/0 Control Block)允许每一个I/0管脚可以被单独的配置为输入、输出、双向管脚,且所有I/0引脚都有一个三态缓冲器。图3-2 EPM7128SLC84-15结构框图3.2.2 CPLD测频专用模块逻辑设计利用VHDL设计的测频模块逻辑结构如图3-3所示:其中有关的接口信号规定如下:(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) CHOIC
14、E(P3.2) :自校/测频选择,CHOICE=1测频;CHOICE=0自校。图3-3 CPLD测频专用模块框图(5) START(P 2.5):当TF=0时,作为预置门闸,门宽可通过键盘由单片机控制,START=1时预置门开;当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。利用此功能可分别获得脉宽和占空比数据。(6) EEND(P 2.3) 等精度测频计数结束状态信号,EEND=0时计数结束。(7) SEL2.0(P 2.2, P 2.1, P 2.0);计数值读出选通控制。1.测频/测周期的实现(1)令TF=0,选择等精度测频,然后在CON
15、TRL的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的计数值,并根
16、据等精度测量公式进行运算,计算出被测信号的频率或周期值。2.控制部件设计如图3-4 所示,当D触发器的输入端START为高电平时,若FIN端来个上升沿,则Q端变为高电平,导通FIN-CLK1和FSD-CLK2,同时EEND被置为高电平作为标志;当D触发器的输入端START为低电平时,若FIN端输入一个脉冲上沿,则FIN-CLKI与FSD-CLK2的信号通道被切断。图3-4 测频与测周期控制部分电路3计数部件设计图3-3中的计数器CNT1/CNT2是32位二进制计数器,通过DSEL模块的控制,单片机可分4次将其32位数据全部读出。4脉冲宽度测量和占空比测量模块设计根据上述脉宽测量原理,设计如图3
17、-5(CONTRL2)所示的电路原理示意图。图3-5 CONTRL2子模块内部结构测量脉冲宽度的工作步骤如下:(1) 向CONTRL2的CLR端送一个脉冲以便进行电路的工作状态初始化。(2) 将GATE的CNL端置高电平,表示开始脉冲宽度测量,这时CNT2的输入信号为FSD。(3) 在被测脉冲的上沿到来时,CONTRL2的PUL端输出高电平,标准频率信号进入计数器CNT2。(4) 在被测脉冲的下沿到来时,CONTRL2的PUL端输出低电平,计数器CNT2被关断。(5) 由单片机读出计数器CNT2的结果,并通过下述测量原理公式计算出脉冲宽度。 (3-1)CONTRL2子模块的主要特点是:电路的设
18、计保证了只有CONTRL2被初始化后才能工作,否则PUL输出始终为零。只有在先检测到上沿后PUL才为高电平,然后在检测到下沿时,PUL输出为低电平;ENDD输出高电平以便通知单片机测量计数已经结束;如果先检测到下沿,PUL并无变化;在检测到上沿并紧接一个下沿后,CONTRL2不再发生变化直到下一个初始化信号到来。占空比的测量方法是通过测量脉冲宽度记录CNT2的计数值N1,然后将输入信号反相,再测量脉冲宽度,测得CNT2计数值N2则可以计算出: ( 3-2 )3.3 单片机主控模块3.3.1 AT89C51单片机性能AT89C51是一个内含4K字节可编程可擦除的快闪存储器(Flash Memor
19、y)和128个字节RAM。低电压,高性能CMOS结构的8位单片机。采用ATNIEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和快闪存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。(1) AT89C51的主要特性如下:.与 MCS-51兼容.4K字节可编程快闪存储器.寿命:1000次写/擦.数据保留时间:十年.128*8位内部RAM.32可编程I/O线.两个16位定时器/计数器.五个中断源.可编程串行通道.低功耗的闲置和掉电模式.片内振荡器和时钟电路(2) 其管脚
20、的具体说明如下:P0口:P0口为一个8位漏级开路双向I/O口,每个引脚可驱动8个TTV7。当P1口的管脚输入数据时,应先把口置1。作为外部地址/数据总线使用时,用于传送8位数据和低8位地址。在快闪编程时,P0口输入,当快闪进行校验时,P0口输出,此时P0外部必须被拉至高电平。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能驱动4个TTL门。PI口管脚写入1后。被内部上拉为高,可用作输入。P2口:P2口是一个内部提供上拉电阻的8位双向I/O口,P2口缓冲器可驱动4个TTL门,当P2口被写1时,其管脚被内部上拉电阻拉高,作为输入。P2口当用作外部程序存储器或外部数据存储器进行
21、存取时,P2口输出16位地址的高八位。P3口:P3口管脚是八个带内部上拉电阻的双向I/O口,可驱动4个TTL门。当P3口写入1后,被内部上拉为高电平,并用作输入。P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚备选功能P3.0 RXD(串行输入口)P3.1 TYD(串行输出口)P3.2/INT0(外部中断0)P3.3 ANTI(外部中断1)P3.4 T0(计时器0外部输入)P3.4 T1(计时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为快闪编程和编程校验接收一些控制信号。3.3.2 单片机控制电路单片机测频控制电路如图3-
22、7所示,由单片机完成整个测量电路的测试控制、数据处理和显示输出,CPLD完成各种测试功能。图3-7 单片机测频控制电路(1) 由于CPLD在对频率进行计数时,采用32位二进制计数器,8位数据总线的单片机分四次将32位数据全部读出。利用AT89C51的P0口读计数器COUNT输出B7.0标准频率信号的值,P2口读计数器COUNT输出B15.8被测信号的值。被读出的四组8位数据通过AT89C51的SS0,SS1地址编码选择。由P1口输出控制。(2) CS:由单片机的P1.0 口控制。CS=0时,等精度测频;CS=1时,测脉宽。(3) CLR:系统全清零功能。(4) ED2:脉宽计数结束状态信号,E
23、D2=1计数结束。(5) AS:自校和测频选择。AS=1 测频,AS=0自校。(6) STROBE:为预置门闸,门宽可通过键盘由单片机控制,STROBE=1时,预置门打开;STROBE=0时,预置门关闭。(7) ED1:测频计数结束状态信号,EDl=0时计数结束。(8) SS0, SS1:计数位读出选通控制。若令SS=SS1,SS0,则当SS=0,1, 2, 3时,可从P0口和P2口由低8位至高8位分别读出两组4个8位计数值。(9) FS为标准频率信号输入,此频率来源于50MHz的有源晶振。(10) FX为被测信号输入,此信号是经过限幅整形电路后的信号。(11) FC为自校频率,取自单片机的外
24、接晶振。3.4 外围电路设计3.4.1 键盘接口电路键盘接口电路如图3-8所示。键盘控制命令由并入串出移位寄存器74LS165读入。当某一键盘按下时,该线为低电平,在单片机主程序中置P3.2为0,将键值置入,然后再将P3.2与 P3.3 口置1,将键盘值读入单片机,从而实现对键盘动态扫描,实时将键盘命令交单片机处理。 图3-8 键盘接口电路3.4.2 显示电路图3-9中,AT89C51以串行通信方式0,即同步移位寄存器方式通过P3.1实现显示码传送,8个共阳极数码管由8片串入并出74LS164驱动,由于74LS164芯片输出低电平时具有SMA的灌电流能力,在静态显示方式下足以保证显示亮度。因为
25、74LS164输出没有锁存功能,因此,在传送信号时输出端数码管会有瞬间闪烁,但由于系统采用12MHz晶振。传送波特率高达1M,且一次发送数据很少,故闪烁并不明显。P3.4用于键盘和显示电路的切换选通。另外,由于键盘和显示电路共享单片机的串行口,在每次显示前,程序必须将P3.2置0,将74LS165的输出置1,才能保证P3.1口正确传送显示数据。 图3-9 显示电路3.4.3 电源模块整个电路的供电电源如图3-10所示,220V交流电经变压、整流、滤波后,由一片78L05三端稳压器向系统提供+5V电压信号。图3-10 电源模块3.4.4 其他电路单片机的时钟电路由12MHz的晶振提供。CPLD的
26、标准频率信号由50MHz的有源晶振提供。自校输入信号取自单片机的12MHz晶振。被测信号经过放大整形电路调理后输入。第四章 软件设计4.1 VHDL语言4.1.1 VHDL简介VHDL的英文全名是VHSIC(very High speed Integrated Circuit) Hardware Description Language。1983年由美国国防部发起创建,由IEEE(The institute of Electrical and Electronic Engineers)进一步发展并在1987年作为“正IEEE标准1076”发布。1993年被更新为IEEE标准1164。VHDL能
27、够成为标准化的硬件语言并获得广泛应用,因为它具有如下的优点:1.功能强大设计灵活。VHDL拥有强大的语言结构,可以用简洁的程序描述复杂的逻辑控制。为了有效地控制设计的实现,它具有多层次的设计描述功能,支持设计库和可重复使用的元件生成;支持层次化和模块化设计,同时,VHDL还支持同步、异步和随机电路设计。2.与具体器件无关。采用VHDL设计硬件电路时,并不需要首先确定使用哪种器件,当设计完成后,再根据消耗的资源,选择合适的器件。3.很强的移植能力。VHDL的移植能力非常强,它是一种标准的硬件描述语言。同一个设计的程序可以被不同的工具所支持,包括综合工具、仿真工具、系统平台等。4.强大的硬件描述能
28、力。VHDL既可以描述系统级电路,又可以描述门级电路。描述方式既可以采用行为描述、寄存器传输描述,也可以用混合描述方式。同时,VHDL也支持惯性延迟和传输延迟,以便准确建立硬件电路模型。5.语法规范,易于共享。VHDL的语法非常规范,可读性极强。用VHDL编写的代码文件既可以是程序,也可以是文档。作为一种工业标准,VHDL易于共享,适合大规模协作开发。4.1.2 VHDL程序设计一项工程的设计(包括VHDL程序的设计和验证)首先要利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来。这两种方式必须首先通过EDA工具进行排错编译,变成VHDL格式,为进一步的逻辑综合做准备。原理
29、图输入方式比较容易掌握,直观而方便,所画的原理图与传统的器件连接方式完全一样,很容易被人接受,而且编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。当然,最具普遍性的输入方法是VHDL程序的文本方式。这种方法最为通用,任何支持VHDL的EDA工具都支持文本方式的编辑和编译。4.1.3 VHDL的设计方法电子产品设计的基本思路一直是先选用标准通用集成电路芯片,再由这些芯片和其他元件自下而上的构成电路、子系统和系统。这样设计出的电子系统所用元件的种类和数量均较多,体积与功耗大,可靠性差。随着集成电路技术的不断进步,现在人们可以把数以亿计的晶体管,几万门、几十万门、甚至几百万门的电路
30、集成在一块芯片上。半导体集成电路己由早期的单元集成、部件电路集成发展到整机电路集成和系统电路集成。电子系统的设计方法也由过去的那种集成电路厂家提供通用芯片,整机系统用户采用这些芯片组成电子系统的“bottom-up”(自底向上)方法改变为一种新的“top-down”(自顶向下)设计方法。在这种新的设计方法中,由整机系统用户对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路ASIC来实现,且这些专用集成电路是由系统和电路设计师亲自参与设计的,直至完成电路到芯片版图的设计,再交由IC工厂加工,或者是用可编程ASIC(例如CPLD和FPGA)现场编程实现。图4-1所示为电子系统
31、的两种不同设计方法的步骤。图4-1 “自顶向下”与“自顶向上”设计方法对比在“自顶向下”的设计中,首先需要进行行为设计,确定该电子系统或VLSI芯片的功能、性能及允许的芯片面积和成本等。接着进行结构设计,根据该电子系统或芯片的特点,将其分解为接口清晰、相互关系明确、尽可能简单的子系统,得到一个总体结构。这个结构可能包括算术运算单元、控制单元、数据通道、各种算法状态机等。下一步是把结构转换成逻辑图,即进行逻辑设计。接着进行电路设计,逻辑图将进一步转化成电路图。在很多情况下,这时需进行硬件仿真,以最终确定逻辑设计的正确性。最后是进行版图设计,即将电路图转化成版图。“自底向上”的设计,一般是在系统划
32、分和分解的基础上先进行单元设计,在单元的精心设计后逐步向上进行功能块设计,然后再进行子系统的设计,最后完成系统的总体设计。4.2 本系统CPLD模块的设计4.2.1程序设计步骤:利用VHDL语言进行程序设计可以分为以下几个步骤:1.确定电路具体功能。开发前期先设计总体方案,总体方案相对比较抽象,使用VHDL必须分析电路所要实现的具体功能。2.设计输入。设计描述包括两个方面:(l)系统描述。系统描述应决定设计方式,设计方式主要有两种:自顶向下设计、自底向上设计。自顶向下的处理方式要求将设计划分成不同的功能元件,每个元件具有专门定义的输入和输出,并执行专门的逻辑功能。而自底向上的处理方式恰恰相反。
33、(2)编写设计代码。编写VHDL语言的代码与其它计算机程序语言的代码有很大的不同,编写的VHDL代码必须能够综合到采用可编程逻辑器件来实现的数字逻辑之中。3.用VHDL仿真器对VHDL源代码进行功能仿真。在功能仿真阶段,主要对所设计的电路进行功能验证,通过功能仿真,发现设计存在的缺陷。如输入输出是否有矛盾,有无未加处理的输入信号,是否允许使能等。通过功能仿真,在设计前期纠正缺陷和错误,可以节省后期的时间,缩短整体开发周期。4.设计综合、设计优化和设计的布局布线。选择目标器件、输入约束条件后, VHDL综合优化软件工具将对VHDL源代码进行处理,产生一个优化了的网络表,并可以进行粗略的时序仿真。
34、5.配置及配置后的时序仿真。配置指的是将综合优化处理后得到的优化了的网络表,安放到前面选定的CPLD或FPGA目标器件中。在将优化了的网络表配置到目标器件后,从完成的版图上可以得到连线长短、宽窄的信息,把它们反注到原来的网络表上,为再次进行时序仿真做准备。因为己经得到了实际连线引起的时延数据,所以仿真结果能比较精确的预期未来芯片的实际性能。6.器件编程。在成功的完成了设计描述、综合优化、配置和配置后的时序仿真之后,则可以对器件编程和继续进行系统设计的其它工作。4.2.2 本系统CPLD模块的顶层设计在本测频系统中,对标准频率信号和被测信号进行测试功能的工作由CPLD来完成。其硬件电路的实现在前
35、面已述,其软件部分由VHDL语言实现。下面将给出由VHDL语言实现的顶层模块程序。频率计测试模块 FFFCHECK.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_ 1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FFFCHECK ISPORT(CHEKF,FINPUT,CHOICE:IN STD_LOGIC;START, CLRTRIG FSTD,TF:IN STD_LOGIC;SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0 );OO:OUT_STD_ LOGIC_VECTOR(7 DOWNTO 0
36、);EEND:OUT STD_LOGIC;ENDD:OUT STD_LOGIC);END ENTITY FFFCHECK;ARCHITECTURE ART OF FFFCHECK ISCOMPONENT FIN ISPORT (CHKF ,FIN, CHOIS:IN STD_ LOGIC;FOUT:OUT STD_LOG IC);END COMPONENT FIN;COMPONENT CONTRL ISPORT (FIN,START,CLR,FSD:IN STD_LOGIC;CLK1, EEND, CLK2 ,CLRC: OUT STD_LOGIC);END COMPONENT CONTRL;
37、COMPONENT CNT ISPORT (CLK,CLR:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(31 DOWNTO 0 );END COMPONENT CNT;COMPONENT CONTRL2 ISPORT (FIN, START, CLR:IN STD_LOGIC;ENDD, PUL : OUT STD_LOGIC);END COMPONENTC ONTRL2;COMPONENT GATE ISPORT (CLK2, RSD,CNL,PUL:IN STD-LOGIC;CLKOUT:OUT STD- LOGIC) ;END COMPONENT GATE;S
38、IGNAL INCLK: STD_LOGIC;SIGNAL FOUT, CLRC:STD_LOGIC;SIGNAL CLKI, CLK2,CLKOUT, PUL:STD LOGIC;SIGNAL Ql, Q2: STD_LOGIC _VECTOR(31 DOWNTO 0 );BEGINOO = Q1(7 DOWNTO 0) WHEN SEL=000ELSE Ql( 15 DOWNTO 8) WHEN SEL=001 ELSEQl (23 DOWNTO 16)WHEN SEL=010 ELSEQl(31 DOWNTO 24) WHEN SEL=011 ELSEQ2 (7 DOWNTO 0 ) W
39、HEN SE L = 100ELSEQ2 (15 DOWNTO 8) WHEN SEL = 101ELSEQ2 (23 DOWNTO 16) WHEN SEL=110ELSEQ2 (31 DOWNTO 24 ) WHEN SEL= 111 ELSE“”FENPIN: PROCESS (FSTD)ISBEGINIF( FSTDEVENT AND FSTD=1)THENINCLK= NOT INCLK;END IF;END PROCESSF ENPIN;FCH:FIN PORT MAP(CHKFFINPUT,CHOIS=CHOICE,FOUT= FOUT);CON:CONTRL PORT MAP(
40、FIN=FOUT,START=START,EEND = EEND, CLK2= CLK2 ,CLRC= CLRC) ;CONTI: CNT PORT MAP(CLK=CLK1 ,CLR=CLRC,Q=Q1);CONT2: CNT PORT MAP(CLK=CLKOUT, CLR=-CLRC, Q=Q2);CON2:CONTRL2 PORT MAP(FIN=FOUT,START=START,CLR=CLRC,PUL=PUL, ENDD=ENDD);GATE1: GATE PORT MAP(CLK2=CLK2,FSD =INCLK,CNL=TF,PUL=PUL,CLKOUT=CLKOUT);END
41、 ARCHITECTURE ART;4.3 单片机的汇编语言编程图4-2表示单片机主程序流程图。系统初始化后,主程序不断扫描键盘子程序,当某键按下时,程序跳转到相应的子程序执行其功能,然后返回继续执行键盘扫描主程序。开 始初始化设置键盘扫描测调频主频率调频周期子程序调自校子程序调占空比子程序调测脉宽子程序测频键测周期键自校键占空比键测脉宽键 4-2 单片机主程序流程图主程序如下:LED8 EQU 7FHLED7 EQU 7EHLED6 EQU 7DHLED5 EQU 7CHLED4 EQU 7BHLED3 EQU 7AHLED2 EQU 79HLED1 EQU 78HTF BIT P2.7CL
42、RTRIG BIT P2.6START BIT P2.5ENDD BIT P2.4EEND BIT P2.3ADRC BIT P2.2ADRB BIT P2.1ADRA BIT P2.0SB1 BIT Pl.0SBZ BIT Pl.1SB3 BIT P1.2SB4 BIT P1.3SB5 BIT P1.4AD0 EQU 30HAD1 EQU 31HAD2 EQU 32HAD3 EQU 33HAD4 EQU 34HAD5 EQU 35HAD6 EQU 36HADA EQU 4FHADB EQU 5FHADC EQU 4DHKEYNUM EQU 29HINT_R1 EQU 46HINT_R0 EQ
43、U 47HINT_R2 EQU 48H主程序:ORG 0000H LJMP MAINORG 0030HMAIN:CLEAR: MOV R0, #00HMOV R1, #128 MOV A, #00HLI: MOV R0,AINC R0DJNZ R1, L1MOV SP, #60HMOV P2, #OOH ;控制信号初始化为零SETB CHOICELCALL NLO ;7个数码管熄灭MOV LED8, #13H ;开始显示“P.”MOV LED7, #0CFHDIR: LCALL DISPKKE1: LCALL KKEYKK0: CJNE A, #00H, KK1KKK0: LCALL TEST
44、F LCALL KKEY LCALL DELAY LCALL DELAY JB 28H, 4, KK0 SJMP KKK0KK1:CJNEA,#01H,KK2KKK1:SETB 28H,2 LCALL TESPW CLR ,28H,2 LCALL KKEY JB 28H,4,KK0 SJMP KKKK2KK3:CJNE A,#03H,KK4KKKK3:SETB 28H,2 CLR 28H,1 LCALL TESZKB CLR 28H,2 LCALL KKEY1 JB 28H,4,KKO SJMP KKKK3KK4:SJMP KKE1第五章 实验测试及误差分析5.1实验测试的方法本系统既含有FP
45、GA自编程硬件设计电路,又含有单片机控制电路,整个系统比较复杂,因此我们采用自底向上的调试方法,也就是先进行各个单元电路的软件仿真和硬件调试,在各个单元电路调试好后再进行系统联调,最后进行硬件的编程固化及系统的组装。系统调试的软/硬件环境如下:(1)系统设计开发软件:MAX+PLUS II。(2)单片机及FPGA/CPLD调试设备:天煌THKSTM-2单片机开发系统,GW48-CK EDA实验开发系统,及其他配套实验设备。5.2 系统的硬件验证1.单元电路的调试:FPGA/ CPLD测频专用电路的调试:使用MAX+PLUS II,计算机,GW48-CK EDA实验开发系统等软件和设备,对FPGA/CPLD测控电路进行VHDL程序的调试,有关仿真以及编程下载,硬件测试等。2.系统的联合调试:在各个单元电路调试好后即可进行系统联调。3.系统的硬件验证:系统联合调试成功后,可将单片机程序通过编程器固化到单片机中并插入EDA实验开发系统中的单片机插座上,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,输入相关的信号,并进行有关性能指标的测试,直到满足系统的设计要求为止
限制150内