Usb设备及其自动识别微软窗口化操作系统版本的方法

文档序号:6503355阅读:249来源:国知局
Usb设备及其自动识别微软窗口化操作系统版本的方法
【专利摘要】本发明提供了一种USB设备及其自动识别微软窗口化操作系统版本的方法。所述方法包括:USB设备接入主机;USB设备向主机上报支持配置参数指定功能的MOSD,该配置参数指定功能指定配置值设为第N个配置参数;当USB设备检测到主机获取与第N个配置参数对应的配置描述符时,判定Windows操作系统的版本为Win8;当USB设备检测到主机获取与第一个配置参数对应的配置描述符时,如果USB设备只接收到一条主机下发的查询指令,则判定Windows操作系统的版本为XP,否则判定当前Windows操作系统的版本为Vista或Win7。本发明不在主机上安装任何程序即可区分Windows操作系统版本。
【专利说明】USB设备及其自动识别微软窗口化操作系统版本的方法

【技术领域】
[0001]本发明涉及通用串行总线(Universal Serial Bus, USB)【技术领域】,尤其涉及一种USB设备及其自动识别微软窗口化操作系统版本的方法。

【背景技术】
[0002]通用串行总线(Universal Serial Bus, USB)技术是一种让主机和外设设备进行通讯的串行总线标准,支持热拔插和即插即用功能,目前使用非常广泛。伴随着USB设备的迅速发展,越来越多的USB设备已经应用在各个操作系统上。由于各操作系统的设计不同,对于USB设备的支持情况也各有特色。因此,USB设备如何区分当前所插入的操作系统成为各设备厂商试图解决的一个问题。
[0003]目前已经存在的操作系统识别方法主要有两种:一种操作系统识别方法是预先在操作系统上安装程序,在不同的操作系统上,PC (个人计算机)通过发送不同的识别命令给USB设备来确定操作系统类型。该操作系统识别方法的缺点是需要针对不同的操作系统指定不同的安装程序,并约定不同的识别命令,并且不能对微软窗口化(Windows)操作系统版本进行区分,只能区分出Windows操作系统、Linux操作系统以及MAC操作系统。另一种操作系统识别方法是根据USB特定的描述符来判定操作系统类型,以达到自动识别的目的。该操作系统识别方法的缺点是只能区分出Window操作系统和非Windows操作系统,并不能识别出Windows操作系统的具体版本。


【发明内容】

