USB枚举过程详解

1 USB枚举流程
USB SETUP command的状态阶段的状态包是个ZLP。
Figure 1-1 Windows枚举USB设备的流程

2 描述符配置
2.1 Android
Android是支持多USB配置描述符的,但是我们平时见到的手机都是一个配置的,接口数按照你在Android状态栏上选择的功能而定。QCOM数据卡设备为了兼容Windows和MacOS,使用了多配置描述符。
- 设备描述符的bNumConfigurations=1
- 配置描述符的bNumInterfaces=x,根据用户选择的功能而定

2.2 iOS
iOS支持4个USB配置,也即是有4个配置描述符,配置描述符中的bConfigurationValue分别是1、2、3、4,然后每个配置描述符都有自己的接口和端点描述符。
- 设备描述符的bNumConfigurations=4
- 配置描述符的bNumInterfaces=x,根据Windows选择哪个配置而定
- 当我们的电脑上没有安装iTunes时,Windows选择的是配置3,电脑上显示的是PTP Camera,当我们电脑上安装了iTunes时,Windows选择的是配置4
Figure 2-1 连接iTunes时bushound抓包

2.3 Windows Phone 8
WP8的USB功能只支持一个配置,三个接口。WinUSB驱动安装可以使用工具Zadig。
- 设备描述符的bNumConfigurations=1
- 配置描述符的bNumInterfaces=3
- 主要有3个接口:PTP、WinUSB、WinUSB

3 USB驱动安装工具Zadig
Zadig - USB driver installation made easy
https://zadig.akeo.ie/

其中ie表示Ireland爱尔兰。Zadig基于libwdi(Windows Driver Installer library)开发。

4 Abbreviations
ARC:Argonant RISC Core
AT91SAM9260:SAM means Smart ARM-based Microcontroller
ATMEL SAMBA:ATMEL Smart ARM-based Microcontroller Boot Assistant
CC2530:TI ChipCon2530
DWC2:Design Ware Controller 2,Apple的嵌入式设备,包括iPad和iPhone都是使用的DWC2
ISP1161:Philips' Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?doc_id=1290054
Quirks:the attributes of a device that are considered to be noncompliant with expected operation
SL811HS:Cypress/ScanLogic 811 Host/Slave,性能上与ISP1161(Integrated host Solution Pairs 1161)相当
TDI:TransDimension Inc.,该公司首先发明了将TT集成到EHCI RootHub中的方法,这样对于嵌入式系统来说,就省去了OHCI/UHCI的硬件,同时降低了成本,作为对该公司的纪念,Linux内核定义了宏ehci_is_TDI(ehci);产品UHC124表示USB Host Controller;收购了ARC USB技术;现已被chipidea收购,chipidea又被mips收购
TLV:TI Low Value,高性价比
TPS:TI Performance Solution
TT:Transaction Translator(事务转换器,将USB2.0的包转换成USB1.1的包)

发布了123 篇原创文章 · 获赞 49 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/zoosenpin/article/details/29795849