USB枚举过程 USB Enumeration

USB枚举过程是设备连接到主机后自动完成的,涉及设备状态迁移、信息交互等步骤。主机通过发送请求获取设备信息,如速度类型、设备描述符等,并分配唯一地址。设备描述符包含端点0最大包长度、配置数量等,驱动根据这些信息选择合适的驱动进行挂载,设备进入配置状态后即可使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点 (Interrupt IN Endpoint) 来向主机(Host)报告。在系统启动时,主机轮询它的根hub(R oot H ub )的状态看是否有设备(包括子hub和子hub上的设备)连接。USB总线拓扑结构见下图(最顶端为主机的 R oot H ub ):

 

USB总线拓扑结构
(USB Bus Topology


一旦获悉有新设备连接上来,主 发送一系列的请求(Resqusts)给设备所挂载 的hub,再由hub建立起一条连接 主机(Ho st)和设备(Device) 之间的 通信通道。然后 主机 以控制传输(Control Transfer)的方式,通过端点0(Endpoint 0)对设备 发送各种请求,设备收到主机发来的请求后回复相应的信息, 进行枚举(Enumerat e 操作 所有的USB设备必须支持标准请求(S tandard R equests ), 控制传输方式 (C ontrol T ransfer 和端点0 Endpoint 0


从用户角度来看,枚举过程是自动完成并不可见的。但很多初次使用的设备连接时,系统会弹出说新硬件检测到,设备安装成功,可以使用之类的消息提示框,而且有时还需要用户配合选择安装相关的驱动。


当枚举完成后,这个新添加的设备可在Windows的设备管理器里面看到,当用户删除这个设备/硬件时,系统把这个设备从设备管理器里删除。

对于一般的设备,固件(Firmware)内包含主机所要请求的信息,而有些设备则是完全由硬件来负责响应主机的请求。在主机方面则是由操作系统而非应用程序负责处理相关枚举操作。


枚举步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值