CPLD的智能数字电压表毕业论文_第1页
CPLD的智能数字电压表毕业论文_第2页
CPLD的智能数字电压表毕业论文_第3页
CPLD的智能数字电压表毕业论文_第4页
CPLD的智能数字电压表毕业论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于CPLD的智能数字电压表设计1 绪论1.1 课题背景及意义随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,其中电压的测量甚为突出。数字电压表是采用数字化测量技术设计的电压表。传统的模拟式(即指针式)电压表已有100多年的发展历史,虽经得到不断改进和完善,仍无法满足现在电子测量的需要。数字电压表自1952年问世以来,显示出强大的生命力,现已成为电子测量领域中应用最广泛的一种仪表。数字电压表在电子领域发挥着越来越重要的作用,相对传统的电压表,显示明了、直观、读数准确,准确度高,分辨力高,扩展能力强,反应速度快,高集成度,抗干扰能力强,功耗

2、小等诸多优势而得到迅速发展。另一方面,当前数字系统的设计正朝着容量大、速度快、体积小、重量轻的方向发展,推动该潮流迅猛发展的引擎就是日趋进步和完善的ASIC设计技术。目前数字系统的设计可以直接面向用户要求,根据系统的行为和功能要求自上而下逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件。CPLD被广泛应用于产品的原型设计和产品生产之中,因为它具有集成度高、编程较灵活、设计开发周期短、开发工具先进、工艺性强、容易上手、适用范围广、性价比较高、保密性强等特点,可实现较大规模的电路设计。DVM的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表,现在已经广泛应用于电子、电工测量,

3、自动化测试系统等领域。故数字电压表已成为一种必不可少的测量仪器。本设计利用CPLD在系统设计中的各种优势,在Quartus II平台上进行开发智能数字电压表。不仅能满足用户测量需要,而且考虑到了在这技术日新月异的年代系统升级的问题,迎合了社会资源有效利用的发展理念,另一方面,给用户节省了不少系统设计成本。1.2 国内外研究状况数字电压表在这50多年来有了很大的突破。数字电压表类型越来越多,采用不同的原理和电子元件,精确度不断上升,集成度增加。数字电压表的发展微型化,智能化,性价比更高,功能更全面,可靠性更高,外观更精致,功耗更小,应用更广泛。近 20 年来,在高新技术如微电子技术、计算机技术、

4、集成技术、网络技术等得到了迅猛发展的背景和形势下,不断地向仪器仪表提出了更新、更高、更多的要求,如要求速度更快、灵敏度更高、稳定性更好、样品量更少、遥感遥测更远距、使用更方便、成本更低廉、无污染等,同时也为仪器仪表科技与产业的发展提供了强大的推动力,并成了仪器仪表进一步发展的物质、知识和技术基础。传统的仪器仪表将仍然朝着高性能、高精度、高灵敏、高稳定、高可靠、高环保和长寿命的“六高一长”的方向发展。新型的仪器仪表与元器件将朝着小型化(微型化)、集成化、成套化、电子化、数字化、多功能化、智能化、网络化、计算机化、综合自动化、光机电一体化;在服务上专门化、简捷化、家庭化、个人化、无维护化以及组装生

5、产自动化、无尘(或超净)化、专业化、规模化的“二十化”的方向发展2。在这“二十化”中,占主导地位、起核心或关键的作用是微型化、网络化、虚拟化、数字化和智能化。 数字电压表的设计和开发,已经有各种各样的类型和款式。传统的数字电压表不够智能,适合人工手动现场测量,无法完成对远程测量数据的有效处理,这是在技术高度智能化的背景下无法满足人们的测量需求。相反高智能的数字电压表基于PC通信,不但可以将测量数据进行存储传输,而且可以借助计算机或内置软件对测量数据作进一步地处理。因此未来数字电压表的发展,无论在功能和实际应用上,较传统电压表更具有搞性能,高性价比,高智能化,这使得智能数字电压表有着良好的发展应

6、用前景。1.3 本课题的主要内容本课题的主要内容如下:(1) 介绍数字电压表的研究背景及意义,指出了CPLD的发展优势:编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化。另外还介绍了数字电压表的国内外发展及应用状况。(2) 对数字电压表进行探讨,首先介绍了数字电压表的基本特点,指出了其精确度高,微功耗,抗干扰能力强,便于扩展等特性。其次着重介绍了数字电压表的基本结构组成,简述了其工作原理。(3) 提出系统总体设计方案。首先叙述本次设计的技术参数,然后总体介绍了单片机在数字电压表中的应用,说明选取CPL

