国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      通用串行總線設(shè)備選擇休眠的實(shí)現(xiàn)方法及相關(guān)的裝置的制作方法

      文檔序號(hào):6464400閱讀:188來源:國(guó)知局
      專利名稱:通用串行總線設(shè)備選擇休眠的實(shí)現(xiàn)方法及相關(guān)的裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及USB (Universal Serial Bus,通用串行總線)技術(shù)領(lǐng)域,尤其 涉及一種USB設(shè)備選擇休眠(Selective Suspend)的實(shí)現(xiàn)方法、驅(qū)動(dòng)模塊、裝 置及USB設(shè)備。
      背景技術(shù)
      USB (Universal Serial Bus,通用串行總線)是由Compaq、 IBM、 Intel、 Microsoft等七家公司于1995年所研發(fā)與規(guī)范出來的,隨著近幾年的推廣與應(yīng) 用,USB已經(jīng)成為個(gè)人計(jì)算機(jī)的標(biāo)準(zhǔn)的外設(shè)接口,并將逐步取代所有的各種 傳統(tǒng)外圍接口,如串行端口、并行端口以及游戲接口等。相對(duì)于傳統(tǒng)外圍接口, USB具有諸多特性和優(yōu)點(diǎn)統(tǒng)一了各種接口設(shè)備的連接頭、即插即用(plug and play)特性、"熱插撥"(hot attach and detach)特性、具備12Mbps的標(biāo)準(zhǔn) 傳輸速率及更高的傳輸速率、最多可以連接127個(gè)設(shè)備、可由USB電纜供電 而不需要附加電源、具有電源管理功能。
      由于USB具有以上的特性和優(yōu)點(diǎn),許多傳統(tǒng)的外設(shè)接口已經(jīng)轉(zhuǎn)向的USB 接口,而傳統(tǒng)的串口將隨即被淘汰,因此在新開發(fā)的設(shè)備中使用USB接口將 符合時(shí)代潮流,將使產(chǎn)品的生命力更強(qiáng),而不至于很快被淘汰。
      在USB2.0協(xié)議中定義USB分為host (主機(jī))和client (客戶端),所述 主機(jī)通常運(yùn)行有操作系統(tǒng),該操作系統(tǒng)通過USB Host Controller (USB主控制 器)在主機(jī)上控制通過USB總線與其相連的客戶端。所述客戶端又稱為USB 設(shè)備。
      目前而言,USB設(shè)備可分為無(wú)驅(qū)USB設(shè)備和有驅(qū)USB設(shè)備。此處的"無(wú) 驅(qū)"并不是真正不需要驅(qū)動(dòng)程序,只是驅(qū)動(dòng)程序不用自己去安裝,更加人性化 而已。
      UVC是USB組織定義的一套USB視頻設(shè)備的通用標(biāo)準(zhǔn)協(xié)議,Windows XP SP2以上的操作系統(tǒng)已經(jīng)支持UVC協(xié)議。在Windows XP SP2操作系統(tǒng)下,微軟總共定義了 4類可以不用額外安裝
      驅(qū)動(dòng)程序的USB設(shè)備,具體分類包括
      1. USB視頻類(USB Video CLASS),簡(jiǎn)稱UVC,主要就是指攝像頭類

      2. USB音頻類(USB Audio CLASS),簡(jiǎn)稱UAC,主要是指USB聲卡;
      3. 人機(jī)交換界面類(USB Human Interface Device),主要是指USB接口 的鼠標(biāo)鍵盤等設(shè)備;
      4. 存儲(chǔ)設(shè)備類(USB Mass Storage Device),主要是指USB閃存盤。 選擇休眠是USB2.0標(biāo)準(zhǔn)定義的一種USB設(shè)備休眠模式,其可以在操作
      系統(tǒng)正常工作時(shí),自動(dòng)判斷USB設(shè)備是否處于空閑狀態(tài),當(dāng)處于空閑狀態(tài)時(shí) 則將USB設(shè)備乃至整個(gè)USB Host Controller (主控制器)進(jìn)入休眠模式,以 達(dá)到最大限度的節(jié)約功耗。這對(duì)于筆記本電腦上的設(shè)備來說是一個(gè)必備的功 能。但現(xiàn)有的微軟系統(tǒng)或非微軟系統(tǒng)均不支持無(wú)驅(qū)USB設(shè)備的選擇休眠模式, 如Windows XP (SP3以前)系統(tǒng)不支持UVC設(shè)備的選擇休眠模式,由此會(huì)導(dǎo) 致通過USB總線連接有所述無(wú)驅(qū)USB設(shè)備的終端功耗大,這對(duì)于使用便攜式 終端如筆記本電腦類的用戶影響更重大,其嚴(yán)重降低便攜式終端的待機(jī)時(shí)間。 綜上可知,現(xiàn)有USB技術(shù),在實(shí)際使用上,顯然存在不便與缺陷,所以 有必要加以改進(jìn)。

      發(fā)明內(nèi)容
      針對(duì)上述的缺陷,本發(fā)明目的在于提供一種通用串行總線設(shè)備選擇休眠的 實(shí)現(xiàn)方法、驅(qū)動(dòng)模塊、終端及通用串行總線設(shè)備,其可以實(shí)現(xiàn)各種操作系統(tǒng)下 通用串行總線設(shè)備的選擇休眠,節(jié)省終端功耗。
      為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種通用串行總線設(shè)備選擇休眠的實(shí)現(xiàn)方 法,所述通用串行總線設(shè)備通過一通用串行總線連接在一運(yùn)行有操作系統(tǒng)的終
      端,其特點(diǎn)在于,所述方法包括如下步驟
      A、 通過所述通用串行總線將所述通用串行總線設(shè)備加載至該操作系統(tǒng);
      B、 生成一設(shè)備監(jiān)測(cè)單元,并由所述設(shè)備監(jiān)測(cè)單元對(duì)所述通用串行總線的 狀態(tài)迸行監(jiān)測(cè),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)處于空閑狀態(tài),則控制所述 通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)不再為空閑狀態(tài),則控制所述通用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài) 或深度休眠狀態(tài)。
      優(yōu)選地,所述步驟B進(jìn)一步包括
      Bl、生成一設(shè)備監(jiān)測(cè)單元;
      B2、該設(shè)備監(jiān)測(cè)單元對(duì)所述通用串行總線上所加載的通用串行總線設(shè)備 的狀態(tài)進(jìn)行監(jiān)測(cè),并根據(jù)所述通用串行總線設(shè)備是否被使用來判斷所述通用串 行總線的狀態(tài)是否處于空閑狀態(tài),若沒有監(jiān)測(cè)到所述通用串行總線設(shè)備被使
      用,則所述通用串行總線的狀態(tài)處于空閑狀態(tài),并繼續(xù)執(zhí)行歩驟B3,若監(jiān)測(cè)
      到所述通用串行總線設(shè)備被使用,則所述通用串行總線的狀態(tài)處于非空閑狀
      態(tài),并且若所述通用串行總線的上一狀態(tài)為空閑狀態(tài),則執(zhí)行歩驟B4;
      B3、該設(shè)備監(jiān)測(cè)單元控制所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài),并
      返回步驟B2;
      B4、該設(shè)備監(jiān)測(cè)單元控制所述通用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn) 入喚醒狀態(tài)或深度休眠狀態(tài),并返回歩驟B2。
      優(yōu)選地,所述步驟B2中,該設(shè)備監(jiān)測(cè)單元通過監(jiān)測(cè)是否有過濾器被創(chuàng)建 來判斷所述通用串行總線設(shè)備是否被使用;
      當(dāng)該設(shè)備監(jiān)測(cè)單元監(jiān)測(cè)到有過濾器被創(chuàng)建則判斷出有所述通用串行總線 設(shè)備被使用,所述通用串行總線的狀態(tài)不處于空閑狀態(tài);
      當(dāng)該設(shè)備監(jiān)測(cè)單元監(jiān)測(cè)到無(wú)過濾器被創(chuàng)建則判斷出沒有所述通用串行總 線設(shè)備被使用,所述通用串行總線的狀態(tài)處于空閑狀態(tài)。
      優(yōu)選地,所述步驟B2中,該設(shè)備監(jiān)測(cè)單元通過定時(shí)輪詢的方式對(duì)所述通 用串行總線上所加載的通用串行總線設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè)。
      優(yōu)選地,所述步驟B3進(jìn)一歩包括
      B31、該設(shè)備監(jiān)測(cè)單元提交空閑輸入輸出請(qǐng)求包(IdleIRP)至所述操作系
      統(tǒng);
      B32、所述操作系統(tǒng)接收所述空閑輸入輸出請(qǐng)求包后調(diào)用空閑通知回調(diào)例 程(Idle IRP Callback)使所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài);
      B33、該設(shè)備監(jiān)測(cè)單元調(diào)用空閑輸入輸出請(qǐng)求包完成例程(Idle IRP Complete)以獲取空閑輸入輸出請(qǐng)求包處理結(jié)果。
      優(yōu)選地,所述步驟B32中,所述空閑通知回調(diào)例程包括B321、判斷所述通用串行總線是否仍然處于空閑狀態(tài),若所述通用串行總
      線仍然處于空閑狀態(tài),則執(zhí)行步驟B322;
      B322、通過電源管理方式判斷所述通用串行總線設(shè)備的電源是否處于最大 供電狀態(tài),若處于最大供電狀態(tài),則將所述通用串行總線設(shè)備設(shè)置在選擇休眠 狀態(tài)。
      優(yōu)選地,所述空閑輸入輸出請(qǐng)求包處理結(jié)果包括成功設(shè)置
      (STATUS—SUCCESS )、取消設(shè)置(STATUS—CANCELED)、錯(cuò)誤設(shè)置 (STATUS ERROR);
      所述步驟B33進(jìn)一步包括
      B331、該設(shè)備監(jiān)測(cè)單元調(diào)用空閑輸入輸出請(qǐng)求包完成例程(Idle IRP Complete)獲取空閑輸入輸出請(qǐng)求包處理結(jié)果;
      B332 、判斷所述空閑輸入輸出請(qǐng)求包處理結(jié)果是否成功設(shè)置 (STATUS—SUCCESS),若是,則返回步驟B2,否則繼續(xù)執(zhí)行步驟B333;
      B333 、判斷所述空閑輸入輸出請(qǐng)求包處理結(jié)果是否取消設(shè)置 (STATUS—CANCELED)或錯(cuò)誤設(shè)置(STATUS—ERROR),若是,繼續(xù)執(zhí) 行步驟B334,否則返回步驟B2;
      B334、判斷所述通用串行總線設(shè)備的電源是否處于最大供電狀態(tài),若處 于最大供電狀態(tài),則返回歩驟B2;否則繼續(xù)執(zhí)行步驟B335;
      B335、喚醒所述通用串行總線設(shè)備。
      優(yōu)選地,所述步驟B4中,該設(shè)備監(jiān)測(cè)單元通過控制電源管理方式使所述 通用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      優(yōu)選地,所述操作系統(tǒng)為微軟系統(tǒng)和/或非微軟系統(tǒng);其中,所述微軟系 統(tǒng)包括Windows XP系統(tǒng);所述非微軟系統(tǒng)包括Linux系統(tǒng)和/或Unix系統(tǒng)。
      優(yōu)選地,所述通用串行總線設(shè)備包括無(wú)驅(qū)USB設(shè)備和有驅(qū)USB設(shè)備。
      為了實(shí)現(xiàn)上述目的,本發(fā)明還提供一種用于實(shí)現(xiàn)如上所述方法的通用串行 總線設(shè)備選擇休眠的驅(qū)動(dòng)模塊,其特點(diǎn)在于,所述通用串行總線設(shè)備通過一通 用串行總線連接在一運(yùn)行有操作系統(tǒng)的終端,所述驅(qū)動(dòng)模塊包括設(shè)備加載單 元,用于通過所述通用串行總線將所述通用串行總線設(shè)備加載至該操作系統(tǒng); 設(shè)備監(jiān)測(cè)單元生成子模塊,用于生成一設(shè)備監(jiān)測(cè)單元;所述設(shè)備監(jiān)測(cè)單元用于 對(duì)所述通用串行總線的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)處于空閑狀態(tài),則控制所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài),若監(jiān)測(cè)到所述通 用串行總線的狀態(tài)不再為空閑狀態(tài),則控制所述通用串行總線設(shè)備退出選擇休 眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      優(yōu)選地,所述設(shè)備監(jiān)測(cè)單元對(duì)所述通用串行總線上所加載的通用串行總線 設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè),并根據(jù)所述通用串行總線設(shè)備是否被使用來判斷所述通 用串行總線的狀態(tài)是否處于空閑狀態(tài)。
      優(yōu)選地,所述的驅(qū)動(dòng)模塊進(jìn)一步包括定時(shí)單元,用于設(shè)置定時(shí)輪詢周期以 使該設(shè)備監(jiān)測(cè)單元通過定時(shí)輪詢的方式對(duì)所述通用串行總線上所加載的通用 串行總線設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè)。
      優(yōu)選地,所述的驅(qū)動(dòng)模塊進(jìn)一步包括過濾器生成子模塊,用于在所述通 用串行總線設(shè)備被使用時(shí)生成過濾器;當(dāng)該設(shè)備監(jiān)測(cè)單元監(jiān)測(cè)到無(wú)過濾器被創(chuàng) 建則判斷出所述通用串行總線設(shè)備沒有被使用,所述通用串行總線的狀態(tài)處于 空閑狀態(tài)。
      優(yōu)選地,所述的驅(qū)動(dòng)模塊進(jìn)一步包括空閑通知回調(diào)例程子模塊,用于存
      儲(chǔ)空閑通知回調(diào)例程(Idle IRP Callback),并供所述操作系統(tǒng)接收所述空閑 輸入輸出請(qǐng)求包后調(diào)用以使所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài);空閑輸 入輸出請(qǐng)求包完成例程子模塊,用于存儲(chǔ)空閑輸入輸出請(qǐng)求包完成例程(Idle IRP Complete)并供該設(shè)備監(jiān)測(cè)單元調(diào)用以獲取空閑輸入輸出請(qǐng)求包處理結(jié) 果。
      優(yōu)選地,所述驅(qū)動(dòng)模塊位于所述通用串行總線設(shè)備和/或所述終端中。 優(yōu)選地,所述設(shè)備加載單元通過所述通用串行總線將所述通用串行總線設(shè)
      備加載至該操作系統(tǒng)后自動(dòng)生成一設(shè)備捕獲單元以啟動(dòng)設(shè)備監(jiān)測(cè)單元生成子
      模塊;所述設(shè)備監(jiān)測(cè)單元生成子模塊啟動(dòng)后生成一設(shè)備監(jiān)測(cè)單元。
      為了實(shí)現(xiàn)上述目的,本發(fā)明又提供一種包括如上所述的驅(qū)動(dòng)模塊的通用串
      行總線設(shè)備,所述通用串行總線設(shè)備通過一通用串行總線連接在一運(yùn)行有操作
      系統(tǒng)的終端。
      為了實(shí)現(xiàn)上述目的,本發(fā)明再提供一種包括如上所述的驅(qū)動(dòng)模塊且運(yùn)行有 操作系統(tǒng)的終端,所述終端通過一通用串行總線連接有通用串行總線設(shè)備。本 發(fā)明通過通用串行總線將通用串行總線設(shè)備加載至運(yùn)行在終端上的操作系統(tǒng), 然后生成一設(shè)備監(jiān)測(cè)單元,并由設(shè)備監(jiān)測(cè)單元對(duì)通用串行總線的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到通用串行總線的狀態(tài)處于空閑狀態(tài),則控制通用串行總線設(shè)備進(jìn) 入選擇休眠狀態(tài),若監(jiān)測(cè)到通用串行總線的狀態(tài)不再為空閑狀態(tài),則控制通用 串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。借此,本發(fā) 明可以實(shí)現(xiàn)各種操作系統(tǒng)下通用串行總線設(shè)備的選擇休眠。本發(fā)明中,當(dāng)通用
      串行總線設(shè)備未休眠時(shí),其通常需要終端提供大于100mA的電流來工作,而 選擇休眠以后通用串行總線設(shè)備的工作電流小于lmA,由此大大節(jié)省終端功 耗,對(duì)于便攜式終端類還可以由此大大延長(zhǎng)待機(jī)時(shí)間。


      圖1是本發(fā)明優(yōu)選實(shí)施例提供的用于實(shí)現(xiàn)USB設(shè)備選擇休眠的驅(qū)動(dòng)模塊 的模塊結(jié)構(gòu)示意圖2是本發(fā)明優(yōu)選實(shí)施例中驅(qū)動(dòng)模塊所遵循的驅(qū)動(dòng)框架;
      圖3是本發(fā)明提供的USB設(shè)備選擇休眠的實(shí)現(xiàn)方法流程圖4是本發(fā)明優(yōu)選實(shí)施例的USB設(shè)備選擇休眠的部分實(shí)現(xiàn)方法流程圖5是本發(fā)明優(yōu)選實(shí)施例的USB設(shè)備選擇休眠的部分實(shí)現(xiàn)方法流程圖。
      具體實(shí)施例方式
      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      本發(fā)明的基本思想是當(dāng)USB設(shè)備被加載至運(yùn)行在終端上的操作系統(tǒng)后,
      生成一設(shè)備監(jiān)測(cè)單元,并由所述設(shè)備監(jiān)測(cè)單元對(duì)所述USB總線的狀態(tài)進(jìn)行監(jiān) 測(cè),若監(jiān)測(cè)到所述USB總線的狀態(tài)處于Idle (空閑)狀態(tài),則控制所述USB 設(shè)備進(jìn)入選擇休眠狀態(tài),若監(jiān)測(cè)到所述USB總線的狀態(tài)不再為Idle狀態(tài),則 控制所述USB設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      根據(jù)USB2.0標(biāo)準(zhǔn),本發(fā)明所述術(shù)語(yǔ)"Idle"是針對(duì)USB總線而言,而"選 擇休眠"狀態(tài)、"喚醒"狀態(tài)、"深度休眠"狀態(tài)則是針對(duì)USB設(shè)備而言, 其中,"選擇休眠"狀態(tài)是指USB設(shè)備處于休眠模式和/或USB主控制器處 于休眠模式,"深度休眠"是指整個(gè)系統(tǒng)(包括終端、USB主控制器和USB 設(shè)備)處于休眠模式。參見圖1 , USB設(shè)備100通過一 USB總線20連接在運(yùn)行有操作系統(tǒng)30 的終端200即父設(shè)備,為了在操作系統(tǒng)30下實(shí)現(xiàn)USB設(shè)備100選擇休眠,本 發(fā)明提供了一種驅(qū)動(dòng)模塊10,該驅(qū)動(dòng)模塊10基于但不限于AV Stream (視頻 流)架構(gòu),所述AV Stream架構(gòu)是目前視頻設(shè)備的驅(qū)動(dòng)模塊所遵循的,參見圖 2所示,AV Stream架構(gòu)包括多層設(shè)備驅(qū)動(dòng)層,如AV Stream Filter Factory (視 頻流過濾器因子)層、AV Stream Filter Type(視頻流過濾器類型)層、AV Stream Pin Factory (視頻流管腳針因子)層等。該驅(qū)動(dòng)模塊10如圖1所示,除了包 括現(xiàn)有的驅(qū)動(dòng)模塊功能外如設(shè)備加載單元21夕卜,還進(jìn)一歩包括設(shè)備監(jiān)測(cè)單 元生成子模塊22、過濾器生成子模塊23、空閑通知回調(diào)例程子模塊24、空閑 輸入輸出請(qǐng)求包完成例程子模塊25和定時(shí)單元26,其中
      設(shè)備加載單元21,用于通過所述通用串行總線20將USB設(shè)備100加載 至操作系統(tǒng)30。由此一設(shè)備捕獲單元60用CCapture Device表示生成,并由 設(shè)備捕獲單元60啟動(dòng)設(shè)備監(jiān)測(cè)單元生成子模塊22。
      設(shè)備監(jiān)測(cè)單元生成子模塊22,用于在啟動(dòng)后即在USB設(shè)備100被加載至 該操作系統(tǒng)30后生成一設(shè)備監(jiān)測(cè)單元40。
      本發(fā)明中,設(shè)備監(jiān)測(cè)單元40,也可用CsSDevCtrl表示,用于對(duì)USB總線 20的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到USB總線20的狀態(tài)處于Idle (空閑)狀態(tài),則 控制USB設(shè)備100進(jìn)入選擇休眠狀態(tài)(在USB2.0標(biāo)準(zhǔn)定義下可用D2表示), 若監(jiān)測(cè)到USB總線20的狀態(tài)不再為Idle狀態(tài),則控制USB設(shè)備100退出選 擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)(即最大供電狀態(tài),在USB2.0標(biāo)準(zhǔn)定義下可用 DO表示)或深度休眠狀態(tài)(即整個(gè)系統(tǒng)休眠的狀態(tài),在USB2.0標(biāo)準(zhǔn)定義下 可用D3表示)。
      本發(fā)明中,所述控制USB設(shè)備100進(jìn)入選擇休眠狀態(tài)還進(jìn)一步包括當(dāng) 所有加載在USB總線20的USB設(shè)備100均進(jìn)入休眠狀態(tài),通過驅(qū)動(dòng)模塊10 將USB主控制器置為選擇休眠狀態(tài),以進(jìn)一步節(jié)省主控制器的耗電。須注意, 若有其中一個(gè)USB設(shè)備100沒有進(jìn)入休眠狀態(tài),驅(qū)動(dòng)模塊10不能將USB主 控制器置為選擇休眠狀態(tài)。
      優(yōu)選地,所述驅(qū)動(dòng)模塊10包括有定時(shí)單元26,用于設(shè)置定時(shí)輪詢周期。 由此,該設(shè)備監(jiān)測(cè)單元40根據(jù)定時(shí)單元26所設(shè)置的定時(shí)輪詢周期通過定時(shí)輪 詢的方式對(duì)USB總線20上所加載的所有USB設(shè)備100的狀態(tài)進(jìn)行監(jiān)測(cè)。過濾器生成子模塊23,用于在USB設(shè)備100被使用時(shí)生成過濾器50。該 過濾器50也可用CCapture Filter表示,其是設(shè)備驅(qū)動(dòng)層里的 -層,例如圖2 中的AV Stream Filter Type (視頻流過濾器類型)層,其是否被創(chuàng)建是作為認(rèn) 定USB設(shè)備100是否被使用的標(biāo)準(zhǔn)。具體而言,當(dāng)該設(shè)備監(jiān)測(cè)單元40監(jiān)測(cè)到 無(wú)過濾器50被創(chuàng)建則判斷出USB設(shè)備100沒有被使用,USB總線的狀態(tài)處 于Idle狀態(tài)。當(dāng)該設(shè)備監(jiān)測(cè)單元40監(jiān)測(cè)到有過濾器50被創(chuàng)建則判斷出USB 設(shè)備100正在被使用,USB總線的狀態(tài)處于非Idle狀態(tài)。
      空閑通知回調(diào)例程子模塊24,用于存儲(chǔ)Idle IRP Callback (USB Idle Notification Callback Routine,空閑通知回調(diào)例程),并供操作系統(tǒng)30接收Idle IRP (空閑輸入輸出請(qǐng)求包)后調(diào)用以使USB設(shè)備100進(jìn)入選擇休眠狀態(tài)。
      本發(fā)明中,所述Idle IRP Callback是設(shè)備驅(qū)動(dòng)必須提供的例程函數(shù),在父 設(shè)備200決定可以休眠的時(shí)候,會(huì)由父設(shè)備200調(diào)用,在該例程函數(shù)內(nèi)主要做 以下幾類事務(wù)取消所有I/0請(qǐng)求并準(zhǔn)備進(jìn)入休眠;如果設(shè)備需要遠(yuǎn)程喚醒, 處理特殊的IRP;通過系統(tǒng)調(diào)用將設(shè)備設(shè)置到喚醒狀態(tài)D2等等一系列事務(wù)。 具體而言,判斷USB總線20是否仍然處于Idle狀態(tài),若USB總線20仍然處 于Idle狀態(tài),則通過電源管理方式判斷USB設(shè)備100的電源是否處于最大供 電狀態(tài),若處于最大供電狀態(tài),則將USB設(shè)備100設(shè)置在選擇休眠狀態(tài)。
      空閑輸入輸出請(qǐng)求包完成例程子模塊25,用于存儲(chǔ)Idle IRP Complete (USB Idle R叫uest IRP Completion Routine,空閑輸入輸出請(qǐng)求包完成例程) 并供該設(shè)備監(jiān)測(cè)單元40調(diào)用以獲取Idle IRP處理結(jié)果。
      本發(fā)明中,設(shè)備驅(qū)動(dòng)可以通過所述Idle IRP Complete獲知父設(shè)備200每一 次Idle IRP處理的結(jié)果,并根據(jù)結(jié)果做出適合的處置。
      Idle IRP處理結(jié)果包括STATUS—SUCCESS (成功設(shè)置)、 STATUS—CANCELED (取消設(shè)置)、STATUS—ERROR (錯(cuò)誤設(shè)置);當(dāng)設(shè) 備監(jiān)測(cè)單元40調(diào)用Idle IRP Complete獲取空閑輸入輸出請(qǐng)求包處理結(jié)果后, 判斷所述空閑輸入輸出請(qǐng)求包處理結(jié)果是否STATUS—SUCCESS,若否,判斷 Idle IRP處理結(jié)果是否為STATUS—CANCELED或STATUS—ERROR,若是, 進(jìn)一步判斷USB設(shè)備100的電源是否處于最大供電狀態(tài)D0,若不處于最大供 電狀態(tài)D0,則喚醒USB設(shè)備IOO。
      本發(fā)明中,所述驅(qū)動(dòng)模塊IO可以集成在USB設(shè)備IOO,也可以如圖l所示集成在終端200,還可以作為一個(gè)獨(dú)立的驅(qū)動(dòng)模塊IO,在需要的時(shí)候安裝在
      USB設(shè)備100或終端200。
      優(yōu)選地,當(dāng)USB設(shè)備100為無(wú)驅(qū)USB設(shè)備如UVC設(shè)備、UAC設(shè)備、人 機(jī)交換界面類、存儲(chǔ)設(shè)備類,將驅(qū)動(dòng)模塊10集成在終端200,如圖1所示。
      優(yōu)選地,當(dāng)USB設(shè)備100為無(wú)驅(qū)USB設(shè)備如UVC設(shè)備、UAC設(shè)備、人 機(jī)交換界面類、存儲(chǔ)設(shè)備類,并且操作系統(tǒng)30為Windows XP SP3之前系統(tǒng) 時(shí),將驅(qū)動(dòng)模塊10安裝在終端200。
      優(yōu)選地,將驅(qū)動(dòng)模塊10直接集成或安裝在為有驅(qū)的USB設(shè)備100中。
      優(yōu)選地,將驅(qū)動(dòng)模塊10直接集成在各種操作系統(tǒng)30中。由此可以在所有 的操作系統(tǒng),包括微軟系統(tǒng),如Windows XP系統(tǒng)和非微軟系統(tǒng)如Linux系統(tǒng)、 Unix系統(tǒng)等等,實(shí)現(xiàn)無(wú)驅(qū)USB設(shè)備或有驅(qū)USB設(shè)備的選擇休眠,降低系統(tǒng) 功耗。
      圖3是本發(fā)明提供的USB設(shè)備選擇休眠的實(shí)現(xiàn)方法,結(jié)合圖1所述的驅(qū) 動(dòng)模塊10進(jìn)行描述,所述USB設(shè)備100通過一 USB總線20連接在一運(yùn)行有 操作系統(tǒng)30的終端200,所述方法包括如下
      步驟S301,設(shè)備加載單元21通過所述USB總線20將USB設(shè)備加載至 該操作系統(tǒng)30。
      步驟S302,設(shè)備監(jiān)測(cè)單元生成子模塊22生成一設(shè)備監(jiān)測(cè)單元40,并由所 述設(shè)備監(jiān)測(cè)單元40對(duì)USB總線20的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到所述USB總線 20的狀態(tài)處于Idle狀態(tài),則控制所述USB設(shè)備100進(jìn)入選擇休眠狀態(tài),若監(jiān) 測(cè)到USB總線20的狀態(tài)不再為Idle狀態(tài),則控制所述USB設(shè)備100退出選 擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      為了更好的描述本發(fā)明,本發(fā)明優(yōu)選實(shí)施例提供了一種USB設(shè)備選擇休 眠的實(shí)現(xiàn)方法,結(jié)合圖1所述的驅(qū)動(dòng)模塊10進(jìn)行描述,該驅(qū)動(dòng)模塊10集成在 運(yùn)行有為Windows XP SP2的操作系統(tǒng)30的終端200,所述USB設(shè)備100為 UVC設(shè)備,通過USB總線20連接在終端200上,所述實(shí)現(xiàn)方法如圖4和圖5 所示,具體包括如下
      步驟S401,設(shè)備加載單元21通過所述USB總線20將USB設(shè)備100加 載至該操作系統(tǒng)30,即PnPStart(Plug and Play Start,即插即用開始),CCapture Device 60被創(chuàng)建,啟動(dòng)設(shè)備監(jiān)測(cè)單元生成子模塊22以SS—StartldleCtrl (開始空閑控制)。
      歩驟S402,設(shè)備監(jiān)測(cè)單元生成子模塊22在啟動(dòng)后即在USB設(shè)備100被 加載至該操作系統(tǒng)30后生成一設(shè)備監(jiān)測(cè)單元40即CsSDevCtl。
      歩驟S403,設(shè)備監(jiān)測(cè)單元40通過定時(shí)單元26設(shè)置定時(shí)輪詢時(shí)間周期, 并Start SS—Timer (開始計(jì)時(shí))。
      歩驟S404, TimerDpc (到達(dá)監(jiān)測(cè)時(shí)間),設(shè)備監(jiān)測(cè)單元40監(jiān)測(cè)USB總 線20所加載的USB設(shè)備100狀態(tài),并根據(jù)USB設(shè)備100是否被使用來判斷 USB總線20的狀態(tài)是否為Idle狀態(tài),若處于Idle狀態(tài),則執(zhí)行步驟S405,若 監(jiān)測(cè)到狀態(tài)不再為處于Idle狀態(tài),則執(zhí)行步驟S407。
      本實(shí)施例中,設(shè)備監(jiān)測(cè)單元40監(jiān)測(cè)過濾器生成子模塊23是否被創(chuàng)建過濾 器50,若監(jiān)測(cè)有創(chuàng)建過濾器50被創(chuàng)建(Filter Dispatch Create)則認(rèn)定USB設(shè) 備IOO被使用,USB總線20的狀態(tài)不為Idle狀態(tài),若監(jiān)測(cè)沒有過濾器50被 創(chuàng)建(Filter Dispatch Close)則認(rèn)定USB設(shè)備100不被使用,USB總線20的 狀態(tài)為Idle狀態(tài)。
      所述"狀態(tài)不再為處于Idle狀態(tài)"是指上一次監(jiān)測(cè)到的狀態(tài)為Idle狀態(tài), 而這次監(jiān)測(cè)到的狀態(tài)為非Idle狀態(tài)。
      步驟S405,設(shè)備監(jiān)測(cè)單元40提交空閑輸入輸出請(qǐng)求包(Idle IRP)至所 述Windows XP SP2操作系統(tǒng)30即Sumit Idle IRP,并等待操作系統(tǒng)30處理 IRP包或等待調(diào)用空閑通知回調(diào)例程(Idle IRP Callback)。
      歩驟S406,操作系統(tǒng)30決定可以休眠時(shí),調(diào)用空閑通知回調(diào)例程子模塊 24所存儲(chǔ)Idle IRP Callback (USB Idle Notification Callback Routine,空閑通知 回調(diào)例程)以使USB設(shè)備100進(jìn)入選擇休眠狀態(tài)。
      本步驟中,操作系統(tǒng)30決定不可以休眠時(shí)取消執(zhí)行休眠,此時(shí)處理結(jié)果 為STATUS—CANCELED或STATUS—ERROR 。
      所述Idle IRP Callback例程主要做以下幾類事務(wù)取消所有I/O請(qǐng)求并準(zhǔn) 備進(jìn)入休眠;如果設(shè)備需要遠(yuǎn)程喚醒,處理特殊的IRP;通過系統(tǒng)調(diào)用將設(shè)備 設(shè)置到喚醒狀態(tài)D2等等一系列事務(wù)。
      Idle IRP Callback具體工作流程如圖5所示,包括如下
      步驟S501,判斷USB總線20是否仍然處于Idle狀態(tài),若USB總線20 仍然處于Idle狀態(tài),則執(zhí)行步驟S502,否則返回步驟S403;歩驟S502,通過電源管理方式判斷USB總線20的電源是否處于最大供 電狀態(tài)D0,若處于D0狀態(tài),則執(zhí)行步驟S503,否則直接返回步驟S403。
      步驟S503,將USB設(shè)備100設(shè)置在選擇休眠狀態(tài)D2,并等待設(shè)備監(jiān)測(cè) 單元40執(zhí)行步驟S504。
      步驟S504,設(shè)備監(jiān)測(cè)單元40調(diào)用空閑輸入輸出請(qǐng)求包完成例程子模塊25 所存儲(chǔ)Idle IRP Complete (USB Idle R叫uest IRP Completion Routine,空閑輸 入輸出請(qǐng)求包完成例程)以獲取Idle IRP處理結(jié)果。
      步驟S505,設(shè)備監(jiān)測(cè)單元40調(diào)用Idle IRP Complete獲取Idle IRP處理結(jié) 果后,判斷Idle IRP處理結(jié)果是否為STATUS—SUCCESS,若是,直接返回步 驟S403,否則執(zhí)行步驟S506。
      步驟S506,設(shè)備監(jiān)測(cè)單元40判斷Idle IRP處理結(jié)果是否為 STATUS—CANCELED,若是則執(zhí)行步驟S508,否則執(zhí)行步驟S507。
      歩驟S507,設(shè)備監(jiān)測(cè)單元40判斷Idle IRP處理結(jié)果是否為 STATUS—ERROR,若是執(zhí)行步驟S508,否則返回步驟S403。
      歩驟S508,設(shè)備監(jiān)測(cè)單元40判斷USB設(shè)備100的電源是否處于最大供 電狀態(tài)D0,若不處于最大供電狀態(tài)DO,則執(zhí)行步驟S509,否則直接返回步 驟S403。
      步驟S509,喚醒USB設(shè)備100即將電源置為最大供電狀態(tài)D0,并返回 步驟S403。
      本發(fā)明中,所述步驟S502也可以在判斷出USB總線20的電源處于DO 狀態(tài),將USB設(shè)備100設(shè)置在選擇休眠狀態(tài)D2后跳過步驟S504 S509直接 返回歩驟S403,然后再由設(shè)備監(jiān)測(cè)單元40單獨(dú)執(zhí)行步驟S504 S509。
      歩驟S407,該設(shè)備監(jiān)測(cè)單元40控制USB設(shè)備100退出選擇休眠狀態(tài)D2 即SS—CancelSelectSuspend而進(jìn)入喚醒狀態(tài)DO或深度休眠狀態(tài)D3,并返回歩 驟S403。
      本步驟中,同樣是通過電源管理方式控制USB設(shè)備100退出選擇休眠狀 態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。本步驟中,若USB主控器也處于休眠狀 態(tài),此時(shí)也退出休眠狀態(tài)。
      本實(shí)施例中,當(dāng)USB設(shè)備100未休眠時(shí),其通常需要終端提供大于100mA 的電流來工作,而選擇休眠以后USB設(shè)備100的工作電流小于lmA,顯然,本發(fā)明可以大大節(jié)省終端功耗,對(duì)于便攜式終端類如筆記本電腦還nj以因此大 大延長(zhǎng)待機(jī)時(shí)間。
      本發(fā)明另一實(shí)施例中,USB設(shè)備100為UVC設(shè)備,在操作系統(tǒng)30添加 包括專門處理休眠的類CsSDevCtl的UVC驅(qū)動(dòng)模塊10,然后采用與優(yōu)選實(shí)施 例相同的實(shí)現(xiàn)方法,具體不再擴(kuò)展,可參見圖4和圖5。
      綜上可知,當(dāng)USB設(shè)備被加載至運(yùn)行在終端上的操作系統(tǒng)后,生成一設(shè) 備監(jiān)測(cè)單元,并由所述設(shè)備監(jiān)測(cè)單元對(duì)所述USB總線的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān) 測(cè)到所述USB總線的狀態(tài)處于Idle (空閑)狀態(tài),則控制所述USB設(shè)備備進(jìn) 入選擇休眠狀態(tài),若監(jiān)測(cè)到所述USB總線的狀態(tài)不再為Idle狀態(tài),則控制所 述USB設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。借此,本發(fā) 明可以實(shí)現(xiàn)各種操作系統(tǒng)下通用串行總線設(shè)備的選擇休眠。
      當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情 況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但 這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
      權(quán)利要求
      1、一種通用串行總線設(shè)備選擇休眠的實(shí)現(xiàn)方法,所述通用串行總線設(shè)備通過一通用串行總線連接在一運(yùn)行有操作系統(tǒng)的終端,其特征在于,所述方法包括如下步驟A、通過所述通用串行總線將所述通用串行總線設(shè)備加載至該操作系統(tǒng);B、生成一設(shè)備監(jiān)測(cè)單元,并由所述設(shè)備監(jiān)測(cè)單元對(duì)所述通用串行總線的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)處于空閑狀態(tài),則控制所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)不再為空閑狀態(tài),則控制所述通用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      2、 根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)方法,其特征在于,所述步驟B進(jìn)一歩包括Bl、生成一設(shè)備監(jiān)測(cè)單元;B2、該設(shè)備監(jiān)測(cè)單元對(duì)所述通用串行總線上所加載的通用串行總線設(shè)備 的狀態(tài)進(jìn)行監(jiān)測(cè),并根據(jù)所述通用串行總線設(shè)備是否被使用來判斷所述通用串 行總線的狀態(tài)是否處于空閑狀態(tài),若沒有監(jiān)測(cè)到所述通用串行總線設(shè)備被使用,則所述通用串行總線的狀態(tài)處于空閑狀態(tài),并繼續(xù)執(zhí)行步驟B3,若監(jiān)測(cè)到所述通用串行總線設(shè)備被使用,則所述通用串行總線的狀態(tài)處于非空閑狀態(tài),并且若所述通用串行總線的上一狀態(tài)為空閑狀態(tài),則執(zhí)行歩驟B4;B3、該設(shè)備監(jiān)測(cè)單元控制所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài),并返回步驟B2;B4、該設(shè)備監(jiān)測(cè)單元控制所述通用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn) 入喚醒狀態(tài)或深度休眠狀態(tài),并返回步驟B2。
      3、 根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)方法,其特征在于,所述步驟B2中,該 設(shè)備監(jiān)測(cè)單元通過監(jiān)測(cè)是否有過濾器被創(chuàng)建來判斷所述通用串行總線設(shè)備是 否被使用;當(dāng)該設(shè)備監(jiān)測(cè)單元監(jiān)測(cè)到有過濾器被創(chuàng)建則判斷出有所述通用串行總線 設(shè)備被使用,所述通用串行總線的狀態(tài)不處于空閑狀態(tài);當(dāng)該設(shè)備監(jiān)測(cè)單元監(jiān)測(cè)到無(wú)過濾器被創(chuàng)建則判斷出沒有所述通用串行總線設(shè)備被使用,所述通用串行總線的狀態(tài)處于空閑狀態(tài)。
      4、 根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)方法,其特征在于,所述步驟B2中,該設(shè)備監(jiān)測(cè)單元通過定時(shí)輪詢的方式對(duì)所述通用串行總線上所加載的通用串行總 線設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè)。
      5、 根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)方法,其特征在于,所述步驟B3進(jìn)一步包括B31、該設(shè)備監(jiān)測(cè)單元提交空閑輸入輸出請(qǐng)求包至所述操作系統(tǒng);B32、所述操作系統(tǒng)接收所述空閑輸入輸出請(qǐng)求包后調(diào)用空閑通知回調(diào)例 程使所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài);B33、該設(shè)備監(jiān)測(cè)單元調(diào)用空閑輸入輸出請(qǐng)求包完成例程以獲取空閑輸入 輸出請(qǐng)求包處理結(jié)果。
      6、 根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)方法,其特征在于,所述步驟B32中,所 述空閑通知回調(diào)例程包括B321、判斷所述通用串行總線是否仍然處于空閑狀態(tài),若所述通用串行總 線仍然處于空閑狀態(tài),則執(zhí)行步驟B322;B322、通過電源管理方式判斷所述通用串行總線設(shè)備的電源是否處于最大 供電狀態(tài),若處于最大供電狀態(tài),則將所述通用串行總線設(shè)備設(shè)置在選擇休眠 狀態(tài)。
      7、 根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)方法,其特征在于,所述空閑輸入輸出請(qǐng) 求包處理結(jié)果包括成功設(shè)置、取消設(shè)置、錯(cuò)誤設(shè)置;所述步驟B33進(jìn)一步包括B331、該設(shè)備監(jiān)測(cè)單元調(diào)用空閑輸入輸出請(qǐng)求包完成例程獲取空閑輸入 輸出請(qǐng)求包處理結(jié)果;B332、判斷所述空閑輸入輸出請(qǐng)求包處理結(jié)果是否成功設(shè)置,若是,則 返回歩驟B2,否則繼續(xù)執(zhí)行步驟B333;B333、判斷所述空閑輸入輸出請(qǐng)求包處理結(jié)果是否取消設(shè)置或錯(cuò)誤設(shè)置, 若是,繼續(xù)執(zhí)行步驟B334,否則返回步驟B2;B334、判斷所述通用串行總線設(shè)備的電源是否處于最大供電狀態(tài),若處 于最大供電狀態(tài),則返回歩驟B2;否則繼續(xù)執(zhí)行步驟B335;B335、喚醒所述通用串行總線設(shè)備。
      8、 根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)方法,其特征在于,所述歩驟B4中,該設(shè)備監(jiān)測(cè)單元通過控制電源管理方式使所述通用串行總線設(shè)備退出選擇休眠 狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      9、 根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)方法,其特征在于,所述操作系統(tǒng)為微軟 系統(tǒng)和/或非微軟系統(tǒng);其中,所述微軟系統(tǒng)包括Windows XP系統(tǒng);所述非 微軟系統(tǒng)包括Linux系統(tǒng)和/或Unix系統(tǒng)。
      10、 根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)方法,其特征在于,所述通用串行總線設(shè) 備包括無(wú)驅(qū)USB設(shè)備和有驅(qū)USB設(shè)備。
      11、 一種用于實(shí)現(xiàn)如權(quán)利要求1 10任一項(xiàng)所述方法的通用串行總線設(shè)備 選擇休眠的驅(qū)動(dòng)模塊,其特征在于,所述通用串行總線設(shè)備通過--通用串行總 線連接在一運(yùn)行有操作系統(tǒng)的終端,所述驅(qū)動(dòng)模塊包括設(shè)備加載單元,用于通過所述通用串行總線將所述通用串行總線設(shè)備加載 至該操作系統(tǒng);設(shè)備監(jiān)測(cè)單元生成子模塊,用于生成一設(shè)備監(jiān)測(cè)單元; 所述設(shè)備監(jiān)測(cè)單元用于對(duì)所述通用串行總線的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到所 述通用串行總線的狀態(tài)處于空閑狀態(tài),則控制所述通用串行總線設(shè)備進(jìn)入選擇 休眠狀態(tài),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)不再為空閑狀態(tài),則控制所述通 用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。
      12、 根據(jù)權(quán)利要求11所述的驅(qū)動(dòng)模塊,其特征在于,所述設(shè)備監(jiān)測(cè)單元 對(duì)所述通用串行總線上所加載的通用串行總線設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè),并根據(jù)所 述通用串行總線設(shè)備是否被使用來判斷所述通用串行總線的狀態(tài)是否處于空 閑狀態(tài)。
      13、 根據(jù)權(quán)利要求12所述的驅(qū)動(dòng)模塊,其特征在于,進(jìn)一步包括定時(shí)單 元,用于設(shè)置定時(shí)輪詢周期以使該設(shè)備監(jiān)測(cè)單元通過定時(shí)輪詢的方式對(duì)所述通 用串行總線上所加載的通用串行總線設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè)。
      14、 根據(jù)權(quán)利要求12所述的驅(qū)動(dòng)模塊,其特征在于,進(jìn)一步包括 過濾器生成子模塊,用于在所述通用串行總線設(shè)備被使用時(shí)生成過濾器; 當(dāng)該設(shè)備監(jiān)測(cè)單元監(jiān)測(cè)到無(wú)過濾器被創(chuàng)建則判斷出所述通用串行總線設(shè)備沒有被使用,所述通用串行總線的狀態(tài)處于空閑狀態(tài)。
      15、 根據(jù)權(quán)利要求12所述的驅(qū)動(dòng)模塊,其特征在于,進(jìn)一步包括空閑通知回調(diào)例程子模塊,用于存儲(chǔ)空閑通知回調(diào)例程,并供所述操作系 統(tǒng)接收所述空閑輸入輸出請(qǐng)求包后調(diào)用以使所述通用串行總線設(shè)備進(jìn)入選擇 休眠狀態(tài);空閑輸入輸出請(qǐng)求包完成例程子模塊,用于存儲(chǔ)空閑輸入輸出請(qǐng)求包完成 例程并供該設(shè)備監(jiān)測(cè)單元調(diào)用以獲取空閑輸入輸出請(qǐng)求包處理結(jié)果。
      16、 根據(jù)權(quán)利要求12所述的驅(qū)動(dòng)模塊,其特征在于,所述驅(qū)動(dòng)模塊位于 所述通用串行總線設(shè)備和/或所述終端中。
      17、 根據(jù)權(quán)利要求12所述的驅(qū)動(dòng)模塊,其特征在于,所述設(shè)備加載單元 通過所述通用串行總線將所述通用串行總線設(shè)備加載至該操作系統(tǒng)后自動(dòng)生 成一設(shè)備捕獲單元以啟動(dòng)設(shè)備監(jiān)測(cè)單元生成子模塊;所述設(shè)備監(jiān)測(cè)單元生成子模塊啟動(dòng)后生成一設(shè)備監(jiān)測(cè)單元。
      18、 一種包括如權(quán)利要求11所述的驅(qū)動(dòng)模塊的通用串行總線設(shè)備,所述 通用串行總線設(shè)備通過一通用串行總線連接在一運(yùn)行有操作系統(tǒng)的終端。
      19、 一種包括如權(quán)利要求11所述的驅(qū)動(dòng)模塊且運(yùn)行有操作系統(tǒng)的終端, 所述終端通過一通用串行總線連接有通用串行總線設(shè)備。
      全文摘要
      本發(fā)明公開了一種通用串行總線設(shè)備選擇休眠的實(shí)現(xiàn)方法及其裝置,所述通用串行總線設(shè)備通過一通用串行總線連接在一運(yùn)行有操作系統(tǒng)的終端,所述方法包括如下步驟通過所述通用串行總線將所述通用串行總線設(shè)備加載至該操作系統(tǒng);生成一設(shè)備監(jiān)測(cè)單元,并由所述設(shè)備監(jiān)測(cè)單元對(duì)所述通用串行總線的狀態(tài)進(jìn)行監(jiān)測(cè),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)處于空閑狀態(tài),則控制所述通用串行總線設(shè)備進(jìn)入選擇休眠狀態(tài),若監(jiān)測(cè)到所述通用串行總線的狀態(tài)不再為空閑狀態(tài),則控制所述通用串行總線設(shè)備退出選擇休眠狀態(tài)而進(jìn)入喚醒狀態(tài)或深度休眠狀態(tài)。本發(fā)明可以實(shí)現(xiàn)各種操作系統(tǒng)下通用串行總線設(shè)備的選擇休眠,節(jié)省終端功耗。
      文檔編號(hào)G06F1/32GK101308399SQ200810115409
      公開日2008年11月19日 申請(qǐng)日期2008年6月23日 優(yōu)先權(quán)日2008年6月23日
      發(fā)明者巍 唐 申請(qǐng)人:北京中星微電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1