您现在的位置: USB开发网 > USB技术文档 > USB专题 > USB1.1协议中文完整在线版
USB1.1协议中文完整在线版

9.1 USB设备状态

------分隔线----------------------------

  USB设备可被划分三层:

  • 底层是传送和接收数据包的总线接口
  • 中间层处理总线接口与不同端点之间的数据路由端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端(Sink)
  • 最上层的功能由串行总线设备提供,比如鼠标,或ISDN接口。

  本章描述的是USB设备中间层的通用属性与操作。这些属性与操作由设备的特定功能的部分用于通过总线接口最终与主机(host)的通信。

9.1 USB设备状态

  USB设备有若干可能的状态,其中一些对于USB与主机(host)来说是外置的,而另外一些对USB设备来说是内置的,这一节描述的就是这些外置状态。

9.1.1 外置的设备状态

  本小节描述的是外部可见的USB设备状态(见图8-1)。表8-1汇集这些外置设备状态之间的转化关系。
注意:USB设备会响应上行端口(upstream Port)传来一个复位(reset)信号进行复位操作。当reset信号完成的时候,USB设备业已复位。

表8-1. 外置(可见)的设备状态

连 接

加 电

缺 省

编 址

配 置

挂 起

说   明

__ __

__ __

__ __

__ __

__ __

设备尚未连接至接口.其他特性无关

__ __

__ __

__ __

__ __

设备已连接至接口,但未加电. 其他特性无关.

__ __

__ __

__ __

设备已连接至接口,并且已加电.但尚未被复位.

 

__ __

__ __

设备已连接至接口,已加电. 并被复位.

但尚未分配地址.设备在缺省地址处可寻址.

 

__ __

设备已连接至接口,已加电. 并被复位.且分配了唯一地址.

尚未被配置.

 

设备已连接至接口,已加电. 并被复位.且分配了唯一地址,并被配置.

设备功能可被使用.

__ __

__ __

__ __

设备在至少3毫秒以内探测不到总线活动,自动进如挂起.

设备功能不可用.

 

USB设置状态转化图
图9-1 USB设置状态转化图

9.1.1.1 连接状态

  USB设备可被连接到USB接口上或从接口断开,USB设备处在断开时的设备状态不包括在本篇说明之中。本说明中仅讨论那些处在连接状态的设备特性与操作。

9.1.1.2 加电状态(Powered)

  USB设备的电源可来自外部电源,也可从USB接口的集线器而来。电源来自外部电源的USB设备被称作自给电源式的(self-powered)。尽管自给电源式的USB设备可能在连接上USB接口以前可能已经带电,但它们直到连线上USB接口后才能被看作是加电状态(Powered state)。而这时候VBUS已经对设备产生作用了。

  一个设备可能有既支持自给电源的,同时也支持总线电源式的配置。有一些支持其中的一种,而另一些设备配置可能只有在自给电源下才能被使用。设备对电源支持的能力是通过配置描述表(configuration descriptor)来反映的。当前的电源供给形式被作为设备状态的一部分被反映出来。设备可在任何时候改变它们的供电来源,比如说:从自给式向总线式改变,如果一个配置同时支持两种模式,那此状态的最大电源需求就是指设备在两种模式下从VBUS上获取电能的最大值。设备必须以此最大电源作为参照,而究竟处于何状态是不考虑的。如果有一配置仅支持一种电源模式,那么电源模式的改变会使得设备失去当前配置与地址,返回加电状态。如果一个设备是自给电源式,并且当前配置需要大于100mA电流,那么如果此设备转到了总线电源式,它必须返回地址状态(Address state)。自给电源式集线器使用VBUS来为集线控制器(Hub controller)提供电源,因而可以仍然保持配置状态(Configured state),尽管自给电源停止提供电源。具体细节可参照11.14小节。

9.1.1.3 缺省状态

  设备加电以后,在它从总线接收到复位信号之前不应对总线传输发生响应。在接收到复位信号之后,设备才在缺省地址处变得可寻址。

