一種識別作業系統類型的方法及usb設備的製作方法
2023-05-26 03:17:31
一種識別作業系統類型的方法及usb設備的製作方法
【專利摘要】本發明提供一種識別作業系統類型的方法及USB設備,該方法包括:USB設備接入計算機後,接收並響應所述計算機當前作業系統下發的微軟作業系統描述符請求消息;所述USB設備在所述計算機進行二次枚舉時,根據是否接收到指定的微軟作業系統描述符請求消息來判斷所述作業系統的類型。通過本發明可以自動識別作業系統(對於WINDOWS系列的系統,細化到當前設備接入的系統是WIN8系統還是WIN7及XP系統)。同時,這種識別作業系統的方法不需要廠商提供過濾驅動或者包含光碟功能,減少了隨機軟體量。
【專利說明】一種識別作業系統類型的方法及USB設備
【技術領域】
[0001] 本發明屬於嵌入式開發領域及通信領域,涉及一種識別作業系統類型的方法及 USB設備。
【背景技術】
[0002] 目前來講,隨著微軟WIN8系統的推出,相對於以前的WIN7及XP系統,在WIN8系 統上實現了許多新的特性,比如WIN8系統上實現了對新的標準網卡驅動(MBIM(Mobile Broadband Interface Model,移動寬帶接口模型)網卡設備)的支持,而要想使用這些 WIN8系統上新添加的特性,一個基本的前提條件就是USB (Universal Serial BUS,通用串 行總線)設備就必須能夠識別出當前接入的作業系統類型。基於此問題,如何實現USB設 備自動識別出當前接入的作業系統是否是WIN8,便成為一個急需解決的問題。
[0003] 目前已有的自動識別作業系統的方法有三種:
[0004] 方法一:在PC (個人電腦)上預先安裝USB設備的過濾驅動,並且在驅動中預先實 現和USB設備約定的識別碼,比如WIND0S系統下PC驅動會下發Oxal,MAC (Macintosh,梅 肯套希)系統下PC驅動下發0xa2等;
[0005] 方法二:利用SCSI (Small Computer System Interface,小型計算機系統專用接 口)指令,在彈出光碟的時侯對於不同的作業系統預先定義好不同的切換指令。以此達到 識別作業系統的目的;
[0006] 方法三:通過微軟擴展的MODS在設備枚舉過程中實現系統自動識別的目的。
[0007] 以上三種方法,方法一需要用戶在使用USB設備前必須預先安裝過濾驅動,方法 二需要在USB設備中實現自帶光碟的功能。對用戶的使用造成不便。方法三目前只能識別 出USB設備當前接入的PC是LINUX核的系統,還是非LINUX核的系統,對非LINUX核的系 統,無法達到區分是WIN7/WIN8的效果。
【發明內容】
[0008] 本發明要解決的技術問題是提供一種識別作業系統類型的方法及USB設備,可以 自動識別作業系統(對於WINDOWS系列的系統,細化到當前設備接入的系統是WIN8系統還 是WIN7及XP系統)。
[0009] 為了解決上述技術問題,本發明提供了一種識別作業系統類型的方法,包括:
[0010] USB設備接入計算機後,接收並響應所述計算機當前作業系統下發的微軟操作系 統描述符請求消息;
[0011] 所述USB設備在所述計算機進行二次枚舉時,根據是否接收到指定的微軟操作系 統描述符請求消息來判斷所述作業系統的類型。
[0012] 進一步地,上述方法還具有下面特點:
[0013] 所述USB設備支持多套USB配置信息。
[0014] 進一步地,上述方法還具有下面特點:所述USB設備接收並響應所述計算機當前 作業系統下發的微軟作業系統描述符請求消息,包括:
[0015] 所述USB設備接收到所述計算機當前作業系統下發的作業系統字符串描述符請 求消息後,回復一合法的作業系統字符串描述符請求的響應消息;
[0016] 所述USB設備接收到所述計算機當前作業系統下發的作業系統特徵描述符請求 消息後,回復正確的作業系統特徵描述符請求對應的響應消息。
[0017] 進一步地,上述方法還具有下面特點:
[0018] 所述指定的微軟作業系統描述符請求消息包括作業系統字符串描述符請求消 息;
[0019] 所述USB設備根據是否接收到指定的微軟作業系統描述符請求消息來判斷所述 作業系統的類型,包括:
[0020] 所述USB設備如接收到所述作業系統字符串描述符請求消息,則判定所述操作系 統為WIN8系統。
[0021] 為了解決上述問題,本發明還提供了一種USB設備,其中,包括:
[0022] USB協議棧模塊,用於實現USB協議棧,支持多套USB配置信息;
[0023] 消息處理模塊,用於在所述USB設備接入計算機後,接收並響應所述計算機當前 作業系統下發的微軟作業系統描述符請求消息;
[0024] 識別模塊,用於在所述計算機進行二次枚舉時,根據是否接收到指定的微軟操作 系統描述符請求消息來判斷所述作業系統的類型。
[0025] 進一步地,上述USB設備還具有下面特點:
[0026] 所述消息處理模塊,具體用於接收到所述計算機當前作業系統下發的作業系統字 符串描述符請求消息後,回復一合法的作業系統字符串描述符請求的響應消息;接收到所 述計算機當前作業系統下發的作業系統特徵描述符請求消息後,回復正確的作業系統特徵 描述符請求對應的響應消息。
[0027] 進一步地,上述USB設備還具有下面特點:
[0028] 所述識別模塊,具體用於在所述計算機進行二次枚舉時,如接收到作業系統字符 串描述符請求消息,則判定所述作業系統為WIN8系統。
[0029] 綜上,本發明提供一種識別作業系統類型的方法及USB設備,可以自動識別操作 系統(對於WINDOWS系列的系統,細化到當前設備接入的系統是WIN8系統還是WIN7及XP 系統)。同時,這種識別作業系統的方法不需要廠商提供過濾驅動或者包含光碟功能,減少 了隨機軟體量,且可以節約開發成本及後期的維護成本,同時也提高了 USB設備的用戶體 驗。
【專利附圖】
【附圖說明】
[0030] 圖1為本發明實施例的識別作業系統類型的方法的流程圖;
[0031] 圖2為本發明實施例的USB設備的示意圖;
[0032] 圖3為本發明一應用示例的方法的實施流程圖。
【具體實施方式】
[0033] 為使本發明的目的、技術方案和優點更加清楚明白,下文中將結合附圖對本發明 的實施例進行詳細說明。需要說明的是,在不衝突的情況下,本申請中的實施例及實施例中 的特徵可以相互任意組合。
[0034] 圖1為本發明實施例的識別作業系統類型的方法的流程圖,如圖1所示,本實施例 的方法包括:
[0035] Sll、USB設備接入計算機後,接收並響應所述計算機當前作業系統下發的 MODS (Microsoft OS Descriptors,微軟作業系統描述符)請求消息;
[0036] S12、USB設備在所述計算機進行二次枚舉時,根據是否接收到指定的MODS請求消 息來判斷所述作業系統的類型。
[0037] 本實施例的USB設備支持多套USB配置信息。
[0038] 本實施例的方法可以解決USB設備自動識別出當前的主機系統是否是WIN8系統, 從而可以很好的利用WIN8系統的新特性,並且取消了廠商提供過濾驅動給用戶的工作,節 約了開發成本及後期的維護成本,同時也提高了 USB設備的用戶體驗。
[0039] 本發明實施例利用的是USB設備在枚舉時可以支持多套配置、以及主機作業系統 (WINDOWS SP2及以上)支持的M0DS(Microsoft OS Descriptors,微軟作業系統描述符) 作為技術支撐來實現。
[0040] 前提條件:在USB設備側必須實現對多套USB配置的支持,之所以需要實現多套配 置,是因為這個是微軟WIN8系統的一個實現機制。當USB設備接入WIN8電腦後,在枚舉交 互過程中,WIN8電腦發現設備有多套USB配置後,才會決定是否需要對設備進行多次枚舉。 如果設備只有一套USB配置的話,是不會有二次枚舉的。
[0041] USB設備在枚舉時,會告訴自己當前支持幾套配置,其中每套配置都定義了設備在 該配置下時需要上報成什麼USB設備,以及需要上報哪幾個USB設備。比如:某個USB設備 有兩套USB配置,那麼其中第一套可能是:Ecm網卡設備、光碟設備,而第二套可能是:Mbim 網卡設備、T卡設備
[0042] 首先,USB設備在第一次接入WINDOWS系列的主機時,主機作業系統會下發一條0S String Descriptor (作業系統字符串描述符)請求,來獲取USB設備是否包含一個或多個 特性描述,並且在註冊表中記錄下當前的USB設備是否給主機回復了一個合法的OS String Descriptor請求的響應。
[0043] 其次,如果主機作業系統得到了一個合法的OS String Descriptor請求的響應, 主機作業系統就會接著下發一條〇S Feature Descriptor (作業系統特徵描述符)請求,來 獲取USB設備的具體特性。
[0044] 再次,由於USB設備具有多套USB配置信息,主機會對USB設備再次重新進 行枚舉,待第二次枚舉開始後,對於WIN8電腦,主機會再次給USB設備下發OS String Descriptor請求,而WIN7/XP則不會再下發該消息,至此,經過以上三個步驟,就可以判斷 出當前接入的主機作業系統是否是WIN8系統。
[0045] 圖2為本發明實施例的USB設備的示意圖,如圖2所示,本實施例的USB設備可以 包括:
[0046] USB協議棧模塊,該模塊主要是實現了 USB協議棧,並且該協議棧支持設備具有多 套USB配置信息;
[0047] 消息處理模塊,用於在所述USB設備接入計算機後,接收並響應所述計算機當前 作業系統下發的MODS請求消息;
[0048] 識別模塊,用於在所述計算機進行二次枚舉時,來判斷當前接入的主機作業系統 類型,並根據當前的主機操作類型,切換到不同的設備類型。
[0049] 比如:當前主機作業系統是WIN8系統,那麼設備就需要切到Mbim網卡設備、T卡 設備。而當前系統如果是WIN7/VISTA/XP系統,那麼設備就需要切到Rndis網卡設備、光碟 設備、T卡設備。如果當前主機作業系統是MAC系統,則設備需要切到Ecm網卡設備、光碟 設備、T卡設備。
[0050] 本實施例中,當USB設備接入到WINDOWS系列的計算機後,設備會根據當前操作系 統是否在二次枚舉時,下發MODS的OS String Descriptor請求來識別當前接入的主機操 作系統類型是否是WIN8系統,從而可以利用WIN8系統推出的新特性,大大提高了用戶體 驗。
[0051] 實施例一
[0052] 本實施描述的是用戶在某臺計算機主機上第一次使用所述USB設備的情況,如圖 3所示,包括以下步驟:
[0053] 步驟201 :將USB設備接入需要工作的主機中。
[0054] 工作主機可以是個人計算機,也可以是其它支持USB主控制器的其它設備,例如 掌上電腦等。主機上運行的作業系統,本實施例採用WIN8系統。實際上,其它作業系統如 WIN7、WindoWs XP及Vista等作業系統均可,也在本發明範圍之內。
[0055] USB設備插到WIN8電腦上,當PC下發獲取USB設備信息的請求消息時,USB設備 給PC回復設備支持兩套(或多套)USB配置信息;
[0056] 步驟202 :USB設備在收到主機給USB設備下發的OS String Descriptor請求後, 給作業系統回復正確的〇S String Descriptor請求對應的響應。
[0057] 步驟203 :USB設備在收到主機給USB設備下發的OS Feature Descriptor請求 後,給作業系統回復正確的os Feature Descriptor請求對應的響應。
[0058] 步驟204 :PC會對USB設備再次枚舉,當USB設備檢測到當前作業系統再次給其下 發了 OS String Descriptor請求後,就可以判斷出當前作業系統為WIN8系列的作業系統, 反之,則為非WIN8的WINDOWS系列的作業系統。
[0059] 本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令 相關硬體完成,所述程序可以存儲於計算機可讀存儲介質中,如只讀存儲器、磁碟或光碟 等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現。相應 地,上述實施例中的各模塊/單元可以採用硬體的形式實現,也可以採用軟體功能模塊的 形式實現。本發明不限制於任何特定形式的硬體和軟體的結合。
[0060] 以上僅為本發明的優選實施例,當然,本發明還可有其他多種實施例,在不背離本 發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變 和變形,但這些相應的改變和變形都應屬於本發明所附的權利要求的保護範圍。
【權利要求】
1. 一種識別作業系統類型的方法,包括: USB設備接入計算機後,接收並響應所述計算機當前作業系統下發的微軟作業系統描 述符請求消息; 所述USB設備在所述計算機進行二次枚舉時,根據是否接收到指定的微軟作業系統描 述符請求消息來判斷所述作業系統的類型。
2. 如權利要求1所述的方法,其特徵在於: 所述USB設備支持多套USB配置信息。
3. 如權利要求1所述的方法,其特徵在於:所述USB設備接收並響應所述計算機當前 作業系統下發的微軟作業系統描述符請求消息,包括: 所述USB設備接收到所述計算機當前作業系統下發的作業系統字符串描述符請求消 息後,回復一合法的作業系統字符串描述符請求的響應消息; 所述USB設備接收到所述計算機當前作業系統下發的作業系統特徵描述符請求消息 後,回復正確的作業系統特徵描述符請求對應的響應消息。
4. 如權利要求1-3任一項所述的方法,其特徵在於: 所述指定的微軟作業系統描述符請求消息包括作業系統字符串描述符請求消息; 所述USB設備根據是否接收到指定的微軟作業系統描述符請求消息來判斷所述操作 系統的類型,包括: 所述USB設備如接收到所述作業系統字符串描述符請求消息,則判定所述作業系統為 WIN8系統。
5. -種USB設備,其特徵在於,包括: USB協議棧模塊,用於實現USB協議棧,支持多套USB配置信息; 消息處理模塊,用於在所述USB設備接入計算機後,接收並響應所述計算機當前操作 系統下發的微軟作業系統描述符請求消息; 識別模塊,用於在所述計算機進行二次枚舉時,根據是否接收到指定的微軟作業系統 描述符請求消息來判斷所述作業系統的類型。
6. 如權利要求5所述的USB設備,其特徵在於: 所述消息處理模塊,具體用於接收到所述計算機當前作業系統下發的作業系統字符串 描述符請求消息後,回復一合法的作業系統字符串描述符請求的響應消息;接收到所述計 算機當前作業系統下發的作業系統特徵描述符請求消息後,回復正確的作業系統特徵描述 符請求對應的響應消息。
7. 如權利要求5或6所述的USB設備,其特徵在於: 所述識別模塊,具體用於在所述計算機進行二次枚舉時,如接收到作業系統字符串描 述符請求消息,則判定所述作業系統為WIN8系統。
【文檔編號】G06F13/10GK104156328SQ201310180181
【公開日】2014年11月19日 申請日期:2013年5月15日 優先權日:2013年5月15日
【發明者】彭亞龍 申請人:中興通訊股份有限公司