<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于WinCE驅(qū)動(dòng)程序的電源管理研究與設(shè)計(jì)

          基于WinCE驅(qū)動(dòng)程序的電源管理研究與設(shè)計(jì)

          作者: 時(shí)間:2013-06-10 來(lái)源:網(wǎng)絡(luò) 收藏

          0 引言

          本文引用地址:http://www.ex-cimer.com/article/175098.htm

          W inCE 的兩種模型是本機(jī)的設(shè)備驅(qū)動(dòng)程序和流接口的驅(qū)動(dòng) 程對(duì)于通常的電子設(shè)備, 尤其是不能長(zhǎng)久地連接交流電源的電子設(shè)備, 降低顯示設(shè)備的耗電一直是電源管理的主要任務(wù)。目前, 有許多類(lèi)型的顯示設(shè)備, 但現(xiàn)代大多數(shù)產(chǎn)品都選用反射式薄膜晶體管 ( TFT ) 顯示加背光燈作為顯示設(shè)備。雖然在光線(xiàn)充足的情況下可以看清屏幕上的內(nèi)容, 但是考慮到閱讀的舒適度, 還是需要把背光燈打開(kāi)。 基于 W indow s CE 的系統(tǒng)終端通 常以電池供電。因此, 背光驅(qū)動(dòng)電源管理的作用顯得尤為關(guān)鍵。如何減少目標(biāo)系統(tǒng)的不必要的耗電, 延長(zhǎng)其待機(jī)時(shí)間, 就成了 W indow s CE 操作系統(tǒng)電源管理設(shè)計(jì)與開(kāi)發(fā)的一個(gè)重要內(nèi)容。

          本文從WinCE 的流接口設(shè)備驅(qū)動(dòng)程序出發(fā), 詳細(xì)介紹了基于 Window s CE 操作系統(tǒng)電源管理策 略和基本原理, 并且在WinCE 背光驅(qū)動(dòng)中實(shí)現(xiàn)了電源管理的設(shè)計(jì)與開(kāi)發(fā)。

          1 Window CE 驅(qū)動(dòng)程序架構(gòu)

          目前,WinCE 提供了四種設(shè)備模型, 其中兩種是專(zhuān)門(mén)用于 WinCE 的模型,另外兩種模型來(lái)自其他操作系統(tǒng)?;赪inCE 的兩種模型是本機(jī)的設(shè)備驅(qū)動(dòng)程序和流接口的驅(qū)動(dòng)程序。兩種外部模型用于通用串行總線(xiàn)(USB) 和網(wǎng)絡(luò)接口標(biāo)準(zhǔn)(NDIS) 驅(qū)動(dòng)程序。其中流接口驅(qū)動(dòng)程序是為連接到基于WinCE 平臺(tái)的外圍設(shè)備而設(shè)計(jì)的, 這些外圍設(shè)備包括SD 卡、攝像頭、打印機(jī)等,其驅(qū)動(dòng)模型如圖1 所示。本文基于S3C2440A 的ARM9 開(kāi)發(fā)板上LCD 顯示屏的背光流接口驅(qū)動(dòng)程序, 詳細(xì)分析WinCE 下背光驅(qū)動(dòng)的電源管理開(kāi)發(fā)實(shí)現(xiàn)流程。

          圖1    Windows CE 流接口驅(qū)動(dòng)模型

          圖1 Window s CE 流接口驅(qū)動(dòng)模型

          從圖1 可以看出, 外圍設(shè)備由設(shè)備驅(qū)動(dòng)程序管理, 用戶(hù)應(yīng)用程序通過(guò)調(diào)用文件系統(tǒng)從而實(shí)現(xiàn)對(duì)外部物理設(shè)備的訪(fǎng)問(wèn), 流接口驅(qū)動(dòng)程序通過(guò)把外圍設(shè)備表示為文件系統(tǒng)的一個(gè)特殊文件, 而使得應(yīng)用程序在使用外圍設(shè)備時(shí)就像打開(kāi)、關(guān)閉一個(gè)文件一樣簡(jiǎn)單。

          2 Window CE 電源管理

          2.1 電源管理架構(gòu)和電源管理器

          電源管理的總體結(jié)構(gòu)如圖2 所示。電源管理器直接或者間接地與應(yīng)用程序和驅(qū)動(dòng)程序交互。電源管理器與驅(qū)動(dòng)程序主要通過(guò)驅(qū)動(dòng)程序接口進(jìn)行交互, 與應(yīng)用程序通過(guò)API 和提醒接口進(jìn)行交互。其中, 電源管理器專(zhuān)門(mén)負(fù)責(zé)管理設(shè)備電源狀態(tài), 從而提高操作系統(tǒng)的整體電源效率, 并且與不支持電源管理的驅(qū)動(dòng)程序相兼容。電源管理器在操作系統(tǒng)中的軟件實(shí)體是動(dòng)態(tài)鏈接庫(kù)pm. dll, 它由設(shè)備管理器device. dll 加載到Windows CE 的內(nèi)核進(jìn)程中運(yùn)行。

          圖2    電源管理架構(gòu)示意圖

          圖2 電源管理架構(gòu)示意圖

          使用電源管理器, 設(shè)備接收作為I/ O 代碼(IOCT L)形式的電源狀態(tài)變化的通知。使用IOCT L 管理電源可以區(qū)分設(shè)備的電源狀態(tài)與整個(gè)操作系統(tǒng)的電源狀態(tài)。這樣, 當(dāng)操作系統(tǒng)正在運(yùn)行時(shí), 一些設(shè)備可以關(guān)閉自己的電源, 而當(dāng)操作系統(tǒng)掛起時(shí), 另外一些設(shè)備可以保持原有狀態(tài)。

          2.2 Windows CE設(shè)備電源狀態(tài)和系統(tǒng)電源狀態(tài)

          電源管理器期望所有被管理的設(shè)備都支持一個(gè)或者多個(gè)設(shè)備電源狀態(tài), 設(shè)備必須向電源管理器報(bào)告它們的電源消耗特征, 設(shè)備電源狀態(tài)通常需要在性能與電量消耗之間進(jìn)行折中。

          電源狀態(tài)包括系統(tǒng)電源狀態(tài)和設(shè)備電源狀態(tài)。設(shè)備管理器在由OEM 定義的系統(tǒng)電源狀態(tài)的范圍內(nèi)管理設(shè)備電源狀態(tài), 系統(tǒng)電源狀態(tài)對(duì)設(shè)備電源狀態(tài)施加了一個(gè)上界。

          Window s CE 的設(shè)備電源狀態(tài)是操作系統(tǒng)的靜態(tài)的預(yù)定義電源狀態(tài)。外設(shè)的驅(qū)動(dòng)程序從電源管理器處接收改變?cè)O(shè)備電源狀態(tài)的請(qǐng)求, 將它轉(zhuǎn)換成外設(shè)可以支持的電源狀態(tài), 并且負(fù)責(zé)最后實(shí)現(xiàn)在物理外設(shè)上的電源狀態(tài)改變。

          Window s CE 提供5 種預(yù)定義的設(shè)備電源狀態(tài)。它們?cè)谧?cè)表中也有相對(duì)應(yīng)的鍵。如果以Dn 代表D0~ D4, 則n 的數(shù)字越小的電源狀態(tài)等級(jí)下外設(shè)的耗電量越大, 如表1 所列。

          表1 設(shè)備電源狀態(tài)

          表1    設(shè)備電源狀態(tài)

          Window s CE 操作系統(tǒng)的系統(tǒng)電源狀態(tài)與設(shè)備電源狀態(tài)性質(zhì)完全不同, 它不是靜態(tài)定義的, 而是由OEM 用戶(hù)根據(jù)需要自定義。OEM 用戶(hù)通過(guò)配置系統(tǒng)注冊(cè)表定義系統(tǒng)的電源狀態(tài),系統(tǒng)電源狀態(tài)的名稱(chēng)被定義成注冊(cè)表項(xiàng)的名字。圖3 描述了Window s CE 支持4 種最典型的系統(tǒng)電源狀態(tài)的轉(zhuǎn)換。

          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();