CN114238194A - Usb组合设备和枚举方法 - Google Patents
Usb组合设备和枚举方法 Download PDFInfo
- Publication number
- CN114238194A CN114238194A CN202010942081.2A CN202010942081A CN114238194A CN 114238194 A CN114238194 A CN 114238194A CN 202010942081 A CN202010942081 A CN 202010942081A CN 114238194 A CN114238194 A CN 114238194A
- Authority
- CN
- China
- Prior art keywords
- usb
- interface
- gas
- combination
- numbers
- 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
Classifications
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种USB组合设备和枚举方法,所述USB组合设备包括若干配置,每个所述配置提供若干接口,所述USB组合设备包括的所有的所述接口的接口号为预设的互不相同的接口号。所述USB组合设备包括的所有的接口的接口号为预设的互不相同的接口号,使得包含一组PID/VID的设备描述符下的接口号不会对应不同的接口,避免Windows系统在根据接口号识别接口的过程中出现接口号和接口对应上的冲突,节省了USB组合设备向微软进行USB设备认证的时间和费用,同时也使USB组合设备设置配置的过程更为方便。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种USB组合设备和枚举方法。
背景技术
通用串行总线(Universal Serial Bus,简称USB),是一个外部总线标准,用于规范主机如个人电脑(Personal Computer,简称PC)与外部设备的连接和通讯,应用在PC的接口技术领域,支持热插拔。PC识别、调试USB设备需要经过枚举通信过程,具体的,PC分配给USB设备地址后,会依次请求读取USB设备的设备描述符、配置描述符和接口描述符。USB设备的设备描述符描述USB设备的一般信息,包括厂商标志(Vendor ID,简称VID,由USB开发者论坛(USB Implementers Forum,简称USB-IF)赋值)、产品标志(Product ID,简称PID,由厂商赋值)和配置(configuration)数量等。USB设备的PID/VID需要向微软进行认证,使得USB设备能够和PC上安装的美国微软公司研发的Microsoft Windows操作系统(简称Windows系统)建立通信连接,且一个设备描述符只能储存一组PID/VID。USB设备的配置描述符描述有关特定设备配置的信息,包括此配置所提供的接口(interface)个数。USB设备的接口描述符的接口号是当前配置支持的接口数组索引,为从0开始的阿拉伯数字。USB设备的接口需要Windows系统挂载相应的驱动程序。
安装原生安卓系统的USB组合设备在枚举过程中会存在隐藏USB功能的场景和USB端点资源不足的场景,这些场景的存在导致该USB组合设备存在多个配置,且不同配置一般提供不同的接口,即不同配置描述符下的接口号相同(例如接口号0)的接口描述符对应的是不同的接口。由于Windows系统是根据USB组合设备的描述符为接口挂载相应的驱动程序,如果包含一组PID/VID的设备描述符提供多个不同的配置,那么该设备描述符下的固定接口号(例如接口号0)对应若干不同的接口,会使得Windows系统无法确定此接口号对应哪一个接口,也无法为该接口挂载相应的驱动程序,因此Windows系统不支持包含一组PID/VID的设备描述符下的固定接口号对应两个不同的接口。所以现有的安装原生安卓系统的USB组合设备中,一个包含一组PID/VID的设备描述符下不能同时存在两个不同配置的配置描述符。该类USB组合设备需要认证多组PID/VID才能与Windows系统建立通信连接,导致该类USB组合设备在向微软进行USB设备认证的过程中会耗费更多的时间和费用。
发明内容
本发明要解决的技术问题是为了克服现有技术中安装原生安卓系统的USB组合设备为了支持应用中多种场景存在的多个配置,需要多组PID/VID,这会导致在向微软进行USB设备认证的过程中耗费更多的时间和费用的缺陷,提供一种能够节省向微软进行USB设备认证的时间和费用的USB组合设备和枚举方法。
本发明是通过下述技术方案来解决上述技术问题:
一种USB组合设备,包括若干配置,每个所述配置提供若干接口,所述USB组合设备包括的所有的所述接口的接口号为预设的互不相同的接口号。
较佳地,所述USB组合设备安装有安卓系统。
较佳地,所述预设的互不相同的接口号储存在接口描述符中。
较佳地,所述USB组合设备的USB功能包括调试口、串口、虚拟网卡口、海量存储设备、安卓调试桥口、文件传输协议口、图片传输协议口。
较佳地,所述调试口的预设的接口号为0和1,
和/或,
所述串口的预设接口号为2、3和4,
和/或,
所述虚拟网卡口的预设接口号为5、6和7,
和/或,
所述海量存储设备的预设接口号为8和9,
和/或,
所述安卓调试桥口的预设接口号为10和11,
和/或,
所述文件传输协议口的预设接口号为12和13,
和/或,
所述图片传输协议口的预设接口号为14和15。
较佳地,每个所述配置至少对应一种USB功能。
较佳地,所述USB组合设备为智能手机、智能穿戴设备、平板电脑、智能终端中的一种。
一种USB组合设备的枚举方法,包括以下步骤:
主机获取上述各项任意组合的所述的USB组合设备的配置描述符;
所述主机获取所述USB组合设备的接口描述符;
所述主机根据所述接口描述符中的所述接口号为所述USB组合设备的接口挂载驱动。
较佳地,所述主机获取所述USB组合设备的配置描述符的步骤之前,所述USB组合设备的枚举方法还包括:
所述主机复位所述USB组合设备;
所述主机为所述USB组合设备分配设备地址。
较佳地,所述驱动选择一个所述配置作为所述USB组合设备的工作配置。
本发明的积极进步效果在于:本发明通过为包括多个配置的USB组合设备所包括的全部接口分配预设的互不相同的接口号,使得该类USB组合设备只需要向微软认证一组PID/VID,就可以提供多个不同的配置,实现和主机端的连接和通讯,从而节省了USB组合设备向微软进行USB设备认证的时间和费用。
附图说明
图1为本发明实施例1的USB组合设备的架构图。
图2为本发明实施例2的USB组合设备的枚举方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供了一种USB组合设备,具体可以为智能手机、智能穿戴设备、平板电脑、智能终端中的一种,可以包括调试口、串口、虚拟网卡口、海量存储设备、安卓调试桥口、文件传输协议口、图片传输协议口等USB功能。这些USB功能占用2-3个接口,每个接口都定义了不同的功能集,并和其他的接口相独立。本实施例中USB组合设备为安卓系统的智能手机。
在USB组合设备的架构中,设备描述符描述有关USB设备的一般信息,如设备的PID/VID、配置数量。包含一组PID/VID的设备描述符下存在若干不同的配置描述符,用于描述特定配置的信息,如配置提供的接口数量。配置描述符下存在若干接口描述符,用于描述配置中的特定接口的信息,如接口号是一个配置中接口的索引。安装原生安卓系统的USB组合设备中,每个配置提供的接口的接口号都是从0开始的阿拉伯数字。如果包含一组PID/VID的设备描述符提供多个不同的配置,那么该设备描述符下的固定接口号对应若干不同的接口,会使得Windows系统无法确定此接口号对应哪一个接口,也无法为该接口挂载相应的驱动程序。例如,
配置1提供调试口占用的接口,且接口号为0,1;
配置2提供串口占用的接口,且接口号为0,1和2;
如果这两个不相同的配置都位于包含一组PID/VID的设备描述符下,此时该设备描述符下的固定接口号(0或1)对应两个不同的接口,该USB设备在接入主机时,主机的Windows系统无法支持这种USB组合设备。这种情况下,安装原生安卓系统的USB组合设备需要向微软公司认证两组不同PID/VID。在一些需要将若干USB功能组合成一个配置的情况下,则会需要向微软公司认证更多的PID/VID。
本实施例提供一种USB组合设备,USB设备架构如图1所示,为该USB组合设备的全部USB功能的接口分配预设的互不相同的接口号,并将这些接口号储存在对应的接口描述符中。例如,
调试口的预设的接口号为0和1,
串口的预设接口号为2、3和4,
虚拟网卡口的预设接口号为5、6和7,
海量存储设备的预设接口号为8和9,
安卓调试桥口的预设接口号为10和11,
文件传输协议口的预设接口号为12和13,
图片传输协议口的预设接口号为14和15。
该USB组合设备中,USB功能可以根据需要任意组合成一个配置,如调试口和串口组成一个配置,调试口、串口和虚拟网卡口组成一个配置,海量存储设备、安卓调试桥口、文件传输协议口、图片传输协议口组成一个配置。由于为该USB组合设备包括的所有的接口分配了预设的互不相同的接口号,每个配置所提供的接口都有了固定的互不相同的接口号,该USB组合设备在接入主机时,虽然只有一组PID/VID,但是主机的Windows系统可以根据这些接口号识别出对应的不同接口。因此这些配置的配置描述符可以共同存在于包含一组PID/VID的设备描述符下,该USB组合设备只需要向微软公司认证一组PID/VID。
安装原生安卓系统的智能设备若要隐藏或者组合USB功能,需要向微软认证多组PID/VID,才能使USB组合设备提供多个不同的配置。本实施例提供一种USB组合设备,该USB组合设备包括的所有的接口的接口号为预设的互不相同的接口号,使得包含一组PID/VID的设备描述符下的接口号不会对应不同的接口,避免Windows系统在根据接口号识别接口的过程中出现接口号和接口对应上的冲突,节省了USB组合设备向微软进行USB设备认证的时间和费用,同时也使USB组合设备设置配置的过程更为方便。
实施例2
如图2所示,本实施例提供了一种USB组合设备的枚举方法,该USB组合设备为实施例1中的USB组合设备,包括以下步骤:
S1、主机复位USB组合设备。
具体地,主机发送Get_Port_Status(USB协议相关的标准函数,用于读取端口状态)请求,以获取更多的设备信息,集线器检测USB组合设备是低速运行还是高速运行,并将此信息送给主机。主机通过Set_Port_Feature(USB协议相关的标准函数,用于设置端口状态)请求,要求集线器复位USB组合设备。
S2、主机为USB组合设备分配设备地址。
具体地,主机通过Set_Address(USB协议相关的标准函数,用于设置设备地址)请求向设备分配一个唯一的设备地址。USB组合设备读取这个请求,返回一个确定接受的信号,并保存新的地址。
S3、主机获取USB组合设备的配置描述符。
S4、主机获取USB组合设备的接口描述符。
具体地,步骤S3-S4包括:
主机发送Get_Descriptor(USB协议相关的标准函数,用于获取描述符)请求到新地址读取设备描述符,并解析设备描述符的内容。
主机发送Get_Descriptor请求,依次读取配置描述符、接口描述符,逐一了解设备更详细的信息。
S5、主机根据接口描述符中的接口号为USB组合设备的接口挂载驱动。
具体地,主机跟据接口描述符中的接口号为该USB组合设备选择合适的驱动,并将设备添加到USB总线的设备列表里。USB总线检查驱动与接口是否匹配,若匹配USB总线调用device_bind_driver(USB协议相关的标准函数,用于绑定设备和驱动)函数,将USB组合设备的控制权交给设备驱动。
该驱动选择一个配置作为USB组合设备的工作配置。
具体地,设备驱动发送Set_Configuration(USB协议相关的标准函数,用于设置配置)请求来选择一个配置作为USB组合设备的工作配置。
本实施例提供了一种USB组合设备的枚举方法,对实施例1中的USB组合设备的功能及功能的组合进行枚举,该USB组合设备包括的所有的接口的接口号为预设的互不相同的接口号,使得包含一组PID/VID的设备描述符下的接口号不会对应不同的接口,避免Windows系统在根据接口号识别接口的过程中出现接口号和接口对应上的冲突,节省了USB组合设备向微软进行USB设备认证的时间和费用,同时也使USB组合设备设置配置的过程更为方便。本实施例中主机根据枚举的信息为USB组合设备挂载合适的驱动程序,使得主机与USB组合设备建立通信连接。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种USB组合设备,包括若干配置,每个所述配置提供若干接口,其特征在于,所述USB组合设备包括的所有的所述接口的接口号为预设的互不相同的接口号。
2.如权利要求1所述的USB组合设备,其特征在于,所述USB组合设备安装有安卓系统。
3.如权利要求1所述的USB组合设备,其特征在于,所述预设的互不相同的接口号储存在接口描述符中。
4.如权利要求1所述的USB组合设备,其特征在于,所述USB组合设备的USB功能包括调试口、串口、虚拟网卡口、海量存储设备、安卓调试桥口、文件传输协议口、图片传输协议口。
5.如权利要求4所述的USB组合设备,其特征在于,
所述调试口的预设的接口号为0和1,
和/或,
所述串口的预设接口号为2、3和4,
和/或,
所述虚拟网卡口的预设接口号为5、6和7,
和/或,
所述海量存储设备的预设接口号为8和9,
和/或,
所述安卓调试桥口的预设接口号为10和11,
和/或,
所述文件传输协议口的预设接口号为12和13,
和/或,
所述图片传输协议口的预设接口号为14和15。
6.如权利要求5所述的USB组合设备,其特征在于,每个所述配置至少对应一种所述USB功能。
7.如权利要求1所述的USB组合设备,其特征在于,所述USB组合设备为智能手机、智能穿戴设备、平板电脑、智能终端中的一种。
8.一种USB组合设备的枚举方法,其特征在于,包括以下步骤:
主机获取如权利要求1至7中任一项所述的USB组合设备的配置描述符;
所述主机获取所述USB组合设备的接口描述符;
所述主机根据所述接口描述符中的所述接口号为所述USB组合设备的接口挂载驱动。
9.如权利要求8所述的USB组合设备的枚举方法,其特征在于,所述主机获取所述USB组合设备的配置描述符的步骤之前,所述USB组合设备的枚举方法还包括:
所述主机复位所述USB组合设备;
所述主机为所述USB组合设备分配设备地址。
10.如权利要求8所述的USB组合设备的枚举方法,其特征在于,所述驱动选择一个所述配置作为所述USB组合设备的工作配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010942081.2A CN114238194A (zh) | 2020-09-09 | 2020-09-09 | Usb组合设备和枚举方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010942081.2A CN114238194A (zh) | 2020-09-09 | 2020-09-09 | Usb组合设备和枚举方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238194A true CN114238194A (zh) | 2022-03-25 |
Family
ID=80742735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010942081.2A Pending CN114238194A (zh) | 2020-09-09 | 2020-09-09 | Usb组合设备和枚举方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238194A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032474A1 (zh) * | 2022-08-08 | 2024-02-15 | 黄建邦 | 设备接入方法、数据交换方法及相关设备 |
-
2020
- 2020-09-09 CN CN202010942081.2A patent/CN114238194A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032474A1 (zh) * | 2022-08-08 | 2024-02-15 | 黄建邦 | 设备接入方法、数据交换方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7676752B2 (en) | System and method to specify device specific user interface information in the firmware of a USB device | |
US8650332B2 (en) | Method for switching working mode, USB device, and host device | |
CN101989205B (zh) | 一种usb设备的软件系统升级方法 | |
WO2010016679A2 (ko) | 단말기와 스마트 카드 간 인터페이스 시스템 및 그 방법, 그리고 이에 적용되는 스마트 카드 | |
US20070245055A1 (en) | USB composite device, USB communication system, and USB communication method | |
CN111143256B (zh) | 一种读取现场可更换单元信息的方法和装置 | |
TWI677214B (zh) | 擴展塢裝置、電子裝置及mac位址複製方法 | |
CN114138333A (zh) | 程序加载的方法及相关装置 | |
US20160077986A1 (en) | Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts | |
US9465597B2 (en) | System for operating a device as a storage device and a modem device | |
CN114238194A (zh) | Usb组合设备和枚举方法 | |
EP1916606B1 (en) | Storage interfacing method and apparatus | |
CN110413554B (zh) | 热插拔系统及热插拔方法 | |
US20220327339A1 (en) | Smart card management device and smart card management method | |
CN109144586A (zh) | 一种驱动适配方法、装置、计算机设备及存储介质 | |
CN107548055B (zh) | 多地区sim卡的选取方法、系统、装置及工控机 | |
CN115878327A (zh) | 总线预留方法、装置、服务器、电子设备和存储介质 | |
CN108089999B (zh) | 一种多功能usb设备注册方法及系统 | |
US8412859B2 (en) | Methods and systems for interconnecting a peripheral device and an electronic system | |
CN111092765B (zh) | 智能驱动方法、系统、电子设备及可读存储介质 | |
CN111147400B (zh) | 一种命令行配置同步的方法、装置及电子设备 | |
CN114422236A (zh) | 一种智能设备的访问方法、装置和电子设备 | |
CN113849267A (zh) | 显卡虚拟显示方法、系统、终端及存储介质 | |
CN107016266B (zh) | 基于内容的认证 | |
US20050086561A1 (en) | Testing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |