等精度数字频率计的设计

更新时间:2024-05-16 13:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

内蒙古科技大学

本科生毕业设计说明书(毕业论文)

题 目:等精度数字频率计的设计

内蒙古科技大学毕业设计说明书(毕业论文)

等精度数字频率计的设计

摘 要

本设计课题为基于FPGA和单片机的等精度数字频率计的设计。在本设计中,采用先进的自上而下的设计方法,以AT89C52单片机作为系统的主控部件,实现整个电路的信号控制、数据运算处理等功能;一片现场可编程逻辑器件FPGA(Filed Programmable Gate Array)芯片FLEX EPF10K20RC208-4完成各种时序逻辑控制、计数功能。在数字硬件电路EDA设计平台MAX+plusⅡ上,使用硬件描述语言VHDL编程完成了FPGA内部的数字硬件电路设计、编译、调试、仿真和下载。

本文详细论述了等精度数字频率计的测频原理、硬件电路的组成、设计和单片机软件编程设计。其中硬件电路包括键盘控制模块、显示模块和测量模块,键盘模块通过对六只按键的选择实现了除测频功能外的周期、脉宽、占空比测量等功能的选择;显示模块采用动态显示方式,节省了FPGA内部大量资源;AT89C52单片机的软件编程采用灵活易读的C语言。本设计将AT89C52单片机的控制灵活性和FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。

关键词:EDA技术;单片机;FPGA;频率计

I

内蒙古科技大学毕业设计说明书(毕业论文)

The Dsign Of Equal-Accuracy Digtal Frequency

Abstract

The title of this design is the design of equal-accuracy digital frequency based on FPGA and single chip computer. The digital frequency meter design in this paper which adopts top-down design methodology uses the AT89C52 single chip computer as the main controlling parts .The AT89C52 realizes test signal control ,keyboard scan and output display of LED .One FPGA chip FLEX EPF10K20RC208-4 fulfils timing logic control and count function .Under the hardware circuit design flat of MAX+plusⅡ,FPGA software designing,compiling , debugging ,simulation and download are been carried out in VHDL.

This article detail exposition of the testing frequency precision digital principles, hardware circuit composition, design and software programming design of single chip computer.These hardware circuits including keyboard control module, display modules and measurement modules. Keyboard module through six achieved made the system can measure pulse width and occupy-empty ratio of input signal . The using of dynamic display module,

saving a lot of internal FPGA resources. The software programming of AT89C52 single chip

computer adopts the flexible and accessible C language. The system combines the controlling flexibility of AT89C52 with programmable performance of FPGA , so it not only can shorten develop cycle ,but also has advantage of tightening architecture ,little volume ,high reliability ,wide scope and high precision .

Key words: EDA technique; single chip computer; frequency meter; FPGA

II

内蒙古科技大学毕业设计说明书(毕业论文)

目 录

摘 要 ......................................................................................................................................... I Abstract ......................................................................................................................................II 第一章 绪 论 .......................................................................................................................... 1

1.1 研究背景及意义 ......................................................................................................... 1 1.2 频率计发展概况 ......................................................................................................... 1 1.3 论文所做的工作与研究内容 ..................................................................................... 2 第二章 等精度数字频率计测频原理及设计方法 .................................................................. 4

2.1 等精度数字频率计测频原理 ..................................................................................... 4

2.1.1 常用测频方法简介 .......................................................................................... 4 2.1.2 等精度测频原理 .............................................................................................. 4 2.2 等精度数字频率计的设计方法 ................................................................................. 5

2.2.1 电子系统的传统设计方法 .............................................................................. 5 2.2.2 当代电子系统的设计方法 .............................................................................. 6

第三章 主要芯片及设计工具简介 .......................................................................................... 8

3.1 主要芯片介绍 ............................................................................................................. 8

3.1.1 AT89C52单片机性能简介 ............................................................................... 8 3.1.2 FLEX10K芯片系列简介 ................................................................................11 3.2 MUX+PLUSⅡ概述................................................................................................... 14 3.3 VHDL语言简介 ........................................................................................................ 15 第四章 硬件电路设计 ............................................................................................................ 17

4.1 系统组成 ................................................................................................................... 17

III

内蒙古科技大学毕业设计说明书(毕业论文)

4.2 键盘接口电路 ........................................................................................................... 17 4.3 显示电路 ................................................................................................................... 18 4.4 测量电路 ................................................................................................................... 19

4.4.1 测量与自校验选择电路 ................................................................................ 21 4.4.2 测频原理与测频电路 .................................................................................... 22 4.4.3 脉宽控制电路 ................................................................................................ 24 4.5 硬件电路的VHDL语言描述 .................................................................................. 25

4.5.1 D触发器 ......................................................................................................... 25 4.5.2 32位计数器 .................................................................................................... 26 4.5.3 MUX64-8多路选择器 ................................................................................... 27 4.5.4 MUX2-1选择器 ............................................................................................. 28 4.5.5 时钟发生器 .................................................................................................... 28 4.5.6 64位移位寄存器 ............................................................................................ 29 4.5.7 数码管字型译码器 ........................................................................................ 30 4.5.8 数码管片选译码器 ........................................................................................ 31 4.5.9 键盘编码器 .................................................................................................... 32 4.5.10 单片机主控电路 .......................................................................................... 33

第五章 软件电路设计 ............................................................................................................ 34

5.1 主程序 ....................................................................................................................... 34 5.2 复位自检程序 ........................................................................................................... 35 5.3 数据输出程序 ........................................................................................................... 36 5.4 频率测量程序 ........................................................................................................... 37 5.5 数据读入程序 ........................................................................................................... 37

IV

内蒙古科技大学毕业设计说明书(毕业论文)

5.6 占空比测量控制程序 ............................................................................................... 37 5.7 键值读取程序 ........................................................................................................... 38 5.8 数制转换程序 ........................................................................................................... 39 第六章 系统性能分析 ............................................................................................................ 42

6.1 频率测量范围分析 ................................................................................................... 42

6.1.1 低端频率 ........................................................................................................ 42 6.1.2 高端频率 ........................................................................................................ 42 6.2 测量精度分析 ........................................................................................................... 43 结 论 ...................................................................................................................................... 44 参考文献 .................................................................................................................................. 45 附录A 系统原理图(a)..................................................................................................... 46 附录A 系统原理图(b) .................................................................................................... 47 附录B AT89C52单片机内部方框图 .................................................................................. 48 附录C 硬件电路的硬件描述语言VHDL描述 ................................................................. 49 附录D 单片机C语言程序.................................................................................................... 64 致 谢 ...................................................................................................................................... 76