7、D为控制核心设计电压表的相对优势,最后,确定了基于CPLD的智能数字电压表总体设计方案,进行了模块化设计。(4) 系统硬件电路设计。叙述了电源电路、A/D转换部分的电路(包括分压电路,换挡电路和A/D转换电路)、显示电路的工作原理并进行了电路设计。(5) 系统软件设计。首先介绍了Quartus II设计平台和DHL语言的应用,然后针对本课题提出软件编程方案:采用模块化设计,整个程序的编写分主程序、A/D转换子程序、FIFO子程序、分频子程序、BCD译码子程序和动态扫描子程序,并给出A/D转换子程序的状态机,FIFO子程序和动态扫描原理。同时根据模块化的设计方案,编写出各部分程序的源代码。(6)

8、 总结了设计功能,指出了设计的不足之处,并对系统的未来扩展进行了展望。2 系统总体设计数字电压表简称DVM(Digital Voltmeter)。它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪器。智能化数字电压表则是大规模集成电路(LSI)、数显技术、计算机技术、自动测试技术(ATE)的结晶。2.1 数字电压表的基本结构随着技术的发展,人们对测量技术的要求越来越搞,相对传统的电压表,数字电压表主要有以下特点:显示清晰、直观、读数准确,准确度高,分辨力高,测量范围宽,扩展能力强,测量速度快,输入阻抗高,集成度高,微功耗,抗干扰能力强。下面介绍数字

9、电压表的基本结构,以及由它扩展而成的数字多用表DMM(Digital Multipler)的整机框图。普通数字电压表的基本结构如图2.1所示。主要包括8部分:输入电路;A/D转换器;基准电压源;计数器;逻辑控制器;译码驱动器;数字显示器;电源。总电路又可归纳成模拟与数字两大部分,为模拟部分,是数字部分。图2.1 数字电压表的基本结构输入电路的作用是将基本量程变为扩展量程,以便构成多量程数字电压表,满足各种测量的需要。当扩展量程高于基本量程时,需经分压器对输入电压进行衰减,在送至A/D转换器中。若扩展量程低于基本量程,应通过前置放大器将输入电压进行放大。A/D转换器是DVM的心脏,应用它可以将模

10、拟量转换成数字量。逻辑控制器是仪表的中枢,用以控制A/D转换顺序,保证测量正常进行。A/D转换结果就反应在计数器中,并通过译码电路变换成笔段码,最后驱动显示器显示出相应的数值。数字电压表中常用的显示器件有辉光数码管、荧光数码管(VFD),液晶显示器(LCD),发光二极管数码显示器(LED),CMOS-LED光电组合器件(CL),LED点阵显示器4。目前,A/D转换器的类型多达数十种:积分型、斜波型、比较型、脉宽型、复合型等。2.2 本设计技术参数(1)本设计最高量程为380V。(2)本设计分5个档量程:05V,050V,0110V,0220V,0380V。可以通过调档开关实现各档位。量程为05

11、V时,精确度约为0.02V。(3)所测量的交流电压的频率要小于64KHZ。(4)本设计进行四位有效数字显示。2.3 单片机在智能数字电压表中的应用2.3.1 单片机简介单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统9。单片机具有体积小、微型化、功耗低、扩展灵活、控制功能强和使用方便等优点,得到广泛的应用。随着技术的发展,各种单片机可供选择。速度,稳定性

12、,兼容性,功能单元等是评价单片机性能的重要依据。市面上主流单片机有AT89S与AVR单片机,PIC单片机,STC单片机,Motorola单片机,MSP430单片机,GMS90系列单片机等。2.2 AT89C51单片机内部结构框图单片机由运算器、控制器、存储器、输入输出设备构成。有着明显的硬件特性:(1)单片机集成度高;(2)系统结构简单,使用方便,实现模块化; (3)单片机可靠性高,可工作到106 107小时无故障; (4)处理功能强,速度快;(5)低电压,低功耗,便于生产便携式产品;(6)控制功能强;2.3.2基于单片机的智能电压表基于以上优点,单片机在各种仪器仪表控制器件中得到广泛的应用,

13、并且在智能电压表中的应用表现出良好的性能。目前,由各种基于单片机控制的数字电压表,在智能化各个测量领域得到广泛应用,并展现出良好的发展前景。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。基于单片机的数字电压表一般包括单片机控制模块、复位电路、电源电路、显示模块、A/D转换模块、校准电路等。图2.3 基于单片机的数字电压表设计框图单片机复位电路设计的性能,关系到整个系统工作的可靠性。复位电路的作用:在上电或复位过程中,控制CPU的复位状态,这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可