[0004]本发明的主要目的在于提供一种USB设备及其自动识别微软窗口化操作系统版本的方法,可以在完全不需要在主机上安装任何程序进行辅助的情况下,自动区分Windows操作系统的具体版本类型。
[0005]为了达到上述目的,本发明提供了一种通用串行总线USB设备自动识别微软窗口化操作系统版本的方法,包括:
[0006]USB设备接入主机,向所述主机上报M个配置参数,M为大于I的整数;
[0007]所述USB设备枚举为T卡设备,在枚举过程中向所述主机上报支持配置参数指定功能的微软窗口化操作系统描述符M0SD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数;
[0008]当所述USB设备检测到所述主机获取与该第N个配置参数对应的配置描述符时,则判定当前微软窗口化操作系统的版本为Win8 ;
[0009]当所述USB设备检测到所述主机获取与第一个配置参数对应的配置描述符时,如果所述USB设备只接收到一条所述主机下发的查询指令,则判定当前微软窗口化操作系统的版本为XP,如果所述USB设备接收到所述主机下发的至少两条查询指令则判定当前微软窗口化操作系统的版本为Vista或Win7。
[0010]实施时,本发明所述的USB设备自动识别微软窗口化操作系统版本的方法还包括:当所述USB设备判定微软窗口化操作系统的版本为XP时,将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合,利用所述虚拟光盘中的驱动安装文件来引导远程网络驱动接口规范RNDIS驱动。
[0011]实施时,本发明所述的USB设备自动识别微软窗口化操作系统版本的方法还包括:当所述USB设备判定微软窗口化操作系统的版本为WinS时,向所述主机发送移动宽带接口模型MBIM驱动加载信号,以使得所述主机自动加载MBIM驱动。
[0012]实施时,本发明所述的USB设备自动识别微软窗口化操作系统版本的方法还包括:当所述USB设备判定微软窗口化操作系统的版本为Win8时,将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
[0013]实施时,本发明所述的USB设备自动识别微软窗口化操作系统版本的方法还包括:当所述USB设备判定微软窗口化操作系统的版本为Vista或Win7时,将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
[0014]本发明还提供了一种USB设备,包括:
[0015]USB配置上报模块,用于在接入主机时,向所述主机上报M个配置参数,M为大于I的整数;所述USB配置上报模块中存储有分别与所述M个配置参数对应的配置描述符;
[0016]枚举模块,用于将USB端口枚举为T卡设备,在枚举的过程中向所述主机上报支持配置参数指定功能的微软窗口化操作系统描述符M0SD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数;
[0017]配置检测模块,用于检测所述主机从所述USB配置上报模块中获取的配置描述符;
[0018]查询指令检测模块,用于检测所述主机下发的查询指令;
[0019]以及微软窗口化操作系统版本判定模块,用于当该配置检测模块检测到所述主机从所述USB配置上报模块中获取与该第N套配置参数对应的配置描述符时,则判定当前微软窗口化操作系统的版本为Win8 ;
[0020]所述微软窗口化操作系统版本判定模块,还用于当该配置检测模块检测到所述主机从所述USB配置上报模块中获取与第一套配置参数对应的配置描述符时,如果所述查询指令检测模块只检测到所述主机下发的一条查询指令,则判定当前微软窗口化操作系统的版本为XP,如果所述查询指令检测模块检测到所述主机下发的至少两条查询指令则判定当前微软窗口化操作系统的版本为Vista或Win7。
[0021]实施时,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为XP时,将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合;
[0022]所述USB设备还包括:驱动引导模块,用于利用所述虚拟光盘中的驱动安装文件来弓I导远程网络驱动接口规范RNDis驱动。
[0023]实施时,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为Win8时,将USB端口枚举为MBIM设备,使得所述主机自动加载MBM驱动。
[0024]实施时,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为Win8时,将USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
[0025]实施时,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为Vista或Win7时,将USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
[0026]与现有技术相比,本发明所述的USB设备及其自动识别微软窗口化操作系统版本的方法,可以在完全不需要在主机上安装任何程序进行辅助的情况下,使得USB设备可以自动区分目前Windows操作系统的具体版本类型,使得USB设备在针对不同类型的Windows操作系统的使用上更加灵活,实施过程简便,可操作性强,有效解决了现有技术中需在主机上安装不同软件来检测Windows操作系统类型的方法带来的兼容性问题。

【专利附图】

【附图说明】
[0027]图1是本发明一实施例所述的USB设备自动识别微软窗口化操作系统版本的方法的流程图;
[0028]图2是本发明另一实施例所述的USB设备自动识别微软窗口化操作系统版本的方法的流程图;
[0029]图3是本发明一实施例所述的USB设备的结构框图。

