FPGA的多功能温控制器设计_第1页
FPGA的多功能温控制器设计_第2页
FPGA的多功能温控制器设计_第3页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

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

2、bstractDesig ned by this paper is a multif unctional digital temperature con troller based on FPGA.This desig n overcomes the drawback of traditi onal digital thermometer low accuracy, and in addition to the traditional thermometer temperature function also has the certain control function, can bett

3、er handle and on the measured temperature control module to join its than traditi onal thermometer has stro nger practicability. This desig n adopts the top-dow n desig n EDA tech no logy, the structure of system is divided into temperature acquisiti on module, display module, the in put data con tr

4、ast module, output con trol module. Un der the Quartus II software circuit design and simulation using VHDL Ianguage, according to the result of simulation. The scheme can achieve a better temperature measureme nt fun cti on and can carry on the effective con trol of temperature.KeyWords: Temperatur

5、e control FPGA VHDL目 录第1章绪论 11.1课题背景及国内外研究概况 11.2课题相关技术发展 11.3课题研究的必要性 11.4课题研究的主要内容 21.5课题所设计的温度控制器的优点 2第2章FPGA的简介 32.1 FPGA勺概述 32.2 FPGA勺基本结构 32.3 FPGA系统设计流程 42.4 FPG朋发编程原理 5第3章DS18B20温度传感器简介 73.1传统温度采集器件的简述 73.2 DS18B20勺引脚 73.3 DS18B20内部结构 73.4 DS18B20勺时序 83.5 DS18B20勺工作原理 93.6 DS18B20勺性能特点 93.7

6、DS18B2C使用过程中的注意事项 9第4章QUARTERS II软件简介 114.1 QjartuSI 软件概况 114.2软件界面简介 114.3 QjartuIS的设计流程 12第5章温度控制器的设计总流程 145.1温度控制器系统结构图 145.2 DS18B2C温度采集模块的驱动设计 145.3 FPGA温度显示模块的设计 155.4 FPGA据比较模块的设计 155.5 FLEX10K开发箱上的下载 15第6章结论 17附录 18附录1 18基于FPGA的多功能温度控制器设计第1章绪论1.1课题背景及国内外研究概况温度控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用

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

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

9、计电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的 一门新技术。1.3课题研究的必要性随着社会的不断发展,新产品、新技术层出不穷,电子技术的发展更是日新月异。可 以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变着我们的生活, 改 变着我们的世界。近些年,随着科技的发展和社会的进步,人们对温度控制器的要求也越 来越高,不管在哪里,人们都想知道此刻的温度和天气状况等一些信息, 传统的温度控制 器由于它的局限性以及不方便性,已不能满足人们的需求。温度控制器需要一次革命,不 管是在性能还是在样式上都将发生质的变化,于是数字温

10、度控制器的时代悄然来临了。1.4课题研究的主要内容本设计主要研究的是基于 FPGA的数字温度控制器,要求温度采集准确精确,并且 能够自行设定阈值温度。当温度超过阈值温度后,FPGA启动控制功能,根据实际需要驱动控制器件,实现对温度的调节。1.5课题所设计的温度控制器的优点(1) 读数快且不用估读。数显温度计读数特别快,因为只要将显示器上的数字读出 即可,不用估读,节省时间。(2)测量的精度高。因为能读出0.01 ,比用精度为1或0.1的温度计测量精度大大(3)测量时间短。数显温度计的热容量小,达到热平衡所需的时间短,对待测物体的 温度影响小。(4)电路简单。本测温系统的电路很简单,所用的原件少

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

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

13、时也 大大推动了 EDA软件和硬件描述语言VHDL的进步。2.2 FPGA 的基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA 一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块、输入/输出模块(IOB-I/O Block)和互连资源。 可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散 布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口, 它通常排列在芯片的四周;可编程互连资源包括各种长度的连接

14、线段和一些可编程连接开 关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电 路。(1) 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。这个函数发生器

15、能实现3输入变量的各种组合函数。这 3个函数发生器结合起来,可实现多达 9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据 选择器的编程,逻辑函数发生器 G、F和H的输出可以连接到CLB输出端X或丫,并用 来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选 择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G 的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数 输出。另一方面,逻辑函数发生器 F和G还可以作为器件

16、内高速 RAM或小的可读写存 储器使用,它由信号变换电路控制。(2)输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要 由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向 I/O功能。当IOB控制 的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。 缓冲器的输出分成两 路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路 D触发 器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。图2-1 CLB基本结构当I

17、OB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途 径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路 D触发器,再送至 输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使 MOS管导通或截止,分别 经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。(3)可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之 间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段 构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.3 FPGA系统设计流程一般说来,一个比较大的完整

