CN103577231A - 一种usb嵌入式设备判断主机操作***的方法 - Google Patents
一种usb嵌入式设备判断主机操作***的方法 Download PDFInfo
- Publication number
- CN103577231A CN103577231A CN201310532374.3A CN201310532374A CN103577231A CN 103577231 A CN103577231 A CN 103577231A CN 201310532374 A CN201310532374 A CN 201310532374A CN 103577231 A CN103577231 A CN 103577231A
- Authority
- CN
- China
- Prior art keywords
- usb
- main frame
- setup
- operating system
- equipment
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
USB嵌入式设备判断主机操作***的方法,步骤如下,1)将USB设备当做是标准的USB大容量存储设备CDROM来枚举,也就是在枚举过程中设备上报给主机的信息为大容量CDROM设备;2)USB设备***主机,USB设备收到主机枚举的第一个SETUP包时,判断第七个字节是否是0x08:若是,则主机操作***为苹果***;若不是继续后续步骤3);3)USB设备在收到主机对设备进行配置的SETUP包时,判断主机是否已经请求过制造商字符串描述符;若是,则为Linux***;不是则为Windows***。
Description
技术领域
本发明涉及信息领域计算机主机技术,嵌入式USB设备技术。
背景技术
USB(Universal Serial BUS)技术是用于规范电脑与外部设备的连接和通讯技术,其即插即用和热插拔的特性受到众多产品厂家的青睐。各种各样的电子设备大多都提供了USB接口用于与计算机主机通讯,用以完成设备的相关产品功能。计算机操作***多种多样,传统的微型计算机主要有Windows***,Linux***以及苹果***。近来流行的掌上型平板电脑主要使用的是苹果***和Android***。USB嵌入式设备的主机可以是微型计算机也可以是平板电脑。主机以及操作***的多样性,有时要求设备需要判断出主机安装的是何种操作***,以便设备产生不同的行为功能。比如在支持自动安装驱动和应用的3G无线上网卡上,要求在不同操作***的微型计算机上安装不同的驱动和应用程序,在支持Android***的平板电脑上要能直接进入到无线Modem状态,以便平板上的无线上网功能使用。
CN201010213961.2公开了一种USB设备识别主机操作***的方法,包括:A、USB设备上电并初始化;B、判断第一个setup包是否是第一预设命令,是执行C,不是执行D;C、判断第一预设命令中的第七个字节是否是第二预设值,是将操作***标识置为第一预设标识执行F,否则执行E;D、判断第一个setup包是否是第二预设命令,是将操作***标识置为第二预设标识,执行F否则执行E;E、按照默认操作***标识与主机进行信息交互,直到接收到最后一个setup包,并判断最后一个setup包是否是第三预设命令,是则将操作***标识置为第三预设标识,不是,则将操作***标识置为第四预设标识;F、根据当前操作***标识与主机进行信息交互,之后并等待接收主机下发的指令。以上文件未涉及主机不同操作***对USB设备的枚举行为来判断主机的操作***的方法和细节,实际应用时的契合需要进一步研究。如未能及时完成USB嵌入式设备的主机以及操作***的多样性,要求设备需要判断出主机安装的是何种操作***,以便USB设备产生不同的功能。
发明内容
本发明目的是,提供一种USB设备判断主机操作***的策略和方法,通过主机不同操作***对USB设备的枚举行为来判断主机的操作***。
本发明的技术方案是:USB嵌入式设备判断主机操作***的方法,步骤如下,1)将USB设备当做是标准的USB大容量存储设备CDROM来枚举;2)USB设备***主机,USB设备收到主机枚举的第一个SETUP包时,判断第七个字节是否是0x08:若是,则主机操作***为苹果***;若不是继续后续步骤3);3)USB设备在收到主机对设备进行配置的SETUP包时,判断主机是否已经请求过制造商字符串描述符。若是,则为Linux***;不是则为Windows***。
通过以上的实现思想,不难看出,其有以下关键几点:
1、在主机对USB设备枚举的时候,USB设备要将自己上报为CDROM设备。
2、USB设备根据主机的第一条SETUP枚举指令来判断是否是苹果***。
3、Windows操作***与Linux操作***对USB CDROM设备的枚举的差异性体现在主机请求制造商字符串描述符的先后。在SETUP CONFIGARATION之前则为Linux***。
本发明的有益效果是:微型计算机主要有Windows***,Linux***以及苹果***。近来流行的掌上型平板电脑主要使用的是苹果***和Android***。USB嵌入式设备的主机可以是微型计算机也可以是平板电脑。基于主机以及操作***的多样性,本发明要求USB设备立即判断出主机安装的是何种操作***,以便设备产生不同的行为功能。如高效响应并支持自动安装驱动和应用的3G无线上网卡上。及时判断在不同操作***的微型计算机上安装不同的驱动和应用程序,如及时支持Android***的平板电脑上要能直接进入到无线Modem状态,使平板上的无线上网功能使用。
附图说明
图1为USB设备判断主机操作***使用本发明方法的流程示意图。
具体实施方式
下面通过一个3G USB无线上网卡的实例来说明本发明的具体实施方法。
根据USB上网卡的使用功能,要求:
1)USB上网卡(设备)插到主机上启动时要能判断出主机操作***。
2)根据不同的主机操作***实施不同的后续功能行为。
根据本发明方法,如图1所示,使用本发明方法的上网卡的主机操作***的判断流程为:
101将USB(上网卡,其它设备类同)设备***到电脑主机USB口,USB设备要将自己上报为CDROM设备,其过程包括1)设备在响应主机的获取配置命令时,返回包含一个接口的配置描述符,该接口类型代码是08,接口子类型代码是06,接口协议是50。2)设备在收到INQUIRY SCSI指令时,返回的设备类型是05。
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进行配置时网卡设备判断此时主机是否已经查询过字符串描述的制造厂家信息指令,若是则为Linux***,否则为Windows***;如下列枚举过程数据(每条SETUP指令只截取前八个字节):
setup:80 06 00 01 00 00 40 00……1.第一条SETUP指令,第7字节不为08
setup:00 05 01 00 00 00 00 00……
setup:80 06 00 01 00 00 12 00……
setup:80 06 00 02 00 00 09 00……
setup:80 06 00 03 00 00 ff 00……
setup:80 06 03 03 09 04 ff 00……
setup:80 06 00 02 00 00 ff 00……
setup:80 06 00 03 00 00 ff 00……
setup:80 06 02 03 09 04 ff 00……
setup:80 06 00 03 00 00 ff 00……
setup:80 06 02 03 09 04 ff 00……
setup:80 06 00 02 00 00 20 00……
setup:80 06 00 02 00 00 20 00……
setup:80 06 00 01 00 00 40 00……
setup:80 06 00 01 00 00 12 00……
setup:80 06 00 02 00 00 09 00……
setup:80 06 00 02 00 00 20 00……
setup:80 06 00 03 00 00 ff 00……
setup:80 06 02 03 09 04 ff 00……
setup:80 06 01 03 09 04 ff 00……2.主机获得制造商字符串描述符
setup:80 06 03 03 09 04 ff 00……
setup:00 09 01 00 00 00 00 00……3.主机对USB进行配置指令
在上述的枚举过程中,第一步收到第一个SETUP指令第7字节不为08,则继续后续的枚举;当收到主机的配置指令时,前面2主机已查询过制造商字符串指令,说明此主机***为Linux***。
104当设备判断完主机的操作***,设备根据结果继续后续的行为过程。
本发明所述的USB设备判断主机操作***的方法,并不仅仅限于说明书和具体实施方式中所列方式,它完全可以容易地根据USB特点进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节和这里示出与描述的图示示例。
Claims (3)
1.USB嵌入式设备判断主机操作***的方法,其特征是步骤如下,1)将USB设备当做是标准的USB大容量存储设备CDROM来枚举,也就是在枚举过程中设备上报给主机的信息为大容量CDROM设备;2)USB设备***主机,USB设备收到主机枚举的第一个SETUP包时,判断第七个字节是否是0x08:若是,则主机操作***为苹果***;若不是继续后续步骤3);3)USB设备在收到主机对设备进行配置的SETUP包时,判断主机是否已经请求过制造商字符串描述符;若是,则为Linux***;不是则为Windows***。
2.根据权利要求1所述的USB嵌入式设备判断主机操作***的方法,其特征是USB设备要将自己上报为CDROM设备,其过程包括1)设备在响应主机的获取配置命令时,返回包含一个接口的配置描述符,该接口类型代码是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进行配置指令;即当设备收到主机对USB进行配置时判断此时主机是否已经查询过字符串描述的制造厂家信息指令,若是则为Linux***,否则为Windows***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310532374.3A CN103577231A (zh) | 2013-10-31 | 2013-10-31 | 一种usb嵌入式设备判断主机操作***的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310532374.3A CN103577231A (zh) | 2013-10-31 | 2013-10-31 | 一种usb嵌入式设备判断主机操作***的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103577231A true CN103577231A (zh) | 2014-02-12 |
Family
ID=50049078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310532374.3A Pending CN103577231A (zh) | 2013-10-31 | 2013-10-31 | 一种usb嵌入式设备判断主机操作***的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577231A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793252A (zh) * | 2014-02-20 | 2014-05-14 | 山东超越数控电子有限公司 | 一种改进usb接口功能的方法 |
CN105389020A (zh) * | 2014-09-02 | 2016-03-09 | 罗技欧洲公司 | 通用输入设备 |
CN105573939A (zh) * | 2014-10-10 | 2016-05-11 | 深圳市中兴微电子技术有限公司 | 一种基于通用串行总线进行数据传输的方法及终端 |
TWI587147B (zh) * | 2016-08-24 | 2017-06-11 | 旺玖科技股份有限公司 | 自動辨識主機作業系統之方法與usb裝置 |
CN108629175A (zh) * | 2018-05-14 | 2018-10-09 | 深圳市江波龙电子有限公司 | Usb大容量存储设备的访问控制方法及访问控制装置 |
CN109173239A (zh) * | 2018-08-29 | 2019-01-11 | 深圳市七熊科技有限公司 | 游戏主机识别方法、装置、计算机设备及存储介质 |
CN111857842A (zh) * | 2020-06-17 | 2020-10-30 | 天津赢达信科技有限公司 | 一种USB复合设备在Windows和Android显示不同硬件设备的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840344A (zh) * | 2010-04-30 | 2010-09-22 | 北京坚果比特科技有限公司 | Usb设备及在计算机上自动打开该usb设备的方法 |
CN102043751A (zh) * | 2010-06-29 | 2011-05-04 | 北京飞天诚信科技有限公司 | Usb设备识别主机操作***的方法 |
US20120054372A1 (en) * | 2010-08-24 | 2012-03-01 | Mediatek Inc. | Method of usb device enumeration including detecting the operating system type of the usb host |
-
2013
- 2013-10-31 CN CN201310532374.3A patent/CN103577231A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840344A (zh) * | 2010-04-30 | 2010-09-22 | 北京坚果比特科技有限公司 | Usb设备及在计算机上自动打开该usb设备的方法 |
CN102043751A (zh) * | 2010-06-29 | 2011-05-04 | 北京飞天诚信科技有限公司 | Usb设备识别主机操作***的方法 |
US20120054372A1 (en) * | 2010-08-24 | 2012-03-01 | Mediatek Inc. | Method of usb device enumeration including detecting the operating system type of the usb host |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793252A (zh) * | 2014-02-20 | 2014-05-14 | 山东超越数控电子有限公司 | 一种改进usb接口功能的方法 |
CN105389020A (zh) * | 2014-09-02 | 2016-03-09 | 罗技欧洲公司 | 通用输入设备 |
CN105389020B (zh) * | 2014-09-02 | 2019-01-01 | 罗技欧洲公司 | 一种由输入设备执行的方法和*** |
CN105573939A (zh) * | 2014-10-10 | 2016-05-11 | 深圳市中兴微电子技术有限公司 | 一种基于通用串行总线进行数据传输的方法及终端 |
TWI587147B (zh) * | 2016-08-24 | 2017-06-11 | 旺玖科技股份有限公司 | 自動辨識主機作業系統之方法與usb裝置 |
CN108629175A (zh) * | 2018-05-14 | 2018-10-09 | 深圳市江波龙电子有限公司 | Usb大容量存储设备的访问控制方法及访问控制装置 |
CN108629175B (zh) * | 2018-05-14 | 2020-07-17 | 深圳市江波龙电子股份有限公司 | Usb大容量存储设备的访问控制方法及访问控制装置 |
US11762976B2 (en) | 2018-05-14 | 2023-09-19 | Shenzhen Longsys Electronics Co., Ltd. | USB mass storage device access control method and access control apparatus |
CN109173239A (zh) * | 2018-08-29 | 2019-01-11 | 深圳市七熊科技有限公司 | 游戏主机识别方法、装置、计算机设备及存储介质 |
CN111857842A (zh) * | 2020-06-17 | 2020-10-30 | 天津赢达信科技有限公司 | 一种USB复合设备在Windows和Android显示不同硬件设备的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577231A (zh) | 一种usb嵌入式设备判断主机操作***的方法 | |
US8862790B2 (en) | Method for identifying version type of windows operating system on a host by a USB device | |
US8725909B2 (en) | Method for identifying host operating system by universal serial bus (USB) device | |
US8650332B2 (en) | Method for switching working mode, USB device, and host device | |
CN101110039B (zh) | 终端设备自安装及自启动***及方法 | |
WO2014101626A1 (zh) | 一种usb设备及其识别主机操作***的方法 | |
CN103645975B (zh) | 一种异常恢复的方法及串行总线传输装置 | |
CN105068946A (zh) | 一种安卓设备的识别方法和装置 | |
CN202394228U (zh) | Usb设备 | |
CN102073602A (zh) | 计算机***、连接控制装置及连接与断开方法 | |
US20160077986A1 (en) | Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts | |
CN102981675B (zh) | 一种多点触摸数据处理方法及其*** | |
CN103761135A (zh) | 嵌入式设备的固件写入方法 | |
CN104656873A (zh) | 一种信息处理方法与电子设备 | |
RU2643481C2 (ru) | Способ идентификации типа операционной системы и устройство USB | |
CN109144586A (zh) | 一种驱动适配方法、装置、计算机设备及存储介质 | |
CN104899164A (zh) | 集成电路总线的地址寻址方法、集成电路总线设备和*** | |
CN105159714A (zh) | 一种pmic初始化方法和电子设备 | |
WO2012155606A1 (zh) | 一种无线通信终端及其驱动方法 | |
JP2006243988A (ja) | Usbデバイス、usbシステム及びusb制御プログラム | |
CN110572387B (zh) | 一种链路层处理方法 | |
TWI587147B (zh) | 自動辨識主機作業系統之方法與usb裝置 | |
CN104461767A (zh) | 一种信息处理方法及电子设备 | |
US20130061030A1 (en) | System capable of booting through a universal serial bus device and method thereof | |
CN114546899A (zh) | Usb设备连接方法、***及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140212 |
|
RJ01 | Rejection of invention patent application after publication |