14、以提高电磁兼容性能。目前为止,单片机复位电路主要有四种类型:(1)微分型复位电路;(2)积分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路。单片机系统电源设计是单片机应用系统设计中的一项重要工作,电源的精度和可靠性等各项指标,直接影响系统的整体性能。电源电路一般可分为开关电源电路,稳压电源电路,稳流电源电路,功率电源电路,逆变电源电路,DC-DC电源电路,保护电源电路等。有些场合需要隔离电源,将信号传输通路完全隔离,以提高系统的安全性和抗干扰性能。例如,光电耦合器输入/输出电路的供电,模拟信号隔离放大器输入/输出电路的电源。模数转换包括采样、保持、量化和编码四个过程。A/D转换模块

15、一般包括A/D转换器。A/D转换后得到的是数据,这些数据应传送给89C51单片机进行处理。根据数据传送确认方式A/DC与单片机有下述三种连接方式:定时传送方式、查询传送方式、中断传送方式。显示模块是人机交互的接口,使设计更直观。常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。2.4 CPLD在智能电压表中的应用在数字技术蓬勃发展的今天,CPLD有着不可忽略的作用。2.4.1 CPLD相对优势传统的数字电压表采用模/数转换器件和通用集成路逻辑器件来设计,这样的设计不便于体统的修改和升级,缺少灵活性,接线复杂,体积大,故障率高。另外,以单片机为控制核心的数字电压表的设计

16、所用器件少,使用灵活,是目前使用最为广泛的一种设计方式。但是在设计和调试的过程中,也出现了一些问题,如工作速度较低,功能修改及调试都需要硬件电路的支持等,在一定程度上增加了功能修改及系统调试的困难,可编程逻辑器件(CPLD)设计的数字电压表除了能完成数字逻辑的基本功能之外,更具有系统及设计的优势,用硬件描述语言决定系统功能,可以在硬件不变的情况下根据需要修改程序,以更新和扩展功能,其灵活性和适用性显著提高13。在控制领域,还有许多功能更为强大的控制器件,如DSP,ARM。但不论是在经济上还是开发难易程度上来说,都不是最佳选择。因此本设计是以CPLD为控制核心进行设计的。2.4.2 CPLD简介

17、及开发流程CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,主要由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块构成。图2.4 CPLD结构CPLD具有编程灵活、集成度高、适用范围广、入门容易、设计开发周期短、开发工具先进、性价比高、可靠性高、保密性强等特点,可实现较大规模的电路设计,因此其应用深入仪器仪表、数控机床、航天测控设备、计算机网络等方面。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能14-16。一般来说,CPLD设计流程包括:(1) 功能系统设计和CPL

18、D芯片选择等准备工作。方案设计一般采用自顶向下的设计方法,将系统单元化,划分成多次层的基本单元,直到可以直接使用EDA元件库为止。(2) 设计输入,常用的方法是硬件描述语言和原理图输入方式。(3) 编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。(4) 综合优化(synthesis),综合优化使软件设计与硬件的可实现性挂钩,将设计输入翻译成各种基本逻辑单元组成的逻辑网表,并根据目标与要求(约束条件)优化生成的逻辑网表,输出edf和edn等文件,供CPLD厂家的布局布线器进行实现。2.4.3 本系统的总体设计本系统采取模块化设计思想,在降低系统复杂度的同

19、时,使设计思路更清晰。硬件部分包括电源电路,提供相应电压的电源;A/D转换部分,包括调档开关,输入电路和A/D转换电路,将模拟量转换成数字量;数码管显示部分,将测量结果以数字的形式传给用户。软件部分包括主程序、A/D转换子程序、分频子程序、BCD译码子程序和动态扫描子程序。系统整体工作流程:调整调档开关,输入电路将扩展量程转换成基本量程(05V),A/D转换器以640KHZ的的频率对其采样,CPLD求采样十次的平均值(因此,在测量交流量时,其变化频率最好小于64KHZ),然后做相应处理进行四位数码管动态有效显示。图2.5 系统框图2.5 本章小结本章首先介绍了数字电压表的特点及基本结构原理,指

