移動(dòng)嵌入式WinCE電源管理應(yīng)對(duì)有技巧
(2)改變電源狀態(tài)
應(yīng)用程序能通過(guò)一系列的方式改變系統(tǒng)的電源狀態(tài),在WinCE中首選的方式是使用電源管理程序。電源管理程序提供函數(shù)來(lái)允許應(yīng)用程序來(lái)控制電源狀態(tài),如應(yīng)用程序通過(guò)調(diào)用函數(shù)SetSystemPowerState來(lái)請(qǐng)求特定的電源狀態(tài)。一般有兩個(gè)方式來(lái)控制電源,第一個(gè)方式是應(yīng)用程序給定一個(gè)電源設(shè)定;第二個(gè)方式是應(yīng)用程序請(qǐng)求電源狀態(tài)不要低于給定的級(jí)別。
常見(jiàn)的例如:①關(guān)閉電源,應(yīng)用程序通過(guò)調(diào)用GwesPowerOffSystem函數(shù)掛起系統(tǒng),如函數(shù)void GwesPowerOffSystem(void)的調(diào)用就會(huì)掛起系統(tǒng)。② 關(guān)閉屏幕,如果系統(tǒng)是有色背光顯示,那么主要的電源消耗不是CPU而是背光。在某一些環(huán)境下,一個(gè)應(yīng)用程序運(yùn)行時(shí)并不需要顯示在屏幕上。例如音樂(lè)播放器應(yīng)用程序,當(dāng)用戶聽(tīng)音樂(lè)的時(shí)候不關(guān)注屏幕,在這些情形下關(guān)閉背光將意味著提高電池壽命。當(dāng)然,當(dāng)用戶想看屏幕時(shí),任何關(guān)閉背光應(yīng)用程序就需要一個(gè)簡(jiǎn)單的方式來(lái)重新打開(kāi)屏幕。顯示控制是通過(guò)Ext-Escape函數(shù)實(shí)現(xiàn),這個(gè)函數(shù)允許應(yīng)用程序打開(kāi)或關(guān)閉顯示。另外,WinCE沒(méi)有一個(gè)統(tǒng)一的方式來(lái)控制背光的亮度,每個(gè)系統(tǒng)都有它自己的OEM特有方式來(lái)控制背光亮度。③打開(kāi)系統(tǒng)電源,意思是說(shuō)當(dāng)被掛起的應(yīng)用程序要再次運(yùn)行時(shí),必須要有一個(gè)方式來(lái)喚醒一個(gè)掛起的系統(tǒng)電源。方法可以是應(yīng)用程序通過(guò)使用消息API(Notification API)把系統(tǒng)喚醒。在一般情況下,OEM廠商會(huì)分配一些中斷條件以便電源打開(kāi)或喚醒。
(3)防止系統(tǒng)關(guān)閉電源
另一方面,防止系統(tǒng)掛起也是一個(gè)重要的問(wèn)題。WinCE系統(tǒng)通常被設(shè)置為當(dāng)一段時(shí)間沒(méi)有用戶輸入就自動(dòng)掛起。因此,如果定時(shí)器到達(dá)預(yù)先的沒(méi)有用戶輸入的間隔,系統(tǒng)會(huì)自動(dòng)掛起。當(dāng)要防止自動(dòng)掛起時(shí),應(yīng)用程序可以周期性地調(diào)用這個(gè)函數(shù):void WINAPI SystemIdleTimerReset (void),這個(gè)函數(shù)能重設(shè)WinCE用來(lái)監(jiān)視用戶輸入的定時(shí)器。所以當(dāng)一個(gè)應(yīng)用程序需要更改超時(shí)值時(shí),就可以通過(guò)調(diào)用SystemIdleTimerReset把掛起超時(shí)值改變。一般來(lái)說(shuō),WinCE系統(tǒng)維護(hù)三個(gè)超時(shí)值,防止電源被自動(dòng)掛起可以使用SystemParametersInfo來(lái)查詢這三個(gè)值,并在最短時(shí)間內(nèi)返回調(diào)用SystemIdleTimerReset。如果超時(shí)值被設(shè)置為0,表示超時(shí)值被禁止。
(4)電源通知
最后,電源管理程序還有一個(gè)十分受歡迎的特點(diǎn),就是可以在系統(tǒng)電源狀態(tài)改變時(shí)通知應(yīng)用程序,這可以讓應(yīng)用程序從手動(dòng)檢測(cè)電源狀態(tài)中解脫出來(lái)。應(yīng)用程序通過(guò)調(diào)用RequestPowerNotifications請(qǐng)求電源管理程序當(dāng)電源狀態(tài)改變的時(shí)候,發(fā)送一個(gè)通知給應(yīng)用程序,電源管理程序再通過(guò)一個(gè)由應(yīng)用程序建立的消息隊(duì)列發(fā)送此通知。
總之,嵌入式電源管理在WinCE系統(tǒng)是一個(gè)快速發(fā)展的研究課題。它對(duì)移動(dòng)嵌入式產(chǎn)品的設(shè)計(jì)具有關(guān)鍵性影響,一個(gè)高效的電源管理設(shè)計(jì)可以幫助移動(dòng)嵌入式產(chǎn)品在市場(chǎng)競(jìng)爭(zhēng)中脫穎而出,克敵制勝。
評(píng)論