参考资料:
- 《圈圈教你玩USB》
一、物理框架简介
1. 物理层次结构
- 主机控制器:负责总线管理,位于PC或设备中
- 集线器(Hub):扩展USB端口
- USB设备:连接到主机或集线器的终端设备
2. 速度等级
速度等级 | 速率 | USB协议标准 | 适用设备 |
低速(Low Speed) | 1.5 Mbps | USB 1.0/1.1 | 键盘、鼠标、游戏控制器、传统HID设备 |
全速(Full Speed) | 12 Mbps | USB 1.0/1.1 | 声卡、MIDI设备、低分辨率摄像头、低速打印机、旧式扫描仪 |
高速(High Speed) | 480 Mbps | USB 2.0 | 存储设备(U盘)、高清摄像头、外置硬盘、打印机、扫描仪、网络适配器 |
超高速(SuperSpeed) | 5 Gbps | USB 3.0/3.1 Gen1 | 高速存储设备、视频采集设备、外置SSD、高清摄像头、高分辨率显示器 |
超高速+(SuperSpeed+) | 10 Gbps | USB 3.1 Gen2 | 高性能外置SSD、视频采集卡、4K显示器、高性能存储设备 |
超高速++(SuperSpeed++) | 20 Gbps | USB 3.2 Gen2×2 | 高端外置存储阵列、专业视频设备、高刷新率4K/8K显示器 |
超超高速(USB4) | 40 Gbps | USB4 | 外置GPU、高性能扩展坞、高分辨率多显示器、Thunderbolt兼容设备 |
3. 拓扑结构

- 树状结构,最多支持127个设备
- USB Host:它跟处理器相连,处理器通过USB Host跟各类USB设备通信。USB Host中集成有一个root hub
- USB Device:这分为两类设备
- Hub:用来扩展USB接口
- Function:就是普通的USB设备,比如U盘、声卡等
二、软件框架简介
下图说明USB系统各组件之间的层次结构和数据流向
1. 用户空间:
- 应用程序通过两种方式访问USB设备:
- libusb库(用于直接访问USB设备)
- 设备文件(如HID设备的/dev/input/eventX)
2. 内核空间:
- USB设备驱动:负责特定类型USB设备的功能实现
- USB核心层:提供统一的接口和服务,管理USB总线
- USB主机控制器驱动:根据控制器类型(OHCI/UHCI/EHCI等)实现具体操作
3. 硬件层:
- USB主机控制器:主板上的物理控制器芯片
- USB设备:连接到系统的物理设备