【具体实施方式】
[0030]目前主流的操作系统为Windows操作系统,Windows操作系统包括Windows XP、VISTA、Windows7 (WIN7)以及Windows8 (WIN8),各种操作系统在对USB设备的支持上都有自己的特性,并且在高版本的Windows操作系统上一般会增加新的USB设备类型。USB协议中规定:USB设备可以同时存在多套配置,但在某一时刻只是其中某一套配置生效。当USB设备插入主机后,主机会下发USB请求来获取设备描述符、配置描述符和接口描述符等信息,如果USB设备中存在多套配置,需要在设备描述符中填充具体的配置数目,主机可以根据USB上报的配置数目,下发请求来获取所有具体的配置参数。
[0031]Windows 操作系统在 Windows XP、Vista、Windows7 (WIN7)以及 Windows8 (WIN8)上,支持了一条特殊的扩展指令为Windows操作系统的系统描述符(M0SD,Microsoft OSDescriptors),保证安装有Windows操作系统的主机允许USB设备通过MOSD上报某些上报特定的信息。其中在WIN8上有一条特殊的MOSD为“ALTRCFG”,可以让WIN8选择某一套特定的配置。
[0032]另外,当USB设备枚举为T卡(T-flash卡,快闪存储卡)时,主机和USB设备之间会通过SCSI (Small Computer System Interface,小型计算机系统接口)指令进行交互。在SCSI指令中,有一条INQUIRY (查询)指令,是用来返回当前逻辑单元(LUN,Logic Unit)的特定信息的。
[0033]所述主机可以为计算机,所述的USB设备可以为无线网卡、无线数据卡等。
[0034]本发明基于上述的SCSI指令中的INQUIRY指令以及Win8的MOSD的特点,提供了一种USB设备自动识别微软窗口化操作系统版本的方法和USB设备。
[0035]如图1所示,本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,包括:
[0036]Ull:USB设备接入主机,向所述主机上报M个配置参数,M为大于I的整数;
[0037]U12:所述USB设备枚举为T卡设备,在枚举过程中所述USB设备向所述主机上报支持配置参数指定功能的微软窗口化操作系统描述符M0SD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数;
[0038]U13:当所述USB设备检测到所述主机从该USB设备获取与该第N个配置参数对应的配置描述符时,则判定当前微软窗口化操作系统的版本为WinS ;
[0039]U14:当所述USB设备检测到所述主机从该USB设备获取与第一个配置参数对应的配置描述符时,如果所述USB设备只接收到一条所述主机下发的查询指令,则判定当前微软窗口化操作系统的版本为XP,如果所述USB设备接收到所述主机下发的至少两条查询指令则判定当前微软窗口化操作系统的版本为Vista或Win7。
[0040]本发明该实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,可以在完全不需要在主机上安装任何程序进行辅助的情况下,使得USB设备可以自动区分目前Windows操作系统的具体版本类型,使得USB设备在针对不同类型的Windows操作系统的使用上更加灵活,实施过程简便,可操作性强,有效解决了现有技术中需在主机上安装不同软件来检测Windows操作系统类型的方法带来的兼容性问题。
[0041]举例来说,本发明所述的USB设备自动识别微软窗口化操作系统版本的方法在具体实施时:
[0042]首先,USB设备接入到主机上,向所述主机上报五个配置参数;
[0043]然后所述USB设备将自身枚举为T卡设备,在枚举的过程中会向所述主机上报MOSD信息,具体向所述主机上报支持ALTRCFG功能,ALTRCFG中指定配置值设为第二个配置参数;
[0044]当所述USB设备检测到所述主机从该USB设备获取与该第二个配置参数对应的配置描述符时,则判定所述主机上安装的Windows操作系统的版本为Win8,而当所述USB设备检测到所述主机依旧默认从该USB设备获取与第一个配置参数对应的配置描述符时,判定所述主机上安装的Windows操作系统的版本非Win8 ;
[0045]当所述USB设备判定所述主机上安装的Windows操作系统的版本非Win8时,如果所述USB设备检测到所述主机仅向该USB设备下发了一条INQUIRY指令,则判定所述主机上安装的Windows操作系统的版本为XP,如果所述USB设备检测到所述主机向该USB设备下发了至少两条INQUIRY指令,则判定所述主机上安装的Windows操作系统的版本为Vista或者Win7。
[0046]现有的Windows操作系统自身能够支持的USB网络设备驱动即RNDIS (RemoteNetwork Driver Interface Specificat1n,远程网络驱动接口规范)网络驱动和MBIM(Mobile Broadband Interface Model,移动宽带接口模型)网络驱动。其中,RNDIS驱动协议在目前主流的XP、Vista、Win7和Win8上均支持。但是XP上需要提供驱动安装文件来引导系统安装RNDIS驱动,Vista、Win7和Win8可以自身加载RNDIS驱动,需要引导。但是只有Win8支持MBM驱动,MBIM时微软在Win8上提出的一种全新的移动宽带接口模型。
[0047]基于以上的系统特性,本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,在识别了主机上安装的Windows操作系统的版本后,还可以根据具体的版本完成USB网络设备驱动。
[0048]具体实施时,本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,还包括:当所述USB设备判定微软窗口化操作系统的版本为XP时,将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合,利用所述虚拟光盘中的驱动安装文件来弓I导远程网络驱动接口规范RNDIS驱动。
[0049]具体实施时,本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,还包括:当所述USB设备判定微软窗口化操作系统的版本为WinS时,向所述主机发送MBIM驱动加载信号,以使得所述主机自动加载MBM驱动。
[0050]具体实施时,本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,还包括:当所述USB设备判定微软窗口化操作系统的版本为WIN8、Vista或Win7时,将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备(massstorage)的组合。
[0051]本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,根据判定得到的Windows操作系统版本而选择将USB端口枚举为何种类型,可以自动完成USB网络设备驱动。
[0052]如图2所示,本发明实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,包括:
[0053]U21 =USB设备接入主机,向所述主机上报M个配置参数,M为大于I的整数;
[0054]U22:所述USB设备枚举为T卡设备,在枚举过程中所述USB设备向所述主机上报支持配置参数指定功能的微软窗口化操作系统描述符M0SD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数;
[0055]U23:所述USB设备判断所述主机是否从该USB设备获取与该第N个配置参数对应的配置描述符,如果是则转至U24,否则转至U25 ;
[0056]U24:所述USB设备判定当前微软窗口化操作系统的版本为Win8,转至U29 ;
[0057]U25:所述USB设备判断其是否只接收到一条所述主机下发的查询指令,如果时则转至U26,否则转至U27 ;
[0058]U26:所述USB设备判定当前微软窗口化操作系统的版本为XP,转至U28 ;
[0059]U27:所述USB设备判定当前微软窗口化操作系统的版本为Vista或Win7,转至U210 ;
[0060]U28:将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合,利用所述虚拟光盘中的驱动安装文件来引导远程网络驱动接口规范RNDIS驱动,结束;
[0061]U29:所述USB设备向所述主机发送MB頂驱动加载信号,以使得所述主机自动加载MB頂驱动,结束;或者,所述USB设备将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合,结束;
[0062]U210:所述USB设备将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合,结束。
[0063]本发明该实施例所述的USB设备自动识别微软窗口化操作系统版本的方法,可以在完全不需要在主机上安装任何程序进行辅助的情况下,使得USB设备可以自动区分目前Windows操作系统的具体版本类型,还可以根据具体的版本完成USB网络设备驱动。
[0064]如图3所示,本发明实施例所述的USB设备,包括:
[0065]USB配置上报模块31,与主机30连接,用于在接入所述主机30时,向所述主机30上报M个配置参数,M为大于I的整数;所述USB配置上报模块31中存储有分别与所述M个配置参数对应的配置描述符;
[0066]枚举模块32,与所述主机30连接,用于将USB端口枚举为T卡设备,在枚举的过程中向所述主机30上报支持配置参数指定功能的微软窗口化操作系统描述符M0SD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数;
[0067]配置检测模块33,与所述主机30连接,用于检测所述主机30从所述USB配置上报模块31中获取的配置描述符;
[0068]查询指令检测模块34,与所述主机30连接,用于检测所述主机30下发的查询指令;
[0069]以及微软窗口化操作系统版本判定模块35,与所述配置检测模块33连接,用于当该配置检测模块33检测到所述主机30从所述USB配置上报模块31中获取与该第N套配置参数对应的配置描述符时,则判定当前微软窗口化操作系统的版本为WinS ;
[0070]所述微软窗口化操作系统版本判定模块35,还与所述查询指令检测模块34连接,还用于当该配置检测模块33检测到所述主机30从所述USB配置上报模块31中获取与第一套配置参数对应的配置描述符时,如果所述查询指令检测模块34只检测到所述主机30下发的一条查询指令,则判定当前微软窗口化操作系统的版本为XP,如果所述查询指令检测模块34检测到所述主机30下发的至少两条查询指令则判定当前微软窗口化操作系统的版本为Vista或Win7。
[0071]在具体实施时,如图3所示,所述枚举模块32,还与所述微软窗口化操作系统版本判定模块35连接,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为WIN8、Vista或Win7时,将USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
[0072]在具体实施时,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为Win8时,将USB端口枚举为MBIM设备,以使得所述主机自动加载MBIM驱动。
[0073]在具体实施时,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为XP时,将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合;
[0074]所述USB设备还包括:驱动引导模块,用于利用所述虚拟光盘中的驱动安装文件来弓I导远程网络驱动接口规范RNDis驱动。
[0075]本发明实施例所述的USB设备,可以在完全不需要在主机上安装任何程序进行辅助的情况下,自动区分目前Windows操作系统的具体版本类型,使得USB设备在针对不同类型的Windows操作系统的使用上更加灵活,实施过程简便,可操作性强,有效解决了现有技术中需在主机上安装不同软件来检测Windows操作系统类型的方法带来的兼容性问题,并可以自动完成USB网络设备驱动。
[0076]以上所述是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种通用串行总线USB设备自动识别微软窗口化操作系统版本的方法,其特征在于,包括: USB设备接入主机,向所述主机上报M个配置参数,M为大于I的整数; 所述USB设备枚举为T卡设备,在枚举过程中向所述主机上报支持配置参数指定功能的微软窗口化操作系统描述符MOSD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数; 当所述USB设备检测到所述主机获取与该第N个配置参数对应的配置描述符时,则判定当前微软窗口化操作系统的版本为Win8 ; 当所述USB设备检测到所述主机获取与第一个配置参数对应的配置描述符时,如果所述USB设备只接收到一条所述主机下发的查询指令,则判定当前微软窗口化操作系统的版本为XP,如果所述USB设备接收到所述主机下发的至少两条查询指令则判定当前微软窗口化操作系统的版本为Vista或Win7。
2.如权利要求1所述的USB设备自动识别微软窗口化操作系统版本的方法,其特征在于,还包括:当所述USB设备判定微软窗口化操作系统的版本为XP时,将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合,利用所述虚拟光盘中的驱动安装文件来引导远程网络驱动接口规范RNDIS驱动。
3.如权利要求2所述的USB设备自动识别微软窗口化操作系统版本的方法,其特征在于,还包括:当所述USB设备判定微软窗口化操作系统的版本为WinS时,向所述主机发送移动宽带接口模型MBIM驱动加载信号,以使得所述主机自动加载MBIM驱动。
4.如权利要求2所述的USB设备自动识别微软窗口化操作系统版本的方法,其特征在于,还包括:当所述USB设备判定微软窗口化操作系统的版本为Win8时,将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
5.如权利要求3或4所述的USB设备自动识别微软窗口化操作系统版本的方法,其特征在于,还包括:当所述USB设备判定微软窗口化操作系统的版本为Vista或Win7时,将所述USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
6.—种USB设备,其特征在于,包括: USB配置上报模块,用于在接入主机时,向所述主机上报M个配置参数,M为大于I的整数;所述USB配置上报模块中存储有分别与所述M个配置参数对应的配置描述符; 枚举模块,用于将USB端口枚举为T卡设备,在枚举的过程中向所述主机上报支持配置参数指定功能的微软窗口化操作系统描述符MOSD,该配置参数指定功能指定配置值设为第N个配置参数,N为大于I而小于等于M的整数; 配置检测模块,用于检测所述主机从所述USB配置上报模块中获取的配置描述符; 查询指令检测模块,用于检测所述主机下发的查询指令; 以及微软窗口化操作系统版本判定模块,用于当该配置检测模块检测到所述主机从所述USB配置上报模块中获取与该第N套配置参数对应的配置描述符时,则判定当前微软窗口化操作系统的版本为Win8 ; 所述微软窗口化操作系统版本判定模块,还用于当该配置检测模块检测到所述主机从所述USB配置上报模块中获取与第一套配置参数对应的配置描述符时,如果所述查询指令检测模块只检测到所述主机下发的一条查询指令,则判定当前微软窗口化操作系统的版本为XP,如果所述查询指令检测模块检测到所述主机下发的至少两条查询指令则判定当前微软窗口化操作系统的版本为Vista或Win7。
7.如权利要求6所述的USB设备,其特征在于,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为XP时,将USB端口枚举为虚拟光盘,或枚举为虚拟光盘和T卡设备的组合; 所述USB设备还包括:驱动引导模块,用于利用所述虚拟光盘中的驱动安装文件来引导远程网络驱动接口规范RNDIS驱动。
8.如权利要求7所述的USB设备,其特征在于,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为WinS时,将USB端口枚举为MBIM设备,使得所述主机自动加载MBIM驱动。
9.如权利要求7所述的USB设备,其特征在于,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为WinS时,将USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
10.如权利要求8或9所述的USB设备,其特征在于,所述枚举模块,还用于当所述微软窗口化操作系统版本判定模块判定微软窗口化操作系统的版本为Vista或Win7时,将USB端口枚举为RNDIS设备,或枚举为RNDIS设备和大容量存储设备的组合。
【文档编号】G06F13/42GK104182374SQ201310203849
【公开日】2014年12月3日 申请日期:2013年5月28日 优先权日:2013年5月28日
【发明者】田军, 马伟伟 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1