基于WinCE驅動程序的電源管理研究與設計
0 引言
本文引用地址:http://www.104case.com/article/175098.htmW inCE 的兩種模型是本機的設備驅動程序和流接口的驅動 程對于通常的嵌入式電子設備, 尤其是不能長久地連接交流電源的嵌入式電子設備, 降低顯示設備的耗電一直是電源管理的主要任務。目前, 有許多類型的顯示設備, 但現代大多數產品都選用反射式薄膜晶體管 ( TFT ) 顯示加背光燈作為顯示設備。雖然在光線充足的情況下可以看清屏幕上的內容, 但是考慮到閱讀的舒適度, 還是需要把背光燈打開。 基于 W indow s CE 的嵌入式系統終端通 常以電池供電。因此, 背光驅動電源管理的作用顯得尤為關鍵。如何減少目標系統的不必要的耗電, 延長其待機時間, 就成了 W indow s CE 操作系統電源管理設計與開發的一個重要內容。
本文從WinCE 的流接口設備驅動程序出發, 詳細介紹了基于 Window s CE 操作系統電源管理策 略和基本原理, 并且在WinCE 背光驅動中實現了電源管理的設計與開發。
1 Window CE 驅動程序架構
目前,WinCE 提供了四種設備模型, 其中兩種是專門用于 WinCE 的模型,另外兩種模型來自其他操作系統。基于WinCE 的兩種模型是本機的設備驅動程序和流接口的驅動程序。兩種外部模型用于通用串行總線(USB) 和網絡驅動器接口標準(NDIS) 驅動程序。其中流接口驅動程序是為連接到基于WinCE 平臺的外圍設備而設計的, 這些外圍設備包括SD 卡、攝像頭、打印機等,其驅動模型如圖1 所示。本文基于S3C2440A 的ARM9 開發板上LCD 顯示屏的背光控制流接口驅動程序, 詳細分析WinCE 下背光驅動的電源管理開發實現流程。

圖1 Window s CE 流接口驅動模型
從圖1 可以看出, 外圍設備由設備驅動程序管理, 用戶應用程序通過調用文件系統從而實現對外部物理設備的訪問, 流接口驅動程序通過把外圍設備表示為文件系統的一個特殊文件, 而使得應用程序在使用外圍設備時就像打開、關閉一個文件一樣簡單。
2 Window CE 電源管理
2.1 電源管理架構和電源管理器
電源管理的總體結構如圖2 所示。電源管理器直接或者間接地與應用程序和驅動程序交互。電源管理器與驅動程序主要通過驅動程序接口進行交互, 與應用程序通過API 和提醒接口進行交互。其中, 電源管理器專門負責管理設備電源狀態, 從而提高操作系統的整體電源效率, 并且與不支持電源管理的驅動程序相兼容。電源管理器在操作系統中的軟件實體是動態鏈接庫pm. dll, 它由設備管理器device. dll 加載到Windows CE 的內核進程中運行。

圖2 電源管理架構示意圖
使用電源管理器, 設備接收作為I/ O 控制代碼(IOCT L)形式的電源狀態變化的通知。使用IOCT L 管理電源可以區分設備的電源狀態與整個操作系統的電源狀態。這樣, 當操作系統正在運行時, 一些設備可以關閉自己的電源, 而當操作系統掛起時, 另外一些設備可以保持原有狀態。
2.2 Windows CE設備電源狀態和系統電源狀態
電源管理器期望所有被管理的設備都支持一個或者多個設備電源狀態, 設備必須向電源管理器報告它們的電源消耗特征, 設備電源狀態通常需要在性能與電量消耗之間進行折中。
電源狀態包括系統電源狀態和設備電源狀態。設備管理器在由OEM 定義的系統電源狀態的范圍內管理設備電源狀態, 系統電源狀態對設備電源狀態施加了一個上界。
Window s CE 的設備電源狀態是操作系統的靜態的預定義電源狀態。外設的驅動程序從電源管理器處接收改變設備電源狀態的請求, 將它轉換成外設可以支持的電源狀態, 并且負責最后實現在物理外設上的電源狀態改變。
Window s CE 提供5 種預定義的設備電源狀態。它們在注冊表中也有相對應的鍵。如果以Dn 代表D0~ D4, 則n 的數字越小的電源狀態等級下外設的耗電量越大, 如表1 所列。
表1 設備電源狀態

Window s CE 操作系統的系統電源狀態與設備電源狀態性質完全不同, 它不是靜態定義的, 而是由OEM 用戶根據需要自定義。OEM 用戶通過配置系統注冊表定義系統的電源狀態,系統電源狀態的名稱被定義成注冊表項的名字。圖3 描述了Window s CE 支持4 種最典型的系統電源狀態的轉換。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論