收藏 分享(赏)

USB2.0协议深入解读.ppt

上传人:weiwoduzun 文档编号:4077969 上传时间:2018-12-06 格式:PPT 页数:288 大小:5.98MB
下载 相关 举报
USB2.0协议深入解读.ppt_第1页
第1页 / 共288页
USB2.0协议深入解读.ppt_第2页
第2页 / 共288页
USB2.0协议深入解读.ppt_第3页
第3页 / 共288页
USB2.0协议深入解读.ppt_第4页
第4页 / 共288页
USB2.0协议深入解读.ppt_第5页
第5页 / 共288页
点击查看更多>>
资源描述

1、中国普天信息技术研究院,1,2018/12/6,USB协议简介,USB是一种协议总线,即主机与设备之间的通信需要遵循一系列约定。协议内容较多,这里仅作一些简单介绍,深入学习,可参看USB规范(WWWusborg)。 为了理解协议中的名称,先看图1032。该图突出了主机上的客户软件和USB逻辑设备(编程涉及的设备)之间的通信流(Communication Flow),该通信流跨越了USB驱动程序USBD、主控制器驱动程序UHCD、主控制器等硬件接口及其连接。端点(Endpoints)是USB设备的惟一可识别的部分,是主机和设备之间通信流的终点。每一个逻辑设备有若干个独立端点,每一个端点在设计时被

2、分配一个惟一的由设备确定的标识符,称之为端点号。 如图1032所示,将用于通信流流动的通道称为管道(Pipe),这是忽略了许多中间环节的很形象的称呼,对于理解USB系统中的信息传输很有帮助。图中把3个端点看成了一个接口,关于接口的说明安排在后面。,中国普天信息技术研究院,2,2018/12/6,USB2.0协议,中国普天信息技术研究院,3,2018/12/6,(一)USB2.0的背景,COMPAQ、Hewlett Packard、Intel、Lucent、Microsoft、NEC和PHILIPS这7家厂商联合制定了USB 2.0接口标准 USB2.0规范是由USB1.1规范演变而来的 ,US

3、B 2.0将设备之间的数据传输速度增加到480Mbps,折算为MB为60MB/S,比USB 1.1标准快40倍左右. USB2.0与USB1.1可以互相兼容, USB2.0设备可以工作在USB1.1接口上 , USB1.0设备也可以工作在USB2.0接口 , USB1.1设备的速度不会因为安装在USB2.0接口上而有任何提高,同样安装在USB1.1接口上的USB2.0设备的速度也会被限制在12mbps(1.5MB/S)以下. USB2.0和USB1.1使用的连接电缆及端口均相同 .,中国普天信息技术研究院,4,2018/12/6,(二)USB2.0协议规范目的,USB2.0规范描述了总线属性,

4、协议定义,处理类型,总线管理和编程接口,以满足设计和构建符合该标准的系统和外设的要求. USB2.0规范的主要目标用户是外设开发者和系统OEM. USB2.0规范的目标是使不同厂商的器件可以在开放的结构中相互操作,中国普天信息技术研究院,5,2018/12/6,(三)USB应用分类,中国普天信息技术研究院,6,2018/12/6,(四)USB2.0的结构体系,USB系统 物理层接口 电源 总线协议 健壮性 系统配置 数据流类型 USB设备 USB主机-硬件和软件 体系结构的扩展,中国普天信息技术研究院,7,2018/12/6,USB2.0系统,USB2.0系统主要被定义为三个部分:1.USB的

5、互连;2.USB的设备;3.USB的主机 USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:1.总线的拓扑结构:USB设备与主机之间的各种连接方式; 2.内部层次关系:根据性能叠置,USB的任务被分配到系统的每一个层次; 3.数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式; 4.USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销 .,中国普天信息技术研究院,8,2018/12/6,1.USB2.0的主机在任何USB系统中,只有一个主机。USB和主机系统的接口称作主机控制器,主机控制器

6、可由硬件、固件和软件综合实现。根集线器是由主机系统整合的,用以提供更多的连接点. 2.USB2.0的设备USB的设备如下所示: 1.网络集线器,向USB提供了更多的连接点; 2.功能器件,为系统提供具体功能,如ISDN的连接,数字的游戏杆 或扬声器;USB设备提供的USB标准接口的主要依据:1.对USB协议的运用;2.对标准USB操作的反馈,如设置和复位;3.标准性能的描述性信息;,中国普天信息技术研究院,9,2018/12/6,USB2.0总线布局技术USB连接了USB设备和USB主机,USB的物理连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其

