CN102713843B - 通用串行总线装置枚举方法及通用串行总线装置 - Google Patents
通用串行总线装置枚举方法及通用串行总线装置 Download PDFInfo
- Publication number
- CN102713843B CN102713843B CN201180005408.2A CN201180005408A CN102713843B CN 102713843 B CN102713843 B CN 102713843B CN 201180005408 A CN201180005408 A CN 201180005408A CN 102713843 B CN102713843 B CN 102713843B
- Authority
- CN
- China
- Prior art keywords
- usb
- host
- operating system
- serial bus
- universal serial
- 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
- 238000000034 method Methods 0.000 title claims abstract description 151
- 230000008569 process Effects 0.000 claims abstract description 119
- 238000001514 detection method Methods 0.000 description 42
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000007704 transition Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 2
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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
- 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
- G06F9/4413—Plug-and-play [PnP]
- G06F9/4415—Self describing peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种USB装置枚举处理程序,用于USB装置。USB装置首先检测耦接于装置的USB主机操作系统类型,且基于所检测的主机操作系统类型从多个储存的处理程序中选择一个来执行装置枚举。为检测主机操作系统类型,USB装置首先将自身作为主机的USB海量存储装置或者人机接口装置,执行装置枚举来从主机收集操作系统表现因子,及从操作系统表现因子判断操作系统类型。由此,使用针对所检测到的主机操作系统类型的特定枚举处理,USB装置通过将自身作为实际上适用的USB装置来执行实际装置枚举。多种储存的枚举处理可由用户配置。进一步地,本发明提供一种方法,当主机处于BIOS阶段时停止枚举处理。
Description
技术领域
本发明有关于通用串行总线(Universal Serial BUS,以下简称为USB)装置枚举(enumeration),特别是有关于USB装置首先检测USB主机上操作系统的类型(Operating System,OS),接着使用特定于所检测的操作系统类型的处理来执行USB装置枚举。
背景技术
USB装置枚举是当装置与主机相耦接时,由USB装置和USB主机所执行的处理。当USB装置与主机解耦再重新耦接时,或者当主机重启等情况时,重复进行装置枚举处理。装置枚举处理期间,USB主机从USB装置收集装置类型与特性信息,并且分配给USB装置一个地址。
随着越来越多的装置被设计为USB兼容装置(例如,人机接口装置(humaninterface device)、海量存储装置(mass storage devices)、音频装置、视频装置、通信装置、打印机、以及各种其他种类的USB装置),USB主机经常具有对应各种类型USB装置的各种功能。例如,远程网络驱动程序接口规范(RemoteNetwork Driver Interface Specification,以下简称为RNDIS)是一种USB网络接口装置,在WindowsTM XP及后期的WindowsTM操作系统上得到支持;网络分享装置(Internet Sharing Device,以下简称为ISD)是一种RNDIS,在WindowsTMVistaTM及后期的WindowsTM操作系统上得到支持;通信装置等级/以太网控制模型(CDC/ECM(Ethernet Control Model),以下简称为CDC/ECM)是一种USB网络接口装置,由MACTM OS及LinuxTM支持。同时,因为许多计算机平台支持USB,业界希望任何给定的USB装置都能耦接并且为不同的计算机平台所使用。但是,不同的操作系统通常支持不同的USB装置类型,并且基于装置所耦接的主机类型,所需的装置枚举处理可能不同。对于给定的USB装置,使用单一枚举流程或枚举序列通常难以满足所有操作系统。
发明内容
如上所述,基于装置所耦接的USB主机类型,USB装置枚举处理可能不同。由此,本发明一实施方式提供一种方法,其中USB装置执行对应不同操作系统类型的枚举处理,并且当USB装置耦接于USB主机时,在开始实际的枚举处理之前,USB装置首先执行伪枚举过程识别USB主机的操作系统类型。接着,USB装置依据识别出的操作系统类型执行适当的枚举步骤。
进一步地,USB主机的基本输入输出系统(Basic Input Output System,以下简称为BIOS)表现可能改变USB装置执行的操作系统-类型检测流程。由此,依本发明另一实施方式,当USB装置耦接于USB主机时,USB装置检测主机是否处于BIOS阶段,假如是,则USB装置改变其表现以防止在BIOS阶段发生操作系统-检测流程。特别的,特定的供应商标识(ID)用于完成这一目标。
此外,依本发明另一实施方式,装置枚举流程由系统供应商配置,因此USB装置能够适应不同应用。
相应地,本发明提供一种USB装置枚举方法,其实质上避免了因为相关领域的限制与缺点所引起的至少一个问题。
本发明的一目的在于提供USB枚举方法,允许USB装置可靠地执行针对不同主机操作系统类型的装置枚举。
本发明的另一目的在于提供USB枚举方法,减少BIOS阶段不想要的影响。
本发明的又一目的在于提供可由客户配置的USB枚举,能够灵活地处理不同的主机操作系统类型。
本发明的其他特性与优势将由具体实施方式给出,或者可以从本发明轻易地得知,或者从依本发明的实践中得出。本发明的目的与其他优势将由实施方式、权利要求以及附图特别指出的架构实现和得到。
为达到上述优势,并且依本发明的精神所涵盖和描述的,本发明提供一种在USB装置中执行的USB装置枚举方法,包含:(a)根据执行伪枚举过程所收集的多个主机操作系统表现因子,判断耦接于USB装置的USB主机的操作系统类型;以及(b)基于所判断的USB主机的操作系统类型,从储存在USB装置中的多个USB装置枚举处理中选择一个USB装置枚举处理,来执行USB装置枚举。
步骤(a)包含:(a1)将USB装置作为USB主机普遍支持的USB装置;(a2)从自USB主机接收的消息收集主机操作系统表现因子;以及(a3)基于所收集的主机操作系统表现因子,判断USB主机操作系统类型。
较佳地,普遍支持的USB装置是USB海量存储装置或者USB人机接口装置。被判断的多个主机操作系统类型包含WindowsTM Vista、Win7、WindowsTMXP、Linux、以及MAC OS。
用于产生操作系统表现知识数据库的学习过程包含:(c1)将USB装置作为耦接于USB装置且具有已知操作系统类型的USB主机的普遍支持的USB装置;(c2)从自USB主机接收的消息收集主机操作系统表现因子;(c3)对多个具有已知操作系统类型的USB主机重复步骤(c1)和步骤(c2);以及(c4)分析步骤(c2)中所收集的主机操作系统表现因子以揭示操作系统表现因子与操作系统类型之间的关系。
判断步骤可以包含在BIOS阶段停止枚举处理,接着,在BIOS阶段后继续主机操作系统类型判断的步骤,包含:(a1)将USB装置作为USB主机普遍支持的USB装置;(a2)当在收到任何设置装置地址的消息之前先从USB主机接收到对设备描述符的请求时,则将指示特定供应商装置的设备描述符返回给USB主机;(a3)当在收到设置装置地址的消息之后才从USB主机接收到对设备描述符的请求时,则返回指示普遍支持的USB装置的设备描述符;(a4)执行步骤(a3)之后,从自USB主机接收的消息收集主机操作系统表现因子;以及(a5)基于所收集的主机操作系统表现因子,判断USB主机的操作系统类型。
枚举步骤(b)中使用的处理可由客户配置,因此基于所判断的主机操作系统类型,USB装置可被配置为不同USB装置。
另一方面,本发明提供一种USB装置,包含控制器来运行程序以执行上述方法。
本领域技术人员应了解以上的发明内容以及之后的具体实施方式仅为说明本发明,以提供对权利要求书所限定的本发明的进一步解释,而非用以限定本发明的范围。
附图说明
图1为依本发明第一实施方式的USB装置枚举处理的示意图。
图2为第一实施方式中装置枚举处理期间USB消息的示意图。
图3为第一实施方式中USB装置执行的范例操作系统检测流程的状态机示意图。
图4为第一实施方式中产生操作系统表现知识数据库的处理示意图。
图5为用于配置USB装置的USB装置中现有技术的处理示意图。
图6为依本发明第二实施方式,从BIOS阶段开始的USB装置枚举处理的示意图。
图7为依本发明第三实施方式,可由客户配置的USB装置枚举处理的示意图。
图8为依本发明第三实施方式,可由客户配置的USB装置枚举处理流程的范例示意图。
图9为依本发明第三实施方式,可由客户配置的USB装置枚举处理流程的范例示意图。
图10为执行本发明第一、第二、第三实施方式的USB装置枚举处理的高水平流程图。
图11为USB装置检测主机上是否有装置驱动程序,并且在需要时安装驱动程序的处理示意图。
具体实施方式
本发明第一实施方式提供一种方法,其中USB装置执行对应不同操作系统类型的不同枚举处理。当USB装置耦接于USB主机时,在开始实际枚举流程之前,USB装置首先识别USB主机的操作系统类型。接着,USB装置依据识别出的操作系统类型执行适当的枚举步骤。
本发明的实施方式在USB装置中实施。USB装置包含USB接口电路、控制电路以及存储器。控制电路包含USB装置控制器,控制USB接口。控制电路还可包含其他电路或者模块。存储器储存由该控制电路执行的程序、USB描述符、以及其他信息。
图1为依本发明第一实施方式的USB装置枚举处理的示意图。图1所示的步骤由USB装置执行;在装置枚举期间,由USB主机执行的枚举步骤是现有技术的主机所执行的正常步骤,在本实施方式中没有改变。USB装置中,图1所示的处理在USB装置控制器中执行,或者在与装置控制器通信的独立的主机操作系统检测模块中执行。USB装置控制器是控制与USB主机的USB主机控制器通信的元件。此处理能够以硬件电路、固件或者储存在USB装置的存储器中的软件形式实施,并且可以由USB装置控制器或者主机操作系统检测模块执行。
如图1所示,一旦USB装置与USB主机相耦接(步骤S11),则USB装置将其自身作为USB主机的USB海量存储装置(例如CD-ROM,闪存驱动等)或者作为其他普遍支持的USB装置(即广泛应用且实质上由所有计算机平台所支持的装置;范例包含人机接口装置(Human Interface Device,HID)类型的装置例如鼠标及键盘)(步骤S12)。此步骤中,USB装置(通过返回适当的设备描述符)将其自身作为普遍支持的装置,而不考虑其实际上是什么装置。接着,USB装置通过USB主机执行伪枚举处理(pseudo-enumeration)(步骤S13)。
此伪枚举处理期间,USB装置从主机接收消息(请求),主机发送消息(请求)是其枚举处理的正常步骤。USB装置适当地响应主机的请求,但是响应内容可能并未反映实际装置的真实特性。来自USB主机的消息包含多种信息,一些是主机的操作系统类型的特性。例如,来自主机的请求指示主机是否支持特定种类的USB装置;一些消息的特定栏位的数值对应不同操作系统而不同等。USB装置从消息中收集这些信息并且利用这些信息来判断主机的操作系统类型(步骤S14)。判断步骤中,USB装置通过利用关于不同操作系统类型的预期表现的预储存知识(例如,USB装置中预储存的操作系统表现知识数据库16),使用不同的算法和逻辑,包含模糊逻辑,来判断主机的操作系统类型。
例如,USB装置在伪枚举步骤中收集的信息(在本发明中亦被称为“操作系统表现因子”)来源于与微软操作系统描述符(Microsoft Operating systemDescriptor,以下简称为MOD)(MOD是允许下层USB装置声明其可兼容装置类型或者改变主机设置的一组USB供应商请求及串描述符)有关的消息、获取配置描述符的字长(wLength of Get Configuration Descriptor)、与接口关联描述符(Interface Association Descriptor,以下简称为IAD)(IAD是通知主机USB装置的接口关系的USB描述符)有关的消息、设置地址(消息SET_Address)之后的第二请求的特性等。所收集的范例信息如下:
-MOD-Compat ID(表示MOD的可兼容性特性)=Y或者N(是或者否),
-MOD-Ext.property(表示MOD的扩展性质)=Y或者N,(是或者否)
-Support IAD(表示是否支持IAD)=Y或者N(是或者否)
-wLength of the first Configuration Descriptor(表示第一配置描述符的字长),wLength=4(字长=4),wLength=255(字长=255),wLength=other value(字长=其他数值)。
下列表I是基于观察所得一些范例表现因子的内容。表I中,信息“wLengthof the second Configuration Descriptor”表示第二配置描述符的字长。信息“2ndaction after Set Address”表示设置地址之后的第二步动作。内容“Get ConfigurationDescriptor”表示获取配置描述符。内容“fit”表示“适合”。内容“Get string ofiProduct”表示获取描述产品的字符串。内容“Set Configuration”表示设定配置。内容“Get bRequest=0xFE”表示获取0xFE的请求点。内容“Get String”表示获取字符串。
表I
特定实施方式中,步骤S14中,操作系统表现因子用于使用评分系统(scoringsystem)判断操作系统类型。分数分配以表II为例进行说明:
表II
USB装置收集各种表现因子(步骤S13)之后,分数被加总,并且主机操作系统类型由总分判断,如以下的表III所示:
表III
主机操作系统类型 | 总分 |
WindowsTM Vista,Win7 | +2000 |
WindowsTM XP SP2,SP3 | +1450 |
WindowsTM XP SP1 | +1450 |
WindowsTM XP | +450 |
Linux | -50 |
MAC OS | -100 |
表II中的分数分配以及表III中分数与操作系统的关系储存在操作系统表现知识数据库16中。
由上可知,此评分系统能够检测各种操作系统,包含WindowsTM Vista、Win7、WindowsTM XP、Linux、及MAC OS。此评分系统是模糊检测算法,能够判断主机最可能的操作系统类型。当然,如上所示的评分系统仅为一范例,只要分数用于区别各种操作系统的特性,也可用其他方式分配分数。还可使用其他类型的操作系统检测算法。任何适当的操作系统检测算法都可用于实施本发明的实施方式。此外,各种计算机平台的操作系统表现因子在未来可能改变,操作系统检测算法需要相应改变。
检测主机操作系统类型之后,USB装置依据所检测的操作系统类型,开始使用一个处理流程来针对目标USB装置进行实际枚举处理(步骤S15)。在此,术语“目标USB装置”意指USB装置实际发挥作用的装置类型,而不是最初在步骤S12-S14伪枚举中呈现给USB主机的装置类型。USB装置预加载相关信息,以允许装置针对多种操作系统类型正确地执行枚举;步骤S15中,在步骤S14中用于判断操作系统类型的信息用于执行实际的枚举处理。
为提高操作系统检测准确性,图1的步骤S12、S13、S14可额外再重复迭代多次。每次额外的迭代都通过模拟USB解耦再USB耦接启动。不同的迭代中,USB装置可将自身作为不同类型的USB装置来获取操作系统的不同表现因子。例如,第一次迭代中,USB装置将自身作为USB海量存储装置,并且收集充足的操作系统表现因子来判断主机是否运行于Windows操作系统或者非Windows操作系统。假如操作系统被判断为非Windows操作系统,则第二次迭代中USB装置将自身作为CDC/ECM装置,收集操作系统表现因子来判断主机是否为MAC/Linux操作系统或其他操作系统(例如BIOS阶段,在本实施方式中被视为一种特别的操作系统类型)。
图1的主机操作系统检测处理中(步骤S12-S14),使用普遍支持的USB装置(例如海量存储装置)来收集操作系统表现信息能够防止USB装置初始化处理在一些操作系统上被阻碍。例如WindowsTM XP系列的操作系统上,假如最初使用未知USB装置,则操作系统在存取其他新USB装置之前,将显示弹出的对话框来提示用户安装此装置的驱动程序,并且用户必须取消弹出的对话框以继续处理。这对于用户来说是很不方便的。
图2为图1所用特定的实施范例中枚举处理期间,消息流程的示意图。此范例中,USB装置包含USB装置控制器22与独立的主机检测模块21。主机检测模块21指示装置控制器22开始主机检测。如图2所示,装置控制器向主机(主机控制器23)发送USB解耦与USB耦接信号,主机向装置控制器发送多个消息,例如消息SET_ADDRESS(设置地址)、GET_DESCRIPTOR(向装置请求描述符)、MOD DESCRIPTOR(MOD描述符)、SET_CONFIGURATION(设定配置)等。来自主机的消息由装置控制器22转送至判断主机操作系统类型的主机检测模块21。
因为最初USB装置将其自身作为USB主机的海量存储装置,USB主机发送相关于海量存储装置的消息。如特别指出的,主机检测模块21收集充足的操作系统表现因子,并且判断操作系统类型后,主机检测模块21使USB装置控制器22与USB主机解耦。举例而言,如图2所示,这可通过向USB装置控制器22发送关闭命令完成。随后,主机检测模块21使USB装置控制器22再次与USB主机耦接,这次将其自身作为目标USB装置。选择USB解耦与耦接信号的时间点,以避免用户可觉察的错误。
虽然图2中的主机检测模块21与USB装置控制器22是两个独立的模块,但是也可以是执行与USB主机通信以及操作系统检测两种功能的一个模块(例如USB装置控制器)。
图3为上述USB装置执行的范例操作系统检测流程的状态机示意图。此示意图中,标识为“Get Configuration Descriptor”、“MOD descriptor”、及“SET_CONFIGURATION”的块表示USB装置从外部(USB主机)接收的信息。从消息“Get Configuration Descriptor”,USB装置保持配置描述符的字长,并且继续检测处理。当USB装置接收消息“MOD descriptor”,USB装置适当处理MOD描述符并且结束检测处理。当USB装置接收消息“SET_CONFIGURATION”,USB装置结束检测处理。图3中的范例检测流程一般对应于图2所示的范例。
图4为产生操作系统表现知识数据库16的处理示意图。首先,USB装置耦接于已知操作系统的USB主机(步骤S41)。USB装置其自身作为USB海量存储装置或者其他普遍支持的USB装置,并且执行相似于图1步骤S13的伪枚举从USB主机收集表现数据(步骤S42)。这些步骤对运行不同已知操作系统的多USB主机重复(步骤S43)。接着,执行分析以揭示操作系统表现因子与已知操作系统类型之间的关系,以基于操作系统表现因子与已知操作系统类型的关系来设计用于检测操作系统类型的算法(步骤S44)。步骤S44可人工执行或者由计算机执行,或者由计算机辅助人工执行。当由计算机执行时,步骤S44基本上是机器学习过程。步骤S44后,当希望进一步执行步骤S44的迭代时,重复步骤S41-S43来收集更多的操作系统表现数据。学习过程的结果,例如上述表II与表III所示的评分系统,及/或其他操作系统检测算法,储存于操作系统表现知识数据库16(步骤S45)中。
图4所示的学习过程可用于在没有先前知识的情况下建立操作系统表现知识数据库16。由此,操作系统表现知识数据库16由USB装置制造商使用学习过程产生。但是,对于普遍支持的USB装置(例如:USB海量存储装置),已存在的操作系统表现变得相对稳定;由此,一方建立的操作系统表现知识数据库16可由多USB装置制造商使用。当混合操作系统中加入新操作系统时,或者USB工厂中发生改变时(例如规格改变或者加入新的装置类型等),必须重新执行学习过程以更新或者重建操作系统表现知识数据库16。同样希望每一USB装置都配备学习算法以允许系统供应商提高检测准确度以及USB主机检测算法的操作系统类型覆盖度,或者允许终端用户在USB主机检测处理中执行故障诊断。
本发明第二实施方式提供操作系统检测方法且避免主机计算机BIOS阶段不想要的影响。一旦装置与计算机耦接、当装置已经与主机物理连接、以及主机进入BIOS阶段,则配置USB装置。当启动计算机时,或者从睡眠状态唤醒时,主机计算机一般进入BIOS阶段。BIOS阶段中,一些主机的表现会干扰USB装置的主机操作系统检测处理。
例如,一些操作系统上,假若已在BIOS阶段配置USB装置,则之后不再重新配置装置。这会干扰操作系统检测处理,因为在BIOS阶段USB装置枚举处理通常无关于所进入的操作系统阶段。由此,假若进入操作系统阶段后装置无法执行USB装置枚举,则BIOS阶段中判断的操作系统类型可能错误,并造成用户无法使用USB装置。
为避免BIOS带来的干扰,依本发明第二实施方式提供一种方法,USB装置使用特定供应商标识(ID)来防止BIOS配置装置。
现有技术中,使用USB装置前,BIOS或操作系统多次向装置请求描述符以识别USB装置类型,并且在必要时加载相关驱动程序以处理USB装置。这种处理一般如图5所示。假若USB装置是需要特定供应商驱动程序的特定供应商装置,则装置将装置类型标识指定为“0xff”。相应地,USB主机加载特定供应商驱动程序以处理此USB装置(请参阅图5步骤S54)。
本发明第二实施方式利用USB主机的上述特性。依第二实施方式,当USB主机第一次向USB装置请求设备描述符(例如在从主机接收消息“SET_ADDRESS”前),USB装置返回包含装置类型标识为“0xff”的设备描述符。这使得BIOS停止USB枚举处理,由此,装置之后由操作系统配置。此处理如图6所示。
如图6所示,当USB主机的BIOS第一次请求设备描述符时,USB装置返回包含装置类型标识为“0xff”的伪设备描述符。一些BIOS还请求配置描述符,此情况下,USB装置返回伪配置描述符0xff。请求配置描述符的步骤不常发生。此时,因为装置类型标识指示特定供应商装置,BIOS将停止USB枚举处理。
之后,操作系统阶段(即完成BIOS阶段后),USB主机发送设置地址的消息“SET_ADDRESS”给USB装置。之后,当USB装置从USB主机接收另一对设备描述符的请求时,USB装置返回关于USB海量存储装置或者其他普遍支持的USB装置的描述符。USB主机还请求配置描述符,并且USB装置返回适当的描述符(返回配置描述符的步骤可省略)。此时,可执行第一实施方式的处理,包含执行:收集操作系统表现因子,判断操作系统类型,以及执行对所判断的操作系统类型特定的USB装置枚举。
请注意,完成BIOS阶段后,大多数USB主机在消息“SET_ADDRESS”后发送另一对设备描述符的请求,所以USB装置不需解耦再重新耦接来启动USB枚举处理。一些操作系统上,USB主机不再重新请求设备描述符。此种情况下,USB装置可以模拟USB解耦再USB耦接来启动处理。
请参阅图3的状态机,假若USB装置成功阻止BIOS完成USB枚举处理,则状态机不进入中止检测(END_DETECTING)状态。但是,假若USB装置未成功阻止BIOS完成USB枚举处理,则状态机进入中止检测(END_DETECTING)状态而没有正确判断操作系统类型。此状况下,USB装置能够通过模拟USB解耦再USB耦接启动另一USB装置枚举。
为使USB装置适应不同应用,需要提供可由客户配置的对装置枚举的处理。本发明第三实施方式允许此类可由客户配置的装置枚举处理。
可由客户配置的装置枚举处理在一些情况下很有用,例如,当USB装置被设计为具有硬件、固件及/或软件来允许其作为不同类型USB装置运作时。例如,USB装置被设计作为ISD(一种WindowsTM VistaTM及其后期WindowsTM操作系统支持的网络接口装置)、或者RNDIS(一种WindowsTM XP及其后期WindowsTM操作系统支持的USB网络接口装置),或者CDC/ECM(一种MACTM OS及LinuxTM支持的USB网络接口装置),来执行网络接口功能。接着,当USB装置耦接于主机时,USB装置检测主机的操作系统类型,并基于所检测的操作系统类型将其自身作为USB主机的上述网络接口装置之一,由此适当地得到主机支持来执行网络接口功能。
依第三实施方式的可由客户配置的装置枚举处理一般使用图7所示状态机实施,并且由图8-9提供两个范例。图7显示一般装置枚举流程的状态转换。初始状态S71是完成操作系统检测步骤后USB装置所处的状态。本实施方式中,此状态意指海量存储装置状态,因为在操作系统检测处理期间,USB装置将其自身作为海量存储装置。应注意初始状态(操作系统检测结果)并不特指任何枚举处理的可由客户配置方面。
接着,状态转换步骤使用客户定义翻译表77执行(步骤S72),来翻译状态机中从初始状态S71到另一定义状态的状态(意指第一状态S73)。翻译表定义操作系统检测结果与状态之间的关联。例如,操作系统检测处理产生三种可能的结果:1:Windows Vista及Windows7;2:Linux;3:MAC OS;4:Windows XP SP2及其后期;及5:其他;翻译表具有下列形式:
译文=(1,VISTA7)(2,LINUXMAC)(3,LINUXMAC)(4,XPSP)(5,其他)
其中,VISTA7和LINUXMAC是状态机的两种状态。由此,状态翻译步骤S72后,第一状态S73为VISTA7或者LINUXMAC状态。
接着,USB装置执行USB重置(步骤S74)。例如,通过USB解耦再耦接完成。USB重置后状态机处于第二状态S75。接着,状态机通过应用客户枚举表现数据库78中储存的客户定义状态转换规律,来进行状态转换(一般意指图7中步骤S76所示的“可配置装置枚举”。
如图8、9所示,在此特别给出USB装置枚举处理流程的两个范例用以说明。图8所示的处理中,USB装置最初将自身作为海量存储装置(初始状态),并且执行操作系统检测。装置枚举将基于操作系统检测结果执行并且由客户配置。此特定范例中,配置枚举处理以使得:假若所检测的操作系统是WindowsVista或其后期,则执行相应ISD的装置枚举处理(其中,装置通过报告相应ISD的设备描述符,将自身作为主机的ISD);假若所检测的操作系统是Windows XPSP2或XP SP3,则执行相应RNDIS+海量存储装置的装置枚举处理;假若所检测的操作系统是Windows XP或XP SP1、或未知操作系统,则执行相应RNDIS+海量存储装置的装置枚举处理;假若所检测的操作系统是MAC-OS或Linux则执行相应CDC+海量存储装置的装置枚举处理。图8中,这些处理以四类状态标识描述:“ISD”、“NDIS+MSD”、“RNDIS+MSD”及“CDC+MSD”。如图8所示,这四种状态不会转换为其他状态。
本发明中,符号“+”表示包含多种功能单元的复合USB装置。
对多种USB装置类型的枚举处理预储存于USB装置中,但是,客户能够配置装置来指定在什么条件下,以什么顺序来执行哪些枚举处理等。特定实施方式中,客户通过提供定义状态转换的配置元素来配置处理。其中配置元素包含下列格式:
(状态、装置类型、时间、下一状态)
在此,“状态”和“下一状态”是状态机的状态名称。“装置类型”是当前状态下,USB装置在装置枚举中所呈现的USB装置类型。“时间”是判断转换到下一状态的参数。时间=n意味着此状态将超时并且在n秒内转换至下一状态,并且时间=0意味着此状态从来不会超时(即永远也不超时)。
除了“时间”数值,还要遵守以下状态转换规则。第一,假若接收到对应CDC、RNDIS、ISD装置类型的“USB Set_Configuration”消息,则停止超时倒计数,以使得此状态不会转换到下一状态。第二,假若接收到海量存储装置弹出消息(消息“MSD EJECT”),则此状态立即转换到下一状态。
这些配置元素由客户提供并且储存在USB装置中。例如,为完成图8所示流程,用户需提供以下配置元素:
FLOW1=(VISTA7,ISD,0,VISTA7)(XPSP,RNDIS+MSD,0,XPSP)(LINUXMAC,CDC+MSD,0,LINUXMAC)(OTHER,RNDIS+MSD,0,OTHER)
相似的,图9所示范例中,USB装置最初将自身作为海量存储装置(初始状态),并且执行操作系统检测。枚举处理配置如下:假若所检测的操作系统是Windows Vista及其后期,则执行ISD的相应装置枚举处理;假若所检测的操作系统是Windows XP SP2及XP SP3、或Windows XP及XP SP1、或未知操作系统,则执行相应海量存储装置的装置枚举处理;以及假若所检测的操作系统是MAC-OS或Linux则执行相应CDC的装置枚举处理。图9中,这些处理以三类状态标识描述:“ISD”、“MSD””及“CDC”。此流程中,当发生超时或者接收到海量存储装置弹出时,海量存储装置状态转换为“RNDIS”状态。也就是说,当执行相应海量存储装置的枚举时,发生超时或者接收到海量存储装置弹出的消息“MSD EJECT”,则USB装置开始执行相应RNDIS的枚举处理。
为完成图9所示流程,用户需提供以下配置元素:
FLOW2=(VISTA7,ISD,0,VISTA7)(LINUXMAC,CDC,0,LINUXMAC)(OTHER,MSD,16,OTHER1)(OTHER1,RNDIS,0,OTHER1)
应注意图8、图9所示范例中,状态由USB装置类型标识为“ISD”等,而配置元素的格式如上所述,状态由操作系统类型识别为“VISTA7”等。这些不同的标识意指相同的东西。本领域技术人员应了解使用不同标签仅为了图片描述和文字叙述方便。
应注意本领域技术人员参阅相关标准或者其他可获得的文件,不需要额外实验,皆可实施针对每种操作系统类型及每种装置类型的装置枚举处理。
除了上述状态转换方法,其他适当的方法也可用于执行可配置枚举处理。
图10为执行本发明第一、第二、第三实施方式的USB装置所执行的USB装置枚举处理的高水平流程图。当USB装置枚举处理开始时,即当USB装置耦接于USB主机或者当在USB装置已耦接情况下主机启动或者从休眠或睡眠状态恢复时,执行此处理。首先,假若USB装置判断USB主机在BIOS阶段,则USB装置阻止在BIOS阶段完成装置枚举(步骤S101)。例如,假若USB装置在消息“SET_ADDRESS”前接收到对设备描述符的请求,则USB装置返回包含装置类型标识为“0xff”(特定供应商装置)的伪设备描述符。此处理对应于图6所示第二实施方式。接着当主机不在BIOS阶段时,USB装置执行处理以检测主机操作系统类型(步骤S102)。操作系统表现知识数据库用于此处理。此处理如图1-图3所示在第一实施方式中详细描述。接着,判断操作系统类型后,USB装置基于所判断的主机操作系统类型使用所选择的处理执行装置枚举处理。并且,装置枚举处理是可由客户配置的,允许USB装置基于所判断的操作系统类型将自身作为多种USB装置之一(步骤S103)。客户枚举表现数据库用于此处理。此处理如图7-图9所示在第三实施方式中详细描述。
在上述框架内还可执行额外的处理,USB装置检测主机上是否安装了适当的装置驱动程序,并且假若没安装则使驱动程序安装此驱动。此驱动程序检测方法使用MOD的方式传送信息。如图11所示,首先将USB装置插入主机,之后主机向装置发出问询,装置是否支持MOD。此问询是索引号为0xEE的消息“Get String Descriptor”。作为响应,装置返回具有特定供应商编码(例如0x66)的操作系统串描述符。装置选择使用什么特定数值作为响应中的供应商编码。接着,主机发出MOD请求,附有其从装置接收的供应商编码,即本实施方式中的“0x66”。当装置接收此附有供应商编码0x66(即与之前装置发送给主机的编码相同的供应商编码)的MOD请求时,装置判断主机没有安装适当的驱动程序。
上述步骤为主机操作系统类型检测处理的一部分(第一实施方式)。也就是说,主机发出请求是正常USB枚举的一部分,但是装置使用这些请求中的信息来检测主机上是否安装了适当的驱动程序。这些步骤是本发明第一实施方式所述操作系统检测处理的一部分。此时,装置已经判断主机的操作系统类型。
当装置判断主机上未安装适当的驱动程序时,装置进入“驱动程序未安装”状态,此状态是第三实施方式所述状态机的多种状态之一。此状态中,装置模拟USB解耦与耦接。由此,在之后的USB枚举处理中,装置将自身作为CD-ROM或其他海量存储装置,包含储存其中的自动运行程序。自动运行程序执行,或者使其他安装程序(也储存在模拟的CD-ROM中)执行下列功能:安装适当的驱动程序,并且储存在模拟的CD-ROM中;将储存在主机中的供应商编码修改为另一编码,本范例中为0x99,不同于先前从装置接收的供应商编码,本范例中为0x66;以及使主机发送海量存储装置弹出“MSD EJECT”命令,更明确地,是小型计算机系统接口开始停止单元“SCSI Start Stop Unit”命令,其中LoEj相当于弹出媒体。
海量存储装置弹出“MSD EJECT”命令后,主机发出另一MOD请求,但这次包含新的供应商编码0x99,即自动运行或者安装程序修改的供应商编码。从供应商编码数值,装置判断主机现在已安装适当的驱动程序,并且模拟解耦与耦接来开始实际的USB装置枚举处理。此实际的枚举处理中,装置处于“驱动程序已安装”状态,并且将自身作为目标USB装置,例如本范例中的CD-ROM及网络适配器装置(CD-ROM+NIC)。
上述方法中,自动运行或者安装程序修改的供应商编码数值用于告知USB装置在实际USB枚举处理中,目标USB装置应将自身作为什么目标USB装置。由此,不同驱动程序将供应商编码修改为不同数值,以使得之后的MOD请求以这些不同的供应商编码发出。当USB装置接收到具有这些供应商编码之一的MOD请求时,装置基于供应商编码数值,将其自身作为特定目标装置。操作系统串描述符中的供应商编码还可用于在USB装置和主机之间传输其他信息。
依不同实施方式的USB装置枚举处理在USB装置中由硬件、固件或软件执行。一范例实施方式中,这些处理由USB装置中的USB装置控制器(或者包含多控制模块的控制部分)执行,运行储存在USB装置中程序存储器的程序。特别地,程序执行多个储存在USB装置中的USB装置枚举处理,并且基于所检测的主机操作系统类型,选择多个装置枚举处理其中之一执行。客户可通过储存新的或者修改程序存储器的程序,来配置USB装置枚举流程(如第三实施方式所述)。相关数据(操作系统表现知识数据库、客户枚举表现数据库等)也储存在USB装置的存储器中。
显然,本领域的技术人员在不脱离本发明的精神和范围内,当可对本发明USB装置枚举方法及其相关装置做些许的更动与润饰。因此本发明的保护范围当视权利要求所界定者为准,涵盖权利要求所界定范围内的修改和变形。
Claims (22)
1.一种通用串行总线装置枚举方法,用于通用串行总线装置,包含:
(a)根据执行伪枚举过程所收集的信息,判断耦接于该通用串行总线装置的通用串行总线主机的操作系统类型;以及
(b)基于所判断的该通用串行总线主机的该操作系统类型,从储存在该通用串行总线装置中的多个通用串行总线装置枚举处理中选择一个通用串行总线装置枚举处理,来执行通用串行总线装置枚举。
2.如权利要求1所述的通用串行总线装置枚举方法,其特征在于,该步骤(a)包含:
(a1)将该通用串行总线装置作为该通用串行总线主机普遍支持的通用串行总线装置;
(a2)从自该通用串行总线主机接收的多个消息收集多个主机操作系统表现因子;以及
(a3)基于所收集的该多个主机操作系统表现因子,判断该通用串行总线主机的该操作系统类型。
3.如权利要求2所述的通用串行总线装置枚举方法,其特征在于,该普遍支持的通用串行总线装置为通用串行总线海量存储装置或者通用串行总线人机接口装置。
4.如权利要求2所述的通用串行总线装置枚举方法,其特征在于,该多个主机操作系统表现因子包含从由多个因子组成的群组中所选择的至少一因子,该多个因子包含:获取第一配置描述符的消息、获取第二配置描述符的消息、与接口关联描述符有关的消息、以及设置地址之后的第二请求的特性。
5.如权利要求2所述的通用串行总线装置枚举方法,其特征在于,该通用串行总线装置包含预储存的操作系统表现知识数据库,储存的该操作系统表现知识数据库包含多个已知操作系统类型的多个已知表现因子的相关信息,并且该步骤(a3)通过使用预储存的该操作系统表现知识数据库来执行。
6.如权利要求5所述的通用串行总线装置枚举方法,其特征在于,该多个已知操作系统类型包含WindowsTM Vista、Win7、WindowsTM XP、Linux以及MACOS。
7.如权利要求5所述的通用串行总线装置枚举方法,其特征在于,该通用串行总线装置枚举方法还包含:
(c)在执行该步骤(a)之前,产生该操作系统表现知识数据库,包含:
(c1)将该通用串行总线装置作为具有已知操作系统类型的通用串行总线主机普遍支持的通用串行总线装置;
(c2)从自该具有已知操作系统类型的通用串行总线主机接收的消息收集多个主机操作系统表现因子;
(c3)对多个具有已知操作系统类型的通用串行总线主机重复该步骤(c1)和该步骤(c2);以及
(c4)分析该步骤(c2)中所收集的该多个主机操作系统表现因子以揭示该多个主机操作系统表现因子与该操作系统类型之间的关系。
8.如权利要求1所述的通用串行总线装置枚举方法,其特征在于,该步骤(a)包含:
(a1)将该通用串行总线装置作为该通用串行总线主机普遍支持的通用串行总线装置;
(a2)当在收到任何设置装置地址的消息之前先从该通用串行总线主机接收到对设备描述符的请求时,则将指示特定供应商装置的设备描述符返回给该通用串行总线主机;
(a3)当在收到设置装置地址的消息之后才从该通用串行总线主机接收到对设备描述符的请求时,则返回指示普遍支持的通用串行总线装置的设备描述符;
(a4)执行该步骤(a3)之后,从自该通用串行总线主机接收的多个消息收集多个主机操作系统表现因子;以及
(a5)基于所收集的该多个主机操作系统表现因子,判断该通用串行总线主机的该操作系统类型。
9.如权利要求1所述的通用串行总线装置枚举方法,其特征在于,在执行该步骤(a)之前,将定义枚举处理流程的配置元素储存在通用串行总线装置中,其中,该步骤(b)依据该配置元素定义的枚举处理流程执行。
10.如权利要求1所述的通用串行总线装置枚举方法,其特征在于,该步骤(a)还判断该通用串行总线主机上是否已安装针对目标通用串行总线装置的适当的驱动程序,并且其中该步骤(b)包含:若未安装该驱动程序,则将该通用串行总线装置作为储存该驱动程序及自动运行程序的海量存储装置储存,以使该驱动程序安装在该通用串行总线主机上。
11.如权利要求10所述的通用串行总线装置枚举方法,其特征在于,该步骤(a)包含基于来自该通用串行总线主机的微软操作系统描述符请求中的供应商编码数值来判断通用串行总线主机上是否已安装该驱动程序。
12.一种通用串行总线装置,包含:
通用串行总线接口电路;
控制电路,包含通用串行总线装置控制器,该通用串行总线装置控制器用于控制该通用串行总线接口电路;以及
其中,
(a)该通用串行总线装置控制器根据执行伪枚举过程所收集的信息,判断耦接于该通用串行总线装置的通用串行总线主机的操作系统类型;以及
(b)基于所判断的该通用串行总线主机的该操作系统类型,该通用串行总线装置控制器从储存在该通用串行总线装置中的存储器中的多个通用串行总线装置枚举处理中选择一个通用串行总线装置枚举处理,来执行通用串行总线装置枚举。
13.如权利要求12所述的通用串行总线装置,其特征在于,
(a1)该通用串行总线装置控制器将该通用串行总线装置作为该通用串行总线主机普遍支持的通用串行总线装置;
(a2)该通用串行总线装置控制器从自该通用串行总线主机接收的多个消息收集多个主机操作系统表现因子;以及
(a3)基于所收集的该多个主机操作系统表现因子,该通用串行总线装置控制器判断该通用串行总线主机的该操作系统类型。
14.如权利要求13所述的通用串行总线装置,其特征在于,该普遍支持的通用串行总线装置为通用串行总线海量存储装置或者通用串行总线人机接口装置。
15.如权利要求13所述的通用串行总线装置,其特征在于,该多个主机操作系统表现因子包含从由多个因子组成的群组中所选择的至少一因子,该多个因子包含:获取第一配置描述符的消息、获取第二配置描述符的消息、与接口关联描述符有关的消息、以及设置地址之后的第二请求的特性。
16.如权利要求13所述的通用串行总线装置,其特征在于,该存储器包含预储存的操作系统表现知识数据库,预储存的该操作系统表现知识数据库包含多个已知操作系统类型的多个已知表现因子的相关信息,并且该通用串行总线装置控制器通过使用预储存的该操作系统表现知识数据库来判断该通用串行总线主机的该操作系统类型。
17.如权利要求16所述的通用串行总线装置,其特征在于,该多个已知操作系统类型包含WindowsTM Vista、Win7、WindowsTM XP、Linux以及MAC操作系统。
18.如权利要求16所述的通用串行总线装置,其特征在于,该操作系统表现知识数据库的产生是通过
(c1)将该通用串行总线装置作为具有已知操作系统类型的通用串行总线主机普遍支持的通用串行总线装置;
(c2)从自该具有已知操作系统类型的通用串行总线主机接收的多个消息收集多个主机操作系统表现因子;
(c3)对多个具有已知操作系统类型的通用串行总线主机重复该步骤(c1)和该步骤(c2);以及
(c4)分析该步骤(c2)中所收集的该多个主机操作系统表现因子以揭示该多个主机操作系统表现因子与该操作系统类型之间的关系。
19.如权利要求12所述的通用串行总线装置,其特征在于,
(a1)该通用串行总线装置控制器将该通用串行总线装置作为该通用串行总线主机普遍支持的通用串行总线装置;
(a2)当在收到任何设置装置地址的消息之前先从该通用串行总线主机接收到对设备描述符的请求时,则该通用串行总线装置控制器将指示特定供应商装置的设备描述符返回给该通用串行总线主机;
(a3)当在收到设置装置地址的消息之后才从该通用串行总线主机接收到对设备描述符的请求时,则该通用串行总线装置控制器返回指示普遍支持的通用串行总线装置的设备描述符;
(a4)该通用串行总线装置控制器在返回指示普遍支持的通用串行总线装置的该设备描述符之后,从自该通用串行总线主机接收的多个消息收集多个主机操作系统表现因子;以及
(a5)基于所收集的该多个主机操作系统表现因子,该通用串行总线装置控制器判断该通用串行总线主机的该操作系统类型。
20.如权利要求12所述的通用串行总线装置,其特征在于,在该通用串行总线装置判断耦接于该通用串行总线装置的通用串行总线主机的操作系统类型之前,将定义枚举处理流程的配置元素储存在通用串行总线装置中,其中,该通用串行总线装置依据该配置元素定义的枚举处理流程执行该通用串行总线装置枚举。
21.如权利要求12所述的通用串行总线装置,其特征在于,该通用串行总线装置控制器还判断该通用串行总线主机上是否已安装针对目标通用串行总线装置的适当的驱动程序,并且若未安装该驱动程序,则将该通用串行总线装置作为储存该驱动程序及自动运行程序的海量存储装置储存,以使该驱动程序安装在该通用串行总线主机上。
22.如权利要求21所述的通用串行总线装置,其特征在于,该通用串行总线装置控制器基于来自该通用串行总线主机的微软操作系统描述符请求中的供应商编码数值来判断通用串行总线主机上是否已安装该驱动程序。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37641310P | 2010-08-24 | 2010-08-24 | |
US61/376,413 | 2010-08-24 | ||
US13/211,072 | 2011-08-16 | ||
US13/211,072 US8661164B2 (en) | 2010-08-24 | 2011-08-16 | Method of USB device enumeration including detecting the operating system type of the USB host |
PCT/CN2011/078825 WO2012025048A1 (en) | 2010-08-24 | 2011-08-24 | Method of usb device enumeration including detecting operating system type of usb host |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102713843A CN102713843A (zh) | 2012-10-03 |
CN102713843B true CN102713843B (zh) | 2014-06-11 |
Family
ID=45698634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180005408.2A Expired - Fee Related CN102713843B (zh) | 2010-08-24 | 2011-08-24 | 通用串行总线装置枚举方法及通用串行总线装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8661164B2 (zh) |
EP (1) | EP2598991B1 (zh) |
CN (1) | CN102713843B (zh) |
ES (1) | ES2724523T3 (zh) |
WO (1) | WO2012025048A1 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043751B (zh) * | 2010-06-29 | 2012-12-12 | 飞天诚信科技股份有限公司 | Usb设备识别主机操作系统的方法 |
CN101916238B (zh) * | 2010-08-26 | 2012-01-25 | 华为终端有限公司 | 数据卡识别操作系统的方法、装置及通信系统 |
KR101820717B1 (ko) * | 2010-09-07 | 2018-01-22 | 에스프린팅솔루션 주식회사 | 화상형성장치 및 화상형성방법 |
CN101957807B (zh) * | 2010-09-16 | 2012-08-08 | 飞天诚信科技股份有限公司 | USB设备识别主机Windows操作系统版本类型的方法 |
US20140129681A1 (en) | 2011-06-10 | 2014-05-08 | Dmitry Alekseevich Gorilovsky | Method of installing a driver to emulate a network card |
CN102955755B (zh) * | 2011-08-23 | 2016-03-02 | 华为终端有限公司 | 数据卡与主机间通信异常的修复方法及数据卡 |
EP4398524A2 (en) | 2011-09-14 | 2024-07-10 | Barco N.V. | Electronic tool and methods with audio for meetings |
US9083769B2 (en) * | 2011-09-14 | 2015-07-14 | Barco N.V. | Electronic tool and methods for meetings |
US10965480B2 (en) | 2011-09-14 | 2021-03-30 | Barco N.V. | Electronic tool and methods for recording a meeting |
US8756348B2 (en) | 2011-09-14 | 2014-06-17 | Barco N.V. | Electronic tool and methods for meetings |
US11258676B2 (en) | 2011-09-14 | 2022-02-22 | Barco N.V. | Electronic tool and methods for meetings |
CN102375786B (zh) * | 2011-10-18 | 2014-09-10 | 中兴通讯股份有限公司 | Usb设备自动识别操作系统的方法及系统 |
CN102521186B (zh) * | 2011-11-22 | 2015-01-14 | 飞天诚信科技股份有限公司 | 一种USB Key及其与终端进行通信的方法 |
KR101956574B1 (ko) * | 2012-02-24 | 2019-03-11 | 삼성전자주식회사 | 휴대용 단말기에서 호스트 디바이스의 운영 체제를 확인하기 위한 장치 및 방법 |
KR101202788B1 (ko) | 2012-04-25 | 2012-11-19 | 주식회사 데브구루 | Usb 장치 및 상기 usb 장치의 운영체제 판별 방법 |
FR2990532A1 (fr) * | 2012-05-11 | 2013-11-15 | Emmanuel Thibaudeau | Procede d'envoi automatique de lignes de commande pouracceder a un site internet et dispositif mettant en oeuvre le procede. |
CN103123594A (zh) * | 2012-10-09 | 2013-05-29 | 中兴通讯股份有限公司 | 一种数据终端的运行模式切换方法、装置及数据终端 |
CN102890662B (zh) * | 2012-10-19 | 2016-10-05 | 无锡海森诺科技有限公司 | 通过对usb hid设备进行二次枚举以识别主机操作系统的方法 |
CN103092799B (zh) * | 2012-12-28 | 2015-07-22 | 飞天诚信科技股份有限公司 | 一种usb设备及其识别主机操作系统的方法 |
CN104156328B (zh) * | 2013-05-15 | 2019-02-05 | 中兴通讯股份有限公司 | 一种识别操作系统类型的方法及usb设备 |
US9170828B2 (en) * | 2013-05-16 | 2015-10-27 | Microsoft Technology Licensing, Llc. | Extraction of operating system-specific characteristics via a communication interface |
CN104182374B (zh) * | 2013-05-28 | 2018-09-28 | 南京中兴软件有限责任公司 | Usb设备及其自动识别微软窗口化操作系统版本的方法 |
CN104516842A (zh) * | 2013-09-29 | 2015-04-15 | 中兴通讯股份有限公司 | 一种usb设备快速适配操作系统的方法及usb设备 |
CN103577231A (zh) * | 2013-10-31 | 2014-02-12 | 南京熊猫电子股份有限公司 | 一种usb嵌入式设备判断主机操作系统的方法 |
CN104834611A (zh) * | 2014-02-12 | 2015-08-12 | 中兴通讯股份有限公司 | 一种自动识别主机操作系统的方法、装置及usb设备 |
TWI545441B (zh) * | 2014-02-17 | 2016-08-11 | 廣達電腦股份有限公司 | 電腦系統及其通用序列匯流排裝置的偵測方法 |
CN104951417A (zh) * | 2014-03-26 | 2015-09-30 | 北京同方微电子有限公司 | 一种实现适用于大容量usim的usb复合设备的方法 |
CN105279110B (zh) * | 2014-07-25 | 2018-07-27 | 南京中兴软件有限责任公司 | 一种usb设备识别主机系统的方法及usb设备 |
US9824059B2 (en) * | 2014-08-30 | 2017-11-21 | Microsoft Technology Licensing, Llc | Child serial device discovery protocol |
US9892064B2 (en) * | 2014-09-02 | 2018-02-13 | Logitech Europe S.A. | Universal input device |
US10528358B2 (en) | 2015-01-23 | 2020-01-07 | Hewlett-Packard Development Company, L.P. | Initialize port |
CN106301860A (zh) * | 2015-06-08 | 2017-01-04 | 西安中兴新软件有限责任公司 | 一种支持不同网络接口的方法、usb设备及系统 |
KR102461604B1 (ko) * | 2016-02-16 | 2022-11-02 | 삼성전자주식회사 | 데이터 송수신 방법 및 장치 |
CN105808464B (zh) * | 2016-02-29 | 2018-09-14 | 宇龙计算机通信科技(深圳)有限公司 | Usb相关的计算机系统更新方法和装置 |
CN109154916A (zh) * | 2016-08-22 | 2019-01-04 | 惠普发展公司,有限责任合伙企业 | 连接的设备的信息 |
CN107783793B (zh) * | 2016-08-24 | 2021-08-06 | 旺玖科技股份有限公司 | 自动辨识主机操作系统的方法与usb装置 |
TWI587147B (zh) * | 2016-08-24 | 2017-06-11 | 旺玖科技股份有限公司 | 自動辨識主機作業系統之方法與usb裝置 |
CN106452838A (zh) * | 2016-08-31 | 2017-02-22 | 广州视睿电子科技有限公司 | Usb设备模拟装置及方法 |
CN106383796B (zh) * | 2016-10-18 | 2019-06-14 | 广州视睿电子科技有限公司 | 一种主机操作系统类型的识别方法及系统 |
CN108287798A (zh) * | 2017-01-09 | 2018-07-17 | 中兴通讯股份有限公司 | 一种usb驱动适配方法、装置及系统 |
CN108733519B (zh) * | 2017-04-14 | 2022-08-16 | 中兴通讯股份有限公司 | 一种usb设备的配置方法及主机 |
US10169567B1 (en) * | 2017-11-21 | 2019-01-01 | Lockheed Martin Corporation | Behavioral authentication of universal serial bus (USB) devices |
CN109870640A (zh) * | 2019-02-14 | 2019-06-11 | 西安太乙电子有限公司 | 一种基于ate的usb接口类芯片测试方法 |
CN110069288B (zh) * | 2019-03-13 | 2022-03-04 | 北京淳中科技股份有限公司 | Usb设备共享方法、装置及系统 |
WO2020251582A1 (en) | 2019-06-14 | 2020-12-17 | Hewlett-Packard Development Company L.P. | Biometric sensor controls |
KR102103593B1 (ko) * | 2019-07-29 | 2020-04-23 | 김창석 | 외장형 운영체제 구동 장치 및 그 방법 |
JP7386012B2 (ja) | 2019-07-30 | 2023-11-24 | 株式会社ワコム | 情報入力装置、方法、及びプログラム |
US10827271B1 (en) * | 2019-10-07 | 2020-11-03 | Synaptics Incorporated | Backward compatibility for audio systems and methods |
WO2021184291A1 (zh) * | 2020-03-19 | 2021-09-23 | 西安诺瓦星云科技股份有限公司 | 传输数据的方法、装置和系统 |
CN112068893B (zh) * | 2020-11-12 | 2021-03-16 | 飞天诚信科技股份有限公司 | 一种usb设备及其区分移动设备操作系统的方法 |
US11929722B2 (en) * | 2020-12-10 | 2024-03-12 | Realtek Semiconductor Corp. | Audio control circuit and associated control method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078985A (zh) * | 2006-05-23 | 2007-11-28 | 国际商业机器公司 | 用于识别在计算机系统上运行的操作系统的方法和设备 |
CN101246428A (zh) * | 2007-02-12 | 2008-08-20 | 希捷科技有限公司 | 启动装置的重枚举的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6889058B2 (en) * | 2001-04-20 | 2005-05-03 | Sony Corporation | Set up logic for dual interface wireless IP communication device |
US20040203296A1 (en) * | 2002-11-15 | 2004-10-14 | Globespan Virata Inc. | Method and system for attaching a USB network adapter supporting both RNDIS and non-RNDIS capable operating systems |
US20050221894A1 (en) * | 2004-03-31 | 2005-10-06 | Microsoft Corporation | Multi-system game controller that operates in multiple USB modes |
US7447196B2 (en) * | 2005-10-25 | 2008-11-04 | Kinghood Technology Co., Ltd. | Wireless networking communication system and communicating method for VOIP |
DE102006010218A1 (de) * | 2006-03-06 | 2007-09-13 | Giesecke & Devrient Gmbh | Verfahren zum Einstellen einer Hilfseinheit auf einen Host und Hilfseinheit |
US20080276012A1 (en) * | 2007-05-04 | 2008-11-06 | Joe Mesa | Driver Loading via a PnP Device |
TW200943188A (en) * | 2008-04-01 | 2009-10-16 | Sunplus Innovation Technology Inc | A method for automatically detecting an operating system on a USB device |
KR20100002943A (ko) * | 2008-06-30 | 2010-01-07 | 삼성전자주식회사 | 유에스비 디바이스 장치 및 그 모드 인식방법 |
US20100199290A1 (en) * | 2009-02-02 | 2010-08-05 | Richard Thomas Kavanaugh | System and method for multifunction device enumeration |
-
2011
- 2011-08-16 US US13/211,072 patent/US8661164B2/en active Active
- 2011-08-24 EP EP11819423.2A patent/EP2598991B1/en not_active Not-in-force
- 2011-08-24 WO PCT/CN2011/078825 patent/WO2012025048A1/en active Application Filing
- 2011-08-24 CN CN201180005408.2A patent/CN102713843B/zh not_active Expired - Fee Related
- 2011-08-24 ES ES11819423T patent/ES2724523T3/es active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078985A (zh) * | 2006-05-23 | 2007-11-28 | 国际商业机器公司 | 用于识别在计算机系统上运行的操作系统的方法和设备 |
CN101246428A (zh) * | 2007-02-12 | 2008-08-20 | 希捷科技有限公司 | 启动装置的重枚举的方法 |
Also Published As
Publication number | Publication date |
---|---|
ES2724523T3 (es) | 2019-09-11 |
EP2598991A4 (en) | 2014-11-05 |
CN102713843A (zh) | 2012-10-03 |
US8661164B2 (en) | 2014-02-25 |
EP2598991A1 (en) | 2013-06-05 |
WO2012025048A1 (en) | 2012-03-01 |
US20120054372A1 (en) | 2012-03-01 |
EP2598991B1 (en) | 2019-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102713843B (zh) | 通用串行总线装置枚举方法及通用串行总线装置 | |
US5794032A (en) | System for the identification and configuration of computer hardware peripherals | |
US7574534B2 (en) | Method for using device enumeration information to identify an operating system running on a computer system | |
US6754817B2 (en) | Apparatus and method for detecting a change in system hardware configuration to reduce the amount of time to execute a post routine | |
US5748980A (en) | System for configuring a computer system | |
CN108008914B (zh) | 一种arm设备中磁盘管理的方法、装置和arm设备 | |
CN109426613B (zh) | 在uefi中检索调试数据的方法及其电脑系统 | |
US12001285B2 (en) | System booting method and apparatus, node device, and computer-readable storage medium | |
TW201324354A (zh) | 自動化連續安裝作業系統的方法 | |
US7921230B2 (en) | USB devices pre-configuration for KVM switch | |
JP5081827B2 (ja) | 遠隔データ処理システムを構築するための方法、並びにそのコンピュータ・プログラム及びデータ処理システム | |
CN107145198B (zh) | 一种提升服务器对硬盘兼容能力的方法及其主板 | |
US20030028629A1 (en) | System and method for installing software onto a build-to-order computer system using an identification device | |
US8086834B2 (en) | System and method for populating a dedicated system service repository for an information handling system | |
CN116627472A (zh) | 高速外围组件设备的固件程序升级方法及服务器 | |
US8850174B1 (en) | Method for dedicated netboot | |
CN109254800B (zh) | 一种设备信息处理方法、电子设备及服务器 | |
JP4891107B2 (ja) | コンピュータシステムおよび該コンピュータシステムで用いられるファイルシステム自動設定os起動方法 | |
US20040019896A1 (en) | Method of automatic program installation for computer device | |
US20150363713A1 (en) | Systems and methods for extending factory manufacturing mode to networking devices | |
JP2005537575A (ja) | プログラム可能なシステムの初期化方法 | |
TW202111533A (zh) | 基本輸入輸出系統的除錯訊息自動提供方法 | |
CN113986362B (zh) | 一种raid卡及其控制方法、服务器主机 | |
TWI812521B (zh) | 基於硬碟類型的開機方法 | |
US20080077712A1 (en) | Peripheral device, peripheral-device recognizing method, and computer product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140611 |
|
CF01 | Termination of patent right due to non-payment of annual fee |