微波炉的设计.docx
《微波炉的设计.docx》由会员分享,可在线阅读,更多相关《微波炉的设计.docx(40页珍藏版)》请在冰豆网上搜索。
微波炉的设计
微波炉的设计
摘要
本论文介绍了微波炉的设计,应用FPGA芯片和硬件描述语言(VHDL)设计微波炉控制器系统的方法。
系统使用VHDL编程实现各底层模块的功能,顶层的设计采用图形输入完成。
论文主要阐述模块化设计的思想和状态图的描述方法,以及他们在硬件描述语言中的应用,并展示了其在QuartusII开发系统下的仿真结果。
微波炉控制器系统是一个实用型的系统,系统不仅具有操作简单的功能,而且烹调效果好,你可以按照固定程序烹调一些家常菜,可以采取分时、分不同级别火力加热,既能节约时间又能节约能源。
主要有以下几个模块:
输入模块、控制模块和显示模块。
输入模块实现按键扫描和键盘译码、控制模块包括状态转换控制、数据装载、烹饪计时、温度控制、音效提示等等、显示模块涉及到显示译码和指示灯的闪烁。
经过对系统做需求分析,详细功能设计、编码,模块连接,并利用FPGA实现相应的功能,经过波形仿真、下载调试,验证了设计方案的可行性及实现方法的有效性,基本实现了系统的要求。
关键词:
FPGA;VHDL;微波炉;状态图;定时器
Abstract
ThispaperintroducesthemethodthatapplyingFPGAchipandVHDLtodesignthecontrolsystemofmicrowaveovens.ThesystemusesVHDLtofulfillthefunctionofeachbottommoduleandthedesignofthetoplayeriscompletedviagraphicentering.ThispapermainlyillustratestheideaofmoduledesignanddescriptionmethodofstatechartandthattheirapplicationinVHDLandsimulationresultsinthedevelopsystemofQuartusII.
Microwavecontrollersystemisautility-typesystemthatincludesnotonlythefunctionofsimpleoperation,butalsogoodeffectofcook.Accordingtofixedroutine,youcancooksomehomelydishviatakingdifferenttimeanddifferentlevelfirepowertoheat,andthiscannotonlysavetime,butalsosaveenergy.Itmainlyincludesacoupleofmodulesasfollows:
inputmodule,controlmoduleanddisplaymodule.Inputmodulefulfillskey-pressscanningandkeyboarddecoding,controlmoduleincludesstatusswitchingcontrol,dataloading,cooktime,temperaturecontrol,soundeffecttipandsoon,displaymodulecomesdowntodisplaycodingdecipherandtheflashingofindicatorlight.
Throughtheanalysisofrequirement,detailedfunctiondesign,coding,moduleconnection,usingFPGAtofulfillrelevantfunction.Throughwaveformsimulation,downloaddebugging,itverifiesthefeasibilityofthedesignandtheeffectivenessofrealizationmethodandbasicallyfulfilltherequirementofthesystem.
Keywords:
FPGA,VHDL,Microwaveoven,Statuschart,timer
绪论
随着人民生活水平的提高,微波炉开始进人越来越多的家庭,它给人们的生活带来了极大的方便。
微波炉由2450MHz的超高频来加热食物。
它省时、省电、方便和卫生。
作为现代的烹饪工具,微波炉的控制器体现着它的重要性能指标。
目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。
本文采用先进的EDA技术,利用QuartusII工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。
该系统具有系统复位、时间设定、烹饪计时、温度控制和音效提示等功能,在FPGA上实现。
任务的提出
在现代人快节奏生活中,微波炉已成为便捷生活的一部分。
随着控制技术和智能技术的发展,微波炉也向着智能化、信息化发展。
而现有市售的微波炉其主要弊端为:
不能按既有程序进行烹调,需要使用者根据食物的类型、数量、温度等因素去设定微波炉的工作时间,若设定的工作时间过长,含水分较多的食物可能会产生过热碳化的现象,若时间过短则达不到预期的烹调效果。
不仅在节能方面未做过多考虑,使用者还需要经常翻看使用说明书才能完成操作过程。
针对这些问题,笔者认为有必要研制一种操作简单且烹调效果好的微波炉,根据一些家常菜按固定程序烹调的现象,可采取分时、分档火力加热,节时又节能。
课题的内容和要求
本课题是基于FPGA的微波炉控制器设计,即设计一个具备定时、温控、信息显示和音响效应提示功能的微波炉控制器,实现一些功能:
●该微波炉控制器能够在任意时刻取消当前工作,复位为初始状态。
●可以根据需要设置烹调时间的长短,系统最长的烹调时间为59分59秒;开始烹调后,能够显示剩余时间的多少。
●可以根据需要设置烹调最高温度值,系统最高的烹调温度为999℃;开始烹调后,能够显示系统当前温度值。
●可以控制火力大小,供选择的火力档位有高、中、低三个火力档位。
●音响效应提示直接外接一个蜂鸣器,同时用一个指示灯提示。
●显示微波炉控制器的烹调状态。
设计的目的和意义
目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。
本设计采用先进的EDA技术,利用VHDL设计语言,设计一种新型的微波炉控制器。
该控制器具有系统复位、状态控制、时间设定、火力档位选择、烹饪计时、温度控制、显示译码和音效提示等功能,基于FPGA芯片实现。
该微波炉控制系统,除实现常规的解冻、烹调、烘烤的基本功能外,还进行了创新设计,实现了微波炉的自定义设置。
本系统控制部分以FPGA芯片为核心,通过功能按键设置和手动数据输入,完成不同功能时自动以预置方案或者自定义方案加热。
其中,预制方案提供烹调、烘烤、解冻等系统烹调流程,仅供用户选择,无需设置;而自定义方案,用户根据食物含量、重量等手动设置时间、温度和选择火力等操作。
在烹饪过程中,能通过数码管显示或者指示灯提示知道食物的成熟度,可以智能控制。
该系统在功能执行时,能实现门开关检测、键盘输入扫描、温度控制、LED显示、工作状态指示、蜂鸣等。
关键技术简介
FPGA简介
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的芯片上。
VHDL语言概述
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。
归纳起来,VHDL语言主要具有以下优点:
(1)VHDL语言功能强大,设计方式多样
VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以述十分复杂的硬件电路。
同时,它还具有多层次的电路设计描述功能。
此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。
VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。
(2)VHDL语言具有强大的硬件描述能力
VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。
同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。
VHDL语言的强大描述能力还体现在它具有丰富的数据类型。
VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
(3)VHDL语言具有很强的移植能力
VHDL语言很强的移植能力主要体现在:
对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上,从一个综合器移植到另一个综合器上,或者从一个工作平台移植到另一个工作平台上去执行。
(4)VHDL语言的设计描述与器件无关
采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。
这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。
当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。
(5)VHDL语言程序易于共享和复用
VHDL语言采用基于库(library)的设计方法。
在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。
这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。
由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。
QuartusII开发系统简介
Altera公司的QuartusII开发系统以其独特的设计理念,为用户提供了一种全新的可编程逻辑器件开发系统。
它集合了Altera的全部CPLD/FPGA器件的硬件开发功能,同时也可以实现系统级设计、综合、仿真、约束等功能,还具有在线测试功能。
QuartusII7.0软件具有以下特性:
1、提供的集成物理综合技术
QuartusII软件包括唯一的FPGA供应商提供的集成物理综合优化技术。
QuartusII物理综合选项应用在编译的布局布线阶段,而与采用何种综合工具无关。
2、更快的时序逼近
QuartusII软件用户能够利用强大的时序逼近流程特性来优化设计,使其超过按键式编译结果的性能。
QuartusII软件的时序逼近流程由于其包含了内置物理综合工具以及丰富的图形分析和编辑工具,提供了强大的交互探测能力,具有极大的吸引力。
3、最易使用的设计优化技术
QuartusII软件采用按键式设计流程,满足了大部分设计的时序要求。
当设计人员进一步需要更好的编译结果时,QuartusII软件提供了一些高级工具,可以轻松地实现优化设计。
用户可以使用设计空间搜索器(DSE)采用自动技术,是寄存器到寄存器设计性能平均提高21%。
时序优化顾问工具在QuartusII软件内给设计人员提供了一个虚拟的现场应用工程师。
这个工具基于当前设计工程设置和约束,提供详细的优化设计时序性能的建议。
4、实现后期设计更改的同时保持性能
可编程逻辑设计软件的一个传统困难是;当引入后期设计更改的时候,如何保持设计的性能。
然而,QuartusII软件能够轻松地实现后期设计更改。
最新的增量式设计编辑器和编译技术给设计人员提供了布局布线后设计更改的最佳支持。
这些技术包括:
QuartusII芯片编辑器;
在LogicLock(tm)区域中实现布局布线锁定的能力;
使用渐进式编译,仅实现对部分改动的设计进行修改。
5、提供并行开发FPGA和结构化ASIC
QuartusII软件能够提供FPGA设计和结构化ASIC设计之间的无缝移植。
QuartusII软件能够编译HardCopyStratix器件,从而提供了高性能低成本器件的解决方法。
HardCopyStratix结构化ASIC提供了比StratixFPGA平均高50%的性能,进步一步加强了StratixIII器件系列65nm性能的领先性。
Altera公司的QuartusII设计软件提供完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。
QuartusII软件含有FPGA核CPLD设计所有阶段的解决方案,其设计流程包含设计输入、综合、布局布线、时序分析、仿真、编程和配置等步骤,其中的布局布线还包括功耗分析、调试、工程更改管理几个部分。
这些操作都可以利用QuartusII软件实现。
此外,QuartusII软件为设计流程的每个阶段提供了QuartusII图形用户界面、EDA工具界面以及命令行界面。
可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同的界面。
系统总体设计
微波炉的造型设计如下图:
系统总体设计方案
根据题目要求,该系统控制部分以FPGA芯片为核心,实现时间设置、温度设定、火力选择、音效响应提示、LED数码管显示等,在硬件组成上,涉及到电源供电、按键输入、LED数码管显示、指示灯提示等。
以下是该系统总体框图,如图3.1所示:
图3.1微波炉控制器系统总体框图
该控制器系统在EDA实验箱上实现的外观布局如图3.2所示。
采用CycloneII芯片EP2C35F672C8作为控制芯片,16个按键组成的4*4矩阵键盘,每个按键代表的功能如图3.2所示,8个LED作为8个状态提示指示灯,4位LED数码管显示加热倒计时,3位LED数码管显示当前温度值,1位LED数码管显示当前火力档位。
在图3.2中,各按键功能如下:
复位:
按下此键,系统进入初始状态,8个数码管上会显示“88888888”的信息,所有LED指示灯亮。
测试:
在待机状态下按下此键,则数码管和发光二极管全亮、全灭交替闪烁。
10Min1Min/100℃/High10Sec/10℃/Middle1Sec/1℃/Low:
四个键用于设定加热时间、最高温度或者选择火力档位。
当按下时间设置按键时,四个按键分别表示设置定时时间的分、秒的十位和个位的数字;当按下温度设定按键时,后面三个按键分别表示设定最高温度的百位、十位、个位;当按下火力设定按键时,后面三个按键分别表示火力档位的高、中、低三个档位。
由于在时间设置和温度设定时,四个按键初始值均为0,因此需要借助▲/+1▼/-1两个按键共同实现时间、温度的设定操作。
比如设定烹饪时间为12分59秒,只需要选择10Min键,然后按▲/+1键“1”次;选择1Min/100℃/High键,然后按▲/+1键“2”次;选择10Sec/10℃/Middle键,然后按▲/+1键“5”次;选择1Sec/1℃/Low键,然后按▲/+1键“9”次。
同理,温度设定操作如上。
3.2系统外观布局
暂停/取消:
用于暂停食物烹饪过程或者取消食物烹饪前的参数设置过程。
在食物烹饪过程中,若按下该键,则停止食物烹饪,进入待机状态;在参数设置时,若按下此键,可取消设置的参数。
火力设定:
用于设定系统火力档位。
按下该键,进入选择1Min/100℃/High10Sec/10℃/Middle1Sec/1℃/Low按键状态。
温度设定:
设置加热的温度最高值。
当按下该键时,进入调整1Min/100℃/High10Sec/10℃/Middle1Sec/1℃/Low按键状态。
时间设置:
设置系统工作时间。
按下该键,进入调整10Min1Min/100℃/High10Sec/10℃/Middle1Sec/1℃/Low▲/+1▼/-1按键状态。
烹调:
快速设定当前烹饪时间和火力到适合烹调的值。
烘烤:
快速设定当前烹饪时间和火力到适合烘烤的值。
解冻:
快速设定当前烹饪时间和火力到适合解冻的值。
开始/确认:
在选择烹调、烘烤、解冻或者设置时间、设定温度、选择火力等烹饪参数后,按下此键,开始进行烹饪。
指示灯功能如下:
●完成提示:
提示微波炉工作完成。
该灯亮时,表示烹饪完成;
●意外报警:
提示意外情况发生。
该灯亮时,表示出现意外,微波炉暂停工作;
●解冻:
该灯亮时,表示工作在解冻模式下;
●烘烤:
该灯亮时,表示工作在烘烤模式下;
●烹调:
该灯亮时,表示工作在烹调模式下;
●测试:
该灯亮时,表示微波炉处于测试状态;
●开门指示:
指示微波炉的门的状态,门开时灯亮,门关时灯灭;
●工作状态:
指示微波炉处于工作状态,工作时灯亮,不工作时灯灭;
系统功能模块描述
本系统主要由输入、控制和显示部分组成。
输入部分主要完成用户对控制功能的设置,采用按键作为输入设备。
控制部分是本系统的核心,它接收用户的输入,完成相应的控制逻辑功能,并将当前的工作状态等信息送到显示部分。
显示部分主要监视系统工作状态并提示用户进行控制操作。
以下是该系统功能模块图,如图3.3所示
图3.3系统功能模块图
1.1.1.输入模块
输入部分一般采用键盘或旋钮作为输入,由于实验室已有设备限制,本系统采用键盘进行输入设置,即由一个4*4矩阵键盘实现数据输入控制。
该矩阵键盘上16个按键分别是:
10Min1Min/100℃/High10Sec/10℃/Middle1Sec/1℃/Low▲/+1复位暂停/取消测试▼/-1火力设定温度设定时间设置烹调烘烤解冻开始/确认。
输入模块包括时钟脉冲电路、键盘扫描电路、消枓同步电路和键盘译码电路,通过该模块将扫描得到的按键值送到控制模块。
1.1.2.控制模块
控制部分作为整个微波炉控制器系统的核心,它采用FPGA芯片作为主控核心,完成许多复杂的控制和数据处理任务。
它通过输入模块提供的按键输入实现数据信息装载处理,并将处理结果通过显示模块显示出来。
其涉及到数据的装载、状态转换控制、烹饪计时、温度控制、火力控制、音响效应提示等。
1.1.3.显示模块
显示部分采用七段数码管和发光二极管来实现。
由于数码管显示信息较少,一些信息用数码管显示不够直观,因此本系统在采用数码管显示的同时,还用发光二极管作为辅助显示。
其中,用七段数码管作为时间、温度、火力大小显示,用发光二极管作为状态提示显示。
具体设计时,采用4位LED数码管显示加热倒计时,3位LED数码管显示当前温度值,1位LED数码管显示当前火力档位。
8个状态提示指示灯分别表示:
工作状态、开门指示、测试、烹调、烘烤、解冻、意外报警、完成提示。
系统的工作流程
微波炉控制器系统的工作流程为:
上电后,系统首先处于一种复位状态,其各电路模块均处于初始状态。
此时,8个数码管上会显示“88888888”的信息,所有指示灯亮。
按TEST键,数码管和发光二极管全亮、全灭交替闪烁,可以测试数码管和指示灯工作是否正常。
系统工作时,首先通过键盘输入数据,比如,按烹调、烘烤、解冻键选择系统预置方案,或者按时间设置键设置时间,按温度设定键设置温度,按火力选择键选择火力,结合10Min、1Min/100℃/High、10Sec/10℃/Middle、1Sec/1℃/Low按键进行自定义方案设置,设置结束以后,表示数据装载完成,按START键后系统进入烹调状态。
在烹饪过程中,可以按暂停/取消键暂停烹饪,或者重新设置时间、温度、火力。
烹饪结束后,系统会发出音效提示,同时,系统自动进入复位状态。
根据系统工作流程,绘制主程序流程图,如图3.4所示:
图3.4系统工作流程图
系统详细设计
输入模块设计
输入模块采用4*4矩阵键盘作为输入设备,实现数据输入控制。
矩阵键盘是一种常见的输入装置,在日常生活中,矩阵键盘在计算机、电话、手机、微波炉等格式电子产品上已经被广泛应用,计算机键盘通常采用行列扫描法来确定所按下键的行列位置。
由于键盘按键是一种机械开关,所以设计其控制电路时,需要涉及到键盘扫描、键盘译码,光靠矩阵键盘是无法完成按键输入工作的。
其中键盘扫描又涉及到时序产生、按键扫描和消除抖动。
1.1.4.键盘扫描
键盘处理的重要环节是时序产生、键盘扫描和按键消抖,以下分别针对所涉及到的电路进行描述。
1、时序产生电路
本时序产生电路中使用了三种不同频率的工作脉冲波形:
系统时钟脉冲、扫描键盘时钟、键盘消抖动时钟。
分别定义如下:
CLK:
INSTD_LOGIC;--系统时钟脉冲
CLK_SCAN:
OUTSTD_LOGIC;--扫描键盘时钟
CLK_DEB:
OUTSTD_LOGIC--键盘消抖动时钟
一般消抖动信号时钟频率必须比其它的电路使用的脉冲信号频率更高,一般消抖动频率是键盘扫描或LED频率的4