博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USB设备驱动之设备初始化(设备枚举)
阅读量:7009 次
发布时间:2019-06-28

本文共 651 字,大约阅读时间需要 2 分钟。

USB设备从接入HUB到正常工作之前。都属于设备枚举阶段。所谓设备枚举。就是让host控制器认识USB设备,并为其准备资源。建立好主机与设备间的数据传递机制。

该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程。设备枚举阶段也相应了USB设备的五种状态。

设备枚举阶段分为例如以下8个步骤:

  1. 获取设备描写叙述符
  2. 复位
  3. 设置地址
  4. 再次获取设备描写叙述符
  5. 获取配置描写叙述符
  6. 获取接口。端点描写叙述符
  7. 获取字符串描写叙述符
  8. 选择设置配置
当中,步骤1与4都是获取设备描写叙述符,两者有什么差别?
步骤1中仅仅取得设备描写叙述符的固定长度字段,而步骤4是获取设备描写叙述符的所有字段。
通过上述的8个步骤。能够看出:在设备枚举阶段,主机控制器获取了USB设备的全部具体信息(5大描写叙述符),然后为其分配了资源(设置地址)。在设备枚举阶段完毕之后。USB设备就能与USB主机之间进行数据交换了。

同一时候,我们知道USB设备接入USB主机之后有5种状态:
  1. Attached
  2. Powered
  3. Default
  4. Addressed
  5. Configured
这5中状态与USB设备枚举的相应关系是:
  • USB设备插入接口之后,处于Attached状态;
  • USB主控制器会给USB设备供电,此时处于Powered状态;
  • 设备枚举阶段的步骤2。复位操作之后,设备处于Default状态;
  • 设备枚举阶段的步骤3。设置地址操作之后,设备处于Addressed状态。
  • 设备枚举结束之后,设备处于Configured状态。

转载地址:http://pjttl.baihongyu.com/

你可能感兴趣的文章
深入理解Tornado——一个异步web服务器
查看>>
软件架构师应该知道的97件事
查看>>
VMware、Citrix和Microsoft虚拟化技术详解与应用实践
查看>>
SublimeText3使用技巧总结
查看>>
微软称Silverlight技术领先于HTML5
查看>>
SQL SERVER普通用户需要什么权限才能执行sp_configure命令
查看>>
十个开源的Javascript框架
查看>>
Simple guide to Java Message Service (JMS) using ActiveMQ
查看>>
从输入 URL 到页面加载完的过程中都发生了什么事情?
查看>>
PHP——面向对象
查看>>
HashMap与ConcurrentHashMap的区别(转)
查看>>
ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
查看>>
图的理解:深度优先和广度优先遍历及其 Java 实现
查看>>
Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
查看>>
Linux之 find之 ctime,atime,mtime
查看>>
Asp.net mvc 集成Autofac和FluentValidation
查看>>
WinForm企业应用框架设计【一】界限划分与动态创建WCF服务(no svc!no serviceActivations!)...
查看>>
sharepoint 页面使用javascript出错解决办法
查看>>
程序员究竟该如何提高效率【转】
查看>>
UVA 10056 What is the Probability ?
查看>>