ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:235.96KB ,
资源ID:835412      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-835412.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL微波炉控制器设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

VHDL微波炉控制器设计.doc

1、目录一、绪论3二、 关键技术简介32.1 FPGA简介32.2 VHDL语言概述42.3 ALTIUM DESIGNER简介5三、微波炉定时控制器的设计方案分析53.1 系统设计的要求53.2 系统总体功能描述63.3 各模块的功能实现63.3.1 输入模块63.3.2 状态控制模块73.3.3 显示模块7四、系统详细设计84.1控制模块84.1.1状态转换控制84.1.2数据装载104.1.3 烹饪计时114.1.4 控制模块的实现12五、系统仿真125.1状态控制器仿真125.2 数据装载器的仿真135.3 烹饪计时器的仿真14六、 结论15一、绪论随着人民生活水平的提高,微波炉开始进人越

2、来越多的家庭,它给人们的生活 带来了极大的方便。微波炉由 2450MHz 的超高频来加热食物。它省时、省电、方便 和卫生。作为现代的烹饪工具,微波炉的控制器体现着它的重要性能指标。目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。本文采用先进的EDA技术,利用ALTIUM DESIGNER工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。该系统具有系统复位、时间设定、烹饪计时等功能,在 FPGA 上实现。二、 关键技术简介2.1 FPGA简介 FPGA(FieldProgrammable GateArray),即现场可编程门阵列,它是在 PAL、 GAL、CPL

