简介
这里主要介绍USB一些会涉及到的基本概念,后续会慢慢的补充跟完善。
USB主控制器种类
| 种类 | 对应的USB的协议和支持的速率 | 创立者 | 功能划分 | 常用于 |
|---|---|---|---|---|
| OHCI | USB 1.1=Low Speed和Full Speed | Compaq,Microsoft和National Semiconductor | 硬件功能 > 软件功能⇒硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单 | 扩展卡,嵌入式开发板的USB主控 |
| UHCI | USB 1.1=Low Speed和Full Speed | Intel | 软件功能 > 硬件功能⇒软件的任务重,可以使用较便宜的硬件的USB控制器 | PC端的主板上的USB主控 |
| ECHI | USB 2.0=High Speed | Intel | 定义了USB 2.0主控中所要实现何种功能,以及如何实现 | 各种USB 2.0主控 |
| xHCI | USB 3.0=Super Speed | Intel | 定义了USB 3.0主控中所要实现何种功能,以及如何实现 | 各种USB 3.0主控 |
关于速度,内核中include/uapi/linux/usb/ch9.h有相关的枚举变量来表示

USB的线缆
USB2.0只有4根线,分别是VBUS,D+,D-和GND。USB3.0的线缆是9根线,除过包括USB2.0的四根线外,还包括RX−,RX+,TX−,TX+和GND_DRAIN五根线。
USB1.x/2.0接口的引脚定义及颜色
| 引脚 | 名称 | 电缆颜色 | 描述 |
|---|---|---|---|
| 1 | VBUS | Red | +5 V,电源 |
| 2 | D− | White | Data −,数据线 |
| 3 | D+ | Green | Data +,数据线 |
| 4 | GND | Black | Ground,接地 |
注意:引脚号跟下面要介绍的USB物理接口是相对应的。
USB3.0接口及以上的引脚定义及颜色
| 引脚 | A型连接器 | B型连接器 | 线缆颜色 | 描述 |
|---|---|---|---|---|
| 1 | VBUS | 红色 | 红色 | 供电 |
| 2 | D- | D- | 白色 | 2.0数据差分对 |
| 3 | D+ | D+ | 绿色 | 2.0数据差分对 |
| 4 | GND | GND | 黑色 | 电源地 |
| 5 | StdA_SSRX− | StdB_SSTX− | 蓝色 | 高速数据差分对-接收 |
| 6 | StdA_SSRX+ | StdB_SSTX+ | 黄色 | 高速数据差分对-接收 |
| 7 | GND_DRAIN | N/A | N/A | 信号地 |
| 8 | StdA_SSTX− | StdB_SSRX− | 紫色 | 高速数据差分对-发送 |
| 9 | StdA_SSTX+ | StdB_SSRX+ | 橙色 | 高速数据差分对-发送 |
注意:可以看到这里的1 2 3 4引脚其实是兼容了之前的USB2.0
USB2.0 OTG
OTG 是 On-The-Go 的缩写,支持 USB OTG 功能的 USB 接口既可以做 HOST, 也可以做 DEVICE。而接口怎么知道自己是主是从,则是通过ID线判断。像Mini USB或者是Micro USB有带ID线的接口就可以做otg。
Mini/Micro-A/B引脚定义以及颜色
| 引脚 | 名称 | 线缆颜色 | 描述 |
|---|---|---|---|
| 1 | VBUS | 红色 | +5V供电 |
| 2 | D- | 白色 | 差分数据- |
| 3 | D+ | 绿色 | 差分数据+ |
| 4 | ID | N/A | ID高电平:从机 ID低电平:主机 |
| 5 | GND | 黑色 | 地 |
USB的物理接口
USB的接口类型,根据接口形状不同,主要可以分为三大类:
TYPE类型:普通的硬件直接叫做TypeMini类型:小型版本的叫Mini迷你的Micro类型:更加小的,叫做Micro微小的
USB 2.0 中的 Type-A

上面这种就是最常见的 USB Type-A 接口, 我们一般直接叫做USB接口.

USB 2.0 中的 Type-B

上面这种是USB 2.0 Type-B, 常见于打印机连接计算机所采用的数据线, 通常一端是 Type-B 连接打印机, 另一端 Type-A 连接计算机.

USB 2.0 中的 Mini USB
Mini USB 是我们通常叫法, 其实严谨的叫法应该是 USB 2.0 Mini-B, 因为还有一个 USB 2.0 Mini-A, 不过因为还未推广便已被淘汰, 所以市面上所有的 Mini USB 都是USB 2.0 Mini-B 。

这种连接线常见于早期的移动硬盘, MP3, 智能手机等。

(这里五个引脚前面介绍OTG的时候已经讲过了)
USB 2.0 中的 Micro USB
同样 Micro USB 是我们通常叫法, 严谨的叫法是 USB 2.0 Micro-B, 也是因为还有一个 USB 2.0 Micro-A, 不过几乎看不到.

