利用FPGA简单设计微波炉控制器_第1页
利用FPGA简单设计微波炉控制器_第2页
利用FPGA简单设计微波炉控制器_第3页
利用FPGA简单设计微波炉控制器_第4页
利用FPGA简单设计微波炉控制器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、1摘 要本文介绍了应用 FPGA 芯片和硬件描述语言(VHDL)设计微波炉控制器的方法。系统使用VHDL 编程实现各底层模块的功能,顶层的设计采用图形输入完成,主要阐述模块化设计的思想和状态图的描述方法,以及他们在硬件描述语言中的应用,微波炉控制器系统是一个实用型的系统,系统不仅具有操作简单的功能,而且实用性能非常出色,既能节约时间又能节约能源。主要有以下几个模块:输入模块、控制模块和显示模块。输入模块主要实现按键扫描和键盘译码,控制模块主要包括数据装载、计时、温度控制,显示模块涉及到显示译码和指示灯的闪烁。经过对系统做需求分析,验证了设计方案的可行性及实现方法的有效性,基本实现了系统的要求。

2、关键词:关键词:FPGA;VHDL;微波炉;状态图;定时器目 录1. 绪论.31.1 设计的主要目的.32主要设计概述.32.1系统总体方案设计.33. 系统模块设计.43.1输入模块设计.4键盘扫描4键盘译码53.2 控制模块设计.6数据装载 7计时设置7温度控制 93.3 显示模块设计.124.结论.14参考文献.14附系统整体结构图.1521.1 设计的主要目的目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。本设计采用先进的 EDA 技术,利用 VHDL 设计语言,设计一种新型的微波炉控制器。该控制器具有系统复位、状态控制、时间设定、火力档位选择、烹饪计时、温度控制

3、、显示译码和音效提示功能,基于 FPGA 芯片实现。本系统控制部分以 FPGA 芯片为核心,通过功能按键设置和手动数据输入,完成不同功能时自动以预置方案或者自定义方案加热。其中,预制方案提供烹调、烘烤、解冻等系统烹调流程,仅供用户选择,无需设置;而自定义方案,用户根据食物含量、重量等手动设置时间、温度和选择火力等操作。在烹饪过程中,能通过数码管显示或者指示灯提示知道食物的成熟度,可以智能控制。该系统在功能执行时,能实现门开关检测、键盘输入扫描、温度控制、LED 显示、工作状态指示、蜂鸣。 2.1 系统总体方案设计根据题目要求,该系统控制部分以 FPGA 芯片为核心,实现时间设置、温度设定、火力

4、选择、音效响应提示、LED 数码管显示等,在硬件组成上,涉及到电源供电、按键输入、LED 数码管显示、指示灯提示等。以下是该系统总体框图,如图下图所示:本系统主要由输入、控制和显示部分组成。输入部分主要完成用户对控制功能的设3置,采用按键作为输入设备。控制部分是本系统的核心,它接收用户的输入,完成相应的控制逻辑功能,并将当前的工作状态等信息送到显示部分。显示部分主要监视系统工作状态并提示用户进行控制操作。以下是该系统功能模块图,如图所示3. 系统模块设计3.1 输入模块设计输入模块采用 4*4 矩阵键盘作为输入设备,实现数据输入控制。矩阵键盘是一种常见的输入装置,在日常生活中,矩阵键盘在计算机

5、、电话、手机、微波炉等格式电子产品上已经被广泛应用,计算机键盘通常采用行列扫描法来确定所按下键的行列位置。由于键盘按键是一种机械开关,所以设计其控制电路时,需要涉及到键盘扫描、键盘译码,光靠矩阵键盘是无法完成按键输入工作的。 键盘扫描键盘扫描键盘处理的重要环节是时序产生、键盘扫描和按键消抖,以下分别针对所涉及到的电路进行描述。1、时序产生电路、时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲、扫描键盘时钟、键盘消抖动时钟。分别定义如下:4CLK: IN STD_LOGIC; -系统时钟脉冲CLK_SCAN : OUT STD_LOGIC; -扫描键盘时钟 CLK_DE

