日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]為了降低嵌入式終端系統(tǒng)的功耗、延長系統(tǒng)的待機(jī)時(shí)間和電池的使用壽命, 設(shè)計(jì)了一種 基于Windows CE 操作系統(tǒng) 的嵌入式終端背光驅(qū)動(dòng)的電源管理系統(tǒng); 分析了 WinCE 下的流接口驅(qū)動(dòng)程序模型和電源管理架構(gòu), 研究了背光驅(qū)動(dòng)程序的電源管理策略, 包括設(shè)備電源狀態(tài)和系統(tǒng)電源狀態(tài)的變化以及 IOCTL 操作碼的使用; 最后, 通過在注冊(cè)表中設(shè)置指定時(shí)間的超時(shí)值, 完成了顯示設(shè)備的背光驅(qū)動(dòng)的設(shè)計(jì), 合理的節(jié)省了移動(dòng)設(shè)備的電能, 滿足了系統(tǒng)對(duì)背光的控制需求。

0 引言

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

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

目前,WinCE 提供了四種設(shè)備模型, 其中兩種是專門用于 WinCE 的模型,另外兩種模型來自其他操作系統(tǒng)?;赪inCE 的兩種模型是本機(jī)的設(shè)備驅(qū)動(dòng)程序和流接口的驅(qū)動(dòng)程序。兩種外部模型用于通用串行總線(USB) 和網(wǎng)絡(luò)驅(qū)動(dòng)器接口標(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 開發(fā)板上LCD 顯示屏的背光控制流接口驅(qū)動(dòng)程序, 詳細(xì)分析WinCE 下背光驅(qū)動(dòng)的電源管理開發(fā)實(shí)現(xiàn)流程。

 

 

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

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

2 Window CE 電源管理

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

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

 

 

圖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)

 

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

 

 

圖3 系統(tǒng)電源狀態(tài)的轉(zhuǎn)換

3 背光驅(qū)動(dòng)的電源管理

3.1 LCD 背光的電源管理策略

背光驅(qū)動(dòng)啟動(dòng)一個(gè)監(jiān)視工作線程, 不停的等待3 個(gè)事件:

3.1.1 BackLightChang eEv ent

等待注冊(cè)表中時(shí)鐘的更新, 在注冊(cè)表的時(shí)鐘更新之后總是將背光燈打開。

dw Resul t = WaitForMul tipleObject s( NUM _EVENT S, & g_evtSignal[ 0] , FALSE, dw Tim eout ) ;

if ( WAIT _OBJECT_0 = = dw Res ult ) {

BL_ReadRegist ry( & g_BLInf o) ;

BL_On( TRUE) ;

}

3.1.2 Pow erChangedEv ent

供電電源發(fā)生變化, 例如插入了電源, 監(jiān)視線程會(huì)獲得了這個(gè)事件。如果使用電源, 可以使用m _ dw ACTimeout 值作為超時(shí)值, 否則, 使用m _ dw Batter yT imeout 值作為超時(shí)值。

if ( dw Result = = WAIT_OBJECT _0+ BL_POWERE VT) {

if ( IsACOn( ) ) {

dw Timeout = g_BLInf o. m_dw ACTim eout * 1000;

}

else {

dw Timeout = g_BLInf o. m_dw Bat t eryT imeout * 1000;

}

}

3.1.3 Pow erM anag er/ ActivityTimer / UserActivity

等待用戶輸入事件,如果用戶有按鍵動(dòng)作,則無論電源插上與否背光驅(qū)動(dòng)都打開,否則,等待超時(shí)事件的發(fā)生, 將背光驅(qū)動(dòng)關(guān)閉。

if ( dw Result = = WAIT_OBJECT _0+ 1 | | dwResult = = WAIT _OBJECT _0 + BL_BUT TONEVT )