3、D 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路 (ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了 原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如 AND、OR、XOR、 NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的 FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的 记忆块。系统设

4、计师可以根据需要通过可编辑的连接把 FPGA 内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品 FPGA 的逻辑块和连 接可以按照设计者而改变,所以 FPGA 可以完成所需要的逻辑功能。FPGA一般来说比 ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。2.2 VHDL语言概述VHDL

5、 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL 被 IEEE 和美国国防部确认为标准 硬件描述语言。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机 高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对

6、一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实 体分成内外部分的概念是 VHDL 系统设计的基本点。 VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有 很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点: (1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构, 只需采用简单明确的 VHDL 语言程序就可以 述十分复杂的硬件电路。同时, 它还具有多层次的电路设计描述功能。此外,VHDL 语 言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言 所不能

7、比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支 持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。 (2)VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描 述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以 采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可 以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的 数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度

8、。 (3)VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在:对于同一个硬件电路的 VHDL 语言 描述,它可以从一个模拟器移植到另一个模拟器上,从一个综合器移植到另一个综合器上,或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的 器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑 其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器 件结构来实现。 (5)VHDL 语言程序易于共享和复用 VHDL 语言采用

9、基于库 (library)的设计方法。在设计过程中,设计人员可以建 立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言, 因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。2.3 ALTIUM DESIGNER简介Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系

10、统,主要运行在Windows XP操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。 由于Al

11、tium Designer 在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。三、微波炉定时控制器的设计方案分析3.1 系统设计的要求现需设计一个微波炉控制器,通过该控制器再配以4个七段数码二极管完成微波炉的定时及信息显示。各信号的功能及要求如下:CLK是秒时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST为测试信号,高电平有效,用于测试4个七段数码二极管工作是否正常。START为开始加热信号,高电平有效,SET_UP信号为定时设

12、置信号,高电平时可以设置定时时间,DATA为定时的时间,COOK为加热输出,另外四个输出分别表示显示的定时时间的分和秒。3.2 系统总体功能描述各信号功能及要求如下:CLK是秒时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST信号是测试信号,高电平有效,用于测试七段数码管工作是否正常。SET_UP是烹调时间设置控制信号,高电平有效。DATA1是一个16位总线输入信号,输入所设置的时间长短,它由高到低分为4组,每一组是BCD码输入,分别表示分、秒十位、个位的数字,如12分59秒。START是烹调开始的控制信号,高电平有效。COOK是烹调

13、进行信号,外接用于控制烹调的继电器开关,高电平时表明烹调已经开始或正在进行,低电平表示烹调结束或没有进行。MIN_H,MIN_L,SEC_H,SEC_L是四组七位总线信号,通过LCD动态的显示完成烹调所剩的时间及测试状态信息,烹调完毕的状态信息。该微波炉控制器的具体功能要求如下:上电后系统首先处于复位状态。在工作是首先按时间设置键设置烹调时间,此时系统输入DATA1的数据作为烹调所需的时间,然后系统自动回到复位状态,同时4个七段数码管显示时间信息。在按START键后系统进入烹调状态。COOK信号开始为高电平,此时4个七段数码管每隔一秒钟变化一次,用以刷新还剩剩余多少时间结束烹调。烹调结束后,C

14、OOK信号变为低电平,同时LCD显示“0000”的信息,同时蜂鸣器发出提示音,然后系统回到复位状态。系统可以通过按RESET键随时回到复位状态。在复位状态下,按TEST键在4个数码管上会显示“8888”的信息,它可以测试LCD工作是否正常。3.3 各模块的功能实现本系统主要由输入、控制和显示部分组成。输入部分主要完成用户对控制功能的设置,采用按键作为输入设备。控制部分是本系统的核心,它接收用户的输入,完成相应的控制逻辑功能,并将当前的工作状态等信息送到显示部分。显示部分主要监视系统工作状态并提示用户进行控制操作。 3.3.1 输入模块本系统采 用键盘进行输入设置,即由一个 4*4 矩阵键盘实现

15、数据输入控制。该矩阵键盘上16个按键分别是: 输入模块包括时钟脉冲电路、键盘扫描电路、消枓同步电 路和键盘译码电路,通过该模块将扫描得到的按键值送到控制模块。3.3.2 状态控制模块控制部分作为整个微波炉控制器系统的核心,它采用 FPGA 芯片作为主控核心, 完成许多复杂的控制和数据处理任务。它通过输入模块提供的按键输入实现数据信息装载处理,并将处理结果通过显示模块显示出来。其涉及到数据的装载、状态转换控制、烹饪计时。3.3.3 显示模块显示部分采用LCD和LED来实现。其中,用LCD作为时间、状态显示,用发光二极管作为火力大小显示。具体设计时,采用 LCD进行8位显示,高四位显示烹饪时间,低

16、四位显示当前的烹饪状态。3个LED显示火力的大小,其中第一个亮表示小火,第一和第二个亮表示中火,3个全亮表示大火。3.4 系统的工作流程YYNN测试结束时间到否START是否闭合火力设定时间设定选择解冻、蒸煮,烘烤系统预置方案烹饪数据装载完成自定义方案数据装载系统复位、初始化开始 四、系统详细设计4.1控制模块 控制模块是整个微波炉控制器系统的核心,完成许多复杂的控制和数据处理任务,它通过输入模块提供的按键输入实现数据信息装载处理,控制显示模块显示相应的信息。 控制模块采FPGA芯片作为主控芯片,其涉及到数据的装载、状态控制转换、 烹饪计时等。其中,状态控制转换子模块,其功能是控制微波炉工作过

17、程中的状态转换,并发出相关控制信号。数据装载子模块,其功能是根据按键信号设置定时时间、最高温度、火力档位,烹调属性设置以及烹调数据信息装载。烹饪计时子模块,其功能是对时钟进行减法计数,提供烹调完成时的状态信号。音效控制子模块,其功能是控制微波炉工作时的音效提示,这里直接外接一个蜂鸣器实现该功能。 其功能子模块图如下: 控制模块 状态转换控制子模块数据装载子模块烹饪计时子模块 4.1.1状态转换控制根据微波炉工作流程的描述,分析状态转换条件及输出信号,可以得到控制模块的状态转换图 下面,根据上述状态转换图和 ASM 图进行程序设计,在编写程序代码实现状态转换控制子模块过程时,首先,如果 RESE

18、T=1,则系统复位,当前状态为初始状态,当同步时钟脉冲,当前状态为下一状态,用程序代码表示如下: IF RESET=1 THEN CURR_STATE=DEFAULT; ELSIF CLKEVENT AND CLK=1 THEN CURR_STATE=NEXT_STATE; END IF;当当前状态为初始状态时, LOAD_LED=0; LOAD_DONE=0; LOAD_SET=0; COOKLOAD_LED=1;COOKLOAD_SET=1;COOKLOAD_DONE=1;COOK IF TEST=1 THEN NEXT_STATE=LED_TEST; LOAD_LED=1; ELSIF

19、SETUP=1 THEN NEXT_STATE=SETTING; LOAD_SET=1; ELSIF START=1 THEN NEXT_STATE=COUNTER; COOK IF DONE=1 THEN NEXT_STATE=FINISHED; LOAD_DONE=1; ELSE NEXT_STATE=COUNTER; COOK=1;END IF;生成的控制模块相应的电路符号:4.1.2数据装载数据装载器,它本质上就是一个三选一的数据选择器。根据其应完成的逻辑功能,本设计可采用一个进程来完成,但由于三个被选择的数据只有一个来自输入口,因此另两个被选择的数据则通过进程的说明部分定义两个常数来

20、产生。由于装入测试的数据可以用4个8作为显示测试信息数据,经过八个译码器译码后显示测试信息编码。因此,该常数应是8个分段的4位 BCD 码,即“1000100010001000”,同理,DONE 的 BCD 码分别为“0000000000000000”以显示DONE的常数 “0000”。通过上述分析,该模块的主要程序可实现如下:PROCESS(DATA1,LOAD_LED,LOAD_SET,LOAD_DONE) IS CONSTANTTEST8: STD_LOGIC_VECTOR(15 DOWNTO 0):=X8888; CONSTANT COOKED:STD_LOGIC_VECTOR(15

21、DOWNTO 0):=x0000; VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOAD DATA2 DATA2 DATA2 NULL; END CASE; END PROCESS; 完成 VHDL 源程序的输入,编译、运行,生成相应的电路符号: 4.1.3 烹饪计时烹饪计时器JSQ为减计数计数器,其最大计时时间为59:59,因此可以编写一个60进制计数器来实现。由所学知识可知,计数的功能是累计输入脉冲的个数,实现计数功能的数字电路即计数器,被计数的脉冲可以是周期性脉冲,也可以是非周期性脉冲,通常加在计数器的时钟脉冲输入端,作为计数器的时

22、钟脉冲。计数器的代码如下:IF(CLKEVENT AND CLK=1)THEN IF(TIME1(3 DOWNTO 0)=0000)THEN TIME1(3 DOWNTO 0)=1001; IF(TIME1(7 DOWNTO 4)=0000)THEN TIME1(7 DOWNTO 4)=0101; IF(TIME1(11 DOWNTO 8)=0000)THEN TIME1(11 DOWNTO 8)=1001; IF(TIME1(15 DOWNTO 12)=0000)THEN TIME1(15 DOWNTO 12)=0101; ELSE TIME1(15 DOWNTO 12)=TIME1(15

23、DOWNTO 12)-1; END IF; ELSE TIME1(11 DOWNTO 8)=TIME1(11 DOWNTO 8)-1; END IF; ELSE TIME1(7 DOWNTO 4)=TIME1(7 DOWNTO 4)-1; END IF; ELSE TIME1(3 DOWNTO 0)=TIME1(3 DOWNTO 0)-1; END IF; END IF;生成相应的电路符号:其中TIME_OUT3.0表示秒的个位,TIME_OUT7.4表示秒的十位,TIME_OUT11.8表示分的个位,TIME_OUT15.12表示分的十位。输入信号 LOAD 为高电平时完成信号的载入;COO

24、K 信号为高电平时, 在每个时钟周期的上升沿进行减法计数。输出信号 DONE 表示烹调时间到。4.1.4 控制模块的实现综合上述分析,对该控制模块进行完整设计,连线图如下: 其中,输入信号 CLK 为时钟输入信号,时钟上升沿敏感;TEST 为数码显示管 测试信号,高电平有效,用于测试显示管是否正常工作;SETUP 为烹调时间设置时间,高电平有效时允许设置烹调时间;DATAIN为数据输入信号,用于设置烹调时间的长短;START为烹调开始的控制信号,高电平有效时开始烹调;RESET为复位信号,高电平有效时系统复位。 DATAOUT3.0,DATAOUT7.4,DATA_OUT11.8,DATAOU

25、T15.12分别表示秒个位、秒十位、分个位、分十位。他们分别接 8位LCD的搞死为,动态地显示完成烹调所剩的时间以及测试状态信息“8888”。五、系统仿真5.1状态控制器仿真完成状态转换控制器 KZQ 子模块 VHDL 源程序文件输入后,保存文件,对文件 进行编译,然后编写测试平台文件进行仿真: 其中,输入信号为 RESET、SETUP、START、TEST、CLK、DONE,输出信号为 COOK、LOAD_TEST、LOAD_SET、LOAD_DONE。 控制器根据输入信号和自身当时所处的状态完成状态的转换和输出相应的控制信号。LOAD_SET 指示数据装载器装入设置的烹调时间数据;LOAD

26、_DONE指示转载起装入烹调完毕的状态信息“0000”的显示驱动信息数据;LOAD_TEST指示装载器装入用于测试的数据“8888以显示驱动信息数据;COOK指示烹调正在进行之中,并提示计时器进行减计数。仿真结果如图:分析该仿真文件,可以看到,当测试信号TEST为高电平有效时,测试输出信号 LOAD_TEST为高电平;否则,当时间设置信号SETUP为高电平时,对应的指示信号 LOAD_SET输出高电平;当烹饪开始信号START信号为高电平时,对应输出 COOK为高电平;当复位信号RESET为高电平时,系统复位,恢复初始状态。仿真结果符合模块设计的要求。5.2 数据装载器的仿真完成数据装载器子模

27、块VHDL源程序文件输入后,保存文件,对文件进行编译,编写测试平台文件进行仿真:其中,输入信号LOAD_DONE为高电平时,输出烹调完毕的状态信息数据;LOAD_SET 为高电平时,输出设置的烹调时间数据;LOAD_TEST 为高电平时,输出测试数据。输出信号LOAD用于指示电路正处于上述三路信号模式中的哪一种,同时提示计数器将处于数据装入状态。 仿真结果如图:分析该模块仿真结果,由于数据装载器本质上即多了选择译码电路。可知,当 LOAD_SET、LOAD_TEST、LOAD_DONE三路信号中有且仅有一路信号电平有效时,装载器相应的值作为输出。5.3 烹饪计时器的仿真完成计时器子模块VHDL

28、源程序文件输入后,保存文件,对文件进行编译,编写测试平台文件进行仿真:其中,输入信号 LOAD 为高电平时完成信号的载入;COOK 信号为高电平时, 在每个时钟周期的上升沿进行减法计数。输出信号 DONE 表示烹调时间到。仿真结果如下图:由以上仿真结果可以看到,该 JSQ 模块实现了烹调计时的定时作用六、 结论该课题是利用Altium公司的ALTIUM DESIGNER开发环境和软件,进行VHDL程序设计,然后进行仿真,调试,以Altium NB1实验箱实验系统为硬件平台,实现了一个简单的微波炉控制器系统的设计。在整个毕业设计过程中,进行了系统的总体设计,硬件设备的选用,软件和开发环境的安装,VHDL程序设计与仿真。设计的重点主要在系统的规划以及程序的设计与调试上,要做到键盘与LCD, LED 灯的一体化,需要在键位设置时进行准确的设计,通过键盘的扫描,消抖和译码,达到一键一码的目的,做到功能的完善。设计的难点主要在功能控制上,数据和控制信号较多,状态之间的转化也较为复杂,在设计中带来了一些困难。另外在仿真分析上,因为需要测试的结果很多,有些结果无法预料,无法在仿真中看到。本设计也存在一定的不足。由于本身能力和实验器材的限制,无法在系统中建立完善的体制,只是实现了一个微波炉控制器的基本功能。比如像存储功能,就没有在系统中考虑到,这些都有待以后的继续提高和完善。

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922