6、B : OUT STD_LOGIC -键盘消抖动时钟一般消抖动信号时钟频率必须比其它的电路使用的脉冲信号频率更高,一般消抖动频率是键盘扫描或 LED 频率的 4 倍或更高。这里系统时钟频率取 50MHZ,扫描时钟频率取100KHZ,消抖时钟频率取 200KHZ。生成的电路符号如下,图所示:CLKCLK_SCANCLK_DEBclk_geninst2、按键扫描电路、按键扫描电路所谓行列式键盘扫描,即用带有 I/O 口的线组成行列式结构,按键设置在行列的交点上。行列式矩阵键盘原理:按键设置在行列线的交叉点,行列线分别连接到按键的两端。列线通过上拉电阻截止+5V 电压,即列线的输出被定位到高电平状态

7、;判断有无按键按下时通过行线送出扫描信号,然后列线读取状态得到。其方法是依次给行线送低电平,检查列线的输入。若列线全为高电平,则代表所在行无按键按下,若列线出现低电平,则低电平所在的行和出现低电平的列的交叉点处有按键 按下。行扫描信号为 KEY_DRV3.0,列输入信号为 KEY_IN3.0键盘译码键盘译码通过一个译码程序,将键盘扫描后的值根据需要设定成相应的按键。程序设计如下: key_decode : PROCESS(SC_CLK) BEGIN Z K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE

8、 K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE=K_VALUE; -默认情况为K_VALUE 保持原来状态,相当于实现锁存器 END CASE;生成相应的电路符号,如图所示:SC_CLKKEY_DRV3.0KEY_IN3.0OUT_CLKOUT_DATA15.0key_decodeinst13.2 控制模块设计控制模块是整个微波炉控制器系统的核心,完成许多复杂的控制和数据处理任务,它通过输入模块提供的按键输入实现数据信息装载处理,控制显示模块显示相应的信息。控制模块采用 FPGA 芯片作为主控芯片,其涉及到数据的

9、装载、状态控制转换、烹饪计时、温度控制、火力控制、音效提示等。其中,状态控制转换子模块,其功能是控制微波炉工作过程中的状态转换,并发出相关控制信号。数据装载子模块,其功能是根据按键信号设置定时时间、最高温度、火力档位,烹调属性设置以及烹调数据信息装载。烹饪计时子模块,其功能是对时钟进行减法计数,提供烹调完成时的状态信号。温度控制子模块,其功能是在食物烹饪过程中进行温度测定和控制,它同时实现火力控制。音效控制子模块,其功能是控制微波炉工作时的音效提示,这里直接外接一个蜂鸣器实现该功能。其功能子模块图如下,图所示:控控制制模模块块Control数数据据装装载载子子模模块块ZZQ烹烹饪饪计计时时子子

10、模模块块JSQ温温度度控控制制子子模模块块KWQ音音效效控控制制子子模模块块ALARM状状态态转转换换控控制制子子模模块块KZQ6 数据装载数据装载数据装载器 ZZQ,它本质上就是一个三选一的数据选择器。根据其应完成的逻辑功能,本设计可采用一个进程来完成,但由于三个被选择的数据只有一个来自输入口,因此另两个被选择的数据则通过进程的说明部分定义两个常数来产生。由于 ZZQ 装入测试的数据可以用 8 个 8 作为显示驱动信息数据,因此,将该用于显示的常数 ALLS 分解成 8 个“8”,其中 4 个“8”作为时间显示驱动信息,3 个“8”作为温度显示驱动信息,1 个“8”作为火力档位显示驱动信息,