这种接口相比 Mini USB 要更加小巧, 在 USB Type-C 普及之前, 几乎市面上所有的安卓机采用此接口。

USB 3.0 中的 Type-A

上面这种也是 USB TYPE-A 接口, 不过因为 USB 3.0 标准的推出, 为了方便区分 USB 2.0, 所以接口的颜色通常使用蓝色. 所以如果你的主板背板有黑色和蓝色两种 USB 接口, 通常表示黑色的是 USB2.0, 而蓝色的是 USB3.0或更高标准。

USB 3.0 中的 Type-B

USB 3.0 Type-B 常见于连接 USB 3.0 的 HUB, 和 USB 3.0 的移动硬盘盒。

USB 3.0 中的 Micro-B

USB 3.0 Micro-B 常见于 USB 3.0 的移动硬盘, 例如希捷的3.5外置移动硬盘。

USB Type-C

上面这种就是 USB Type-C了, 方便好用, 正插反插都可以。这里还要提醒一点, USB Type-C 只是一个物理接口, 并不等于它的传输速度, 例如最早的 NOKIA N1 平板电脑所使用的 USB Type-C 传输速率仅相当于 USB 2.0。但是目前市面上采用 USB Type-C 接口的设备一般至少都是 USB3.1 Gen1 传输标准。

其他被抛弃的接口
看看就好
| 类型 | 图片 |
|---|---|
| Mini-A | ![]() |
| Mini-AB | ![]() |
| Micro-A | ![]() |
| Micro-AB | ![]() |
USB2.0 与 USB3.0的辨认方法
颜色
USB3.0通常是蓝色基座
图标
USB2.0的标志就是和USB1.1的标志基本上没啥区别,还是以前的那个样子,使用黑色颜色用标识

USB3.0它有一个SS标志,意思是SuperSpeed,部分的设备上面会有这个标志,且使用蓝色进行标识:

比如上面提到的

触点
USB2.0仅具备4个金属触点 (除了支持otg功能的接口有一条ID线),USB3.0则是9个触点


USB速度
吐槽一句:关于3.0的叫法是真的乱
| 版本 | 带宽 | 编码 | 理论速度 | 速率称号 | USB标识 |
|---|---|---|---|---|---|
| USB1.0 | 1.5Mbps | 低速(Low-Speed) | ![]() |
||
| USB1.1 | 12Mbps | 8b/8b | 1.5MB/s | 全速(Full-Speed) | ![]() |
| USB2.0 | 480Mbps | 8b/8b | 60MB/s | 高速(High-Speed) | ![]() |
| USB3.0 USB3.1 Gen1 |
5Gbps | 8b/10b | 500MB/s | 超高速(Supper-Speed) | ![]() |
| USB3.1 Gen2 USB3.2 Gen1 |
10Gbps | 128b/132b | 1280MB/s | 超高速+(Supper-Speed+) | ![]() |
| USB3.2 Gen2 | 20Gbps | 超高速+(Supper-Speed+) | ![]() |
USB4.0规范
USB4规范已于2019年9月3日正式公布, 规格和草案阶段相同。 归纳如下:
- 物理接口只有
USB Type-C一种 - 传输速率
40 Gbps - 向下兼容
USB 3.2 / USB 2.0和Thunderbolt 3
USB2.0硬件热插拔原理
USB主机是如何检测到设备的插入呢?
首先在USB集线器的每个下游端口的D+ D-上,分别接了一个15K欧姆的下拉电阻到地,这样在集线器的端口空悬的时候,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻,对于全速和高速设备,上拉电阻是接在D+上,而低速设备则是上拉电阻接在D-上。
这样当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了,集线器检测到这个状态后,他就报告给USB主控制器(或者是通过他的上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。USB高速设备先是被识别为全速设备,然后通过host和device两者之间的确认,再切换到高速模式的。

RootHub
RootHub是USB主控制器内嵌的一个硬件,主要来做热插拔检测的工作。
usb3.0和2.0的区别-协议速率电源等其性能对比
USB2.0具备480Mbit/s的高速传输速率,向下兼容低速1.5Mbit/s和全速12Mit/s,对外提供供电电压为5V,最大电流500mAUSB3.0提供更高的5.0Gbit/s的超高速传输速度,并向下兼容低速1.5Mbits/s、全速12Mbit/s和高速480Mbit/s传输速率,对外提供供电电压为5V,最大电流900mAUSB3.0也增加了新的电源管理功能,支持待机、睡眠以及暂定模式,更加省电。USB3.0是全双工通讯,而USB2.0是半双工通讯。USB2.0采用的是NRZI编码,而USB3.0采用的是8B/10B编码。