V

内蒙古科技大学毕业设计说明书(毕业论文)

第一章 绪 论

1.1 研究背景及意义

随着电子技术与计算机技术的不断发展,以单片机为核心的测量控制系统层出不穷。在被测信号中,经常遇到以频率为参数的信号,例如流量、转速、晶体压力传感器以及经过参变量—频率转换后的信号等。频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以研究测频方法是电子测量领域的重要内容。

传统的数字频率计一般由分离元件搭接而成,其测量范围、测量精度和测量速度都受到很大的限制。虽然单片机的发展与应用改善了这一缺陷,但由于单片机本身也受到工作频率及内部计数器位数等因素的限制,所以无法在此领域取得突破性的进展。随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成在单个器件中,FPGA根据不同的需要所提供的门数可以从几百门到上百万门,从根本上解决了单片机的先天性不足。本课题所设计的等精度数字频率计不但集成度远远超过了以往的数字频率计,而且在基准频率等外部条件的允许下,可以根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,而不增加系统硬件,从而降低系统的整体造价。此外,系统芯片(SOC)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。该数字频率计的设计及实现应用计数器法,基于上述优势开发的频率计具有良好的应用价值和推广前景。

1.2 频率计发展概况

传统的数字频率计可以通过普通的硬件电路组合来实现,一般由分离元件搭接而成,其开发过程、调试过程十分繁锁,而且由于电子器件之间的互相干扰,影响频率计的精度,体积较大,已不适应电子设计的发展要求。

MSC-51系列单片机具有体积小、功能强、性能价格比高等特点,广泛应用于工业测量、控制和智能化仪器、仪表等领域。以MSC-51系列单片机为核心的频率计,较分离元件搭接而成的频率计改善了性能、提高了可靠性,并可以采用软件实现各种频率测量方

1

内蒙古科技大学毕业设计说明书(毕业论文)

法。但由受到单片机本身特性的影响,其晶振最大只能为24MHz,以单片机为核心的频率计的测频范围及精度受到很大的制约。

随着EDA技术的发展,现代频率计的设计多采用基于FPGA芯片的方法来完成频率计的设计,即通过VHDL(Very High Speed Integrated Circuit Hardware Description Language)硬件描述语言的设计,用FPGA来实现。FPGA(Field Programmable Gate Array)即现场可编程逻辑器件是由存放在片内RAM 中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA 进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此FPGA 能够反复使用。FPGA 的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。同时EDA开发工具的通用性、设计语言( 在此为VHDL) 的标准化以及设计过程几乎与所用器件的硬件结构无关,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,可以在很短的时间里完成十分复杂的系统设计。

1.3 论文所做的工作与研究内容

随着EDA(Electronics Design Automation)技术的发展和可编程逻辑器件的广泛应用,传统的自下而上的数字电路设计方法、工具、器件已远远落后于当今技术的发展。基于EDA技术和硬件描述语言的自上而下的设计技术正在承担起越来越多的数字系统设计任务。

本设计主要论述了利用FPGA进行测频计数,单片机实施控制的方法实现多功能频率计的过程,使得频率计具有了测量精度高、功能丰富、控制灵活等特点。该频率计依照等精度的测量原理,克服了传统计数器测频原理随被测信号频率下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个频率域保持恒定的测量精度。该频率计利用FPGA来实现对被测频率信号及标准频率信号的周期计数,由单片机实现对系统的控制、数据运算及数制转换等功能。

本设计的主要工作包括以下几项内容:

2

内蒙古科技大学毕业设计说明书(毕业论文)

(1)简述了当今频率计的发展状况,对几种常用的测频方法进行了介绍和对比. (2)在FPGA和单片机的基础上采用等精度测量方法,实现了高精度的频率、周期、脉宽和占空比的测量。

(3)采用MSC-51单片机来实现对功能键的控制、数据的运算、码制的转换、数据的显示等功能。

(4)完成了基于数字硬件电路设计平台Max+ plusII的FPGA硬件电路的设计和单片机的测试控制、数据处理程序。

本文分5章介绍了基于FPGA和单片机的等精度数字频率计的设计原理、设计方法、和开发步骤,并对频率计的测量结果和实际输入频率进行了比较,分析了本设计影响测量精度的主要因素。

3

内蒙古科技大学毕业设计说明书(毕业论文)

第二章 等精度数字频率计测频原理及设计方法

2.1 等精度数字频率计测频原理

2.1.1 常用测频方法简介

目前常用的测频方法可以分为3类,即: (1)比较法

通过与标准频率f0比较确定被测频率fx,测量精度主要取决于标准频率f0的精度。主要方法有用于低频段测量的拍频法、示波器法和用于高频频段测量的差频法等。

(2)电路频率特性测量法

由电路的已知参数与电路的频率特性得到被测频率fx,主要方法包括用于低频段的电桥法和用于高频或微波频段的谐振法。

(3)计数器法

由单位时间内被测信号的周期重复次数测得fx,即计数器法测频.目前最常用的计数器法是测频法或测周法,其测量精度主要取决于基准时间和计数的量化误差。当被测频率较高时,采用测频法可以得到较高的测频精度;当被测频率较低时,采用测周法可以得到较高的测频精度。但当被测频率变化范围较大时,这两种方法均不能保证整个频率范围的测量精度。[1]

本课题测频原理为等精度测频,下面就等精度测频原理进行具体叙述. 2.1.2 等精度测频原理

等精度测频法是在计数器测频法的基础上发展而来的。其原理图如图2.1所示。 当方波预置门控信号CL可由单片机发出,CL的时间宽度对测频精度影响较小,所以可以在1秒至0.1秒间选择,在此设其宽度为BZH和 TF。BZH和TF是两个可控的32位高速计数器,BENA和ENA分别是他们的计数允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为FS;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率FXE,测量频率为FX。

4

内蒙古科技大学毕业设计说明书(毕业论文)

START计数使能信号BZHBENABZQ32BCLK[31..0]CLRDMUX64-8TFTENATCLKCLRTZQ32[31..0]Sel[2..0]8Data[7..0]数据输出端口BCLK标准信号CL门控信号TCLK被测信号Q>CLRCLR清零信号Sel[2..0]数据选择信号3

图2.1 等精度测频原理图

测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置零,然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1,与此同时,将同时启动计数器BZH和 TF,进入“计数允许周期”。

