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