基于FPGA的多功能温度控制器设计

上传人:痛*** 文档编号:201502393 上传时间:2023-04-20 格式:DOC 页数:38 大小:670.50KB
收藏 版权申诉 举报 下载
基于FPGA的多功能温度控制器设计_第1页
第1页 / 共38页
基于FPGA的多功能温度控制器设计_第2页
第2页 / 共38页
基于FPGA的多功能温度控制器设计_第3页
第3页 / 共38页
资源描述:

《基于FPGA的多功能温度控制器设计》由会员分享,可在线阅读,更多相关《基于FPGA的多功能温度控制器设计(38页珍藏版)》请在装配图网上搜索。

1、北华航天工业学院毕业论文摘 要本论文所设计的是一个基于FPGA的多功能数字温度控制器。本设计克服了传统数字温度计精度低的缺点,并且除了传统温度计的测量温度功能外还具有一定的控制功能,能更好的对所测量的温度进行处理,控制模块的加入让其比传统温度计具有更强的实用性。本设计采用EDA技术自上而下的设计思路,对系统的结构划分为温度采集模块、温度显示模块、输入数据对比模块,输出控制模块。在Quartus II软件下应用VHDL语言进行电路设计并仿真,根据仿真的结果。该方案能够较好的实现测温功能并且能对温度进行有效的控制。关键字:温度控制;FPGA;VHDL;I北华航天工业学院毕业论文AbstractDe

2、signed by this paper is a multifunctional digital temperature controller based on FPGA. This design overcomes the drawback of traditional digital thermometer low accuracy, and in addition to the traditional thermometer temperature function also has the certain control function, can better handle and

3、 on the measured temperature control module to join its than traditional thermometer has stronger practicability. This design adopts the top-down design EDA technology, the structure of system is divided into temperature acquisition module, display module, the input data contrast module, output cont

4、rol module. Under the Quartus II software circuit design and simulation using VHDL language, according to the result of simulation. The scheme can achieve a better temperature measurement function and can carry on the effective control of temperature.Keyords: Temperature control FPGA VHDL IV目 录第1章 绪

5、论11.1 课题背景及国内外研究概况11.2 课题相关技术发展11.3 课题研究的必要性11.4 课题研究的主要内容21.5 课题所设计的温度控制器的优点2第2章 FPGA的简介32.1 FPGA的概述32.2 FPGA的基本结构32.3 FPGA系统设计流程52.4 FPGA开发编程原理6第3章 DS18B20温度传感器简介83.1 传统温度采集器件的简述83.2 DS18B20的引脚83.3 DS18B20内部结构83.4 DS18B20的时序103.5 DS18B20的工作原理113.6 DS18B20的性能特点123.7 DS18B20使用过程中的注意事项12第4章 QUARTERS

6、II软件简介134.1 Quartus II软件概况134.2 软件界面简介134.3 QuartusII的设计流程14第5章 温度控制器的设计总流程175.1 温度控制器系统结构图175.2 DS18B20温度采集模块的驱动设计175.3 FPGA温度显示模块的设计195.4 FPGA数据比较模块的设计195.5 FLEX 10K开发箱上的下载20第6章 结论22附 录23附录123基于FPGA的多功能温度控制器设计第1章 绪论1.1 课题背景及国内外研究概况温度控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,而在当今,我国农村锅炉取暖,农业大棚,养鸡场内等多数都没有实用的

7、温度控制系统,还有部分厂矿,企业还一直沿用简单的温度设备和纸质数据记录仪,无法实现温度数据的实时测量与控制。随着社会经济的高速发展,越来越多的生产部门和生产环节对温度控制精度的可靠性和稳定性等有了更高的要求,而且随着人们日常生活的不断提高,传统的温度控制器越来越不能满足人们生活中的需要并且传统温度控制器的精度也已经不能满足对温度要求较为苛刻的生产环节。1.2 课题相关技术发展当今电子产品正向功能多元化、体积最小化、功耗最低化的方向发展。现在的电子产品在设计上与传统的电子产品相比较,显著的区别在于其大量地使用了大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。同时广泛运用了现代计算机技

8、术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上或最新的QUARTUS II开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或

