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