基于FPGA的多功能空調(diào)控制器設(shè)計
1 引言
今年八月,以格力“睡夢寶”臥室空調(diào)為代表的一批性能卓越,設(shè)計人性化的空調(diào)一經(jīng)上市,就吸引了大批消費者的目光,但其居高不下的價格卻也讓很多普通的消費者望而卻步。
空調(diào)市場的高價位,除了商家基于利潤的考慮之外,一個很重要的原因,就是在空調(diào)的研發(fā)過程中所投入的巨額經(jīng)費。以格蘭仕為例,公司每年拿出的科研獎勵基金就高達1000萬元[1],其投入的研發(fā)經(jīng)費之巨也就不難想象。如何降低設(shè)計成本,縮短研發(fā)周期,規(guī)避前期風險投資已成為空調(diào)產(chǎn)業(yè)發(fā)展所面臨的一個重要課題。
基于對上述問題的思索,本文以一個小型多功能家用空調(diào)控制器的設(shè)計作為實例,介紹一種設(shè)計簡便,性能優(yōu)秀且能有效控制成本的FPGA解決方案。
2 設(shè)計指標
本設(shè)計的任務是一個具有多種工作模式和多級風速可供選擇的小型家用空調(diào)控制器。其基本設(shè)計指標如下:
1.系統(tǒng)上電后,默認工作于標準模式,風速為1級,自設(shè)溫度為22℃,定時功能關(guān),工作狀態(tài)指示燈亮。
2.系統(tǒng)有四種工作模式:
標準模式:系統(tǒng)根據(jù)用戶自設(shè)溫度與室內(nèi)溫度進行對比判斷,驅(qū)動響應設(shè)備工作。
自動模式:系統(tǒng)根據(jù)室內(nèi)溫度與系統(tǒng)內(nèi)預設(shè)溫
度閾值進行對比判斷,驅(qū)動響應設(shè)備工作。
睡眠模式:除具有標準模式的功能外,在該模式下系統(tǒng)能根據(jù)人體睡眠特點和夜間溫度變化情況,自動進行溫度調(diào)節(jié)。
除濕模式:啟用該模式后,將驅(qū)動響應設(shè)備對室內(nèi)進行除濕操作。
3.此外系統(tǒng)還提供四級風速供用戶選擇,方便的溫度設(shè)定輸入,定時,工作狀態(tài)指示等功能。
3 FPGA方案的引入
長期以來,對于這類家用空調(diào)控制器的設(shè)計,多采用單片機來實現(xiàn),其特點是成本較低,性能一般。但普通單片機的集成度通常較低,如Intel公司的AT89S51僅128字節(jié)片內(nèi)數(shù)據(jù)存儲器,32根可編程I/O口線,5個中斷源。顯然,要想完成較為復雜的運算和控制功能,就必須對其進行擴展,而外部硬件電路所帶來的延時等不可預知風險,使得擴展必須以犧牲整機性能作為代價。而且這種設(shè)計方法受制于硬件電路,開發(fā)難度較大。而一些商家研發(fā)的空調(diào)專用芯片,也多因技術(shù)上的壁壘,在通用性,升級和價格方面不具優(yōu)勢。
FPGA作為一種新興的可編程技術(shù),是進行原型設(shè)計最理想的載體[2],其精確的可測試性和目前已達到的深亞微米級工藝,能較好的解決傳統(tǒng)設(shè)計方法中的諸多難題。其豐富的編程資源和靈活的編程特性,能將許多原本需要借助外部硬件實現(xiàn)的功能,轉(zhuǎn)化為軟件編程來完成,使升級改進更為靈活。而且這種設(shè)計方法能在軟件階段就對設(shè)計做出準確的預測和評估,從而能極大地提高開發(fā)效率,有效規(guī)避前期的風險投資?,F(xiàn)代先進的FPGA工藝技術(shù),使得FPGA在功耗和價格方面都大為降低,以工作電壓為3.3V的EPCS1SI8芯片為例,其目前的市場價格僅在10元左右。
4 系統(tǒng)劃分
FPGA技術(shù)的一個巨大優(yōu)勢,就是采用自頂向下的設(shè)計思想,將設(shè)計模塊化處理。為完成控制器各項功能,設(shè)計被劃分為多個模塊進行。整個控制器的組成及各模塊之間控制關(guān)系如圖1所示。
圖1 控制器結(jié)構(gòu)圖
由圖1可知,控制器由工作模式(含模式選擇和四種工作模式),風速選擇,室溫設(shè)定,定時,設(shè)備驅(qū)動等模塊構(gòu)成。且在各模塊之間,存在明確的控制關(guān)系。
5 設(shè)計實現(xiàn)
由系統(tǒng)劃分可知,控制器的各項功能由各模塊協(xié)同完成。其中模式選擇,室溫設(shè)定,定時三個模塊都要接受來自外部的按鍵輸入,經(jīng)硬件實測,設(shè)計選用了4HZ的系統(tǒng)頻率來減少按鍵輸入過程中的抖動干擾。另外,有限狀態(tài)機設(shè)計作為進行高效率高可靠邏輯控制的重要途徑[3],設(shè)計中也多次運用了這一設(shè)計方法。以下分別闡釋各模塊及模塊間控制關(guān)系的設(shè)計思想和工作流程。
5.1 工作模式
模式選擇由選擇控制和四種工作模式構(gòu)成。
選擇控制:該模塊為四種工作模式提供選通信號,通過按鍵從NORMAL開始循環(huán)切換,驅(qū)動各模式正常工作。該部分被設(shè)計為一個具有四種工作狀態(tài)的字符型有限狀態(tài)機,其狀態(tài)轉(zhuǎn)換控制關(guān)系如圖2所示。
圖2 選擇控制狀態(tài)轉(zhuǎn)換圖
標準模式:該模塊將外部采集的室溫與用戶自設(shè)溫度值進行對比判斷,確定當前室溫狀況(冷、熱或適宜),并將該狀態(tài)信息送入驅(qū)動模塊處理。
自動模式:該模塊將外部采集的室溫與系統(tǒng)內(nèi)預設(shè)溫度閾值(此處設(shè)定為[17℃-26℃])進行對比判斷,若外部采集的溫度超出該閾值,則有相應狀態(tài)信號向驅(qū)動模塊發(fā)出。
睡眠模式:該模塊除具有標準模式的功能外,為了營造一個舒適的睡眠環(huán)境,系統(tǒng)每隔1小時,會向自設(shè)溫度模塊發(fā)出自增1℃的請求信號,5小時后向設(shè)備驅(qū)動模塊發(fā)出關(guān)機請求。睡眠模式程序設(shè)計流程如圖3所示。
圖3 睡眠模式設(shè)計流程圖
除濕模式:該模式下除濕請求自動向設(shè)備驅(qū)動模塊發(fā)出。
5. 2 風速選擇
風速選擇模塊由設(shè)備驅(qū)動提供選通信號,該部分由一個具有五種工作狀態(tài)的字符型有限狀態(tài)機來實現(xiàn),通過按鍵從ST0到ST3進行循環(huán)切換。當設(shè)備驅(qū)動模塊無設(shè)備請求輸出時,風速自動切換到ST4狀態(tài),禁止風機工作;當設(shè)備驅(qū)動恢復設(shè)備請求后,風速將重新切換到原來的狀態(tài)。風速選擇模塊狀態(tài)轉(zhuǎn)換控制關(guān)系如圖4所示。
圖4 風速切換狀態(tài)轉(zhuǎn)換圖
5.3 定時
在該模塊中,通過按鍵預置關(guān)機時間(最長可設(shè)置270min),并將關(guān)機時間送出實時顯示,在關(guān)機時會驅(qū)動系統(tǒng)狀態(tài)指示燈進行閃爍提示。為方便用戶輸入,節(jié)約按鍵和顯示所用硬件資源,程序采用了映射輸入和映射顯示的設(shè)計方法,即將用戶每次按鍵以一個特定步長值(此處設(shè)為30min)在程序中替換,并將倒計時按步長區(qū)間進行反替換輸出顯示。該部分程序設(shè)計流程如圖5所示。
圖5 定時模塊設(shè)計流程圖
5.4 室溫設(shè)定
室溫設(shè)定模塊,由一對加減按鍵循環(huán)進行輸入,同時也接收來自睡眠模塊的調(diào)溫請求,溫度可調(diào)區(qū)間設(shè)為[10℃-35℃]。在程序設(shè)計中,利用VHDL不完整IF語句保持原值的特性,可很容易地實現(xiàn)自設(shè)溫度的增減功能。該模塊僅在系統(tǒng)工作于標準模式或睡眠模式時,溫度可被設(shè)置,其余情況則將溫度復位到初始值22℃。
5.5 設(shè)備驅(qū)動
設(shè)備驅(qū)動模塊接收來自四種工作模式的室內(nèi)狀況信號,經(jīng)分類處理后,向后續(xù)設(shè)備發(fā)出響應請求。該部分采用了一個具有四種工作狀態(tài)(采暖、制冷、除濕和無操作)的字符型有限狀態(tài)機來實現(xiàn)。另外,為保護后續(xù)設(shè)備,在狀態(tài)機的設(shè)計中引入了異常輸入的保護機制,即當設(shè)備驅(qū)動模塊判定為異常輸入時(如同時出現(xiàn)冷熱兩種室內(nèi)狀況),則立即將所有設(shè)備請求禁止。設(shè)備驅(qū)動模塊的狀態(tài)轉(zhuǎn)換控制關(guān)系如圖6所示。
圖6 輸出驅(qū)動狀態(tài)轉(zhuǎn)換圖
6 設(shè)計驗證
設(shè)計采用了具有良好可移植特性的VHDL語言進行描述,通過Altera公司的MAX+PLUSII工具軟件,以其FPGA/ACEX1K /EP1K30TC144-3芯片作為測試載體,進行了編譯測試和硬件驗證。
6.1 仿真測試
控制器整體仿真測試結(jié)果如下:
圖7 控制器仿真波形1
圖8 控制器仿真波形2
圖7為控制器按鍵輸入的響應情況,如圖所示,隨著按鍵的按下,各種輸出正常。圖8為控制器工作于睡眠模式,風速為4級,定時兩小時的波形圖,從圖中可以清晰地看到,在關(guān)機到來時,STATE信號進行了閃爍提示,自設(shè)溫度值也隨著時間由21℃自增為23℃。綜合以上分析可以看出,軟件仿真達到了預期的性能指標。
6.2 資源使用狀況
FPGA具有精確的可測試性,借助功能強大的分析軟件可以在軟件設(shè)計階段就對設(shè)計做出準確的預測和評估。由MAX+PLUSII軟件分析可知,設(shè)計中關(guān)鍵路徑的最大延時不超過20個納秒,這是一般的設(shè)計方法所不能達到的??刂破鞯馁Y源使用情況如表1所示。
表1 控制器資源使用狀況
輸入引腳數(shù) 輸出引腳數(shù) 邏輯單元數(shù)
15 32 230
6.3 硬件測試
設(shè)計已于零七年十月在樂山師范學院EDA技術(shù)開發(fā)實驗平臺上通過硬件測試,控制器各項功能工作正常,整機運行良好,性能穩(wěn)定,達到預期設(shè)計指標。
7 結(jié)束語
FPGA技術(shù)的引入,使得設(shè)計擺脫了硬件電路的束縛,設(shè)計者只需將更多的精力致力于軟件的設(shè)計和優(yōu)化上,從而極大地提高了設(shè)計效率。本設(shè)計從任務提出到最終完成硬件測試僅歷時兩個多月,這在一定程度上也證明了在空調(diào)控制器的設(shè)計中引入現(xiàn)代FPGA技術(shù)的可行性和巨大潛力。隨著FPGA技術(shù)及其制作工藝的不斷進步,將現(xiàn)代FPGA技術(shù)融入該類控制器的研發(fā)和生產(chǎn)之中必將大有可為。
[參考文獻]
[1]http://xk.cn.yahoo.com/articles/070814/1/2a52_2.html. 雅虎數(shù)碼.
[2] 黃志偉.FPGA系統(tǒng)設(shè)計與實踐[M].北京:電子工業(yè)出版社,2005.
[3] 潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學出版社,2005.
[4] 周啟,冀兆良.家用空調(diào)的現(xiàn)狀與發(fā)展趨勢[J].山西建筑,2007,(3):159-160.