在此期间,BZH和 TF分别对被测信号和标准频率信号同时计数。当TPR秒后,预置门控信号CL被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将着两个计数器同时关闭。[2]

设FX为整形后的被测信号频率,FS为基准频率信号频率,若在一次预置门高电平脉宽时间内(TPR)被测信号计数值为Nx;基准频率计数值为NS,则有下式成立:

Fx?FsNs*Nx (2-1)

2.2 等精度数字频率计的设计方法

2.2.1 电子系统的传统设计方法

现代电子系统一般由模拟电子系统、数字电子系统和模数混合电子系统三大部分组

5

内蒙古科技大学毕业设计说明书(毕业论文)

成。从概念上讲凡是利用数字技术处理和传输信息的电子系统都可以称为数字系统。传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能。电子产品设计的基本思路一直是先选用标准通用集成电路芯片,再由这些芯片和其它元件自下而上的构成思路、子系统和系统,即常说的”自底向上”的设计方法。“自底向上“一般是在系统划分和分解的基础上先进行单元设计,在单元的精心设计后逐步进行功能模块设计,然后再进行子系统的设计,最后完成系统总体设计。这样设计出的电子系统所用元件的种类和数量较多,体积与功耗大,可靠性差。图2.2(a)所示为传统“自底向上”设计方法的具体设计步骤。

随着集成电路技术的不断进步和EDA技术的迅速发展,可编程逻辑器件及EDA技术给今天的电子系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。现在,只要拥有一台计算机、一套相应的EDA软件和空白的可编程逻辑器件芯片,在实验室里就可以完成数字系统的设计和生产。

2.2.2 当代电子系统的设计方法

随着集成电路技术的不断进步和EDA技术的迅速发展,现在人们可以把数以亿计的晶体管,几十万门甚至几百万门的电路集成在一块芯片上。半导体集成电路已由早期的单元集成、部件电路集成发展到整机电路集成和系统电路集成。利用EDA工具,采用可编程器件,通过设计芯片来实现系统功能,这种方法称为基于芯片的设计方法。新的设计方法能够由设计者定义器件内部逻辑,将原来由电路板设计完成的大部分工作放在芯片的设计中进行。这样不仅可以通过芯片设计实现多种数字逻辑系统,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,从而有效的增强了设计灵活性,提高了工作效率。同时,基于芯片的设计可以减少芯片的数量,缩小系统的体积,降低能源消耗。电子系统的设计方法也由传统的“自底向上“的方法改为”自顶向下“的设计方法。在这种新的设计方法中,由整机系统用户对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路ASIC来实现,且这些专用集成电路是由系统和电路的设计师亲自参与设计的,直至完成电路到芯片版图的设计,再交由IC工厂加工,或者用可编程ASIC(例如CPLD和FPGA)现场编程实现。[1]

在“自顶向下“的设计中,首先需要进行行为设计,确定该电子系统的功能、性能及允许的芯片面积和成本等。接着进行结构设计,根据该电子系统或芯片的特点,将其

6

内蒙古科技大学毕业设计说明书(毕业论文)

分为接口清晰、相互关系明确、尽可能简单的子系统,得到一个总体结构。这个结构可能包括算术逻辑单元、控制子单元、数据通道、各种算法状态机等。下一步是把结构转换成逻辑图,这时需要进行硬件仿真,以最终确定本次设计的正确性。最后进行版图设计,即将电路图转化成版图。

Top-downBottom-up行为设计系统分解结构设计单元设计逻辑设计功能快划分电路设计子系统设计版图设计系统总成 图2.2(a)“自顶向下“设计步骤 (b)“自底向上“设计步骤

本设计所采用的正是自顶向下的设计方法,缩短了设计周期,降低了设计成本。

7

内蒙古科技大学毕业设计说明书(毕业论文)

第三章 主要芯片及设计工具简介

3.1 主要芯片介绍

3.1.1 AT89C52单片机性能简介

图3.1 AT89C52引脚图

