USB子系统
USB硬件基础
在了解LINUX 的USB驱动之前,我们肯定是要了解相关硬件内容的,如下给出了三种常用的USB接口。
特性 |
Type A (2.0) |
Type A 3.0 |
Type C |
接口形状 |
长方形,单向插入 |
与 Type A 2.0 相同 |
椭圆形,可双向插入 |
引脚数量 |
4 |
9 |
24 |
数据传输速率 |
高速模式最高 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 个引脚,定义如下:
引脚编号 |
名称 |
描述 |
功能 |
1 |
VBUS |
电源正极 (+5V) |
提供设备电源 |
2 |
D- |
差分数据负极 |
传输 USB 数据 |
3 |
D+ |
差分数据正极 |
传输 USB 数据 |
4 |
GND |
地(电源负极) |
提供电源回路 |
但是这个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 个引脚,定义如下:
引脚编号 |
名称 |
描述 |
功能 |
1 |
VBUS |
电源正极 (+5V) |
提供设备电源 |
2 |
D- |
差分数据负极 |
USB 2.0 数据传输 |
3 |
D+ |
差分数据正极 |
USB 2.0 数据传输 |
4 |
GND |
地(电源负极) |
提供电源回路 |
5 |
StdA_SSRX- |
超高速接收负极(SuperSpeed RX -) |
USB 3.0 数据接收 |
6 |
StdA_SSRX+ |
超高速接收正极(SuperSpeed RX +) |
USB 3.0 数据接收 |
7 |
GND_DRAIN |
屏蔽接地 |
屏蔽和地回路 |
8 |
StdA_SSTX- |
超高速发送负极(SuperSpeed TX -) |
USB 3.0 数据发送 |
9 |
StdA_SSTX+ |
USB 3.0 数据发送 |
注 :USB 3.0 的引脚使其能够在 SuperSpeed 模式下实现高达 5 Gbps 的数据传输速率。
因此我们可以看到,这个USB3.0其实是一个全双工的协议,因为有TX也有RX而且还是差分,相比之前的USB更强了。
Type C引脚说明
USB Type C 拥有 24 个引脚,支持双向插入,定义如下:
引脚编号 |
名称 |
描述 |
功能 |
A1 |
GND |
接地 |
电源回路 |
A2 |
SSTXp1 |
超高速发送正极(通道 1) |
USB 3.x 数据发送 |
A3 |
SSTXn1 |
超高速发送负极(通道 1) |
USB 3.x 数据发送 |
A4 |
VBUS |
电源正极 |
提供电源 |
A5 |
CC1 |
配置通道 1 |
检测连接方向和电源管理 |
A6 |
D+ |
差分数据正极 |
USB 2.0 数据传输 |
A7 |
D- |
差分数据负极 |
USB 2.0 数据传输 |
A8 |
SBU1 |
辅助信号通道 1 |
支持音频、视频信号 |
A9 |
VBUS |
电源正极 |
提供电源 |
A10 |
SSRXn1 |
超高速接收负极(通道 1) |
USB 3.x 数据接收 |
A11 |
SSRXp1 |
超高速接收正极(通道 1) |
USB 3.x 数据接收 |
A12 |
GND |
接地 |
电源回路 |
B1 |
GND |
接地 |
电源回路 |
B2 |
SSRXp2 |
超高速接收正极(通道 2) |
USB 3.x 数据接收 |
B3 |
SSRXn2 |
超高速接收负极(通道 2) |
USB 3.x 数据接收 |
B4 |
VBUS |
电源正极 |
提供电源 |
B5 |
CC2 |
配置通道 2 |
检测连接方向和电源管理 |
B6 |
D+ |
差分数据正极 |
USB 2.0 数据传输 |
B7 |
D- |
差分数据负极 |
USB 2.0 数据传输 |
B8 |
SBU2 |
辅助信号通道 2 |
支持音频、视频信号 |
B9 |
VBUS |
电源正极 |
提供电源 |
B10 |
SSTXn2 |
超高速发送负极(通道 2) |
USB 3.x 数据发送 |
B11 |
SSTXp2 |
超高速发送正极(通道 2) |
USB 3.x 数据发送 |
B12 |
GND |
接地 |
电源回路 |
注:
1. Type C 引脚支持多种协议(如 USB 2.0、3.x、Thunderbolt、DisplayPort 等)。
2. CC 引脚用于检测插入方向并管理电源(USB PD)。
这里就是TYPE C的引脚了,可以看到,不管是正插,还是反插,你都可以进行通信的,对比之前的USB接口多出那么多引脚,主要是为了正反插以 传输协议通道,还有兼容USB2.0协议,比如DP之类的显示设备,C口引脚越多,只是功能上面兼容性的提升,并不是传输速率的提升。
PC 通过发送包含设备编号的命令来与指定设备通信。
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 通过发送包含设备编号的命令来与指定设备通信。
type接口
Type-C凭借正反插设计与高速传输能力,正重塑电子设备的连接未来。其对称引脚布局与智能CC引脚协作,不仅实现高效供电与数据互通,更推动PD协议普及,让电脑、手机、影音设备迈向一线通用的新时代,真正终结接口混乱时代。
数据传输速度:Type-C 的高速优势
在数据传输方面,Type-C 接口展现出了惊人的速度优势。它支持 USB 3.1、USB 3.2、USB4 等高速数据传输标准,最高可达 40Gbps(USB4 20V/5A)。这意味着你可以在短时间内传输大量文件,如高清电影、大型文档等,大大提高了工作效率。例如,传输一部 4K 电影可能只需几分钟,而传统的 USB 接口则需要更长的时间。
相比之下,传统的 USB 接口如 USB-A,通常支持 USB 2.0 或 USB 3.0 标准,数据传输速度相对较慢。USB 2.0 最高为 480Mbps,USB 3.0 最高为 5Gbps。虽然也能满足日常的基本数据传输需求,但在处理大文件时,速度的差距就明显显现出来了。
功率传输能力:Type-C 的强大供电
Type-C 接口在功率传输方面同样表现出色,它支持 USB Power Delivery(USB PD)标准,最高可提供 100W 的功率(20V/5A)。这使得 Type-C 接口不仅能够为各种设备快速充电,还能满足笔记本电脑等大功率设备的充电需求。例如,一些轻薄笔记本电脑可以直接通过 Type-C 接口进行充电,无需额外的电源适配器,让出行更加便捷。
而 USB-A 接口通常只能提供最高 5V/2.4A 的功率,充电速度相对较慢。对于一些大功率设备,USB-A 接口的供电能力就显得有些力不从心了。不过,对于一些低功耗的设备,如手机、平板电脑等,USB-A 接口也能满足基本的充电需求。
视频输出功能:Type-C 的一体化优势
部分 Type-C 接口还支持视频输出功能,可直接连接显示器或投影仪等设备,无需额外的转接器,实现了数据传输与视频输出的一体化。这对于需要频繁进行多媒体展示的用户来说,无疑是一个巨大的便利。例如,你可以直接将手机或平板电脑通过 Type-C 接口连接到大屏幕上,进行演示文稿的展示或者观看视频,无需繁琐的转接步骤。
传统的 USB 接口一般不具备直接的视频输出功能,需要借助特定的转接设备才能实现视频传输。这在一定程度上增加了使用的复杂性和成本。
Type-C 接口:兼容与拓展的完美结合
Type-C 接口具有良好的兼容性,可以兼容 USB 2.0、USB 3.0、USB 3.1 等标准。这意味着你可以在不同标准的设备之间进行数据传输,无需担心兼容性问题。此外,通过使用转接器,Type-C 接口还可以与 USB-A 接口等传统接口进行连接,从而在一定程度上解决了新旧设备之间的兼容问题。例如,你可以使用一个 Type-C 转 USB-A 的转接器,将你的新型 Type-C 设备与老式的 USB-A 接口设备连接起来,实现数据传输或者充电功能。
1. Type-C接口概述
【Type-C插头简介】
USB Type-C以紧凑设计和正反插特性著称,支持高速数据传输及供电。 USB Type-C以其小型化接口设计和灵活的使用方式在数据传输与供电领域占有重要地位。它不仅支持正反插,还遵循USB 3.1标准,提供高达5Gbps或10Gbps的传输速度,同时拥有100W的强大供电能力。这一接口类型正逐渐成为未来电子设备的标配。
2. 接口引脚和连接
2.1. 【接口引脚详解】
TYPE-C拥有对称的引脚设计,实现正反插功能,支持高速数据传输与电源供给。引脚布局保证了Type-C的正反插功能与数据及电源传输的高效率。 查看下图,我们可以清晰地看到TYPE-C接口的引脚布局。这些引脚各司其职,且由于中心点对称的设计,使得接口支持正反插功能。具体来说,TX/RX是两组差分信号引脚,它们主要负责数据传输。而CC1和CC2则是两个至关重要的引脚,它们不仅用于探测连接并区分DFP与UFP的角色,还能配置Vbus以支持USB Type-c和USB Power Delivery两种模式。此外,当线缆内嵌入芯片时,一个CC引脚会传输信号,另一个则变为供电Vconn。同时,GND和VBus各有四个引脚,从而确保了强大的传输功率。最后,D+和D-引脚则用于兼容USB旧有标准。
2.2. 【工作主从机连接详解】
描述了Type-C接口的连接机制,角色判断及电源管理。 在TYPE-C接口的工作中,主从机的连接方式至关重要。DFP(Downstream Facing Port,下游面对端口)作为主机,而UFP(Upstream Facing Port,上游面对端口)则作为从机。值得注意的是,DRP(Dual-Role Port,双角色端口)既可以作为主机,也可以作为从机,其角色取决于所连接的设备。在连接过程中,DFP的CC引脚会通过上拉电阻Rp进行探测,而UFP则通过下拉电阻Rd进行响应。当两者未连接时,DFP的VBUS引脚无输出。然而,一旦CC端相连,DFP的CC引脚便能检测到UFP的下拉电阻Rd,从而确认连接已建立。此时,DFP会打开VBus开关,开始向UFP供电。同时,通过检测哪个CC引脚(CC1或CC2)首先检测到下拉电阻,可以确定接口的插入方向,并相应地切换RX/TX引脚的角色。
2.3. 【线缆中的CC引脚配置】
CC引脚在无芯片与含芯片线缆中配置不同,影响供电与信号传输。 在实际应用中,不含芯片的线缆通常仅包含一根CC线。而含有芯片的线缆则有所不同,它包含一根CC线、一根Vconn线。Vconn线的作用是为线缆中的芯片提供电源,电压通常为3.3V或5V。值得注意的是,在这种配置下,CC端并不连接下拉电阻Rd,而是连接了下拉电阻Ra,其阻值范围在800-1200欧姆之间。
3. Type-C新增功能与应用
3.1. 【新增功能介绍】
Type-C引入了电流模式检测,增强了设备间供电协议和控制能力。 USB Type-C不仅提供了数据传输的通道,还新增了电流检测与使用功能。它定义了三种电流模式:默认的USB电源模式,提供500mA和900mA的电流;1.5A模式;以及3.0A模式。这些电流模式通过CC管脚进行传输和检测。对于需要广播电流输出能力的DFP设备,可以通过调整不同值的CC上拉电阻Rp来实现;而对于UFP设备,则通过检测CC管脚上的电压值来获取对方DFP的电流输出能力。
3.2. 【推动Power Delivery协议普及】
Type-C与PD协议结合推动了不同设备间的统一供电和快速充电。 USB Type-C推动了Type-C接口在充电应用中的普及,统一了电子设备的充电规范,对电池直充技术的发展具有积极作用。展望未来,我们有理由相信,无论是电脑还是手机的充电线,甚至是音频视频线,都将逐渐统一到TYPE-C接口,实现真正的一线通用。
3.3 Type-C供电
USB Type-C 通过整合被称作 USB 供电(USB PD)的动态电源系统,进一步扩大了 USB适用范围。USB Type-C 不但扩展了数据传输功能,还可传输高达 20 伏、5 安和 100 瓦的电力, 支持对更多类型的设备进行充放电。USB PD 拥有智能且灵活的系统级电力管理能力,支持双向充电 — 可为连接的供电(供应电力)和用电(吸收电力)设备切换供电方向。这种动态供电使 USB Type-C 得以有可能借助 ALT 模式来支持其他的视频和音频信号标准,例如 DisplayPort 或 Thunderbolt。
3.4 PD快充原理
PD(Power Delivery)协议简单来说是一种快速充电标准。
电压和电流的调整 - PD充电协议通过调整电压和电流来提供不同的充电功率。根据设备的需要,PD充电器可以提供5V、9V、15V、20V等不同的电压,以及0.5-2A、1-3A、3-5A5-10A等不同的电流。通过同时调整电压和电流,可以实现更高的充电功率,最高可达100W。
通信协议 - PD充电协议采用了一种基于USB-C端口的通信协议,通过这种方式实现了充电器与设备之间的信息交换。在充电过程中,设备会向充电器发送请求,要求提供不同的电压和电流。充电器接收到请求后,会根据设备的需求调整输出电压和电流。这种通信方式使得充电过程更加智能和高效。
PD协议包含PD协议的Type-C 系统从Source到SINK的系统框图大致如下:
Source和Sink各有一个PD芯片:
PD系统框图
首先,在设备之间建立一个端到端的 USB Type-C 连接,并且通过 CC(配置通道)线来确定 电缆方向。USB 连接初始化从 PD 开始。作为首要任务,PD 会通过 PD 电路与任何一条全功能 Type-C 电缆(其中带有电子标记芯片)之间的电子连接来了解该条电缆的功能。这种电子芯片 带有电缆配置信息,上面携带的电流承载能力(3A 或 5A)、性能(USB 2.0、USB 3.1 Gen 1 或 Gen 2)和厂商标识(USB Type-C 电缆ID 函数)等信息可支持进行电子识别和配置。
识别电缆之后,PD电路及所连接的设备就会使用 CC1 / CC2 专用线路来发送和接收 BMC(双相 标记编码)消息,并开始进行电力协商。USB Type-C 设备使用针对电源的六个固定电源配置文 件之一进行配置(下图 )。设备会在给定时间内与 PD电路“协商”其所需的电源配置并请求特 定的电力级别,可变电流高达 5 A、可变电压高达 20 V。USB PD 动态管理电力分配,调整电压 和电流,并为连接的所有设备确定供电/用电角色。
图 USB Type-C 电源配置文件
3.3. 【设备角色分类】
描述了Type-C接口的使用场景及不同设备角色的功能特点。 DFP,即Downstream Facing Port,意为下行端口,其角色类似于Host。这种端口不仅提供VBUS电源,还能进行数据传输。一个典型的DFP设备就是电源适配器,因为它始终扮演着供电的角色。UFP,即Upstream Facing Port,指的是上行端口,其角色类似于Device。这类端口从VBUS获取电力,并能够进行数据传输。常见的UFP设备包括U盘和移动硬盘,它们总是处于被读取数据和获取电力的状态。DRP,即Dual Role Port,意为双角色端口。这种端口既具备DFP的功能,又具备UFP的功能,甚至能在两者之间动态切换。电脑就是一个典型的DRP设备,它既可以作为USB的主机为其他设备供电,也可以作为被充电的设备。