薛念明
(廣州海格通信集團(tuán)股份有限公司,廣東 廣州 510000)
手持終端硬件功耗模型需要先了解終端中各模塊單元的功耗分布,在此基礎(chǔ)上針對功耗大的模塊單元確定低功耗設(shè)計的關(guān)鍵路徑和非關(guān)鍵路徑,分配功耗優(yōu)化的設(shè)計指標(biāo),確定各模塊單元的低功耗設(shè)計目標(biāo)。此外,每個模塊單元還需要進(jìn)一步優(yōu)化或細(xì)化到每個可管理的單元、器件,對功耗使用需求大的器件更需要進(jìn)行功耗優(yōu)化的指標(biāo)分配[1,2]。
根據(jù)終端各模塊功耗分布指標(biāo)和分配情況,終端主要耗電模塊為核心應(yīng)用處理器、安全保密模塊、通信導(dǎo)航的基帶和射頻模塊、顯示屏以及傳感器等其他外圍電路。硬件低功耗設(shè)計應(yīng)以這些模塊為對象,在器件選型、電源管理等方面開展針對性研究。
硬件器件的選型原則是依據(jù)高集成、小型化、低功耗等結(jié)構(gòu)或功能特點,在滿足產(chǎn)品需求的情況下盡可能選用低容量、低頻率、低電壓、低功耗以及小封裝的元器件。終端硬件選型中,一般應(yīng)盡量避免選用大規(guī)模現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)等高能耗元器件,可以選用工藝等級高的低能耗ARM核心芯片。與此同時,盡量采用集成電路芯片代替分立元器件,接口電路、外圍電路等也應(yīng)盡量選用工藝等級高、能耗水平低的器件[3]。
低統(tǒng)籌軟件操作系統(tǒng)、驅(qū)動程序以及應(yīng)用程序之間的優(yōu)化組合,充分利用系統(tǒng)的低功耗特性,降低CPU及數(shù)據(jù)存儲等模塊的功耗,最終實現(xiàn)全部系統(tǒng)的低功耗特性。
手持終端處理器系統(tǒng)包括帶操作系統(tǒng)和不帶操作系統(tǒng)兩類。常見的操作系統(tǒng)主要包括Android、Windows Embedded Compact(Windows CE)、Windows Mobile(WM)等,不帶操作系統(tǒng)的手持終端主要基于C語言、Linux嵌入式系統(tǒng)等實現(xiàn)人機(jī)交互[4]。手持終端CPU電源管理主要與操作系統(tǒng)協(xié)同應(yīng)用,實現(xiàn)靜態(tài)或動態(tài)的電源管理。
靜態(tài)電源管理模式主要通過On、Standby、Suspend、Hibernate這4種形態(tài)實現(xiàn),利用操作系統(tǒng)內(nèi)核控制有效切換CPU狀態(tài)。手持終端則采用中斷模式實現(xiàn)外圍電路與核心處理器的通信,從而降低核心處理器的功耗。動態(tài)電源管理在于系統(tǒng)總線時鐘控制及終端電源管理系統(tǒng)的搭建,統(tǒng)籌操作系統(tǒng)有效負(fù)載狀況,調(diào)節(jié)終端的工作頻率和電壓。動態(tài)功耗控制動態(tài)啟動系統(tǒng)級芯片(System on Chip,SoC)處理器的電壓縮放功能,通過用戶層制定策略與內(nèi)核提供管理功能交互,實時調(diào)整電源參數(shù),最終實現(xiàn)精細(xì)化、智能化電源管理[5]。
在終端外圍部件的低功耗設(shè)計方面,總體設(shè)計原則為盡可能選用成熟的低功耗芯片。如果沒有可選芯片,則需要設(shè)計可以動態(tài)控制的外圍電路,用以關(guān)閉某些不使用的功能或者在設(shè)備空閑時關(guān)閉。
具體設(shè)計主要包括以下5個方面:一是對核心處理芯片、外圍電路等引入電源管理集成電路(Power Management IC,PMIC),更加細(xì)化地對CPU的各個模塊以及外部各模塊進(jìn)行電源管理,使處理器運行在5 mW的較低功耗下,提升整機(jī)的續(xù)航能力;二是針對音頻、存儲、視頻、顯示以及通信等主要模塊,增加DC-DC模塊或MOSFET電源總線開關(guān)來進(jìn)行電源管理,當(dāng)模塊處于空閑狀態(tài)時關(guān)閉其電源,降低靜態(tài)電流;三是對系統(tǒng)電源泄漏、RC泄漏、分布電路泄漏、保護(hù)電路泄漏以及意外泄漏等漏電狀態(tài)進(jìn)行漏電流檢查;四是針對I/O線路配置大阻值的上拉電阻,降低靜態(tài)電路的電流;五是采用節(jié)能顯示屏,同時應(yīng)用顯示幀緩存壓縮、動態(tài)顏色深度控制、背光源自動調(diào)節(jié)等技術(shù)[6]。
對于液晶屏亮度自動調(diào)節(jié)或關(guān)閉,需要設(shè)計光敏及液晶顯示器(Liquid Crystal Display,LCD)電路進(jìn)行控制,根據(jù)外部光線亮度調(diào)節(jié)液晶屏亮度。在系統(tǒng)無任何操作的情況下,可以自動關(guān)閉液晶屏背光功能,以降低系統(tǒng)功耗。對于屏幕省電及偽彩色顯示功能設(shè)計,用戶可以選擇解析度更低的顯示效果,節(jié)省GPU功耗。
發(fā)射功率的自適應(yīng)控制功能可以通過功率反饋電路來計算實際發(fā)射功率的大小,保證功率放大器工作在高輸入激勵狀態(tài),從而優(yōu)化功率放大電路的功耗。此外,也可以根據(jù)通信距離實時調(diào)整整機(jī)的發(fā)射功率大小,達(dá)到整機(jī)射頻輸出功率、整機(jī)功耗、散熱效果的平衡。在特殊應(yīng)用領(lǐng)域手持終端設(shè)計過程中,集成Wi-Fi等射頻單元,在射頻模塊中增加精確的電源管理電路,使系統(tǒng)中負(fù)責(zé)電源管理的核心單元能夠監(jiān)測每個射頻單元的使用狀態(tài),控制各單元的電源開關(guān),實現(xiàn)對各單元電源的精細(xì)化管理功能。存儲器空閑時可以關(guān)閉電源,在不需要高速存取時降低頻率。片外Flash存儲器在完成啟動工作后,自動進(jìn)入省電模式。
電路板的設(shè)計方面,重點關(guān)注對懸空引腳的處理。互補(bǔ)金屬氧化物半導(dǎo)體(Complementary Metal Oxide Semiconductor,CMOS)懸空的輸入端輸入阻抗極高,很可能感應(yīng)一些電荷導(dǎo)致器件被高壓擊穿,同時還會導(dǎo)致輸入端信號電平隨機(jī)變化,引起CPU在休眠時不斷被喚醒,從而無法進(jìn)入睡眠狀態(tài)。在印制電路板(Printed Circuit Board,PCB)設(shè)計中,根據(jù)元器件引腳的初始狀態(tài),將未使用的輸入端接入上拉電阻,使其引腳上的電壓上升至相應(yīng)的供電電壓,來保持高電平電位,從而提高電路的抗干擾能力。除此之外,也可以通過接入下拉電阻進(jìn)入接地端保持引腳低電平電位,從而降低引腳的輸入阻抗,導(dǎo)通泄荷通路。
通信終端主機(jī)的主要發(fā)熱器件有2個,即綜合射頻模塊和電池。電池與電池后蓋緊密接觸,通過電池后蓋散熱。綜合射頻模塊則通過導(dǎo)熱襯墊與主機(jī)后蓋連接,通過主機(jī)后蓋散熱。
通過專業(yè)熱分析軟件6SigemaET進(jìn)行熱分析計算,當(dāng)環(huán)境溫度設(shè)置為20 ℃時,采用自然散熱方式。將主要發(fā)熱模塊的功耗錄入軟件后,計算得出最高溫度為 47 ℃。
針對手持終端的功耗控制,除了硬件上采用高集成、低功耗、高制程工藝的器件外,軟件動態(tài)功耗控制同樣十分重要。在硬件平臺基本確定的情況下,降低平臺功耗主要依靠軟件優(yōu)化處理。從整個系統(tǒng)考慮,在操作系統(tǒng)、控制程序、外設(shè)驅(qū)動程序以及工作模式控制方面加以統(tǒng)籌規(guī)劃,合理配置和優(yōu)化,從而減少不必要的工作開銷,精細(xì)化控制功耗。
軟件的低功耗設(shè)計主要包括軟件動態(tài)功耗控制、CPU的省電模式設(shè)計、外設(shè)的動態(tài)調(diào)整、軟件結(jié)構(gòu)級功耗優(yōu)化策略、軟件任務(wù)級功耗優(yōu)化以及系統(tǒng)資源動態(tài)配置等。
動態(tài)功耗控制流程如圖1所示,具有正常、低功耗2種工作模式,可以根據(jù)平臺的工作狀態(tài)進(jìn)行自適應(yīng)切換。
圖1 動態(tài)功耗控制流程
智能待機(jī)模式可以很好地按照中斷和事件優(yōu)先權(quán)限將處理器從空閑模式中喚醒。待機(jī)狀態(tài)下,處理器處于空閑模式,出現(xiàn)隨機(jī)事件和實時要求等級較高時,系統(tǒng)內(nèi)部事件發(fā)生處理器很快被激發(fā)喚醒,快速處理事件和中斷請求。對于其他中斷和一般事件,則通過定時器進(jìn)行周期性掃描。當(dāng)CPU處于空閑狀態(tài)時,系統(tǒng)進(jìn)入睡眠模式,平臺器件仍然能夠上電,但是會關(guān)閉大部分時鐘。動態(tài)調(diào)整時鐘頻率能夠有效控制功耗,時鐘頻率的調(diào)節(jié)可以使用處理器內(nèi)部的鎖相環(huán)(Phase Locked Loop,PLL)進(jìn)行處理。為了實現(xiàn)時鐘頻率的動態(tài)調(diào)整,需要利用處理器上的軟件實時監(jiān)控負(fù)載,根據(jù)負(fù)載選擇功耗最小且能滿足實時處理要求的時鐘頻率。處理器處于靜態(tài)時,只有漏電流和少量用于尋找喚醒條件邏輯的時鐘消耗能量[7,8]。
在用戶設(shè)定的時間完成后,可以操作自動熄滅軟件程序。外設(shè)模塊在SoC的ARM側(cè)上電時,操作系統(tǒng)可以采用門控軟件控制技術(shù)調(diào)節(jié)時鐘輸入狀態(tài),從而控制系統(tǒng)功耗。音頻模塊在沒有聲音時就關(guān)閉,需要通話時再打開。串口平臺在沒有控制臺終端下發(fā)數(shù)據(jù)時可以將時鐘關(guān)閉,需要終端下發(fā)數(shù)據(jù)時再打開。網(wǎng)口平臺在沒有收發(fā)網(wǎng)絡(luò)數(shù)據(jù)時自動關(guān)閉,有網(wǎng)口數(shù)據(jù)收發(fā)時再打開。
通過ARM處理器處理同一邏輯,采用不同的指令組合方式或不同的指令排列順序都會造成不同的軟件功耗。軟件設(shè)計人員一般不修改操作系統(tǒng)內(nèi)核源程序,以防修改完成后造成系統(tǒng)不兼容。在熟悉內(nèi)核架構(gòu)或系統(tǒng)源程序的情況下,編寫設(shè)計外設(shè)驅(qū)動軟件程序時,可以進(jìn)行軟件程序結(jié)構(gòu)級功耗優(yōu)化。在保持軟件功能不變的前提下,對源程序的語法結(jié)構(gòu)進(jìn)行二次重構(gòu),尋找軟件的最低功耗結(jié)構(gòu)。內(nèi)核和驅(qū)動源程序的低功耗設(shè)計主要是在程序功能不變的情況下對軟件體系結(jié)構(gòu)進(jìn)行修改,從而減小體系結(jié)構(gòu)代碼空間、消除冗余結(jié)構(gòu)、降低體系結(jié)構(gòu)復(fù)雜度,有利于優(yōu)化軟件體系結(jié)構(gòu)運行效率,進(jìn)一步降低系統(tǒng)功耗。
軟件方面減少功耗的措施主要包括3種:一是優(yōu)化任務(wù)規(guī)劃和設(shè)計;二是優(yōu)化任務(wù)激活運行時間占比;三是軟件輕量化。
在任務(wù)規(guī)劃和設(shè)計方面,由于每增加一個任務(wù)便會增加??臻g的占用和出棧入棧的操作功耗,對整機(jī)功耗有較大的影響,因此在滿足系統(tǒng)功能性能需求的前提下需要盡可能減少任務(wù)數(shù)量,一定程度上可以有效降低系統(tǒng)整體功耗。
任務(wù)激活運行時間占整個系統(tǒng)運行時間比重的大小直接影響到處理器的功耗情況,通過減少任務(wù)的激活和運行時間,可以有效降低處理器的整體功耗[9,10]。
在軟件輕量化方面,軟件開發(fā)時應(yīng)該明確所需涵蓋的功能模塊,剔除不需要的部分,最大程度地減少軟件模塊的運行資源,從而有效減少處理器的功耗。
為了實現(xiàn)手持終端的整體小型化、低功耗,需要針對各個硬件模塊進(jìn)行能耗指標(biāo)解析、元器件選型、系統(tǒng)重構(gòu)和集成、小型優(yōu)化低功耗設(shè)計等,通過優(yōu)化設(shè)計來降低平臺功耗。從整個系統(tǒng)的角度考慮,需要在操作系統(tǒng)、控制程序結(jié)構(gòu)編排、數(shù)據(jù)結(jié)構(gòu)、軟件任務(wù)流程、外設(shè)驅(qū)動程序以及工作模式控制方面統(tǒng)籌規(guī)劃,從而減少不必要的工作開銷,精細(xì)化控制功耗。