分析嵌入式系統最佳化電源設計關鍵 智慧應用 影音
DTIOT
DTechforum

分析嵌入式系統最佳化電源設計關鍵

  • DIGITIMES企劃

隨著使用環境對嵌入式系統的要求不斷提升,在效能、體積要求下,讓嵌入式系統的設計難度不斷增加。
隨著使用環境對嵌入式系統的要求不斷提升,在效能、體積要求下,讓嵌入式系統的設計難度不斷增加。

前言:想讓嵌入系統達到效能與節能2個看似互斥的目的,其系統架構設計所需面臨的挑戰相當多,其中尤以電源管理的技術影響最為明顯!這裡談的電源管理可不是僅止於螢幕保護程式這種低階節能設計,而是從電源來源、系統主控晶片、電源管理機制…等重點進行分析,若能再因應使用環境條件進行最佳化設計,才能將嵌入式系統的效能發揮極限…

本文:
嵌入式系統開發,從單純的機電控制一路走到現今隨處可見的應用盛況,除了其可用低於整機電腦的成本實現所需運算功能,更擁有低成本、小空間…等絕佳優勢,尤其近來討論越來越熱門的節能減碳議題,更是導入嵌入式系統的優勢之一,為讓系統發揮應用效能極大化,嵌入式系統的電源規劃,更是設計必須考量的重點。

嵌入式系統受限安裝空間與環境限制,散熱條件相對較差,加上零組件排列緊密,亦會使散熱影響問題加劇。

嵌入式系統受限安裝空間與環境限制,散熱條件相對較差,加上零組件排列緊密,亦會使散熱影響問題加劇。

一般嵌入式系統開發期間多半以裸板進行相關功能調校,初期不容易發現散熱造成的熱當機問題。

一般嵌入式系統開發期間多半以裸板進行相關功能調校,初期不容易發現散熱造成的熱當機問題。

嵌入式系統的應用場合相當多,小至小家電、影音視聽裝置,大到工廠自動化控制,都看得到嵌入式系統的影子,而其中嵌入式系統賴以穩定的核心關鍵,就是電源系統的規劃與設計。一般PC應用場合,其設計觀多會以「效能」為優先,至於系統整體消耗多少電能,這並不在設計過程必須思考的問題,這也是為什麼PC電源供應器動輒1,000W水準的結果。在嵌入式系統設計中,電源配置的觀念卻相對重要,也不能如同PC無節制的使用電能,但設計的觀點不應擺在「節約」電能,而是讓整體系統發揮最佳化的電力應用考量出發。

針對使用模式進行電源最佳化設計

以手機類的嵌入式系統為例,電力來源極大部分來自電池,設計目標即可放在如何讓系統發揮最長待機時間,這時省電模式的電源配置就相當重要。以智慧型手機常用的ARM核心相關整合晶片為例,在手機平台上,其實真正大量消耗電能的零組件並不是LCD螢幕,因為新一代LCD電力消耗並不高,搭配LED背光與測光模組搭配,甚至關掉背光使用狀態下,消耗電力並不大。觀察ARM手機平台,會發現真正大量消耗電能的元件,反而是CPU與DRAM。

而如同手機這類嵌入式系統平台,若真想達到省電效益,就必須從CPU與DRAM著手。一般常見設計都有幾種省電模式搭配,如針對一般應用的正常模式,此模式在應付一般性的手機操作,與通話、簡訊操作基本功能,另外則是較能展現省電效能的Standby與Suspend 2個模式。Standby為一般手機維持基本通訊在線狀態的最低需求,因為此狀態不須處理螢幕顯示與數據運算,可在此階段關閉部份元件電力供應,或是將CPU效能降低;Suspend為俗稱的Sleep模式,也有人稱作「冬眠」,是最省電的電力配置。

Standby省電模式開發重點

在嵌入式系統中,Standby算是最容易實現的省電設計,Standby多數狀況只是關閉嵌入式系統的周邊,讓整體耗電變得稍微低一點,而CPU和DRAM仍處於運行狀態,可關閉的周邊常見的有Wi-Fi無線網路卡…等,這時的設計考量應該是檢視嵌入式系統的所有周邊I/O Port配置,因為嵌入式系統主機板不會知道系統接續了哪些周邊,設計者必須指定關掉某些I/O埠,因為即便周邊關閉I/O Port仍會耗電,這些細節都必須一一考慮。

相對Standby,Suspend模式不僅節省電能的程度更為顯著,設計內容也相對更為複雜與困難,尤其是Suspend在進入與離開後,能否讓嵌入式系統穩定回復,則是此省電模式的設計關鍵。以ARM7的Suspend模式規劃,Clock是完全關閉、且CPU也是處於關閉狀態,所以處理器是完全不耗用電能。先前也提過系統耗電元兇還有DRAM,但DRAM須藉由不斷的持續供電維持儲存資訊,這時的系統設計就必須針對記憶體的電力配置進行全盤考量。

深入理解硬體配置 規劃穩定喚醒機制

再者,規劃嵌入式系統還必須理解硬體設計的運作邏輯。例如,當ARM進入Suspend,這表示處理器處於Off狀態,那記憶體部份的Suspend程序進入與資料取回,就會出現困難。一般的做法是將進行Suspend程序的程式先擺在Cache內,由於處理器內的Cache會與處理器同時關閉,這時即便是儲存程式碼的記憶體先行關閉,也不會影響Suspend程序進行。至於Suspend過程中,程式也必須針對恢復系統必備的資料,預先寫入處理器的各個暫存器中,預先載入資料可以避免記憶體還未完成喚醒,而處理去卻去抓了不存在的資料,反而會因此造成系統死當。

而Suspend狀態下喚醒系統,能否順利完成的關鍵,則在於系統的各個細節能否全盤掌控?例如,多數喚醒方式是採電源鍵長按執行此功能,不管是電源直接開?關或是長按,嵌入式系統都會回到系統程式碼進行處理,此部份設計就必須針對喚醒或是一般開機按鍵,設置系統狀態判斷,讓系統自動區別此時是一般電源開機還是Suspend喚醒。當電源按鍵為Suspend狀態時,系統必須依序恢復記憶體Suspend前的狀態,再載入處理器Suspend狀態恢復必要的暫存器資料,此部份的執行順序相當關鍵,必須照著標準程序一步步逐項完成,因為只要其中一個環節出錯,系統就無法順利喚醒。

針對實際設計微調省電規劃

再來看嵌入式系統的開發專案,研發階段多半是採功能板、系統裸板進行相關功能開發,在此階段多數將研發重心放在實現相關功能與系統除錯,反而忽略整體散熱的規劃配置,雖說嵌入式系統所使用的零組件多數具備較高的環境耐受能力,或是相對比較不會發熱,但畢竟終端產品勢必會加上機殼與相關機構設計,此時的散熱條件勢必更嚴苛許多。

在實際商品化設計部份,還必須針對系統整體電源應用,規劃主?被動散熱配置,例如,針對部份零件加強散熱或隔熱,或是在機構中增設散熱風扇?而風扇這類高耗能零組件的電力規劃,也必須與整體嵌入式系統的電能規劃一併考量。