附一个很好的枚举过程的详细流程:
◆? 用户将一个 USB 设备插入 USB 端口,主机为端口供电,设备此时处于
上电状态。
? ◆ 主机检测设备。
? ◆ 集线器使用中断通道将事件报告给主机。
? ◆ 主机发送 Get_Port_Status(读端口状态)请求,以获取更多的设备信息。
? ◆ 集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是
对 Get_Port_Status 请求的响应。
? ◆ 主机发送 Set_Port_Feature(写端口状态)请求给集线器,要求它复位
端口。
? ◆ 集线器对设备复位。
? ◆ 主机使用 Chirp K 信号来了解全速设备是否支持高速运行。
? ◆ 主机发送另一个 Get_Port_Status 请求,确定设备是否已经从复位状态
退出。
? ◆ 设备此时处于缺省状态,且已准备好在零端点通过缺省通道响应主机控
制传输。缺省地址为 00h,设备能从总线获取高达 100mA 的电流。
? ◆ 主机发送 Get_Descriptor(读设备描述符)报文,以便确定最大数据包
大小。设备描述符的八个字节是 bMaxPacketSize。
? ◆ 通过发送 Set_Address(写地址)请求,主机分配地址,设备此时处于
地址状态。
? ◆ 主机发送 Get_Descriptor 报文,以获取更多的设备信息。主机通过发送
描述符响应设备请求,随后发送全部的次级描述符。
评论0
最新资源