可编程微波炉控制器的设计

2011-10-06 23:17:16来源: 互联网
   

摘  要:  基于可编程逻辑器件EPM240T100C5,使用硬件描述语言VHDL,采用“自顶向下”的设计方法,编写一个微波炉控制器的芯片。介绍了微波炉控制器的设计思路与模块划分,应用Quartus II软件对每个模块和主程序分别进行了调试,并硬件下载到开发板上进行了模拟调试。
关键词: 复杂可编程逻辑器件; 现场可编程门阵列; 高速集成电路描述语言; Quartus II软件

 随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也日益依赖于EDA技术的应用。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下并应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。
1 系统硬件设计框图
    本系统设计采用Altera MAXⅡ系列性价比较高的EPM240T100C5可编程逻辑器件作为信号处理及系统控制核心,完成包括分频、计数、显示等一系列工作,结合所需的外围模块,组成一个最小系统,完成按键控制、LED显示、音频提示。总体设计如图1所示。

    利用CPLD/FPGA可编程的特点,使电路大为简化,利用软件Quartus II和硬件描述语言VHDL对数字系统进行编程、调试和仿真,使得设计、调试方便便捷,充分地发挥了CPLD/FPGA的优势及特点。
2 微波炉控制器的整体设计方案
 根据该微波炉的功能设计要求,软件设计可由:分频器、状态控制器、 数据装载器大、计时器、显示器、微波加热信号锁存器6个模块组成。各模块之间的关系如图2所示。

2.1 分频器fredivn的设计
 在接口电路中,时钟信号的作用至关重要,一般CPLD的外部时钟信号可达到几十MHz,但是由于一些接口电路的特性所致,这样高频率的时钟不适合电路工作,所以应该引入时钟分频电路产生适合接口的工作频率。分频模块的设计用于产生合适的扫描时钟、计数时钟和闪烁时钟,其外部接口如图3所示。时钟发生器的输入是全局时钟clk,是从50 MHz的石英晶振得到的信号。输出信号是扫描时钟clk 1 kHz、clk 5 Hz和clk 1 Hz。
    部分关键程序如下:
------1 kHz分频---------------
process(clk)
variable count0:integer range 0 to 24999;
begin
if clk\'event and clk=\'1\' then
    if count0=24999 then
           clk0<=not clk0;
           count0:=0;
           else count0:=count0+1;
    end if;
end if;
clk1kHz<=clk0;
end process;
------5 Hz分频---------------
process(clk0)
variable count1:integer range 0 to 99;
begin
if clk0\'event and clk0=\'1\' then
     if count1=99 then clk1<=not clk1;count1:=0;
           else count1:=count1+1;
     end if;
end if;
clk5 Hz<=clk1;
end process;
-----1 Hz分频-----------------
process(clk0)
variable count2:integer range  0 to 499;
begin
if clk0′event and clk0=′1′ then
     if count2=499 then clk2<=not clk2;count2:=0;
           else count2:=count2+1;
        end if;
end if;
clk1Hz<=clk2;
end process;
end;

2.2 状态控制器state的设计
 通常状态机是控制单元的主体,它接收外部信号及数据单元产生的状态信息,产生控制信号。微波炉状态控制器state的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息,因此可用一个状态机实现。通过对微波炉工作过程中的转换条件及输出信号进行分析,可得到其状态转换图如图4所示。

    该状态机有8个状态。当状态机的reset信号为0时,状态机复位到idle状态,当reset信号为1时,状态机处于工作状态或待机状态。状态机的转换关系是:当前状态是idle状态,在时钟上升沿到来时,如果输入信号test=0或stall_1=0或stall_2=0或stall_3=0,则转入下一状态tap1或tap2或tap3或tap4, 否则仍停留在idle状态,实现了微波炉上电复位时处于待机状态。当test=0时,状态机转入测试状态tap1。当stall_1=0或stall_2=0或stall_3=0时,状态机转入档位状态tap2或tap3或tap4其中一个状态后,而这三个状态之间也可以相互转换。在每一个档位状态内,同时也嵌入了计数状态tap5,只要设置好输入时间,如果start=0则可以进入计时状态,否则仍停留在其中状态之一内。当处于计时状态时,如果stop=0,则转入停止状态tap6,使微波炉处于停止工作状态,而停止状态tap6与计时状态tap5之间也是可以相互转换的,当start=0,则转回计时工作状态,否则仍停留在停止状态tap6。当计时完毕,则由计数器输出done=1信号,从计时工作状态tap5转换到结束状态tap7。不管处于哪个状态,只要reset为0,则状态机会立刻转换为初始状态idle。
 状态机state的外部接口如图5所示。

2.3 数据装载器data的设计
 数据装载模块的控制信号基本是从状态机输出的信号中得到的。其功能主要是实现时间数据的输入、微波炉控制器当前状态数据的输出。当处于复位状态时数据“0000 0”将会送到寄存器内,寄存器再把数据送到数据输出端口;在测试状态时数据“8888 8”会被送到寄存器内,寄存器再把数据送到数据输出端口;在结束状态时数据为“donE 0”会被送到寄存器内,寄存器再把数据送到数据输出端口。在启动档位时,档位数据也会被输入到寄存器中,这时就可以输入时间数据,时间数据的输入有4位——分高位min_h、分低位min_l、秒高位sec_h、秒低位sec_l,每一个时间数据的输入也会送到寄存器内,再送到数据的输出端口。其中bn和sn是闪烁使能信号的输出。数据装载器的输入与输出端口如图6所示。

[1] [2]

关键字:状态机

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/1006/article_2589.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved