一种usb嵌入式设备判断主机操作系统的方法

文档序号:6517464阅读:715来源:国知局
一种usb嵌入式设备判断主机操作系统的方法
【专利摘要】USB嵌入式设备判断主机操作系统的方法,步骤如下,1)将USB设备当做是标准的USB大容量存储设备CDROM来枚举,也就是在枚举过程中设备上报给主机的信息为大容量CDROM设备;2)USB设备插入主机,USB设备收到主机枚举的第一个SETUP包时,判断第七个字节是否是0x08:若是,则主机操作系统为苹果系统;若不是继续后续步骤3);3)USB设备在收到主机对设备进行配置的SETUP包时,判断主机是否已经请求过制造商字符串描述符;若是,则为Linux系统;不是则为Windows系统。
【专利说明】—种USB嵌入式设备判断主机操作系统的方法
【技术领域】
[0001]本发明涉及信息领域计算机主机技术,嵌入式USB设备技术。
【背景技术】
[0002]USB (Universal Serial BUS)技术是用于规范电脑与外部设备的连接和通讯技术,其即插即用和热插拔的特性受到众多产品厂家的青睐。各种各样的电子设备大多都提供了 USB接口用于与计算机主机通讯,用以完成设备的相关产品功能。计算机操作系统多种多样,传统的微型计算机主要有Windows系统,Linux系统以及苹果系统。近来流行的掌上型平板电脑主要使用的是苹果系统和Android系统。USB嵌入式设备的主机可以是微型计算机也可以是平板电脑。主机以及操作系统的多样性,有时要求设备需要判断出主机安装的是何种操作系统,以便设备产生不同的行为功能。比如在支持自动安装驱动和应用的3G无线上网卡上,要求在不同操作系统的微型计算机上安装不同的驱动和应用程序,在支持Android系统的平板电脑上要能直接进入到无线Modem状态,以便平板上的无线上网功能使用。
[0003]CN201010213961.2公开了一种USB设备识别主机操作系统的方法,包括:A、USB设备上电并初始化;B、判断第一个setup包是否是第一预设命令,是执行C,不是执行D;C、判断第一预设命令中的第七个字节是否是第二预设值,是将操作系统标识置为第一预设标识执行F,否则执行E ;D、判断第一个setup包是否是第二预设命令,是将操作系统标识置为第二预设标识,执行F否则执行E;E、按照默认操作系统标识与主机进行信息交互,直到接收到最后一个setup包,并判断最后一个setup包是否是第三预设命令,是则将操作系统标识置为第三预设标识,不是,则将操作系统标识置为第四预设标识;F、根据当前操作系统标识与主机进行信息交互,之后并等待接收主机下发的指令。以上文件未涉及主机不同操作系统对USB设备的枚举行为来判断主机的操作系统的方法和细节,实际应用时的契合需要进一步研究。如未能及时完成USB嵌入式设备的主机以及操作系统的多样性,要求设备需要判断出主机安装的是何种操作系统,以便USB设备产生不同的功能。

【发明内容】

[0004]本发明目的是,提供一种USB设备判断主机操作系统的策略和方法,通过主机不同操作系统对USB设备的枚举行为来判断主机的操作系统。
[0005]本发明的技术方案是:USB嵌入式设备判断主机操作系统的方法,步骤如下,I)将USB设备当做是标准的USB大容量存储设备CDROM来枚举;2) USB设备插入主机,USB设备收到主机枚举的第一个SETUP包时,判断第七个字节是否是0x08:若是,则主机操作系统为苹果系统;若不是继续后续步骤3);3) USB设备在收到主机对设备进行配置的SETUP包时,判断主机是否已经请求过制造商字符串描述符。若是,则为Linux系统;不是则为Windows系统。
[0006]通过以上的实现思想,不难看出,其有以下关键几点:[0007]1、在主机对USB设备枚举的时候,USB设备要将自己上报为⑶ROM设备。
[0008]2、USB设备根据主机的第一条SETUP枚举指令来判断是否是苹果系统。
[0009]3、Windows操作系统与Linux操作系统对USB⑶ROM设备的枚举的差异性体现在主机请求制造商字符串描述符的先后。在SETUP C0NFIGARAT10N之前则为Linux系统。
[0010]本发明的有益效果是:微型计算机主要有Windows系统,Linux系统以及苹果系统。近来流行的掌上型平板电脑主要使用的是苹果系统和Android系统。USB嵌入式设备的主机可以是微型计算机也可以是平板电脑。基于主机以及操作系统的多样性,本发明要求USB设备立即判断出主机安装的是何种操作系统,以便设备产生不同的行为功能。如高效响应并支持自动安装驱动和应用的3G无线上网卡上。及时判断在不同操作系统的微型计算机上安装不同的驱动和应用程序,如及时支持Android系统的平板电脑上要能直接进入到无线Modem状态,使平板上的无线上网功能使用。
【专利附图】