7、功能部件,或从集线器到集线器或其功能部件.,中国普天信息技术研究院,10,2018/12/6,USB2.0的物理接口,USB的物理接口分为总线的电气规范和机械特性. 1.电气特性USB在一条4线的电缆上传输信号和电源.信号在两条点对点连接线上传输.USB2.0支持3种数据数率:. USB高速信号位速率是480Mb/s. USB全速信号位速率是12Mb/s. USB低速信号位速率是1.5Mb/sUSB2.0主机控制器和集线器提供了一种性能,使全速和低速数据可以在主机控制器和HUB之间高速传输,而HUB和设备之间以全速或低速传输,这种性能将全速和低速设备对高速设备可用带宽的影响减到最小.低速模式用

8、于支持例如鼠标等数量有限的低宽带设备,因为使用太多这种设备将降低总线的利用率.时钟与差动数据一起编码传送,时钟是以带位填充的NRZI方式编码,以保证有足够的跳变沿.接收器用每个包前面的SYNC场同步它们的位恢复时钟. 每段电缆还有向设备提供电源的VBUS和GND线.VBUS在源极的标称值是+5V.通过选择适当的导线规格来匹配指定的IR drop和其它一些特性,如设备能源预算和电缆适应度.为了保证足够的输入电压和终端阻抗。重要的终端设备应位于电缆的尾部。在每个端口都可检测终端是否连接或分离,并区分出高速,或低速设备.,中国普天信息技术研究院,11,2018/12/6,USB电缆,中国普天信息技术

9、研究院,12,2018/12/6,中国普天信息技术研究院,13,2018/12/6,2.机械特性电缆和连接器的机械特性将在机械特性章节详述。所有设备都有一个上行的连接。上行连接器和下行连接器是不可简单的互换,这样就避免了集线器间的非法的循环往复的连接,电缆中有四根导线:一对互相缠绕的标准规格线,一对符合标准的电源线,连接器有四个方向,具有屏蔽层,以避免外界干扰,并有易拆装的特性。,中国普天信息技术研究院,14,2018/12/6,USB2.0电源,主要包括两方面: 电源分配:即USB的设备如何通过USB分配得到由主计算机提供的能源; 电源管理:即通过电源管理系统,USB的系统软件和设备如何与主

10、机协调工作.1.电源分配每个USB单元通过电缆只能提供有限的能源。主机对那种直接相连的USB设备提供电源供其使用。并且每个USB设备都可能有自己的电源。那些完全依靠电缆提供能源的设备称作“总线供能”设备.相反,那些可选择能源来源的设备称作“自供电”设备.而且,集线器也可由与之相连的USB设备提供电源。受一定布局限制的带有“总线供能”集线器的体系结构将在集线器部分讨论。在图中,键盘,输入笔和鼠标均为“总线供能”设备.,中国普天信息技术研究院,15,2018/12/6,中国普天信息技术研究院,16,2018/12/6,2.电源管理 USB主机与USB系统有相互独立的电源管理系统。USB的系统软件可

11、以与主机的能源管理系统结合共同处理各种电源子件如挂起、唤醒,并且有特色的是,USB设备应用特有的电源管理特性,可让系统软件和控制其电源管理. USB的电源分配和电源管理特性使之可以被设计在电源传感系统中,如采用电池的笔记本电脑.,典型USB外设的电源供应,中国普天信息技术研究院,17,2018/12/6,USB2.0总线协议,USB总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输.每一总线执行动作最多传送三个数据包。按照传输前制定好的原则,在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(token pack

12、et)。USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机。在传输开始时,由标志包来标志数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端之间的USB数据传输,在主机和设备的端口之间,可视为一个通道。存在两种类型的通道:流和消息。流的数据不像消息的数据,它没有USB所定义的结构,而且通道与数据带宽、传送服务类型,端口特性(如方向和缓冲区大小)有关。多数通道在USB设备设置完成后即存在。USB中有一个特殊的通道缺省控制通道,它属于消息通道,当设备一启动即存在,从

