《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 可編程微波爐控制器的設計
可編程微波爐控制器的設計
來源:微型機與應用2011年第12期
龔蘭芳, 梁文禎
(廣東水利電力職業技術學院, 廣東 廣州 510630)
摘要: 基于可編程邏輯器件EPM240T100C5,使用硬件描述語言VHDL,采用“自頂向下”的設計方法,編寫一個微波爐控制器的芯片。介紹了微波爐控制器的設計思路與模塊劃分,應用Quartus II軟件對每個模塊和主程序分別進行了調試,并硬件下載到開發板上進行了模擬調試。
Abstract:
Key words :

摘  要:  基于可編程邏輯器件EPM240T100C5,使用硬件描述語言VHDL,采用“自頂向下”的設計方法,編寫一個微波爐控制器的芯片。介紹了微波爐控制器的設計思路與模塊劃分,應用Quartus II軟件對每個模塊和主程序分別進行了調試,并硬件下載到開發板上進行了模擬調試。
關鍵詞: 復雜可編程邏輯器件; 現場可編程門陣列; 高速集成電路描述語言; Quartus II軟件

 隨著大規模集成電路技術和計算機技術的不斷發展,在涉及通信、國防、航天、醫學、工業自動化、計算機應用、儀器儀表等領域的電子系統設計工作中,EDA技術的含量正以驚人的速度上升;電子類的高新技術項目的開發也日益依賴于EDA技術的應用。設計者的工作僅限于利用軟件的方式來完成對系統硬件功能的描述,在EDA工具的幫助下并應用相應的FPGA/CPLD器件,就可以得到最后的設計結果。盡管目標系統是硬件,但整個設計和修改過程如同完成軟件設計一樣方便和高效,從而使產品的開發周期大為縮短、性能價格比大幅提高。不言而喻,EDA技術將迅速成為電子設計領域中的極其重要的組成部分。
1 系統硬件設計框圖
    本系統設計采用Altera MAXⅡ系列性價比較高的EPM240T100C5可編程邏輯器件作為信號處理及系統控制核心,完成包括分頻、計數、顯示等一系列工作,結合所需的外圍模塊,組成一個最小系統,完成按鍵控制、LED顯示、音頻提示??傮w設計如圖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所示。

2.4 計數器counter的設計
    根據設計要求,counter為減數計數器,其最大計時99:59。因此可以用3個十進制計數器和1個六進制計數器級聯構成。計數器的工作與狀態機的狀態有關,當狀態機處在復位狀態、測試狀態、停止狀態、結束狀態、檔位狀態都屬于不工作狀態,只有在計數狀態時,才會工作。計數器如果進入了停止狀態,會保留當前計數值,當再次按下開始鍵時,計數器由當前值開始計數。
    4個計數器的計數使能端相連、置數使能端相連,實現同時計數和同時置數。第一個計數器的計數脈沖是從1 kHz輸入的,第二個計數器的計數脈沖clk與第一個計數器的進位cn相連,第三個計數器的計數脈沖clk與第二個計數器的進位相連cn,第四個計數器的計數脈沖clk與第三個計數器的進位cn相連,設計中使用了庫中的一個4輸入與門,所有進位輸出都連接到4輸入與門,當倒計時結束,done輸出“1”信號。
2.5 微波加熱信號鎖存器latch_cook的設計
 對于latch_cook的設計,主要用來鎖存微波信號,數據的輸入由狀態控制得到,當啟動檔位1時,st1_en輸出信號為1、st1_en輸出信號為0、st1_en輸出信號為0,1_en與d1相連、 st2_en與d2相連、 st3_en與d3相連,也就是d1d2d3輸入端口的數據是啟動檔位1的輸出數據“001”。同理,當啟動檔2時,d1d2d3輸入端口的數據為“010”,啟動檔位3時,d1d2d3輸入端口的數據為“011”,其他狀態時latch_cook模塊設計中使用了兩個進程。第一個進程是把輸入微波信號賦給寄存器q,當g使能信號為1時,判斷是哪個檔位微波加熱信號后,再對寄存器q進行賦值。使能端g是從load_en取得信號值的。輸出load_en為1信號只有復位、測試、結束、檔位這幾個工作狀態。其中只有在檔位狀態時才能觸發進程,其他都不能。第二個進程是對微波信號的鎖存控制,eo與計數使能端相連,只有在計數時才能觸發進程,使cook輸出信號值,否則cook輸出高阻抗信號。latch_cook的輸入、輸出端口如圖7所示。

    部分關鍵程序如下:
architecture one of latch_cook is
signal q:std_logic_vector(2 downto 0);
signal s:std_logic_vector(2 downto 0);
begin
s<=d1&d2&d3;
process(s)
begin
if g='1'then
case s is
    when"001"=>q<="001";--檔位3
    when"010"=>q<="010";--檔位2
    when"100"=>q<="100";--檔位1
    when others=>null;
    end case;
end if;
end process;

process(oe)
begin
if oe='1'then--輸出信號
    cook<=q;
