首页 > 代码库 > USB设备驱动之设备初始化(设备枚举)
USB设备驱动之设备初始化(设备枚举)
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设备驱动之设备初始化(设备枚举)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。