13、而为设备的设置、查询状况和输入控制信息提供一个入口。 事务预处理允许对一些数据流的通道进行控制,从而在硬件级上防止了对缓冲区的高估或低估,通过发送不确认握手信号从而阻塞了数据的传输速度。当不确认信号发过后,若总线有空闲,数据传输将再做一次。这种流控制机制允许灵活的任务安排,可使不同性质的流通道同时正常工作,这样多种流通常可在不同间隔进行工作,传送不同大小的数据包。,中国普天信息技术研究院,18,2018/12/6,USB2.0健壮性,USB健壮性的特征在于: 使用差分的驱动接收和防护,以保证信号完整性; 在数据和控制信息上加了循环冗余码(CRC); 对装卸的检测和系统级资源的设置; 对丢失或损

14、坏的数据包暂停传输、利用协议自我恢复; 对流数据进行控制,以保证同步信号和硬件缓冲管理的安全; 数据和控制通道的建立,使功能部件的相互不利的影响独立开,消除了负作用.1.错误检测USB传输介质产生的错误率是与自然界的异常现象的概率相吻合,是瞬时一现的,因此就要在每个数据包中加入检测位来发现这些瞬时的错误,并且提供了一系列硬件和软件设施来保证数据的正确性。 协议中对每个包中的控制和数据位都提供了循环冗余码校验,若出现了循环冗余码的错误则被认为是该数据包已被损坏,循环冗余码可对一位或两位的错误进行100%的修复。2.错误处理协议在硬件或软件级上提供对错误的处理。硬件的错误处理包括汇报并重新进行上一

15、次失败的传输、传输中若遇到错误,USB主机控制器将重新进行传输,最多可再进行三次。若错误依然存在,则对客户端软件报告错误,客户端软件可用一种特定的方法进行处理,中国普天信息技术研究院,19,2018/12/6,USB2.0系统配置,USB设备可以随时的安装和折卸,因此,系统软件在物理的总线布局上必须支持这种动态变化.1. USB设备的安装所有的USB设备都是通过端口接在USB上,网络集线器知道这些指定的USB设备,集线器有一个状态指示器指明在其某个端口上,USB设备是否被安装或拆除了,主机将所有的集线器排成队列以取回其状态指示。在USB设备安装后,主机通过设备控制通道激活该端口并以预设的地址值

16、给USB设备. 主机对每个设备指定唯一的USB地址。并检测这种新装的USB设备是集线器还是功能部件。主机为USB设备建立了控制通道,使用指定的USB的地址和零号端口. 如果安装的USB设备是集线器,并且USB设备连在其端口上,那上述过程对每个USB设备的安装都要做一遍. 如果安装的设备是功能部件,那么主机中关于该设备的软件将因设备的连接而被引发.,中国普天信息技术研究院,20,2018/12/6,2. USB设备的拆卸当USB设备从集线器的端口拆除后,集线器关闭该端口,并且向主机报告该设备已不存在。USB的系统软件将准确进行处理,如果去除的USB设备上集线器,USB的系统软件将对集线器反连在其

17、上的所有设备进行处理 3.总线标号总线标号就是对连接在总线上的设备指定唯一的地址的一种动作,因为USB允许USB设备在任何时刻从USB上安装或拆卸,所以总线标号是USB的系统软件始终要作的动作,而且总线标号还包括对拆除设备的检测和处理,中国普天信息技术研究院,21,2018/12/6,数据流种类,数据和控制信号在主机和USB设备间的交换存在两种通道:单向和双向。USB的数据传送是在主机软件和一个USB设备的指定端口之间。这种主机软件和USB设备的端口间的联系称作通道。总的来说,各通道之间的数据流动是相互独立的。一个指定的USB设备可有许多通道。例如,一个USB设备存在一个端口,可建立一个向其它

18、USB设备的端口,发送数据的通道,它可建立一个从其它USB设备的端口接收数据的通道.USB的结构包含四种基本的数据传输类型: 控制数据传送:在设备连接时用来对设备进行设置,还可对指定设备进行控制,如通道控制; 批量数据传送:大批量产生并使用的数据,在传输约束下,具有很广的动态范围; 中断数据的传送:用来描述或匹配人的感觉或对特征反应的回馈。 同步数据的传送:由预先确定的传送延迟来填满预定的USB带宽。 对于任何对定的设备进行设置时一种通道只能支持上述一种方式的数据传输,数据流模式的更多细节在数据流模型章节中详述,中国普天信息技术研究院,22,2018/12/6,1 控制数据传送当USB设备初次