else
cook<="ZZZ";--呈現高阻抗
end if;
end process;
end;
2.6 顯示譯碼器LED的設計
 對于顯示電路,硬件上使用了串行連接的設計,即每個數碼管對應的引腳都接在一起,通過控制公共端控制相應數碼管的亮滅(共陰極數碼管的公共端為高電平時,LED不亮;共陽極的公共端為低電平時,LED不亮)。
    因此,在顯示模塊里有4個進程實現設計——數碼管動態掃描計數進程、數碼管位動態掃描進程、數碼管閃爍顯示進程、譯碼信號進程。顯示模塊工作首先是動態掃描計數,以1 kHz的掃描頻率進行掃描計數。掃描所得到的計數值傳遞到數碼管位動態掃描進程中,控制數碼管的位選信號,即顯示完第一位后,接著顯示第二位,依此類推,一直顯示到第5位,顯示模塊接著繼續從第一位顯示,從而實現循環顯示。因為1 kHz的掃描頻率使6個數碼管看上去是同時顯示的,實現了計數結果和狀態信息的顯示;譯碼信號進程則根據動態掃描所得到的信號值,選擇相應的顯示數據,只要計數器數據輸出或狀態發生變化,則數碼管的顯示也發生相應的變化。對于數碼管閃爍顯示進程,當ficker_seg=1時,則段信號與1 Hz頻率相與后再送到輸出端去以1 s的頻率閃爍、一亮一暗、全段滅、全段亮,否則正常輸出段信號。顯示模塊的輸入、輸出端口如圖8所示。

3 系統調試
 為了能夠準確地對所編寫的軟件進行調試,采用EMP240系列開發板上進行系統調試。圖9是一個模擬操作系統界面。

   系統調試的主要步驟如下:
    (1) 在上電復位時,系統操作界面顯示:00000。微波加熱信號為0。正處于待機狀態。
    (2)按下TEST測試鍵,5個數碼管所有段位點亮同時一亮一暗地交替閃爍著。按下復位鍵,系統返回復位待機狀態。
    (3) 右邊有三個檔位控制鍵,在待機狀態時,只要按下其中一個鍵,就能對時間進行設定。而三個檔位之間可以相互轉換。按下復位鍵,系統返回復位待機狀態。
    (4) 設定好時間后就可以按下開始鍵,啟動相應微波加熱信號,同時進行倒計時計數,如果要停止加熱,則按下停止鍵,系統進入停止狀態,微波加熱信號輸出為0,想要再次加熱,則按回開始鍵。按下復位鍵,系統返回復位待機狀態。
    (5) 當計時結束后,輸出done顯示提示,微波加熱信號輸出為0。按下復位鍵,系統返回復位待機狀態。
    本系統以EMP240T100C5為主要控制芯片,綜合運用了Quartus II開發工具,使用VHDL硬件描述語言,使得系統設計的硬件功能基本都可以通過軟件編程實現,程序經過實驗仿真與調試,各項功能達到了預定的設計指標。這種設計方案不僅使電子系統的設計以及產品性能的改進和擴展變得十分簡單,同時它還代替了原有的許多單元電路或單片機的控制芯片和大量外圍電路,使電子電路設計更加靈活方便。為實現微波爐以及更多家用電器的信息化和智能化進行了較深入的探索和實踐。
參考文獻
[1] 周潤景,圖雅,張麗敏. 基于QuartusII的FPGA/CPLD數字系統設計實例[M]. 北京:電子工業出版社,2007.
[2] 延明,張亦華. 數字電路EDA技術入門[M].北京:北京郵電大學出版社,2006.
[3] 韓團軍. 基于FPGA微波爐控制器設計[J].研究與開發, 2010,29(8):64-67.
[4] 劉昌華. 數字邏輯EDA設計與實踐—MAX+plusII與QuartusII雙劍合璧[M].北京:國防工業出版社,2006.
 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 88影视在线观看污污 | 天天添天天操 | 欧美激情(一区二区三区) | 日韩欧美综合 | 一本久道在线 | 亚洲 欧美 激情 另类 自拍 | 99精品视频免费 | 欧美日韩国产超高清免费看片 | 成人国产在线看不卡 | 欧洲一级毛片免费 | 亚洲日韩精品欧美一区二区 | 国产黄在线观看免费观看软件视频 | 乡村乱肉第19部全文小说 | 精品国产一区二区 | 天天爽天天操 | 91se在线看片国产免费观看 | 国产亚洲精品91 | 国产片黄色 | 手机看片亚洲 | 午夜高清免费在线观看 | 冈本视频污 | 影音先锋欧美资源 | 相泽亚洲一区中文字幕 | 麻豆久久婷婷综合五月国产 | 国产第四页| 在线观看免费视频一区 | a天堂v| 毛片无遮挡高清免费观看 | 曰皮全部过程视频免费高清 | 97影院理论在线观看 | 一级a毛片免费 | 免费视频你懂的 | 777kkk亚洲综合欧美色老头 | 在线视频 一区二区 | 人人爽天天碰天天躁夜夜躁 | 亚洲中文毛片播九公社 | 狼人久草| 狠狠操天天操夜夜操 | 1024手机在线观看 | 亚洲激情区 | 黄色视屏在线看 |