毕业论文-基于FPGA的智能温度采集控制器设计与实现_第1页
毕业论文-基于FPGA的智能温度采集控制器设计与实现_第2页
毕业论文-基于FPGA的智能温度采集控制器设计与实现_第3页
毕业论文-基于FPGA的智能温度采集控制器设计与实现_第4页
毕业论文-基于FPGA的智能温度采集控制器设计与实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于FPGA的智能温度采集控制器的设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 讲师 完成日期: 2014年 4月 28日 大连东软信息学院Dalian 大连东软信息学院毕业设计(论文) 摘要 IV基于FPGA的智能温度采集控制器的设计与实现摘 要温度是重要的生活、工作中的参考数据。温度的采集与控制,对于农作物的生长、工业生产都有着非常重要的意义。随着科技的发展,检测与测量技术已经趋于智能化,传统的采用单片机技术进行温度测量方法,由于检测过程繁琐、检测周期长、

2、检测结果误差率高等原因,已经不能满足人们对每天繁多的温度智能采集控制任务的需求,主要体现在数据采集和处理方面却存在着抗干扰性差、速度慢等缺点,使测量系统的稳定性和实时性受到了很大的影响。因此设计一套高效的、智能的、检测精度较高的温度采集控制系统,是目前急需要解决的。在大学的四年当中,接受了专业老师的教导,学习了包括数字电路,数字信号处理,高级数字系统设计与验证(verilog),SoC,电路分析,VLSI,混合集成电路设计等课程,并借助Xilinx ISE8.2i、ModelSim等软件的强大性能设计并实现了基于FPGA的温度采集控制器,对其进行电路的设计和功能仿真。但是此项目只是在实验设计阶

3、段进行试验,不支持商业生产等步骤。 关键词:温度采集,FPGA,Verilog,控制电路大连东软信息学院毕业设计(论文) AbstractDesign and Implementation of Intelligent Temperature Acquisition Controller Based on FPGAAbstractTemperature is important in the life and work of reference data. The acquisition and control of temperature, for the growth of crops,

4、industrial production has a very important significance. As technology of development, detection and measurement technology has tends to smart of, traditional of used single tablets machine technology for temperature measurement method, due to detection process cumbersome, and detection cycle long,

5、and detection results errors rate high causes, has cannot meet people on daily range of temperature smart collection control task of needs, main reflected in data acquisition and processing aspects is exists with anti-interference sexual poor, and speed slow, disadvantages, makes measurement system

6、of stability and real-time sexual was has is big of effects. Therefore, an efficient, intelligent design, testing high accuracy temperature data acquisition control system was urgently needed to resolve.In the university thoughts, received professional teachers teach, learn a digital circuit, digita

7、l signal processing, the design and verification of digital systems (Verilog), SoC, circuit analysis, VLSI, hybrid integrated circuit design courses, and with a strong performance design for Xilinx ISE8.2i, ModelSim and other software and the realization of temperature acquisition controller based o

8、n FPGA, design and function of the simulation circuit. But this project is in the design stage of testing, does not support the commercial production.Key words: Temperature acquisition, FPGA, Verilog, The control circuit大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc386368739 h IAbstract PAGEREF

9、 _Toc386368740 h II第1章绪 论 PAGEREF _Toc386368741 h 11.1 课题研究背景与意义 PAGEREF _Toc386368742 h 11.2 课题研究现状 PAGEREF _Toc386368743 h 1第2章关键技术介绍 PAGEREF _Toc386368744 h 32.1 关键性开发技术的介绍 PAGEREF _Toc386368745 h 32.1.1自上而下设计 PAGEREF _Toc386368746 h 32.1.2 FPGA PAGEREF _Toc386368747 h 42.1.3 硬件描述语言HDL PAGEREF _T

10、oc386368748 h 42.2 开发软件 PAGEREF _Toc386368749 h 52.2.1 Xilinx ISE与ModelSim PAGEREF _Toc386368750 h 52.2.3 Microsoft Office Visio PAGEREF _Toc386368751 h 6第3章系统需求分析 PAGEREF _Toc386368752 h 73.1功能概述 PAGEREF _Toc386368753 h 73.2 系统开发环境 PAGEREF _Toc386368754 h 73.2.1硬件配置 PAGEREF _Toc386368755 h 73.2.2软件