20、出其发展趋向,接下来给出两种总体设计方案。基于单片机的智能数字电压表:介绍单片机基本结构及优势,给出其系统设计总体方案,指出各部分的结构原理;基于CPLD的智能数字电压表设计:首先指出CPLD的相对优势,以及CPLD基本介绍和开发流程,并说明本文是以CPLD为控制核心的,并给出设计方案。下一章进行具体的硬件设计。3 硬件设计随着电子产业的发展,越来越多的电子产品充斥在市场,对于电子工程师不可能掌握每一种芯片。那么了解一类器件的特点、优势、应用领域就尤为重要。3.1 CPLD芯片的选择经过几十年的发展,许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Lattice、Xili

21、nx世界三大权威公司的产品。Altera 公司是 90 年代以后发展最快、最大的可编程逻辑器件供应商之一。主要产品 :MAX3000/7000,FLEX10K, APEX20K,ACEX1K,Stratix,Cyclone 等;Xilinx 公司是 FPGA 的发明者,也是全球最大的可编程逻辑器件的供应商之一。产品种类较全,主要有:XC9500/4000,Coolrunner(XPLA3),Spartan,Virtex 等;Lattice 是 ISP 技术的发明者, ISP 技术极大的促进了 PLD 产品的发展,主要产品有ispMACH4000,MACH4/5 , ispLSI2000/500

22、0/8000等。Altera 公司的产品在国内占有很大的份额,其价格和性能得到工程师的普遍认可。以下简单介绍其系列产品。Classic系列是Altera公司最早的的产品系列、其集成度可达900可用门,引脚可达68个。工业标准的Classic系列由一个具有公共互联逻辑的阵列构成,适用于集成度不高、价格便宜的场合。该系列具有独特的“0”功率模式,维持状态的电流很小,应用于低功耗的产品设计中。该系列基于EPROM工艺,编程信息不易丢失。Altera领先于市场的MAX系列CPLD是世界一流的低成本器件,几乎可以实现所有的数字控制和某些模拟控制功能。作为非易失单芯片解决方案,MAX CPLD很很容易集成

23、到用户的系统中。采用这些器件后,可以解决电路板级问题,例如处理器输入输出引脚不够用,灯光、音响和移动模拟输入输出管理,组件之间采用电瓶转换信号或者总线等问题;还能够以低成本转换成不兼容的接口。MAX CPLD可以使设计人员主要精力集中在更复杂的设计难题上。MAX CPLD系列的主要特征包括低成本、零功耗、超小型封装、瞬时接通和非易失、在系统可编程(ISP)、免费的Quartus II网络版软件支持和免费的Modelsim-Alttera网络版软件支持。对于大批量应用,Altera 3.3v MAX 3000A 器件是成本最低的,而5.0v、3.3v和2.5v MAX7000系列为多种应用提供世

24、界一流高性能方案。非易失、基于EEPROM和MAX 3000A和MAX 7000系列具有瞬时接通能力,密度分布在32-512个宏单元之间。这些器件支持ISP,可直接在现场重新配置。面对琳琅满目的芯片产品,选择哪种芯片对工程师来说很重要。一般依据以下准则进行选择CPLD:(1) 选择性价比最优的芯片。尽管随着技术的提高,各种CPLD芯片有了一定程度的降价,但价格然是限制CPLD应用的重要因素之一,所以在满足设计要求的同时,考虑价格因素。(2) 选择产品设计性能升级有空间的。考虑但产品有更高要求时,所属系列芯片有更加的选择,由此可节省开发的成本和周期。(3) 选择便于设计延续和扩展的芯片。这样有利

25、于系列产品的开发,减少部分设计,节省开发投入。(4) 选择提供免费设计软件厂家的芯片,免费的软件可以减少资本投入,降低成本。本设计选用MAX7000S系列器件。MAX7000S系列器件利用CMOS EEPROM单元来实现逻辑功能。用户配置的MAX7000S结构适用多种独立的组合和时序逻辑功能。3.2 电源电路设计5V电源是应用电路中常用的电源,许多芯片都会用到,如ADC0809.。稳压电源一般由整流器、整流器和稳压器三大部分构成。电源变压器:将电网提供的220V交流电压转换为各种电路设备所需的交流电压。整流电路:利用单向导电器件将交流点转换成脉动直流电路。滤波电路:利用储能元件把动脉直流电转换