18、的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOP DOWN (自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。 高层次设计只是定 义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合 优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。 CPLD/FPGA系统设计的工作流程如图2-2所示。图2-2 CPLD/FPGA系统设计流程FPGA工作流程说明如下:(1)工程师按照“自顶向下”的设计方法进行系统划分。(2)输入VHDL代码,这是设计中最为普遍的输入方式。此

19、外,还可以采用图形输 入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。(3)将以上的设计输入编译成标准的 VHDL文件。(4)进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于 大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的 次数和时间。一般情况下,这一仿真步骤可略去。(5)利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件, 这是将高层次描述转化为硬件电路的关键步骤。 综合优化是针对ASIC芯片供应商的某一 产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。(6)利用产生的网络表文件进行适配

20、前的时序仿真,仿真过程不涉及具体器件的硬 件特性,是较为粗略的。一般的设计,也可略去这一步骤。(7)利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作, 包括底层器件配置、逻辑分割、逻辑优化和布局布线。(8) 在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情 况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配 后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性 (如时延特 性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至

21、满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA 中。2.4 FPGA开发编程原理硬件设计需要根据各种性能指标、 成本、开发周期等因素,确定最佳的实现方案,画 出系统框图,选择芯片,设计 PCB并最终形成样机。CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家 Altera和Xilinx的集成综合EDA 软件(如 MAX+plusll、Quartusll、Foundation、ISE)以及第三方工具(如 FPGA Express Modelsim、Synpos

22、ys SVS等)。具体的设计输入方式有以下几种:(1)HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不 容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与设 计人员的水平、经验以及综合软件有很大的关系。(2) 图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。有的软件3种输入方法都支持。电路原理图方式描述比较直观和高效,对综合软件的要求不高。 一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程 逻辑器件的内部去,所以硬件工作速度和芯片利用率很高, 但是当项目很大的时候,该方 法就显得有些繁琐;状态机描述主

23、要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成 VHDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到VHDL语言间有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用 率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式, 直接描述输入 与输出的波形关系。这种输入方式最后所能达到的工作速度和芯片利用率也主要取决于综 合软件。第3章DS18B20温度传感器简介3.1传统温度采集器件的简述温度采集时可用的器件主要有模拟器件(热敏电阻,晶体三极管等)和数字温度传感器 T

24、L用户字节2*DS18B2C中的温度传感器可完成对温度的测量,以 12位转化为例:用16位符号扩展 的二进制补码读数形式提供,以 0.0625 C/LSB形式表达,其中S为符号位。即所测温度 值为 T=T*0.0625。DS18B2C温度值格式如表3-1所示。高五位都是符号位,在读取温度时只需 MS沖的 低四位和LSB的整个字节。如果需要作温度校验,就需要将整个暂存器的9个字节都读完, 并且当传感器存储的CRCfi与总线控制器计算出的CRC不符时,自身没有停止序列传输的 电路。这部分是需要设计者自行设计的。表3-1温度寄存器格式LSBBit 7Bit 6Bit 5Bit 4Bit 3Bit 2

25、Bit 1Bit 0MSBBit 15Bit 14Bit 13Bit 12Bit11Bit 10Bit 9Bit 8SSSSS低5位一直都是“ 1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试 模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率, 如表所示(DS18B2C出厂时被设置为12位)。3.4 DS18B20 的时序与DS18B20、可的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲 表明DS18B20已经准备好发送和接收数据。在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)个复位脉冲,然后释放总线,进

26、入接收状态(RX。单总线由5K上拉电阻拉高电平。当DS18B20探测到 I/O引脚上的上升沿后,等待15-60us,然后发出一个由60-240us低电平信号构成的存在 脉冲。总线控制器初始化写时序后,DS18B2C在一个15us到60us的窗口内对I/O线采样。 如果线上是高电平,就写1。低电平就写0。图3-4DS18B20初始化时序图写时序有写0和写1两种。总线控制器通过写1时序写逻辑1到DS18B20写时序写 逻辑0到DS18B20所有写时序必须最少持续60us,包括两个写周期间至少1us的恢复时 间。当总线控制器把数据线从高电平拉到低电平时,写时序开始。总线控制器要产生一个写时序,必须把

27、数据线拉到低电平后释放,在写时序开始后的 15us释放总线。当总线被释放的时候,5k的上拉电阻将拉高总线。总控制器要生成一个 写0时序,必须把数据线拉到低电平并持续保持至少60us。所有的读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制 器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放。在总线控制器发出读时序后,DS18B2C通过拉高或拉低总线上来传输1或0、当传 输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。 从DS18B20俞出的数据 等到时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把 I/

28、O 脚驱动为低电平15us,以读取I/O脚状态。图3-5 DS18B20读写时序图3.5 DS18B20的工作原理DS18B20测温原理如图3-6所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55C所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度

29、寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3-6中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图3-6 DS18B20温度测量原理图3.6 DS18B20的性能特点(1) 采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口, 无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位);(2) 测温范围为-55E +155C,测量分辨率为0.0625C;(3) 内含64位经过激光修正的只读存储器ROM ;(4) 适配各种系统;(5) 用户可分别设定各路温度的上、下限;(6) 内含寄生电源;(7) 零待机功耗;(8) 可通

30、过数据线供电,电压范围为 3.05.5V;(9) 负电压特性,电源极性接反时,不会因发热而烧毁,但不能正常工作。3.7 DS18B20使用过程中的注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在 实际应用中也应注意以下几方面的问题:(1) 小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否 则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时, 对DS18B20 操作部分最好采用汇编语言实现。(2)在DS18B20的有关资料中均未提及单总

31、线上所挂 DS18B20数量问题,容易使 人误认为可以挂任意多个 DS18B20,在实际应用中并非如此。当单总线上所挂 DS18B20 超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时 要 加以注意。(3)连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输 长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时, 正常通讯距离可达150 m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总

32、线分布电容和阻抗匹配问题。(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时, 将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另 一组接VCC和地线,屏蔽层在源端单点接地。第4章Quarters II软件简介4.1 Quartus II软件概况QuartusII是 Altera公司的综合性 PLD/FPGA 开发软件,支持原理图、 VHDL、 VerilogH

33、DL 以及 AHDL (Altera Hardware Description Languag 等多种设计输入形式, 内嵌的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用 TCL脚本完成设计流 程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易 学易用等特点。QuartusII支持Altera的IP核,包含了 LPM/MegaFunction宏功能模块库,使用户可 以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的

34、各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实 现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌 入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛 的应用。目前 Altera已经停止了对 Maxplusll的更新支持,QuartusII与之相比不仅仅是 支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTapII

35、、 Chip Editor和RTL Viewer的设计辅助工具,集成了 SOPC和HardCopy设计流程,并且 继承了 MaxplusIl友好的图形界面及简便的使用方法。4.2软件界面简介启动QuartusH 8.1,单击开始按扭,在程序菜单中选择QuartusH 8.1 ,可以启动QuartusH 8.1。其初始界面如图4-1所示。新建工程方法如图4-2。在图4-2中的第一个空白处需添入新建工程工作目录的路径,为便于管理,Quartus II软件要求每一个工程项目及其相关文件都统一存储在单独的文件夹中。第二个空白处需添入新建的工程名称。第三个空白处需添入的是工程的顶层设计实体名称,要求顶层

36、设计实 体名称和新建的工程名称保持一致。图4-1软件启动界面图4-2新建工程界面4.3 Quartusll的设计流程Quartusll软件包括不同的设计输入方法(原理图、文本)、综合仿真工具、时限分析 工具、功率评估工具、PLD布局布线工具和产品验证工具。Quartusll软件允许在设计流 程的每个阶段使用Quartusll图形用户界面、EDA工具界面或命令行界面,用户可以根据 设计的需要选择整个设计流程用一个界面完成还使用多个界面完成。Quartusll的设计流程如图4-3所示。图4-3 Quartus ll的设计流程1将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输

37、入。设计输入有如下三种方式:(1)原理图输入方式适用于对系统及各部分电路很熟悉的场合。(2)硬件描述语言输入方式硬件描述语言是用文本方式描述设计,硬件描述语言有ABEL、AHDL、VHDL、Verilog等,其中VHDL和Verilog已成为IEEE标准。(3)波形输入方式2、QuartusH编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目 最终设计结果生成器件的下载文件。编译开始前,可以先对工程的参数进行设置。全编译的过程包括分析与综合(Analysis & Synthesis) 适配(Fitter)、编程(Assembler) 时序 分析(Classical Timing A

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

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

40、s菜单下 StartStart Classical Timing Analyzer。完成以后,编译报告窗口Compilation Report会报告工程文件编译的相关信息,如编译的顶层文件名、目标芯片的 信号、引脚的数目等等。图4-4编译界面图4-5编译报告3、建立仿真波形文件:在主菜单中选择File/New选项,在弹出的New对话框中选择 Vector Waveform File。在波形编辑方式下, 执行Edit菜单中的Insert Node or Bus命令, 或者在波形编辑器左边 Name列的空白处点击鼠标右键,弹出的Insert Nodeor Bus对话框。 点击Insert Node

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

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

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

44、数据,同时完 成该数据位的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同 时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每

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

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

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

48、孔排插座上。编程下载时,在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,RD Yn BSY(4)70n STATUS(2)55I/O,CLKUSE(4)73n CONFIG(2)3

49、4I/O,DATA7(4)5DCLK(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 In puts2,42,44,84TRST(2)56Dedicated Clock pins1,43l/O,INIT DONE69I/O,DEV CLR n(3)3I/O, nRS(4)81VCCINT4,20,3

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

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

52、ibrary IEEE;en tity div isport( elk: in std_logic; -20MHzclk1m: out std_logic);end div;architecture Behavioral of div issig nal clk_temp : std_logic;begi nprocess (clk)variable cnt1: stdogic_vector(3 downto 0);beg inif risin g_edge(clk) the nif ent仁1001 the ncnt1:=0000;clk_temp=1;else cnt1:=cnt1+1;c

53、lk_tempv=0;end if;end if;end Process;process(clk_temp)variable cn t2: std_logic;beg inif risin g_edge(clk_temp) the ncn t2:=not cn t2;clk1m=c nt2;end if;end process;end Behavioral;DS18B20驱动模块library IEEE;en tity state isport(clk1m : in stdogic;-原程序可能为 20MHzdq : inout std_logic;en:in std_logic;rst: in std_logic;TMP : out std_logic_vector(11 downto

温馨提示

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

最新文档

评论

0/150

提交评论