11、环境 PAGEREF _Toc386368756 h 73.3 系统可行性分析 PAGEREF _Toc386368757 h 8第4章系统设计 PAGEREF _Toc386368758 h 104.1系统功能结构设计 PAGEREF _Toc386368759 h 104.2系统模块设计 PAGEREF _Toc386368760 h 104.2.1温度采集模块设计 PAGEREF _Toc386368761 h 114.2.2控制模块设计 PAGEREF _Toc386368762 h 114.2.3显示模块设计 PAGEREF _Toc386368763 h 124.2.4分频模块设计

12、 PAGEREF _Toc386368764 h 12第5章系统实现 PAGEREF _Toc386368765 h 135.1分频模块的实现 PAGEREF _Toc386368766 h 135.2温度采集模块的实现 PAGEREF _Toc386368767 h 145.3显示模块的实现 PAGEREF _Toc386368768 h 16第6章系统测试 PAGEREF _Toc386368769 h 186.1测试概述 PAGEREF _Toc386368770 h 186.2采集模块仿真 PAGEREF _Toc386368771 h 186.3显示模块仿真 PAGEREF _Toc

13、386368772 h 186.4控制模块仿真 PAGEREF _Toc386368773 h 186.5测试结果 PAGEREF _Toc386368774 h 19第7章结论 PAGEREF _Toc386368775 h 20参考文献 PAGEREF _Toc386368776 h 21致 谢 PAGEREF _Toc386368777 h 22大连东软信息学院毕业设计(论文)- 第1章绪 论1.1 课题研究背景与意义测量技术由来己久,伴随着信息化时代的到来,社会不同领域多学科的逐步完善,在人类活动的各个领域都有使用测量的影子。最简单来说从家用生活中每个人都可以接触到的电表、水表、煤气表

14、,实时病人监护系统、汽车上的参数指示仪表,到当前比较尖端的科学技术,比如航空飞机驾驶室的各种导航和显示仪表以及神舟飞船上的推进器控制装置等等。与此同时,随着科学技术的飞速发展,测量技术以多样化的形式的渗透进其他学科当中去,与其他学科一起得到了长足的发展。当今数字电子技术的飞速发展,温度控制电路是适用于测量某特殊设备内部电子部件工作温度的一类集成电路,没有自动测量系统之前的测试手段一般是使用人工的手段逐点测量,但当测量精度要求较高且测试任务量比较大时,人工的传统的测试方法就会显出很多问题,如存在测量误差大,测量效率低下,不可维护性等缺点。在目前状况下,开发一种使用方便,安全性高,稳定性好的测量方

15、法就显得十分有必要。目前使用较多的是基于单片机技术,以单片机为主要器件,其编码器与译码器的生成为软件模式。在实际应用中,这类系统的可靠性比较差。而基于FPGA的温度采集控制器,可用硬件电路实现系统构造代替软件,与单片机相比的可靠性有更多的保障。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,但是可以快速成品,可以被修改来改正程序中的错误和更便宜的造价,并且具有容量大、体积小、功耗低、速度快、使用灵活、设计周期短等优秀性能。考虑到各方面因素,基于FPGA的设计更适合,更方便。这款温度采集控制器就是在这样的背景下应运而生的,在设计的过程中涉及了信号处理,verilog语言,电路分析,VLSI

16、等基础专业知识,刚好将大学所学知识应用到实践中。 1.2 课题研究现状智能控制系统是某些具有仿人智能的工程控制和信息处理系统,它与人工智能的发展紧密联系。智能控制是一门新兴的前沿交叉学科,它能够用到的地方非常多。智能可以总结为:能高效快速的采集、传输、处理和利用信息,从而多么恶劣环境下都能成功的实现预期目的。目前国内温控仪表的发展,相对国外而言在性能方面还存在一定的差距,它们之间最大的区别,主要是在控制和算法方面,具体的表现是国内的温控器在全部的量程范围内温度的控制精度相对较低,适应恶劣幻境的能力较差。这种劣势的造成是多方面原因引起的,对于不同的温度控制目标,由于控制算法的问题而导致控制精度不

17、确定等。甘肃大学的赵紫静研究了一种基于PID温度控制技术的X射线发生器。这种发生器需要将其精度控制在0.5左右,才能保证器件输出的X射线波长不发生超出要求的飘移,否则,X射线波长的超范围飘移将使整个设备难以正常使用。在温控过程中,由于难以建立控制对象的精确数学模型,所以可以用PID技术根据预先设定好的控制规律不停地自动调节控制量以使被控系统朝着设定的平衡状态过渡,最后达到控制范围精度内的稳定动态平衡。昆明理工大学信息工程与自动化学院的王清海等在锅炉温度控制研究中将神经网络PID与Lab VIEW人机交互结合,实现对锅炉温度的数据采集、控制和现实,提高了锅炉温控系统的效率。 大连东软信息学院毕业