26、成比较平坦的直流电。稳压电路:利用电路调整作用使输出电压稳定的过程称为稳压。图3.1 直流电源系统方框图本电源设计中还有电源保护和指示灯。220V电压经过变压器将其变为低压交流电压,经桥式全波整流变成直流电压,再经过双T电容加集成稳压芯片(7805和7809)最终变成稳压的5V直流电压。图3.2 5V电源设计图CPLD属于低压低耗器件,3.3V电压是很常见的。很多情况下,一些器件的兼容性很强,可以用3.3V电压也可以用5V电压。但电压之间的相互转换是很有必要的。解决电平匹配问题的方法有很多:最简单的降低电平的方法是电阻分压法,5V电平,经1.6K+3.3K电阻分压得到3.3V电压;专用电平转换

27、芯片,如164245不仅可以用作升压/降压,而且两边电源不同步,但此法不够经济;晶体管+上拉电阻法,就是一个双极型三级管或MOSFET,C/D极接一个上拉电阻到正电源,输入电平很灵活,输出电平大致就是正电源电平。 图3.3 5V转3.3V电路 图3.4 3.3V转5V电路3.3 A/D转换部分的电路设计模数转换模块的核心是模数转换芯片。不同的芯片有着不同的应用原理、性能、工作环境等。3.3.1 模数(A/D)转换芯片的选择在本设计中,模数(A/D)转换模块是一个重要的模块,它关系到最后数电压表电压值的精确度。所以,A/D芯片的选择是设计过程中一个很重要的环节。常用的A/D芯片有ADC0809,

28、AD0832,TLC2543C等几种。下面简单介绍一下这三种芯片。ADC0809是8位逐次逼近型A/D转换器。多路开关可选通8个模拟通道,允许分时输入8 路模拟量,共用A/DC进行数据转换。其主要特性:(1)8路输入通道,分辨率为8位;(2)具有转换起止控制端;(3)转换时间短,100s(时钟为640kHz时),130s(时钟为500kHz时);(4)单个+5V电源供电;(5)模拟输入电压范围0+5V,不需要零点和满刻度校准;(6)低功耗,约15mW。如果输入的模拟量变化大快,必须在输入之前增加采样电路。ADC0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道

29、。它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。它可以从主机高速传输转换数据。它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。综合上述几种A/D转换芯片的特点,精度为8位的ADC0809芯片能够满足智能数字电压表的设计需要,且资料充足,容易上手。3.3.2 模数(A/D)芯片ADC0809的手册如图3.5所示为ADC0809的内部结构框图。ADC0809由8路模拟开关、地址锁存与译码器、比较

30、器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。当地址锁存信号ALE有效时,地址锁存器锁存3位地址C、B、A,经译码电路译码后选通8路模拟开关某一路信号,因此通道地址锁存器和译码电路控制8路模拟开关。8位A/D转换器为逐次逼近式,由256R电阻分压器、电压比较器、树状模拟开关(这两部分组成一个D/A变换器)、逻辑控制、逐次逼近寄存器和定时电路组成。图3.5 ADC0809的内部结构三态门输出锁存器用来保存A/D转换结果,当输出允许信号OE有效时,打开三态门,输出A/D转换结果。因输出有三态门,便于与单片机总线连接。图3.6 ADC0809的引脚由引脚图3.6所示,ADC0

31、809共有28个引脚,采用双列直插式封装。ADC0809 虽然有8路模拟通道可以同时输入8路模拟信号,但每个瞬间只能转换一路,各路之间的切换由软件变换通道地址来实现。其主要引脚功能如下所示。D7D0:8位二进制数字量输出端。IN0IN7:8路模拟量输入端。A、B、C:3位地址输入线,用于选通8路模拟输入中的一路。表3.1 ADC0809通道地址选择表ALE:地址锁存允许信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。EOC: A/D转换完成信号,此端输出一个高电平表示A/D转换结束。START: A/D转换启动信号,输入,高电平有效。OE:数据输出允许信号。此端输入一低

32、电平时,D7D0一般成高阻态;A/D转换结束后,此端输入一个高电平来打开输出三态门,输出转换结果。REF(+)、REF(-):基准电压。 Vcc:单一5V电源。 GND:地。 CLK:脉冲信号输入端。其时钟频率范围在101200kHZ,典型值为640KHZ。ADC0809工作过程可根据其时序图很容以理解。图3.7 ADC0809的时序图ADC0809的工作过程分为如下几步。第一步:首先确定A、B、C三位地址,决定选择哪一路模拟信号。第二步:使ALE端接收一正脉冲信号,使该路模拟信号经选择开关达到比较器的输入端。第三步:使START端接收一正脉冲信号,START的上升沿将逐次逼近寄存器复位,下降

