首页 VHDL微波炉控制器课程设计-- 数字微波炉控制器

VHDL微波炉控制器课程设计-- 数字微波炉控制器

举报
开通vip

VHDL微波炉控制器课程设计-- 数字微波炉控制器...............精品资料...............【精品资料】第PAGE12页VHDL微波炉控制器课程设计--数字微波炉控制器本科生课程设计题   目:数字微波炉控制器课   程: 数字电路课程设计专   业: 电子信息工程目录TOC\o"1-3"\u一、绪论PAGEREF_Toc2373二、关键技术简介PAGEREF_Toc2473832.1FPGA简介PAGEREF_Toc3270632.2VHDL语言概述PAGEREF_Toc776942.3ALTIUMD...

VHDL微波炉控制器课程设计-- 数字微波炉控制器
...............精品资料...............【精品资料】第PAGE12页VHDL微波炉控制器课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 --数字微波炉控制器本科生课程设计 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题    目:数字微波炉控制器课   程: 数字电路课程设计专   业: 电子信息工程目录TOC\o"1-3"\u一、绪论PAGEREF_Toc2373二、关键技术简介PAGEREF_Toc2473832.1FPGA简介PAGEREF_Toc3270632.2VHDL语言概述PAGEREF_Toc776942.3ALTIUMDESIGNER简介PAGEREF_Toc272975三、微波炉定时控制器的设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 分析PAGEREF_Toc3118653.1系统设计的要求PAGEREF_Toc2754353.2系统总体功能描述PAGEREF_Toc152063.3各模块的功能实现PAGEREF_Toc1609163.3.1输入模块PAGEREF_Toc1418563.3.2状态控制模块PAGEREF_Toc2924473.3.3显示模块PAGEREF_Toc268767四、系统详细设计PAGEREF_Toc435784.1控制模块PAGEREF_Toc1184084.1.1状态转换控制PAGEREF_Toc1023784.1.2数据装载PAGEREF_Toc21032104.1.3烹饪计时PAGEREF_Toc10863114.1.4控制模块的实现PAGEREF_Toc164812五、系统仿真PAGEREF_Toc18523125.1状态控制器仿真PAGEREF_Toc13189125.2数据装载器的仿真PAGEREF_Toc1850135.3烹饪计时器的仿真PAGEREF_Toc529314六、结论PAGEREF_Toc1485915一、绪论随着人民生活水平的提高,微波炉开始进人越来越多的家庭,它给人们的生活带来了极大的方便。微波炉由2450MHz的超高频来加热食物。它省时、省电、方便和卫生。作为现代的烹饪工具,微波炉的控制器体现着它的重要性能指标。目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。本文采用先进的EDA技术,利用ALTIUMDESIGNER工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。该系统具有系统复位、时间设定、烹饪计时等功能,在FPGA上实现。关键技术简介2.1FPGA简介FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。2.2VHDL语言概述VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL语言主要具有以下优点:VHDL语言功能强大,设计方式多样VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。(2)VHDL语言具有强大的硬件描述能力VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。(3)VHDL语言具有很强的移植能力VHDL语言很强的移植能力主要体现在:对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上,从一个综合器移植到另一个综合器上,或者从一个工作平台移植到另一个工作平台上去执行。VHDL语言的设计描述与器件无关采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。(5)VHDL语言程序易于共享和复用VHDL语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行 交流 第4课唐朝的中外文化交流教案班主任工作中的交流培训班交流发言材料交流低压配电柜检验标准小王子读书交流分享介绍 和共享,从而减小硬件电路设计的工作量,缩短开发周期。2.3ALTIUMDESIGNER简介AltiumDesigner是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在WindowsXP操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。AltiumDesigner除了全面继承包括Protel99SE、ProtelDXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。由于AltiumDesigner在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,AltiumDesigner对计算机的系统需求比先前的版本要高一些。三、微波炉定时控制器的设计方案分析3.1系统设计的要求现需设计一个微波炉控制器,通过该控制器再配以4个七段数码二极管完成微波炉的定时及信息显示。各信号的功能及要求如下:CLK是秒时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST为测试信号,高电平有效,用于测试4个七段数码二极管工作是否正常。START为开始加热信号,高电平有效,SET_UP信号为定时设置信号,高电平时可以设置定时时间,DATA为定时的时间,COOK为加热输出,另外四个输出分别表示显示的定时时间的分和秒。3.2系统总体功能描述各信号功能及要求如下:CLK是秒时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST信号是测试信号,高电平有效,用于测试七段数码管工作是否正常。SET_UP是烹调时间设置控制信号,高电平有效。DATA1是一个16位总线输入信号,输入所设置的时间长短,它由高到低分为4组,每一组是BCD码输入,分别表示分、秒十位、个位的数字,如12分59秒。START是烹调开始的控制信号,高电平有效。COOK是烹调进行信号,外接用于控制烹调的继电器开关,高电平时表明烹调已经开始或正在进行,低电平表示烹调结束或没有进行。MIN_H,MIN_L,SEC_H,SEC_L是四组七位总线信号,通过LCD动态的显示完成烹调所剩的时间及测试状态信息,烹调完毕的状态信息。该微波炉控制器的具体功能要求如下:上电后系统首先处于复位状态。在工作是首先按时间设置键设置烹调时间,此时系统输入DATA1的数据作为烹调所需的时间,然后系统自动回到复位状态,同时4个七段数码管显示时间信息。在按START键后系统进入烹调状态。COOK信号开始为高电平,此时4个七段数码管每隔一秒钟变化一次,用以刷新还剩剩余多少时间结束烹调。烹调结束后,COOK信号变为低电平,同时LCD显示“0000”的信息,同时蜂鸣器发出提示音,然后系统回到复位状态。系统可以通过按RESET键随时回到复位状态。在复位状态下,按TEST键在4个数码管上会显示“8888”的信息,它可以测试LCD工作是否正常。3.3各模块的功能实现本系统主要由输入、控制和显示部分组成。输入部分主要完成用户对控制功能的设置,采用按键作为输入设备。控制部分是本系统的核心,它接收用户的输入,完成相应的控制逻辑功能,并将当前的工作状态等信息送到显示部分。显示部分主要监视系统工作状态并提示用户进行控制操作。3.3.1输入模块本系统采用键盘进行输入设置,即由一个4*4矩阵键盘实现数据输入控制。该矩阵键盘上16个按键分别是:输入模块包括时钟脉冲电路、键盘扫描电路、消枓同步电路和键盘译码电路,通过该模块将扫描得到的按键值送到控制模块。3.3.2状态控制模块控制部分作为整个微波炉控制器系统的核心,它采用FPGA芯片作为主控核心,完成许多复杂的控制和数据处理任务。它通过输入模块提供的按键输入实现数据信息装载处理,并将处理结果通过显示模块显示出来。其涉及到数据的装载、状态转换控制、烹饪计时。3.3.3显示模块显示部分采用LCD和LED来实现。其中,用LCD作为时间、状态显示,用发光二极管作为火力大小显示。具体设计时,采用LCD进行8位显示,高四位显示烹饪时间,低四位显示当前的烹饪状态。3个LED显示火力的大小,其中第一个亮表示小火,第一和第二个亮表示中火,3个全亮表示大火。3.4系统的工作流程YYNN测试结束时间到否START是否闭合火力设定时间设定选择解冻、蒸煮,烘烤系统预置方案烹饪数据装载完成自定义方案数据装载系统复位、初始化开始四、系统详细设计4.1控制模块控制模块是整个微波炉控制器系统的核心,完成许多复杂的控制和数据处理任务,它通过输入模块提供的按键输入实现数据信息装载处理,控制显示模块显示相应的信息。控制模块采FPGA芯片作为主控芯片,其涉及到数据的装载、状态控制转换、烹饪计时等。其中,状态控制转换子模块,其功能是控制微波炉工作过程中的状态转换,并发出相关控制信号。数据装载子模块,其功能是根据按键信号设置定时时间、最高温度、火力档位,烹调属性设置以及烹调数据信息装载。烹饪计时子模块,其功能是对时钟进行减法计数,提供烹调完成时的状态信号。音效控制子模块,其功能是控制微波炉工作时的音效提示,这里直接外接一个蜂鸣器实现该功能。其功能子模块图如下:控制模块状态转换控制子模块数据装载子模块烹饪计时子模块4.1.1状态转换控制根据微波炉工作流程的描述,分析状态转换条件及输出信号,可以得到控制模块的状态转换图下面,根据上述状态转换图和ASM图进行程序设计,在编写程序代码实现状态转换控制子模块过程时,首先,如果RESET=‘1’,则系统复位,当前状态为初始状态,当同步时钟脉冲,当前状态为下一状态,用程序代码表示如下:IFRESET='1'THENCURR_STATE<=DEFAULT;ELSIFCLK'EVENTANDCLK='1'THENCURR_STATE<=NEXT_STATE;ENDIF;当当前状态为初始状态时,LOAD_LED<='0';LOAD_DONE<='0';LOAD_SET<='0';COOK<='0';此时,显示测试状态:WHENLED_TEST=>LOAD_LED<='1';COOK<='0';时间设置状态:WHENSETTING=>LOAD_SET<='1';COOK<='0';完成信息显示状态:WHENFINISHED=>LOAD_DONE<='1';COOK<='0';在初始状态,如果按下“TEST”键,下一状态即为显示测试状态,如果按下“SETUP”键,下一状态即为时间设置状态,如果按下“START”键,即烹调开始进行时,此时下一状态为减法计数定时状态,该过程用程序代码实现如下:WHENDEFAULT=>IFTEST='1'THENNEXT_STATE<=LED_TEST;LOAD_LED<='1';ELSIFSETUP='1'THENNEXT_STATE<=SETTING;LOAD_SET<='1';ELSIFSTART='1'THENNEXT_STATE<=COUNTER;COOK<='1';ENDIF;在减法计数定时状态,如果输出DONE指示烹调信息完成,则下一状态为显示信息完成状态,显示烹调完成信息,否则,下一状态还是减法计数定时状态,COOK高电平有效,用程序代码实现如下:WHENCOUNTER=>IFDONE='1'THENNEXT_STATE<=FINISHED;LOAD_DONE<='1';ELSENEXT_STATE<=COUNTER;COOK<='1';ENDIF;生成的控制模块相应的电路符号:4.1.2数据装载数据装载器,它本质上就是一个三选一的数据选择器。根据其应完成的逻辑功能,本设计可采用一个进程来完成,但由于三个被选择的数据只有一个来自输入口,因此另两个被选择的数据则通过进程的说明部分定义两个常数来产生。由于装入测试的数据可以用4个8作为显示测试信息数据,经过八个译码器译码后显示测试信息编码。因此,该常数应是8个分段的4位BCD码,即“1000100010001000”,同理,DONE的BCD码分别为“0000000000000000”以显示DONE的常数“0000”。通过上述分析,该模块的主要程序可实现如下:PROCESS(DATA1,LOAD_LED,LOAD_SET,LOAD_DONE)ISCONSTANTTEST8:STD_LOGIC_VECTOR(15DOWNTO0):=X"8888";CONSTANTCOOKED:STD_LOGIC_VECTOR(15DOWNTO0):=x"0000";VARIABLETEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINLOAD<=LOAD_LEDORLOAD_DONEORLOAD_SET;TEMP:=LOAD_LED&LOAD_DONE&LOAD_SET;CASETEMPISWHEN"100"=>DATA2<=TEST8;WHEN"010"=>DATA2<=COOKED;WHEN"001"=>DATA2<=DATA1;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;完成VHDL源程序的输入,编译、运行,生成相应的电路符号:4.1.3烹饪计时烹饪计时器JSQ为减计数计数器,其最大计时时间为59:59,因此可以编写一个60进制计数器来实现。由所学知识可知,计数的功能是累计输入脉冲的个数,实现计数功能的数字电路即计数器,被计数的脉冲可以是周期性脉冲,也可以是非周期性脉冲,通常加在计数器的时钟脉冲输入端,作为计数器的时钟脉冲。计数器的代码如下:IF(CLK'EVENTANDCLK='1')THENIF(TIME1(3DOWNTO0)="0000")THENTIME1(3DOWNTO0)<="1001";IF(TIME1(7DOWNTO4)="0000")THENTIME1(7DOWNTO4)<="0101";IF(TIME1(11DOWNTO8)="0000")THENTIME1(11DOWNTO8)<="1001";IF(TIME1(15DOWNTO12)="0000")THENTIME1(15DOWNTO12)<="0101";ELSETIME1(15DOWNTO12)<=TIME1(15DOWNTO12)-1;ENDIF;ELSETIME1(11DOWNTO8)<=TIME1(11DOWNTO8)-1;ENDIF;ELSETIME1(7DOWNTO4)<=TIME1(7DOWNTO4)-1;ENDIF;ELSETIME1(3DOWNTO0)<=TIME1(3DOWNTO0)-1;ENDIF;ENDIF;生成相应的电路符号:其中TIME_OUT[3..0]表示秒的个位,TIME_OUT[7..4]表示秒的十位,TIME_OUT[11..8]表示分的个位,TIME_OUT[15..12]表示分的十位。输入信号LOAD为高电平时完成信号的载入;COOK信号为高电平时,在每个时钟周期的上升沿进行减法计数。输出信号DONE表示烹调时间到。4.1.4控制模块的实现综合上述分析,对该控制模块进行完整设计,连线图如下:其中,输入信号CLK为时钟输入信号,时钟上升沿敏感;TEST为数码显示管测试信号,高电平有效,用于测试显示管是否正常工作;SETUP为烹调时间设置时间,高电平有效时允许设置烹调时间;DATAIN为数据输入信号,用于设置烹调时间的长短;START为烹调开始的控制信号,高电平有效时开始烹调;RESET为复位信号,高电平有效时系统复位。DATAOUT[3..0],DATAOUT[7..4],DATA_OUT[11..8],DATAOUT[15..12]分别表示秒个位、秒十位、分个位、分十位。他们分别接8位LCD的搞死为,动态地显示完成烹调所剩的时间以及测试状态信息“8888”。五、系统仿真5.1状态控制器仿真完成状态转换控制器KZQ子模块VHDL源程序文件输入后,保存文件,对文件进行编译,然后编写测试平台文件进行仿真:其中,输入信号为RESET、SETUP、START、TEST、CLK、DONE,输出信号为COOK、LOAD_TEST、LOAD_SET、LOAD_DONE。控制器根据输入信号和自身当时所处的状态完成状态的转换和输出相应的控制信号。LOAD_SET指示数据装载器装入设置的烹调时间数据;LOAD_DONE指示转载起装入烹调完毕的状态信息“0000”的显示驱动信息数据;LOAD_TEST指示装载器装入用于测试的数据“8888以显示驱动信息数据;COOK指示烹调正在进行之中,并提示计时器进行减计数。仿真结果如图:分析该仿真文件,可以看到,当测试信号TEST为高电平有效时,测试输出信号LOAD_TEST为高电平;否则,当时间设置信号SETUP为高电平时,对应的指示信号LOAD_SET输出高电平;当烹饪开始信号START信号为高电平时,对应输出COOK为高电平;当复位信号RESET为高电平时,系统复位,恢复初始状态。仿真结果符合模块设计的要求。5.2数据装载器的仿真完成数据装载器子模块VHDL源程序文件输入后,保存文件,对文件进行编译,编写测试平台文件进行仿真:其中,输入信号LOAD_DONE为高电平时,输出烹调完毕的状态信息数据;LOAD_SET为高电平时,输出设置的烹调时间数据;LOAD_TEST为高电平时,输出测试数据。输出信号LOAD用于指示电路正处于上述三路信号模式中的哪一种,同时提示计数器将处于数据装入状态。仿真结果如图:分析该模块仿真结果,由于数据装载器本质上即多了选择译码电路。可知,当LOAD_SET、LOAD_TEST、LOAD_DONE三路信号中有且仅有一路信号电平有效时,装载器相应的值作为输出。5.3烹饪计时器的仿真完成计时器子模块VHDL源程序文件输入后,保存文件,对文件进行编译,编写测试平台文件进行仿真:其中,输入信号LOAD为高电平时完成信号的载入;COOK信号为高电平时,在每个时钟周期的上升沿进行减法计数。输出信号DONE表示烹调时间到。仿真结果如下图:由以上仿真结果可以看到,该JSQ模块实现了烹调计时的定时作用结论该课题是利用Altium公司的ALTIUMDESIGNER开发环境和软件,进行VHDL程序设计,然后进行仿真,调试,以AltiumNB1实验箱实验系统为硬件平台,实现了一个简单的微波炉控制器系统的设计。在整个毕业设计过程中,进行了系统的总体设计,硬件设备的选用,软件和开发环境的安装,VHDL程序设计与仿真。设计的重点主要在系统的规划以及程序的设计与调试上,要做到键盘与LCD,LED灯的一体化,需要在键位设置时进行准确的设计,通过键盘的扫描,消抖和译码,达到一键一码的目的,做到功能的完善。设计的难点主要在功能控制上,数据和控制信号较多,状态之间的转化也较为复杂,在设计中带来了一些困难。另外在仿真分析上,因为需要测试的结果很多,有些结果无法预料,无法在仿真中看到。本设计也存在一定的不足。由于本身能力和实验器材的限制,无法在系统中建立完善的体制,只是实现了一个微波炉控制器的基本功能。比如像存储功能,就没有在系统中考虑到,这些都有待以后的继续提高和完善。
本文档为【VHDL微波炉控制器课程设计-- 数字微波炉控制器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
清风青春
暂无简介~
格式:doc
大小:316KB
软件:Word
页数:12
分类:
上传时间:2022-02-11
浏览量:1