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

10.1 USB主机概况

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

  USB的互连支持数据在USB主机与USB设备之间的流动。这一章主要讲述为了简化主机上的 客户软件(Software client)与设备的功能部件(function)之间的通信而必须的主机接口(host interface)。在本章中所涉及的具体实现部份并不是必要的,这些实现部份是作为例子来阐述在响应USB设备请求时的主机系统的行为。只要USB设备并不感觉到主机行为的改变,USB主机完全可以提供一个不同的软件系统实现方法。

10.1 USB主机概况

10.1.1 概论

  图10-1展示了USB通信模型之间基本的信息流与互连关系 

USB 通信模型层次关系图
 
图 10-1 USB通信模型层次关系图

  由图10-1可见,主机与设备都被划分成不同的层次。主机上垂直的箭头是实际的信息流。设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间存在逻辑的主机—设备信息流。主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。

  客户软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以及它们的界面(interface)。

  这一章从主机的角度来描述上述的通信模型,图10-2描述了从主机角度看到的它与设备的连接。

  主机在整个USB系统中是唯一的,它包括如下几个层次。

  • USB总线接口
  • USB系统(USB System)
  • USB客户(Client)

  其中,USB总线接口处理电气及协议层的互连(详见第7章及第8章)。从互连的角度看,USB设备和USB主机都提供类似的USB总线接口,如串行接口引擎(Serial Interface Engine SIE)。由于主机在USB系统中的特殊性,USB主机上的总线接口还必须具备主机控制器的功能(Host Controller),主机控制器具有一个内集成的集线器(根集线器)提供与USB电缆的连接。
USB系统(USB System)使用主机控制器来管理主机与USB设备的数据传输。USB系统与主机控制器之间的界面基于主机控制器的硬件特性。USB系统层相对于主机控制器而言,处理的是以客户观点见到的数据传输及客户与设备的交互。这包括附加的USB信息,比如协议头(Protocol Wrappers)。USB系统还必须管理USB的系统资源,以使得客户的访问成为可能。

 

USB主机通信图
 
图10-2 USB主机通信图

USB系统有三个主要组成部份:

  • 主机控制器驱动(Host Controller Driver)
  • USB驱动 (USB Driver)
  • 主机软件 (host software)

  主机控制器驱动的存在,方便地将各种不同的主机控制器实现映射到USB系统,客户可以不必知道设备到底接在哪个主机控制器上就能同设备进行通信。USB驱动提供了基本的面向客户的主机界面。在HCD与USB之间的接口称为主机控制器驱动接口(Host Controller Driver Interface HCDI)。这层接口不能被客户直接访问,所以也不是由USB具体来完成的。一个典型的HCDI是由支撑各种不同主机控制器的操作系统来定义的。

  USBD提供I/O请求包(I/O Request Packets)形式的数据传输,以某一特定通道来传输数据。另外,USBD为它的客户提供一个容易被支配及配置的抽象的设备。作为这种抽象的一部份,USBD拥有标准通道(参见第5章及第9章)对设备进行一些标准的控制。这标准通道实现了USBD与抽象设备之间的逻辑通信。(见图10-2)

  在有些操作系统中,提供了额外的非USB系统软件以支持设备的配置及设备驱动程序的加载。在这样的操作系统中,设备驱动程序应使用提供的主机软件接口而不是直接访问USBDI。

  客户层描述的是直接与USB设备进行交互所需要的软件包。当所有的设备都已连上系统时,这些客户就可以直接通设备进行通信。一个客户不能直接访问设备的硬件。

  换言之,主机可提供如下的功能

  • 检测USB设备的连接与断开。
  • 管理主机与设备之间的标准控制流。
  • 管理主机与设备之间的数据流。
  • 收集状态及一些活动的统计数字。
  • 控制主机控制器与USB设备的电气接口,包括提供有限的能源。

  在下面的章节中,我们将较细的阐述USBDI所能提供的功能。对于特定的主机平台与操作系统下的实现接口请参照相关的操作系统手册。

  所有的集线器都通过状态改变通道报告它的状态的改变,其中包括设备的连上与断开等。 USBD的一类特殊客户即:集线器驱动器拥有这些状态改变通道,接收这些状态的改变。对于像设备连结这种状态改变,集线器驱动器将加载设备的驱动程序。在有些系统中,这种集线器驱动程序是操作系统提供的主机软件的一部份,它用来管理设备。

10.1.2 控制机构

  控制信号可通过带内信号(in-band-singling)及带外信号(out-of-bard-signaling)两种方式在主机与设备之间传输。带内信号将控制信息及数据信息混在一起用同一通道传输,以至于主机根本就没有觉察到。而外带信号是通过单独的通道进行传输。

  任何一个已连接的设备都有一个标准的信息通道,即标准通道。这个主机与设备之间的逻辑的连接用于传输USB的标准控制信息,比如对设备的配置信息等。这些标准通道为USB的设备提供了标准的接口,它也可以用来进行基于特定设备而不同的通信,这些通信由拥有所有这些通道的USBD作媒介。

  一些特定的设备可能允许使用额外的信息通道来传输特定设备的控制信息。这些额外的信息通道与标准通道使用同样的协议,但是传递的信息是基于特定的设备的,也不是由USB具体标准化的。

  USBD支持和它的客户共享使用标准通道,它还提供给客户与设备相连的其它控制通道的访问。

10.1.3 数据流

  主机控制器在主机与USB设备之间传递数据。这些数据被看作连续的字节流。USB支持4种形式的数据传输

  • 控制传输
  • 同步传输
  • 中断传输
  • 块传输

  有关于传输方式的额外信息请参见第5章

  每个设备具有一到多个界面以用于客户与设备之间的数据传输。每个接口由一到多个在客户及设备端点之间独立传输的通道组成。USBD根据主机软件的请求来初始化这些通道和接口。当这些配置请求提出后,主机控制器将基于主机软件所提供的参数来提供服务。

  每个通道基于数据传输模式和请求的有如下几个特性:

  • 数据传输的频率。
  • 数据是以恒定速率提供还是随机出现的。
  • 在数据传输前可延迟的时间。
  • 在传输过程中数据的丢失是否是具有灾难性。

  USB设备的端口描述了与之相连接的通道的特性。USB设备端口的特性的具体描述可参照第9章。

10.1.4 收集状态及活动统计数据

  作为普通的为所有主机与设备之间的控制流与数据流服务的USB系统与主机控制器,一直处于随时接收状态变化及活动信息的状态,以使软件能及时接收并处理这些状态的变化。这里并不具体讲述需要被跟踪的状态信息及这些状态信息的特殊的格式。

10.1.5  电气接口因素

  主机为连在集线器上的USB设备提供能量。一个集线器口所能提供的能量具体值在第七章有详细说明。

 

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