{

if ( IsACOn( ) ) {

if ( g_BLIn fo. m_bAC Au t o) {

BL_On( TRUE) ; }

}

else {

if ( g_BLIn fo. m_bBat t eryAut o) {

BL_On( TRUE) ; }

}

}

else if ( dw Result = = WAIT_T IMEOUT ) {

BL_On( FALSE) ;

}

注冊(cè)表的超時(shí)值決定了背光燈的工作時(shí)間。在注冊(cè)表中進(jìn)行如下超時(shí)值的設(shè)置:

[ H KEY_CURRE NT_USER/ Cont rolPanel / Backlight ]

"AC Timeout "= dword: 3c / / 十六進(jìn)制, 十進(jìn)制為60

"Bat t eryT imeout "= dw ord: 1e / / 十六進(jìn)制, 十進(jìn)制為30[!--empirenews.page--]

3.2 創(chuàng)建支持電源管理的背光驅(qū)動(dòng)

要想獲得電源管理的功能支持, 首先要使電源管理器可以識(shí)別背光驅(qū)動(dòng)程序。為此, 背光驅(qū)動(dòng)需要向設(shè)備管理器聲明一個(gè)特殊的代表電源管理的設(shè)備類型的GUID.具體操作是在Active 注冊(cè)表鍵的IClass 表項(xiàng)中增加一個(gè)GUID.在Platform.reg 文件中添加如下:

"IClass "= "{ A32942B7- 920C- 486b - B0E6 - 92A702A99B35} "; Pow er- manageable generi c

3.3 在背光驅(qū)動(dòng)中添加對(duì)I/O 控制代碼( IOCTL) 的支持

在背光驅(qū)動(dòng)被通知為支持電源管理的驅(qū)動(dòng)后, 只需處理來自電源管理器的DeviceIoControl 調(diào)用。電源管理器使用如表2所示的IOCTL 代碼與背光燈進(jìn)行通信。

表2 電源管理的IOCTL 操作碼

 

 

其中IOCTL _ POWER _ CAPABILITIES 是支持任何一個(gè)支持電源管理的流接口驅(qū)動(dòng)程序所必須實(shí)現(xiàn)的。

3.4 IOCTL 代碼的實(shí)現(xiàn)

在驅(qū)動(dòng)程序被加載到系統(tǒng)中的初始階段, 背光驅(qū)動(dòng)首先將設(shè)備電源狀態(tài)置于D0 狀態(tài), 然后電源管理器通過IOCTL _POWER _ CAPABILITIES 操作碼調(diào)用它的IOControl 函數(shù)。

在向設(shè)備發(fā)出查詢時(shí), 背光驅(qū)動(dòng)詳細(xì)的報(bào)告該設(shè)備的電源管理能力, 以便將自己納入到系統(tǒng)的電源管理策略中去。如果本次的查詢電源管理支持能力的操作失敗, 則電源管理器將會(huì)認(rèn)為該設(shè)備驅(qū)動(dòng)程序不支持其他4 個(gè)電源管理IOCTL 操作碼。具體代碼如下:

cas e IOCT L_POWER_CAPABILIT IES :

{

PPOWER_CAPABILIT IES ppc;

if ( ! pdw ActualOu t | | ! pBufOut | | ( dw LenOut < sizeof

( POWE R_CAPABILITIES) ) )

{

RetVal = FALSE ;

dw Er r = ERROR_INVALID_PARAMET ER;

break;

}

ppc = ( PPOWER_C APABILITIES ) pBufOut ;

m ems et ( ppc, 0, sizeof ( POWER_CAPABILIT IE S) ) ;

ppc- > DeviceDx = 0x11; / / 支持D0, D4 兩種設(shè)備電源狀態(tài)

ppc- > Pow er[ D0] = 25000; / / 25 m = 25000 uA

* pdw ActualOut = siz eof (POWE R_CAPABILITIES) ;

} break;