33、沿启动A/D转换。第四步:EOC输出信号变低,指示转换正在进行。第五步:A/D转换结束,EOC变为高电平,指示AD转换结束。此时,数据已保存到8位锁存器中。第六步:OE信号变为高电平,则8位三态锁存缓冲器的三态门被打开,转换好的8位数字量数据被输出到数据线上。如上所述,EOC信号变为高电平表示A/D转换完成,EOC可作为中断申请信号,通知:CPLD取走数据。在查询传送方式中,EOC可以作为CPLD查询外设(ADC)的状态信号。3.3.3 输入电路设计由于输入电压不得高于5V,所以测量高电压时,需要对输入的电压信号进行分压处理使其在05V之间,具体电路如图3.8所示.。图3.8 分压电路因为分出

34、的电压为05V,所以当输入为50V时,电压要衰减10倍。转换后的结果需要乘以衰减倍数才能得到真实测量值。设R取1K,由 (1)得R1为9K,同理得R2为21K,R3为43K,R4为75K。对于05V的电压,可以直接输入。五个量程档的衰减倍数分别为1、10、22、44、76.。经分压电路后通过ADC0809的模拟通道进行A/D转换。如图3.8将IN0、IN1、IN2、IN3、IN4与ADC0809的同名管脚相连。可以看出5个量程档占用5个模拟通道,通过3个拨动开关(控制C、B、A管脚电平的高低)来选择哪路模拟通道进行转换,即选择相应量程档来测量。如选择0220V的量程,则开关状态为011,即选通

35、IN3模拟通道进行测量。3.3.4 ADC0809与CPLD连接原理MAX7000S器件可以通过使用外部5.0V的上拉电阻使输出引脚来设置满足5.0V CMOS输入电压要求。若VCCIO为3.3V,则选择开漏输出将会关闭输出上拉三极管,利用外部上拉电阻将输出拉高以满足5.0V的CMOS输入电压。若VCCIO为5.0V,因为当引脚输出超过约3.8V时上拉三极管已经关闭,外部上拉电阻可直接将输出拉高来满足5.0V CMOS输入电压的要求,所以不必选择开漏输出13。用三个拨动开关来表示ADC0809的三个输入(ADDA、ADDB、ADDC),用来选择测量哪路模拟量。ADC0809的Vref(-)管脚

36、接地,Vref(+)管脚接5.0电压,则其测量的范围是05.0V。其中AD0AD7、START、EOC、CLOCK、ALE、ADDA、ADDB、ADDC管脚与CPLD管脚相连;三个拨动开关一端与CPLD管脚相连,一端与1K电阻电压相连。3.4 显示模块的设计显示模块主要是将数据直观地反映给用户,减少人为因素读数误差,是人机交互中的重要组成部分。3.4.1 常用显示器简介本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的

37、清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。但数码管只能是显示0-9的数据,不能够显示全部字符。这也是数码管的不足之处。LED点阵显示器件是由好多个发光二极管组成的。具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。但用LED点阵显示的软件程序设计比较麻烦。1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。大小写英文字母、阿拉伯数字、常用的符号、和日文假名等160个不同的点阵字符图形存储在1602液晶模块内部的字符发生存储器,每一个字符都有一个固定的代码。使用时直接编写软件程序按一

38、定的时序驱动即可。它的特点是显示字迹清楚,价格相对便宜。12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。使用时也直接编写软件程序按一定的时序驱动即可。不过它的价格比1602液晶贵了很多。在本设计中,我们只需要显示最后电压的数字值,综合上面各种显示器件的特点:点阵显示器件驱动显示软件程序编写麻烦,占用的引脚相对也较多。也不是理想的显示器件。液晶显示器件, 12864液晶,1602液晶的功能强,价格贵,在只显示数字的设计中,数码管能够满足需要。因此,在本设计实验我们选择数码管显示器件

39、。3.4.2 数码管应用资料我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。图3.9 数码管原理图其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f

40、,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。可以看出两个编码的各位正好相反。图3.10 数码管管脚共阳极的数码管0f的段编码是这样的:unsigned char code table=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,/070x80,0x90,0x88,0x83, 0xc6

41、,0xa1,0x86,0x8e /8f; 共阴极的数码管0f的段编码是这样的:unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,/070x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71/0f;3.4.3 显示模块电路原理在设计中使用的是一个四位一体、共阴极型七段数码管。在设计时用来两个同样的数码管,便于系统升级时精确度的扩展。 显示模块电路原理如图3.8.。3-8译码器的输出与数码管的公共端相连,用于位选,其同名段选端与CPLD通过驱动芯片相连。图3.11 显示模块电路3.5 本章小结本