19、安装时,USB系统软件使用控制数据对设备进行设置,设备驱动程序通过特定的方式使用控制数据来传送,数据传送是无损性的. 2 批量数据传送批量数据是由大量的数据组成,如使用打印机和扫描仪时,批量数据是连续的。在硬件级上可使用错误检测可以保证可靠的数据传输,并在硬件级上引入了数据的多次传送。此外根据其它一些总线动作,被大量数据占用的带宽可以相应的进行改变. 3 中断数据传输中断数据是少量的,且其数据延迟时间也是有限范围的。这种数据可由设备在任何时刻发送,并且以不慢于设备指定的速度在USB上传送。 中断数据一般由事件通告,特征及座标号组成,只有一个或几个字节。匹配定点设备的座标即为一例,虽然精确指定的

20、传输率不必要,但USB必须对交互数据提供一个反应时间的最低界限.,中国普天信息技术研究院,23,2018/12/6,4 同步传输同步数据的建立、传送和使用时是连续且实时的,同步数据是以稳定的速率发送和接收实时的信息,同步数据要使接收者与发送者保持相同的时间安排,除了传输速率,同步数据对传送延迟非常敏感。所以同步通道的带宽的确定,必须满足对相关功能部件的取样特性。不可避免的信号延迟与每个端口的可用缓冲区数有关。 一个典型的同步数据的例子是语音,如果数据流的传送率不能保持,数据流是否丢失将取决于缓冲区的大小和损坏的程度。即使数据在USB硬件上以合适的速率传送,软件造成的传送延迟将对那些如电话会议等

21、实时系统的应用造成损害。 实时的传送同步数据肯定会发生潜在瞬时的数据流丢失现象,换句话说,即使许多硬件机制,如重传的引入也不能避免错误的产生。实际应用中,USB的数据出错率小到几乎可以忽略不计。从USB的带宽中,给USB同步数据流分配了专有的一部分以满足所想得到的传速率,USB还为同步数据的传送设计了最少延迟时间,中国普天信息技术研究院,24,2018/12/6,5 指定USB带宽 USB的带宽分配给各个通道,当一个通道建立后,USB就分配给它一定的带宽,USB设备需要提供一些数据缓冲区。若USB提供了更多带宽,则需更多的缓冲区。USB的体系要保证缓冲引导的硬件的延迟限定在几毫秒内。 USB的

22、带宽容量可以容纳多种不同的数据流,因此保证USB上可以连接大量设备,如可以容纳从1B+D直到T1速率范围的电信设备。同时USB支持在同一时刻不同设备具有不同比特率,并具有一个动态变动的范围. USB规范对总线的每类转输规定的具体的原则.,中国普天信息技术研究院,25,2018/12/6,USB设备,USB设备分为诸如集线器、分配器或文本设备等种类。集线器类指的是一种提供USB连接点的设备(详见USB集线器),USB设备需要提供自检和属性设置的信息,USB设备必须在任何时刻执行与所定义的USB设备的状态相一致的动态.1 设备特性 当设备被连接、编号后,该设备就拥有一个唯一的USB地址。设备就是通

23、过该USB地址被操作的,每一个USB设备通过一个或多个通道与主机通讯。所有USB设备必须在零号端口上有一指定的通道,每个USB设备的USB控制通道将与之相连。通过此控制通道,所有的USB设备都列入一个共同的准入机制,以获得控制操作的信息。 在零号端口上,控制通道中的信息应完整的描述USB设备、此类信息主要有以下几类: 标准信息:这类信息是对所有USB设备的共同性的定义,包括一些如厂商识别、设备种类、电源管理等的项目。设备设置、接口及终端的描述在此给出。关于这些具体的描述信息在第九章给出; 类别信息:此类信息给出了不同USB的设备类的定义,主要反映其不同点。 USB厂商信息:USB设备的厂商可自

24、由的提供各种有关信息,其格式不受该规范制约。此外,每个USB设备均提供USB的控制和状态信息。,中国普天信息技术研究院,26,2018/12/6,2 设备描述 主要分为两种设备类:集线器和功能部件。只有集线器可以提供更多的USB的连接点,功能部件为主机提供了具体的功能.1 集线器 在即插即用的USB的结构体系中,集线器是一种重要设备.从用户的观点出发,集线器极大简化了USB的互连复杂性,而且以很低的价格和高易用性提供了设备的健壮性。 集线器串接在集中器上,可让不同性质的设备连接在USB上,连接点称作端口。每个集线器将一个连接点转化成许多的连接点。并且该体系结构支持多个集线器的连接。 每个集线器

