中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 電池管理及監(jiān)控設(shè)計(jì)

        電池管理及監(jiān)控設(shè)計(jì)

        作者: 時(shí)間:2009-03-13 來源:網(wǎng)絡(luò) 收藏


        3. 驅(qū)動(dòng)模型和驅(qū)動(dòng)初始化過程

        Window CE中包含的樣本設(shè)備驅(qū)動(dòng)程序分為兩種類型:單片驅(qū)動(dòng)程序(Monolithic device driver)和分層驅(qū)動(dòng)程序(Layered Device driver)。采用分層開發(fā)模式可以降低開發(fā)難度,縮短開發(fā)周期,在驅(qū)動(dòng)開發(fā)中使用分層驅(qū)動(dòng)開發(fā)模式。

        分層驅(qū)動(dòng)程序由兩個(gè)獨(dú)立的層組成:上層是模型設(shè)備驅(qū)動(dòng)程序(MDD),下層是依賴平臺(tái)的驅(qū)動(dòng)程序(PDD)。設(shè)備驅(qū)動(dòng)程序服務(wù)器提供的接口(DDSI)是在PDD中實(shí)現(xiàn)的函數(shù)集,并由MDD調(diào)用。由于微軟提供了所有與MDD模塊相關(guān)的源代碼,所以對這部分不用做任何改動(dòng),只需將自己的PDD模塊與MDD模塊鏈結(jié)成一個(gè)公用庫即可[3]。MDD通過IoCTLS調(diào)用PDD中的特定函數(shù)來訪問硬件的具體特性。

        Windows CE驅(qū)動(dòng)要求的MDD函數(shù)包括:
        Init、Deinit、Open、Close、Read、Write、Seek、PowerDown、PowerUp、IOControl。
        Windows CE電池驅(qū)動(dòng)要求的PDD函數(shù)包括:
        BatteryPDDInitialize、BatteryPDDDeinitialize、BatteryPDDGetStatus、BatteryPDDGetLevels、
        BatteryPDDSupportsChangeNotification、BatteryPDDPowerHandler、 BatteryPDDResume。

        電池驅(qū)動(dòng)初始化過程

        在系統(tǒng)上電自檢成功后,上層調(diào)用電池驅(qū)動(dòng)入口函數(shù),進(jìn)行電池驅(qū)動(dòng)初始化工作:

        (1)判斷是否已經(jīng)進(jìn)行中斷事件初始化,如果沒有初始化,則進(jìn)行下面的操作,如果已經(jīng)進(jìn)行了一次初始化,則關(guān)閉事件句柄。
        (2)初始化電池全局變量。
        (3)如果中斷事件成功,則調(diào)用ResumeThreadProc創(chuàng)建電池線程。在線程的主調(diào)函數(shù)中,設(shè)置電池線程的優(yōu)先級(jí),然后在循環(huán)中等待中斷事件。
        (4)調(diào)用PDD層的初始化函數(shù)BatteryPDDInitialize;在PDD層中,為GPIO寄存器和電源寄存器開辟兩段虛擬內(nèi)存。
        (5)初始化AC97的寄存器。
        (6)初始化存放電池電量值的環(huán)形緩沖區(qū)。
        (7)調(diào)用BatteryAPIGetSystemPowerStatusEx2函數(shù)更新電池電量結(jié)構(gòu)體PSYSTEM POWERSTATUS_ EX2中的數(shù)據(jù)。

        4. BatteryAPIGetSystemPowerStatusEx函數(shù)

        BatteryAPIGetSystemPowerStatusEx函數(shù)主要獲取系統(tǒng)電源狀態(tài)值。在執(zhí)行過程中是通過調(diào)用BatteryAPIGetSystemPowerStatusEx2函數(shù)來完成的。而BatteryAPIGetSystemPowerStatusEx2函數(shù)調(diào)用BatteryPDDGetStatus函數(shù)以獲取電池狀態(tài)信息,BatteryPDDGetStatus函數(shù)通過調(diào)用GetMainBatteryVoltage獲取主電池電壓值,通過調(diào)用GetPowerDevStatus獲取電池設(shè)備狀態(tài),并獲取剩余電量的比例值。下圖3為BatteryAPIGetSystemPowerStatusEx函數(shù)調(diào)用關(guān)系圖:


        5. CalcMainBatteryVoltage獲取電池電壓值



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