USB概念
1. 概念
USB是通用串行总线(Universal Serial Bus),分为HOST/DEVICE两个角色,所有的数据传输都由主机主动发起,而设备只是被动的负责应答。例如,在读数据时,USB先发出读命令,设备收到该命令后,才返回数据。比如我们的PC跟鼠标通讯,我们的PC是作为USB host角色,鼠标是作为USB device角色来工作。
2.USB接口种类介绍
目前我知道的有几种USB种类:type-A,type-B,type-C,mini usb,macro usb,apple lightning,分别如下图:
USB Type A:该标准一般适用于个人电脑PC中,是应用于最广泛的接口标准
USB Type B:一般用于3.5寸移动硬盘、以及打印机、显示器等连接
USB Type C:USB Type C这个接口名称是在USB 3.1时代之后出现的,该接口的亮点在于更加纤薄的设计、更快的传输速度(最高10Gbps)以及更强悍的电力传输(最高100W)。Type-C双面可插接口最大的特点是支持USB接口双面插入,主要面向更轻薄、更纤细的设备(未来可能统一手机平板的接口,取代Micro USB接口)。
总结说来USB Type-C具有以下特点:
1) 最大数据传输速度达到10Gbit/秒,也是USB 3.1的标准;
2) Type-C接口插座端的尺寸约为8.3mm×2.5mm纤薄设计;
3) 支持从正反两面均可插入的“正反插”功能,可承受1万次反复插拔;
4) 配备Type-C连接器的标准规格连接线可通过3A电流,同时还支持超出现有USB供电能力的“USB PD”,可以提供最大100W 的电力。
一般用于数码相机、数码摄像机、测量仪器以及移动硬盘等移动设备
在USB2.0时代,Micro USB口出现了,这是USB 2.0标准的一个便携版本,Mini USB的下一代规格,比早期部分手机使用的Mini USB接口更小。这种接口是我们最常见的接口,我们手机的充电接口就是Micro USB接口。
苹果的自研发USB接口,但是听说苹果要转战TYPE-C
一般的USB,比如type a,typa b都有4根线
其中D+,D-是传输数据使用,但是像MINI USB,MACRO USB会多出一跟ID线,用于OTG
像typc-C,apple lightning接口,引脚很多,我们不列举了
3.USB设备的插入检测和速度检测
在USB设备插到USB 主机的时候,主机会通过上拉电阻去检测插入的是什么设备,一般采用1.5K的上拉电阻,在USB设备端上拉电阻接到D+的时候,那么此设备就是高速或者全速设备,在1.5K的上拉电阻接到D-的时候,那么此设备就是低俗设备,那我们的板子是接到D+,所以在插入到USB主机的时候,我们的板子告诉主机我们是高速或者全速设备。
二. USB枚举过程
再说枚举详细过过程之前,我们先来普及下descriptor的知识
一个设备有且只有一个device descriptor,有1个或者多个configuration descriptor,每个configuration descriptor下面有1个或者多个interface descriptor,每个interface descriptor下面有1个或者多个endpoint descriptor.
1.获取descriptor的封包格式
图片来源USB2.0 9.3
2.Get device descriptor request & response分析
2.1 Get device request的格式
对应的usb封包如下:
2.2 Get device descriptor response
格式如下:
usb封包如下:
3.Get configure descriptor request & response分析
3.1 Get configure descriptor req的格式
usb抓包如下:
3.2 Get configure descriptor response的格式
抓包如下:
3.3 interface的格式
usb的封包的如下:
3.4 endpoint的格式
抓包如下:
三.传输类型
usb详解图USB