新四季網

通過對usbhid設備進行二次枚舉以識別主機作業系統的方法

2023-05-30 21:44:46 2

專利名稱:通過對usb hid設備進行二次枚舉以識別主機作業系統的方法
技術領域:
本發明涉及計算機移動技術領域,尤其是一種通過對USB HID設備進行二次枚舉以識別主機作業系統的方法。
背景技術:
由於USB設備具有可熱拔插、標準統一、可連接多個設備等優點,使用USB接口的設備與日俱增,例如數位相機、掃描儀、遊戲杆、磁帶和軟碟機、圖像設備、印表機、鍵盤、滑鼠等等。然而有些USB設備功能的實現方法隨著作業系統的不同有很大的區別。這就要求設備能通過某種方法檢測到主機的作業系統類型,從而實現其應有的功能。

圖I為現有USB設備以識別主機作業系統的流程圖,採用圖I中的方法是在枚舉過程中判斷設備類型和是否接收到預設指令來決定當前作業系統類型。然而,此種方法存在著缺陷如下I、只能區分WINDOWS作業系統的不同版本,不能區分LINUX作業系統與MAC作業系統;2、若設備為HID設備,則不能判斷作業系統類型,在主機不斷電的情況下如果切換了作業系統則需要重新插拔USB HID設備才能識別出當前系統類型;3、上述方法的操作流程比較複雜。

發明內容
針對上述技術的不足之處,本發明提供一種可準確的識類當前系統的類型,在不斷電的情況下發生作業系統切換時不必重新插拔USB HID設備的通過對USB HID設備進行二次枚舉以識別主機作業系統的方法。為實現上述目的,本發明提供一種通過對USB HID設備進行二次枚舉以識別主機作業系統的方法,包括以下步驟SI、USB HID設備上電,並進行初始化;S2、對USB HID設備進行第一次枚舉以確定主機作業系統的類型;S3、在USB HID設備與主機作業系統之間依次完成軟掉電與再次連接處理後進行第二次枚舉,以保證USB HID設備能夠正常工作;S4、USB HID設備在接收到主機發送的重啟標誌後,則重新執行整個流程來判斷主機重啟後的作業系統。在步驟SI中,USB HID設備通過USB總線連接到主機,並從主機的電源電壓或工作電壓處獲取其工作電壓。在步驟SI中,USB HID設備將自身存儲的上電標識、作業系統標識初始化為默認標識。在步驟S2包括以下步驟
200、USB HID設備接收主機作業系統發送的系統標誌性數據;201、USB HID設備逐一對主機作業系統發送的系統標誌性數據做出響應;202、USB HID設備主機作業系統發送的相關標誌性數據存儲起來,並根據相關標誌性數據判斷當前作業系統的類型。在步驟200與步驟201中,系統標誌性數據包括取設備描述符、設置設備地址、取配置描述符、取端點描述符、取字符串描述符、取端點描述符與選擇配置。在步驟S3中包括以下步驟300、對USB HID設備與主機作業系統進行軟掉電處理後再次連接;
301、根據當前作業系統類型選取相應的配置描述符對USB HID設備進行第二次枚舉。在步驟300中,USB HID設備在預定時間內,使其內部的上拉電阻斷開與主機電源電壓或工作電壓的連接,在超過預定時間後,USB HID設備中的上拉電阻再次與主機的電源電壓或工作電壓連接,使USB HID設備再次處於上電狀態。在步驟S4中,判斷USB HID設備是否收到主機發送的重啟標誌,若確認收到,則返回步驟S2重新執行;若確認沒有收到,則返回步驟S3,檢測主機是否發送了重啟標誌。與現有技術相比,本發明具有以下優點I、本發明具有流程簡潔的優點,通過在枚舉過程中不同作業系統發送的數據之間的區別、以及主機重啟過程中發送給USB HID設備的某些標誌性數據來判別出當前正在使用的作業系統類型,與現有USB HID設備識別主機作業系統的方法相比,不僅可識別出Windows系統的不同版本,如XP、WIN7等,還可識別出Linux作業系統和Mac作業系統;2、在主機不斷電的情況下,如果切換了作業系統,不需要重新插拔USB HID設備就能識別出當前系統類型。