18、设计(论文)第2章关键技术介绍2.1 关键性开发技术的介绍2.1.1自上而下设计数字系统的设计方法一般分为自上而下设计和自下而上设计两大类。一般自上而下的设计是从系统级开始,系统被划分为若干基本单元,然后每个基本单元又被划分为下一层次的若干基本单元,以此类推,一直到可以直接用EDA元件库中的基本元件来实现为止。在某种意义上讲,自下而上的设计过程可以看作是自上而下设计的逆过程。同样自下而上设计也是从系统级开始的,就是从设计树的树根开始对整个设计进行逐次划分,但是必须从已经存在的基本单元出发,所以划分时首先考虑的是单元是否存在。最终设计最底层的单元或者是已经制造出来的单元,或者是已开发好的单元或者

19、是可以通过外购得到的基本单元。自下而上的设计流程包括:首先独立的设计和优化每个子模块,然后在顶层的设计中集成所有已经优化好的子模块,最后进行总体设计的验证。在综合和优化之后可以将每个子模块具有的单独的网表整合在顶层的设计中。这样在顶层模块设计中,各个子模块之间的性能都不会相互影响。与此同时,由于在高层次进行设计的主要仿真和调试过程,所以能够尽早的发现结构设计上的错误,减少了设计工作的浪费,同时又减少了模块逻辑仿真的工作量。图2.1为自上而下(top-down)的设计树示意图。图2.1 自上而下的设计树示意图本论文对温度采集控制器的设计,就是采用自上而下(top-down) 的正向设计方法。根据

20、自上而下的设计思想,对系统进行功能模块划分并优化。各个功能模块之间相互独立并且可以相互引用,最后将各模块集成到一个顶层模块中,形成一个完整的系统。2.1.2 FPGA FPGA(Field Programmable Gate Array),即现场可编程门阵列。它是专用集成电路中的一种半定制电路。FPGA具有三种可编程资源的特点:I/O是可编程的,用户可以设置引脚是输入/出、COMS/TTL电平、可以决定是否有上拉或者信号激变情况、速率快慢等等;逻辑是可编程的,也就是说它中间的排成行和列的逻辑单元是可编程的,可以实现组合逻辑电路和时许逻辑电路,在逻辑块里实现组合逻辑块和集成元件触发器;可编程的互

21、联线资源,在贯穿了行和列的逻辑块之间,分布的或连线可编程。具备了这三种可编程资源后,就构成了FPGA,同时根据它的逻辑查表实现,编程SRAM方式实现和逻辑通过多路开关实现,编程通过熔丝通断实现分为SRAM查表和多路开关反熔丝两种结构,目前SRAM工艺的运用更为普遍。一般的FPGA构成分为:数字时钟管理模块(DCM)、可编程输入/出单元(IOB)、布局布线、逻辑单元(CLB)、RAM、底层功能单元和专用硬件模版等。FPGA一般来说比专用集成电路的速度要慢,无法完成更复杂的设计,并且会消耗更多的电能。但是,FPGA具有很多优点,比如可以快速成品,而且其内部逻辑可以被设计者反复修改,从而改正程序中的

22、错误,此外,使用FPGA进行除错的成本较低。在现在的FPGA开发应用中,全球知名的FPGA生产厂商有:Altera,Xilinx,Actel,Lattice,Atmel等。这几家公司生产的FPGA在内部结构和模块上都有所区别,使用的开发环境也不一样,在应用的过程中需要加以区分。 2.1.3 硬件描述语言HDL 硬件描述语言(HDL,hardware description language)是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20

23、世纪80年代中期开发出来的。HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。HDL语言与C语言在操作与语法中有许多相似的地方,同时也有许多独特的地方,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。HDL经过不断的修改与扩展提供了许多新

24、的功能,例如敏感列表、多维数组、生成语句块、命名端口连接等。目前,Verilog-2001是Verilog的最主流版本,被大多数商业电子设计自动化软件包支持。2.2 开发软件2.2.1 Xilinx ISE与ModelSimISE的全称为Integrated Software Environment,即“集成软件环境”,是Xilinx公司生产的硬件设计工具。ISE的主要功能包括设计输入、综合、仿真、实现和下载。包括了FPGA开发的全部功能,其功能完全可以使工作的时候不借用任何第三方EDA软件。设计输入;设计输入是工程设计的第一步,ISE提供的设计输入方式有硬件描述语言(HDL)和原理图输入方法

