简介
这里主要介绍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
类型:普通的硬件直接叫做Type
Mini
类型:小型版本的叫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
,最大电流500mA
USB3.0
提供更高的5.0Gbit/s
的超高速传输速度,并向下兼容低速1.5Mbits/s
、全速12Mbit/s
和高速480Mbit/s
传输速率,对外提供供电电压为5V
,最大电流900mA
USB3.0
也增加了新的电源管理功能,支持待机、睡眠以及暂定模式,更加省电。USB3.0
是全双工通讯,而USB2.0
是半双工通讯。USB2.0
采用的是NRZI
编码,而USB3.0
采用的是8B/10B
编码。