usb3.0协议规范中文解读 下载本文

一个usb设备想要访问总线必须由主机给予它使用权。主机还负责监督usb的拓朴结构。关于主机和它的任务的更详细、更彻底的描述,请见第9章。 4.2.2usb设备

一个usb设备的逻辑结构如图4.4所示,包括 ·usb总线接口 ·usb逻辑设备 ·应用层 实际通信流 逻辑通信流

图4-4物理设备组成

usb设备用于向主机提供一些额外的功能。usb设备提供的功能是多种多样的,但面向主机的接口却是一致的。所以,对于所有这些设备,主机可以用同样的方式来管理它们与usb有关的部分。

为了帮助主机辨认及确定usb设备,这些设备本身需要提供用于确认的信息。在某一些方面的信息,所有设备都是一样的;而另一些方面的信息,由这些设备具体的功能决定。信息的具体格式是不定的,由设备所处的设备级决定。 对usb设备更完备的描述,见第8章。 4.2.3总线的物理拓朴结构

usb系统中的设备与主机的连接方式采用的是星形连接,

第 17 页 共 20 页

如图4-5。

图4—5usb物理总线的拓扑

图中的hub是一类特殊的usb设备,它是一组usb的连接点,主机中有一个被嵌入的hub叫根hub(roothub)。主机通过根hub提供若干个连接点。为了防止环状连接,采用星形连接来体现层次性,如图4-5。这种连接的形状很像一棵树。

用于提供具体功能的设备叫应用设备。许多不同功能的设备放在一起被看作一个整体,叫包。例如,键盘和轨迹球可以被视作一个整体,在它的内部,提供具体功能的设备被永久地接到hub上,而这个hub被接到usb上。所有这些设备及这个hub被看作一个复合设备,而这个hub又被看作这个复合设备的内部hub。在主机看来,这个复合设备和一个带着若干设备的单独hub是一样的。图中也标出了一个复合设备。

4.2.4总线逻辑拓朴结构

在物理结构上,设备通过hub连到主机上。但在逻辑上,主机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关系如图4-6所示。与之对应的物理结构就是图4-5中的结构。hub也是逻辑设备,但在图4-6中,为了简化起见,未被画出,虽然usb系统中的工作都是从逻辑角度来看待的,但主机必须对物理结构有个了解。例

第 18 页 共 20 页

如,在处理hub被移去的情况时,当一个hub被移出,通过它与主机相连的设备也应一起被移去,这是由其物理结构决定的。关于hub的更详细的讨论在第10章。 图4—6usb逻辑总线的拓扑 4.2.5客户软件层与应用层的关系

usb系统的物理上、逻辑上的拓朴结构反映了总线的共享性。操纵usb应用设备的客户软件只关心设备上与它相关的接口,客户软件必须通过usb软件编程接口来操纵应用设备。这与另一些总线如pcl,elsa,pcmua等不同,这些总线是直接访问内存或i/o的。在运行中,客户软件必须独立于usb上的其它设备。这样,设备和客户软件的设计者就可以只关心该设备与主机硬件的相互作用和主机软件的相互作用的细节问题。图4-7说明了在图4-6的逻辑结构下,一个设备设计者看到的客户软件与相应应用的关系的视图。 图4-7客户软件和应用间的关系 4.3usb通信流

usb是为主机软件和它的usb应用设备间的通信服务的,对客户与应用间不同的交互,usb设备对数据流有不同的要求。usb为此提供了更好的overall总线使用,它允许各种不同的数据流相互独立地进入一个usb设备。每种通信流都采取了某种总线访问方法来完成主机上的软件与设备之间的通信。每个通信都在设备上的某个端点结束。不同设备的

第 19 页 共 20 页

不同端点用于区分不同的通信流。

图4-8是图4-2的扩充,它更详尽地描述了usb系统,支持了逻辑设备层和应用层间的通信。实际的通信流要经过好几个接口边界,从第5章到第7章,刻画了机械上、电气上以及协议上的usb接口的定义。第8章刻划了usb设备的编程接口。通过此接口,可从主机侧对usb设备进行控制,第9章介绍了两个主机侧的通信接口:

·主机控制器的驱动程序(hcd):它位于usb主机控制器与usb系统软件之间。主机控制器可以有一系列不同的实现,而系统软件独立于任何一个具体实现。一个驱动程序可以支持不同的控制器,而不必特别了解这个具体的控制器。一个usb控制器的实现者必须提供一个支持它自己的控制器的主机控制器驱动器(hcd)实现。

·usb驱动程序(usbd):usb系统软件与客户软件之间的接口,提供给客户软件一些方便的使用usb设备的功能。 一个usb逻辑设备对usb系统来说就是一个端点集合。端点可以根据它们实现的接口来分类。usb系统软件通过一个缺省的控制通道来管理设备。而客户软件用通道束管理接口。通道束的一端为端点,一端为缓冲区。客户软件要求通信数据在主机上的一个缓冲和usb

第 20 页 共 20 页