25、。HDL输入法是设计方法中最常用的方法。他的优点是利用自上而下的设计方法,方便模块的划分而且可移植性好,可以重复利用。ISE提供了非常丰富的电路元件库,在图形编辑器中利用各种元器件和连接线可以非常方便的做出原理图。但是这种方法的可维护性差不利用模块重用,而且升级的时候模块需要全部改动。综合:综合是将行为和功能层次表达的电子系统转化为低层次模块的组合。一般来说,综合是针对VHDL来说的,即将VHDL描述的模型、算法、行为和功能描述转换为FPGA/CPLD基本结构相对应的网表文件,即构成对应的映射关系。ISE提供的综合工具有自身的综合工具XST,Synplicity公司的Synplify/Synp

26、lify Pro,Synopsys公司的FPGA Compiler II/ Express,和 Exemplar Logic公司的 LeonardoSpectrum等,仿真:仿真是通过观察波形图的各个输入输出信号来确定是否满足设计要求。ISE具有图形化波形编辑器可以实现仿真功能,同时也可以使用Model Tech公司的Modelsim进行仿真。实现:实现是通过时序分析、管脚定义增量设计等将逻辑网表适配到具体器件上。具体实现过程为翻译、映射、布局布线等。下载:下载即编程就是将已经仿真实现的程序下载到开发板上,进行在线调试或者说将生成的配置文件写入芯片中进行测试。ISE提供的下载工具是BitGen

27、。ModelSim是Mentor公司生产的最受用户欢迎的HDL语言仿真软件之一,它能给用户提供优良的仿真环境,并且还能单内核支持VHDL、Verilog混合仿真。它的编译仿真速度是业界最快的,仿真时只需要加入design,然后编写相应的testbench文件就可以进行,简单方便,容易上手。功能强大的Xilinx ISE8.2i和ModelSim通常在基于FPGA的设计中应用比较广泛,是最热门的两款仿真软件。因为在大学四年的学习过程中更多学习使用的是Xilinx ISE8.2i,而且鉴于可操作性比较赛灵思操作更为简便,软件更为熟悉性能,所以在此次毕业项目的测试阶段采用的是Xilinx ISE8.

28、2i。2.2.3 Microsoft Office VisioOffice Visio是一款功能强大的绘图软件,对于IT和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流。Microsoft Office Visio能创建具有专业外观图表,能记录分析信息、数据、系统和过程。Visio与其他图形软件相比具有更高的可视性与直观性,并且操作简单对使用者无技能基础要求。应用此软件,可以绘制多钟图表,包括组织结构图、日程表、日历和甘特图。在进行项目设计过程时,通过Visio可以方便快捷的完成系统框图、流程图和状态机等各种图形的绘制工作,是学习、工作人员拥护的优秀绿色软件。该软件具有标准图标,

29、可以使用现有的数据生成各种标准图标,如组织结构图、日程表、日历等。并且自带帮助文件Office Visio 2007便于IT和商务专业人员就复杂的信息、系统和流程进行可视化操作,通过这种图标,可以促进对系统以及流程的深入认知。最为客观的是,Office Visio 2007具有两个独立的版本:professional与standard两个版本。虽然他们的基本功能一致,但是professional版本包含的功能模块在standard版本里都有。不像其他软件,Office Visio 2007可以通过编程或跟其他程序集成的方式拓展,用以满足不同情况下的需求。这一功能使得软件更具人性化,受到广大软件

30、工作者的爱好。在Visio 2007的软件开发工具包(SDK)中,有可以满足人们需要的各种自定义应用程序开发示例、工具和文档,同时提供了普遍适用的可重用函数、类和过程,而且支持多种语言开发,其中就包括了Microsoft Visual Basic、Visual Basic.NET、Microsoft Visual C#.NET和Microsoft Visual C+。第3章系统需求分析3.1功能概述本设计以Quartus 为开发环境,采用Verilog HDL语言,完成了智能温度采集控制器的设计。该温度采集控制器能将输入的温度值显示出来并进行比较,判断是否进行加热。根据需求分析所设计的温度采集

