本文转载自微信公众号「strongerHuang」,作者strongerHuang。转载本文请联系strongerHuang公众号。
1写在前面
USB:Universal Serial Bus,通用串行总线。
USB最初由英特尔与微软倡导发起,最大的特点是尽可能的实现热插拔和即插即用。
USB总线是差分信号吗?什么是USB 2.0、USB 3.0?什么是低速、全速、高速?什么是Type-A、Type-B、Type-C?
针对这些疑问,本文讲述USB相关的一些基础知识。
2USB发展历程
较早版本
USB 0.7:1994年11月发布。
USB 0.8:1994年12月发布。
USB 0.9:1995年4月发布。
USB 0.99:1995年8月发布。
USB 1.0 RC:1995年11月发布。
USB 1.0:1996年1月发布
数据传输速率为1.5Mbit/s(Low-Speed)。无预测及通过检测功能。仅极少数出现在市场上。
USB 1.1:1998年9月发布
修正1.0版已发现的问题,大部分是关于USB Hubs。最早被采用的修订版。数据传输速率为12Mbit/s(Full-Speed)。
USB 2.0:2000年4月发布
增加更高的数据传输速率480Mbit/s(现在称作Hi-Speed),但受限于BOT传输协议和NRZI编码方式,实际最高传输速度只有35MByte/s左右。
USB OTG(On-The-Go)是USB2.0规格的补充标准。
USB 3.0:2008年11月发布
速度由480Mbps大幅提升到5Gbps,USB 3.0插座通常是蓝色的,并向下兼容USB 2.0。
USB 3.1:2013年7月31日发布
传输速度提升为10Gb/s,比USB3.0的5Gb/s快上一倍,并向下兼容USB 2.0/1.0,电力供应可高达100W。
USB 3.2
在现有的USB Type-C数据在线实现双通道,使用USB 3.2主机连接USB 3.2存储设备,可以实现两条通道10Gb/s的传输速度,理论上也就是相当接近于20Gb/s。
USB 4:2019年9月3日发布
采用Thunderbolt 3协议规格,使Thunderbolt 3设备将能兼容于USB 4,现有3.2及2.0也向下兼容。速度方面加倍来到两条通道总共40Gb/s的传输速度。
3USB版本
USB-IF当前正式的主版本号只有USB 2.0和USB 3.2两个。
(USB-IF:USB Implementers Forum,USB标准化组织)
USB标准化组织主版本只有两个,但现在USB标准中,按照速度等级和连接方式分为以下几种版本:USB 1.0、 1.1、 2.0、 3.0、 3.1、 3.2。
下面给一张图:
准确的说,主版本号除了USB 2.0和USB 3.2,还应该有一个USB4。
上面那张图信息量有点大,你会发现我们学习、开发板上使用的基本都是USB 2.0版本(低速、全速、高速),也是众多嵌入式产品中常用的一种。
4USB接口
现在流行于手机中的一种接口【Type-C】,相信绝大部分人都知道。
Type-C属于USB中一种较新的接口,在这之前其实还有Type-A和Type-B(可能很多人不知道)。
下面给一张图:
你会发现接口的触点有4个的,也有5个的。其中多的那个引脚为USB_ID,主要用于OTG(On-The-Go)主设备和从设备。
OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线并提供电力。
ID悬空被称作为B-Device,充当USB Device。设备的USB Host/USB Device角色可以通过HNP(主机交换协议)切换。
5USB设备识别
USB信号使用分别标记为D+和D- 的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。
因为USB设备类型有很多,同时又做了兼容,因此就需要对不同设备进行识别。
这里讲述一下低速、全速和高速设备的识别原理(官方有手册)。
1).低速和全速设备识别
低速(Low Speed)和全速(Full Speed)设备区分方法比较简单:在设备端有一个1.5k的上拉电阻,当设备插入hub或上电(固定线缆的USB设备)时,有上拉电阻的那根数据线就会被拉高,hub根据D+/D-上的电平判断所挂载的是全速设备还是低速设备。
- 低速设备1.5K上拉电阻位于D-
- 全速设备1.5K上拉电阻位于D+
如下图:
2).高速设备识别
(上面)USB低速和全速的识别比较简单,但只有一对D+和D-数据线,高速设备就不能再像上面那样仅依靠数据线上拉电阻来识别。
高速设备初始是以一个全速设备的身份出现,和全速设备一样,D+线上有一个1.5k的上拉电阻。USB2.0的hub把它当作一个全速设备,之后,hub和设备通过一系列握手信号确认双方的身份。
如上图,hub检测到有设备插入/上电时,向主机通报,主机发送Set_Port_Feature请求让hub复位新插入的设备。设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended 0,即D+和D-全为低电平),并持续至少10ms。
具体识别过程相对复杂,具体可见下面描述:
6USB更多
更多关于USB协议和标准,可进入官方网站了解。
文档:
https://www.usb.org/documents