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)
相关推荐
m0_737302588 分钟前
云服务器深度解析:技术内核、应用场景与上云避坑指南
服务器
Coder个人博客17 分钟前
Linux6.19-ARM64 mm mmap子模块深入分析
大数据·linux·安全·车载系统·系统架构·系统安全·鸿蒙系统
江畔何人初18 分钟前
/etc/profile,.profile,.bashrc三者区分
linux·运维·云原生
会开花的二叉树20 分钟前
Reactor网络库的连接管理核心:Connection类
开发语言·网络·php
会飞的土拨鼠呀29 分钟前
Ubuntu系统缺少 iptables 工具
linux·运维·ubuntu
前端玖耀里29 分钟前
详细介绍Linux命令dig和nslookup
linux·运维·服务器
呱呱巨基29 分钟前
Linux 第一个系统程序 进度条
linux·c++·笔记·学习
星期五不见面37 分钟前
jetson naon super使用 sudo /opt/nvidia/jetson-io/jetson-io.py 界面闪退
linux·运维·服务器
霍格沃兹测试学院-小舟畅学38 分钟前
Playwright处理WebSocket的测试方法
网络·websocket·网络协议
Coder个人博客43 分钟前
Linux6.19-ARM64 mm hugetlbpage子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构