Windows Mobile電源管理分析與實現(xiàn)
如今在以數(shù)碼消費產(chǎn)品為代表的嵌入式系統(tǒng)領域,大多數(shù)系統(tǒng)采用電池供電,由于電池容量有限,這使得實現(xiàn)產(chǎn)品的低功耗,延長待機時間成為一個重要的課題。在已確定硬件電路功耗的情況下,提高電池電源的使用效率是實現(xiàn)低功耗的一個重要任務,其基本思想是在系統(tǒng)中沒有任務等待運行時,把系統(tǒng)置于盡可能低的能量狀態(tài),等到有任務需要執(zhí)行時,再將其快速喚醒,盡可能有效地利用功耗。
1 Windows Mobile中的電源管理
WinCE系列操作系統(tǒng)中的電源管理模塊正是出于后者的考慮而出現(xiàn)的,圖1為電源管理(Power Manager)的運行機制。該模塊根據(jù)系統(tǒng)實際運行情況,以CPU為中心,管理器件和外設的功耗狀態(tài),實現(xiàn)系統(tǒng)在不同電源狀態(tài)間的轉(zhuǎn)換,從而在保證系統(tǒng)性能的前提下降低功耗。而Windows Mobile系統(tǒng)針對其專用于移動通信平臺的特點,對電源管理部分做了進一步的定制,使其具有更好的效能,進一步提高系統(tǒng)的電源效率。
Power Manager的實現(xiàn)在軟件上需要OS內(nèi)核、驅(qū)動層及應用層的協(xié)作,對于預先定義好的系統(tǒng)電源狀態(tài),Power Manager將這些狀態(tài)映射到具體的CPU電源狀態(tài)和設備電源狀態(tài),在系統(tǒng)電源狀態(tài)切換時就會執(zhí)行對應的CPU和外設的電源狀態(tài)切換操作。
1.1 電源管理與系統(tǒng)其他部分的交互
在Windows Mobile中Power Manager以名為PM.dll的動態(tài)鏈接庫形式在啟動時被設備管理器De-vice.exe加載,如圖2所示。
應用程序可通過API申請將系統(tǒng)電源置于一定的狀態(tài),同時也可申請將指定設備設置于特定的電源狀態(tài),應用程序也可以申請電源狀態(tài)通知,以便在系統(tǒng)電源狀態(tài)切換時收到消息以執(zhí)行對應的操作。當需要切換系統(tǒng)電源狀態(tài)時,電源管理模塊與電源管理的設備通信,進而調(diào)用這些設備的電源相關函數(shù),實現(xiàn)對這些設備的電源管理,同時如果有應用程序或設備驅(qū)動申請了電源狀態(tài)通知,則電源管理模塊會向消息隊列中發(fā)送消息。
評論