9、专用集成芯片的一门新技术。1.3 课题研究的必要性随着社会的不断发展,新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变着我们的生活,改变着我们的世界。近些年,随着科技的发展和社会的进步,人们对温度控制器的要求也越来越高,不管在哪里,人们都想知道此刻的温度和天气状况等一些信息,传统的温度控制器由于它的局限性以及不方便性,已不能满足人们的需求。温度控制器需要一次革命,不管是在性能还是在样式上都将发生质的变化,于是数字温度控制器的时代悄然来临了。1.4 课题研究的主要内容本设计主要研究的是基于FPGA的数字温度控制器,要求温度采集准

10、确精确,并且能够自行设定阈值温度。当温度超过阈值温度后,FPGA启动控制功能,根据实际需要驱动控制器件,实现对温度的调节。1.5 课题所设计的温度控制器的优点(1) 读数快且不用估读。数显温度计读数特别快, 因为只要将显示器上的数字读出即可, 不用估读, 节省时间。(2) 测量的精度高。因为能读出0.01 , 比用精度为1或0.1的温度计测量精度大大提高。(3) 测量时间短。数显温度计的热容量小,达到热平衡所需的时间短, 对待测物体的温度影响小。(4) 电路简单。本测温系统的电路很简单, 所用的原件少, 且造价很低。(5) 测温区域宽。比一般的温度计测量温度的区域宽。(6) 可进行远距离测量。

11、将本温度控制器的导线延长, 完全可进行远距离的测量。(7) 可进行自动控制。与计算机联网, 可进行自动测温、自动控温测量。(8) 应用广。该温度控制器可用于所有的测温场合,不受其他的条件限制。(9) 灵活性强。可根据实际的需要替换元件后便能控制不同的器件。第2章 FPGA的简介2.1 FPGA的概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑

12、器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言VHDL的进步。2.2 FPGA的基本结构FPGA具有掩膜可编

13、程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块、输入/输出模块(IOB-I/O Block)和互连资源。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。(1

14、) CLB是FPGA的主要组成部分。图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一

15、等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。(2) 输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、

16、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。图2-1 CLB基本结构当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输

17、出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。(3) 可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.3 FPGA系统设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已

18、被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2-2所示。图2-2 CPLD/FPGA系统设计流程FPGA工作流程说明如下:(1) 工程师按照“自顶向下”的设计方法进行系统划分。(2) 输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。(3) 将以上的设计输入编译成标准的VHDL文件。(4) 进行代码级的功能仿真,主要是检验系统功能设计的

19、正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。(5) 利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。(6) 利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。(7) 利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分

20、割、逻辑优化和布局布线。(8) 在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。2.4 FPGA开发编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出

21、系统框图,选择芯片,设计PCB并最终形成样机。CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGA Express、Modelsim、Synposys SVS等)。具体的设计输入方式有以下几种:(1) HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与设计人员的水平、经

22、验以及综合软件有很大的关系。(2) 图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。有的软件3种输入方法都支持。电路原理图方式描述比较直观和高效,对综合软件的要求不高。一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是当项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成VHDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到VHDL语言间有一种标准的对应描述

23、方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。这种输入方式最后所能达到的工作速度和芯片利用率也主要取决于综合软件。22第3章 DS18B20温度传感器简介3.1 传统温度采集器件的简述温度采集时可用的器件主要有模拟器件(热敏电阻,晶体三极管等)和数字温度传感器。传统方法多以热电阻和热电偶等为温度敏感元件,但都存在可靠性差,准确度和精度低的缺点。由这些温度传感器构成的温度测控系统大多存在两大缺点:其一,需要大量的连线才能把现场传感器的信号送到采集卡上,布线施工麻烦,成本也高;其二,线路上传送的

24、是模拟信号,易受干扰和损耗。3.2 DS18B20的引脚 图3-1 DS18B20外形及引脚排列 图3.2.1 DS18B20外形及引脚排列DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20引脚定义如下:(1)DQ为数字信号输入/输出端。(2)GND为电源地。(3)VDD为外接供电电源输入端。 3.3 DS18B20内部结构图3-2 DS18B20内部结构DS18B20内部结构主要由4部分组成:64位光刻ROM、温度传感器、非挥