11、分别经过八个译码器译码后显示驱动信息编码。因此,该常数应是 8 个分段的 4 位 BCD 码,即“1000 1000 1000 1000”和“1000 1000 1000 1000” ,同理,DONE 的 BCD 码分别为“1010 1011 1100 1101”以显示 donE 的常数 DONE。通过上述分析,该模块的主要程序可实现如下: PROCESS(DATA1,LD_TEST,LD_CLK,LD_DONE) IS VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOAD DATA2 DATA2 DATA2 NULL; END CASE

12、; END PROCESS;完成 VHDL 源程序的输入,编译、运行,生成相应的电路符号,如下图所示:DATA115.0LD_TESTLD_CLKLD_DONEDATA215.0LOADALARMZZQinst5 计时设置计时设置计时器 JSQ 为减计数计数器,其最大计时时间为 59:59,因此可用两个减计数十进制计数7器 DCNT10 和两个减计数六进制计数器 DCNT6 级联构成。其中,两个十进制的减法计数器用于分、秒的个位减法计数,两个六进制的减法计数器用于分、秒的十位减法计数。由所学知识可知,计数的功能是累计输入脉冲的个数,实现计数功能的数字电路即计数器,被计数的脉冲可以是周期性脉冲,

13、也可以是非周期性脉冲,通常加在计数器的时钟脉冲输入端,作为计数器的时钟脉冲。因此,根据减法计数器随计数脉冲的不断输入而递减计数,在具体设计该十进制减法计数器和六进制减法计数器过程中,可以当计数值减到 0 时,其计数器的数值自动转为定时设定时间,在十进制计数器的设计过程中,可表达为: IF CQI=0000 THEN CQI=1001; ELSE CQI=CQI-1;同理,六进制计数器的设计表达式为: IF CQI=0000 THEN CQI=0101; ELSE CQI=(cout-6) AND tout=(cout+5) THEN -设定值上下 5 度的范围内开始计时 enout=1; EL

14、SE enout=0; END IF;- 时钟定时部分 PROCESS (CLK ,clearing , enin ) VARIABLE s , m : INTEGER RANGE 0 TO 60; VARIABLE e : INTEGER RANGE 0 TO 24; VARIABLE d : BIT; BEGIN d:=clearing XOR enin; IF (d=0) THEN s:=0; m:=0 e:=0; ELSIF (CLKEVENT AND CLK=1) THEN s:=s+1; IF (s=10) THEN s:=0;m:=m+1; IF (m=10) THEN m:=0

15、;e:=e+1; IF (e=24) THEN e:=0; hourout = e;-控制部分BEGIN IF (tin(cin+5) THEN -cin 是参数设定值 temp=1; ELSE temp=0; END IF;11 IF (CLKEVENT AND CLK=1) THEN control_bcdhourin) THEN ALARM=1; ELSE ALARMDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS;生成电路符

16、号,如图所示:13AIN43.0DOUT76.0YMQinst44.结论本文是利用 ALTERA 公司的 QUARTUS 开发环境和软件,进行 VHDL 程序设计,然后进行仿真,调试,实现了一个简单的微波炉控制器系统的设计。设计的重点主要在系统的规划以及程序的设计与调试上,要做到键盘与数码管,LED 灯的一体化,需要在键位设置时进行准确的设计,通过键盘的扫描,和译码,达 到一键一码的目的,做到功能的完善。设计的难点主要在功能控制上,数据和控制信号较多,状态之间的转化也较为复杂,在设计中带来了一些困难。本设计也存在一定的不足。由于本身能力和实验器材的限制,无法在系统中建立完善的体制,只是实现了一个微波炉控制器的基本功能。参考文献1 李华MCS- 51 系列单片机使用接口技术北京:北京航空航天大学出版社,19902 黄继昌传感器工作原理及应用实例北京:人民邮电出版社,19983 纪宗南单片机外围器件实用手册输入通道器件分册北京:北京航空航天大学出版社,19984 阎石数字电子技术基础北京:高等教育出版社,20045 张志刚FPGA

温馨提示

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

评论

0/150

提交评论