毕业设计(论文)-数字温度表设计与仿真数字温度表设计与仿真.doc_第1页
毕业设计(论文)-数字温度表设计与仿真数字温度表设计与仿真.doc_第2页
毕业设计(论文)-数字温度表设计与仿真数字温度表设计与仿真.doc_第3页
毕业设计(论文)-数字温度表设计与仿真数字温度表设计与仿真.doc_第4页
毕业设计(论文)-数字温度表设计与仿真数字温度表设计与仿真.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

目 录 摘要.I ABSTRACT.II 第 1 章 绪论.1 1.1 课题的研究意义和 EDA 技术1 1.2 数字温度表的现状及发展趋势2 1.3 国内外仪器仪表行业的发展现状及前景4 1.4 本文的主要工作5 第 2 章 总体方案设计.6 2.1 方案原理的构思及比较6 2.2 A/D 转换器的合理选用.6 2.2.1 A/D 转换器的主要技术指标6 2.2.2 A/D 转换器的选用原则7 2.2.3 A/D 转换器的选择8 2.2.4 ADC0804 转换原理9 2.3 A/D 温度传感器的合理选用.11 2.3.1 传感器选用原则.11 2.3.2 温度传感器的选择.13 2.4 LED 的动态扫描显示13 2.5 数字温度表测量原理14 2.6 系统的硬件结构14 第 3 章 FPGA 功能模块.16 3.1 FPGA 简介 .16 3.2 FPGA 结构与原理 .16 3.3 利用硬件描述语言 VHDL 设计数字系统 .17 3.4 系统中的 FPGA 器件设计19 第 4 章 系统仿真.22 4.1 各模块的仿真.22 4.2 顶层总电路图和总仿真波形.24 结束语.26 参考文献.27 致谢.28 附录.29 数字温度表设计与仿真 数字温度表设计与仿真数字温度表设计与仿真 摘要:本文主要研究利用 FPGA 器件和 Quartus工具软件设计数字温度表的问题,本 文介绍了一种基于 FPGA 的数字温度表的设计,给出了仪表的硬件结构,详细介绍了 用 VHDL 语言设计 FPGA 器件电路的方法。本课题在 Quartus开发环境下,采用 VHDL 语言设计并实现了数字温度表。设计采用 VHDL 的结构描述风格,依据功能将 系统分为三个模块,控制模块、数据处理模块和扫描显示模块,通过波形仿真、下载 芯片的测试,完成了温度表的功能。由 AD590 与 FPGA 组成的测温系统的硬件电路和 软件设计及提高测量精度的方法,通过对实际温度的测量,本设计具有结构简单、外围 电路少、抗干扰能力强、功耗小、可靠性高、速度快、反应时间短等优点。 关键字关键字:VHDL;FPGA; Quartus;数字温度表 数字温度表设计与仿真 Design and Emulation of the Digital Thermometer ABSTRACT:This article main research the question using the FPGA components and the software tool Quartus.design digit thermometers, this article introduced one kind design of digital thermometers based on the FPGA, has given the hardware architecture of measuring appliances, introduced the method using the language VHDL design circuit of FPGA component in detail. Under the development environment of Quartus this topic used the VHDL language design, and has realized the digital thermometer. The design take the structure description style of VHDL, based on the function the system consists of three modules, the control module, the data processing module and the scanning display module, via the profile simulation, the downloading chips test, has completed thermometers function. The temperature measurement systems hardware circuit which consist of AD590 and FPGA and the method that enhancement measuring accuracy, through the testing of the practical temperature, found this design has the merits simple structure, few outside-circuit, strong ability anti interrupter ,small power loss, high reliability, high speed, short time of reaction and so on. Keywords: VHDL; FPGA; Quartus; Digital thermometer 数字温度表设计与仿真 第 1 章 绪论 1.1 课题的研究意义和 EDA 技术 对传统电子系统设计方法与现代电子系统设计方法进行了比较,引出了基于 EDA 技术的现场可编程门阵列(FPGA)电路,提出现场可编程门阵列(FPGA)是近年来迅速发 展的大规模可编程专用集成电路(ASIC),在数字系统设计和控制电路中越来越受到重视。 集成电路技术和计算机技术的蓬勃发展,让电子产品设计有了更好的应用市场,实现方 法也有了更多的选择。传统电子产品设计方案是一种基于电路板的设计方法,该方法需 要选用大量的固定功能器件,然后通过这些器件的配合设计从而模拟电子产品的功能, 其工作集中在器件的选用及电路板的设计上。 随着计算机性价比的提高及可编程逻辑器件的出现,对传统的数字电子系统设计方 法进行了解放性的革命,现代电子系统设计方法是设计师自己设计芯片来实现电子系统 的功能,将传统的固件选用及电路板设计工作放在芯片设计中进行。从 20 世纪 90 年代 初开始,电子产品设计系统日趋数字化、复杂化和大规模集成化,各种电子系统的设计 软件应运而生。 20 世纪后半期,随着集成电路和计算机技术的发展,数字系统也得到了飞速发展,其 实现方法经历了由分立元件、SSI、MSI 到 LSI、VLSI 以及 UVLSI 的过程. 同时为了 提高系统的可靠性与通用性,微处理器和专用集成电路(ASIC)逐渐取代了通用集成硬件 LSI 电路,而在这两者之间,ASIC 以其体积小、重量轻、功耗低、速度快、成本低、保 密性好而脱颖而出。总的来说,ASIC 的制作可粗略地分为掩膜式方法和现场可编程方法 两大类。目前,业界大量可编程器件(PLD) ,尤其是现场可编程逻辑器件(CPLD/FPGA)被 大量地应用在 ASIC 的制作中。在可编程集成电器开发过程中,电子设计自动化(EDA) 技术应运而生。EDA 技术的出现,不仅为电子系统设计带来了一场革命性的变化,从某 种角度说,也成为其发展的必然。 EDA 是以计算机为平台,融合了应用电子技术、 计算机技术、智能化技术最新成果而研制的电子 CAD 通用软件包,主要辅助进行三方 面的工作: IC 设计、电子线路设计以及 PCB 设计。EDA 系统枢架结构 EDA 系统框 架结构(FRAMEWORK)是一套配置和使用 EDA 软件包的规范。目前主要的 EDA 系 统都建立了框架结构,如 CADENCE 公司的 Design Framework,Mentor 公司的 Falcon Framework,而且这些框架结构都遵守国际 CFI 组织制定的统一技术标准。框架结构能 将来自不同 EDA 厂商的工具软件进行优化组合,集成在一个易于管理的统一的环境之 下,而且还支持任务之间、设计师之间以及整个产品开发过程中的信息传输与共享, 数字温度表设计与仿真 是并行工程和自顶向下设计施的实现基础。 EDA 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照 “自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用 一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行 为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高 层次的电子设计方法。 VHDL 是一种全方位的硬件描述语言,包括系统行为级。寄存器传输级和逻辑门 级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此 VHDL 几 乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由底向上的电路设计过程都可 以用 VHDL 来完成。VHDL 还具有以下优点:(1)VHDL 的宽范围描述能力使它成 为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花 较少的精力于物理实现。 (2)VHDL 可以用简洁明确的代码描述来进行复杂控制逻辑 艄设计,灵活且方便,而且也便于设计结果的交流、保存和重用。 (3)VHDL 的设计 不依赖于特定的器件,方便了工艺的转换。 (4)VHDL 是一个标准语言,为众多的 EDA 厂商支持,因此移植性好。 1.2 数字温度表的现状及发展趋势 传统的温度计分别有煤油温度计、酒精温度计、水银温度计、气体温度计、电阻 温度计、温差电偶温度计、辐射温度计和光测温度计等。这些温度计具有测量精度低, 读数不方便等缺点。与传统的温度测量技术相比,现代温度计将温度的模拟量数字化, 一切向着数字化控制,智能化控制方向发展。数字温度计与传统的温度计相比,具有 读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较 准确的场所,或科研实验室使用。 温度表是常用的热工仪表,常用于工业现场作为过程的温度测量。在工业生产过 程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化情况。随着 工业现代化的发展,对温度测量仪表的要求越来越高,而数字温度表具有结构简单, 抗干扰能力强,功耗小,可靠性高,速度快等特点,更加适合于工业过程中以及科学 试验中对温度进行在线测量的要求。 近年来,数字温度表广泛应用在各个领域,它与模拟式温度表相比较,归纳起来 有如下特点:(1)准确度高, (2)测量范围宽、灵敏度高, (3)测量速度快, (4)使 用方便、操作简单, (5)抗干扰能力强, (6)自动化程度高, (7)读数清晰、直观方 便。 数字温度表设计与仿真 数字温度表的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的 仪表。数字化是当前计量仪器仪表发展的主要方向之一。而高准确度数字温度表的出 现,又使温度表进入了精密标准测量领域。与此相适应,测量的可靠性、准确性显得 越来越重要。 由于许多质量高、价格低,使用简单的传感器和数字化测量仪表一起使用,以及 微型计算机、微处理器和各种大规模集成电路的迅速普及,使今天的数字测量仪表远 优于传统的测量仪表。数字化测量是一种发展十分迅速的综合性应用技术,已成为自 动化和测量系统化的基础和核心组成部分。利用数字化测量仪表的计量技术、测量系 统,不但能可靠地获得大量准确的信息,而且能极其迅速地对信号进行有效的处理, 还可以实现自动化测量功能。因此作为自动化、智能化测量系统的基础和核心的数字 化仪器仪表,在我国现代化建设中将发挥越来越重要的作用。 从 20 世纪 90 年代初开始,电子产品设计系统日趋数字化、复杂化和大规模集成化,各 种电子系统的设计软件应运而生。在这些专业化软件中,EDA 具有一定的代表性,EDA 技术是一种基于芯片的现代电子系统设计方法。它的优势主要集中在能用 HDL 语言进 行输入、进行 PLD(可编程器件)的设计与仿真等系统设计自动化上;20 世纪 90 年末, 可编程器件又出现了模拟可编程器件,由于受技术、可操作性及性价比的影响,今后 EDA 技术会向模拟可编程器件的设计与仿真方向发展,并占据市场的一定份额。现场 可编程门阵列 FPGA 是含有大规模数字电路的通用性器件。这些数字电路之间的互联 网络是由用户使用更高级的软件来定义的。FPGA 可以进行无限次的重复编程,从一个 电路到另一个电路的变化是通过简单的卸载互联文件来实现的,极大地推动了复杂数字 电路的设计,缩短了故障检查时间。 传统的数字逻辑设计使用 TTL 电平和小规模的数字集成电路来完成逻辑电路图。 使用这些标准的逻辑器件已经被证实是最便宜的手段,但是要求做一些布线和复杂的电 路集成板(焊接调试)等工作,如果出现错误,改动起来特别麻烦。因此,采用传统电子设 计方案人员的很大一部分工作主要集中在设备器件之间物理连接、调试以及故障解决 方面。正是因为 FPGA 的 EDA 技术使用了更高级的计算机语言,电路的生成基本上是 由计算机来完成,将使用户能较快地完成更复杂的数字电路设计,由于没有器件之间的 物理连接,因此调试及故障排除更迅速、有效。可编程特点有助复杂电路设计。FPGA 能进行无限次的重复编程。因此能够在相同的器件上进行修改和卸载已经完成好的设 计。在一个 FPGA 芯片上的基本部件数量增加了很多,这使得在 FPGA 上实现非常复杂 的电子电路设计变成比较现实。由于采用 FPGA 的 EDA 技术所产生的性价比更高一些,从 而使得最近有多家公司开始采用这项技术,并且这种增长趋势仍旧在继续。 数字温度表设计与仿真 1.3 国内外仪器仪表行业的发展现状及前景 近年来,中国仪器仪表行业走势趋好,是得益于中国机械、轻纺、冶金、石化行 业等仪器仪表服务领域经营状况明显好转,同时国家政策导向和国民经济整体发展趋 势对仪器仪表行业产生有力的拉动。仪器仪表行业整体综合技术水平达到国际 20 世纪 80 年代中期水平。微电子技术和计算机技术在仪器仪表产品中普遍采用,约 15%的产 品实现了智能化,达到国际 90 年代水平;30%的产品实现了数字化,达到国际 20 世纪 80 年代末期水平。综合服务能力显著提高;可以承接 30 万60 万千瓦火电站、核电站、 30 万吨合成氨、120 吨转炉、日产 30 万立方米城市煤气站工程、成套大型炉窑等大型 工程成套控制项目。中高档科学测试仪器国内市场满足率为 30%,中低档科学仪器满 足率 65%;生产过程测量控制仪表及系统产品在大型工程项目中的品种满足率达 50%, 中小型工程达 70%。 国外仪器仪表发展的特点和发展总趋势:50 年代初期,仪器仪表取得了重大突破, 数字技术的出现使各种数字仪器得以问世,把模拟仪器的精度、分辨力与测量速度提 高了几个量级,为实现测试自动化打下了良好的基础。60 年代中期,测量技术又一次 取得了进展,计算机的引入,使仪器的功能发生了质的变化,从个别电量的测量转变 成测量整个系统的特征参数,从单纯的接收、显示转变为控制、分析、处理、计算与 显示输出,从用单个仪器进行测量转变成用测量系统进行测量。70 年代,计算机技术 在仪器仪表中的进一步渗透,使电子仪器在传统的时域与频域之外,又出现了数据域 (Datadomain)测试。80 年代,由于微处理器被用到仪器中,仪器前面板开始朝键盘 化方向发展,过去直观的用于调节时基或幅度的旋转度盘,选择电压电流等量程或功 能的滑动开关,通、断开关键已经消失。测量系统的主要模式,是采用机柜形式,全 部通过 IEEE-488 总线送到一个控制器上。测试时,可用丰富的 BASIC 语言程序来高 速测试。不同于传统独立仪器模式的个人仪器(Personalinstrument)已经得到了发展。 90 年代,仪器仪表与测量科学进一步取得重大的突破性进展。这个进展的主要标志是 仪器仪表智能化程度的提高。 工业自动化控制仪表主要包括变送器、调节器、调节阀等设备,控制仪表从基地 式调节器(变送、指示、调节一体化的仪表)开始,经历了气动、电动单元组合仪表 到计算机控制系统(DDC),直至今日的分散控制系统 DCS。DCS 已经走过了 20 多 年的里程,DCS 以其高度的可靠性、强大而易于扩充的功能、漂亮的图形界面、方便 的组态软件、丰富的控制算法、开放的联网能力等优点,得到迅速的发展,成为计算 机工业控制系统的主流。PLC 以其结构紧凑、功能简单、速度快、可靠性高、价格低 等优点,迅速获得广泛应用,已成为与 DCS 并驾齐驱的另一种主流工业控制系统。目 数字温度表设计与仿真 前以 PLC 为基础的 DCS 发展很快,PLC 与 DCS 相互渗透、相互融合、相互竞争,已 成为当前工业控制系统的发展趋势。 1.4 本文的主要工作 1.简要指出对数字温度表进行研究的重要性、发展前景,并提出课题的主要研究 内容。 2.学习和研究了数字温度表的设计方法,分析了其不足之处,针对以结构简单和 可靠性高为目标,对各种方案进行了比较,得出最佳的方案。 3.采用了应用硬件描述语言和自顶向下的数字系统设计方法,对传统的数字系统 设计方法和以使用硬件描述语言的数字系统设计方法以及自底向上和自顶向下的数字 系统设计方法进行了比较,指出采用硬件描述语言和自顶向下方法设计数字系统的优 势,并给出了利用 FPGA 器件进行数字系统设计的设计流程。 4.利用硬件描述语言采用自顶向下的数字系统设计方法,给出数字温度表的各模 块结构。作者将 FLEX10K 系列的结构、功能和特点进行了介绍,并利用 Altera 公司 的 FLEX10K 系列器件和 Quartus软件对设计进了综合和仿真。 5.对此次设计作了小结,并提出了进一步对设计进行改进的方法。随着大规模可 编程逻辑器件在数字硬件系统设计中的应用,用 VHDL 语言设计数字系统,逻辑综合 和仿真等 EDA 技术将成为对电子工程师的基本要求。 数字温度表设计与仿真 第 2 章 总体方案设计 2.1 方案原理的构思及比较 任何物质的温度变化都会引起它本身的物理特征与几何形状的改变。利用物质这 一特性,确定它与温度间的数量关系,就可以作为测温仪器的感应部分,制成各种各 样的温度表。 数字温度表要求能实时检测外界环境温度,本系统所设计的数字温度表要求测量 范围-20100,并且能实时连续显示温度值。 方案一:用温度传感器、放大器、3(1/2)位 A/D 转换器和显示器组成的数字温 度计,但是它要用到温度敏感的硅热敏晶体管,价格比较贵,所以舍弃。 方案二:用检测电路、AD 转换器、比较器和热电阻传感器组成简易温度控制器, 它采用 ADC0809、74LS248、74LS85 芯片,由于对 ADC0809 芯片和热电阻传感器熟 悉程度不够,所以放弃。 所以最后决定用以下方案:要设计一个数字显示温度表,首先要有信号采集电路, 在本设计中,我们采用的电流型温度传感器 AD590 来构架温度采集系统,采集到的温 度信号经过传感器的处理转换成电信号,在这里我们得到的仅仅是模拟信号,所以我 们要将信号转换为数字信号,我们考虑到用 8 位模数转换器 ADC0804 完成这个阶段, 最后我们用七段 LED 显示器来进行数字显示。 2.2 A/D 转换器的合理选用 模数转换器简称 AD 转换器或 ADC(Analog Digital Converter) ,它是一种将输 人模拟量转变为输出数字量的器件,是连接模拟和数字的桥梁。AD 转换器的种类很 多,但从原理上通常可分为以下 4 种:计数式 AD 转换器、双积分式 AD 转换器、 逐次逼近式 AD 转换器和并行 AD 转换器。 2.2.1 A/D 转换器的主要技术指标 A/D 转换器的主要技术指标有转换精度、转换速度等。选择 A/D 转换器时,除考 虑这两项技术指标外,还应注意满足其输入电压的范围、输出数字的编码、工作温度 范围和电压稳定度等方面的要求。 1分辨率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻 度与 2n 的比值。分辨率又称精度,通常以数字信号的位数来表示。 2转换速率(Conversion Rate)是指完成一次从模拟转换到数字的 AD 转换所需的 数字温度表设计与仿真 时间的倒数。积分型 AD 的转换时间是毫秒级属低速 AD,逐次比较型 AD 是微秒级属 中速 AD,全并行/串并行型 AD 可达到纳秒级。采样时间则是另外一个概念,是指两次转 换的间隔。为了保证转换的正确完成,采样速率(Sample Rate)必须小于或等于转换速率。 因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是 ksps 和 Msps,表示每秒采样千/百万次(kilo / Million Samples per Second) 。 3.转换误差 (1)量化误差(Quantizing Error) 由于 AD 的有限分辨率而引起的误差,即有限分 辨率 AD 的阶梯状转移特性曲线与无限分辨率 AD(理想 AD)的转移特性曲线(直线) 之间的最大偏差。通常是 1 个或半个最小数字量的模拟变化量,表示为 1LSB、1/2LSB。 (2)偏移误差(Offset Error) 输入信号为零时输出信号不为零的值,可外接电位器 调至最小。 (3)满刻度误差(Full Scale Error) 满度输出时对应的输入信号与理想输入信号值 之差。 (4)线性度(Linearity) 实际转换器的转移函数与理想直线的最大偏移,不包括以 上三种误差。 4.转换时间 转换时间是指 A/D 转换器从转换控制信号到来开始,到输出端得到稳定的数字信 号所经过的时间。A/D 转换器的转换时间与转换电路的类型有关。不同类型的转换器 转换速度相差甚远。其中并行比较 A/D 转换器的转换速度最高,8 位二进制输出的单 片集成 A/D 转换器转换时间可达到 50ns 以内,逐次比较型 A/D 转换器次之,它们多 数转换时间在 1050s 以内,间接 A/D 转换器的速度最慢,如双积分 A/D 转换器的转 换时间大都在几十毫秒至几百毫秒之间。在实际应用中,应从系统数据总的位数、精 度要求、输入模拟信号的范围以及输入信号极性等方面综合考虑 A/D 转换器的选用。 2.2.2 A/D 转换器的选用原则 A/D 转换器是将模拟量转换成数字量的芯片,选用 A/D 转换器应考虑以下几个问 题: 1.选择分辨率。低分辨率 38 位。中分辨率 912 位。A/D 还包括 BCD 三位半。 高分辨串 13 位以上,A/D 还包括 BCD 四位半。 2.确定精度。 3.对输入或输出特性和范围提出要求。 4.确定电源种类和功耗。 数字温度表设计与仿真 5.A/D 根据转换速度、精度、用途等选择转换方式:低速有双重积分方式等,常 用于仪器仪表。中速有逐次比较方式等,常用于一般自动控制。高速有并行方式、串 行方式等。 6.A/D 转换路数等。 2.2.3 A/D 转换器的选择 在本次设计中,经过综合考虑,选用 ADC0804 转换器,下面具体介绍 ADC0804 转换器。 ADC0804 是用 CMOS 集成工艺制成的逐次比较型摸数转换芯片。分辨率 8 位, 转换时间 100s,输入电压范围为 05V,增加某些外部电路后,输入模拟电压可为 5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接 在 CPU 数据总线上,无须附加逻辑接口电路。 1. 高阻抗状态输出 2. 分辨率:8 位(0255) 3. 存取时间:135 ms 4. 转换时间:100 ms 5. 总误差:-1+1LSB 6. 工作温度:ADC0804C 为 0 度70 度;ADC0804L 为-40 度85 度 7. 模拟输入电压范围:0V5V 8. 参考电压:2.5V 9. 工作电压:5V 10. 输出为三态结构 ADC0804 转换器的引脚图及其各个引脚功能如图 2.1 所示: 图 2.1 ADC0804 引脚图 AGND:模拟信号地。 ADC 0804 1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20 CS RD WR INTR CLK IN IN V ( ) IN V ( ) A GND REF V/2 D GND CC VREF CLKR DB0(LSB) DB1 DB2 DB3 DB4 DB5 DB6 DB7(MSB) 数字温度表设计与仿真 DGND:数字信号地。 CLKIN:外电路提供时钟脉冲输入端。 CLKR:内部时钟发生器外接电阻端,与 CLKIN 端配合可由芯片自身产生时钟脉 冲,其频率为 1/1.1RC。 CS:片选信号输入端,低电平有效,一旦 CS 有效,表明 A/D 转换器被选中,可 启动工作。 WR:写信号输入,接受微机系统或其它数字系统控制芯片的启动输入端,低电平 有效,当 CS、WR 同时为低电平时,启动转换。 RD:读信号输入,低电平有效,当 CS、RD 同时为低电平时,可读取转换输出数 据。 INTR:转换结束输出信号,低电平有效。输出低电平表示本次转换已完成。该信 号常作为向微机系统发出的中断请求信号。 VIN(+) VIN(-):差动模拟电压输入。输入单端正电压时, VIN(-)接地;而差动输入 时,直接加入 VIN(+) VIN(-)。 VREF:辅助参考电压。 DB0DB7:8 位的数字输出。 2.2.4 ADC0804 转换原理 1.以输出 8 位的 ADC0804 动作来说明“逐次逼近式 A/D 转换器”的转换原理, 动作步骤如下表示(原则上先从左侧最高位寻找起) 。 第一次寻找结果:10000000(若假设值输入值,则寻找位=假设位=1) 第二次寻找结果:11000000(若假设值输入值,则寻找位=假设位=1) 第三次寻找结果:11000000(若假设值输入值,则寻找位=该假设位=0) 第四次寻找结果:11010000(若假设值输入值,则寻找位=假设位=1) 第五次寻找结果:11010000(若假设值输入值,则寻找位=该假设位=0) 第六次寻找结果:11010100(若假设值输入值,则寻找位=假设位=1) 第七次寻找结果:11010110(若假设值输入值,则寻找位=假设位=1) 第八次寻找结果:11010110(若假设值输入值,则寻找位=假设位=0) 这就是采用二分法的寻找方式,其中的输入值代表图 2.1 的模拟输入电压 VIN。 对 8 位 ADC0804 而言,它的输出准位共有 28=256 种,即它的分辨率是 1/256,假 设输入信号 VIN 为 05V 电压范围,则它最小输出电压 5V/256=0.01953V,这代表 ADC0804 所能转换的最小电压值。 至于内部的转换频率 fCK,是由图 2.2 的 CLKR(19 脚) 、CLK(4 脚)所连接的 数字温度表设计与仿真 R、C 来决定的。 图 2.2 ADC0804 与 CPLDCS=0;RD=1;LOCK=0; NEXT_STATE WR=1;CS=1;RD=1;LOCK=0; IF (INTR=1) THEN NEXT_STATE = ST1; -测试 INTR 的下降沿 ELSE NEXT_STATE WR=1;CS=0;RD=0;LOCK=0; IF (INTR=0) THEN NEXT_STATE = ST2; -测试 INTR 的上升沿 ELSE NEXT_STATE WR=1;CS=1;RD=1;LOCK=1; NEXT_STATE WR=1;CS=1;RD=1;LOCK=0; NEXT_STATE = ST0; 2.FIF02 数据处理模块: 通过式将 A/D 传送过来的二进mVVVXXHT1073 . 2 02 . 0 2732 XXH 制数据转换成十进制温度值,并将转换的温度值再次转换成对应的 BCD 码,传送给 LED 动态扫描电路。 部分 VHDL 代码如下: Conversion:Block Signal V : STD_LOGIC_VECTOR(8 DOWNTO 0); Signal T : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN V = (D - A/D Date * 2 -273 T = V(7 DOWNTO 0); -只取低8位 Temp = T; Value = “000000000000” When T = 0 Else -查表把转换成 12 位 BCD 码 “000000000001” When T = 1 Else “000000000010” When T = 2 Else “000000000011” When T = 3 Else “000000000100” When T = 4 Else “000000000101” When T = 5 Else “000000000110” When T = 6 Else “000000000111” When T = 7 Else “000010011000” When T = 98 Else “000010011001” When T = 99 Else “000100000000”; 数字温度表设计与仿真 End Block Conversion; 3.ch4_3_1扫描显示模块:在数码管的片选信号下,将FIF02数据处理模块输出的 BCD码译成相应的7段数码管驱动值,然后送数码管显示出所测温度。其中,ST的范围 是0-2,是可逆计数器的计数值;Value包含3组BCD码,是数据缓存器。数据选择器和 扫描译码电路的驱动基于同一个计数值,是完全的同步工作。 部分VHDL代码如下: SEL = “110” WHEN ST = 1 ELSE “101” WHEN ST = 2 ELSE “111”; END BLOCK FREE_COUNTER; SELECT_BCD:BLOCK BEGIN NUM = VALUE(3 DOWNTO 0) WHEN ST = 0 ELSE VALUE(7 DOWNTO 4) WHEN ST = 1 ELSE VALUE(11 DOWNTO 8) ; END BLOCK SELECT_BCD; BCD译码电路的部分VHDL代码如下: SEVENT_SEGMENT:BLOCK BEGIN SEG = “0111111” WHEN NUM =0 ELSE “0000110” WHEN NUM =1 ELSE “1011011” WHEN NUM =2 ELSE “1001111” WHEN NUM =3 ELSE “1100110” WHEN NUM =4 ELSE “1101101” WHEN NUM =5 ELSE “1111101” WHEN NUM =6 ELSE “0000111” WHEN NUM =7 ELSE “1111111” WHEN NUM =8 ELSE “1101111” WHEN NUM =9 ELSE “0000000”; END BLOCK SEVENT_SEGMENT; END A; 数字温度表设计与仿真 第 4 章 系统仿真 4.1 各模块的仿真 1.控制模块 图 4.1 控制模块仿真波形 COM 组合进程以 INTR 和 Current_state 为敏感信号,当 INTR 由低变高或 Current_slate 变为 next_state 时对现状态进行判断,改变 CS 和 RD 的状态完成对 ADC0804 的控制。REG 时序进程以 CLK 为敏感信号,在 CLK 的上升沿将 Current state 转换到 next state. LATCH 进程以 lock 为敏感信号,在 lock 的上升沿锁存 ADC0804 的输出值。 图 4.2 控制模块顶层文件 “ADCINT”是控制 0804 的采样状态机。其各端口信号的功能如下: D70:在 0804 转换过程中呈高阻态,转换结束后,八位数据由此输入 FPGA。 CLK:时钟脉冲输入端口。 WR、CS、RD、ADDA:ADC0804 采样控制信号。 2.数据处理模块 数字温度表设计与仿真 图 4.3 数据处理模块仿真波形 图 4.4 数据处理模块顶层文件 数据处理模块分为两个状态: 1.WRREQ 为写入电平,当 WRREQ 为高电平时,在 CLOCK 的每一个上升沿, 都将 DATA 上的数据写入 FIF02 中; 2当写入电平 WRREQ 为低电平,并且读出请求 RDREQ 为高电平时,CLOCK 的每一个上升沿,按照先进先出的顺序将 FIF02 中存入的数据读出。 3.扫描显示模块 图 4.5 扫描显示模块仿真波形 数字温度表设计与仿真 图 4.6 扫面显示模块顶层文件 4.2 顶层总电路图和总仿真波形 图 4.7 顶层总电路图 数字温度表设计与仿真 图 4.8 总仿真波形 7 段显示器并没有小数点存在,是因为本系统的测量温度范围是-20100之间的 整数值温度。程序通过控制模块将读取到 ADC0804 的数字转换值乘 2(左移一位即可) ,然后再通过数据处理模块将得到的转换值减去 273(二进制数 100010001),最后利 用查表的方法,把计算结果转换成对应的 12 位 BCD 码送到 LED 显示模块显示读数。 数字温度表设计与仿真 结束语 数字温度表的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的 仪表。数字化是当前计量仪器仪表发展的主要方向之一。而高准确度数字温度表的出 现,又使温度表进入了精密标准测量领域。与此相适应,测量的可靠性、准确性显得 越来越重要。 在模拟实验中我们了解利用 ADC0804 和 AD590 的转换器和温度感测的对应关系, 也学习到温度数据变为可利用所需的时间变为转换速率,该速率由元件内部振温器和 A/D 解析度决定。一般低于 100HZ 或长于 10ms,转换速率越快,温度数据可检索的速 度就越快,同时温度感测器消耗的功率也越大。由于存在自加热效应,转换器速率通 常较低。学习到 ADC0804 对输入模拟量的要求一定需要信号是单极性,电压范围是 0 到 5V,如果信号太小,必须进行放大,输入的模拟量在转换过程中应该保持不变。如 果模拟量变化太快,则需要在输入前增加电压保持电路。温度计在制作流程上,虽说 不是非常的困难,也从中了解到放大器和 ADC0804 的配合问题点。 经过对设计方案的比较,本课题采用 FPGA 器件,硬件描述语言 VHDL 进行数字 温度表设计,虽然还有很多不足之处,但基本实现了所要求的各项指标。应用 FPGA 器件和 EDA 技术,克服了传统的基于单片机的数字温度表的诸多缺点,具有外围电路 简单、速度快、可靠性高等优点。系统中 FPGA 器件分为三大模块,每个模块均用 VHDL 语言编程实现,使大部分的电路设计工作在计算机上完成,大幅度地缩短了仪 表的开发时间,提高了工作效率。使用 Quartus软件进行仿真等工作,其软件功能全 面,使用方便,易懂好学,已成为最广为接受的 EDA 工具之一。 数字温度表设计与仿真 参考文献 1张迎新,雷道振等.非电量测量技术基础.北京航空航天大学出版社,2002,62-96 2宋万杰,罗丰等.CPLD 技术及其应用.西安电子科技大学出版社,1999,42-140 3王众生.智能检测与控制技术(第 1 版) .西安:西北工业大学出版社,2002,47-101 4林玉池.测量控制与仪器仪表前沿技术及发展趋势.天津:天津大学出版社,2005,21-85 5何希才.传感器及其应用(第 1 版) .北京:国防工业出版社,2001,55-70 6金发庆.传感器技术与应用.北京:机械工业出版社,2002,120-150 7吴金戎,沈庆阳.8051 单片机实践与应用.北京:清华大学出版社,2002,84-143 8刘常澍,赵雅兴.数字电路与 FPGA(第 1 版) .北京:人民邮电出版社,2004,41-68 9徐志军,徐光辉.CPLD/FPGA 的开发与应用.北京:清华大学出版,2002,20-56 10褚振勇,翁木云. FPGA 设计及应用.西安电子科技大学出版社,2002,38-156 11卢毅,赖杰.VHDL 与数字电路设计(第 1 版) .北京:科学出版社,2001,96-182 12宋春荣,刘芳芳,杨礼成等.通用集成电路速查手册.山东科学技术出版社,1995 13王福瑞.单片微机测控系统设计大全.北京:北京航空航天大学出版社,1998,23-47 14王大海.新型温湿度自动控制系统的设计与应用.电子工程师, 2002,1-34 15潘松,黄继业.EDA 技术实用教程.科学出版社.2002,50-150 16张志利,蔡伟.基于 AD590 的温度测控装置研究.自动化与仪器仪表,2002,5-35 17Stanley A. White, “Application of Distributed Arithmetic to Digital Signal Processing: A tutorial Review” , IEEE ASSP Magazine, July 1989 18Atmet Corporation,USA, Application,note, “FPGA-based FIR Filter Using Bit-Serial DigitalSignal Processing” , by Lee Ferguson, 1995 19 Atmet Corporation,USA, Application,note, “FPGA-based FIR Filter Using Bit-Serial DigitalSignal Processing” J, by Lee Ferguson,1995 20 FLEXIOK Embedd Programmable Logic Device FamilyD ataS heetA ltera.1998 21 MillerWarren.etal.NewFPGAarchitecturechallengesCPLDs.2000 数字温度表设计与仿真 致谢 在大四最后这几个月中,我们经过忙碌的学习和设计,这次毕业论文设计已经接 近尾声。作为一个本科生的毕业设计,我用了一差不多一个月的时间查找资料和设计 方案,但是由于经验的匮乏,难免有许多考虑不周全的地方,如果没有指导教师的督 促指导,想要完成这个设计是有很多困难的。在这里首先要感谢我的论文指导老师贺 老师。贺老师平日里工作繁多,但在我做毕业设计的每个阶段,从选题到查阅资料, 论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心 的指导。除了敬佩贺老师的专业水平外,他的治学严谨和科学研究的精神也是我永远 学习的榜样,并将积极影响我今后的学习和工作。 然后还要感谢大学四年来代课的其他老师,是在他们的教导下,我不仅掌握了坚 实的专业知识基础,还学会了很多其的东西;最后要感谢跟我一起做论文的同学,虽 然我们不是一个课题,但是在编程设计方面给了我很大的帮助,真的非常感谢他们。 电子信息 0601 班 杨洁婵 2010 年 6 月 数字温度表设计与仿真 附录 LIBRARY IEEE; USE IEEE.STD_Logic_1164.All; USE IEEE.STD_Logic_ARITH.All; USE IEEE.STD_Logic_UNSIGNED.All; entity ch4_3_1 is port( temp:out std_logic_vector(7 downto 0); din:in std_logic_vector(7 downto 0); -A/D 数据 dout:out std_logic_vector(7 downto 0); -BCD 输出 tout:out std_logic_vector(11 downto 0); selout:out std_logic_vector(2 downto 0); segout:out std_logic_vector(7 downto 0); -7 段显示 cp:in std_logic; rst:in std_logic; nCs,nWr,nRD:out std_logic; nINTR:in std_logic); end ch4_3_1; architecture a of ch4_3_1 is type state_type is (s0,s1,s2,s3); signal state:state_type; signal Ec,nIN:std_logic; signal D:std_logic_vector(7 downto 0); -读 A/D 数据 signal Value:std_logic_vector(11 downto 0); -A/D 转换 signal NUM:std_logic_vector(3 downto 0); -数字显示 signal SEG:std_logic_vector(6 downto 0); -7 段显示信号 signal SEL:std_logic_vector(2 downto 0); signal ST:std_logic_vector(1 downto 0); -扫描信号 begin 数字温度表设计与仿真 systemconnection:block -控制模块 begin nin=nINTR; segout(6 downto 0)=seg; segout(7)=0; dout=num; tout=value; end block systemconnection; statechange:block -状态转换模块 begin process(cp,rst) begin if rst=1 then ncs=1; nwr=1; nrd=1; ec=0; state -S0 状态 nwr=0; nrd=1; ec=0; state -S1 状态 nwr=1; nrd=1; 数字温度表设计与仿真 ec=0; if nin=0 then state -S2 状态 ncs=0; nwr=1; nrd=0; ec=1; state -S3 状态 ncs=1; nwr

温馨提示

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

最新文档

评论

0/150

提交评论