42、章主要是系统硬件设计。首先介绍CPLD芯片介绍,选择合适的CPLD芯片。5V电源电路设计,给出电平匹配的方法;A/D转换芯片的选择,以及工作原理,控制方法,以及测量高电压时分压电路的设计;显示电路的设计方法。4 程序设计CPLD利用DHL语言进行编程开发,相对硬件数字系统的设计来说,能够缩短开发周期,降低开发成本,实现系统在线升级。4.1 开发环境介绍CPLD软件都是由PLD/FPGA芯片厂家提供,基本都可以完成所有的设计输入(原理图或HDL),仿真,综合,布线,下载等工作。Altera公司和Xilinx公司是PLD/FPGA最大的生产商。Xilinx公司的WebFITTER是免费PLD开发软

43、件,不需下载,可在线编译,结果用e-mail发送到信箱。使用简单,但要求较快的联网速度。支持XC9500 和 CoolRunner系列;WebPACK ISE也是免费PLD开发软件,支持XC9500,oolrunner,Spartan/II,部分Virtex/E/II器件。Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌综合器以及仿真器,而且可以直接调用第三方的综合器和仿真器进行综合与仿真,从而非常灵活地完成从设计输入到硬件配

44、置的完整PLD设计流程。本设计就是在Quartus II上进行开发。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库。用户使用成熟的模块不仅降低了设计的复杂度、缩短了设计周期,而且增加了设计的灵活性。对第三方EDA工具的良好支持使得用户发挥顺手的工具,展现出软件的友好性和兼容性,充分利用各种工具的优势。 Quartus II继承了Maxplus II 友好的图形界面及简便的使用方法,支持更多的器件类型。Altera在Quartus II 中包含了许多设计辅助工具,如SignalTap II、Chip Editor和RTL Viewer集成了SOP

45、C和HardCopy设计流程。Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。4.2 DHL介绍Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。一个VHDL程序由5部

46、分组成,包括实体(ENTITY)、结构(architecture)、配置(coxnfiguration)、饱(package)和库(library)。实体和结构体两大部分组成程序设计的最基本单元,最主要的是内部逻辑功能和算法的实现。其他的设计可以直接调用已经设计完成的实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL具有以下特点:功能强大、设计灵活;支持广泛、便于修改维护;强大的系统硬件描述能力;独立于器件的设计、与工艺无关;很强的移植能力;易于共享和复用,这些特点与其他语言相比展现出很大的优势。Verilog HDL作为一种硬件描述语言,有C语言的编程风格。1983年

47、,Moorby首创了Verilog HDL,并设计出第一个关于Verilog HDL的仿真器。1987年Synonsys公司开始使用Verilog HDL行为语言作为综合工具的输入。OVI(Open Verilog HDL International)组织负责Verilog HDL的发展,OVI由Verilog HDL的使用和CAE供应商组成,制定标准。 Verilog HDL的最大特点就是易学易用,适合将Verilog HDL内容安排在与ASIC设计等相关课程内部进行讲授,因为拥有有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握。这样的课程安排不仅使学习者学习到Verilog HD

48、L语言,而且同时获得设计实际电路的经验,这是由于HDL语言本身是专门面向硬件与系统设计的。与之相比,VHDL的学习要困难一些。本设计应用Verilog HDL来设计。4.3 语言开发流程用语言开发PLD/FPGA的完整流程为:(1).文本编辑:即可以在专用的HDL编辑环境中编辑,也可以在熟悉的编辑器中编辑。不同的语言注意其文件后缀,通常Verilog文件保存为.v文件, VHDL文件保存为.vhd文件。4.4 程序设计流程及代码根据ADC0809的时序图,很容易写出其状态机。状态机的最简结构一般由两个进程构成,即主控时序进程和主控组合进程。一个进程描述时序逻辑输出,另一个进程描述组合逻辑包括进

49、程问状态值的传递逻辑以及状态转换值的输出。数据单元和控制单元组成ADC0809与CPLD的接口设计系统。复位信号和时钟信号是数据单元和控制单元中两个非常重要的信号。复位信号是系统初始状态确定性的保证,时钟信号则是时序系统工作的必要条件。复位信号有效是状态机通常恢复到初始状态,内部状态随时钟信号的节拍发生变化。从ADC0809的初始状态开始,根据其工作时序图,建立状态机。ADC0809状态机功能描述与相应引脚的取值如下:表4-1 ADC0809状态机功能表状态描述S0态初始状态,通道选择,cba_out = cba_in,OE=0,ALE=0,START=0;S1态通道锁存状态,OE=0,ALE