31、控制的原理图,如图3.1所示。按键输入模拟的温度通过显示模块显示出来,控制模块与预设温度比较,确定是否加热和加热多长时间。图3.1 系统原理图3.2 系统开发环境 3.2.1硬件配置本次系统设计采用的FPGA开发板为Altera公司针对大学教学及研究机构推出的黑金开发板,提供了丰富的外设及多媒体特性,并具有灵活而可靠的外围接口设计,其设计和制造完全按照工业标准进行,可靠性高,展示了其丰富的平台资源。核心的FPGA芯片为Altera Cyclone III EP3C25E144I7 芯片,它包含114,480 个逻辑单元,432 M9K 内存模块,3888 Kbits 嵌入式存储器位,4 个锁相

32、环。储存用的芯片有:2MB (1Mx16) SRAM,128MB (32Mx32bit) SDRAM,8 位8MB (4Mx16) Flash 存储器,配置为8-bit 工作模式,32Kb EEPROM。拥有4个按钮,18个滑动开关,18个红色发光二极管,9个绿色发光二极管,8个七段数码管,162字符液晶显示屏。通用串行总线USB控制模块以及A、B型接口,SD(提供SPI 模式和4位SD模式)接口,IR红外模块,10/100/1000M自适应以太网络适配器,RS-232标准串口,PS/2键盘接口,可配置I/O标准接口。3.2.2软件环境Quartus II 软件是Altera公司的综合性的PL

33、D开发 HYPERLINK /view/37.htm t _blank 软件。它具有强大的功能:支持原理图、VHDL语言、Verilog HDL语言以及AHDL(Altera Hardware Description Language)等多种设计输入形式,并且内嵌有仿真器,从而可以使之完成从设计输入到硬件配置的完整的设计流程。Quartus II软件除了可以在XP、Linux以及Unix上使用,还可以利用Tcl HYPERLINK /view/54.htm t _blank 脚本完成设计流程,它提供了完整的用户图形界面设计方案。Quartus II软件还具有运行速度快、功能集中、界面统一、简单

34、易用等特点。Quartus II软件支持Altera公司的IP核,它包含LPM/MegaFunction等宏功能模块库,从而使用户可以方便的利用成熟的模块,不仅简化了设计的复杂性、而且加快了设计的速度。Quartus II良好支持第三方的EDA工具,使用户可以在设计流程的各个阶段快速的使用第三方的EDA工具。此外,Quartus II软件、DSP Builder工具、MATLAB、Simulink等相结合,也使之可以方便地实现各种复杂的DSP应用系统。 Maxplus II是Altera公司的上一代设计软件,已经由于其出色的易用性而在业界得到了广泛的应用。如今Altera公司已经停止了对Max

35、plus II软件的更新支持,Quartus II软件与之相比更是支持器件类型的丰富和图形界面的改变。许多诸如SignalTap II、Chip Editor和RTL Viewer的辅助设计工具,SOPC和HardCopy的设计流程,Maxplus II友好的图形界面及简便的使用方法均已经集成在了Altera开发的Quartus II软件中。因此Quartus II软件作为一种优秀的可编程逻辑的设计环境, 因其强大的设计能力和直观易用的接口,被越来越多的 HYPERLINK /view/3114367.htm t _blank 数字系统设计者所接受。3.3 系统可行性分析智能温度采集控制器采用

36、Verilog HDL编写,根据EDA工具自动生成。要设计完成该项目需要懂得数字电路,SoC,高级数字系统设计与验证,硬件编程语言等软硬件相关知识。并且,能够较为熟练的使用Visio,Xilinx ISE,ModelSim,Quartus II等硬件设计及仿真验证相关软件工具,然后要对各种比赛赛制有一定了解与清晰的设计思路,并具备相应的开发器件与设备。从顶层进行功能划分和结构设计。对整个系统有一定的认识后,开始着手整体流程图的设计。然后,通过流程图提炼出相应的控制单元和数据通道。数据通道的各个模块包括:温度采集模块、控制模块、显示模块、分频模块。控制单元部分由有限状态机来实现,合理涉及各个状态

37、转移。控制单元发送数据通道所需的控制信号,接收来自数据通道的状态信号,监控整个测试过程的运行;数据通道处理来自控制单元的控制信号,并把处理的结果反馈给控制单元。此外,外围电路即显示控制电路和按键控制电路可以使调节和显示很方便。使用Altera公司开发的Quartus软件,对每个模块进行开发。通过常用仿真软件ModelSim对设计的所有模块进行仿真测试,确保整个开发流程顺利进行。最后在FPGA开发板上进行功能测试,并且不断地进行优化。其中用硬件描述语言开发FPGA的主要流程如下:(1)设计输入:用原理图输入方式、文本编辑器方式或者HDL编辑环境等都可以做为设计输入。(2)功能仿真:将设计文件放入