25、发的温度报警触发器TH和TL、配置寄存器。(如图3-2) 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,这样就可以实现一根总线上挂接多个DS18B20的目的。 64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。DS18B20温度传感器的存储器。DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。高速暂存器字节地址暂存器内容0温度 LS

26、B1温度 MSB2TH 用户字节1*3TL 用户字节2*4配置寄存器*5保 留 位 (FFH)6保 留 位 (0CH)7保 留 位 (10H)8 CRC* EEPROMTH 用户字节1*TL 用户字节2*配置寄存器*图3-3 DS18B20的存储器DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。即所测温度值为T=T*0.0625。DS18B20温度值格式如表3-1所示。高五位都是符号位,在读取温度时只需MSB中的低四位和LSB的整个字节。如果需要作温度校验,就需要将整个暂存器的9个字节都

27、读完,并且当传感器存储的CRC值与总线控制器计算出的CRC不符时,自身没有停止序列传输的电路。这部分是需要设计者自行设计的。 表3-1 温度寄存器格式LSBBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0 MSBBit 15Bit 14Bit 13Bit 12Bit11Bit 10Bit 9Bit 8SSSSS 低5位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表所示(DS18B20出厂时被设置为12位)。3.4 DS18B20的时序与DS18

28、B20间的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。单总线由5K上拉电阻拉高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后发出一个由60-240us低电平信号构成的存在脉冲。总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对I/O线采样。如果线上是高电平,就写1。低电平就写0。图3-4 DS18B20初始化时序图写时序有写0和写1两种。总线控制器通过写1时序写逻辑1

29、到DS18B20,写时序写逻辑0到DS18B20。所有写时序必须最少持续60us,包括两个写周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,写时序开始。总线控制器要产生一个写时序,必须把数据线拉到低电平后释放,在写时序开始后的15us释放总线。当总线被释放的时候,5k的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持至少60us。所有的读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放。在总线控制器发出读时序后,DS18B20通过拉高或

30、拉低总线上来传输1或0、当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据等到时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。图 3-5 DS18B20读写时序图3.5 DS18B20的工作原理DS18B20测温原理如图3-6所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进

31、行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3-6中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图3-6 DS18B20温度测量原理图3.6 DS18B20的性能特点(1) 采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位);(2) 测温范围为-55+155,测量分辨率为0.06

32、25;(3) 内含64位经过激光修正的只读存储器ROM;(4) 适配各种系统;(5) 用户可分别设定各路温度的上、下限;(6) 内含寄生电源;(7) 零待机功耗 ;(8) 可通过数据线供电,电压范围为3.05.5;(9) 负电压特性,电源极性接反时,不会因发热而烧毁,但不能正常工作。3.7 DS18B20使用过程中的注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:(1) 小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此 ,在对DS18B20进行读写编程时,必须严格的保证读写时序

33、,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对 DS18B20操作部分最好采用汇编语言实现。(2) 在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个 DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时 要加以注意。(3) 连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的

34、双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考 虑总线分布电容和阻抗匹配问题。(4) 在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。第4章 Quarters II软件

35、简介4.1 Quartus II软件概况QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 QuartusII可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 QuartusII支持Altera的IP核,包含了LPM/MegaFuncti

36、on宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,QuartusII 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII 的更新支持,Qua

37、rtusII 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII 中包含了许多诸如SignalTapII、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII 友好的图形界面及简便的使用方法。4.2 软件界面简介启动Quartus 8.1,单击开始按扭,在程序菜单中选择Quartus8.1 ,可以启动Quartus8.1。其初始界面如图4-1所示。新建工程方法如图4-2。在图4-2中的第一个空白处需添入新建工程工作目录的路径,为便于管理,Quartus II软件要求每一个工程项目及其

38、相关文件都统一存储在单独的文件夹中。第二个空白处需添入新建的工程名称。第三个空白处需添入的是工程的顶层设计实体名称,要求顶层设计实体名称和新建的工程名称保持一致。图4-1 软件启动界面图4-2 新建工程界面4.3 QuartusII的设计流程QuartusII软件包括不同的设计输入方法(原理图、文本)、综合仿真工具、时限分析工具、功率评估工具、PLD布局布线工具和产品验证工具。QuartusII软件允许在设计流程的每个阶段使用QuartusII图形用户界面、EDA工具界面或命令行界面,用户可以根据设计的需要选择整个设计流程用一个界面完成还使用多个界面完成。QuartusII的设计流程如图4-3

