USB 协议层完整数据格式解析
本文深入解析USB协议层的数据格式与传输规则。USB采用一主多从架构,通过标准化数据包实现精准通信。数据包由SOP、SYNC、内容和EOP组成,其中PID标识域包含传输方向和包类型信息。令牌类包实现设备通知功能,分为广播式(SOF)和点对点(OUT/IN/SETUP)两种。完整USB事务包含令牌、数据和握手三个阶段,通过地址+端点号精确定位设备。协议层遵循"位→域→包→事务"的
目录
- 一、前言
- 二、USB 硬件拓扑与一主多从传输核心
- 三、USB 数据包的基础组成格式
- 四、PID 标识域的核心定义与规则
- 五、令牌类包的格式与通知作用
- 六、USB 事务的完整传输流程与层级
- 七、总结
- 八、结尾
一、前言
在上一篇笔记中,我们深入学习了 USB 的电气信号与物理层传输规则,掌握了 USB 的底层通信基础。而 USB 能够实现稳定的一主多从数据交互,核心依托的是协议层制定的标准化数据格式与传输规则。协议层定义了 USB 数据的封装方式、传输流程、交互逻辑,是连接物理层与应用层的核心桥梁。本次笔记将详细讲解 USB 协议层的完整数据格式,理清包、域、事务的层级关系与传输逻辑,吃透 USB 一主多从的通信本质。
二、USB 硬件拓扑与一主多从传输核心
USB 的通信架构本质为标准的一主多从结构,所有的通信交互均由 Host 主机端发起,外设设备仅做响应,对应的 USB 硬件拓扑结构如下图:

在这种一主多从的硬件架构下,核心问题就是:如何精准实现 Host 与多个设备之间有序、无冲突的数据传输?
答案是依靠标准化的协议层数据格式:所有的交互均由 Host 主动发送数据包,数据包中会明确包含「传输目的地址」与「数据传输方向」等关键信息,所有接入的 USB 设备仅接收匹配自身地址的数据包,以此实现多设备的精准通信,杜绝数据交互的混乱。
三、USB 数据包的基础组成格式
USB 中所有的数据交互,都是以数据包(Packet) 为基本单位完成,任何一个完整的 USB 数据包,都有统一的基础组成格式,不存在例外,具体格式如下:
起始信号SOP、同步信号SYNC、数据包内容Packet Content、结束信号EOP。
其中起始信号 SOP 与同步信号 SYNC,在 USB 协议中被统一称作域(Field),是组成数据包的基础单元,完整的数据包格式参考下图:

四、PID 标识域的核心定义与规则
在数据包的核心内容中,PID(Packet ID)包标识域 是最核心的组成部分,它决定了当前数据包的核心属性。
PID 域由固定的8 位二进制数据组成,这 8 位数据中,包含了当前数据包的「传输方向」以及「数据包类型」两大核心信息。值得注意的是,这两类关键信息实际上仅由前 4 位数据就可以完整表示,后 4 位数据是对前 4 位数据的逐位取反,作用是做数据校验,提升 PID 识别的准确性,PID 的结构详情如下图:

4 位有效数据的组合特性决定了,PID 可以组成16 种不同的类型,这 16 种类型又被归纳为 4 个核心种类,形成 4 类 16 种组合的完整规则,对应类型划分如下图:

五、令牌类包的格式与通知作用
在 PID 划分的四类数据包中,令牌类包是 USB 通信的核心控制包,它的核心作用就是起专属的「通知作用」,也是实现一主多从精准通信的关键。
令牌类 PID 的通知对象有明确区分:
SOF令牌包:作用是通知总线上的所有 USB 设备,是一种广播式的通知指令;OUT/IN/SETUP令牌包:作用是精准通知总线上的某个指定 USB 设备,是点对点的专属通知指令。
对于OUT、IN、SETUP这类需要精准通知到具体设备的令牌包,也有固定且完整的组成格式,具体格式参考下图:

以令牌类包的完整发送为例,当 Host 主机需要发送令牌包,通知指定设备执行对应的操作时,会严格遵循固定的封装格式:SOP + SYNC + PID(令牌包) + 目的地(addr+endpoint) + CRC校验 + EOP。
这套格式是 USB 协议层的核心规范,所有令牌类包的传输都遵循此规则,其中addr是设备地址,endpoint是设备端点号,二者结合实现对设备的精准定位。
六、USB 事务的完整传输流程与层级
理解了令牌类包的传输逻辑后,数据类包的传输流程就变得十分清晰,二者的传输逻辑基本一致:只需要将令牌包中的「令牌类 PID」替换为「数据类 PID」,再将数据包中的「目的地地址信息」替换为「具体的传输数据」,即可完成实际业务数据的封装与传输。
当 USB 设备成功接收并解析完 Host 发送的数据包后,会向 Host 主机返回响应数据包,这类响应包为握手类包,其封装格式为:SOP + SYNC + PID(握手类) + EOP。
在 USB 协议中,令牌包、数据包、握手包三者共同组合,就构成了一次完整的 USB 事务(Transaction),也是 Host 与 USB 设备完成一次完整数据交互的最小单位,这也是 USB 实现一主多从数据传输的完整逻辑。
对应到传输阶段,发送令牌包的过程被称作token phase令牌阶段,传输数据包的过程为Data phase数据阶段,回复握手包的过程为hand shake phase握手阶段。
简单来说,USB 的任何一次完整事务交互,都会依次经历三个固定阶段:令牌阶段 → 数据阶段 → 握手阶段。无论哪一方作为数据的收发主体,都需要先通过令牌包指定通信的地址与方向,再传输实际的业务数据,最后通过握手包完成交互确认,缺一不可。
而从 USB 协议的层级关系来看,还有清晰的组成逻辑:二进制位数据组成域、不同的域组合成包、不同类型的包组合成事务;事务的核心就是包含令牌、数据、握手三个传输阶段,层层递进,规范有序。
七、总结
- USB 为一主多从架构,由 Host 主导通信,靠协议层格式实现精准交互;
- 数据包是基础单位,由 SOP、SYNC、内容、EOP 组成,位构成域、域构成包;
- PID 共 8 位,前 4 位标识类型与方向,后 4 位校验,分 4 类 16 种;
- 令牌包是核心控制包,实现精准通知,数据 / 握手包完成交互闭环;
- 一次事务含令牌、数据、握手三阶段,是完整的交互单位。
八、结尾
USB 协议层的标准化数据格式,是 USB 稳定通信的核心基石,理清这套格式与层级关系,就能彻底吃透 USB 的通信逻辑。协议层的规则看似繁杂,实则条理清晰、层层递进,吃透这些内容,是解锁 USB 实战开发的关键。感谢各位的阅读,持续关注本系列笔记,深耕 USB 核心知识点,一起夯实嵌入式通信开发的技术功底!
更多推荐



所有评论(0)