專利名稱:一種通用串行總線調(diào)制解調(diào)器設(shè)備的節(jié)電裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線調(diào)制解調(diào)器(Modem),特別是涉及一種通用串行總線 (USB, Universal Serial Bus) Modem設(shè)備的節(jié)電裝置及方法。
背景技術(shù):
傳統(tǒng)的計算機上網(wǎng)寬帶接入方式為固定線路,包括光纖入戶、數(shù)字用戶 線(DSL, Digital Subscriber Line)、有線電視電纜(Cable)等多種常見方法。 這些寬帶接入方式的優(yōu)點是速度高i、穩(wěn)定性好、接入成本低廉,但是缺點也 很明顯,即缺乏良好的移動性。如果外出旅行或者出差辦公,那么隨時隨地的 實現(xiàn)寬帶接入就難以實現(xiàn)了,周此無線上網(wǎng)技術(shù)應運而生。早期的無線上網(wǎng)方 式主要是全王求移動通信系統(tǒng)(GSM, Global System for Mobile Communications) 的通用分組無線月良務技術(shù)(GPRS, General Packet Radio Service)和碼分多址 (CDMA, Code Division Multiple Access) lx,盡管這兩種接入方式實現(xiàn)了無線 辦公,但是帶寬速度卻非常慢。于是,第三代通信技術(shù)(3G)隨之產(chǎn)生,第三 代通信技術(shù)提供了更高帶寬,更穩(wěn)定,更低廉的無線寬帶接入方式,不僅可以 為用戶提供更高速的無線上網(wǎng),還能在上網(wǎng)同時進行語音通話、M短信及彩 信等更強大的數(shù)據(jù)業(yè)務。因此,對無線數(shù)據(jù)終端產(chǎn)品,主要是無線Modem的需 求量相當?shù)卮?,同時為了使用戶能夠更方便、快捷地使用無線數(shù)據(jù)終端產(chǎn)品, 對無線Modem的制造商提出了更高的要求,尤其是用戶體驗方面。
目前,USBModem設(shè)備廣泛的應用于移動辦公,而在移動應用場景中,往 往很難外接交流電源使用筆記本電腦,從而只能使用電池供電的方法來進行辦 公,而電池的續(xù)航能力是有限的,為了提高筆記本電腦的續(xù)航能力,采取節(jié)電 技術(shù)和提高電池容量技術(shù)就是非常必要的了。其中,節(jié)電技術(shù)又包括筆記本自身的節(jié)電技術(shù)和筆記本外接設(shè)備的節(jié)電技術(shù),USB Modem設(shè)備即是外圍設(shè)備。 一般3GUSBModem設(shè)備的設(shè)置方式包括1 )外置的USB Modem設(shè)備;2)筆 記本電腦或者移動互聯(lián)網(wǎng)設(shè)備(MID, Mobile Internet Devices )里的內(nèi)置Modem 模塊等。如果是外置的USB Modem設(shè)備,用戶還可以在不使用的時候?qū)SB Modem設(shè)備卸下,但對內(nèi)置的USB Modem設(shè)備隨時都需要保持供電,如果不采 用合適的節(jié)電技術(shù),將會在筆記本電腦使用期間產(chǎn)生較大的持續(xù)性功耗,從而 影響筆記本電腦的續(xù)航能力。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種USB Modem設(shè)備的節(jié)電裝置及 方法,能實現(xiàn)USBModemi殳備在空閑期進入節(jié)電狀態(tài),在收到業(yè)務請求時恢復 到工作狀態(tài)。
為達到上述目的,本發(fā)明公開了一種通用串行總線USB調(diào)制解調(diào)器Modem 設(shè)備的節(jié)電裝置,包括:個人計算機PC和USBModem設(shè)備;其中,個人計算機 PC,定時檢測是否允許進入選擇性掛起,并在允許時向USBModem設(shè)備發(fā)送進 入選擇性掛起狀態(tài)指令,通知USB Modem設(shè)備進入選擇性掛起狀態(tài);USB Modem設(shè)備,收到進入選擇性掛起狀態(tài)指令后,進入選擇性掛起狀態(tài)。
上述裝置中,所述PC包括多路復用驅(qū)動、虛擬接口驅(qū)動、USB轉(zhuǎn)串口驅(qū) 動及USB集線器Hub;其中,多路復用驅(qū)動,用于將單個USB物理接口虛擬成 多個接口,接收并判斷是否所有的虛擬接口都發(fā)送了設(shè)備控制命令,以及在所 有的虛擬接口都發(fā)送了所述設(shè)備控制命令時向下層的USB轉(zhuǎn)串口驅(qū)動轉(zhuǎn)發(fā)來自 虛擬接口驅(qū)動的設(shè)備控制命令;虛擬接口驅(qū)動,用于定時檢測是否允許進入選 擇性掛起,并在允許時向多路復用驅(qū)動下發(fā)設(shè)備控制命令;USB轉(zhuǎn)串口驅(qū)動, 用于接收向USB Hub轉(zhuǎn)發(fā)所述設(shè)備控制命令;USB Hub,用于收到所述設(shè)備控 制命令后向USB Modem設(shè)備發(fā)送iiX選擇性桂起狀態(tài)指令,通知USB Modem 設(shè)備iiA選擇性掛起狀態(tài)。
其中,所述USBHub還用于接收來自USBModem設(shè)備或上層應用的喚醒請求,并向USBModem設(shè)備發(fā)送USB遠程喚醒命令使其進入正常工作狀態(tài);以 及完成I/0請求包IRP; USB轉(zhuǎn)串口驅(qū)動還用于提供完成例程以確定IRP完成, 并通知多路復用驅(qū)動恢復正常工作;多路復用驅(qū)動還用于通知各個虛擬接口 驅(qū)動恢復正常工作。
相應地,本發(fā)明提供一種USBModem設(shè)備的節(jié)電方法,包括定時檢測是 否允許進入選擇性掛起,如果不允許,則處理收到的來自應用程序的請求;如 果允許,則向USB Modem設(shè)備發(fā)送i^選擇性掛起狀態(tài)指令;USB Modem設(shè) 備收到所述進入選擇性掛起狀態(tài)指令后,進入選擇性掛起狀態(tài)。
上述方法中,還包括將單個USB物理接口虛擬成多個接口,為采用多 路復用協(xié)議將單個USB楊理接口非復合設(shè)備虛擬成多個接口的復合設(shè)備。
其中,所述定時檢測是否允許ii^選擇性掛起為虛擬接口驅(qū)動檢測虛擬
接口在設(shè)置的一定時間內(nèi)是否有數(shù)據(jù)的讀或?qū)懖僮鳎魺o任何數(shù)據(jù)的讀或?qū)懖?br>
作,則判定為該虛擬接口允許進入選擇性掛起;否則,不允許該虛擬接口進入 選捧性掛起。
上述方法中,所述向USBModem設(shè)備發(fā)送ii^選擇性掛起狀態(tài)指令為虛 擬接口驅(qū)動向多路復用驅(qū)動下發(fā)設(shè)備控制命令;多路復用驅(qū)動接收并向下層的 USB轉(zhuǎn)串口驅(qū)動轉(zhuǎn)發(fā)所述設(shè)備控制命令;USB轉(zhuǎn)串口驅(qū)動接收并向USB Hub轉(zhuǎn) 發(fā)設(shè)備控制命令;USB Hub收到所述設(shè)備控制命令后向USB Modem設(shè)備發(fā)送進 入選擇性掛起狀態(tài)指令。
其中,所述多路復用驅(qū)動向下層的USB轉(zhuǎn)串口驅(qū)動發(fā)送所述設(shè)備控制命令 之前,還包括判斷是否所有的虛擬接口都發(fā)送了所迷設(shè)備控制命令,如果不 是,則繼續(xù)等待,直到所有的虛擬接口都發(fā)來所述i殳備控制命令;如果所有的 虛擬接口都發(fā)送了所述設(shè)備控制命令,則向下層的USB轉(zhuǎn)串口驅(qū)動發(fā)送所述設(shè) 備控制命令。
上述方法中,所述USBModem設(shè)備進入選擇性掛起狀態(tài)后,還包括有業(yè) 務請求時喚醒USBModem設(shè)備,為USB Hub收到USB Modem設(shè)備或上層應用 的喚醒請求后,向USB Modem設(shè)備發(fā)送USB遠程喚醒命令使其進入正常工作狀態(tài),完成IRP并通知USB轉(zhuǎn)串口驅(qū)動IRP完成;USB轉(zhuǎn)串口驅(qū)動的完成例程被調(diào) 用以確定IRP完成,并通知多路復用驅(qū)動恢復正常工作;多路復用驅(qū)動恢復正常 工作并通知各個虛擬接口驅(qū)動恢復正常工作。
其中,所述USBHub收到USBModem設(shè)備或上層應用的喚醒請求為USB Modem設(shè)備接收到業(yè)務請求后,發(fā)送USB喚醒信號到USB Hub;或者,上層應 用開始業(yè)務請求,業(yè)務請求命令到達USB轉(zhuǎn)串口驅(qū)動,USB轉(zhuǎn)串口驅(qū)動向USB Hub發(fā)出恢復設(shè)備到工作狀態(tài)的請求。
由以上^t術(shù)方案可以看出,本發(fā)明通過引入了多路復用技協(xié)議,使不同類 型的數(shù)據(jù)在一個串口上傳輸,而不至于發(fā)生紊亂。并將多路復用協(xié)議在USB Modem設(shè)備上實現(xiàn),從而使得一個USB接口可以虛擬成多個虛擬接口 ,以實現(xiàn) USBModem設(shè)備的全部功能,并給予這種新型的架構(gòu),進而實現(xiàn)了在Windows 多個平臺環(huán)境下USB Modem設(shè)備的節(jié)電方法。該節(jié)電方法能夠在Windows XP 下實現(xiàn)USB多接口在設(shè)備空閑期ii7v節(jié)電狀態(tài),實現(xiàn)USB Modem設(shè)備的選擇性 掛起(selective suspend)和遠程喚醒功能(remote wakeup)。
本發(fā)明在主流Windows系統(tǒng)中,大多都支持選擇性掛起和遠程喚醒。尤其 是非復合設(shè)備類型的USB Modem設(shè)備。但例外的是Windows XP系統(tǒng)下, Windows XP系統(tǒng)的復合設(shè)備驅(qū)動usbccgp.sys對于多接口復合設(shè)備的選擇性桂 起支持的不好。那么對于3G USB Modem設(shè)備,如果直接做成復合設(shè)備,將會 影響選擇性掛起功能的穩(wěn)定性。因此,考慮到Windows單接口非復合設(shè)備可以 很好的支持選擇性掛起功能,同時通過多路復用將單個接口虛擬成多個接口的 復合設(shè)備,從而能夠很好地支撐USBModem設(shè)備的各種功能的開發(fā)和擴展,因 此得以實現(xiàn)基于多路復用的單接口架構(gòu)的節(jié)電方案。而之前所有的USBModem 設(shè)備,還沒有一款支持所述節(jié)電功能,這對今后數(shù)據(jù)卡的發(fā)展和應用,有著很 好的促進作用。
本發(fā)明能夠提高了用戶體驗,使用上也更為便捷,實現(xiàn)了設(shè)備在空閑時節(jié) 能80%,從而大大減小了通信模塊的電源消耗,既提高了筆記本續(xù)航能力的, 同時也節(jié)約了電能,更有利于環(huán)保,非常符合當前倡導的節(jié)能環(huán)保思想。
圖1為本發(fā)明USB Modem設(shè)備的節(jié)電裝置的結(jié)構(gòu)示意圖; 圖2為多路復用驅(qū)動的控制流程示意圖; 圖3為多路復用驅(qū)動的寫數(shù)據(jù)流程示意圖; 圖4為多路復用驅(qū)動的讀數(shù)據(jù)流程示意圖; 圖5為本發(fā)明USBModem設(shè)備的節(jié)電方法流程示意圖。
具體實施方式
本發(fā)明的基本思想在于通過多路復用將單個USB物理接口虛擬成多個虛 擬USB接口,實現(xiàn)USBModem設(shè)備在空閑期進入節(jié)電狀態(tài),在收到業(yè)務請求時 恢復到工作狀態(tài)。需要說明的是,本發(fā)明將虛擬USB接口簡稱為虛擬接口。另外,所述USB Modem設(shè)備包括所有能插接在個人計算機(PC)的USB物理接口上的Modem、 移動電話等設(shè)備。為使本發(fā)明上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具 體實施例對本發(fā)明作進一步詳細的說明。如圖1所示,為本發(fā)明提供的USB Modem設(shè)備的節(jié)電裝置結(jié)構(gòu)示意圖,PC側(cè)驅(qū)動通過PC上的USB接口與USB Modem設(shè)備進行交互,并通過多路復用驅(qū)動和USB Modem設(shè)備中單板嵌入式軟 件配合多路復用驅(qū)動來將單個USB接口虛擬成多接口 ,使得USB Modem設(shè)備的 業(yè)務功能得以在虛擬的多接口復合設(shè)備方式下實現(xiàn)USB Modem設(shè)備在 Windows系統(tǒng)中的節(jié)電技術(shù)。該節(jié)電裝置主要包括PC,將單個USB接口虛擬成多個接口,定時檢測是否允許進入選擇性掛起, 并在允許時向USB Modem設(shè)備發(fā)送進入選擇性掛起狀態(tài)指令,通知USB Modem設(shè)備進入選擇性掛起狀態(tài);USBModem設(shè)備,收到進入選擇性掛起狀態(tài)指令后,進入選擇性掛起狀態(tài)。所述PC包括多路復用驅(qū)動、虛擬接口驅(qū)動、USB轉(zhuǎn)串口驅(qū)動及USB集線 器Hub;其中,多路復用驅(qū)動,用于將單個USB物理接口虛擬成多個接口,接收并判斷是 否所有的虛擬接口都發(fā)送了設(shè)備控制命令,以及在所有的虛擬接口都發(fā)送了所 述設(shè)備控制命令時向下層的USB轉(zhuǎn)串口驅(qū)動轉(zhuǎn)發(fā)來自虛擬接口驅(qū)動的設(shè)備控制命令;虛擬接口驅(qū)動,用于定時檢測是否允許進入選擇性掛起,并在允許時向多 路復用驅(qū)動下發(fā)設(shè)備控制命令;USB轉(zhuǎn)串口驅(qū)動,用于接收并向USB Hub轉(zhuǎn)發(fā)所述設(shè)備控制命令;USB Hub,用于收到所述設(shè)備控制命令后向USB Modem設(shè)備發(fā)送進入選擇 性掛起狀態(tài)指令,通知USB Modem設(shè)備進入選擇性掛起狀態(tài)。其中,所述USBHub還用于接收來自USB Modem設(shè)備或上層應用的喚醒 請求,向USBModem設(shè)備發(fā)送USB遠程喚醒命令使其進入正常工作狀態(tài);并完 成I/0清求包(IRP);USB轉(zhuǎn)串口驅(qū)動還用于提供完成例程以確定IRP完成,并通知多路復用驅(qū) 動恢復正常工作;多路復用驅(qū)動還用于通知各個虛擬接口驅(qū)動恢復正常工作。這里,所述完成IRP包括生成IRP、并對其進行處理如狀態(tài)位的處理等, 然后調(diào)用函數(shù)來確定完成IRP。以上描述的是本發(fā)明USBModem設(shè)備的節(jié)電裝置,相應地,本發(fā)明提供一 種USB Modem設(shè)備的節(jié)電方法,在介紹本發(fā)明的USB Modem設(shè)備的節(jié)電方法 之前,先來說明一下多路復用驅(qū)動,多路復用驅(qū)動中實現(xiàn)了多路復用協(xié)議,所 述多路復用協(xié)議是一個GSM協(xié)議中的一個子協(xié)議,在GSM 07.10文檔里有相關(guān) 描述,它是游f接終端i殳備(TE, Terminal Equipment)和移動臺(MS, Mobile Station)之間的紐帶。而TE和MS—般是通過一個串口進行通信,但問題在于串 口只有一個,而通信的數(shù)據(jù)類型卻有很多種。因此,通過采用多路復用協(xié)議在 應用層將一個USB物理接口虛擬成多個虛擬接口 ,以實現(xiàn)USB Modem設(shè)備的全 部功能,并給予這種新型的架構(gòu),進而實現(xiàn)了在Windows多個平臺環(huán)境下USB Modem設(shè)備的節(jié)電方法。即根據(jù)配置文件而創(chuàng)建多個虛擬接口 ,并且將多個 虛擬接口的讀寫數(shù)據(jù)復用在一個USB物理接口上,所采用的復用方法即是多路復用協(xié)議。這使得Windows單接口非復合設(shè)備可以很好的支持選擇性掛起功能, 因為如果是復合設(shè)備,就會加栽Windows系統(tǒng)的復合設(shè)備驅(qū)動,從而造成無法 支持選擇性掛起。因此,該節(jié)電方法通過將能夠在Windows系統(tǒng)下實現(xiàn)USB多 接口在USB Modem設(shè)備空閑期進入節(jié)電狀態(tài),因為Windows系統(tǒng)會認為所接入 USB Modem設(shè)備是一個單接口非復合設(shè)備,這樣能夠很好地支撐USB Modem 設(shè)備的各種功能的開發(fā)和擴展,因此制定了基于多路復用的單接口架構(gòu)的節(jié)電 方案,這種節(jié)電方法尤其適用于TD-SCDMA的內(nèi)置3G USB Modem設(shè)備。其中,本發(fā)明的多路復用協(xié)議需要在USB Modem設(shè)備以及PC側(cè)驅(qū)動的支持 下實現(xiàn),PC側(cè)Windows設(shè)備驅(qū)動包括安裝Windows桌面系統(tǒng)的USB轉(zhuǎn)串口驅(qū) 動、虛擬接口驅(qū)動、多路復用驅(qū)動等。接下來,說明一下多路復用驅(qū)動控制流 程和讀寫流程,其中,控制流程是為了配合說明USB Modem設(shè)備與Windows系 統(tǒng)的交互過程,而讀寫流程則是關(guān)系到USB Modem設(shè)備f可時進入節(jié)電模式。 I、多路復用驅(qū)動的控制流程,如圖2所示,主要步驟如下 步驟201, Windows系統(tǒng)在插入USB Modem設(shè)備后,加載USB轉(zhuǎn)串口驅(qū)動, 并啟動多路復用驅(qū)動;在USB Modem設(shè)備插入Windows系統(tǒng)后,系統(tǒng)檢測到USB轉(zhuǎn)串口驅(qū)動并加 載,當加載該USB轉(zhuǎn)串口驅(qū)動時,Windows系統(tǒng)緊接著為USB轉(zhuǎn)串口驅(qū)動加載 串口類過濾驅(qū)動程序、多路復用驅(qū)動,并且即插即用(PNP, Plugandplay)管 理器開始啟動多路復用驅(qū)動。步驟2Q2,多路復用驅(qū)動開始打開USBModem設(shè)備,并設(shè)置超時; 步驟203,設(shè)置超時后,多路復用驅(qū)動向USBModem設(shè)備發(fā)送AT命令開啟 多路復用協(xié)議;其中,多路復用驅(qū)動通過發(fā)送AT命令如AT+CMUX,使USB Modem設(shè)備開 啟多路復用協(xié)議。步驟204, AT命令成功返回后,多路復用驅(qū)動根據(jù)配置信息向USB Modem 設(shè)備發(fā)送數(shù)據(jù)鏈路連接標識(DLCI, Data Link Connection Identifier);其中,如果AT命令能夠在所設(shè)置的超時時間內(nèi)返回,則認為所述AT命令成功返回,否則,認為所述AT命令失敗。所述配置信息來自于自定義的配置文 件,包含虛擬接口數(shù)量、名稱、接口號等技術(shù)參數(shù)。從DLCIO開始發(fā)送,依 次發(fā)送到DLCI x。
步驟205,針對每一次發(fā)送的DLCI,多路復用驅(qū)動創(chuàng)建虛擬接口的物理設(shè) 備對象;
其中,多路復用驅(qū)動創(chuàng)建虛擬接口的物理設(shè)備對象主要是從DLCI 0依次到 DLCIx進行枚舉。這里,所述虛擬接口的物理設(shè)備對象為將單個USB物理接口
虛擬成多接口后的設(shè)備形態(tài)--多個虛擬USB接口,即虛擬接口。其中,x為虛
擬接口數(shù)量,設(shè)置并記錄在配置文件中。
步驟206,多路復用驅(qū)動開始啟動虛擬接口,并判斷本次枚舉是否為第x次, 如果本次枚舉不是第x次,則返回到步驟204;如果是第x次,則執(zhí)行步驟207; 步驟207,結(jié)束本次控制流程。 II、寫數(shù)據(jù)流程,如圖3所示,主要步驟如下 步驟301,虛擬接口驅(qū)動向多路復用驅(qū)動發(fā)送設(shè)備控制命令; 其中,所述設(shè)備控制命令是Windows框架內(nèi)定義的,分為不同種類的設(shè)備 控制命令,這里,所述設(shè)備控制命令包含寫數(shù)據(jù)的IRP即寫IRP,其中,所述IRP
為I/0請求包,是Windows系統(tǒng)分配的,應用程序觸發(fā)的系統(tǒng)對象,是驅(qū)動與驅(qū) 動間交互的中介。所述虛擬接口驅(qū)動將要寫的數(shù)據(jù)放入寫IRP里,然后發(fā)向多路 復用驅(qū)動。
步驟302,多路復用驅(qū)動收到所述設(shè)備控制命令后解析得到寫IRP,對寫IRP 進行組幀處理;
步驟303,多路復用驅(qū)動將所述寫IRP發(fā)送到USB物理接口上,向USB Modem設(shè)備寫入數(shù)據(jù);
多路復用驅(qū)動將所述寫IRP發(fā)向USB轉(zhuǎn)串口驅(qū)動,USB轉(zhuǎn)串口驅(qū)動根據(jù)寫 IRP里的數(shù)據(jù)構(gòu)造URB,并將URB放到內(nèi)部設(shè)備控制命令中,然后發(fā)向USB Hub, 由USBHub向USBModem設(shè)備寫入數(shù)據(jù)。其中,所述URB為USB請求包。
步驟304,寫IRP完成后,Windows系統(tǒng)依次調(diào)用USB轉(zhuǎn)串口驅(qū)動的寫完成例程和多路復用驅(qū)動的寫完成例程,確保寫操作完成狀態(tài)正確。III、讀數(shù)據(jù)流程,如圖4所示,主要步驟如下步驟401,虛擬接口驅(qū)動向多路復用驅(qū)動發(fā)送設(shè)備控制命令;其中,該設(shè)備控制命令包含讀IRP。步驟402,多路復用驅(qū)動收到設(shè)備控制命后解析獲得讀IRP,并下發(fā)讀IRP 到USB物理接口上;步驟403, USB物理接口從USBHub讀到數(shù)據(jù)后,對所讀取到的數(shù)據(jù)進行解 幀處理;其中,具體的讀數(shù)據(jù)過程屬于Windows系統(tǒng)機制,并與應用程序特性相關(guān)。 例如如果應用程序打開了設(shè)備,那么隨時都有一個讀IRP掛起(Pending)在 USBHub層面,如果下層有數(shù)據(jù)到來,則進4情數(shù)據(jù)的流程。步驟404,讀IRP完成后,Windows系統(tǒng)依次調(diào)用USB轉(zhuǎn)串口驅(qū)動的讀完成 例程和多路復用驅(qū)動的讀完成例程,將讀到的數(shù)據(jù)返回到上層應用。以上所述為多路復用驅(qū)動的控制及讀寫流程,由于在寫或讀數(shù)據(jù)的過程中, 是不允許進入節(jié)電模式的,所以讀寫狀態(tài)和進入節(jié)電模式的條件密切相關(guān)。因 此結(jié)合上述描述的流程,下面來說明一下本發(fā)明的Modem設(shè)備的節(jié)電方法。參 照圖5,示出了本發(fā)明USB Modem設(shè)備的節(jié)電方法流程,本實施例通過多路復 用實現(xiàn)在Windows多個平臺環(huán)境下USBModem設(shè)備節(jié)電的方法,該方法能夠在 Windows系統(tǒng)下實現(xiàn)USB多接口在USB Modem設(shè)備空閑期進入節(jié)電狀態(tài)。具體 地,在USB Modem設(shè)備上實現(xiàn)多路復用協(xié)議,從而實現(xiàn)了USB Modem設(shè)備的 選擇性掛起和遠程喚醒功能。需要說明的是,選擇性掛起和遠程喚醒功能在USB協(xié)議有定義對于一個 USBModem設(shè)備一共有DO、 Dl、 D2、 D3四種狀態(tài)。選擇性掛起指的是主機側(cè) 在需要的時候掛起USBModem設(shè)備,使得USB Modem設(shè)備進入D2狀態(tài);當USB Modem設(shè)備需要進行正常工作時,USB Modem設(shè)備向USB Hub發(fā)送喚醒請求, 從而使得USBModem設(shè)備從掛起狀態(tài)中恢復,進入遠程喚醒狀態(tài)即DO狀態(tài)。需 要指出的是,基于PC側(cè)驅(qū)動和USBModem設(shè)備側(cè)驅(qū)動共同實現(xiàn)多路復用、選擇性掛起和遠程喚醒。
其中,USBModem設(shè)備的節(jié)電方法主要包括以下步驟
步驟501,虛擬接口驅(qū)動定時檢測是否允許進入選擇性掛起,如果不允許, 則執(zhí)行步驟502;如果允許,則執(zhí)行步驟503;
其中,由于USBModem設(shè)備的業(yè)務功能是以多接口復合設(shè)備方式實現(xiàn),因 此通過多路復用將一個USB物理接口虛擬成多個虛擬接口 ,每一個虛擬接口對 應一個虛擬接口驅(qū)動。該虛擬接口驅(qū)動為虛擬串口類設(shè)備如USBModem設(shè)備對 應的設(shè)備驅(qū)動程序,用于轉(zhuǎn)換和模擬應用程序?qū)μ摂M接口的才喿作。
這里,所述虛擬接口驅(qū)動通過檢測其對應的虛擬接口是否滿足允許進入選 擇性掛起的條件,例如判斷一段時間如5秒,有沒有收到來自上層使用USB Modem設(shè)備的應用程序的請求,如讀寫數(shù)據(jù)操作等,虛擬接口驅(qū)動若沒有收到 來自應用程序的請求,判定所述虛擬接口處于空閑狀態(tài)。
步驟502, USB Modem設(shè)備處理收到的來自應用程序的請求;
步驟503,虛擬接口驅(qū)動向多路復用驅(qū)動下發(fā)設(shè)備控制命令;
其中,所述設(shè)備控制命令為設(shè)備空閑狀態(tài)通知,用于通知下層驅(qū)動USB Modem設(shè)備已空閑,可以進入選擇性掛起。例如所述設(shè)備控制命令為 INTERNAL—USB—SUBMIT—IDLE—NOTIFICATION。
步驟504,多路復用驅(qū)動接收所述設(shè)備控制命令,并判斷是否所有的虛擬接 口都發(fā)送了設(shè)備控制命令,如果不是,則執(zhí)行步驟505;如果是,則執(zhí)行步驟506;
步驟505,多路復用驅(qū)動繼續(xù)等待所述設(shè)備控制命令,然后返回步驟501;
其中,多路復用驅(qū)動繼續(xù)等待所述設(shè)備控制命令,并在所述設(shè)備控制命令 到來時返回步驟504進行判斷,直到所有的虛擬接口都發(fā)來設(shè)備控制命令。這里, 如果在多路復用驅(qū)動等待其他虛擬接口驅(qū)動的設(shè)備控制命令時,已發(fā)送設(shè)備控 制命令的虛擬接口驅(qū)動需要進行讀寫或有業(yè)務來到時,則會取消其之前所發(fā)送 的設(shè)備控制命令,如此,即便這期間收到了全部其他虛擬接口驅(qū)動的設(shè)備控制 命令,但仍然是不可以掛起的,直到所有的虛擬接口驅(qū)動均發(fā)送了設(shè)備控制命令。步驟506,多路復用驅(qū)動向下層的USB轉(zhuǎn)串口驅(qū)動發(fā)送所述設(shè)備控制命令;步驟507, USB轉(zhuǎn)串口驅(qū)動接收并向USB Hub轉(zhuǎn)發(fā)所述設(shè)備控制命令;步驟508, USBHub收到了所述設(shè)備控制命令,設(shè)置所述設(shè)備控制命令的狀 態(tài)為pending,然后向USB Modem設(shè)備發(fā)送iiA選擇性掛起狀態(tài)指令;步驟509, USB Modem設(shè)備收到所述ii/v選擇性掛起狀態(tài)指令,便進入選 擇性掛起狀態(tài)。 .USBModem設(shè)備掛起,ii7vf氐功耗狀態(tài),直到有短信業(yè)務、語音業(yè)務、或 者數(shù)據(jù)業(yè)務來到。需要指出的是,USBModem設(shè)備的各個虛擬接口均發(fā)送設(shè)備 控制命令后,USB Modem設(shè)備才會掛起。但是,在進行遠程喚醒時,有一個虛 擬接口收到業(yè)務請求便會喚醒整個USB Modemi殳備。至此,以上描述的選擇性掛起實現(xiàn)過程,接下來說明一下遠程喚醒,本實 施例中,所述遠程喚醒包括兩種途徑 一種是來自設(shè)備自身的喚醒; 一種來自 上層應用程序的喚醒。步驟510, USB Modem設(shè)備接收到業(yè)務請求后,發(fā)送USB喚醒信號到USBHub;步驟511, USB Hub收到USB喚醒信號后,向USB Modem^殳備發(fā)送USB遠 程喚醒命令(clearfeature)使其i^正常工作狀態(tài);其中,USBModem設(shè)備收到所述clearfeature后,恢復正常工作。步驟512, USBHub完成IRP,通知USB轉(zhuǎn)串口驅(qū)動IRP完成,USB轉(zhuǎn)串口驅(qū) 動的完成例程#1調(diào)用以確定IRP完成,并通知多路復用驅(qū)動恢復正常工作;這里,所述完成IRP包括生成IRP、并對其進行處理如狀態(tài)位的處理等, 然后調(diào)用USB轉(zhuǎn)串口驅(qū)動的完成例程來確定完成IRP。確定完成IRP后,USB轉(zhuǎn) 串口驅(qū)動通知多路復用驅(qū)動。步驟513,多路復用驅(qū)動通知各個虛擬接口驅(qū)動恢復正常。需要指出的是,上述喚醒方法有另 一種實現(xiàn)方式一一來自上層應用的喚醒,. 主要實現(xiàn)過程如下上層應用程序發(fā)起與虛擬接口的業(yè)務請求,請求命令到達USB轉(zhuǎn)串口驅(qū)動,USB轉(zhuǎn)串口驅(qū)動向USB Hub發(fā)出恢復設(shè)備到工作狀態(tài)的請求,USB Hub向USB Modem設(shè)備發(fā)出clear feature,以喚醒USB Modem設(shè)備,USB Modem設(shè)備收到 所述clearfeature后恢復到工作狀態(tài),即進入正常狀態(tài)DO狀態(tài)。USBHub完成IRP 后,USB轉(zhuǎn)串口驅(qū)動的完成例程被調(diào)用以確定IRP完成。確定IRP完成后,USB 轉(zhuǎn)串口驅(qū)動通知多路復用驅(qū)動恢復到工作狀態(tài),多路復用驅(qū)動通知各個虛擬接 口驅(qū)動恢復正常。對于上述的各實施例,為了筒單描述,故將其都表述為一系列的動作組合, 但是本領(lǐng)域技術(shù)人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為 依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。在上迷實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳 述的部分,可以參見其他實施例的相關(guān)描述即可。以上所述,僅為本發(fā)明的較 佳實施例而已,只是用來說明和解釋本發(fā)明,并非用于限定本發(fā)明的保護范圍。 在本發(fā)明的精神和權(quán)利要求保護范圍之內(nèi),對本發(fā)明所作的任何修改、等同替 換,都落入本發(fā)明的保護范圍。
權(quán)利要求
1、一種通用串行總線USB調(diào)制解調(diào)器Modem設(shè)備的節(jié)電裝置,其特征在于,包括個人計算機PC和USB Modem設(shè)備;其中,個人計算機PC,定時檢測是否允許進入選擇性掛起,并在允許時向USBModem設(shè)備發(fā)送進入選擇性掛起狀態(tài)指令,通知USB Modem設(shè)備進入選擇性掛起狀態(tài);USB Modem設(shè)備,收到進入選擇性掛起狀態(tài)指令后,進入選擇性掛起狀態(tài)。
2、 根據(jù)權(quán)利要求l所述的USBModem設(shè)備的節(jié)電裝置,其特征在于,所述 PC包括多路復用驅(qū)動、虛擬接口驅(qū)動、USB轉(zhuǎn)串口驅(qū)動及USB集線器Hub; 其中,多路復用驅(qū)動,用于將單個USB物理接口虛擬成多個接口,接收并判斷是 否所有的虛擬接口都發(fā)送了設(shè)備控制命令,以及在所有的虛擬接口都發(fā)送了所 述設(shè)備控制命令時向下層的USB轉(zhuǎn)串口驅(qū)動轉(zhuǎn)發(fā)來自虛擬接口驅(qū)動的設(shè)備控制 命令;虛擬接口驅(qū)動,用于定時檢測是否允許進入選擇性掛起,并在允許時向多路復用驅(qū)動下發(fā)設(shè)備控制命令;USB轉(zhuǎn)串口驅(qū)動,用于接收向USB Hub轉(zhuǎn)發(fā)所述設(shè)備控制命令;USB Hub,用于收到所述設(shè)備控制命令后向USB Modem設(shè)備發(fā)送進入選擇性掛起狀態(tài)指令,通知USB Modem設(shè)備進入選擇性掛起狀態(tài)。
3、 根據(jù)權(quán)利要求2所述的USBModem設(shè)備的節(jié)電裝置,其特征在于, 所述USB Hub還用于接收來自USB Modem設(shè)備或上層應用的喚醒請求,并向USB Modem設(shè)備發(fā)送USB遠程喚醒命令使其進入正常工作狀態(tài);以及完成 1/0請求包IRP;USB轉(zhuǎn)串口驅(qū)動還用于提供完成例程以確定IRP完成,并通知多路復用驅(qū) 動恢復正常工作;多路復用驅(qū)動還用于通知各個虛擬接口驅(qū)動恢復正常工作。
4、 一種USBModem設(shè)備的節(jié)電方法,其特征在于,包括: 定時檢測是否允許進入選擇性掛起,如果不允許,則處理收到的來自應用程序的請求;如果允許,則向USBModem設(shè)備發(fā)送進入選擇性掛起狀態(tài)指令; USBModem設(shè)備收到所述進入選擇性掛起狀態(tài)指令后,進入選擇性掛起狀態(tài)。
5、 根據(jù)權(quán)利要求4所述的USBModem設(shè)備的節(jié)電方法,其特征在于,還包 括將單個USB物理接口虛擬成多個接口,為采用多路復用協(xié)議將單個USB物理接口非復合設(shè)備虛擬成多個接口的復合 設(shè)備。
6、 根據(jù)權(quán)利要求4所述的USBModem設(shè)備的節(jié)電方法,其特征在于,所述定時檢測是否允許進入選擇性掛起為虛擬接口驅(qū)動檢測虛擬接口在設(shè)置的 一定時間內(nèi)是否有數(shù)據(jù)的讀或?qū)懖僮?,若無任何數(shù)據(jù)的讀或?qū)懖僮?,則判定為該虛擬接口允許進入選擇性桂起; 否則,不允許該虛擬接口ii^選擇性掛起。
7、 根據(jù)權(quán)利要求4、或5、或6所述的USBModem設(shè)備的節(jié)電方法,其特征 在于,所述向USB Modem設(shè)備發(fā)送進入選擇性掛起狀態(tài)指令為虛擬接口驅(qū)動向多路復用驅(qū)動下發(fā)設(shè)備控制命令;多路復用驅(qū)動接收并向下層的USB轉(zhuǎn)串口驅(qū)動轉(zhuǎn)發(fā)所述設(shè)備控制命令; USB轉(zhuǎn)串口驅(qū)動接收并向USB Hub轉(zhuǎn)發(fā)設(shè)備控制命令; USB Hub收到所述設(shè)備控制命令后向USB Modem設(shè)備發(fā)送進入選擇性掛 起狀態(tài)指令。
8、 根據(jù)權(quán)利要求7所述的USBModem設(shè)備的節(jié)電方法,其特征在于,所述 多路復用驅(qū)動向下層的USB轉(zhuǎn)串口驅(qū)動發(fā)送所述設(shè)備控制命令之前,還包括判斷是否所有的虛擬接口都發(fā)送了所述設(shè)備控制命令,如果不是,則繼續(xù) 等待,直到所有的虛擬接口都發(fā)來所述設(shè)備控制命令;如果所有的虛擬接口都 發(fā)送了所述設(shè)備控制命令,則向下層的USB轉(zhuǎn)串口驅(qū)動發(fā)送所述設(shè)備控制命令。
9、 根據(jù)權(quán)利要求4、或5、或6所述的USBModem設(shè)'備的節(jié)電方法,其特征在于,所述USBModem設(shè)備進入選擇性掛起狀態(tài)后,還包括 有業(yè)務請求時喚醒USB Modem設(shè)備,為USB Hub收到USB Modem設(shè)備或上層應用的喚醒請求后,向USB Modem 設(shè)備發(fā)送USB遠程喚醒命令使其進入正常工作狀態(tài),完成IRP并通知USB轉(zhuǎn)串口 驅(qū)動IRP完成;USB轉(zhuǎn)串口驅(qū)動的完成例程^皮調(diào)用以確定IRP完成,并通知多路復用驅(qū)動恢 復正常工作;多路復用驅(qū)動恢復正常工作并通知各個虛擬接口驅(qū)動恢復正常工作。
10、根據(jù)權(quán)利要求9所述的USB Modem設(shè)備的節(jié)電方法,其特征在于,所述USB Hub收到USB Moden^殳備或上層應用的喚醒i青求為USBModem設(shè)備接收到業(yè)務請求后,發(fā)送USB喚醒信號到USB Hub;或者, 上層應用開始業(yè)務請求,業(yè)務請求命令到達USB轉(zhuǎn)串口驅(qū)動,USB轉(zhuǎn)串口驅(qū)動向USB Hub發(fā)出恢復設(shè)備到工作狀態(tài)的請求。
全文摘要
本發(fā)明公開了一種通用串行總線USB調(diào)制解調(diào)器Modem設(shè)備的節(jié)電裝置,包括個人計算機和USB Modem設(shè)備。相應地,本發(fā)明提供一種USB Modem設(shè)備的節(jié)電方法,包括定時檢測是否允許進入選擇性掛起,如果不允許,則處理收到的來自應用程序的請求;如果允許,則向USB Modem設(shè)備發(fā)送進入選擇性掛起狀態(tài)指令;USB Modem設(shè)備收到所述進入選擇性掛起狀態(tài)指令后,進入選擇性掛起狀態(tài)。因此,本發(fā)明能實現(xiàn)USB Modem設(shè)備在空閑期進入節(jié)電狀態(tài),在收到業(yè)務請求時恢復到工作狀態(tài)。
文檔編號G06F1/32GK101630191SQ200910091628
公開日2010年1月20日 申請日期2009年8月26日 優(yōu)先權(quán)日2009年8月26日
發(fā)明者偉 王 申請人:中興通訊股份有限公司