39、所示。图4-3 Quartus II的设计流程1、将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输入。设计输入有如下三种方式:(1) 原理图输入方式适用于对系统及各部分电路很熟悉的场合。(2) 硬件描述语言输入方式硬件描述语言是用文本方式描述设计,硬件描述语言有ABEL、AHDL、VHDL、Verilog等,其中VHDL和Verilog已成为IEEE标准。(3) 波形输入方式2、Quartus编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目最终设计结果生成器件的下载文件。编译开始前,可以先对工程的参数进行设置。全编译的过程包括分析与综合(Analysis &

40、 Synthesis)、适配(Fitter)、编程(Assembler)、时序分析(Classical Timing Analysis) 。选择Quartus主窗口Process菜单下Start Compilation命令,或者在主窗口的工具栏上直接点击快捷按钮可以进行全编译。分步编译就是使用对应命令分步执行对应的编译环节,每完成一个编译环节,生成一个对应的编译报告。分步编译跟全编译一样分为四步:第一,分析与综合(Analysis & Synthesis) :设计文件进行分析和检查输入文件是否有错误,对应的菜单命令是Quartus主窗口Process菜单下StartStart Analysis

41、 & Synthesis,对应的快捷图标是在主窗口的工具栏上的;第二,适配(Fitter) :在适配过程中,完成设计逻辑器件中的布局布线、选择适当的内部互连路径、引脚分配、逻辑元件分配等,对应的菜单命令是Quartus主窗口Process菜单下StartStart Fitter ;(注:两种编译方式引脚分配有所区别 )。第三,编程(Assembler) :产生多种形式的器件编程映像文件 ,通过软件下载到目标器件当中去,对应的菜单命令是Quartus主窗口Process菜单下StartStart Assemble;最后,时序分析(Classical Timing Analyzer) :计算给定设

42、计与器件上的延时,完成设计分析的时序分析和所有逻辑的性能分析,菜单命令是Quartus主窗口Process菜单下StartStart Classical Timing Analyzer 。完成以后,编译报告窗口Compilation Report会报告工程文件编译的相关信息,如编译的顶层文件名、目标芯片的信号、引脚的数目等等。图4-4编译界面图4-5编译报告3、建立仿真波形文件:在主菜单中选择File/New选项,在弹出的New对话框中选择Vector Waveform File。在波形编辑方式下, 执行Edit菜单中的 Insert Node or Bus命令,或者在波形编辑器左边Name列

43、的空白处点击鼠标右键,弹出的Insert Nodeor Bus对话框。点击Insert Nodeor Bus对话框中的Node Finder按钮,弹出Node Finder窗口,在此窗口中添加信号节点,之后就可以进行仿真了。第5章 温度控制器的设计总流程5.1 温度控制器系统结构图 图5-1是本文所设计的温度控制器的系统结构图,首先温度信号经过DS18B20温度传感器被采集后输出数字信号,将输出的数字信号送入FPGA中对其进行处理(分为三个部分),通过译码将输入的二进制信号转换为10进制信号显示到数码管中并且将输入的二进制信号送入到比较器中与设定的阈值信号相比较,根据比较结果控制输出电平的高低

44、,达到控制外接元器件的作用。图5-1温度控制器系统结构图5.2 DS18B20温度采集模块的驱动设计如图5-2为FPGA控制DS18B20进行温度采集的系统流程图。FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果过程中,FPGA还要实现CRC校验码的计算,保证通信数据的可靠性。 以上操作反复进行,可以用状态机来实现。状态机的各种状态如下: RESET1:对DS18B20进行第一次复位,然后进入等待,等待800s后,进入下一状态。 CMD33:对DS18B20发出033命令,读取48位ID值

