從應(yīng)用層和后臺分析便攜式電子產(chǎn)品的節(jié)能技術(shù)
后臺電源管理技術(shù)
后臺的電源管理技術(shù)之間可能會產(chǎn)生相互影響,因此應(yīng)用程序必須對其進(jìn)行處理,或者對于應(yīng)用程序完全透明。即使它們對應(yīng)用程序是透明的,軟件設(shè)計(jì)工程師也需要設(shè)置中斷或其他資源,以便為這些電源管理技術(shù)提供支持。這些軟件設(shè)計(jì)工程師也可能需要了解這些技術(shù)的實(shí)際運(yùn)行,以免應(yīng)用程序與電源管理技術(shù)之間出現(xiàn)意想不到的干擾。例如,不必要的顯示刷新或磁盤存取工作可能會對其中部分工作流程造成干擾,使已停止使用一段時間的顯示器背光系統(tǒng)或磁盤馬達(dá)無法關(guān)閉。
圖3:自適應(yīng)電壓調(diào)節(jié)功能降低了功耗。
1.活動監(jiān)控程序
許多系統(tǒng)設(shè)計(jì)所采用的外設(shè)如顯示器背光系統(tǒng)及磁盤馬達(dá)比微控制器更耗電。對于這類設(shè)計(jì)來說,專門監(jiān)控個別外設(shè)的活動監(jiān)控程序可以大幅改善系統(tǒng)的功效?;顒颖O(jiān)控程序有自己的計(jì)時器,受監(jiān)控的外設(shè)無論進(jìn)行哪樣的工作,都可避免計(jì)時器超過其設(shè)定時限。如果計(jì)時器出現(xiàn)溢出或下溢(出現(xiàn)哪種情況取決于計(jì)時器的設(shè)置),會將外設(shè)關(guān)閉或?qū)⒅糜诘凸β誓J健?BR>
典型的活動監(jiān)控程序利用實(shí)時操作系統(tǒng)(RTOS)提供的服務(wù)設(shè)定后臺任務(wù),以便處理預(yù)定發(fā)生的事件,其中包括所有活動監(jiān)控程序的更新。有關(guān)的后臺任務(wù)必須提前設(shè)定,以便RTOS可以按照某一固定頻率定時調(diào)用任務(wù),一般來說每10至100毫秒(ms)之內(nèi)調(diào)用一次。一旦已發(fā)出任務(wù)調(diào)用,該任務(wù)將查找任何預(yù)計(jì)發(fā)生的、需要被執(zhí)行的任務(wù),之后處于懸置狀態(tài),直至再發(fā)出調(diào)用。
系統(tǒng)也可利用旗語(Semaphores)或任務(wù)之間的消息傳遞來告知某外設(shè)接入。當(dāng)系統(tǒng)調(diào)用后臺任務(wù)時,會先核查是否已收到信號。如果有關(guān)信號仍未收到,計(jì)數(shù)器會增加。如果計(jì)數(shù)器出現(xiàn)溢出,系統(tǒng)便會關(guān)閉外設(shè);如果信號已收到,計(jì)數(shù)器便會進(jìn)行復(fù)位。
設(shè)備驅(qū)動程序可能會對復(fù)位信號進(jìn)行聲明(assert),這個信號用于對該設(shè)備進(jìn)行存取。當(dāng)系統(tǒng)調(diào)用對設(shè)備進(jìn)行存取的驅(qū)動程序函數(shù)時,驅(qū)動程序可以對后臺任務(wù)聲明這個信號。如果驅(qū)動程序本身沒有這個功能,工程師可以先修改驅(qū)動程序的源代碼,然后加以重新編譯,以提供這個功能,但這樣將使驅(qū)動器不是標(biāo)準(zhǔn)的驅(qū)動程序。如果必須確保相關(guān)源代碼及程序可與驅(qū)動器程序庫的新版兼容,可以選擇一個具有較高可移植性的解決方案,這個方案將實(shí)現(xiàn)一套函數(shù)或宏,這套函數(shù)或宏發(fā)送復(fù)位信號,然后調(diào)用標(biāo)準(zhǔn)的驅(qū)動器。
活動監(jiān)控功能也可以利用硬件實(shí)現(xiàn)。外設(shè)進(jìn)行存取時,計(jì)時器可以監(jiān)控硬件的活動信號。計(jì)時器是自由運(yùn)行的計(jì)數(shù)器,每當(dāng)受監(jiān)控信號被聲明后,計(jì)時器便會復(fù)位。如果計(jì)時器出現(xiàn)溢位,便會向CPU發(fā)出中斷信號,中斷服務(wù)例行程序隨后便會關(guān)閉相關(guān)的外設(shè)。
硬件監(jiān)控器的響應(yīng)可能比軟件監(jiān)控程序快,但對于監(jiān)控外設(shè)的監(jiān)控程序來說,速度通常并不重要。即使利用軟件方案關(guān)閉顯示器背光系統(tǒng)會出現(xiàn)100ms的延遲,但對電池壽命來說,所產(chǎn)生的影響可以說微不足道。而且,完全利用軟件進(jìn)行監(jiān)控的解決方案也比較容易實(shí)現(xiàn),因?yàn)榛顒颖O(jiān)控程序只需集中處理一項(xiàng)工作,而且工程師可以只理解源代碼,不必對硬件計(jì)時器的結(jié)構(gòu)有任何了解。此外,軟件方案具有較高的可移植性,因?yàn)樗粫窒抻谌魏翁囟ǖ挠布?jì)時器實(shí)現(xiàn)。但軟件方案需要占用較多的CPU帶寬,如果系統(tǒng)需要經(jīng)常對受監(jiān)控的外設(shè)進(jìn)行存取,這是一個需要慎重考慮的問題。
評論