可編程微波爐控制器的設計
隨著大規模集成電路技術和計算機技術的不斷發展,在涉及通信、國防、航天、醫學、工業自動化、計算機應用、儀器儀表等領域的電子系統設計工作中,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所示。
西門子plc相關文章:西門子plc視頻教程
分頻器相關文章:分頻器原理
評論