在初始階段完成后, 電源管理器可以根據(jù)電源管理策略調(diào)用IOCTL _ POWER _ SET 調(diào)整設(shè)備的電源狀態(tài)。在實(shí)現(xiàn)對(duì)IOCTL _ POWER _ SET 支持時(shí), 開發(fā)背光驅(qū)動(dòng)需要注意的是設(shè)備并不一定具備所有五種設(shè)備電源狀態(tài), 但至少工作在D0狀態(tài)和D4 狀態(tài)。

3.5 休眠和喚醒的處理

電源休眠喚醒是延長系統(tǒng)電源工作時(shí)間的一項(xiàng)重要技術(shù)。在系統(tǒng)進(jìn)入休眠狀態(tài)時(shí), 驅(qū)動(dòng)程序應(yīng)該關(guān)閉設(shè)備的電源, 即使該設(shè)備由于應(yīng)用程序的請(qǐng)求不處于D4 狀態(tài)。背光驅(qū)動(dòng)通過BAK _ Pow erDown 和BAK _ PowerUp 接收系統(tǒng)休眠和喚醒的通知, 這些通知在內(nèi)核調(diào)用OEMPowerOff 之前發(fā)出, 并處于中斷上下文中。

4 背光驅(qū)動(dòng)測試

將背光驅(qū)動(dòng)打包進(jìn)內(nèi)核鏡像文件, 下載到開發(fā)平臺(tái), 打開系統(tǒng)顯示屬性, 在使用電池電源供電的情況下, 如果用戶在30s 之內(nèi)沒有活動(dòng), 那么LCD 的背光燈將進(jìn)入空閑狀態(tài); 在使用外部電源供電的情況下, 如果用戶在1 分鐘內(nèi)沒有活動(dòng),那么LCD 的背光燈也將進(jìn)入空閑狀態(tài)。

5 結(jié)論

本文設(shè)計(jì)了一種基于Window s CE 操作系統(tǒng)的嵌入式終端背光驅(qū)動(dòng)的電源管理系統(tǒng)。在分析流接口驅(qū)動(dòng)和WinCE 操作系統(tǒng)電源管理的基礎(chǔ)上, 結(jié)合電源管理的IOCT L 操作碼, 完成了背光驅(qū)動(dòng)電源管理系統(tǒng)的設(shè)計(jì), 并給出了背光驅(qū)動(dòng)程序電源管理部分實(shí)現(xiàn)的關(guān)鍵性代碼。經(jīng)過測試, 背光驅(qū)動(dòng)程序可以有效地控制LCD 背光燈的電力消耗, 也能夠與整個(gè)系統(tǒng)的電源狀態(tài)協(xié)調(diào)一致, 系統(tǒng)對(duì)背光的控制滿足設(shè)計(jì)需求。最后, 本文對(duì)WinCE 操作系統(tǒng)下背光驅(qū)動(dòng)電源管理策略的研究, 對(duì)設(shè)計(jì)其他同類嵌入式終端產(chǎn)品驅(qū)動(dòng)程序電源管理系統(tǒng)也具有重要的指導(dǎo)意義和參考價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

中國上海,2025 年9月9日 — Nexperia 每年增加 800 多種新產(chǎn)品類型。2024 年,僅模擬和電源管理應(yīng)用便推出了超過 70 種新部件。為支持 Nexperia 產(chǎn)品擴(kuò)展,e絡(luò)盟緊跟其不斷擴(kuò)大的產(chǎn)品組合,...

關(guān)鍵字: 電源管理 SiC 二極管

隨著汽車電子設(shè)備日益復(fù)雜,車企對(duì)體積緊湊、高能效、可靠的解決方案的需求不斷增長,多輸出功率開關(guān)在集成度、成本效益、故障診斷和能效方面優(yōu)勢(shì)愈發(fā)明顯?,F(xiàn)代汽車工業(yè)越來越依賴眾多的低功率電子模塊,例如,傳感器、LED和繼電器。...

關(guān)鍵字: 功率開關(guān) 電源管理 傳感器