【附图说明】
[0011]图1为USB设备判断主机操作系统使用本发明方法的流程示意图。
【具体实施方式】
[0012]下面通过一个3G USB无线上网卡的实例来说明本发明的具体实施方法。
[0013]根据USB上网卡的使用功能,要求:
[0014]I) USB上网卡(设备)插到主机上启动时要能判断出主机操作系统。
`[0015]2)根据不同的主机操作系统实施不同的后续功能行为。
[0016]根据本发明方法,如图1所示,使用本发明方法的上网卡的主机操作系统的判断流程为:
[0017]101将USB (上网卡,其它设备类同)设备插入到电脑主机USB 口,USB设备要将自己上报为⑶ROM设备,其过程包括I)设备在响应主机的获取配置命令时,返回包含一个接口的配置描述符,该接口类型代码是08,接口子类型代码是06,接口协议是50。2)设备在收到INQUIRY SCSI指令时,返回的设备类型是05。
[0018]102电脑主机检测到USB 口设备插入,发起对设备的USB枚举过程;USB上网卡设备判断主机发送过来的第一条SETUP指令,若第七个字节为0x08,则为苹果系统;如下列枚举过程数据(每条SETUP指令只截取前八个字节):
[0019]setup:80 06 00 01 00 00 08 00......1.第一条指令第7个字节是08,则主机为
苹果系统;
[0020]setup:00 05 06 00 00 00 00 00......[0021]setup:80 06 00 01 00 00 12 00......[0022]setup:80 06 02 03 09 04 02 00......[0023]如果第7个字节不为08则转向103;
[0024]103主机继续对USB上网卡设备进行USB枚举,当主机对USB进行配置时网卡设备判断此时主机是否已经查询过字符串描述的制造厂家信息指令,若是则为Linux系统,否则为Windows系统;如下列枚举过程数据(每条SETUP指令只截取前八个字节):
[0025]setup:80 06 00 01 00 00 40 00......1.第一条 S E T U P指令,第 7 字节不为08
[0026]setup:00 05 01 00 00 00 00 00......[0027]setup:80 06 00 01 00 00 12 00......[0028]setup:80 06 00 02 00 00 09 00......[0029]setup:80 06 00 03 00 00 ff 00......[0030]setup:80 06 03 03 09 04 ff 00......[0031]setup:80 06 00 02 00 00 ff 00......[0032]setup:80 06 00 03 00 00 ff 00......[0033]setup:80 06 02 03 09 04 ff 00......[0034]setup:80 06 00 03 00 00 ff 00......[0035]setup:80 06 02 03 09 04 ff 00......[0036]setup:80 06 00 02 00 00 20 00......[0037]setup:80 06 00 02 00 00 20 00......[0038]setup:80 06 00 01 00 00 40 00......[0039]setup:80 06 00 01 00 00 12 00......[0040]setup:80 06 00 02 00 00 09 00......[0041]setup:80 06 00 02 00 00 20 00......[0042]setup:80 06 00 03 00 00 ff 00......[0043]setup:80 06 02 03 09 04 ff 00......[0044]setup:80 06 01 03 09 04 ff 00......2.主机获得制造商字符串描述符
[0045]setup:80 06 03 03 09 04 ff 00......[0046]setup:00 09 01 00 00 00 00 00......3.主机对 USB 进行配置指令
[0047]在上述的枚举过程中,第一步收到第一个SETUP指令第7字节不为08,则继续后续的枚举;当收到主机的配置指令时,前面2主机已查询过制造商字符串指令,说明此主机系统为Linux系统。[0048]104当设备判断完主机的操作系统,设备根据结果继续后续的行为过程。
[0049]本发明所述的USB设备判断主机操作系统的方法,并不仅仅限于说明书和【具体实施方式】中所列方式,它完全可以容易地根据USB特点进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节和这里示出与描述的图示示例。
【权利要求】
1.USB嵌入式设备判断主机操作系统的方法,其特征是步骤如下,I)将USB设备当做是标准的USB大容量存储设备CDROM来枚举,也就是在枚举过程中设备上报给主机的信息为大容量⑶ROM设备;2) USB设备插入主机,USB设备收到主机枚举的第一个SETUP包时,判断第七个字节是否是0x08:若是,则主机操作系统为苹果系统;若不是继续后续步骤3) ;3)USB设备在收到主机对设备进行配置的SETUP包时,判断主机是否已经请求过制造商字符串描述符;若是,则为Linux系统;不是则为Windows系统。
2.根据权利要求1所述的USB嵌入式设备判断主机操作系统的方法,其特征是USB设备要将自己上报为⑶ROM设备,其过程包括I)设备在响应主机的获取配置命令时,返回包含一个接口的配置描述符,该接口类型代码是08,接口子类型代码是06,接口协议是50;2)设备在收到INQUIRY SCSI指令时,返回的设备类型是05。
3.根据权利要求1所述的USB嵌入式设备判断主机操作系统的方法,其特征是USB设备的主机操作系统的判断流程为: 101将USB设备插入到电脑主机USB 口 ; 102电脑主机检测到USB 口设备插入,发起对设备的USB枚举过程;USB设备判断主机发送过来的第一条SETUP指令,若第七个字节为0x08,则为苹果系统;如下列枚举过程数据(每条SETUP指令只截取前八个字节): setup:80 06 00 01 00 00 08 00……1.第一条指令第7个字节是08,则主机为苹果系统; setup:00 05 06 00 00 00 00 00......setup:80 06 00 01 00 00 12 00......setup:80 06 02 03 09 04 02 00......如果第7个字节不为08则转向103 ; 103主机继续对USB设备进行USB枚举,主机获得USB设备制造商字符串描述符时,主机对USB进行配置指令;即当设备收到主机对U S B进行配置时判断此时主机是否已经查询过字符串描述的制造厂家信息指令,若是则为Linux系统,否则为Windows系统。
【文档编号】G06F9/445GK103577231SQ201310532374
【公开日】2014年2月12日 申请日期:2013年10月31日 优先权日:2013年10月31日
【发明者】高建贞 申请人:南京熊猫电子股份有限公司, 南京熊猫通信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1