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)
相关推荐
宁小法3 小时前
HTTP 请求中断的深度扩展知识
网络·网络协议·http
---学无止境---3 小时前
Linux中初始化空循环次数和pid位图初始化
linux
言之。4 小时前
ClickHouse 数据更新策略深度解析:突变操作与最佳实践
服务器·数据库·clickhouse
火星数据-Tina4 小时前
LOL实时数据推送技术揭秘:WebSocket在电竞中的应用
网络·websocket·网络协议
东城绝神5 小时前
《Linux运维总结:基于X86_64+ARM64架构CPU使用docker-compose一键离线部署consul 1.21.5容器版集群》
linux·运维·docker·架构·consul
ajassi20005 小时前
开源 Linux 服务器与中间件(三)服务器--Nginx
linux·服务器·开源
wheeldown5 小时前
【Linux】Linux进程间通信:命名管道(FIFO)的模拟实现重要知识点梳理
linux·运维·服务器
Crazy________5 小时前
34部署LNMP架构详细解析
linux·运维·服务器·nginx
tan180°5 小时前
Linux网络HTTP(上)(7)
linux·网络·http