25、的上游端口向主机方向进行连接。每个集线器的下游端口允许连接另外的集线器或功能部件,集线器可检测每个下游端口的设备的安装或拆卸,并可对下游端口的设备分配能源,每个下游端口都具有独立的能力,不论高速或低速设备均可连接。集线器可将低速和高速端口的信号分开。 一个集线器包括两部分:集线控制器(Controller)和集线放大器(Repeater)。集线放大器是一种在上游端口和下游端口之间的协议控制开关。而且硬件上支持复位、挂起、唤醒的信号。集线控制器提供了接口寄存器用于与主机之间的通信、集线器允许主机对其特定状态和控制命令进行设置,并监视和控制其端口.,中国普天信息技术研究院,27,2018/12/6

26、,2 功能部件 功能部件是一种通过总线进行发送接收数据和控制信息的USB设备,通过一根电缆连接在集线器的某个端口上,功能设备一般是一种相互无关的外设。然而一个物理单元中可以有多个功能部件和一个内置集线器,并利用一根USB电缆,这通常被称为复合设备,即一个集线器连向主机,并有一个或多个不可拆卸的USB设备连在其上。 每个功能设备都包含设置信息,来描述该设备的性能和所需资源。主机要在功能部件使用前对其进行设置。设置信息包括USB带宽分配,选择设备的设置信息等。 下机列举了一些功能部件: 定位设备:如鼠标或光笔; 输入设备:如键盘; 电信适配器:如ISDN.,中国普天信息技术研究院,28,2018/

27、12/6,USB主机:硬件和软件,USB的主机通过主机控制器与USB设备进行交互。主机功能如下: 检测USB设备的安装和拆卸 管理在主机和USB设备之间的控制流; 管理在主机和USB设备之间的数据流; 收集状态和动作信息; 提供能量给连接的USB设备。 主机上USB的系统软件管理USB设备和主机上该设备软件之间的相互交互,USB系统软件与设备软件间有三种相互作用方式: 设备编号和设置; 同步数据传输; 异步数据传输; 电源管理 设备和总线管理信息。 只要可能,USB系统软件就会使用目前的主机软件接口来管理上述几种方式.,中国普天信息技术研究院,29,2018/12/6,USB2.0体系结构的扩

28、充,USB的体系结构包含主机控制驱动器和USB驱动器之间的接口的扩展,使多个主机控制器和主机控制驱动器的使用成为可能.,中国普天信息技术研究院,30,2018/12/6,(五)USB数据流模型,USB提供了在一台主机和若干台附属的USB设备之间的通信功能,从终端用户的角度看到的USB系统,可简单地用下图表示,中国普天信息技术研究院,31,2018/12/6,实际上的USB通信分为以下四个部分:USB物理设备(USB Physical Device):USB上的一种硬件,可运行一些用户程序。客户软件(client software):为一个特定的USB设备而在主机上运行的软件。这种软件由USB设

29、备的提供者提供,或由操作系统提供。USB系统软件(USB system software):此软件用于在特定的操作系统中支持USB,它由操作系统提供。与具体的USB设备无关,也独立于客户软件。USB主机控制器(USB Host Controller):总线在主机方面的接口,是软件和硬件的总和。用于支持USB设备通过USB连到主机上。这四个USB系统的组成部分在功能上存在相互重叠的部分。为了支持主机与客户之间的坚固可靠的通信.USB的实际应用领域如下图所示:,中国普天信息技术研究院,32,2018/12/6,中国普天信息技术研究院,33,2018/12/6,USB2.0的总线拓扑,总线拓朴结构包

30、括四个重要的组成部分。主机和设备:USB系统的基础组成部分。物理拓朴结构:描述USB系统中的各组成部分是如何连接起来的。逻辑拓朴结构:描述USB系统中各种组成部分的地位和作用,以及描述从主机和设备的角度观察到的USB系统。客户软件层与应用层的关系:描述从客户软件层看到的应用层的情况,以及从应用层看到的客户软件层的情况。,中国普天信息技术研究院,34,2018/12/6,主机和设备,1.主机主机的逻辑结构如图包括:USB主机控制器(USB Host Controller)USB系统软件集合:USB驱动程序,主机控制器的驱动程序,主机软件客户软件USB主机在USB系统中是一个起协调作用的实体,它不

