USB枚举过程

主机 (Windows)                                                                                设备

1.集线器             --------------(power state(100mA))--------------》 开机

2.集线器检测设备是否连接

3.获取新设备         -------------( 发送Get Port Status)---------------》

4.检测低速/高速     -------------(检测线上电压)------------------------》

5.集线器复位设备   -------------(Set Port Feature)--------------------》  复位

6.了解设备是否支持全速----------(检测线上电压)------------------------》

7.主机与设备之间建立路径--------(get Port Status)--------------------》

8.请求管道的最大信息包尺寸------(get Descriptor)---------------------》 设备返回设备描述符前8个字节

9给设备分配地址      -------------(set address)-----------------------》

10.了解设备能力-----------------(get descriptor)---------------------》 返回 描述符(设备 配置 接口 端点.....)

11.主机加载设备驱动程序

12.驱动程序发送带配置号的请求---(set  configuration)-----------------》

至此设备进人配置状态设备的接口也就被使能

时间: 2024-10-10 08:26:54

USB枚举过程的相关文章

基于STM32的USB枚举过程学习笔记

源:基于STM32的USB枚举过程学习笔记 基于STM32的USB枚举过程学习笔记(一) 基于STM32的USB枚举过程学习笔记(二) 基于STM32的USB枚举过程学习笔记(三) 基于STM32的USB枚举过程学习笔记(四) 基于STM32的USB枚举过程学习笔记(五)

USB枚举过程【转】

转自:http://blog.csdn.net/myarrow/article/details/8270029 1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序.调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了. USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告.在系统启动时,主机轮询它的

USB枚举过程的详细流程

用户将一个USB设备插入USB端口,主机为端口供电,设备此时处于上电状态.主机检测设备.1>Hub使用中断通道将事件报告给Host.2>Host发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息.3>集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status请求的响应.4>主机发送Set_Port_Feature(写端口状态)请求给集线器,要求它复位端口. 5>集线器对设备复位.6>Host使用Chirp K信

USB枚举过程(2)

用bus hound 得到的数据 GET MAX LUN 命令 接下来用到的是UFI  SCSI

图解USB协议之一 枚举过程【转】

转自:http://blog.csdn.net/myarrow/article/details/8270060 0. 枚举流程 • 连接了设备的 HUB 在 HOST 查询其状态改变端点 时返回对应的 bitmap,告知HOST 某个PORT状态发生了改变.    • 主机向 HUB 查询该PORT的状态,得知有设备连接,并知道了该设备的基本特性.     • 主机等待(至少 100mS)设备上电稳定,然后向 HUB 发送请求,复位并使能该PORT.    • HUB执行PORT复位操作,复位完

LPC1768的USB使用-枚举过程

枚举过程如下 #ifndef __USBCORE_H__ #define __USBCORE_H__ /* USB端点0 发送数据结构体*/ typedef struct _USB_EP_DATA { U8 *pData; U16 Count; } USB_EP_DATA; /* USB全局变量 */ extern U16 USB_DeviceStatus; extern U8 USB_DeviceAddress; extern U8 USB_Configuration; /* 端点0输出数据缓

usb枚举

一,概述 现在很多的主控上都带有USB的功能,但是对于初学者来说,这方面应用还是比较棘手,因为usb的不但固件程序需要编写,PC端的驱动也要编写,而且驱动写好了还要写个上位机才能看出效果.这样调试起来十分困难,建议从USB的键盘,鼠标开始做,了解清楚了,再做自己的协议就比较简单了. USB的概念历史啥的这里就不说了.我们先不管具体的数据包格式,这一节先从整个包的层面上简单的说,过程是这样的, ---------------------------------------设备插入---------

linux usb枚举过程分析之守护进程及其唤醒【转】

转自:http://blog.csdn.net/xuelin273/article/details/38646765 usb热插拔,即usb设备可以实现即插即用,像U盘一样,插到电脑里就可以用,不用时可以直接拔除,这个动作不会影响USB设备使用性能. 在linx 系统中,usb热插拔由两部分方面共同实现,即内核空间和用户空间,内核由一个守护进程实现,用户空间由udev 程序实现.在内核空间里,有一个专门用于监控usb hub的状态的守护进程,守护进程通过等待队列实现,等待队列平时处理休眠状态,当

usb枚举(2)

1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序.调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了. USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告.在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接.USB总线拓扑结构见下图(