圖I為現有USB設備以識別主機作業系統的流程圖;圖2為本發明的流程圖;圖3為圖2中步驟S2中的流程圖;圖4為圖3中步驟S3中的流程圖;圖5為本發明的實施例的流程圖。
具體實施例方式下面結合附圖和實施例對本發明作進一步詳細說明。如圖2至圖5所示,本發明提供一種通過對USB HID設備進行二次枚舉以識別主機作業系統的方法,包括以下步驟SI、USB HID設備上電,並進行初始化。USB HID設備上電後先執行初始化操作;具體地,USB HID設備通過USB總線連接到主機,並從主機Vcc (電源電壓或工作電壓)處獲取工作電壓;初始化操作具體包括USBHID設備將自身存儲的上電標識、作業系統標識初始化為默認標識。S2 JfUSB HID設備進行第一次枚舉以確定主機作業系統的類型。
具體地,在步驟S2包括以下步驟200、USB HID設備接收主機作業系統發送的系統標誌性數據;201、USB HID設備逐一對主機作業系統發送的系統標誌性數據做出響應;202、USB HID設備主機作業系統發送的相關標誌性數據存儲起來,並根據相關標誌性數據判斷當前作業系統的類型。在步驟200與步驟201中,系統標誌性數據包括取設備描述符、設置設備地址、取配置描述符、取端點描述符、取字符串描述符、取端點描述符與選擇配置。主機作業系統時刻監測USB總線上是否有設備插入,具體是通過檢測Vcc上拉電阻的變化來確定的,並在檢測到USB設備插入時,加載設備總線驅動,開始對USB設備進行枚舉操作,然後USB設備接收主機下發的一系列setup包,包括「取設備描述符」、「設置設備地址」、「取配置描述符」、「取端點描述符」、「取字符串描述符」、「取端點描述符」、「選擇配置」 等命令,USB HID設備逐一對其做出響應,完成枚舉過程。在枚舉過程中將主機發送的某些標誌性數據存儲起來。如Mac作業系統和Windows7作業系統的區別在於,Mac作業系統不會對USB HID設備發送Set Idle命令,而Windows7作業系統則發送;Mac作業系統和Linux作業系統的區別在於,Linux作業系統不會對設備發送Get InPutR印ort命令。枚舉完成後根據這些標誌來判斷出當前作業系統類型。S3、在USB HID設備與主機作業系統之間依次完成軟掉電與再次連接處理後進行第二次枚舉,以保證USB HID設備能夠正常工作。具體地,在步驟S3中包括以下步驟300、對USB HID設備與主機作業系統進行軟掉電處理後再次連接;301、根據當前作業系統類型選取相應的配置描述符等數據對USBHID設備進行第
二次枚舉。在步驟300中,USB HID設備在預定時間內,使其內部的上拉電阻斷開與主機電源電壓或工作電壓的連接,在超過預定時間後,USB HID設備中的上拉電阻再次與主機的電源電壓或工作電壓連接,使USB HID設備再次處於上電狀態。根據當前作業系統類型選取相應的方法重新枚舉USB設備。重新枚舉即先將設備軟掉電,然後選取對應的描述符等信息進行第二次USB枚舉。USB HID設備是通過改變主機Vcc (電源電壓或工作電壓)的上拉電阻狀態來告知主機自身的插拔狀態,USB HID設備內部集成有上拉電阻,默認狀態下是不與Vcc相連的,當USB HID設備與主機建立連接時,USB設備內部的上拉電阻連接到Vcc上,這樣主機便可以通過檢測Vcc上的上拉電阻的變化來確定是否有USB HID設備連入了 ;軟掉電處理具體是指USB HID設備斷開內部上拉電阻與Vcc的連接,這樣,主機作業系統將會監控到USB HID設備是拔出狀態,但USB HID設備是與Vcc相連的,依然可以從Vcc處獲取電源,USB HID設備依然是處於上電狀態的,斷開預定時間後(極短的時間),USB HID設備內部上拉電阻將再次連到Vcc,主機作業系統將再次監控到USB HID設備的插入,重新開始進行枚舉操作。S4、USB HID設備在接收到主機發送的重啟標誌後,則重新執行整個流程來判斷主機重啟後的作業系統。具體地,在步驟S4中,判斷USB HID設備是否收到主機發送的重啟標誌,若確認收至|J,則返回步驟S2重新執行;若確認沒有收到,則返回步驟S3,檢測主機是否發送了重啟標 O以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種通過對USB HID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,包括以下步驟 SUUSB HID設備上電,並進行初始化; 52、對USBHID設備進行第一次枚舉以確定主機作業系統的類型; 53、在USBHID設備與主機作業系統之間依次完成軟掉電與再次連接處理後進行第二次枚舉,以保證USB HID設備能夠正常工作; 54、USBHID設備在接收到主機發送的重啟標誌後,則重新執行整個流程來判斷主機重啟後的作業系統。
2.根據權利要求I所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟SI中,USB HID設備通過USB總線連接到主機,並從主機的電源電壓或工作電壓處獲取其工作電壓。
3.根據權利要求2所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟SI中,USB HID設備將自身存儲的上電標識、作業系統標識初始化為默認標識。
4.根據權利要求I所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟S2包括以下步驟 200、USBHID設備接收主機作業系統發送的系統標誌性數據; 201、USBHID設備逐一對主機作業系統發送的系統標誌性數據做出響應; 202、USBHID設備主機作業系統發送的相關標誌性數據存儲起來,並根據相關標誌性數據判斷當前作業系統的類型。
5.根據權利要求4所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟200與步驟201中,系統標誌性數據包括取設備描述符、設置設備地址、取配置描述符、取端點描述符、取字符串描述符、取端點描述符與選擇配置。
6.根據權利要求I所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟S3中包括以下步驟 300 JiUSB HID設備與主機作業系統進行軟掉電處理後再次連接; 301、根據當前作業系統類型選取相應的配置描述符對USB HID設備進行第二次枚舉。
7.根據權利要求6所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟300中,USB HID設備在預定時間內,使其內部的上拉電阻斷開與主機電源電壓或工作電壓的連接,在超過預定時間後,USB HID設備中的上拉電阻再次與主機的電源電壓或工作電壓連接,使USB HID設備再次處於上電狀態。
8.根據權利要求I所述的通過對USBHID設備進行二次枚舉以識別主機作業系統的方法,其特徵在於,在步驟S4中,判斷USB HID設備是否收到主機發送的重啟標誌,若確認收至IJ,則返回步驟S2重新執行;若確認沒有收到,則返回步驟S3,檢測主機是否發送了重啟標O
全文摘要
本發明提供一種通過對USB HID設備進行二次枚舉以識別主機作業系統的方法,涉及計算機移動技術領域,以解決現有識別方法只能區別Windows系統,並且在主機不斷電的情況下,如果切換了作業系統則需要重新插拔USB HID設備才能識別出當前系統類型的問題,該方法包括以下步驟USB HID設備上電,並進行初始化;對USB HID設備進行第一次枚舉以確定主機作業系統的類型;在USB HID設備與主機作業系統之間依次完成軟掉電與再次連接處理後進行第二次枚舉,以保證USB HID設備能夠正常工作;USB HID設備在接收到主機發送的重啟標誌後,則重新執行整個流程來判斷主機重啟後的作業系統。本發明可準確的識別當前系統的類型,在不斷電的情況下發生作業系統切換時不必重新插拔USB HID設備。
文檔編號G06F13/10GK102890662SQ20121040267
公開日2013年1月23日 申請日期2012年10月19日 優先權日2012年10月19日
發明者張曉東 申請人:無錫海森諾科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