USB1.1中文协议-3

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章USB数据流模型本章介绍了数据如何在USB中传送,将涉及到系统中关于信号的发送和协议定义的一层。对于USB系统中这一层中各个定义的详细情况可参见第六章和第七章。本章中介绍的数据传送格式,将在第八章到第十一章中逐步扩充。所有的实现者必须阅读此章,以便了解USB中一些非常核心的概念。4.1实现者的视图USB提供了在一台主机和若干台附属的USB设备之间的通信功能,从终端用户的角度看到的USB系统,可简单地用图4.1表示:图4—1USB主机/设备的简单模型但在实际的实现上,具体的系统要比这复杂,不同层次的实现者对USB的有不同要求,这使得我们必须从不同的层次观察USB系统。USB系统提出了一些重要的概念和情况来支持现代个人计算机所提出的可靠性要求,所以USB的分层理解是必须的。它能使不同层次的实现者只关心USB相关层次的特性功能细节,而不必掌握从硬件结构到软件系统的所有细节。USB的这种层次结构如图4-2所示,主机物理设备实际通信流逻辑通信流需实现的区域图4—2USB需实现的区域USB主机USB设备客户软件USB系统软件USB主机控制器应用USB逻辑设备USB总线接口各层次的具体细节将在以后逐步介绍。特别地,有四个层次的实现是较为集中的。·USB物理设备(USBPhysicalDevice):USB上的一种硬件,可运行一些用户程序。·客户软件(clientsoftware):为一个特定的USB设备而在主机上运行的软件。这种软件由USB设备的提供者提供,或由操作系统提供。·USB系统软件(USBsystemsoftware):此软件用于在特定的操作系统中支持USB,它由操作系统提供。与具体的USB设备无关,也独立于客户软件。·USB主机控制器(USBHostController):总线在主机方面的接口,是软件和硬件的总和。用于支持USB设备通过USB连到主机上。这四个USB系统的组成部分在功能上存在相互重叠的部分。为了支持主机与客户之间的坚固可靠的通信,还需要在后面对这些部分进行细节性描述。如图4-2所示,一台主机与一个USB设备间的连接是由许多层上的连接组成。USB总线接口层提供了在主机和设备之间的物理连接、发送连接、数据包连接。USB设备层对USB系统软件是可见的,系统软件基于它所见的设备层来完成对设备的一般的USB操作。应用层可以通过与之相配合的客户软件向主机提供一些额外的功能。USB设备层和应用层的通信是逻辑上的,对应于这些逻辑通信的实际物理通信由USB总线接口层来完成。关于USB的物理通信在第5、6章中描述,而相关的逻辑通信在第8、9章中介绍。本章描述一些核心概念,USB系统的实现者必须先掌握它们,然后在往后几章中阅读更加详细的部分。为了描述和管理USB通信,以下概念是很重要的:·总线拓朴(BusTopology):USB的基本物理组成、基本逻辑组成,以及各组成部分之间的相互关系。这将在4.2节中描述。·通信流模型(communicationFlowModels):描述主机与设备如何通过USB通信,以及通信所用的四种通信类型。这将在4.3到4.8的各节中介绍。·总线访问管理(BUSAccess):主机面对大量的USB设备的各种通信要求,如何控制、协调总线的访问。·关于同步传送的考虑:4.10节中将介绍。对要求同步传送的设备提供一些特性。非同步传送设备的实现者不必阅读此节。4.2总线拓朴总线拓朴结构包括四个重要的组成部分。·主机和设备:USB系统的基础组成部分。·物理拓朴结构:描述USB系统中的各组成部分是如何连接起来的。·逻辑拓朴结构:描述USB系统中各种组成部分的地位和作用,以及描述从主机和设备的角度观察到的USB系统。·客户软件层与应用层的关系:描述从客户软件层看到的应用层的情况,以及从应用层看到的客户软件层的情况。4.2.1USB主机主机的逻辑结构如图4-3,包括·USB主机控制器(USBHostController)·USB系统软件集合:USB驱动程序,主机控制器的驱动程序,主机软件·客户软件主机实际通信流逻辑通信流图4—3主机的组成USB主机在USB系统中是一个起协调作用的实体,它不仅占有特殊的物理位置,而且对于USB以及连到USB上的设备来说,还负有特殊责任。主机控制所有的对USB的访问。一个USB设备想要访问总线必须由主机给予它使用权。主机还负责监督USB的拓朴结构。关于主机和它的任务的更详细、更彻底的描述,请见第9章。4.2.2USB设备一个USB设备的逻辑结构如图4.4所示,包括·USB总线接口·USB逻辑设备·应用层物理设备实际通信流客户软件USB系统软件USB主机控制器应用USB逻辑设备USB总线接口复合设备逻辑通信流图4-4物理设备组成USB设备用于向主机提供一些额外的功能。USB设备提供的功能是多种多样的,但面向主机的接口却是一致的。所以,对于所有这些设备,主机可以用同样的方式来管理它们与USB有关的部分。为了帮助主机辨认及确定USB设备,这些设备本身需要提供用于确认的信息。在某一些方面的信息,所有设备都是一样的;而另一些方面的信息,由这些设备具体的功能决定。信息的具体格式是不定的,由设备所处的设备级决定。对USB设备更完备的描述,见第8章。4.2.3总线的物理拓朴结构USB系统中的设备与主机的连接方式采用的是星形连接,如图4-5。根HUBHUBHUB图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系统中的工作都是从逻辑角度来看待的,但主机必须对物理结构有个了解。例如,在处理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设备。每种通信流都采取了某种总线访问方法来完成主机上的软件与设备之间的通信。每个通信都在设备上的某个端点结束。不同设备的不同端点用于区分不同的通信流。图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设备上的一个端点之间进行。主机控制器或USB设备(取决于数据传送方向)将数据打包后在USB上传。由主机控制器(HC)协调何时用总线访问在USB上传递数据。主机连接物理设备到一个接口的通道束与接口无缓冲没有USB有关USB格式格式到0号端点的缺省通道事务USB帧格式每个端USB帧的数据点的数结构的据数据USB主机(第10章)USB线路机械的,通道:两个水平实体之间连接电气的,的抽象。协议数据传递机制(第6,7,8章)被传递的数据的与USB相关的形式图4-8USB主机/设备的细节图图4-9说明了数据如何在主机侧中的内存缓冲和设备中的端点中传送。在后面,将逐步介绍端点、通道和通信流。主机上的软件通过一系列的通信流与逻辑设备进行通信。这一系列的通信流是由USB设备的软件和硬件设计者选择的,使设备能传送由USB提供的字符。USB设备(第9章)ClientSW管理一个接口USBSystemSW管理设备USBUSB帧格式接口的数据事务主机控制器SIE应用接口的集合接口XUSB逻辑设备端点的集合端点0USB总线接口SIE界面图4-9USB通信流4.3.1设备端点一个端点是一个可唯一识别的USB设备的Portion,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设备设计时被给定的。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持其流出设备,两者不可得兼。一个端点的特性决定了它与客户软件进行的传送的类型。一个端点有以下特性:·端点的总线访问频率要求·端点的总线延迟要求·端点的带宽要求·端点的端点号·对错误处理的要求·端点能接收或发送的包的最大长度·端点的传送类型(详见4.4节)·端点与主机的数据传送方向端点号不为0的端点在被设置前处于未知状态,是不能被主机访问的。4.3.1对0号端点的要求所有USB设备都需要实现一个缺省的控制方法。这种方法将端点0作为输入端点,同时也将端点0作为输出端点。USB系统用这个缺省方法初始化及一般地使用逻辑设备(即设置此设备)。缺省控制通道(见4.3.2节)支持了对控制的传送(控制传送将在4.5中定义),一旦设备接上,并加电,且又收到一个总线复位命令,端点0就是可访问的了。4.3.1.2对非0号端点的要求主机客户软件缓冲区通道USB逻辑设备端点通信流设备可以有除0以外的其它端点,这取决于这些设备的实现。低速设备在0号输入及输出端点外,只能有2个额外的可选端点。而高速设备可具有的额外端点数仅受限于协议的定义(协议中规定,最多15个额外的输入端点和最多15个额外的输出端点)。除缺省控制通道的缺省端点外,其它端点只有在设备被设置后才可使用,对设备的设置是设备设置

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功