專利名稱:實現(xiàn)cmmb設(shè)備低功耗的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及中國移動多媒體廣播(CMMB,China Mobile MultimediaBroadcasting)技術(shù),尤其涉及一種實現(xiàn)CMMB設(shè)備低功耗的方法及裝置。
背景技術(shù):
作為廣播電視的補充和延伸,新興的CMMB技術(shù)通過無線廣播電視網(wǎng)向各種便攜 式終端設(shè)備提供數(shù)字音頻和信息服務(wù),大有替代傳統(tǒng)無線廣播的趨勢。CMMB標準采用廣電 研發(fā)的信道解調(diào)標準,主要面向手機、數(shù)據(jù)卡、上網(wǎng)模塊等便攜式設(shè)備,提供移動數(shù)字電視 和音頻信號接收服務(wù)。隨著無線寬帶技術(shù)的不斷發(fā)展,廣播電視網(wǎng)和無線寬帶網(wǎng)融合的趨 勢不可逆轉(zhuǎn),當前可以實現(xiàn)CMMB的3G網(wǎng)絡(luò)設(shè)備主要有兩種3G上網(wǎng)卡和3G上網(wǎng)模塊,這 兩種3G網(wǎng)絡(luò)設(shè)備與個人計算機(PC,Personal Computer)的接口方式相同,均通過連接到 USB接口來實現(xiàn);只是這兩種3G網(wǎng)絡(luò)設(shè)備的應(yīng)用場合不同,3G上網(wǎng)卡用于PC機上,3G上網(wǎng) 模塊多內(nèi)置于嵌入式設(shè)備中。當前市場上的已上市的3G上網(wǎng)卡已有多款都具有CMMB功能,而3G上網(wǎng)模塊卻 都不具備CMMB功能,其原因是筆記本電腦作為一種便攜式設(shè)備,對于功耗要求十分嚴格, 因此,要求內(nèi)置的3G上網(wǎng)模塊必須具有低功耗的功能。而CMMB功能在實現(xiàn)時,PC側(cè)業(yè)務(wù) 復(fù)雜,流程繁瑣,且Windows操作系統(tǒng)電源管理本身技術(shù)難度高,在此基礎(chǔ)上開發(fā)低功耗的 CMMB功能難度大,極易造成驅(qū)動不穩(wěn)定,導(dǎo)致當前CMMB設(shè)備的PC側(cè)驅(qū)動基本不具有電源管 理功能,無法實現(xiàn)低功耗,因而無法滿足筆記本電腦低功耗的需求,造成當前具備CMMB功 能的3G上網(wǎng)模塊無法在筆記本電腦中內(nèi)置。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實現(xiàn)CMMB設(shè)備低功耗的方法及裝置, 以解決現(xiàn)有技術(shù)中CMMB設(shè)備不具備低功耗功能的問題。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供了一種實現(xiàn)CMMB設(shè)備低功耗的方法,該方法包括CMMB設(shè)備通過CMMB 端口與主機連接;所述方法還包括加載已安裝的所述CMMB設(shè)備的過濾驅(qū)動程序,在所述 CMMB端口允許被掛起時,發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換I/O請求包 (IRP);根據(jù)所述電源切換IRP,所述主機的操作系統(tǒng)掛起所述CMMB端口,將所述CMMB設(shè)備 切換至低功耗狀態(tài)。在上述方案中,加載所述CMMB設(shè)備的過濾驅(qū)動程序之前,所述方法還包括如果 所述CMMB設(shè)備首次與主機連接,安裝所述CMMB設(shè)備的過濾驅(qū)動程序。在上述方案中,在安裝所述過濾驅(qū)動程序之前,所述方法還包括在所述操作系統(tǒng)的INF文件中,所述CMMB設(shè)備的注冊表項中添加所述過濾驅(qū)動程序的ID信息,使得所述操 作系統(tǒng)能夠根據(jù)該注冊表項完成所述過濾驅(qū)動程序的安裝。在上述方案中,在發(fā)出所述電源切換IRP之前,所述方法還包括檢測所述CMMB端口是否處于空閑狀態(tài)的過程;在該檢測結(jié)果為是時,所述過濾驅(qū)動程序在所述CMMB端口允 許被掛起時,發(fā)出所述電源切換IRP。在上述方案中,檢測所述CMMB端口是否處于空閑狀態(tài)的過程,具體為所述過濾 驅(qū)動程序檢測所述CMMB端口是否在預(yù)設(shè)時間段內(nèi)處于空閑狀態(tài)。在上述方案中,在發(fā)出所述電源切換IRP之前,所述方法還包括驗證所述CMMB端 口是否允許被掛起的過程;在該驗證的結(jié)果為允許時,所述過濾驅(qū)動程序發(fā)出所述電源切 換 IRP。在上述方案中,所述驗證CMMB端口是否允許被掛起的過程,具體為所述過濾驅(qū) 動程序向所述主機的操作系統(tǒng)發(fā)送空閑請求,請求掛起所述CMMB端口 ;所述主機的操作系 統(tǒng)在接收到該空閑請求后,檢測是否能夠?qū)λ鯟MMB端口進行選擇性掛起處理,并向所述 過濾驅(qū)動程序返回該檢測的結(jié)果,完成所述驗證的過程。在上述方案中,所述方法還包括在需要將所述CMMB設(shè)備切換至正常工作狀態(tài) 時,通過所述過濾驅(qū)動程序完成所述CMMB設(shè)備從低功耗狀態(tài)切換至正常工作狀態(tài)的過程。
在上述方案中,所述CMMB設(shè)備從低功耗狀態(tài)切換至正常工作狀態(tài)的過程,具體 為所述過濾驅(qū)動程序向所述主機的操作系統(tǒng)發(fā)送將所述CMMB設(shè)備切換至正常工作狀態(tài) 的電源切換IRP ;所述操作系統(tǒng)根據(jù)該電源切換IRP,調(diào)整所述CMMB端口為正常,將所述 CMMB設(shè)備切換至正常工作狀態(tài)。本發(fā)明還提供了一種實現(xiàn)CMMB設(shè)備低功耗的裝置,所述裝置包括過濾驅(qū)動模 塊,用于加載已安裝的CMMB設(shè)備的過濾驅(qū)動程序,并通過該過濾驅(qū)動程序,在CMMB端口允 許被掛起時,發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換IRP ;操作系統(tǒng)模塊,用于 根據(jù)所述過濾驅(qū)動模塊發(fā)出的電源切換IRP,掛起所述CMMB端口,將所述CMMB設(shè)備切換至 低功耗狀態(tài)。在上述方案中,所述操作系統(tǒng)模塊還用于在所述過濾驅(qū)動模塊中安裝所述CMMB 設(shè)備的過濾驅(qū)動程序。在上述方案中,所述過濾驅(qū)動模塊,包括驗證單元、發(fā)送單元,其中驗證單元, 用于驗證所述CMMB端口是否允許被掛起,在驗證結(jié)果為是時,啟動所述發(fā)送單元,否則,不 啟動所述發(fā)送單元;發(fā)送單元,用于發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換 IRP。在上述方案中,所述過濾驅(qū)動模塊,還包括檢測單元,用于檢測所述CMMB端口是 否處于空閑狀態(tài),在檢測結(jié)果為是時,啟動所述驗證單元,否則,不啟動所述驗證單元。在上述方案中,所述過濾驅(qū)動模塊的發(fā)送單元,還用于發(fā)出將所述CMMB設(shè)備切 換至正常工作狀態(tài)的電源切換IRP。在上述方案中,所述操作系統(tǒng)模塊,還用于根據(jù)所述發(fā)送單元所發(fā)出的將CMMB設(shè) 備切換至正常工作狀態(tài)的電源切換IRP,調(diào)整所述CMMB端口為正常,將所述CMMB設(shè)備切換 至正常工作狀態(tài)。本發(fā)明中,CMMB設(shè)備插入CMMB端口,與主機連接后,在主機中安裝CMMB設(shè)備的過 濾驅(qū)動程序,通過該過濾驅(qū)動程序來實現(xiàn)CMMB端口的管理,從而實現(xiàn)了 CMMB設(shè)備的低功耗 功能,使得CMMB設(shè)備具有了自動的電源管理能力,大大降低了 CMMB設(shè)備工作時的功耗,擴 大了 CMMB設(shè)備的使用范圍,從而使得具備CMMB功能的3G上網(wǎng)模塊能夠內(nèi)置于筆記本電腦等嵌入式設(shè)備中。
圖1為本發(fā)明實現(xiàn)CMMB設(shè)備低功耗的方法流程圖;圖2為本發(fā)明中實現(xiàn)CMMB低功耗的裝置的組成結(jié)構(gòu)示意圖;圖3為CMMB設(shè)備進入低功耗狀態(tài)之前的具體流程示意圖;圖4為CMMB設(shè)備進入低功耗狀態(tài)的具體流程示意圖;圖5為CMMB設(shè)備進入正常工作狀態(tài)的具體流程示意圖。
具體實施例方式本發(fā)明的基本思想是采用過濾驅(qū)動的形式來實現(xiàn)CMMB設(shè)備的電源管理功能,進 而實現(xiàn)CMMB設(shè)備的低功耗。本發(fā)明的實現(xiàn)需要以下兩種實體的支持,第一實體為CMMB設(shè) 備,如具有CMMB功能的無線Modem或3G上網(wǎng)模塊;第二實體是主機,如安裝有Windows XP SPl及其以上版本操作系統(tǒng)的筆記本電腦或臺式電腦。本發(fā)明的實現(xiàn)CMMB設(shè)備低功耗的方法,參照圖1所示,主要過程如下步驟101 =CMMB設(shè)備通過CMMB端口與主機連接;這里,CMMB端口可以是USB端口。步驟102 加載已安裝的所述CMMB設(shè)備的過濾驅(qū)動程序,在所述CMMB端口允許被 掛起時,發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換I/O請求包(IRP,I/O Requst Packet);步驟103 根據(jù)所述電源切換IRP,所述主機的操作系統(tǒng)掛起所述CMMB端口,將所 述CMMB設(shè)備切換至低功耗狀態(tài)。其中,在步驟101中,CMMB設(shè)備與主機連接之后,如果所述CMMB設(shè)備與主機首次 連接,則在所述主機上安裝所述CMMB設(shè)備的過濾驅(qū)動程序;否則,所述主機的操作系統(tǒng)直 接加載已安裝的所述CMMB設(shè)備的過濾驅(qū)動程序。這里,過濾驅(qū)動程序基于Win32設(shè)備驅(qū)動程序(WDM,Windows DriverModel)開發(fā) 模型進行開發(fā)。其中,WDM開發(fā)模型是一種通用的驅(qū)動程序模型。WDM開發(fā)模型實行分層處理,設(shè) 備驅(qū)動程序被分成若干層,典型地分成過濾驅(qū)動程序、功能驅(qū)動程序和總線驅(qū)動程序。其 中,每層驅(qū)動程序?qū)⒃O(shè)備的IRP劃分成更簡單的請求,傳給自身下層的驅(qū)動程序來執(zhí)行。最 底層的驅(qū)動程序收到IRP后,通過設(shè)備的硬件抽象層,與設(shè)備硬件發(fā)生作用,來完成IRP相 應(yīng)的操作。具體地,CMMB設(shè)備插入主機之后,CMMB設(shè)備進行枚舉,主機的操作系統(tǒng)獲取CMMB 設(shè)備的廠商標識符(VID,Vendor Identity)和產(chǎn)品標識符(PID,Product Identity)后,根 據(jù)在設(shè)備信息文件(INF)文件中預(yù)先添加的包含有過濾驅(qū)動程序信息的注冊表項,完成所 述CMMB設(shè)備過濾驅(qū)動程序的安裝。這里的過濾驅(qū)動程序安裝在CMMB設(shè)備的功能驅(qū)動程序下層,能夠攔截CMMB設(shè)備功能驅(qū)動程序的IRP,對所攔截的IRP進行有選擇的處理,從而實現(xiàn)CMMB設(shè)備的低功耗處理。
這里,在安裝所述CMMB設(shè)備的驅(qū)動程序之前,首先需要在主機操作系統(tǒng)中的INF 文件中添加CMMB設(shè)備的注冊表項,該注冊表項中包含了 CMMB設(shè)備的ID、CMMB設(shè)備在插入 主機時需要安裝或運行的各程序、以及各程序的ID等信息,向主機的操作系統(tǒng)注冊CMMB設(shè) 備的服務(wù)。在CMMB設(shè)備的注冊表項中加入CMMB設(shè)備過濾驅(qū)動程序的ID等相關(guān)信息,則啟 動CMMB設(shè)備的服務(wù)時,主機的操作系統(tǒng)會根據(jù)所述注冊表項中的信息選擇加載CMMB設(shè)備 的過濾驅(qū)動程序,從而實現(xiàn)所述CMMB過濾驅(qū)動程序的安裝。這里,步驟102中在發(fā)出所述電源切換IRP之前,所述方法還包括檢測所述CMMB 端口是否處于空閑狀態(tài)的過程,如果是,則所述過濾驅(qū)動程序在所述CMMB端口允許被掛起 時,發(fā)出所述的電源切換IRP,否則,不發(fā)出所述的電源切換IRP,結(jié)束當前CMMB設(shè)備的低功 耗處理過程。具體地,所述過濾驅(qū)動程序檢測所述CMMB端口傳輸數(shù)據(jù)的狀態(tài),如果在預(yù)設(shè)時間 段內(nèi)CMMB端口沒有傳輸數(shù)據(jù),則確定CMMB端口處于空閑狀態(tài),否則,確定CMMB端口處于 工作狀態(tài)。在檢測到所述CMMB端口處于空閑狀態(tài)時,進行空閑狀態(tài)計時,如果該計時結(jié)果 達到預(yù)定時間,則所述過濾驅(qū)動程序在所述CMMB端口允許被掛起時,發(fā)出所述的電源切換 IRP,否則,不發(fā)出所述的 電源切換IRP。其中,在發(fā)出所述電源切換IRP之前,所述方法還包括驗證所述CMMB端口是否允 許被掛起的過程,所述過濾驅(qū)動程序在該驗證的結(jié)果為允許時,發(fā)出所述電源切換IRP。這里,驗證所述CMMB端口是否允許被掛起的具體過程如下所述過濾驅(qū)動程序向所述主機的操作系統(tǒng)發(fā)送空閑請求,請求掛起所述CMMB端 口 ;所述主機的操作系統(tǒng)在接收到該空閑請求后,檢測是否能夠?qū)λ鯟MMB端口進行選擇 性掛起處理,并向所述過濾驅(qū)動程序返回該檢測的結(jié)果。具體地,所述過濾驅(qū)動程序向所述主機的操作系統(tǒng)發(fā)送請求掛起所述CMMB端口 的空閑IRP,該空閑IRP中包含有掛起回調(diào)例程函數(shù)的指針;所述主機的操作系統(tǒng)接收到所 述空閑IRP,檢測是否能夠?qū)λ鯟MMB端口進行選擇性掛起處理,并根據(jù)所述空閑IRP中掛 起回調(diào)例程函數(shù)的指針,調(diào)用所述過濾驅(qū)動程序中預(yù)設(shè)的掛起回調(diào)例程函數(shù),將檢測結(jié)果 返回給過濾驅(qū)動程序,這樣,使得所述過濾驅(qū)動程序能夠在確認所述CMMB端口能夠被掛起 時,向所述操作系統(tǒng)發(fā)出請求將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換IRP。具體地,所述主機的操作系統(tǒng)在接收到請求將所述CMMB設(shè)備切換至低功耗狀態(tài) 的電源切換IRP后,對該電源切換IRP進行處理,完成所述CMMB端口的選擇性掛起例程,所 述CMMB設(shè)備的工作電流下降,進入低功耗狀態(tài)。其中,在步驟103之后,在需要將所述CMMB設(shè)備切換至正常工作狀態(tài)時,所述方法 還包括所述過濾驅(qū)動程序向所述主機的操作系統(tǒng)發(fā)送將所述CMMB設(shè)備切換至正常工作 狀態(tài)的電源切換IRP ;所述操作系統(tǒng)根據(jù)該電源切換IRP,調(diào)整所述CMMB端口為正常,將所 述CMMB設(shè)備切換至正常工作狀態(tài)。具體地,在所述CMMB設(shè)備被打開時,所述主機的用戶界面(ULUserInterface)程 序經(jīng)過所述CMMB設(shè)備的功能驅(qū)動程序向所述過濾驅(qū)動程序發(fā)送請求恢復(fù)為正常工作狀態(tài) 的IRP,所以過濾驅(qū)動程序根據(jù)該IRP,向所述主機的操作系統(tǒng)發(fā)送請求將所述CMMB設(shè)備的 切換至正常工作狀態(tài)的電源切換IRP。
另外,如果CMMB設(shè)備從主機上移除,則所述過濾驅(qū)動程序向所述操作系統(tǒng)發(fā)送取 消CMMB端口的掛起的IRP,所述操作系統(tǒng)接收到該IRP之后,完成所述CMMB端口掛起狀態(tài) 的取消操作,并關(guān)閉所述過濾驅(qū)動程序。為實現(xiàn)上述方法,本發(fā)明還提供了一種實現(xiàn)CMMB設(shè)備低功耗的裝置,參照圖2所 示,主要包括過濾驅(qū)動模塊21和操作系統(tǒng)模塊22,其中過濾驅(qū)動模塊21,用于加載已安裝的CMMB設(shè)備的過濾驅(qū)動程序,并通過該過濾驅(qū) 動程序,在CMMB端口允許被掛起時,發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換 IRP ;操作系統(tǒng)模塊22,用于根據(jù)所述過濾驅(qū)動模塊21發(fā)出的電源切換IRP,掛起所述 CMMB端口,將所述CMMB設(shè)備切換至低功耗狀態(tài)。其中,所述操作系統(tǒng)模塊22還用于在所述過濾驅(qū)動模塊21中安裝所述CMMB設(shè) 備的過濾驅(qū)動程序。具體地,在所述操作系統(tǒng)模塊22的INF文件中,所述CMMB設(shè)備的注冊表項中添加 所述過濾驅(qū)動模塊21的ID信息,在CMMB設(shè)備與主機連接后,操作系統(tǒng)模塊22能夠根據(jù)該 注冊表項完成所述過濾驅(qū)動程序在所述過濾驅(qū)動模塊中的安裝。其中,所述過濾驅(qū)動模塊21,包括驗證單元211、發(fā)送單元212,其中驗證單元211,用于驗證所述CMMB端口是否允許被掛起,在驗證結(jié)果為是時,啟動 所述發(fā)送單元212,否則,不啟動所述發(fā)送單元212 ;發(fā)送單元212,用于發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換IRP。這里,所述過濾驅(qū)動模塊21,還可以包括檢測單元213,用于檢測所述CMMB端口 是否處于空閑狀態(tài),在檢測結(jié)果為是時,啟動所述驗證單元211,否則,不啟動所述驗證單元 211。具體地,所述檢測單元213檢測所述CMMB端口在預(yù)設(shè)時間內(nèi)處于空閑狀態(tài),則啟 動所述驗證單元211,驗證單元211啟動后,向所述操作系統(tǒng)模塊22發(fā)送空閑請求,請求 掛起所述CMMB端口 ;所述操作系統(tǒng)模塊22在接收到該空閑請求后,檢測是否能夠?qū)λ?CMMB端口進行選擇性掛起處理,并向所述驗證單元211返回該檢測的結(jié)果,在所述檢測結(jié) 果為允許時,驗證單元211啟動所述發(fā)送單元212,發(fā)送單元212在啟動后,向操作系統(tǒng)模塊 22發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換IRP。另外,所述過濾驅(qū)動模塊的發(fā)送單元212,還用于發(fā)出將所述CMMB設(shè)備切換至正 常工作狀態(tài)的電源切換IRP。 所述操作系統(tǒng)模塊22,還用于根據(jù)所述發(fā)送單元212所發(fā)出的將CMMB設(shè)備切換至 正常工作狀態(tài)的電源切換IRP,調(diào)整所述CMMB端口為正常,將所述CMMB設(shè)備切換至正常工 作狀態(tài)。具體地,在需要將所述CMMB設(shè)備切換至正常工作狀態(tài)時,所述過濾驅(qū)動模塊的發(fā) 送單元212向所述操作系統(tǒng)模塊22發(fā)出將所述CMMB設(shè)備切換至正常工作狀態(tài)的電源切換 IRP,再由操作系統(tǒng)模塊22完成所述CMMB設(shè)備切換至正常工作狀態(tài)的過程。實際應(yīng)用中,可以通過將本發(fā)明所提供的裝置設(shè)置于連接所述CMMB設(shè)備的主機 中,通過上述方法流程來實現(xiàn)CMMB設(shè)備的低功耗,具體過程在此不再贅述。下面對實際應(yīng)用中通過本發(fā)明實現(xiàn)CMMB設(shè)備低功耗的具體過程做進一步詳細說明。首先,參照圖3所示,在將CMMB設(shè)備切換至低功耗狀態(tài)之前,需要進行以下流程步驟301-302 :CMMB設(shè)備插入主機的CMMB端口,與主機連接;如果需要安裝該 CMMB設(shè)備的過濾驅(qū)動程序,則進入步驟303,否則,直接進入步驟304 ;步驟303 =CMMB設(shè)備進行枚舉,所述主機的操作系統(tǒng)獲取該CMMB設(shè)備的VID和 PID,并安裝CMMB設(shè)備的過濾驅(qū)動程序,結(jié)束后,繼續(xù)步驟304 ;這里,過濾驅(qū)動程序的安裝可以在任何時候進行,如CMMB設(shè)備插在主機上時,或 者CMMB設(shè)備未連接在主機上時。一般,選擇在CMMB設(shè)備首次與主機連接時完成。
其中,安裝過程主要是調(diào)用系統(tǒng)的API函數(shù),在主機操作系統(tǒng)指定目錄下,生成 包含有設(shè)備信息的inf文件,該inf文件包含有CMMB設(shè)備的PID,VID以及和CMMB設(shè)備對 應(yīng)的驅(qū)動程序名稱等相關(guān)信息。實際使用時,在CMMB設(shè)備插入主機后,主機的操作系統(tǒng)首先從自身所保存的各 inf文件中,查找是否包含有該CMMB設(shè)備的inf文件,如果有,則直接根據(jù)該inf文件中的 信息加載CMMB設(shè)備的過濾驅(qū)動程序;否則,說明過濾驅(qū)動程序不存在,則CMMB設(shè)備表現(xiàn)為 黃色感嘆號,提示需要安裝過濾驅(qū)動程序。在實際應(yīng)用中,在安裝所述CMMB設(shè)備的過濾驅(qū)動程式時,通常會同時將CMMB設(shè)備 的其他驅(qū)動程序如功能驅(qū)動程序等也進行安裝。步驟304 所述主機的操作系統(tǒng)加載所安裝的過濾驅(qū)動程序;步驟305 所述主機的操作系統(tǒng)驗證是否需要將所述CMMB設(shè)備切換至低功耗狀 態(tài),如果否,則進入步驟306,否則開始CMMB設(shè)備進入低功耗狀態(tài)的處理過程。具體地,讀取操作系統(tǒng)INF文件中的CMMB設(shè)備的注冊表項,該注冊表項中包含有 表示CMMB設(shè)備是否需要進行電源管理的特定鍵值,根據(jù)該特定鍵值判斷當前CMMB設(shè)備是 否需要電源管理,如果是,則開始CMMB設(shè)備進入低功耗狀態(tài)的處理過程,繼續(xù)圖4所示流 程,否則進行步驟306。這里,注冊表項中,表示CMMB設(shè)備是否需要進行電源管理的特定鍵值可以根據(jù)實 際應(yīng)用情況進行設(shè)置和/或修改。該特定鍵值具體可以為一個字符標識。步驟306 過濾驅(qū)動程序?qū)λ鯟MMB設(shè)備的各IRP不做任何操作,不干預(yù)CMMB設(shè) 備的任何功能,對CMMB設(shè)備的所有操作直接透傳到過濾驅(qū)動程序的下一層。其次,參照圖4所示,進行CMMB設(shè)備的低功耗狀態(tài)切換過程,具體流程如下步驟401 判斷CMMB設(shè)備是否已經(jīng)處于低功耗狀態(tài),如果是,則當前過濾驅(qū)動程序 進入等待狀態(tài),否則進入步驟402 ;這里,判斷CMMB設(shè)備是否已經(jīng)處于低功耗狀態(tài),由過濾驅(qū)動程序來完成。具體地, 過濾驅(qū)動程序中包含有用于表示CMMB設(shè)備當前狀態(tài)的標志位。實際應(yīng)用中,在過濾驅(qū)動程 序成功的通過下發(fā)電源切換IRP,H CMMB設(shè)備進入低功耗狀態(tài)后,可以設(shè)置此標志位為1。 而CMMB設(shè)備在從低功耗狀態(tài)返回時,過濾驅(qū)動程序可以修改此標志位為0。通過上述標志 位,過濾驅(qū)動程序便可得知當前設(shè)備所處的狀態(tài)。步驟402-403 過濾驅(qū)動程序檢測所述CMMB設(shè)備是否處于空閑狀態(tài),如果是,則繼 續(xù)步驟403,進行空閑時間計時,在計時達到預(yù)設(shè)值則進入步驟404,否則,過濾驅(qū)動程序直 接進入等待狀態(tài);
這里,所述空閑時間的設(shè)定可以根據(jù)實際應(yīng)用情況來定,具體地,可以將所述空閑時間設(shè)置為16秒,則過濾驅(qū)動程序會進行一個16秒的等待空閑計時;步驟404 過濾驅(qū)動程序向主機的操作系統(tǒng)發(fā)送請求將所述CMMB端口掛起的空閑 IRP ;步驟405 所述操作系統(tǒng)驗證所述CMMB端口是否允許被掛起,并向所述過濾驅(qū)動 程序返回驗證結(jié)果,如果該驗證結(jié)果為允許,則進入步驟406,否則,所述過濾驅(qū)動程序進入 等待狀態(tài),直至所述CMMB端口允許被掛起時,繼續(xù)步驟406 ;實際應(yīng)用中,所述主機的其它端口對CMMB端口的影響可能會導(dǎo)致所述CMMB端口 無法被掛起。步驟406 過濾驅(qū)動程序向操作系統(tǒng)發(fā)送請求將CMMB設(shè)備切換至低功耗狀態(tài)的電 源切換IRP ;步驟407:操作系統(tǒng)接收所述電源切換IRP,對該電源切換IRP進行處理,完成所述 CMMB端口的選擇性掛起例程,CMMB設(shè)備進入低功耗狀態(tài)。此時,CMMB設(shè)備在進入低功耗狀態(tài)后,當前過濾驅(qū)動程序進入等待狀態(tài),直至所述 CMMB設(shè)備被打開,進入圖5所示的將CMMB設(shè)備調(diào)整至正常工作狀態(tài)的流程。再次,參照圖5所示,需要傳輸數(shù)據(jù)時,CMMB設(shè)備被打開,將CMMB設(shè)備調(diào)整為正常 工作狀態(tài),具體流程如下步驟501 =CMMB設(shè)備被打開,主機的操作系統(tǒng)啟動過濾驅(qū)動程序;步驟502 過濾驅(qū)動程序判斷CMMB設(shè)備是否處于低功耗狀態(tài),如果是,則進入步驟 505 否則,進入步驟503 ;步驟503 判斷所述CMMB設(shè)備是否正在進行低功耗狀態(tài)的切換處理過程,如果是, 則進入步驟504 ;如果否,則直接進入507 ;這里,所述CMMB設(shè)備的IRP中包含有表示CMMB設(shè)備所處工作狀態(tài)的標識位,過濾 驅(qū)動程序可以通過CMMB設(shè)備當前IRP中的標識位來判斷CMMB設(shè)備是否處于低功耗狀態(tài)、 以及是否處于低功耗的切換處理過程。步驟504 過濾驅(qū)動程序取消正在進行的將CMMB設(shè)備切換至低功耗狀態(tài)的處理過 程,進入步驟507 ;步驟505 過濾驅(qū)動程序向操作系統(tǒng)發(fā)送請求將CMMB設(shè)備切換至正常工作狀態(tài)的 電源切換IRP ;步驟506 操作系統(tǒng)接收到所述請求將CMMB設(shè)備切換至正常工作狀態(tài)的電源切換 IRP,調(diào)整CMMB端口至正常,將CMMB設(shè)備切換至正常工作狀態(tài),進入步驟507 ;步驟507 主機的上層UI程序開始對CMMB設(shè)備進行正常的讀寫操作,上層UI程 序從CMMB設(shè)備側(cè)獲取視頻數(shù)據(jù),進行電視節(jié)目的播放;步驟508 播放結(jié)束后,關(guān)閉上層UI,打開的CMMB設(shè)備句柄也被關(guān)閉。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護 范圍之內(nèi)。
權(quán)利要求
一種實現(xiàn)CMMB設(shè)備低功耗的方法,該方法包括CMMB設(shè)備通過CMMB端口與主機連接;其特征在于,所述方法還包括加載已安裝的所述CMMB設(shè)備的過濾驅(qū)動程序,在所述CMMB端口允許被掛起時,發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換I/O請求包(IRP);根據(jù)所述電源切換IRP,所述主機的操作系統(tǒng)掛起所述CMMB端口,將所述CMMB設(shè)備切換至低功耗狀態(tài)。
2.根據(jù)權(quán)利要求1所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,加載所述CMMB設(shè)備 的過濾驅(qū)動程序之前,所述方法還包括如果所述CMMB設(shè)備首次與主機連接,安裝所述CMMB設(shè)備的過濾驅(qū)動程序。
3.根據(jù)權(quán)利要求2所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,在安裝所述過濾驅(qū) 動程序之前,所述方法還包括在所述操作系統(tǒng)的INF文件中,所述CMMB設(shè)備的注冊表項中添加所述過濾驅(qū)動程序的 ID信息,使得所述操作系統(tǒng)能夠根據(jù)該注冊表項完成所述過濾驅(qū)動程序的安裝。
4.根據(jù)權(quán)利要求1所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,在發(fā)出所述電源切 換IRP之前,所述方法還包括檢測所述CMMB端口是否處于空閑狀態(tài)的過程;在該檢測結(jié)果為是時,所述過濾驅(qū)動程序在所述CMMB端口允許被掛起時,發(fā)出所述電 源切換IRP。
5.根據(jù)權(quán)利要求4所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,檢測所述CMMB端口 是否處于空閑狀態(tài)的過程,具體為所述過濾驅(qū)動程序檢測所述CMMB端口是否在預(yù)設(shè)時間段內(nèi)處于空閑狀態(tài)。
6.根據(jù)權(quán)利要求1所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,在發(fā)出所述電源切 換IRP之前,所述方法還包括驗證所述CMMB端口是否允許被掛起的過程;在該驗證的結(jié)果為允許時,所述過濾驅(qū)動程序發(fā)出所述電源切換IRP。
7.根據(jù)權(quán)利要求6所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,所述驗證CMMB端口 是否允許被掛起的過程,具體為所述過濾驅(qū)動程序向所述主機的操作系統(tǒng)發(fā)送空閑請求,請求掛起所述CMMB端口 ;所 述主機的操作系統(tǒng)在接收到該空閑請求后,檢測是否能夠?qū)λ鯟MMB端口進行選擇性掛 起處理,并向所述過濾驅(qū)動程序返回該檢測的結(jié)果,完成所述驗證的過程。
8.根據(jù)權(quán)利要求1至7任一項所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,所述方 法還包括在需要將所述CMMB設(shè)備切換至正常工作狀態(tài)時,通過所述過濾驅(qū)動程序完成所 述CMMB設(shè)備從低功耗狀態(tài)切換至正常工作狀態(tài)的過程。
9.根據(jù)權(quán)利要求8所述實現(xiàn)CMMB設(shè)備低功耗的方法,其特征在于,所述CMMB設(shè)備從低 功耗狀態(tài)切換至正常工作狀態(tài)的過程,具體為所述過濾驅(qū)動程序向所述主機的操作系統(tǒng)發(fā)送將所述CMMB設(shè)備切換至正常工作狀態(tài) 的電源切換IRP ;所述操作系統(tǒng)根據(jù)該電源切換IRP,調(diào)整所述CMMB端口為正常,將所述 CMMB設(shè)備切換至正常工作狀態(tài)。
10.一種實現(xiàn)CMMB設(shè)備低功耗的裝置,其特征在于,所述裝置包括過濾驅(qū)動模塊,用于加載已安裝的CMMB設(shè)備的過濾驅(qū)動程序,并通過該過濾驅(qū)動程 序,在CMMB端口允許被掛起時,發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換IRP ;操作系統(tǒng)模塊,用于根據(jù)所述過濾驅(qū)動模塊發(fā)出的電源切換IRP,掛起所述CMMB端口, 將所述CMMB設(shè)備切換至低功耗狀態(tài)。
11.根據(jù)權(quán)利要求10所述實現(xiàn)CMMB設(shè)備低功耗的裝置,其特征在于,所述操作系統(tǒng)模 塊還用于在所述過濾驅(qū)動模塊中安裝所述CMMB設(shè)備的過濾驅(qū)動程序。
12.根據(jù)權(quán)利要求10所述實現(xiàn)CMMB設(shè)備低功耗的裝置,其特征在于,所述過濾驅(qū)動模 塊,包括驗證單元、發(fā)送單元,其中驗證單元,用于驗證所述CMMB端口是否允許被掛起,在驗證結(jié)果為是時,啟動所述發(fā) 送單元,否則,不啟動所述發(fā)送單元;發(fā)送單元,用于發(fā)出將所述CMMB設(shè)備切換至低功耗狀態(tài)的電源切換IRP。
13.根據(jù)權(quán)利要求12所述實現(xiàn)CMMB設(shè)備低功耗的裝置,其特征在于,所述過濾驅(qū)動模 塊,還包括檢測單元,用于檢測所述CMMB端口是否處于空閑狀態(tài),在檢測結(jié)果為是時,啟動所述 驗證單元,否則,不啟動所述驗證單元。
14.根據(jù)權(quán)利要求10至13任一項所述實現(xiàn)CMMB設(shè)備低功耗的裝置,其特征在于,所述 過濾驅(qū)動模塊的發(fā)送單元,還用于發(fā)出將所述CMMB設(shè)備切換至正常工作狀態(tài)的電源切換IRP。
15.根據(jù)權(quán)利要求14所述實現(xiàn)CMMB設(shè)備低功耗的裝置,其特征在于,所述操作系統(tǒng)模 塊,還用于根據(jù)所述發(fā)送單元所發(fā)出的將CMMB設(shè)備切換至正常工作狀態(tài)的電源切換IRP, 調(diào)整所述CMMB端口為正常,將所述CMMB設(shè)備切換至正常工作狀態(tài)。
全文摘要
本發(fā)明公開了一種實現(xiàn)CMMB設(shè)備低功耗的方法,主要通過在CMMB設(shè)備通過CMMB端口與主機連接后,加載已安裝的所述CMMB設(shè)備的過濾驅(qū)動程序,通過該過濾驅(qū)動程序與主機操作系統(tǒng)的交互,實現(xiàn)所述CMMB設(shè)備的低功耗功能。另外,本發(fā)明還公開了一種實現(xiàn)CMMB設(shè)備低功耗的裝置,本發(fā)明實現(xiàn)了CMMB設(shè)備的低功耗功能,使得CMMB設(shè)備具有了自動的電源管理能力,大大降低了CMMB設(shè)備工作時的功耗,擴大了CMMB設(shè)備的使用范圍,從而使得具備CMMB功能的3G上網(wǎng)模塊能夠內(nèi)置于筆記本電腦等嵌入式設(shè)備中。
文檔編號H04H20/57GK101833367SQ20101014072
公開日2010年9月15日 申請日期2010年3月24日 優(yōu)先權(quán)日2010年3月24日
發(fā)明者彭慶祥 申請人:中興通訊股份有限公司