38、HDL仿真软件进行功能仿真,检查逻辑功能是否正确可以通过。对于一个独立的设计项目而言,仿真文件的提供足可以证明设计的完整性。(3)逻辑综合:进行综合时需要把源文件调入综合软件中,就是把该语言转换成若干个最简化的布尔表达式,逻辑综合后将会生成一个EDA工业标准文件*.edf。该文件即可用于之后的布局布线工作。在综合前可以加上若干的约束条件,以便不断的对时间或位置进行优化。(4)布局和布线:进行布线时,只需将*.edf文件放入器件商提供的软件中,就是把设计好的逻辑安放到FPGA内。此时,将用到逻辑综合生成的网表,并且根据CPLD/FPGA厂商的器件容量、结构等进行布局、布线。首先各个设计中的门,根

39、据网表和结构被安置在在元器件的某个特定的部位,然后,按照网表中规定的所有门之间相互的连接关系,把每个门相对应的输入和输出连接在一起。最后输出一个可编程的文件。这就完成了在设计PCB时的布局布线。(5)时序的仿真:这一步需利用在上一步中得到的参数,然后使用仿真软件对电路的时序的正确性进行验证。一旦设计的电路不满足要求的话,需要反复修改直到解决所有问题,否则就可以到下一步。(6)器件编程的下载:CPLD/FPGA中最终要实现的是在器件中进行编程设计。系统设计其实是把物理的设计实现转换成了相应的二进制文件。该编程的用于对FPGA进行通常编程方式包括:硬件调试器、JTAG编程器、PROM文件等三种。通

40、常情况下,进行编程和下载程序的时候采用JTAG的方式比较多。使用Altera公司开发的Quartus 软件,对每个模块进行开发。通过常用仿真软件ModelSim对设计的所有模块进行仿真测试,确保整个开发流程顺利进行。最后在进行整体的功能测试,并且不断地进行优化。第4章系统设计4.1系统功能结构设计根据需求分析所设计的温度采集控制器的外部结构图,如图4.1所示。该系统模拟了15个温度值, 10、20、30、40、45、50、55、60、65 、70、75 、80、85、90、 95。当输入的温度低于55时系统开始加热并计时。当温度值为10时加热50秒;当温度值为20时加热40秒,当温度值为30时

41、加热30秒;当温度值为40时加热20秒;当温度值为45时加热10秒;当温度值为50时加热5秒;温度值在55以上时只显示不加热。图4.1 系统外部结构图各端口详细说明见表3.1:表3.1 系统模块端口说明信号 I/O宽度功能描述clkI1外部输入50Hz时钟信号Rst_nI1系统复位信号Key_in1I1按键1信号Key_in2I1按键2信号Key_in3I1按键3信号Key_in4I1按键4信号Rten_smg_dataO8显示数据Sm_bit_rO4选择要工作的数码管spO1加热4.2系统模块设计该温度采集控制器中主要包括四个模块:1.温度采集模块 2.控制模块 3.温度显示模块4.分频模块

42、。如图4.2所示。图4.2 系统主要模块4.2.1温度采集模块设计该模块的功能是通过该模块的按键消抖功能将处理过的数据交给下一个模块。因为通常按键所用开关是机械开关,当机械触点断开、按下时,由于开关的机械作用,一个开关在按下时不会立刻接通,在松开时也不能立刻断开。因此在按下或断开的瞬间都会有一些不稳定的信号产生,为了不产生这种现象而作的措施就是按键消抖。温度采集模块如图4.3所示。图4.2温度采集模块其中clk为系统时钟信号,rst_n为复位信号,clk_jianpan为模块工作时钟,key_in1、key_in2、key_in3、key_in4为4个按键的输入信号,key_o1、key_o2

43、、key_o3、key_o4为经过按键消抖处理后的输出信号。4.2.2控制模块设计该模块的功能是当输入的温度低于55时系统开始加热并计时。当温度值为10时加热50秒;当温度值为20时加热40秒,当温度值为30时加热30秒;当温度值为40时加热20秒;当温度值为45时加热10秒;当温度值为50时加热5秒;温度值在55以上时只显示不加热。控制模块如图4.3所示。图4.3控制模块其中clk为系统时钟信号,rst_n为复位信号,key_o1、key_o2、key_o3、key_o4为经过按键消抖处理后的输出信号。Second为加热时间信号,wen_du为温度值信号,sp加热信号。4.2.3显示模块设计