31、仅占有特殊的物理位置,而且对于USB以及连到USB上的设备来说,还负有特殊责任。主机控制所有的对USB的访问。一个USB设备想要访问总线必须由主机给予它使用权。主机还负责监督USB的拓朴结构。,中国普天信息技术研究院,35,2018/12/6,USB设备一个USB设备的逻辑结构如图所示,包括USB总线接口USB逻辑设备应用层USB设备用于向主机提供一些额外的功能。USB设备提供的功能是多种多样的,但面向主机的接口却是一致的。所以,对于所有这些设备,主机可以用同样的方式来管理它们与USB有关的部分。为了帮助主机辨认及确定USB设备,这些设备本身需要提供用于确认的信息。在某一些方面的信息,所有设备

32、都是一样的;而另一些方面的信息,由这些设备具体的功能决定。信息的具体格式是不定的,由设备所处的设备级决定.,中国普天信息技术研究院,36,2018/12/6,总线的物理拓朴结构,USB系统中的设备与主机的连接方式采用的是星形连接,如图. 图中的Hub是一类特殊的USB设备,它是一组USB的连接点,主机中有一个被嵌入的Hub叫根Hub(root Hub)。主机通过根Hub提供若干个连接点。为了防止环状连接,采用星形连接来体现层次性,如图4-5。这种连接的形状很像一棵树。用于提供具体功能的设备叫应用设备。许多不同功能的设备放在一起被看作一个整体,叫包。例如,键盘和轨迹球可以被视作一个整体,在它的内

33、部,提供具体功能的设备被永久地 接到Hub上,而这个Hub被接到USB上。所有这些设备及这个Hub被看作一个复合设备,而这个Hub又被看作这个复合设备的内部Hub。在主机看来,这个复合设备和一个带着若干设备的单独Hub是一样的。图中也标出了一个复合设备.,中国普天信息技术研究院,37,2018/12/6,集线器在高速系统中扮演特殊的角色,集线器将全速/低速的信号环境和高速信号环境隔离开来.如图所示的是支持高速设备,并在高速下工作的集线器.集线器允许连接和操作全速/低速下的USB1.1集线器和其他只能进行全速/低速操作的设备.主机控制器也直接支持连接那些只能进行全速/低速操作的设备.每个高速运行

34、的集线器可增加一条(或多条)额外的全速/低速总线,即每个集线器都支持额外的(任意多条)12Mb/s USB全速/低速宽带.这允许连接更多全速/低速总线,而不需要额外地增加主机控制器.尽管可以连接几条12MB/S的全速/低速总线,但是一台主机控制器最多只能连接127台USB设备.,中国普天信息技术研究院,38,2018/12/6,USB逻辑总线的拓扑结构,在物理结构上,设备通过Hub连到主机上。但在逻辑上,主机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样。这个逻辑关系如图5-7所示。与之对应的物理结构就是图4-5中的结构。Hub也是逻辑设备,但在图5-7中,为了简化起见,未被画出

35、,虽然USB系统中的工作都是从逻辑角度来看待的,但主机必须对物理结构有个了解。例如,在处理Hub被移去的情况时,当一个Hub被移出,通过它与主机相连的设备也应一起被移去,这是由其物理结构决定的.,中国普天信息技术研究院,39,2018/12/6,客户软件层与应用层的关系 USB系统的物理上、逻辑上的拓朴结构反映了总线的共享性。操纵USB应用设备的客户软件只关心设备上与它相关的接口,客户软件必须通过USB软件编程接口来操纵应用设备。这与另一些总线如PCI,EISA,PCMCIA等不同,这些总线是直接访问内存或I/O的。在运行中,客户软件必须独立于USB上的其它设备。这样,设备和客户软件的设计者就

36、可以只关心该设备与主机硬件的相互作用和主机软件的相互作用的细节问题。图5-8说明了在图5-7的逻辑结构下,一个设备设计者看到的客户软件与相应应用的关系的视图.,中国普天信息技术研究院,40,2018/12/6,USB总线的通信数据流,USB是为主机软件和它的USB应用设备间的通信服务的,对客户与应用间不同的交互,USB设备对数据流有不同的要求。USB为此提供了更好的overall总线使用,它允许各种不同的数据流相互独立地进入一个USB设备。每种通信流都采取了某种总线访问方法来完成主机上的软件与设备之间的通信。每个通信都在设备上的某个端点结束.不同设备的不同端点用于区分不同的通信流. 图5-9是