與計(jì)算和仿真工具相比,電源架構(gòu)的設(shè)計(jì)工具并未得到廣泛使用。然而,這些工具在電路電源系統(tǒng)的開發(fā)過程中起到至關(guān)重要的作用。作為電源開發(fā)流程的初始環(huán)節(jié),這些工具為創(chuàng)建出色的電源架構(gòu)奠定了基礎(chǔ)。

關(guān)鍵字: 電源架構(gòu) 電路電源系統(tǒng) 電源管理

在當(dāng)今的電子設(shè)備領(lǐng)域,隨著技術(shù)的飛速發(fā)展,設(shè)備對(duì)于電源管理的要求越來越高。從智能手機(jī)、平板電腦等便攜式設(shè)備,到復(fù)雜的通信基站、工業(yè)控制系統(tǒng),電源的穩(wěn)定、高效供應(yīng)都是保障設(shè)備正常運(yùn)行的關(guān)鍵。低壓 LDO(Low Dropo...

關(guān)鍵字: 電源管理 穩(wěn)壓器 低壓差

新聞?wù)? 在OCP亞太峰會(huì)上,偉創(chuàng)力推出了專為NVIDIA GB300 NVL72平臺(tái)設(shè)計(jì)的新型電源架,該平臺(tái)配備72顆NVIDIA Blackwell Ultra...

關(guān)鍵字: 偉創(chuàng)力 英偉達(dá) 電源管理 AI

在現(xiàn)代電子設(shè)備中,電源管理系統(tǒng)的性能對(duì)于設(shè)備的整體表現(xiàn)至關(guān)重要。低壓差線性穩(wěn)壓器(Low Dropout Regulator,LDO)作為電源管理的關(guān)鍵組件,在確保穩(wěn)定輸出電壓的同時(shí),以其低壓差、低功耗的特性,滿足了眾多...

關(guān)鍵字: 電源管理 低壓差 線性穩(wěn)壓器

在當(dāng)今數(shù)字化時(shí)代,電子設(shè)備的廣泛應(yīng)用使得電源管理成為了一個(gè)至關(guān)重要的領(lǐng)域。從智能手機(jī)、筆記本電腦到數(shù)據(jù)中心、電動(dòng)汽車,高效的電源管理對(duì)于設(shè)備的性能、能效和尺寸都起著決定性作用。近年來,氮化鎵(GaN)技術(shù)的興起,為電源管...

關(guān)鍵字: 氮化鎵 電源管理 寬禁帶

在現(xiàn)代電子系統(tǒng)中,電源管理是確保系統(tǒng)穩(wěn)定、高效運(yùn)行的關(guān)鍵環(huán)節(jié)。隨著系統(tǒng)復(fù)雜性的不斷增加,多個(gè)組件可能需要不同的電源軌,且這些電源軌的上電和斷電順序往往有著嚴(yán)格要求。負(fù)載開關(guān)作為一種可用于開啟和關(guān)閉系統(tǒng)中電源軌的電子繼電器...

關(guān)鍵字: 電源管理 上電 斷電

協(xié)議旨在整合利用Microchip mSiC?技術(shù)與臺(tái)達(dá)智能節(jié)能解決方案,加速可持續(xù)應(yīng)用開發(fā)

關(guān)鍵字: 碳化硅 電源管理 MOSFET

在汽車和工業(yè)電子領(lǐng)域,電源管理的高效性與穩(wěn)定性至關(guān)重要。隨著技術(shù)的不斷進(jìn)步,系統(tǒng)對(duì)于電源的要求日益嚴(yán)苛,不僅需要應(yīng)對(duì)復(fù)雜多變的輸入電壓條件,還得確保在各種工況下都能為負(fù)載提供穩(wěn)定、高效的電力支持。升壓電源拓?fù)浣Y(jié)構(gòu)因能顯著...

關(guān)鍵字: 電源管理 升壓 控制器
關(guān)閉