44、该模块的功能是根据将输入的温度值产生驱动数码管工作的控制信号实现数码管的显示。显示模块如图4.4所示。图4.4显示模块其中Second为加热时间信号,wen_du为温度值信号,rst_n为复位信号,clk_xianshi为显示模块工作时钟,rten_smg_data为驱动数码管显示的数值,sm_bit为选择工作的数码管。4.2.4分频模块设计该模块的功能是将系统时钟作为输入,经过分频后产生适合其它各个模块需要的频率。将时钟频率从50MHz一个变为1000Hz给显示模块,一个变为500Hz给温度采集。分频模块如图4.5所示。图4.5分频模块其中clk为系统时钟信号,rst_n为复位信号,clk_

45、xianshi为显示模块工作时钟,clk_jianpan为模拟采集模块工作时钟大连东软信息学院毕业设计(论文)第5章系统实现5.1分频模块的实现分频模块关键代码如下:always ( posedge clk or negedge rst_n ) if( !rst_n ) begincount2 = 20d0;clk_anjian = 1b0;/复位endelse if( count2 = 20d1000000 ) begincount2 = 20d0;clk_anjian = clk_anjian; /将按键采集模块的工作频率分为500Hzendelsecount2 = count2 + 1b

46、1;/计数器加一always ( posedge clk or negedge rst_n ) beginif( !rst_n ) begincount3 = 16d0;clk_xianshi = 1b0;/复位endelse if( count3 = 16d50000 ) begincount3 = 16d0;clk_xianshi =clk_xianshi; /将显示模块的工作频率分为1000Hzendelsecount3 = count3 + 1b1;计数器加一end其中clk为外部时钟50MHz,程序工作时每当外部时钟到来时计数器计数一次,当计数到100000时按键工作时钟反转一次,当

47、计数器计数到50000时显示模块反转一次,从而达到分频功能。5.2温度采集模块的实现温度采集模块关键代码如下:always ( posedge clk_jianpan or negedge rst_n )if ( !rst_n ) begintemp_r11 = d0;/复位emp_r12 = d0;temp_r13 = d0; endelse begintemp_r11 = key_i1;/对第一个按键取值temp_r12= temp_r11;temp_r13 = temp_r12; endassign key1 = (temp_r11) & temp_r12 & temp_r13;/判断是

48、否出现下降沿always ( posedge clk or negedge rst_n )if ( !rst_n ) key_r1 = 1b0;/复位else key_r1 = key1; assign key_o_1 = key1 & (key_r1); /确定第一个按键按下always ( posedge clk_jianpan or negedge rst_n )if ( !rst_n ) begintemp_r21 = d0;/复位temp_r22 = d0;temp_r23 = d0; endelse begintemp_r21 = key_i2;/对第二个按键取值temp_r22=

49、 temp_r21;temp_r23 = temp_r22; endassign key2 = (temp_r21) & temp_r22 & temp_r23;/判断是否出现下降沿always ( posedge clk or negedge rst_n )if ( !rst_n ) key_r2 = 1b0;/复位else key_r2 = key2;assign key_o_2 = key2 & (key_r2);/确定第二个按键按下 always ( posedge clk_jianpan or negedge rst_n )if ( !rst_n ) begintemp_r31 =

50、d0;/复位temp_r32 = d0;temp_r33 = d0; endelse begintemp_r31 = key_i3;/对第三个按键取值temp_r32= temp_r31;temp_r33 = temp_r32; endassign key3 = (temp_r31) & temp_r32 & temp_r33;/判断是否出现下降沿always ( posedge clk or negedge rst_n )if ( !rst_n ) key_r3 = 1b0;/复位else key_r3 = key3;assign key_o_3 = key3 & (key_r3);/确定第

51、三个按键按下 always ( posedge clk_jianpan or negedge rst_n )if ( !rst_n ) begintemp_r41 = d0;/复位temp_r42 = d0;temp_r43 = d0; endelse begintemp_r41 = key_i4;/对第四个按键取值temp_r42= temp_r41;temp_r43 = temp_r42; endassign key4 = (temp_r41) & temp_r42 & temp_r43;/判断是否出现下降沿always ( posedge clk or negedge rst_n )if