AT89C52是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含8K字节可反复擦写的只读程序存储器(EPROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52适合于许多较为复杂的控制应用场合,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其引脚图如图3.1,内部方框图见附录一。

(1) 主要性能参数:

·与MCS-51 产品指令和引脚完全兼容兼容 ·8K字节可编程闪烁存储器

8

内蒙古科技大学毕业设计说明书(毕业论文)

·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·256*8字节内部RAM ·32可编程I/O线 ·3个16位定时器/计数器 ·8个中断源

·可编程串行UART通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路

AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电共组模式。空闲方式停止CPU工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

(2) 引脚功能说明: VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,即地址/数据复用总线。作为输出口用时,每脚可驱动8TTL门电流。当P1口的管脚写1时,被定义为高阻抗输入。P0能够用于访问外部程序/数据存储器,它可以被定义为地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口输出缓冲器能接收/输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,此时可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P1.0、P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4

9

内蒙古科技大学毕业设计说明书(毕业论文)

个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口是一组带有内部上拉电阻的8位双响I/O口。P3口输出缓冲级可驱动4个TTL逻辑门电路。P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口管脚备选功能如下所示:

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(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

10

内蒙古科技大学毕业设计说明书(毕业论文)

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 (3) 振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

(4) 芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。[3]

3.1.2 FLEX10K芯片系列简介

随着电子技术的不断发展,电子系统的设计方法也发生了很大的变化,传统的设计方法正逐步退出历史舞台,而基于EDA技术的芯片设计正在成为电子系统设计的主流。大规模可编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程专用集成电路(ASIC)。可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件,是一种由用户编程来实现某种逻辑功能的新兴器件,芯片内的逻辑门、触发器等硬件资源可由用户配置来连接来实现专用的用户逻辑功能。它是大规模集成电路技术飞速发展与计算机辅助设计、计算机辅助生产和计算机辅助测试相结合的一种产物,是现代数字系统向超

11

内蒙古科技大学毕业设计说明书(毕业论文)

高集成度、超低功耗、超小封状和专用化方向发展的重要基础。它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性和保密性,而且给数字系统的设计方法带来了革命性的变化。目前常用的可编程逻辑器件从结构上可将其划分为两大类:CPLD和现场可编程门阵列FPGA。

FPGA是 20世纪80年代中期出现的可编程逻辑器件,其结构类似于掩膜可编程门阵列(MPGA),它由许多独立的可编程模块组成,拥护可以通过编程将这些模块连接起来实现不同的设计。FPGA兼容了MPGA和PLD两者的优点,因而具有更高的集成读、更强的逻辑实现能力和更好的设计灵活性。FPGA具有掩膜可编程门阵列(MPGA)的通用结构,它由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。其中FPGA的功能由逻辑结构的培植数据决定。工作时这些配置数据存放在片内的SRAM或熔丝上。基于SRAM的FPGA器件在工作前 需要从芯片外部加载配置数据。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场编程。FLEX 10K器件结构图如图3.2所示:

图3.2 FLEX 10K器件结构图

12

内蒙古科技大学毕业设计说明书(毕业论文)

各种FPGA再结构上的差异主要反映在可编程逻辑块CLB上,常见的结构主要有三种类型,即查找表结构、多路开关结构和多级与非门机构。本测频系统选用FPGA器件是Altera公司所生产的FLEX10K系列中的EPF1020RC(208-4)。FLEX10K系列是第一款多达25万门的嵌入式PLD,FLEX10K具有高密度和易于在设计中实现复杂宏函数与存储器的特点,因此可以适应系统级设计的要求。每个FLEX10K器件都包含一个嵌入式阵列,它为设计者提供了有效的嵌入式门阵列和灵活的可编程逻辑。另外,FLEX10K器件也提供多电压I/O接口,它允许器件桥接在不同电压工作系统中。FLEX10K还具有多个低失真时钟,以及时钟锁定和时钟自举锁相环电路,内部三态总线等特性。其具体性能特点如下:

(1) 工业界第一种嵌入式PLD系列,具有在单个器件中系统集成的能力,具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列。

(2) 高密度 具有10000到250000个可用门,高达40960位内部RAM。 (3) 系统级特点 支持多电压I/O接口;低功耗,维持状态时电流小于0.5mA,遵守PCI总线规定;内置JTAG边界扫描测试电路;器件采用先进SRAM工艺制造;通过外部EPROM、集成控制器或JTAG接口实现电路可重构(ICR);时钟锁定和时钟自举选项有助于减小时钟延迟/变形和对时钟进行倍频;器件内低变形时钟树形分布;所有器件都经过100%的性能测试。

(4) 灵活的内部连接 快速通道连续式布线结构带来快速可预测的连线延时;具有可以用来实现快速加法器、计数器和比较器的专用位链;具有实现告诉、多输入逻辑函数专用级连链;模仿三态功能可以是内部三态总线;多达6个全局时钟信号和4个全局清除信号。

(5) 功能强大的I/O引脚 每个引脚都有一个独立的三态输出使能控制;每个I/O引脚都有漏极开路选择;可编程输出电压摆率控制可以减小开关噪声。

(6) 具有快速建立时间和时钟到输出的外部寄存器

(7) 多样的封装形式 84到600引脚的各种封装,封装形式有TQFP、PQFP、BGA和PLC等;同一种封装中的各种FLEX10K器件的引脚兼容。

(8) 具有良好的软件设计支持和布局布线的能力 (9) 能够与其它公司的多种EDA工具接口

13

内蒙古科技大学毕业设计说明书(毕业论文)

FLEX 10K器件主要包括嵌入式阵列、逻辑阵列、FastTrack互连和I/O单元等4部分。另外FLEX 10K器件还包括6个用于驱动寄存器控制端的专用输入引脚,以确保高速低失真(小于1.5ns)控制信号的有效分布。这些信号是用于专用的布线通道,这些专用通道提供了比FastTrack互连更短的延时和更小的失真。4个全局信号可由4个专用输入引脚驱动,也可以由器件内部逻辑驱动。这为时钟分配或产生用于清楚器件内部多个寄存器的异步清除信号提供了理想的方法。[4]

3.2 MUX+PLUSⅡ概述

MAX+PLUSⅡ是Altera公司为开发其可编程逻辑器件而推出的专用软件,其易学、易用、界面友好且集成化程度高,全称是Multiple Array Matrix and Progtammable Logic User SystemⅡ(多阵列矩阵及可编程逻辑用户系统Ⅱ)。MAX+PLUSⅡ是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。他支持Altera公司的不同结构器件,可在多平台上运行。MAX+PLUSⅡ具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松的掌握和使用MAX+PLUSⅡ软件。

MAX+PLUSⅡ软件众多突出出的特点如下:

(1)开放式的界面:MAX+PLUSⅡ软件可与其他工业标准的设计输入、综合与校验工具相连接它EDA工具的接口遵循EDIF200、EDIF300、参数模块库LPM2.1.0,标准延迟格式SDF2.0等多种标准MAX+PLUSⅡ软件接口允许用户使用Altera或标准的EDA设计输入工具来创建逻辑设计MAX+PLUSⅡ的编译器对Altera器件的设计进行编译,使用Altera或其他EDA校验工具进行器件级或板级仿真。

(2)设计与结构无关:MAX+PLUSⅡ支持Altera公司的各种可编程逻辑器件,提供了工业界真正与结构无关的可编程逻辑设计环境。MAX+PLUSⅡ的编译器还提供了逻辑综合与优化功能以减轻用户的设计负担。

(3)完全集成化:MAX+PLUSⅡ的设计输入、综合编译、时序分析、仿真校验下载/配置全部集成在一起,加快动态调试,缩短开发周期;

(4)丰富的设计库:MAX+PLUSⅡ提供丰富的库单元共设计者使用,其中包括74

14

内蒙古科技大学毕业设计说明书(毕业论文)

系列的全会部器件和多种特殊的逻辑功能以及参数化的兆功能。

(5)支持多种硬件描述语言,包括VHDL、Verilog HDL、AHDL语言。 (6)模块化工具:设计者可从各种设计输入、编辑、校验及器件编程工具中作出选择,形成用户风格的开发环境,必要时还可以在保留原始功能的基础上添加新的功能。 MAX+PLUSⅡ的设计过程包括设计输入、项目编译、功能时序仿真、编程配置。其中常用的设计输入方法有:通过MAX+PLUSⅡ图形编辑器创建图形文件(.gdf);通过MAX+PLUSⅡ文本编辑器,使用VHDL语言创建文本设计文件(.vhd)。使用Verilog HDL语言创建文本文件(.V)。[4]

3.3 VHDL语言简介

硬件描述语言(HDL,Hardware Description Language)是EDA技术的重要组成部分,常用的硬件描述语言有VHDL、Verilog、ABEL等,VHDL是EDA技术的主流硬件描述语言之一,也是本文设计所采用的硬件描述语言。VHDL的英文全名是Very High Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL(IEEE-1076)的标准版本之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准化硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本的VHDL即IEEE标准的1076-1993版本,又得到了众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家预言,在新的世纪中,VHDL和Verilog将承担起几乎全部的数字系统设计任务。

VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多硬件特征的语句外,VHDL的风格和语法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项设计实体分成外部和内部,外部是可视的,是端口,内部是不可视的,是内部功能和算法的完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成之后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是

15

内蒙古科技大学毕业设计说明书(毕业论文)

VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的,具体如下:

(1)支持从系统级到门级电路的描述,同时也支持多层次的混合描述;描述形式可以是结构描述,也可以是行为描述,或二者兼而有之。VHDL支持从上到下的设计,也支持从下到上的设计;支持模块化设计,也支持层次化设计。

(2)VHDL具有丰富的仿真语句和库函数,在设计早期,即尚未完成设计时,就可以查验设计系统的功能可行性,随时可对设计项目进行模拟仿真。也就是在远离门级的较高层次上进行模拟,使设计者在设计早期就能对整个设计项目的结构和功能的可行性做出决策。

(3)VHDL具有行为描述能力和程序结构,能支持大规模设计的模块分解和已有设计模块的再利用功能。VHDL中设计实体的概念、程序包的概念、设计库的概念都为大型设计项目的分解和并行工作提供了有利的支持。这一点符合大规模电子系统的高效、高速设计完成必须由多人甚至由多个开发组共同并行工作才能实现的市场需求。

(4)用VHDL完成的一个确定的设计项目,在EDA工具软件的支持下,编译器将VHDL所表达的电路功能自动地转换为文本方式表达的基本逻辑元件连接图——网表文件。应用EDA工具的逻辑优化功能,可以自动的把一个综合后的设计项目变成一个更小、更高速的电路系统。反过来,设计者还可以从综合和优化后的电路获得设计信息反馈去更新修改VHDL设计描述,使之更加完善。

(5)VHDL对设计项目的描述具有独立性,实际设计者可以在不懂硬件的结构,不知最终实现的目标器件为何的情况下,而进行独立的设计。正是因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,VHDL的设计项目的目标硬件器件具有广阔的选择范围,其中包括各系列的CPLD、FPGA及各种门阵列器件。

(6)VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计项目,在不改变源程序的条件下,只需改变类属参数或函数,就能轻易改变设计项目的规模和结构。

16

内蒙古科技大学毕业设计说明书(毕业论文)

第四章 硬件电路设计

4.1 系统组成

本设计的核心部件为AT89C52单片机和现场可编程芯片FPGA。所有信号包括基准频率信号、被测信号以及自校输入信号均可在AT89C52单片机的控制下输入到FPGA芯片中,单片机将每次测试结果读入内存中,经运算处理后,以十进制的形式送到8位数码管显示电路显示。整个系统在硬件上可分为显示模块、键盘输入模块、测量模块四个部分。键盘控制命令通过FPGA内部的扫描译码电路读入单片机,来实现测频、测周期、测脉宽、测占空比及复位等功能的控制。该设计以FPGA的系统40MHz晶振作为标准频率,单片机的晶振由FPGA系统晶振分频得到,易于实现单片机与FPGA同步。系统框图如图4.1所示。具体硬件原理图见附录一。

电 源显示电路 FPGA键盘电路 FPGA时钟电路 FPGA单片机AT89C52测量模块FPGA标准信号 BCLK被测信号 TCLK自校输入 BCLK

图4.1 等精度测频系统框图

4.2 键盘接口电路

键盘接口电路如图4.2所示。键盘控制命令由键盘扫描译码电路读入,当有按键按下时向单片机发出中断请求读取键值。键盘译码电路的keyp引脚接单片机的外部中断0输入引脚,用于向单片机发出中断请求读取键值。没有按键按下时键盘译码电路的keyp为高电平,当有按键按下时,键盘扫描译码电路在确定不是干扰后,keyp引脚变为低电

17

内蒙古科技大学毕业设计说明书(毕业论文)

平向单片机发出中断请求读取键值,按键撤消后keyp恢复高电平。键盘译码电路的kv[0..2]用于向单片机输出键值。由于单片机读取键值的操作是通过外部中断引起的,这样就避免了因对键盘扫描而占用大量单片机的CPU,提高了单片机的使用效率。

VCC10K10K10K10K10K10KU?key0key1key2key3key4key5012345key0key1key2kwy3key4key5kv2kv1kv0987p1.2p1.1p1.0keyp6int0键盘译码电路 图4.2 键盘接口电路

4.3 显示电路

本设计中的显示方式为动态显示,使用动态显示方式可节省FPGA内部大量资源。显示频率为50Hz。动态显示即每次只有一个LED被选中。但是每次驱动的间隔很短,利用人体视觉效应,看起来8个数码管好象同时点亮。显示电路由移位存储器、字型译码器、LED片选译码器、时钟发生器以及七段数码管组成。其中移位存储器用于存放要显示的十进制数据,其si引脚接单片机的RXD来接收单片机输出的数据;si-clk用于接收移位脉冲;引脚sel[0..2]用于接收单片机发出的控制信号来实现对某一时刻要显示数据的选择。字型译码器的作用是将十进制数据转换为LED字型码以驱动七段LED数码管。时钟发生器的作用是通过对标准频率的分频来输出一个2Hz的周期信号,这个信号为显示闪烁时的频率。LED片选译码器用于对八片LED输出片选信号,由于显示方式为动态显示,因此某一时刻只能有一片LED被选中点亮。其s-ena引脚为显示闪烁使能

18

内蒙古科技大学毕业设计说明书(毕业论文)

引脚,当为低电平时显示以时钟发生器发出的频率闪烁,以便在某些特殊场合下引起用户的注意。S-ena为低电平时显示闪烁,为高电平时正常显示。显示电路原理图如图4.3所示:

U?U?RXDTXD01234siclkd0d1d2sel0d3sel1d4sel2SHIFT_SISOLED_CHU?BCLK0bclkxclk19876501234d0d1d2d3d4abcdefgdp1211109876512345678VCCabacfbdgeecfdgdpdpDS?AMBERCA时钟发生器sel0sel1sel20123212U?ledsel0ledsel1ledsel2sel0ledsel3sel1ledsel4sel2ledsel5ledsel6s_enaledsel7clk456789101112345678VCCabacbdfgeecfdgdpdpDS?AMBERCAP2.7扫描信号发生器99 图4.3显示模块电路

4.4 测量电路

测量电路部分由测频与自校选择模块、脉宽控制模块和测频模块组成。其中测频与自校选择模块的作用是在系统系统自检时将标准频率作为被测频率信号输送给系统,而在正常测量时将被测信号输送给系统。脉宽控制模块和测频模块根据按键键值共同控制选择被测量。其中管脚SPUL为脉宽、测频选择输入信号,由单片机根据需要发出。当SPUL为高电平时测频模块的32位计数器的输入使能由D触发器控制,其测量预置门控时间为被测信号周期的整数倍,此时计数值用来计算被测信号的频率。当SPUL为低电平时标准计数器的输入使能由附加模块的PL输出来控制,测量门控时间为被测信号的一个正脉宽的时间或一个低脉宽的时间宽度。此时标准计数器的计数值用来测量被测信号的脉宽宽度。测量电路如图4.4所示。CLR为低电平时计数器使能端BENA为低电平,测频电路不工作,系统清零。Spul为1时系统测量被测信号的频率, CL均为高电平后,

19

内蒙古科技大学毕业设计说明书(毕业论文)

在随后到来的TCLK上升沿BENA及START引脚变为高电平,计数器开始计数。当CL变为低电平后,在随后到来的TCLK上升沿BENA变为低电平,计数器停止计数。同时START引脚变为低电平用以通知单片机计数结束。在单片机发出的SEL[0..2]控制下通过data[0..7]分8次将计数器的计数值读入单片机。测量电路原理图如图4.4所示,测量电路波形图如图4.5所示,测量电路逻辑符号如图4.6所示。

A?1ASFXFS012A?ASFOUTFXFS330121cltclkclrpl4附加校验ENDA?A?01201spulMUX21301234567BCLKENATCLKCLCLRINS0INS1INS7ENDIND015IND1IND2IND3IND4IND5IND6IND71613141312111098outSPULSEL[0..2]频率模块 图4.4 测量电路原理图

图4.5 测量电路波形图

图4.6 测量电路逻辑符号

20

内蒙古科技大学毕业设计说明书(毕业论文)

下面具体就这三个模块进行讲述。 4.4.1 测量与自校验选择电路

测频与自校电路用于系统自检,AS引脚接单片机的P23脚,FX接标准频率输入,FC接被测频率输入。系统自检时AS为高电平,FOUT输出标准频率BCLK,将标准频率做为被测频率进行测量,然后根据测量结果以判断系统运行是否正常。自检结束后AS恢复为低电平,FOUT输出被测频率TCLK。标准频率取自FPGA的外部晶振。该模块采用图形输入法实现,原理图如图4.7所示,其波形图如图4.8所示,选择控制信号AS为高电平是输出端为BCLK,AS为低电平时输出为TCLK。

1274F08U?A3FXAS1U?A1U?A74F043274F32FOUT212U?A3FC74F08 图4.7 测量与自校验选择电路

图4.8 测量与自校验选择电路波形图

图4.9 测频与自校选择电路逻辑符号

21

内蒙古科技大学毕业设计说明书(毕业论文)

4.4.2 测频原理与测频电路

在第二章已经对测频原理进行了详细介绍,但是为了使大家更好的了解等精度测频原理的方法,有必要在此再对常用测频方法及等精度测频原理进行简单介绍。目前市场上所采用的测频方法可以分为以下几种:

一是利用电路的某种响应特性来测量频率,谐振测频法和电桥测频法是这类测量方法的典型代表。

二是比较法,即利用标准频率与被测频率进行比较来测量频率,其准确度取决于标准频率的准确度。拍频法、示波器法以及差频法等均属于此类方法的范畴。

以上两种方法都适合与模拟电路中实现,还有一类目前使用最广泛的计数测频法则适合于数字电路实现。该方法根据频率定义,记下单位时间内周期信号的重复次数,又称为电子计数器测频法。

电子计数器测频法又有两种实现方法:直接计数测频法和等精度测频法。直接计数测频法只是简单地记下单位时间内周期信号的重复次数,其计数值会有一个计数误差。此方法的测量精度主要取决于基准时间和计数器的计数误差。等精度测频法是在直接测频法的基础上发展起来的。其原理图如图4.9。

测频模块由两个32位计数器、一个D触发器和一片64-8选择器组成。其管脚BCLK为标准频率信号的输入引脚,TCLK管脚为被测频率信号的输入引脚;CL管脚为预置门控信号输入引脚;CLR为计数器清零信号输入引脚,每次新的测量开始时都要将计数器清零以免产生错误;SEL[2..0]管脚为单片机读入数据时的数据选择信号输入,以便单片机分八次将两个32位计数器的计数值读入。

当系统开始测量被测信号的频率时,首先由单片机单片机将预置门控信号置为高电平,但此时计数器并不开始工作,而是要等到被测信号的上升沿到达时两计数器同时开始工作。门控时间结束后,单片机将门控信号置为低电平,但此时计数器同样并不立即停止计数,要一直等到被测信号的上升沿两计数器才同时停止工作。可见两计数器的计数周期总是等于被测信号的整数,这是确保测频结果保持恒定精度的关键,预置门控信号宽度的改变记忆机随机的出现时间造成的误差最大只能BCLK的一个时钟周期。

设标准信号的频率为Fs,被测信号的频率Fx,在一次预置门时间中对被测信号的计数值为Nx,对标准新颖好的计数值Ns,则下式成立:

22

内蒙古科技大学毕业设计说明书(毕业论文)

FsNs Fx?*Nx (4-1)

最后通过SEL信号和64位至8位的多路选择器将计数器中锝64位数据分8次读入单片机并按上式计算和结果显示。

START计数使能信号BZHBENABZQ32BCLK[31..0]CLRDMUX64-8TFTENATCLKCLRTZQ32[31..0]Sel[2..0]8Data[7..0]数据输出端口BCLK标准信号CL门控信号TCLK被测信号Q>CLRCLR清零信号Sel[2..0]数据选择信号3

图2.1 等精度测频原理图

测频模块波形图如图4.10所示:CLR为低电平时计数器使能端BENA为低电平,测频电路不工作。当CLR及CL均为高电平后,在随后到来的TCLK上升沿BENA变为高电平,计数器开始计数。当CL变为低电平后,在随后到来的TCLK上升沿BENA变为低电平,计数器停止计数。同时START引脚变为低电平用以通知单片机计数结束。在单片机发出的SEL[0..2]控制下通过data[0..7]分8次将计数器的计数值读入单片机。

图4.11测频模块波形图

测频模块符号如图4.12所示:

23

内蒙古科技大学毕业设计说明书(毕业论文)

图4.12 测频模块符号

4.4.3 脉宽控制电路

脉宽控制电路采用的是图形输入法。CL为单片机发出的预置门控信号,CLR为单片机发出的复位信号, TCLK为被测信号输入,1引脚始终接高电平。输出引脚PL有两个作用:一是在某些情况下作为标准频率计数器的使能控制信号,一是作为计数器计数结束信号通知单片机读取数据;CLR为低电平时输出PL为低电平,CL与TCLK联合控制实现其功能。CL=0时PL输出一个正脉冲,其宽度为被测信号负脉宽的宽度,CL=0时PL输出一个宽度为被测信号正脉宽宽度的脉冲。此脉冲作为计数器的计数使能信号控制其计数起止。脉宽控制电路原理图如图4.13示:

VCC12U?A3074F081U?3201U?3201U?32DQDQDQCLKCLRD触发器CLKCLRD触发器CLKCLRD触发器P2.1U?A132A?074F321U?A21TCLK3174F02P2.274F04U?A21274F0874F04U?A31U?A2Q1PLQ22PLSS1 图4.13 脉宽控制电路

脉宽控制电路波形图如图4.14所示, 1引脚永远为高电平时。当CL为高电平时PL引脚输出宽度TCLK高脉宽宽度的脉冲;当CL为低电平时,PL输出宽度为TCLK低电平宽度的脉冲。

24

内蒙古科技大学毕业设计说明书(毕业论文)

图4.14 脉宽控制电路波形图

脉宽控制电逻辑路符号如图4.15所示:

图4.15 脉宽控制电路逻辑符号图

4.5 硬件电路的VHDL语言描述

4.5.1 D触发器

本设计中所用到的D触发器为带有异步清零功能的D触发器。当复位信号REST为低电平时,D触发器的输出端Q和Qb分别输出逻辑0和逻辑1,与起它输入无关。当复位信号REST为高电平时,每当时钟输入CLK有一个上升沿时输出Q端变转换为与输入信号D相同的逻辑值,输出端Qb的值永远与Q端相反。D触发器真值表如表4-1示:

表4-1 D触发器真值表:

Rest 0 1

D X X Clk Q 0 X Qb 1 /X 其工作波形图如图4.16所示:

25

内蒙古科技大学毕业设计说明书(毕业论文)

图4.16 D触发器波形图

D触发器符号如图所示:

图4.17 D触发器逻辑符号

D触发器硬件描述语言VHDL语言描述见附录C(1)。 4.5.2 32位计数器

在本设计中用到两个32位计数器分别用于计标准频率信号和被测频率信号的周期数。计数器是以二进制数据的形式计数,由于标准频率信号的频率为40MHz,为了测量精度,因此将计数器的位数设为32位。在计数器使能端ENA为高电平有效的情况下,每当被测频率信号CLK有一个上升沿到达时,计数器的值便加1,直至使能端ENA变为低电平。CLR信号为低电平时计数器值清零。Q[31..0]显示的数值即为计数器的计数值,Q[31..0]引脚的作用是将计数器的值送给MUX64-8多路选择器以便单片机将计数值读入。32位计数器工作波形图如图4.18所示:

图4.18 32位计数器波形图

32位计数器的符号如图4.19所示:

26

内蒙古科技大学毕业设计说明书(毕业论文)

图4.19 32位计数器逻辑符号

32位计数器的硬件描述语言VHDL语言描述见报附录C(2)。 4.5.3 MUX64-8多路选择器

由于单片机的数据总线有限,不可能一次性将两个计数器的值读入。MUX64-8多路选择器的作用就是将两个计数器的64位计数值暂时存储,然后在单片机发出的选择信号SEL[0..2]的控制下分8次将计数值读入。MUX64-8多路选择器的波形图如图4.20所示,其中din1、din2、q均为十六进制数据。

图4.20 MUX64-8多路选择器波形图

MUX64-8多路选择器选择输出对应表如表示4-2所示:

表4-2 MUX64-8多路选择器真值表:

选择信 Sel Sel 001 Sel 010 Sel 11 Sel 100 Sel 101 Sel 110 Sel 111 输 号 出数据 000 Q[7..0] Din1 Din1 Din1 Din1 [7..0] Din2 Din2 Din2 Din2 [7..0] [31..24] [23..16] [15..8] [31..24] [23..16] [15..8] 其中Din1[31..0]为标准频率计数器输出端

Din2[31..0]为被测信号计数器输出端

27

内蒙古科技大学毕业设计说明书(毕业论文)

MUX64-8多路选择器的符号图如图4.21所示:

图4.21 MUX64-8多路选择器符号图

MUX64-8多路选择器硬件描述语言VHDL语言描述见附录C(3)。 4.5.4 MUX2-1选择器

MUX2-1选择器芯片的功能是在选择信号S的控制下输出端Z输出不同的信号。当S为逻辑1时输出端Z与输入信号B相同,当S为逻辑0时输出信号Z与输入信号A相同,其工作波形图如图4.22所示,MUX2-1选择器硬件描述语言VHDL语言描述如见附录C(4)。

图4.22 MUX2-1选择器波形图

4.5.5 时钟发生器

时钟发生器的即分频器,其作用是将频率较高的信号转换为用户所需的低频信号,其实质为一计数器。每当输入时钟的上升沿到达时计数器的值CNT便加1,在计数器计数值为一半时输出信号取反,当计数器计数满时输出信号再次取反,计数器每计数满一次就是用户所需低频信号的一个周期。时钟发生器的波形图如图4.23所示:

图4.23 时钟发生器波形图

28

内蒙古科技大学毕业设计说明书(毕业论文)

时钟发生器硬件描述语言VHDL语言描述见附录C(5)。

4.5.6 64位移位寄存器

64位移位选择寄存器符号如图4.24所示:

图4.24 64位移位寄存器符号图

64位移位选择寄存器串行输入选择并行输出,设其内部64位存储信号为REG[63..0]。当时钟信号CLK有一个上升沿时,输入引脚SI的值便赋给了REG63,其原存储信号REG[63..0]依次向下移,即原REG1赋予REG0,原REG2赋予REG1……以此类推。在选择信号SEL[2..0]的控制下输出信号SO[4..0]输出被选中的信号。64位移位寄存器真值表如表4-3所示:

表4-3(a) 64位移位选择寄存器移位真值表:

Si X L H

Clk 0 Reg63 reg62 reg61 …… reg0 reg63.0 reg62.0 reg61.0 reg0.0 L reg63.0 reg62.0 reg1.0 H reg63.n reg62.n reg1.n 表4-3(b) 64位移位选择寄存器选择——输出对应表

Sel[2..0] 000 So [4..0] Reg [0..4] 001 Reg [8..12] 010 Reg 011 Reg 100 Reg 101 Reg 110 Reg 111 Reg [16..20] [24..28] [32..36] [40..44] [48..52] [56..60] H——高电平 L——低电平 ——低电平到高电平跳变 Reg63.0,reg62.0,reg61.0,reg0.0——规定问台条件建立前的电平 Reg63.n,reg62.n,reg1.n——时钟最近的 前的电平

29

内蒙古科技大学毕业设计说明书(毕业论文)

64位移位寄存器波形图如图4.25所示:

图4.25 64位移位寄存器波形图

64位移位寄存器硬件描述语言VHDL语言描述见附录C(6)。

4.5.7 数码管字型译码器

数码管字型译码器为并行输入并行输出的芯片,其作用一是将单片机输出的BCD码转换为数码管字型码,二是驱动驱动数码管芯片显示。数码管字型译码器的真值表如表4-4所示:

表4-4 数码管字型译码器的真值表

Datain[4..0] X0001 X0010 X0011 X0100 X0101 X0110

Dataout[7..0] X0111111 X0000110 X1011011 X1001111 X1100110 X1101101 Datain[4..0] X0111 X1000 X1001 X1010 X1011 其它 Dataout[7..0] X1111101 X0000111 X1111111 X1101111 X1000000 X1110001 数码管字型译码器波形图如图4.26所示:

图4.26 数码管字型译码器波形图

30

内蒙古科技大学毕业设计说明书(毕业论文)

数码管字型译码器硬件描述语言VHDL语言描述见附录C(7)。 4.5.8 数码管片选译码器

此芯片的输出控制着8片LED芯片的点亮与否,当数码管芯片的某一输出管脚为0时,该管脚所对应的数码管被点亮,在同一时刻只能有一片LED被点亮。当闪烁使能信号S_ena信号为电平时数码管开始闪烁,闪烁频率为Clk-s的频率。即当S-ena和Clk-s同时为低电平是LED片选译码器输出为“11111111”,8片数码管全部不亮。其它任何情况下输出正常,即有数码管被选中。数码管片选译码器真值表如表4-5所示,数码管片选译码器波形图如图4.27所示:

图4.27 LED片选译码器波形图

表4-5 LED片选译码器真值表:

S_ena 0 1 1 1 1 1 1 1 1 Clk_s 0 x x x x x x x x

Ledaddr xxx 000 001 010 011 100 101 110 111 Ledsel 11111111 11111110 11111101 11111011 11110111 11101111 11011111 10111111 01111111 LED片选译码器VHDL语言描述见附录C(8)。

31

内蒙古科技大学毕业设计说明书(毕业论文)

4.5.9 键盘编码器

键盘编码器的作用一是当有键按下时将其转换为相对应的键值;二是将对键盘进行防抖动处理;三是确认有键按下切不是干扰后向单片机发出读键值请求。其真值表如表4-6所示:

表4-6 键盘编码器真值表:

Keyin 111110 111110 111110 111110 111110 111110 其它

Keyvalue 000 001 010 011 100 101 111 Keypressed

0 0 0 0 0 0 1 键盘编码器波形图如图4.28所示:

图4.28 键盘编码器波形图

其防抖动原理是:在内部设一计数器,当有键按下时,计数器开始对标准信号频率进行计数,在10ms过后,判断该键是否仍然按下,如果是则按键有效则通过Keypressed引脚向单片机发出读取键值请求;否则此次按键无效。为了使波形图更清楚的表示键盘编码器的工作原理,在波形图中设计数器的防抖动时间为4个CLK信号周期。 键盘编码器硬件描述语言VHDL语言描述见附录C(9)。

32

内蒙古科技大学毕业设计说明书(毕业论文)

4.5.10 单片机主控电路

单片机测频控制电路附录图所示,由单片机控制FPGA完成整个系统的电路测试、数据处理和显示输出等各种功能。单片机引脚分配如下:

(1) Insel[0..2]:单片机的数据总线为8位,但是系统的两个计数器的总位数为64位,

因此单片机需要分8次将计数器的结果读入。Insel[0..2]引脚的作用就是控制系统将64位计数器的值分8次读入单片机。Insel[0..2]分别接单片机P2口的4、5、6引脚。

(2) Spul:此引脚的作用是控制系统选择测频或测脉宽。Spul接单片机P2.0引脚控

制。当Spul=0时测脉宽;spul=1时,等精度测频。

(3) Clr系统全清0功能。由P2.2口控制。

(4) As:测频与自校验选择控制,接单片机P2.3口。As=0时用于自校验;as=1时

用于测频。

(5) Start:计数结束信号,用来通知单片机计数器计数结束,此信号接单片机外部中

断1输入引脚。

(6) Si:移位存储器数据输入引脚,接单片机的RxD引脚。 (7) Kv[0..2]:键盘译码,接单片机的P1[0..2]。

(8) Keyp:按键标志信号,用来通知单片机有键按下。接单片机的外部中断0输入

引脚。

(9) indata[0..7]:单片机与FPGA之间的数据总线,接单片机P0口。

(10) osel[0..2]:由于系统需要将计算结果进行输出显示,osel[0..2]的作用就是将计

算结果按一定的顺序输出显示,同时选中相应的七段LED。

(11) sc-clk:为单片机提供外部晶振,接单片机的XTAL1引脚。

33

内蒙古科技大学毕业设计说明书(毕业论文)

第五章 软件电路设计

软件设计是相对于数字硬件电路FPGA的设计而言的,主要是针对于AT879C52单片机程序设计。单片机的程序主要有以下几个子程序组成(具体程序见附录):

5.1 主程序

开始复位自检系统正常吗?YN等待检修有键按下吗?YN读取键值转向相应测量程序测量结束?Y读取计数器计数值N计算结果数制转换输出显示

图 5.1 主程序流程图

系统上电以后,单片机内部首先开始执行的是复位自检程序。自检结束以后,如果系统正常则8片LED显示“88888888”,否则显示“--------”,等待用户检修。在自检正

34

本文来源:https://www.bwwdw.com/article/fjn7.html

Top