基于WinCE驅(qū)動程序的電源管理研究與設計
0 引言
本文引用地址:http://2s4d.com/article/175098.htmW inCE 的兩種模型是本機的設備驅(qū)動程序和流接口的驅(qū)動 程對于通常的嵌入式電子設備, 尤其是不能長久地連接交流電源的嵌入式電子設備, 降低顯示設備的耗電一直是電源管理的主要任務。目前, 有許多類型的顯示設備, 但現(xiàn)代大多數(shù)產(chǎn)品都選用反射式薄膜晶體管 ( TFT ) 顯示加背光燈作為顯示設備。雖然在光線充足的情況下可以看清屏幕上的內(nèi)容, 但是考慮到閱讀的舒適度, 還是需要把背光燈打開。 基于 W indow s CE 的嵌入式系統(tǒng)終端通 常以電池供電。因此, 背光驅(qū)動電源管理的作用顯得尤為關(guān)鍵。如何減少目標系統(tǒng)的不必要的耗電, 延長其待機時間, 就成了 W indow s CE 操作系統(tǒng)電源管理設計與開發(fā)的一個重要內(nèi)容。
本文從WinCE 的流接口設備驅(qū)動程序出發(fā), 詳細介紹了基于 Window s CE 操作系統(tǒng)電源管理策 略和基本原理, 并且在WinCE 背光驅(qū)動中實現(xiàn)了電源管理的設計與開發(fā)。
1 Window CE 驅(qū)動程序架構(gòu)
目前,WinCE 提供了四種設備模型, 其中兩種是專門用于 WinCE 的模型,另外兩種模型來自其他操作系統(tǒng)。基于WinCE 的兩種模型是本機的設備驅(qū)動程序和流接口的驅(qū)動程序。兩種外部模型用于通用串行總線(USB) 和網(wǎng)絡驅(qū)動器接口標準(NDIS) 驅(qū)動程序。其中流接口驅(qū)動程序是為連接到基于WinCE 平臺的外圍設備而設計的, 這些外圍設備包括SD 卡、攝像頭、打印機等,其驅(qū)動模型如圖1 所示。本文基于S3C2440A 的ARM9 開發(fā)板上LCD 顯示屏的背光控制流接口驅(qū)動程序, 詳細分析WinCE 下背光驅(qū)動的電源管理開發(fā)實現(xiàn)流程。
圖1 Window s CE 流接口驅(qū)動模型
從圖1 可以看出, 外圍設備由設備驅(qū)動程序管理, 用戶應用程序通過調(diào)用文件系統(tǒng)從而實現(xiàn)對外部物理設備的訪問, 流接口驅(qū)動程序通過把外圍設備表示為文件系統(tǒng)的一個特殊文件, 而使得應用程序在使用外圍設備時就像打開、關(guān)閉一個文件一樣簡單。
2 Window CE 電源管理
2.1 電源管理架構(gòu)和電源管理器
電源管理的總體結(jié)構(gòu)如圖2 所示。電源管理器直接或者間接地與應用程序和驅(qū)動程序交互。電源管理器與驅(qū)動程序主要通過驅(qū)動程序接口進行交互, 與應用程序通過API 和提醒接口進行交互。其中, 電源管理器專門負責管理設備電源狀態(tài), 從而提高操作系統(tǒng)的整體電源效率, 并且與不支持電源管理的驅(qū)動程序相兼容。電源管理器在操作系統(tǒng)中的軟件實體是動態(tài)鏈接庫pm. dll, 它由設備管理器device. dll 加載到Windows CE 的內(nèi)核進程中運行。
圖2 電源管理架構(gòu)示意圖
使用電源管理器, 設備接收作為I/ O 控制代碼(IOCT L)形式的電源狀態(tài)變化的通知。使用IOCT L 管理電源可以區(qū)分設備的電源狀態(tài)與整個操作系統(tǒng)的電源狀態(tài)。這樣, 當操作系統(tǒng)正在運行時, 一些設備可以關(guān)閉自己的電源, 而當操作系統(tǒng)掛起時, 另外一些設備可以保持原有狀態(tài)。
2.2 Windows CE設備電源狀態(tài)和系統(tǒng)電源狀態(tài)
電源管理器期望所有被管理的設備都支持一個或者多個設備電源狀態(tài), 設備必須向電源管理器報告它們的電源消耗特征, 設備電源狀態(tài)通常需要在性能與電量消耗之間進行折中。
電源狀態(tài)包括系統(tǒng)電源狀態(tài)和設備電源狀態(tài)。設備管理器在由OEM 定義的系統(tǒng)電源狀態(tài)的范圍內(nèi)管理設備電源狀態(tài), 系統(tǒng)電源狀態(tài)對設備電源狀態(tài)施加了一個上界。
Window s CE 的設備電源狀態(tài)是操作系統(tǒng)的靜態(tài)的預定義電源狀態(tài)。外設的驅(qū)動程序從電源管理器處接收改變設備電源狀態(tài)的請求, 將它轉(zhuǎn)換成外設可以支持的電源狀態(tài), 并且負責最后實現(xiàn)在物理外設上的電源狀態(tài)改變。
Window s CE 提供5 種預定義的設備電源狀態(tài)。它們在注冊表中也有相對應的鍵。如果以Dn 代表D0~ D4, 則n 的數(shù)字越小的電源狀態(tài)等級下外設的耗電量越大, 如表1 所列。
表1 設備電源狀態(tài)
Window s CE 操作系統(tǒng)的系統(tǒng)電源狀態(tài)與設備電源狀態(tài)性質(zhì)完全不同, 它不是靜態(tài)定義的, 而是由OEM 用戶根據(jù)需要自定義。OEM 用戶通過配置系統(tǒng)注冊表定義系統(tǒng)的電源狀態(tài),系統(tǒng)電源狀態(tài)的名稱被定義成注冊表項的名字。圖3 描述了Window s CE 支持4 種最典型的系統(tǒng)電源狀態(tài)的轉(zhuǎn)換。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論