9.1.1.4 地址状态

  所有的USB设备在加电复位以后都使用缺省地址。每一设备在连接或复位后由主机分配一个唯一的地址。当USB设备处于挂起状态时,它保持这个地址不变。
USB设备只对缺省通道(Pipe)请求发生响应,而不管设备是否已经被分配地址或在使用缺省地址。

9.1.1.5 Configured (配置状态)

  在USB设备正常工作以前,设备必须被正确配置。从设备的角度来看,配置包括一个将非零值写入设备配置寄存器的操作。配置一个设备或改变一个可变的设备设置会使得与这个相关接口的终端结点的所有的状态与配置值被设成缺省值。这包括将正在使用(date toggle)的结点(end point)的 (Date toggle)被设置成DATAO。

9.1.1.6 中止状态

  为节省电源,USB设备在探测不到总线传输时自动进入中止状态(参见第七章)。当中止时,USB设备保持本身的内部状态,包括它的地址及配置。
所有的设备在一段特定的时间内探测不到总线活动时必须进入中止态,这一特定的时间在第7章中进行了说明。不管设备是被分配了非缺省的地址或者是被配置了,已经连接的设备必须在任何加电的时刻随时准备中止。总线活动的中止可能是因为主机本身进入了中止状态。另外,USB设备必须在所连接的集线器端口失效时进入中止态。这就是所指的选择性中止(Selective suspend)。

  USB设备在总线活动来到时结束中止态。USB设备也可以远程唤醒的电流信号来请求主机退出中止态或选择性中止态。具体设备具有的远程唤醒的能力是可选的,也就是说,如果一个设备有远程唤醒的能力,此设备必须能让主机控制此能力的有效与否。当设备复位时,远程唤醒能力必须被禁止。

9.1.2 Bus Enumeration总线标号

  当USB设备接上或从USB设备移开的时候,主机启动一个被称作总线标识(bus enumeration)的进程,来标识并管理设备状态的改变,当USB设备接上一个加电端口时,系统当采取以下操作:

  1.USB设备所连的集线器通过其通向主机的状态改变通道向主机,汇报本USB设备已连接上。(参照11.13.3节)。此时,USB设备处于加电状态,它所连接的端口是无效的。
2.主机通过寻问集线器决定此次状态改变的确切含义。
3.主机一旦得知新设备已连上以后,它至少等待100ms以使得插入操作的完成以及设备电源稳定工作。然后主机发出端口使能及复位命令给那个端口。具体这些事件发生的顺序及时间判定请参看7.1.7.1节及图7-19。
4.集线器将发向端口的复位信号持续10ms(见11.5.15节)。当复位信号撤消后,端口已经有效了。这时USB设备处于缺省状态,并且可从VBUS汲取小于100mA的电能,所有设备寄存器及状态已经被复位,设备可对缺省地址产生响应。
5.主机给设备分配一个唯一的地址,设备转向编址状态。(Address state)。
6.在USB设备接受设备地址之前,它的缺省控制通道(Default Control Pipe)在缺省地址处自然是可寻址的,主机通过读取设备描述表,判决设备缺省通道的实际净数据负载。
7.主机从设备读取配置信息要从配置0读到配置n-1,其中n为配置个数,此操作须花费几个毫秒。
8.基于从设备取来的配置信息及设备如何被使用的信息,主机给设备一个配置值,此刻,设备就处于配置状态(Configured state)并此配置有关的所有端节点,都按照配置各就各位,USB设备现在可以从VBUS得到描述中所要求的电量了。从设备的角度来讲,它已经准备就绪了。

  当UBS设备被取走时,集线器同样会通知主机,断开一个设备连接会使得设备所连接的端口无效,一收到断开通知后,主机就会更新的拓扑信息。

------分隔线----------------------------
USB开源项目
联系我们
  • Q Q: 1148374829 点击这里给我发消息
  • 旺旺:jhoneqhsieh 点击这里给我发消息
  • 电话:(0)15923141204
  • 淘宝网店