USB设备驱动之设备初始化(设备枚举)
2014-06-24 10:06
99 查看
USB设备从接入HUB到正常工作之前,都属于设备枚举阶段。所谓设备枚举,就是让host控制器认识USB设备,并为其准备资源,建立好主机与设备间的数据传递机制。
该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程。设备枚举阶段也对应了USB设备的五种状态。
设备枚举阶段分为如下8个步骤:
获取设备描述符
复位
设置地址
再次获取设备描述符
获取配置描述符
获取接口,端点描述符
获取字符串描述符
选择设置配置
其中,步骤1与4都是获取设备描述符,两者有什么区别?
步骤1中只取得设备描述符的固定长度字段,而步骤4是获取设备描述符的全部字段。
通过上述的8个步骤,可以看出:在设备枚举阶段,主机控制器获取了USB设备的所有详细信息(5大描述符),然后为其分配了资源(设置地址)。在设备枚举阶段完成之后,USB设备就能与USB主机之间进行数据交换了。
同时,我们知道USB设备接入USB主机之后有5种状态:
Attached
Powered
Default
Addressed
Configured
这5中状态与USB设备枚举的对应关系是:
USB设备插入接口之后,处于Attached状态;
USB主控制器会给USB设备供电,此时处于Powered状态;
设备枚举阶段的步骤2,复位操作之后,设备处于Default状态;
设备枚举阶段的步骤3,设置地址操作之后,设备处于Addressed状态;
设备枚举结束之后,设备处于Configured状态。
该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程。设备枚举阶段也对应了USB设备的五种状态。
设备枚举阶段分为如下8个步骤:
获取设备描述符
复位
设置地址
再次获取设备描述符
获取配置描述符
获取接口,端点描述符
获取字符串描述符
选择设置配置
其中,步骤1与4都是获取设备描述符,两者有什么区别?
步骤1中只取得设备描述符的固定长度字段,而步骤4是获取设备描述符的全部字段。
通过上述的8个步骤,可以看出:在设备枚举阶段,主机控制器获取了USB设备的所有详细信息(5大描述符),然后为其分配了资源(设置地址)。在设备枚举阶段完成之后,USB设备就能与USB主机之间进行数据交换了。
同时,我们知道USB设备接入USB主机之后有5种状态:
Attached
Powered
Default
Addressed
Configured
这5中状态与USB设备枚举的对应关系是:
USB设备插入接口之后,处于Attached状态;
USB主控制器会给USB设备供电,此时处于Powered状态;
设备枚举阶段的步骤2,复位操作之后,设备处于Default状态;
设备枚举阶段的步骤3,设置地址操作之后,设备处于Addressed状态;
设备枚举结束之后,设备处于Configured状态。
相关文章推荐
- USB设备驱动之设备初始化(设备枚举)
- USB设备驱动之设备初始化(设备枚举)
- usb网卡驱动分析(一)——设备初始化
- mini2440 usb device controller 驱动的分析--gadget设备(二)---枚举
- Linux的USB-Serial驱动(从系统初始化到生成tty设备的全过程)
- Linux的USB-Serial驱动(从系统初始化到生成tty设备的全过程) .
- 和菜鸟一起学linux总线驱动之初识USB设备枚举
- 和菜鸟一起学linux总线驱动之初识USB设备枚举
- Linux的USB-Serial驱动(从系统初始化到生成tty设备的全过程)
- USB设备无法使用、驱动载入异常(39)
- 今天开始做一个ARM做为USB从设备的驱动
- 嵌入式Linux驱动学习之路(二十)USB设备驱动
- Linux驱动USB驱动程序之USB设备驱动程序1简单编写
- linux设备驱动之USB主机控制器驱动分析
- stm32USB设备的连接枚举过程
- USB gadget设备驱动解析(1)
- USB设备驱动开发-USB协议相关(二)
- Linux下的硬件驱动——USB设备(下)
- usb驱动开发11之设备生命线
- USB设备驱动