版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于FPGA的数字温度计的设计郑州轻工业学院可编程数字系统课程设计 题 目: 基于FPGA的数字温度 计的设计 成 绩: 学生姓名: 专业班级: 学 号: 院 (系): 电子信息工程学院 指导教师: 完成时间: 年 月 日 基于FPGA的数字温度计的设计摘 要微型计算机的出现使现代的科学研究得到了质的飞跃,而EDA技术的出现则是给现代工业控制以及日常生活带来了极大的方便,大规模可编程逻辑器件FPGA以成本低、周期短、可靠性高等特点,给设计人员进行产品开发方面带来了诸多方便。本系统设计的数字温度表正是应用FPGA来实现数字温度表的各种相关功能。本文主要介绍采用EDA技术自上而下的设计思路,从硬件
2、和软件两个方面阐述了如何通过FPGA器件实现数字温度表系统功能,有效的克服了传统的数字温度计的缺点。基于FPGA在Quartus II 9.0软件下应用VHDL语言编写程序,采用ALTRA公司Cyclone系列的EP2C5T144芯片进行了计算机仿真,并给出了相应的仿真结果。此系统利用温度传感器AD590采集温度信号,产生的温度信号经过调零、放大处理后,利用A/D转换器ADC0804将模拟信号转换成数字信号,将数字信号送入EPF10K10LC84-4进行处理,最后送入显示电路,由数码管显示温度值。该温度表具有结构简单,抗干扰能力强,功耗小,可靠性高,速度快反应时间短等优点。关键词:数字温度表
3、CPLDFPGA 温度传感器 A/D转换器目 录摘要1.前言111背景介绍112 数字测温系统12. 系统描述221可编程逻辑器件FPGA222 FPGA结构原理与特点223温度传感器AD590的介绍324 A/D转换器ADC0804425硬件描述语言VHDL626数字开发工具Quartus627 Quartus开发系统的特点628 Quartus的设计流程73系统设计方案831数字温度表的工作原理832功能模块的设计8321测温模块8322温度信号处理模块9323模数转换模块10324进制转换模块13325动态扫描模块1433系统综合164系统的仿真分析及器件下载1741系统的仿真分析174
4、2系统的器件下载195. 结论20心得与体会21参考文献22附 录231. 前言11背景介绍检测是控制的基础和前提,而检测的精度必须高于控制的精确度,否则无从实现控制的精度要求。不仅如此,检测还涉及国计民生各个部门,可以说在所以科学技术领域无时不在进行检测。科学技术的发展和检测技术的发展是密切相关的。现代化的检测手段能达到的精度、灵敏度及测量范围等,在很大程度上决定了科学技术的发展水平。同时,科学技术的发展达到的水平越高,又为检测技术、传感器技术提供了新的前提手段。目前温度计技术的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。目前的温度计中
5、传感器是它的重要组成部分,它的精度灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。温度是一个非常重要的过程量,是工业生产中常见的工艺控制参数之一,它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。温度控制不好就可能引起生产安全,产品质量和产量等一系列问题,由此可知温度控制是生产自动化的重要任务。大规模可编程逻辑器件CPLD/FPGA,是一种整合性较高的逻辑元件。由于具有高整合性的特点,故利用它进行产品开发,不仅成本低、周期短、可靠性高,而且PCB面积及成本也会大大减少。本文介绍了一个以ALTERA公司可编程逻辑芯片EPF10K10LC
6、84-4为控制核心、附加一定外围电路组成的数字温度控制系统。介绍了数字温度表系统的组成及工作原理,简述了在EDA平台上用FPGA器件构成该控制系统的设计思想和实现过程。论述了数据采集模块、数据处理模块、BCD译码模块、动态扫描模块等的设计方法与技巧。12 数字测温系统温度的采集与测量被广泛应用在人们的日常生活中。在现今众多的测温系统中,测温元件常常选用热敏电阻、半导体测温二极管以及集成模拟温度传感器等器件,中间环节则由低通滤波、多路转换、信号放大、模数转换等部分组成。由于以上各类温度传感器及其它器件的互换性差,温漂和非线性误差较大,因此,整个测温系统的测量误差也随之增大;同时,由于中间环节较多
7、,系统抗干扰性能也不理想。本文介绍的是一种基于FPGA芯片控制的数字温度计,本温度计属于多功能温度计,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,能够及时检测温度变化以及温度变化,提供温度数据值,使人们对温度的变化做及时的调整。12. 系统描述21可编程逻辑器件FPGA可编程逻辑器件(Programmable Logic Device,PLD)是一类半定制的通用性器件,用户可以通过对PLD器件进行编程来实现所需的逻辑功能。与专用集成电路ASIC相比,PLD具有灵活性高、设计周期短、成本低、风险小等优势,因而得到了广泛应用,各项相关技术也迅速发展起来,PLD目前已经成为数字系统设
8、计的重要硬件基础。 PLD从20世纪70年代发展到现在,已经形成了许多类型的产品,其结构、工艺、集成度、速度等方面都在不断完善和提高。随着数字系统规模和复杂度的增长,许多简单PLD产品已经逐渐退出市场,目前使用最广泛的可编程逻辑器件有两类:现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。 FPGA和CPLD的内部结构稍有不同,FPGA即现场可编程门阵列,其全称为Field Programmable Gate Array。通常
9、,FPGA中的寄存器资源比较丰富,适合同步时序电路较多的数字系统;CPLD中组合逻辑资源比较丰富,适合组合电路较多的控制应用。在这两类可编程逻辑器件中,CPLD提供的逻辑资源较少,而FPGA提供了最高的逻辑密度、最丰富的特性和极高的性能,已经在通信、消费电子、医疗、工业和军事等各应用领域当中占据重要地位。因此,本文主要针对FPGA进行阐述。 FPGA是一类高集成度的可编程逻辑器件,起源于美国的Xillnx公司,该公司于1985年推出了世界上第一块FPGA芯片。在这二十年的发展过程中,FPGA的硬件体系结构和软件开发工具都在不断的完善,日趋成熟。从最初的1200个可用门,90年代时几十万个可用门
10、,发展到目前数百万门至上千万门的单片FPGA芯片,Xilinx、Altera等世界顶级厂商已经将FPGA器件的集成度提高到一个新的水平。FPGA结合了微电子技术、电路技术、EDA技术,使设计者可以集中精力进行所需逻辑功能的设计,缩短设计周期,提高设计质量。22 FPGA结构原理与特点前生产FPGA的公司主要有Xilinx、Altera、Actel、Lattice、QuickLogic等,生产的FPGA品种和型号繁多。尽管这些FPGA的具体结构和性能指标各有特色,但它们都有一个共同之处,即由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块,从而实现不同的设计。 典型的FPGA通常包含三
11、类基本资源:可编程逻辑功能块、可编程输入/输出块和可编程互连资源,基本结构如图1所示。可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片;可编程输入/输出块完成芯片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周;可编程内部互连资源包括各2种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。用户可以通过编程决定每个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。不同厂家或不同型号的FPGA,在可编程逻辑块的内部结构、规模、内部互连的结构等方面经常存在较大的差异。 除了上述构成FPGA基
12、本结构的三种资源以外,随着工艺的进步和应用系统需求的发展,一般在FPGA中还可能包含以下可选资源:存储器资源(块RAM、分布式RAM);数字时钟管理单元(分频/倍频、数字延迟、时钟锁定);算数运算单元(高速硬件乘法器、乘加器);多电平标准兼容的I/O接口;高速串行I/O接口;特殊功能模块(以太网MAC等硬IP核);微处理器(PowerPC405等硬处理器IP核)。下面以Xilinx公司的Spartan-II系列以及Altera公司的Cyclone-II系列FPGA为例,介绍FPGA的一般结构。Xilinx公司的Spartan-II系列FPGA器件的基本结构主要包括5个可配置部分:(1)可配置逻
13、辑块(Configurable Logic Blocks,CLBs),用于实现大部分逻辑功能;(2)在CLBs的四周分布着可编程的输入输出块(Input/Output Blocks,IOBs),提供封装引脚与内部逻辑之间的连接接口;(3)丰富的多层互连结构的可编程连线(未画出);(4)片上的随机存取块状RAM(BLOCK RAM);(5)全数字式延迟锁相环(DLL)时钟控制块,与每个全局时钟输入缓冲器相连,该闭环系统确保时钟边沿到达内部触发器与其到达输入引脚同步,有效地消除时钟分配的延迟。Altera公司FPGA器件Cyclone-II系列的基本结构主要包括:(1)逻辑阵列,由多个逻辑阵列块(
14、Logic Array Blocks,LABs)排列而成,用于实现大部分逻辑功能;(2)在芯片四周分布着可编程的输入输出单元(Input/Output Elements,IOEs),提供封装引脚与内部逻辑之间的连接接口;(3)丰富的多层互连结构的可编程连线(未画出);(4)片上的随机存取块状RAM;(5)锁相环(PLL),用于时钟的锁定与同步、能够实现时钟的倍频和分频;(6)高速的硬件乘法器,有助于实现高性能的DSP功能。23温度传感器AD590的介绍1AD590电流输出型两端温度传感器,AD590是AD公司利用PN结构正向电流与温度的关系制成的电流输出型两端温度传感器(热敏器件)AD590是
15、美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:mA/K式中:流过器件(AD590)的电流,单位为mA;T热力学温度,单位为K。2、AD590的测温范围为-55+150。3、AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流变化31mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。4、输出电阻为710MW。 5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为±0.3。A
16、D590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流,在8051的各种课本中常看到它相当常用到。其规格如下:(1)、温度每增加1,它会增加1A输出电流。(2)、可量测范围-55至150。(3)、供应电压范围+4V至30V。AD590的输出电流值说明如下:其输出电流是以绝对温度零度(-273)为基准,每增加1,它会增加1A输出电流,因此在室温25时其输出电流Io=(273+25)=298A。Vo的值为Io乘上10K,以室温25而言,输出值为2.98V(10K×298A)。量测Vo时,不可分出任何电流,否则量测值会不准。电路分析:AD590的输出电流I=(273+T)A(
17、T为摄氏温度),因此量测的电压V为(273+T)A ×10K= (2.73+T/100)V。为了将电压量测出来又需使输出电流I不分流出来我们使用电压追随器其输出电压V2等于输入电压V。由于一般电源供应较多零件之后电源是带杂讯的因此我们使用齐纳二极体作为稳压零件再利用可变电阻分压, 其输出电压V1需调整至2.73V。24 A/D转换器ADC0804工业生产过程中,被控参数,如液位、速度、温度、流量、压力等都是连续变化的量,称为模拟量,而微型计算机所能识别的数据只能是数字量。所以在把数据送入微型计算机之前,必须把模拟量转换成数字量,也就是我们所说的模数转换(A/D)。信号的输入端可以是传
18、感器,也可以是转换器的输出,最后把经过模数转换的数字信号提供给FPGA器件,以便进行信息处理。模数转换器与FPGA器件的接口框图如图2-2所示。A/D转换器FPGA数据总线控制总线图2-2 模数转换器与FPGA的接口框图4目前,模数转换的常用方法主要包括计数器式A/D转换,逐次逼近式A/D转换,双积分式A/D转换和V/F变换型A/D转换。在上述这些常用的转换方法中,逐次逼近式A/D转换具有较高的转换速度、转换程序固定和精度高的特点,适用于快速自动检测系统与多回路的快速数据采集系统,是目前应用较多的A/D转换器结构。其框图如图2-3所示。数字输出启动信号转换结束VXD/A逐次逼近寄存器控制逻辑W
19、1 W2 比较器时钟模拟量输入VREFVC 图2-3 逐次逼近型A/D转换器原理图其转换过程说明如下:当启动脉冲信号进入A/D转换器后,在时钟作用下,控制逻辑首先使N位逐次逼近寄存器的最高位置1(其余N-1位置0),经D/A转换成模拟量VC后,与输入的模拟量VX在比较器中比较,从而给出比较结果。当VX VC时,保留该位,否则清零。然后,再使DN-2位置1,与上一位DN-1一起被送入转换器,经D/A转换后的模拟量VC再次与模拟量VX进行比较。如此循环下去,直到最后一位D0比较完成为止。此时,N位寄存器中的数字量即为模拟量所对应的数字量。当A/D转换结束后,由控制逻辑发出一个转换结束信号,通知微型
20、计算机转换已经结束,可以读取数据。在日常生活中,温度的变化范围不会太大,本系统要求最小温度分辨率为1,即使温度变化范围为100,整个系统的温度采集点应为100×2=200个,8位转换器分辨率为1/256,完全满足转换精度要求,所以本系统的模数转换采用的是8位逐次逼近式A/D转换器ADC0804。ADC0804是采用CMOS工艺制成的逐次逼近型转换芯片,具有8位分辨率,即分辨率为1/281/256,转换值介于0255之间。转换误差为±1LSB,转换时间100s(fck=640kHz时),输入电压范围为05V,增加某些外部电路后,输入模拟电压可为5V。在该芯片的内部有输出数据锁
21、存器,与计算机连接时,可以将转换电路的输出直接连接在CPU数据总线上,不需要再附加逻辑接口电路。525硬件描述语言VHDLVHDL 2是Very High-Speed Integrated Cir-cuit Hardware Description Language的缩写,即超高速集成电路(VHSIC)硬件描述语言.它是一种面向设计的多领域、多层次的标准HDL语言, 已经在电子系统自动化设计中成为主要的硬件描述工具。如今在电子系统设计领域中,它已成为软件设计人员必须掌握的一种语言。VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(Li
22、braryBased)的设计的特点,因此设计者可以不必了解硬件结构。,设计时,首先从系统级功能设计开始,对系统高层模块进行行为描述和功能验证,. 这样,可以在系统细节设计之前及早发现问题修改问题,大大提高设计效率。系统的功能和结构进行验证后,就可以自顶而下逐级进行设计的细化,电路结构清楚的模块可以采用结构描述;而不确定使用什么电路结构的模块可以采用行为描述。然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的FPGA器件中去,从而实现可编程的专用集成电路的设计。VHDL的基本结构包括实体、结构体、配置、程序包、数据库3。VHDL语言的描述对象称为实体(EN
23、TI-TY), 实体是VHDL的描述对象,用来描述一个设计对外部的接口信号、端口数目、端口的方向和数据类型等,还包括一些其它的信息,如属性等;结构体描述其内部的具体细节,如实体的硬件结构、元件之间的互连关系、实体所完成的逻辑功能以及数据的传输变换等;配置语句的作用是根据设计者的不同需要,对同一个实体而给出的不同结构体的描述;程序包是用来定义常用的公用数据类型、常量、子程序等;设计库用于存放编译过的设计单元(包括实体说明、结构体、配置说明、程序包等)。以上五部分构成了一个完整的VHDL程序。26数字开发工具QuartusQuartus4是美国Altere公司自行设计的一种CAE软件工具,其全称为
24、Multiple Array Matrix and Programmable Logic User Systems。它支持Altera公司不同结构的可编程逻辑器件,为用户开发、使用该公司生产的FPGA器件提供一个基于计算机的软件开发与操作平台。27 Quartus开发系统的特点多平台系统。Quartus的设计输入、处理与校验功能一起提供了全集成化的可编程开发工具,可以加快动态调试,缩短开发周期。开放的界面。Quartus可与其他工业标准的设计输入、综合和校验工具链接,具有EDIF,VHDL和VerilogHDL等网表接口,便于与许多公司的EDA工具接口。模块组合式工具软件。Quartus具有一
25、个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验仿真和下载编程4个模块,程序设计人员可以按照设计的需要选择不同的工作模块。6与结构无关。Quartus系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件系列,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。硬件描述语言。Quartus软件支持各种HDL设计输入语言,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL等。28 Quartus的设计流程可编程逻辑器件的设计FPGA的设计
26、是指利用软件开发、编程工具对器件进行开发的过程。Quartus的设计流程,包括设计准备、设计输入、设计处理(项目编译)、仿真和定时分析、器件编程下载4个步骤,如图2-4所示。设计修改设计输入项目编译仿真和定时分析完成编程下载设计准备图2-4 Quartus设计流程73系统设计方案31数字温度表的工作原理本设计主要是利用温度传感器把温度信号转换成电信号5,然后经过模数转换器送入FPGA中进行处理,最后通过数码管显示出来。数字温度表的结构主要包括:FPGA控制核心、复位电路、AD590测温电路、ADC模数转换电路、4位温度数据显示电路以及外围电源等组成。32功能模块的设计通过深入研究了该数字温度表
27、所要实现的功能后,从而形成了整个系统设计的基本组成框图,如图3-1所示。FPGA温度显示电路AD590测温电路模数转换器ADC0804图3-1 系统组成框图通过对系统基本原理图的分析后,可以把系统分为测温模块、温度信号处理模块、模数转换模块、进制转换模块、动态扫描模块五个模块分别进行设计,从而实现此次设计的数字温度表的核心系统。以下将对各模块分别进行详细的阐述。321测温模块测温模块即数据采集模块6,本次设计主要应用美国模拟器件公司生产的AD590。AD590是电流型温度传感器,当作为电流输出元件时,等同于一个恒流源,温度每升高1K,电流就增加1A。设计测温模块时,由于输出电流比较小,且模数转
28、换器要求输入是电压信号,因此在AD590输出端串接一个10KW的恒值电阻,把电流信号转换成电压信号,那么,此电阻上流过的电压将和被测温度成正比,此时温度每变化1,电压变化10mV。如图3-2所示。8图3-2 温度采集电路我们知道AD590的温度感测能力是,温度每升高1K就增加1uA的电流量,而AD590输出电流是以绝对温度零度(-273)为基准的,即0时等于273uA,则该系统电流量流入10K后,将会产生273u×10K2.73V的电压。322温度信号处理模块 由AD590所采集到的信号并不能满足实际的需要,还要进行进一步的处理才能输入到ADC0804中进行模数转换,这里运用运算放大
29、器RC4558P进行放大。RC4558P是8脚双通道运算放大器7,内部包好两组形式完全形同的运算放大器,两组运算放大器相互独立,公用一组电源。每组运算放大器的表示如图3-3所示,包括5个引脚,其中“V+”、“V-”为正、负电源端,“Vo”为输出端。Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同;Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反。RC4558P的引脚排列图如图3-4所示。图3-3 运算放大器 图3-4 引脚排列图对AD590采集到的信号进行处理的电路连接如图3-5所示。9图3-5 AD590与ADC0804连接图323模数转换模块ADC
30、0804在该设计中起到数据的模数转换以及数据锁存的作用。ADC0804与FPGA的模块电路如图3-6所示。10图3-6 ADC0804与FPGA的连接模块图ADC0804是属于逐次逼近式的模数转换器。根据图3-6 ADC0804与FPGA的连接和图3-7 ADC0804的控制信号时序图的信号流向可知,只有CS,WR,RD控制着ADC0804动作的信号。当INTR由高电平(1)转为低电平(0)后,ADC0804这次的模数转换完成,DB0-DB7就是转换后的数字资料。ADC0804的控制信号时序如图3-7所示。图3-7 ADC0804的控制信号时序图如果将图3-7的动作分为S0,S1,S2,S3四
31、个步骤区间的话,那么每个步骤区间的动作方式分析如下:S0:CS=0,WR=0,RD=1(由FPGA发出信号要求ADC0804开始进行数据的模数转换);S1:CS=1,WR=1,RD=1(ADC0804开始转换动作,转换完毕后INTR由高电位转为低电位,转换时间>100S)。S2:CS=0,WR=1,RD=0(由FPGA发出信号以读取ADC0804的转换资料)。S3:CS=1,WR=1,RD=1(由FPGA读取DB0-DB7上的转换资料)。根据控制时序图利用有限状态机实现模数转换的控制。状态机分成4个状态:S0启动转换(CS=0,RD=0);S1等待转换结束,即等待INTR由低电平变为高电
32、平;S2 A/D转换结果输出;S3停止A/D。由于FPGA所能读取的是VHDL语言,所以应用VHDL语言描述有限状态机的设计,其进程如图3-8所示。COM组合进程以INTR和上升状态为敏感信号,当INTR由低电平转变为高电平时对现状态进行判断,通过改变CS和RD的状态完成对ADC0804的控制。REG时序进程以CLK为敏感信号,在CLK的上升沿将上升状态转换到下降状态。LATCH进程以LOCK为敏感信号,在LOCK的上升沿锁存ADC0804的输出值。11如图3-8 状态机进程图实验程序开始之前,A/D转换器处于重启状态即RST=1,以使A/D转换器处于初始状态,当RST=0时A/D转换器进入S
33、0状态。核心程序如下:StateChange:Block -Signal GeneratorBegin PROCESS(CP,RST) BEGIN IF RST='1'Then -Reset State nCS<='1' nWR<='1' nRD<='1' EC<='0' State<=S0;END IF;对S0,S1,S2,S3四个状态作具体的分析如下:S0:由FPGA发出信号通知模拟/数字的转换开始,处于写入模拟信号状态,并且由S0状态进入S1状态,核心程序如下:WHEN S0=&
34、gt; nCS<='0' nWR<='0' nRD<='1' EC<='0' State<=S1;12S1:ADC0804进行转换时INTR由高电位转至低电位,等待转换结束;当转换完成后,INTR将低电平变为高电平,并且由S1状态进入S2状态,核心程序为:when S1=> nCS<=1; nWR<=1; nRD<=1; EC<=0; if nIN=0then State<=S2; End if;S2:由FPGA发出信号读取ADC0804的转换数据结果输出,处于读取
35、数字信号状态,并且由S2状态进入S3状态,核心程序为:when S2=> nCS<=0; nWR<=1; nRD<=0; EC<=1; State<=S3;S3:由FPGA读取DB0-DB7上的数字信号,读取结束后停止A/D转换器,并且由S3状态返回S0状态,核心程序为:when S3=> nCS<=1; nWR<=1; nRD<=1; EC<=0; State<=S0; when others=> State<=S0;324进制转换模块通过模数转换模8块处理后被送入FPGA器件中的数据均为二进制的数字量, 如
36、果要想通过数码管显示所测温度的值,我们必须把二进制数字量转化为十进制的数字量。这样13才能通过动态扫描模块和数码显示模块,从而将所测温度的值在8位七段数码管上准确的显示出来。VHDL核心程序如下:Conversion:Block Signal V:Std_Logic_Vector(8 downto 0); -A/D Conversion Data Signal T:Std_Logic_Vector(7 downto 0); Begin V<=(D & '0') -"100010001" -(2) T<=V(7 downto 0); -(3
37、) Temp<=T; -(4) Value <= "000000000000" When T = 0 Else "000000000001" When T = 1 Else "000000000010" When T = 2 Else "000000000011" When T = 3 Else "000010011000" When T = 98 Else "000010011001" When T = 99 Else "000100000000&qu
38、ot; - 100End Block Conversion;其中,程序(2)将读取到的ADC0804的数字转换值乘以2的用意是将该位左移一位,然后减去273(100010001)2。由于所测温度范围0100,它们的十六进制是064H,只要较低的8位就可以表示了,而且通过减去273之后,最高位一定是0。所以,在程序(3)只取后面的8位。在程序(4)模块中利用的是查表的方法,把相减的结果,转换成对应的12位BCD码,供以后的7段显示器扫描电路使用。325动态扫描模块动态扫描9就是利用人眼视觉暂留的现象,只要扫描信号频率大于或者等于24 Hz时,人眼就不会感觉到显示器的闪烁。该设计系统24Hz的扫描
39、脉冲由相应的外围电路提供。在本设计中采用八进制计数器提供同步脉冲,因为动态扫描电路设计的位选信号必须要与显示的数据在时序上一一对应,这就要求电路中必须提供同步脉冲信号。显示电路的作用是完成BCD码到7段显示器段码的译码,然后传送到显示器。在此要求3个显示器轮流点亮,由于要求扫描显示的速度必须与数据选择器同步,所以需要一个计数器提供二者的扫描信号。应用VHDL语言设计的显示电路如图3-9所示,主要包括数据选择器、BCD译码电路、可逆计数器、扫描译码4个部分。14图3-9 显示电路的结构数据选择器和扫描译码电路的核心VHDL程序如下:Free_Counter:Block Signal Q :STD
40、_LOGIC_VECTOR(15 DOWNTO 0);BeginPROCESS(CP)Begin IF CP'Event AND CP='1'then Q<=Q+1; END IF; END PROCESS;ST<=Q(15 DOWNTO 14); SELOUT<="010"WHEN ST=0 ELSE "001"WHEN ST=1 ELSE "000"WHEN ST=2 ELSE "111"SEL<="110"WHEN ST=0 ELSE &qu
41、ot;101"WHEN ST=1 ELSE "011"WHEN ST=2 ELSE "111"END Block Free_Counter;SELECT_BCD:BlockBEGIN NUM<= VALUE(3 DOWNTO 0)WHEN ST=0 ELSE VALUE(7 DOWNTO 4)WHEN ST=1 ELSE15 VALUE(11 DOWNTO 8);End Block SELECT_BCD;在上述程序中, ST是可逆计数器的计数值(范围02);VALUE是数据缓存器(包含3组BCD码)。两部分电路的驱动基于同一个计数值,工作
42、时是完全同步的。33系统综合将以上各模块加以综合,可以得出该数字温度表整体,清晰的设计思路如下:AD590传感器在加5V电压时产生电流,此电流通过10K电阻接地,在其电阻两端产生一个电压,经过放大器4558放大后,模拟信号送入ADC0804中进行A/D转换,由CPLD控制信号控制ADC0804转换后将数字信号输入FPGA芯片中,经过S0(启动转换CS=0,RD=0,WR0);S1(等待转换结束,即等待INTR由低电平变为高电平);S2 (A/D转换结果输出);S3(停止A/D)四个状态后,FPGA运算读取的二进制数值计算出十进制数值,控制系统编码ST分段显示出所测量的数字温度值,从而读取测量温
43、度值。该数字温度测量系统的整体电路原理图如图3-10所示。图3-10 数字温度测量系统原理图164系统的仿真分析及器件下载1041系统的仿真分析该数字温度测量系统采用的编译软件为:ALTERA公司的Quartus。将上述五个设计模块的程序综合成的总程序经过Quartus软件编译以后,得到的总模块图如图4-1所示。图4-1 系统总程序模块图系统的程序编译好后,通过Quartus软件的波形编辑器(aveform Editor)进行波形仿真,通过仿真可以检验设计的逻辑关系是否准确,而且能够更清楚的看到结果,在这里先将数字温控系统的显示译码电路省略,直接仿真A/D转换器输出的结果,连接编译完成后,进行
44、波形仿真,波形图如图4-2所示。17图4-2 A/D转换器的控制状态波形图由图4-2可以看出,当CP处于第二个上升沿时,由S0状态进入S1状态;当CP处于第三个上升沿时,由S1状态进入S2状态;当CP处于第四个上升沿时,由S2状态进入S3状态;当CP处于第五个上升沿时,由S3状态返回S0状态,符合系统设计要求。将数字温控系统的显示译码部分去掉,直接显示FPGA输出的结果,连接编译完成后,进行波形仿真,波形图如图4-3所示。图4-3 FPGA的二进制输出仿真图图4-3中Din的二进制值即为A/D转换器数字信号的输出量,将此值带入公式中取低八位数据可得:T(10100100)×2(100
45、010001)(00110111),换算成十进制数据为55;Value即为十进制查表后所赋予的值,(000001010101)在七段显示器上显示的值为18055,即温度为55;可以看到计算后结果一致,且与设计理念相符,至此波形仿真成功。42系统的器件下载系统所使用的芯片为Altera公司的FLEX10K系列11的EPF10K10LC84-4。运用Quartus软件的管脚(底层)编辑窗口(Floorplan Editor)进行管脚的分配,管脚分配分为手动和自动分配,为了便于配置,现采用手动分配引脚,作用是将已设计好逻辑电路的输入输出节点赋予实际芯片的引脚。通过鼠标的拖拉,方便的定义管脚的功能。分
46、配完成后,进行FPGA下载,将实验箱与电脑主机相连,下载。按照手动分配的引脚进行连接,将输入连接到按键开关上,连接完毕,进行系统运行。此时,七位数码管上会有相应的输出值显示。通过给其不同的高低电平改变数据的不同位数,最终得到的结果与波形仿真的结果相同,完成实验题目。195. 结论本设计采用FPGA器件做主控芯片,利用AD590温度传感器采集温度信号,经信号处理和模数转换,送入FPGA器件中进行数据处理,最后通过LED显示温度的数值,以达到温度测量的目的。该数字温度表克服了传统的基于单片机的数字温度表的诸多缺点,其具有结构简单、抗干扰能力强、可靠性高、速度快、功耗小、外围电路少、反应时间短等优点
47、。而且FPGA器件采用VHDL语言编程,大部分的电路设计工作都可以在计算机上完成,这样大大缩短了仪表的开发时间,提高了工作效率,因而被广泛应用于人们日常生活和工、农业生产中的各种温度的测量。经过本课题的设计与学习,不仅让我了解到数字温度表的设计,而且对我的自学能力也有很大的帮助,使我从课本上学到的知识掌握得更加牢固,拓宽了我的知识面,这些对我今后的工作或学习来说是一个非常宝贵的经验。设计的过程中由于经验不足,能力有限,该设计还存在很多缺点和不足,比如数码管显示位数少,导致精度下降;软件功能相对简单等等。系统功能不是很完善,不足之处敬请老师指正。20心得与体会经过一周的忙碌,课程设计已经结束。在
48、整个课题的进行过程中,我得到了同学和老师耐心的指导和帮助,从设计的选题,课题的研究,查阅资料,翻译外文文献,设计电路的确定和修改,后期详细设计,到画制电路等整个过程中都给予了我悉心的指导。这次课程设计让我认识到了知识和实践的重要性,更让我巩固了很多知识。只有牢固掌握了所学的知识,才能有清晰的思路,知道每一步该怎样走。才能顺利的解决每一个问题。都是重新在书本上看他的原理和结构,感觉有点麻烦,但毕竟我完成了。知识才是王道,以这次课程设计为例,拿到题目的时候,大致看一下要求,根据平时所学的知识,脑海中就立刻会想到应该用到的元器件,然后再去查这些元器件的资料,很快地初步方案以及大概的电路原理图就出来了
49、。我坚信如果做的多了,我们一定可以做到拿到要求后就能很快的想到要用的元件,然后易如反掌的完成,但这样快的速度是要以我们对知识的熟练掌握为前提的。所以,这次课程设计在让我认识了知识的重要性之外,更让我明白了自己理论知识和实践知识的欠缺,让我更加坚定了以后努力学习知识的决心。感谢学校和老师给我这样的机会,如果能多一些这样的机会,我想我会一次比一次更严格要求自己,努力让自己成为合格的工程技术人员,为国家的电子事业贡献自己微薄的力量。21参考文献1 何希才.传感器及其应用电路.北京:电子工业出版社,2001.3,45 1342 李宗伯、王蓉晖、(美)James R.Armstrong,F.Gail F
50、ray.VHDL设计表示和综合. 北京:机械工业出版社, 2002,77 1663 J.Bhasker.Verilog HDL 硬件描述语言. 北京: 机械工业出版社, 2000,54 1424 求是科技.CPLD/FPGA应用开发技术与工程实践. 北京: 人民邮电出版社,2005,88 1235 侯伯亨.数字系统设计基础. 西安:西安电子科技大学出版社,2000, 95 1286 胡汉辉.传感器技术与运用. 北京:科学出版社, 2009, 85 1247 余孟尝.数字电子技术基础. 北京:高等教育出版社, 1985.5, 18 1128 杨晖.大规模可编程逻辑器件与数字系统设计. 北京:北京
51、航空航天大学出版社,1998,122 1469 朱明程、孙普译、Skahill K.可编程控制系统的VHDL设计技术. 南京:东南大学出版社,1998, 86 11710 侯伯亨、顾新.硬件描述语言与数字逻辑电路设计. 西安:西安电子科技大学出 版社,1999, 34 15511 卢毅、赖杰.VHDL与数字电路设计. 北京:科学出版社,2002,386 39912 Cooper G R、M cGillem C D. Modern Communications and Sp read Spectrum. N ew Yo rk: M cGraw- Hill Book Co, 1986, 56 11322附 录现附本课题的全部源程序如下:-*LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -*ENTITY Ch9_3_1 is PORT( Din :IN STD_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《水環境調查方法》课件
- 2020年安徽省中考英语试卷及答案解析
- 小学一年级20以内加减法试题口算速算练习题
- 《护士礼仪行为规范》课件
- 《物业服务内涵》课件
- 银铜合金焊接知识点
- 地产建筑行业技术工作总结
- 会计行业会计人员培训总结
- 精神科护士的综合总结
- 零售业务员工作总结
- 新教材牛津译林版高中英语必修第二册全册各单元重点语法精讲
- 两课 说课 单相桥式整流电路分析(获奖)
- 中国移动《下一代全光骨干传送网白皮书》
- 消费者行为学智慧树知到期末考试答案章节答案2024年浙江大学
- 拟攻读博士学位研究计划
- 九年级英语校本作业(合订)
- 九江市第一中学2024年高考数学一模试卷含解析
- 2022年版初中物理课程标准解读-课件
- HSE岗位操作规程
- 汽车坡道玻璃雨棚施工方案
- 中国乙酸钠行业市场发展分析及发展前景预测研究报告(2024-2030)
评论
0/150
提交评论