50、=1,START=0 ;S2态启动A/D转换状态,ALE=0,START=1,OE=0;S3态A/D转换等待状态,ALE=0,START=0,OE=0;IF EOC=0保持当前状态不变,继续等待A/D转换,ELSE转换结束,进入下一状态;S4态数据输出允许状态,A/D转换完毕,开启数据输出允许信号,ALE=0,START=0,OE=1;S5态数据锁存状态,开启数据锁存信号,将转换结果送锁存器锁存,ALE=0,START=0,OE=1;S6态延时状态,为了保证数据可靠锁存,延时一个时钟状态周期ALE=0,START=0,OE=1;其他状态返回初始状态,ALE=0,START=0,OE=0ADC0

51、809转换控制代码见附录。图4.1 A/D转换系统电路图 ADC0809以640KHZ的频率对模拟电压采样一次,得到一个八位二进制数。对于交流电的测量,将每次测量结果和前面九次测量结果的平均值作为最终测量结果,这一任务由FIFO子程序完成。定义一个有十个八位的存储器,每次读取采样结果取代十个数值中最先读取的那个数。求出十次采样的平均数由dout输出。图4.FIFO子程序流程图 FIFO子程序代码如下:module fifo(clk, din, dout) ;inputclk ;input7:0din ;output7:0dout ;parameter DEPTH = 4, MAX_COUNT

52、= 4b1001 ;reg 7:0dout ; reg 7:0 temp ; /10个值中最先读取的数 reg 3:0 head; /定义写指针reg11:0max ;reg11:0 average ;reg 7:0 fifomem0:MAX_COUNT; /定义fifomem存储器108integer i ;initialbeginfor(i=0;i10;i=i+1)fifomemi = 8b00000000 ;head = 4b0 ;end always (posedge clk) begin if (head = 4b1001) begin head = 4b0000; end else

53、 begin head = head + 1; endtemp = fifomemhead ;fifomemhead = din ;max = max + fifomemhead - temp ;average = max / 10 ;dout = average7:0 ;endendmoduleBCD码一般由四位二进制表示,在数码管显示相应的十进制需要进行显示。译码显示如下:module seg_encoder(seg_led_eight,data_bcd);output 7:0 seg_led_eight;input 3:0 data_bcd;reg 7:0 seg_led_eight;a

54、lways (data_bcd) begincase(data_bcd)4d0 : seg_led_eight=8b00111111;4d1 : seg_led_eight=8b00000110;4d2 : seg_led_eight=8b01011011;4d3 : seg_led_eight=8b01001111;4d4 : seg_led_eight=8b01100110;4d5 : seg_led_eight=8b01101101;4d6 : seg_led_eight=8b01111101;4d7 : seg_led_eight=8b00000111;4d8 : seg_led_ei

55、ght=8b01111111;4d9 : seg_led_eight=8b01101111;default : seg_led_eight=8b0000_0000;endcaseendendmodule其中data_bcd表示四位BCD码,seg_led_eight为八位控制数码管段显。在本设计中采用数码管动态显示。动态驱动是将所有数码管的段选线(即a, b, c, d, e, f, g, dp)连在一起,每个数码管的位选线由独立的I/O线控制。显示时,CPLD从段选线送出字符编码,选中哪个位选线,相应的数码管就会点亮。所以我们想要哪位数码管显示,只需使其位选线有效,其他数码管的位选线无效,同时送出字符编码即可。通过分时轮流使各个LED数码管的位选线有效,就使各个数码管轮流受控显示,这称之为动态扫描。在动态扫描过程中,每位元数码管的点亮时间为12ms,利用人的视觉缺陷,产生各个数码管同时点亮的效果。动态显示能够产生静态显示一样的视觉效果,不但能够降低功耗,而且能够节省有限的I/O口。在本设计中采用1KHZ的脉冲进行扫描。应用分频子程序产生1KHZ的时钟脉冲。在显示之前,先对数据进行处理。在此设计中进行四位有效数据显示,ADC0809输出的数据在0255之间,需将其转化到05.0,为便于取各个有效位的BCD码,将数据转化成四位整数,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论