USB --SETUP --STATUS阶段

每个 USB 控制传输包含三个阶段:

阶段 说明
1. SETUP 发送请求(如 SET_ADDRESS、SET_CONFIGURATION)
2. DATA 可选,发送或接收数据
3. STATUS 确认完成,通常是一个空包
  1. 主机 → 设备: SETUP (SET_ADDRESS, wValue=0x13) → 告诉设备:"你的新地址是 0x13"

  2. 主机 → 设备: OUT Token (Addr=0x13, Endp=0x00) → 这是 STATUS 阶段的开始

  3. 设备 → 主机: DATA1 (空数据,CRC=0x0000) → 表示"我已收到并处理了请求"

  4. 主机 → 设备: ACK (隐含,不显示) → 确认收到 STATUS 包

类型 是否有 DATA 阶段 STATUS 阶段
GET_DESCRIPTOR ✅ 有 DATA(读取) ✅ 有 STATUS(IN)
SET_ADDRESS ❌ 无 DATA ✅ 有 STATUS(OUT + DATA1)
SET_CONFIGURATION ❌ 无 DATA ✅ 有 STATUS(OUT + DATA1)
SET_INTERFACE ❌ 无 DATA ✅ 有 STATUS(OUT + DATA1)
相关推荐
阿巴~阿巴~12 小时前
自定义协议设计与实践:从协议必要性到JSON流式处理
服务器·网络·网络协议·json·操作系统·自定义协议
虚伪的空想家12 小时前
KVM的ubuntu虚机如何关闭安全启动
linux·安全·ubuntu
测试界的海飞丝18 小时前
10道软件测试面试题及其答案:
服务器·测试工具·职场和发展
独行soc18 小时前
2025年渗透测试面试题总结-264(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
t1987512818 小时前
在Ubuntu 22.04系统上安装libimobiledevice
linux·运维·ubuntu
skywalk816318 小时前
linux安装Code Server 以便Comate IDE和CodeBuddy等都可以远程连上来
linux·运维·服务器·vscode·comate
@游子19 小时前
内网渗透笔记-Day5
运维·服务器
晚风吹人醒.19 小时前
缓存中间件Redis安装及功能演示、企业案例
linux·数据库·redis·ubuntu·缓存·中间件
REDcker19 小时前
tcpdump 网络数据包分析工具完整教程
网络·测试工具·tcpdump
Yawesh_best19 小时前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全