37、 详尽地描述了USB系统,支持了逻辑设备层和应用层间的通信流. 主机控制器的驱动程序(HCD):它位于USB主机控制器与USB系统软件之间。主机控制器可以有一系列不同的实现,而系统软件独立于任何一个具体实现。一个驱动程序可以支持不同的控制器,而不必特别了解这个具体的控制器。一个USB控制器的实现者必须提供一个支持它自己的控制器的主机控制器驱动器(HCD)实现.USB驱动程序(USBD):USB系统软件与客户软件之间的接口,提供给客户软件一些方便的使用USB设备的功能。一个USB逻辑设备对USB系统来说就是一个端点集合。端点可以根据它们实现的接口来分类。USB系统软件通过一个缺省的控制通道来管理

38、设备。而客户软件用通道束管理接口。通道束的一端为端点,一端为缓冲区。客户软件要求通信数据在主机上的一个缓冲和USB设备上的一个端点之间进行。主机控制器或USB设备(取决于数据传送方向)将数据打包后在USB上传。由主机控制器(HC)协调何时用总线访问在USB上传递数据.,中国普天信息技术研究院,41,2018/12/6,中国普天信息技术研究院,42,2018/12/6,图5-10说明了数据如何在主机侧中的内存缓冲和设备中的端点中传送。在后面,将逐步介绍端点、通道和通信流。主机上的软件通过一系列的通信流与逻辑设备进行通信。这一系列的通信流是由USB设备的软件和硬件设计者选择的,使设备能传送由USB

39、提供的字符.,中国普天信息技术研究院,43,2018/12/6,CYPRESS核管道端点设定界面,中国普天信息技术研究院,44,2018/12/6,USB设备端点,一个端点是一个可唯一识别的USB设备的Portion,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设备设计时被给定的。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持其流出设备,两者不可得兼。一个端点的特性决定了它与客户软件进行的传送的类型。一个端点有以

40、下特性:端点的总线访问频率要求端点的总线延迟要求端点的带宽要求端点的端点号对错误处理的要求端点能接收或发送的包的最大长度端点的传送类型出端点与主机的数据传送方向端点号不为0的端点在被设置前处于未知状态,是不能被主机访问的.,中国普天信息技术研究院,45,2018/12/6,对0号端点的要求所有USB设备都需要实现一个缺省的控制方法。这种方法将端点0作为输入端点,同时也将端点0作为输出端点。USB系统用这个缺省方法初始化及一般地使用逻辑设备(即设置此设备)。缺省控制通道 支持了对控制的传送 ,一旦设备接上,并加电,且又收到一个总线复位命令,端点0就是可访问的了.能在高速下工作的USB设备必须能在

41、全速下工作,当设备连接到集线器并以全速工作时,设备必须:1.能成功地在全速下复位;2.能成功地响应标准请求,如设备和配置描述符的 set_address,set_configuration,get_descriptor,并返回正确的信息.高速设备在全速下运行时可能或不支持这种功能. 对非0号端点的要求设备可以有除0以外的其它端点,这取决于这些设备的实现。低速设备在0号输入及输出端点外,只能有2个额外的可选端点。而高速设备可具有的额外端点数仅受限于协议的定义(协议中规定,最多15个额外的输入端点和最多15个额外的输出端点)。除缺省控制通道的缺省端点外,其它端点只有在设备被设置后才可使用,对设备的

42、设置是设备设置过程 的一部分.,中国普天信息技术研究院,46,2018/12/6,USB总线数据通道,一个USB通道是设备上的一个端点和主机上软件之间的联系。体现了主机上缓存和端点间传送数据的能力,有两不同的且互斥的通道通信格式。流(Stream):指不具有USB定义的格式的数据流。消息(Message):指具有某种USB定义的格式的数据流。USB不解释在通道中传送的数据的内容。消息通道要求数据组织USB定义的格式,但它的内容,USB是不管的。特别地,有下列概念与通道相关:对USB总线访问的申请(claim),带宽的使用情况传送类型与通道相连的端点的特性,例如:端点的数据传送方向,最大数据净负

43、荷区的长度。数据净负荷是指在总线处理事务(transaction)中,数据包中数据区的数据 。由两个0号端点组成的通道叫缺省控制通道。一旦设备加电并复位后,此通道即可使用。其它通道只在设备被设置后才存在。USB系统软件在决定设备身份、设置要求和设置设备时使用缺省控制通道。当设备被设置后,这个设备的特定软件还可使用该通道。USB系统软件保留缺省控制通道的拥有权,协调其它客户软件对通道的使用。,中国普天信息技术研究院,47,2018/12/6,一个客户软件一般都通过I/O请求包(IRP)来要求数据传送。然后,或者等待,或者当传送完成后被通知。IRP的细节是由操作系统来指定的。客户软件提出与设备上的

