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

10.2 USB主机控制器功能

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

10.2 USB主机控制器功能

  在所有的实现中,主机控制器都必须提供基本相同的功能。主机控制器对主机及设备来讲都必须满足一定的要求。下面是主机控制器所提供的功能的概况。每种功能在下面的小节中还有具体的说明。

  1. 状态处理(State Handling) 作为主机的一部份,主机控制器报告及管理它的状态。
  2. 串行化与反串行化 对于从主机输出的数据,主机控制器将协议及数据信息从它原始形状转换为字位流。而对于主机接收的数据主机控制器进行反向操作。
  3. 帧产生(Frame Generation) 主机控制器以每1ms为单位产生SOF标志包。
  4. 数据处理 主机控制器处理从主机输入输出数据的请求。
  5. 协议引擎 主机控制器支持USB具体规定的协议
  6. 传输差错控制 所有的主机控制器在发现和处理已定义的错误时展现相似的行为。 7 远程唤醒 所有的主机控制器都应具有将总线置于挂起状态及在远程唤醒事件下重新启动的能力。
  7. 集线器 集线器提供了标准的将多个USB设备连到主机控制器的功能。
  8. 主机系统接口 主机控制器在主机系统控制器之间建立一个高速的数据通道。
  9. 下面的各节将对上面提到的各功能进行详细的讨论。

10.2.1 状态处理

  主机控制器具有一系列USB系统管理的状态。另外,主机控制器为下面两个与USB有关的部份提供接口。

  • 状态改变传播
  • 根集线器

  根集线器提供与其它USB设备一样的标准状态给集线器驱动器。有关USB状态与其它之间的相互关系的详细讨论请参照第7章。

  主机控制器的总的状态与根集线器及总体的USB密不可分。任何一个对设备来说可见的状态的改变都应反映设备状态的相应改变。从而保证主机控制器与设备之间的状态是一致的。

  USB设备通过使用恢复信号请求唤醒,使设备回利已配置的状态。主机控制器本身也可以通过同样的方法产生一个恢复事件。主机控制器通过使用该实现系统的某种机制来通知主机的其它部份已产生了一个恢复事件。

10.2.2 串行化与反串行化

  通过物理上的传输是以字位流的形式出现的。不管是作为主机的一部份,还是作为设备的一部份,串行接口引擎(STE)处理USB传输过程中的串行化与文串行化工作。在主机上,串行接口引擎是主机控制器的一部份。

10.2.3 帧产生

  主机控制器有义务将USB时间划分为以1ms为单位的帧。主机控制器以每1ms间隙产生SOF(Start-of-Frame)标识以示新的一帧的开始(如图10-3)。SOF标识是一帧的开始部份,在SOF标识之后主机控制器在该帧的余下时间内传输其它的东西。当主机控制器处于正常工作状态时,SOF标识必须以1ms为间隙连续的发送而不管其它的总线活动。当总线控制器处于不给总线提供能量的状态时,它不能产生SOF标识。当总线控制器不产生SOF标识时,它处于一种节能方式。

 

USB帧的产生
图10-3 USB帧的产生
 
 

  SOF标识具有取得总线的最高的优先权。集线器中的babble circuit在EOF期间停止任何传输任务,为SOF标识的传输提供一条空闲的总线。

  主机控制器必须允许USB每帧的时间长度相差±1 bit的时间(参见10.5.3.3.4节)。主机控制器维持着一个当前帧的序号。

  帧序号具有以下各方面的作用

  • 用于将两帧唯一的区别开
  • 在每帧的结尾处加1
  • 对于它的后继帧有效

  主机在每一个SOF标识中传输当前帧号的低11位。当接到主机控制器的请求时,主机返回请求发生时刻的帧序号。虽然主机控制器自身并不要求维持一个超过11位的帧序号,但是主机返回的帧序号至少是32位的。

  主机控制器在EOF期间要停止一切传输操作。当EOF间隙产生时,所有原定在刚才那帧上传输的事务暂停。如果主机控制器在执行传输的时候出现了EOF,主机控制器中止该项传输请求。

10.2.4 数据处理

  主机控制器接收来自USB系统的数据并将其传送给USB设备或从USB设备接收数据送给USB系统。USB系统和主机控制器之间进行数据传输时的具体格式是基于具体的实现系统的,同时也要符合第5章所讲述的传输协议要求。

10.2.5 协议引擎

  主机控制器管理着USB协议层的接口。在输出的数据中插入适当的协议信息,并且它将解释并去除输入数据中的协议信息。

10.2.6 传输差错控制

  主机控制器必须能够发现如下的几种从主机的角度定义的错误:

  • 超时错。该类错误发生在目标端口没有相应的反应或传输系统被严重损坏以至于目标端口根本就没有收到信息。
  • 数据丢失或无效传输。 主机控制器发送或接收到较应该传输的数据包为短的数据包。例如,一项传输超出了EOF,或缺少可使用的资源,或数据包CRC校验出错.
  • 协议错

——无效的握手PID,例如形式错误或不恰当的握手包。
——错误的包标志。
——位插入错。

  对批传输,命令传输,中断传输,主机必须维持一个错误统计记录。这些错误是由上述各种情况产生的,而不是由于端口不响应一个请求而产生的。错误统计记录反映了传输过程中出现的错误的次数。如果错误统计记录值达到三,则主机终止传输。如果传输是由于过多的传输错而被中止的话,则最后一次出现的错误将被简要的说明。每个同步传输事务仅进行一次,而不管结果,所以对于这种传输来说是没有被维持的错误记录。

10.2.7 远程唤醒

  如果USB系统希望将总线置于挂起状态,它将请求主机控制器终止任何形式的传输,包括SOF。这使得所有的USB设备进入一种挂起状态。在这种状态下,USB系统可以使能主机控制器响应总线唤醒事件。这使得主机控制器能响应总线的唤醒信号,重启主机系统。

10.2.8 根集线器

  根集线器提供主机控制器与一个或多个USB设备的连接。除了主机控制器及根集线器之间的硬件软件接口是由具体的硬件实现来定义的外,根集线器提供与其它的集线器一样的功能(参见11章)。

10.2.8.1 端口复位(Port Resets)

  7.1.7.3节讲述了集线器为了保证每一个下行恢复请求都供给一个长时间的下行复位,所必须具备的条件,根集线器应能提供一个至少为50ms的复位时间。如果复位时间是由硬件控制的,并且硬件能提供的复位时间小于50ms,则USB系统可以产生连续的几个复位信号以产生足够长时间的复位。

10.2.9 主机系统接口

  主机控制器提供一条高速的读出与写入系统内存的总线接口。内存与USB电缆的物理数据的交换是在主机控制器的控制下自动进行的。当数据缓冲区需要允满或清空时,主机控制器通知USB系统。

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