45、。 GET_ID:从DS18B20中读取48位ID值。 RESET2:对DS18B20进行第二次复位,然后进入DELAY状态等待800s后,进入CMDCC状态。 CMDCC:向DS18B20发出忽略ROM命令,为进入下一状态作准备。 CMD44:向DS18B20发出启动温度转换命令,然后进入等待, 900ms后进入下一状态。 RESET3:对DS18B20进行第三次复位。 CMDCC2:向DS18B20发出忽略ROM命令,为了进入下一状态作准备。 GET_TEMP:从DS18B20中读取温度测量数值。 DELAY:等待状态。 WRITE_BIT:向DS18B20中写入数据位状态。 READ_B

46、IT:从DS18B20中读取数据位状态。在该状态中每读取1位数据,同时完成该数据位的CRC校验计算。所有数据都读取后,还要读取8位CRC校验位。这8位校验位也经过CRC校验计算,如果通信没有错误,总的CRC校验结果应该是0。这时可将通信正确的数据保存到id和temp_data寄存器中。图5-2 温度采集流程图5.3 FPGA温度显示模块的设计LED有段码和位码之分,所谓段码就是让LED显示出“8.”的八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。位码也就是LED的显示使能端,对于共阳级的LED而言,高电平使能。要让8个LED同时工作,显示数据,就

47、是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。虽然8个LED是依次显示,但是受视觉暂留的影响,看到的现象是8个LED同时工作。多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。如图5-3采用LG3641BH LED数码管显示电路采用4位共阳LED数码管从FPGA的四个串口输出段码。用PNP三极管进行驱动,当相应的端口变成低电平时,驱动相应的三极管会导通,驱动三极管给数码管相应的位供电,这时只要FPGA芯片DT

48、0-7送出数字的显示代码,数码管就能正常显示数字。图 5-3 数码管显示电路5.4 FPGA数据比较模块的设计阈值的控制系统是本设计区别传统温度控制器的主要特点,本设计主要采用将DS18B20所采集的温度信号通过一个8位二进制数的比较器与所需要的阈值进行比较,输出一个高电平或低电平。FPGA 8位二进制比较器的程序设计主要在于比较过程的逻辑设计,比较器的比较原理是二进制数的高位逐步比较,首先比较最高位,如果最高位不想等,则直接输出高电平(低电平),如果最高位相等则比较次高位,逐位一步一步的比较下去。如图5-4是一个进行8位二进制数的数据比较器。图5-4 数据比较模块元器件5.5 FLEX 10

49、K开发箱上的下载本设计所使用的是FLEX 10K系列开发箱。FLEX10K是ALTERA公司研制的第一个嵌入式的PLD,它具有高密度、低成本、低功率等特点,是当今ALTERACPLD中应用前景最好的器件系列之一。它采用了重复可构造的CMOSSRAM工艺,并把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时可结合众多可编程器件来完成普通门阵列的宏功能。每一个FLEX10K器件均包括一个嵌入式阵列和一个逻辑阵列,因而设计人员可轻松地开发集存贮器、数字信号处理器及特殊逻辑等强大功能于一身的芯片。JTAG方式下载接口:下载电缆一端和计算机的打印机并口(LPT1)相连,另一端连接到实验板箱的双排10

50、孔排插座上。编程下载时,在EDA软件上选择ByteBlaster(MV)的硬件下载方式。数码管显示接口:8个8段数码管显示器(共阴极)。位选驱动输出接口4个:sel3-sel0,字型码驱动输出接口8个:a,b,c,d,f,g,h,dq。FLEX10K系列的FPGA:EPF10K10LC84-4的引脚如表5-1 表5-1 EPF10K10LC84-4的引脚Pin NamePinPin NamePinMSEL0(2)31I/O,CS(4)79MSEL1(2)32I/O,RDYnBSY(4)70nSTATUS(2)55I/O,CLKUSE(4)73nCONFIG(2)34I/O,DATA7(4)5D