44、端点建立某个方向的数据传送的请求,IRP就可简单地理解为这个请求。一个客户软件可以要求一个通道回送所有的IRP。当关于IRP的总线传送结束时,无论它是成功地完成,还是出现错误,客户软件都将获得通知说IRP完成了。如果通道上没有正在传送的数据,也没有数据想使用此通道,这个通道就处于闲置状态。主机控制器对它不采取任何动作,也就是说,这个通道的端点会发现没有任何的总线动作是冲它而来的。只有当有数据在通道上时,该通道才能发现总线对它的动作.如果一个非同步通道遇到一个迫使它给主机发STALL的情况(参见第7章),或者在任一个IRP中发现3个总线错误。这个IRP将被中止。其它所有突出的IRP也一同被中止。

45、通道不再接收任何IRP,直到客户软件从这个情况中恢复过来(恢复的方式取决于软件的实现),而且承认这个中止或出现的错误,并发一个USBD Call来表明它已承认。一个合适的状态信息将通知客户软件IRP的结果出错或中止。,中国普天信息技术研究院,48,2018/12/6,一个IRP可能会需要多个数据净荷区来传递数据。这些数据区除最后一个外,都具有数据净荷区的最大长度,最后一个数据区包含了这个IRP中剩下的数据 .对这样的一个IRP,短包(也就是说未达到最大长度的数据区)在数据输入时无法填完IRP数据缓冲区。这可能会有二种不同解释,它依赖于客户软件的情况: 如果该客户软件可以接受变长的IRP,那么,

46、IRP数据缓冲区未被填满,可以看作一个分限,说明一个IRP已成功结束,主机控制器可以准备接收下一个IRP了。如果该客户软件只收定长的IRP。那么,我们认为发生了一个错误,这IRP将被中止,通道也会被阻塞,通道上的数据都中止。 因为对这两种情况,主机控制器会有不同的反应,而且采取何种措施不由控制器决定,所以对每个IRP都必须说明客户软件的具体要求。通道的端点可以用NAK信号来通知主机自己正忙,NAK不能作为向主机反还IRP的中止条件。在一个给定的IRP处理过程中,可以遇到任意多个NAK,NAK不构成错误,而且不作为上面所说的3种错误之一.,中国普天信息技术研究院,49,2018/12/6,流通道

47、流通道中的数据是流的形式,也就是该数据的内容不具有USB要求的结构。数据从流通道一端流进的顺序与它们从流通道另一端流出时的顺序是一样的,流通道中的通信流总是单方向的。对于在流通道中传送的数据,USB认为它来自同一个客户。USB系统软件不能够提供使用同一流通道的多个客户的同步控制。在流通道中传送的数据遵循先进先出原则。流管流只能连到一个固定号码的端点上,或者流进,或者流出。(这个号码是由协议层决定的) 而具有这个号码的另一个方向的端点可以被分配给其它流通道。 消息通道消息通道与端点的关系同流通道与端点的关系是不同的。首先,主机向USB设备发出一个请求;接着,就是数据的传送;最后,是一个状态阶段。

48、为了能够容纳请求/数据/状态的变化,消息通道要求数据有一个格式,此格式保证了命令能够被可靠地传送和确认。消息通道允许双方向的信息流,虽然大多数的通信流是单方向的。特别地,缺省控制通道也是一个消息通道。USB系统软件不会让多个请求同时要求同一个消息通道。一个设备的每个消息通道在一个时间段内,只能为一个消息请求服务,多个客户软件可以通过缺省控制通道发出它们的请求,但这些请求到达设备的次序是按先进先出的原则的。设备可以在数据传送阶段和状态阶段控制信息流,这取决于这些设备与主机交互的能力 。正常情况下,在上一个消息未被处理完之前,是不能向消息通道发下一个消息的。但在有错误发生的情况下,主机会取消这次消息传送,并且不等设备将已收的数据处理完,就开始下一次的消息传送。在操作通道的软件看来,一个IRP中的错误,使这个IRP被取消,并且所有正排队等待的IRP一同也被取消。申请这个IRP的客户被通知IRP结束,且有出错提示。消息通道后有两个相同号码的端点,一个用于输入,一个用于输出。两个号码必须相同.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 说明文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报