Bootstrap

USB子系统驱动 USB通信协议 Type A、Type A 3.0、Type C

目录

USB硬件基础

Type A引脚说明

Type A 3.0引脚说明

Type C引脚说明

USB驱动你一定需要知道的事


USB硬件基础

在了解LINUX的USB驱动之前,我们肯定是要了解相关硬件内容的,如下给出了三种常用的USB接口。

特性Type A (2.0)Type A 3.0Type C
接口形状长方形,单向插入与 Type A 2.0 相同椭圆形,可双向插入
引脚数量4924
数据传输速率高速模式最高 480 Mbps超高速模式最高 5 Gbps 或 10 Gbps (3.1)高达 40 Gbps (Thunderbolt 3/4)
供电能力5V,最大 500 mA(2.5W)5V,最大 900 mA(4.5W)支持 USB PD,最高 20V,5A(100W)
兼容性向下兼容向下兼容 2.0向下兼容 USB 2.0 和 3.x
是否支持 OTG支持,但功能有限支持,但功能有限支持完整 OTG 功能
使用寿命插拔约 1,500 次插拔约 1,500 次插拔约 10,000 次
多功能性仅支持 USB 信号传输仅支持 USB 信号传输支持视频、音频、数据和供电多种协议
方向性单向插入单向插入双向插入,方便使用
是否支持 Thunderbolt不支持不支持支持 Thunderbolt 3 和 4(部分设备)
典型应用场景鼠标、键盘、打印机、U盘等外设高速存储设备、外接硬盘、摄像头等高速设备智能手机、平板、笔记本充电和数据传输等

Type A引脚说明

USB 2.0 Type A 只有 4 个引脚,定义如下:

引脚编号名称描述功能
1VBUS电源正极 (+5V)提供设备电源
2D-差分数据负极传输 USB 数据
3D+差分数据正极传输 USB 数据
4GND地(电源负极)提供电源回路

但是这个D+跟D-也跟我们常见的差分电压来判断正负不太一样,我们可以看下述内容。

你可以发现D+大于D-时,即为逻辑1,反之则为逻辑0,之前我们在485也说过,主要提高抗干扰能力了,差分电压的作用,至于逻辑电平如何规定,也都是人为遵守的协议了,我们熟知即可。

USB 硬件中,主机端的 D+ 和 D- 线通过 15kΩ 下拉电阻保持默认低电平,用于检测设备是否接入;设备端的 D+ 或 D- 线上接有 1.5kΩ 上拉电阻,用于将线路拉高,通知主机有新设备接入并指示设备的速度类型(D+ 上拉表示全速/高速设备,D- 上拉表示低速设备)。上拉与下拉电阻的配合实现了 USB 接入的自动检测和初步通信初始化。

Type A 3.0引脚说明

USB 3.0 Type A 在 USB 2.0 的基础上增加了 5 个引脚,共 9 个引脚,定义如下:

引脚编号名称描述功能
1VBUS电源正极 (+5V)提供设备电源
2D-差分数据负极USB 2.0 数据传输
3D+差分数据正极USB 2.0 数据传输
4GND地(电源负极)提供电源回路
5StdA_SSRX-超高速接收负极(SuperSpeed RX -)USB 3.0 数据接收
6StdA_SSRX+超高速接收正极(SuperSpeed RX +)USB 3.0 数据接收
7GND_DRAIN屏蔽接地屏蔽和地回路
8StdA_SSTX-超高速发送负极(SuperSpeed TX -)USB 3.0 数据发送
9StdA_SSTX+超高速发送正极(SuperSpeed TX +)USB 3.0 数据发送

:USB 3.0 的引脚使其能够在 SuperSpeed 模式下实现高达 5 Gbps 的数据传输速率。

因此我们可以看到,这个USB3.0其实是一个全双工的协议,因为有TX也有RX而且还是差分,相比之前的USB更强了。

Type C引脚说明

USB Type C 拥有 24 个引脚,支持双向插入,定义如下:

引脚编号名称描述功能
A1GND接地电源回路
A2SSTXp1超高速发送正极(通道 1)USB 3.x 数据发送
A3SSTXn1超高速发送负极(通道 1)USB 3.x 数据发送
A4VBUS电源正极提供电源
A5CC1配置通道 1检测连接方向和电源管理
A6D+差分数据正极USB 2.0 数据传输
A7D-差分数据负极USB 2.0 数据传输
A8SBU1辅助信号通道 1支持音频、视频信号
A9VBUS电源正极提供电源
A10SSRXn1超高速接收负极(通道 1)USB 3.x 数据接收
A11SSRXp1超高速接收正极(通道 1)USB 3.x 数据接收
A12GND接地电源回路
B1GND接地电源回路
B2SSRXp2超高速接收正极(通道 2)USB 3.x 数据接收
B3SSRXn2超高速接收负极(通道 2)USB 3.x 数据接收
B4VBUS电源正极提供电源
B5CC2配置通道 2检测连接方向和电源管理
B6D+差分数据正极USB 2.0 数据传输
B7D-差分数据负极USB 2.0 数据传输
B8SBU2辅助信号通道 2支持音频、视频信号
B9VBUS电源正极提供电源
B10SSTXn2超高速发送负极(通道 2)USB 3.x 数据发送
B11SSTXp2超高速发送正极(通道 2)USB 3.x 数据发送
B12GND接地电源回路

  1. Type C 引脚支持多种协议(如 USB 2.0、3.x、Thunderbolt、DisplayPort 等)。
  2. CC 引脚用于检测插入方向并管理电源(USB PD)。

这里就是TYPE C的引脚了,可以看到,不管是正插,还是反插,你都可以进行通信的,对比之前的USB接口多出那么多引脚,主要是为了正反插以及增加一路传输协议通道,还有兼容USB2.0协议,比如DP之类的显示设备,C口引脚越多,只是功能上面兼容性的提升,并不是传输速率的提升。

USB驱动你一定需要知道的事

  • USB设备接入检测

    • 现象:PC 右下角显示"发现 Android Phone",弹出安装驱动程序的提示。
    • 原因
      • PC 的 USB 口通过内部硬件机制(D+/D- 线路电平变化)检测到新设备的接入。
      • USB 设备内置的上拉电阻(1.5KΩ)将 PC USB 口的 D+/D- 拉高,通知主机有设备接入。
  • 接入后的初步识别

    • 过程
      • PC 上的 USB 总线驱动程序负责与新接入的设备通信,询问设备类型。
      • 设备通过标准协议返回自己的信息(设备描述符)。
    • 结果
      • 即使没有安装具体的设备驱动程序,PC 的总线驱动程序也能初步识别设备(如显示“Android Phone”)。
  • 设备驱动程序的加载

    • 总线驱动程序:负责检测设备、识别设备类型、分配编号并为设备找到合适的驱动程序。
    • 设备驱动程序:由用户安装或系统自动加载,用于支持设备的具体功能。
  • USB设备的识别过程

    • 标准协议
      • 所有 USB 设备必须遵守 USB 规范。
      • 当 PC 发送"你是什么"的请求时,设备需按照固定格式返回自己的描述符信息。
    • 描述符内容:包括设备类型、制造商、产品 ID 等,用于分类和识别设备。
  • 设备编号分配

    • 默认编号:新接入的 USB 设备初始编号为 0,PC 通过编号 0 与设备通信。
    • 分配新编号:总线驱动程序检测设备后,为其分配唯一的编号,用于后续通信。
  • 多设备分辨

    • 每个接入的 USB 设备都有唯一的编号(地址)。
    • PC 通过发送包含设备编号的命令来与指定设备通信。

;