51、CLK(2)13I/O,DATA6(4)6CONF_DONE(2)76I/O,DATA5(4)7nCE(2)14I/O,DATA4(4)8nCEO(2)75I/O,DATA3(4)9TDI(2)15I/O,DATA2(4)10TDO(2)74I/O,DATA1(4)11TCK(2)77I/O,DATA0(2)(5)12TMS(2)57Dedicated Inputs2,42,44,84TRST(2)56Dedicated Clock pins1,43I/O,INIT_DONE69I/O,DEV_CLRn(3)3I/O,nRS(4)81VCCINT4,20,33,40,45,63I/O,nCS(

52、4)78GNDINT26,41,46,68,82Total User I/O pin(6)59下载前需要对所设计的元器件进行引脚的锁定,其中须特别注意的是时钟信号必须锁定1号或43号引脚,锁定其他引脚都无法正确的输入时钟信号;动态显示数码管的位码引脚的锁定必须锁定I/O口,否则也不能正常驱动动态数码管显示。第6章 结论在此次的数字温度控制器的设计过程中,更进一步地熟悉有关数字电路的知识和具体应用。学会了利用QuarterII软件进行原理图的绘制,硬件描述语言VHDL的编写,程序的仿真等工作。并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的调试和完善。在设计电路中,往往是先仿真后连接实

53、物图,但是有时候仿真和电路连接并不是完全一致的,例如在对具体模块的仿真的过程中,往往没有考虑到整体设计的层面以及与上下模块接口的设计。再加上器件对信号的延时等问题,实际下载到实验箱上后会出现一系列的问题,因此软件仿真和在开发板上进行硬件下载还是有一定区别的。本设计是采用硬件描述语言和FPGA芯片相结合进行的数字控制器的研究,从中可以看出EDA技术的发展在一定程度上实现了硬件设计的软件化。设计的过程变的相对简单,容易修改等优点,相信随着电子技术的发展,数字控制器的功能会更加多样化,满足人们的各种需附 录附录1 开发板源程序时钟分频模块library IEEE;use IEEE.STD_LOGIC

54、_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity div is port( clk: in std_logic; -20MHz clk1m: out std_logic);end div; architecture Behavioral of div issignal clk_temp : std_logic;beginprocess (clk) variable cnt1: std_logic_vector(3 downto 0); beginif rising_edge(clk) then if cnt1=1001 then cnt1:=

55、0000; clk_temp=1; else cnt1:=cnt1+1; clk_temp=0; end if; end if;end Process; process(clk_temp) variable cnt2: std_logic; beginif rising_edge(clk_temp) then cnt2:=not cnt2; clk1m=cnt2; end if;end process;end Behavioral;DS18B20驱动模块library IEEE;use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL;

56、use IEEE.STD_LOGIC_UNSIGNED.ALL; entity state is port(clk1m : in std_logic; -原程序可能为20MHz dq : inout std_logic; en:in std_logic; rst: in std_logic; TMP : out std_logic_vector(11 downto 0); sdh : out std_logic_vector(7 downto 0); xdl : out std_logic_vector(7 downto 0); LED,LED2,LED3: out std_logic);en

57、d state; architecture Behavioral of state isTYPE STATE_TYPE is (RESET,CMD_CC,WRITE_BYTE,WRITE_LOW,WRITE_HIGH,READ_BIT, CMD_44,CMD_48,CMD_4E,CMD_BE, GET_TMP,WAIT4MS); signal STATE: STATE_TYPE:=RESET;signal write_temp : std_logic_vector(7 downto 0):=00000000; signal tmp_bit : std_logic;signal WRITE_BY

58、TE_CNT : integer range 0 to 8:=0; signal WRITE_LOW_CNT : integer range 0 to 2:=0;signal WRITE_HIGH_CNT : integer range 0 to 2:=0; signal READ_BIT_CNT : integer range 0 to 3:=0;signal GET_TMP_CNT : integer range 0 to 13:=0; signal cnt : integer range 0 to 100001:=0;signal temp : std_logic; signal WRI

59、TE_BYTE_FLAG : integer range 0 to 7:=0; begin sdh=10010110; xdl=00001000;STATE_TRANSITION:process(STATE,clk1m) begin if rising_edge(clk1m) then if (en=0) then -press en write the up and down limitationSTATE=CMD_4E; end if; if(rst=0) then STATE LED2=0; LED3=0 and cnt500) then dq=0; cnt=cnt+1; STATE=500 and cnt510) then dq=Z; cnt=cnt+1; STATE=510 and cnt750) then temp=dq; if(cnt=580) then temp=dq;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!