52、 ( !rst_n ) key_r4 = 1b0;/复位else key_r4 = key4;assign key_o_4 = key4 & (key_r4); /确定第四个按键按下采集模块通过对每个按键连续取值,当按键取值出现下降沿的时候,判定按键已经按下并对按键赋值。5.3显示模块的实现显示模块关键代码如下:always ( posedge clk_xianshi or negedge rst_n ) if( !rst_n ) cnt_dis = 3d0; else beginif( cnt_dis = 3d3 ) cnt_dis = 3d0;elsecnt_dis = cnt_dis +

53、 1b1; endalways ( * ) if( !rst_n ) disp_dat = 4d0;elsebegincase( cnt_dis ) 3d0: disp_dat = second3:0;/时间的个位3d1: disp_dat = second7:4;/时间的十位3d2:disp_dat = wen_du3:0;/温度的个位3d3:disp_dat = wen_du7:4;/温度的十位default :disp_dat = 4d0;endcaseendalways ( * ) f( !rst_n )sm_bit_r = 4b1111;elsecase( cnt_dis )/选择工

54、作的数码管 3d0: sm_bit_r = 4b0001;3d1: sm_bit_r = 4b0010;3d2: sm_bit_r = 4b0100;3d3: sm_bit_r = 4b1000;default : sm_bit_r = 4b1111;endcasealways ( * )if( !rst_n )rten_smg_data = 8d0;else case( disp_dat )/数码管要显示的数字4d0 : rten_smg_data = _0;4d1 : rten_smg_data = _1;4d2 : rten_smg_data = _2;4d3 : rten_smg_da

55、ta = _3; 4d4 : rten_smg_data = _4;4d5 : rten_smg_data = _5; 4d6 : rten_smg_data = _6; 4d7 : rten_smg_data = _7; 4d8 : rten_smg_data = _8; 4d9 : rten_smg_data = _9; default :通过动态扫描确定工作的数码管,并轮流向各个数码管送出数据。利用数码管工作时在人眼的视觉停留效果,让人的感觉好像每个数码管都在同时显示。第6章系统测试6.1测试概述仿真是一项十分重要的工作,在整个系统设计中占据重要的位置。通过对各个模块和整体系统的仿真可以

56、及时发现和解决设计中的许多问题,所以对系统的设计具有极其重要的意义。下面将结合本系统开发对系统进行了整体和模块仿真。6.2采集模块仿真温度采集模块仿真图如图6.1所示:图6.1温度采集模块仿真图从图中可以看出当key_2输入信号从上升沿变为下降沿的时候,key_o2从下降沿变成上升沿,从而判定按键2按下一次。6.3显示模块仿真显示模块仿真图如图6.2所示:图6.2显示模块仿真图当输入加热时间输入00000000,温度值00100000时,数码管显示数字0。符合设计要求。6.4控制模块仿真控制模块仿真图如图6.3所示:图6.3控制模块仿真图当按键2按下即模拟输入温度30度时,数码管显示温度值30

57、,并加热30秒,输出一个加热信号。分频模块仿真图如图6.4所示:图6.4分频模块仿真图从图中可以看出,分频模块将系统时钟分为一个500Hz的温度采集模块工作时钟和一个1000Hz的显示模块工作时钟。6.5测试结果将程序下载到FPGA电路中观察实物演示,硬件电路如图6.5。当输入温度为10度时系统控制开始计时加热50秒,成功实现预期目标。图6.5硬件电路第7章结论为了方便快捷的测量温度控制电路的性能,结合当前测试技术的发展,文中设计了一种基于FPGA的温度控制电路测量系统,搭建硬件测试平台,编写了相应的软件控制程序。此测量系统的设计方案有效的解决了当前温度控制电路测量方面的效率低下、测量系统庞大

58、等问题,使温度控制电路有一个可靠、便捷的测试平台,因此本系统有很好的应用前景。本文主要做了以下几方面的工作:(1)首先介绍了测量技术的理论,详细阐述了测量系统和可编程逻辑器件的发展概况,然后介绍了温度控制电路测量技术的现状,并做以比较,提出了基于FPGA的温度控制电路测量系统的设计思路。(2)较为概括的介绍了FPGA、HDL和开发软件的相关知识,设计流程。(3)进行了温度控制电路测量系统的外围硬件模块电路设计,并且介绍了系统的工作过程,根据硬件设计的思路,画出了部分电路原理图,在查阅资料后,完成温度控制电路测量系统的硬件选型与配置,最后对系统中主要单元电路进行了开发和设计。参考文献1 孙晓凌高级数字系统设计与验证M,大

温馨提示

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

评论

0/150

提交评论