CN104156328B - 一种识别操作系统类型的方法及usb设备 - Google Patents
一种识别操作系统类型的方法及usb设备 Download PDFInfo
- Publication number
- CN104156328B CN104156328B CN201310180181.6A CN201310180181A CN104156328B CN 104156328 B CN104156328 B CN 104156328B CN 201310180181 A CN201310180181 A CN 201310180181A CN 104156328 B CN104156328 B CN 104156328B
- Authority
- CN
- China
- Prior art keywords
- operating system
- usb device
- request message
- computer
- operation system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Abstract
本发明提供一种识别操作系统类型的方法及USB设备,该方法包括:USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息;所述USB设备在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型。通过本发明可以自动识别操作系统(对于WINDOWS系列的系统,细化到当前设备接入的系统是WIN8系统还是WIN7及XP系统)。同时,这种识别操作系统的方法不需要厂商提供过滤驱动或者包含光盘功能,减少了随机软件量。
Description
技术领域
本发明属于嵌入式开发领域及通信领域,涉及一种识别操作系统类型的方法及USB设备。
背景技术
目前来讲,随着微软WIN8系统的推出,相对于以前的WIN7及XP系统,在WIN8系统上实现了许多新的特性,比如WIN8系统上实现了对新的标准网卡驱动(MBIM(MobileBroadband Interface Model,移动宽带接口模型)网卡设备)的支持,而要想使用这些WIN8系统上新添加的特性,一个基本的前提条件就是USB(Universal Serial BUS,通用串行总线)设备就必须能够识别出当前接入的操作系统类型。基于此问题,如何实现USB设备自动识别出当前接入的操作系统是否是WIN8,便成为一个急需解决的问题。
目前已有的自动识别操作系统的方法有三种:
方法一:在PC(个人电脑)上预先安装USB设备的过滤驱动,并且在驱动中预先实现和USB设备约定的识别码,比如WINDOS系统下PC驱动会下发0xa1,MAC(Macintosh,梅肯套希)系统下PC驱动下发0xa2等;
方法二:利用SCSI(Small Computer System Interface,小型计算机系统专用接口)指令,在弹出光盘的时侯对于不同的操作系统预先定义好不同的切换指令。以此达到识别操作系统的目的;
方法三:通过微软扩展的MODS在设备枚举过程中实现系统自动识别的目的。
以上三种方法,方法一需要用户在使用USB设备前必须预先安装过滤驱动,方法二需要在USB设备中实现自带光盘的功能。对用户的使用造成不便。方法三目前只能识别出USB设备当前接入的PC是LINUX核的系统,还是非LINUX核的系统,对非LINUX核的系统,无法达到区分是WIN7/WIN8的效果。
发明内容
本发明要解决的技术问题是提供一种识别操作系统类型的方法及USB设备,可以自动识别操作系统(对于WINDOWS系列的系统,细化到当前设备接入的系统是WIN8系统还是WIN7及XP系统)。
为了解决上述技术问题,本发明提供了一种识别操作系统类型的方法,包括:
USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息;
所述USB设备在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型。
进一步地,上述方法还具有下面特点:
所述USB设备支持多套USB配置信息。
进一步地,上述方法还具有下面特点:所述USB设备接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息,包括:
所述USB设备接收到所述计算机当前操作系统下发的操作系统字符串描述符请求消息后,回复一合法的操作系统字符串描述符请求的响应消息;
所述USB设备接收到所述计算机当前操作系统下发的操作系统特征描述符请求消息后,回复正确的操作系统特征描述符请求对应的响应消息。
进一步地,上述方法还具有下面特点:
所述指定的微软操作系统描述符请求消息包括操作系统字符串描述符请求消息;
所述USB设备根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型,包括:
所述USB设备如接收到所述操作系统字符串描述符请求消息,则判定所述操作系统为WIN8系统。
为了解决上述问题,本发明还提供了一种USB设备,其中,包括:
USB协议栈模块,用于实现USB协议栈,支持多套USB配置信息;
消息处理模块,用于在所述USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息;
识别模块,用于在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型。
进一步地,上述USB设备还具有下面特点:
所述消息处理模块,具体用于接收到所述计算机当前操作系统下发的操作系统字符串描述符请求消息后,回复一合法的操作系统字符串描述符请求的响应消息;接收到所述计算机当前操作系统下发的操作系统特征描述符请求消息后,回复正确的操作系统特征描述符请求对应的响应消息。
进一步地,上述USB设备还具有下面特点:
所述识别模块,具体用于在所述计算机进行二次枚举时,如接收到操作系统字符串描述符请求消息,则判定所述操作系统为WIN8系统。
综上,本发明提供一种识别操作系统类型的方法及USB设备,可以自动识别操作系统(对于WINDOWS系列的系统,细化到当前设备接入的系统是WIN8系统还是WIN7及XP系统)。同时,这种识别操作系统的方法不需要厂商提供过滤驱动或者包含光盘功能,减少了随机软件量,且可以节约开发成本及后期的维护成本,同时也提高了USB设备的用户体验。
附图说明
图1为本发明实施例的识别操作系统类型的方法的流程图;
图2为本发明实施例的USB设备的示意图;
图3为本发明一应用示例的方法的实施流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实施例的识别操作系统类型的方法的流程图,如图1所示,本实施例的方法包括:
S11、USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的MODS(Microsoft OS Descriptors,微软操作系统描述符)请求消息;
S12、USB设备在所述计算机进行二次枚举时,根据是否接收到指定的MODS请求消息来判断所述操作系统的类型。
本实施例的USB设备支持多套USB配置信息。
本实施例的方法可以解决USB设备自动识别出当前的主机系统是否是WIN8系统,从而可以很好的利用WIN8系统的新特性,并且取消了厂商提供过滤驱动给用户的工作,节约了开发成本及后期的维护成本,同时也提高了USB设备的用户体验。
本发明实施例利用的是USB设备在枚举时可以支持多套配置、以及主机操作系统(WINDOWS SP2及以上)支持的MODS(Microsoft OS Descriptors,微软操作系统描述符)作为技术支撑来实现。
前提条件:在USB设备侧必须实现对多套USB配置的支持,之所以需要实现多套配置,是因为这个是微软WIN8系统的一个实现机制。当USB设备接入WIN8电脑后,在枚举交互过程中,WIN8电脑发现设备有多套USB配置后,才会决定是否需要对设备进行多次枚举。如果设备只有一套USB配置的话,是不会有二次枚举的。
USB设备在枚举时,会告诉自己当前支持几套配置,其中每套配置都定义了设备在该配置下时需要上报成什么USB设备,以及需要上报哪几个USB设备。比如:某个USB设备有两套USB配置,那么其中第一套可能是:Ecm网卡设备、光盘设备,而第二套可能是:Mbim网卡设备、T卡设备
首先,USB设备在第一次接入WINDOWS系列的主机时,主机操作系统会下发一条OSString Descriptor(操作系统字符串描述符)请求,来获取USB设备是否包含一个或多个特性描述,并且在注册表中记录下当前的USB设备是否给主机回复了一个合法的OS StringDescriptor请求的响应。
其次,如果主机操作系统得到了一个合法的OS String Descriptor请求的响应,主机操作系统就会接着下发一条OS Feature Descriptor(操作系统特征描述符)请求,来获取USB设备的具体特性。
再次,由于USB设备具有多套USB配置信息,主机会对USB设备再次重新进行枚举,待第二次枚举开始后,对于WIN8电脑,主机会再次给USB设备下发OS String Descriptor请求,而WIN7/XP则不会再下发该消息,至此,经过以上三个步骤,就可以判断出当前接入的主机操作系统是否是WIN8系统。
图2为本发明实施例的USB设备的示意图,如图2所示,本实施例的USB设备可以包括:
USB协议栈模块,该模块主要是实现了USB协议栈,并且该协议栈支持设备具有多套USB配置信息;
消息处理模块,用于在所述USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的MODS请求消息;
识别模块,用于在所述计算机进行二次枚举时,来判断当前接入的主机操作系统类型,并根据当前的主机操作类型,切换到不同的设备类型。
比如:当前主机操作系统是WIN8系统,那么设备就需要切到Mbim网卡设备、T卡设备。而当前系统如果是WIN7/VISTA/XP系统,那么设备就需要切到Rndis网卡设备、光盘设备、T卡设备。如果当前主机操作系统是MAC系统,则设备需要切到Ecm网卡设备、光盘设备、T卡设备。
本实施例中,当USB设备接入到WINDOWS系列的计算机后,设备会根据当前操作系统是否在二次枚举时,下发MODS的OS String Descriptor请求来识别当前接入的主机操作系统类型是否是WIN8系统,从而可以利用WIN8系统推出的新特性,大大提高了用户体验。
实施例一
本实施描述的是用户在某台计算机主机上第一次使用所述USB设备的情况,如图3所示,包括以下步骤:
步骤201:将USB设备接入需要工作的主机中。
工作主机可以是个人计算机,也可以是其它支持USB主控制器的其它设备,例如掌上电脑等。主机上运行的操作系统,本实施例采用WIN8系统。实际上,其它操作系统如WIN7、WindoWs XP及Vista等操作系统均可,也在本发明范围之内。
USB设备插到WIN8电脑上,当PC下发获取USB设备信息的请求消息时,USB设备给PC回复设备支持两套(或多套)USB配置信息;
步骤202:USB设备在收到主机给USB设备下发的OS String Descriptor请求后,给操作系统回复正确的OS String Descriptor请求对应的响应。
步骤203:USB设备在收到主机给USB设备下发的OS Feature Descriptor请求后,给操作系统回复正确的OS Feature Descriptor请求对应的响应。
步骤204:PC会对USB设备再次枚举,当USB设备检测到当前操作系统再次给其下发了OS String Descriptor请求后,就可以判断出当前操作系统为WIN8系列的操作系统,反之,则为非WIN8的WINDOWS系列的操作系统。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (4)
1.一种识别操作系统类型的方法,包括:
USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息;
所述USB设备在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型是否是WIN8操作系统;
其中,所述USB设备支持多套USB配置信息;所述指定的微软操作系统描述符请求消息包括操作系统字符串描述符请求消息;
所述USB设备在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型是否是WIN8操作系统,包括:
所述USB设备在所述计算机进行二次枚举时,如接收到所述操作系统字符串描述符请求消息,则判定所述操作系统为WIN8系统。
2.如权利要求1所述的方法,其特征在于:所述USB设备接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息,包括:
所述USB设备接收到所述计算机当前操作系统下发的操作系统字符串描述符请求消息后,回复一合法的操作系统字符串描述符请求的响应消息;
所述USB设备接收到所述计算机当前操作系统下发的操作系统特征描述符请求消息后,回复正确的操作系统特征描述符请求对应的响应消息。
3.一种USB设备,其特征在于,包括:
USB协议栈模块,用于实现USB协议栈,支持多套USB配置信息;
消息处理模块,用于在所述USB设备接入计算机后,接收并响应所述计算机当前操作系统下发的微软操作系统描述符请求消息;
识别模块,用于在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型是否是WIN8操作系统;
其中,所述指定的微软操作系统描述符请求消息包括操作系统字符串描述符请求消息;
所述识别模块在所述计算机进行二次枚举时,根据是否接收到指定的微软操作系统描述符请求消息来判断所述操作系统的类型是否是WIN8操作系统包括:
所述识别模块在所述计算机进行二次枚举时,如接收到操作系统字符串描述符请求消息,则判定所述操作系统为WIN8系统。
4.如权利要求3所述的USB设备,其特征在于:
所述消息处理模块,具体用于接收到所述计算机当前操作系统下发的操作系统字符串描述符请求消息后,回复一合法的操作系统字符串描述符请求的响应消息;接收到所述计算机当前操作系统下发的操作系统特征描述符请求消息后,回复正确的操作系统特征描述符请求对应的响应消息。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310180181.6A CN104156328B (zh) | 2013-05-15 | 2013-05-15 | 一种识别操作系统类型的方法及usb设备 |
RU2015146594A RU2643481C2 (ru) | 2013-05-15 | 2013-09-04 | Способ идентификации типа операционной системы и устройство USB |
PCT/CN2013/082909 WO2014183358A1 (zh) | 2013-05-15 | 2013-09-04 | 一种识别操作系统类型的方法及usb设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310180181.6A CN104156328B (zh) | 2013-05-15 | 2013-05-15 | 一种识别操作系统类型的方法及usb设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104156328A CN104156328A (zh) | 2014-11-19 |
CN104156328B true CN104156328B (zh) | 2019-02-05 |
Family
ID=51881833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310180181.6A Expired - Fee Related CN104156328B (zh) | 2013-05-15 | 2013-05-15 | 一种识别操作系统类型的方法及usb设备 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN104156328B (zh) |
RU (1) | RU2643481C2 (zh) |
WO (1) | WO2014183358A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018067139A1 (en) * | 2016-10-05 | 2018-04-12 | Hewlett-Packard Development Company, L.P. | Usb device filtering |
CN108733519B (zh) * | 2017-04-14 | 2022-08-16 | 中兴通讯股份有限公司 | 一种usb设备的配置方法及主机 |
CN111193690B (zh) * | 2018-11-15 | 2023-08-22 | 中兴通讯股份有限公司 | 一种请求消息的处理方法、装置及计算机可读存储介质 |
CN114780157A (zh) * | 2022-04-24 | 2022-07-22 | 联宝(合肥)电子科技有限公司 | 一种系统识别方法、装置、嵌入式控制器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253904A (zh) * | 2011-06-08 | 2011-11-23 | 广州视睿电子科技有限公司 | 一种usb设备识别计算机操作系统的方法及装置 |
CN102375786A (zh) * | 2011-10-18 | 2012-03-14 | 中兴通讯股份有限公司 | Usb设备自动识别操作系统的方法及系统 |
EP2447850B1 (en) * | 2009-12-02 | 2013-02-20 | Huawei Device Co., Ltd. | Method and device for modifying driving and matching information of usb device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8661164B2 (en) * | 2010-08-24 | 2014-02-25 | Mediatek Inc. | Method of USB device enumeration including detecting the operating system type of the USB host |
CN101957807B (zh) * | 2010-09-16 | 2012-08-08 | 飞天诚信科技股份有限公司 | USB设备识别主机Windows操作系统版本类型的方法 |
WO2012036905A1 (en) * | 2010-09-16 | 2012-03-22 | Apple Inc. | Multi-ported memory controller with ports associated with traffic classes |
CN102890662B (zh) * | 2012-10-19 | 2016-10-05 | 无锡海森诺科技有限公司 | 通过对usb hid设备进行二次枚举以识别主机操作系统的方法 |
-
2013
- 2013-05-15 CN CN201310180181.6A patent/CN104156328B/zh not_active Expired - Fee Related
- 2013-09-04 RU RU2015146594A patent/RU2643481C2/ru active
- 2013-09-04 WO PCT/CN2013/082909 patent/WO2014183358A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2447850B1 (en) * | 2009-12-02 | 2013-02-20 | Huawei Device Co., Ltd. | Method and device for modifying driving and matching information of usb device |
CN102253904A (zh) * | 2011-06-08 | 2011-11-23 | 广州视睿电子科技有限公司 | 一种usb设备识别计算机操作系统的方法及装置 |
CN102375786A (zh) * | 2011-10-18 | 2012-03-14 | 中兴通讯股份有限公司 | Usb设备自动识别操作系统的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
RU2643481C2 (ru) | 2018-02-01 |
WO2014183358A1 (zh) | 2014-11-20 |
CN104156328A (zh) | 2014-11-19 |
RU2015146594A (ru) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102375786B (zh) | Usb设备自动识别操作系统的方法及系统 | |
EP2423825B1 (en) | Method for data card to identify the OS, and apparatus and communication system thereof | |
CN104156328B (zh) | 一种识别操作系统类型的方法及usb设备 | |
CN112463689B (zh) | 一种ocp卡热插拔装置、方法及计算机可读存储介质 | |
CN102073524B (zh) | 一种无线通讯终端及其自启动的方法 | |
CN110618918A (zh) | Pch下硬盘状态灯的控制方法、控制装置及控制设备 | |
CN111294413B (zh) | 一种互联网协议ip地址的确定方法、装置和可读介质 | |
EP3208723A1 (en) | Usb wireless network card configuration method, host, usb wireless network card and communication system | |
CN106484549A (zh) | 一种交互方法、NVMe设备、HOST及物理机系统 | |
CN111722877A (zh) | Pcie配置识别方法及相关组件 | |
EP2990956B1 (en) | Usb device and method thereof for automatically recognizing microsoft windowing operating system version | |
CN109086081B (zh) | 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质 | |
WO2013189388A2 (zh) | 一种接入usb网卡的方法、usb网卡及pc | |
EP2835737A1 (en) | Data terminal running mode switching method, device, and data terminal | |
CN106383796A (zh) | 一种主机操作系统类型的识别方法及系统 | |
CN102135896B (zh) | 一种基于嵌入式系统实现软件升级的方法和系统 | |
EP2562649B1 (en) | Method for repairing communication abnormality between data card and host | |
WO2015074569A1 (zh) | 云文档的传输状态展示方法及装置 | |
CN109669905A (zh) | 一种pcie设备的热移除方法、系统及相关装置 | |
CN109299025B (zh) | 一种后端存储设备的管理方法、装置、设备以及存储介质 | |
EP2477120B1 (en) | Method for processing device connection, combination device and host device | |
TW201243721A (en) | Device and method for renewing web card | |
US20160085709A1 (en) | Data Card, and Data Card Switching Method and Apparatus | |
US20180139093A1 (en) | Communications Device Configuration Method and Communications device | |
CN107483226B (zh) | 一种信息处理方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190205 Termination date: 20210515 |