《微型计算机通信与接口技术(二版)》课件.ppt

上传人:小飞机 文档编号:3865296 上传时间:2023-03-25 格式:PPT 页数:176 大小:1.90MB
返回 下载 相关 举报
《微型计算机通信与接口技术(二版)》课件.ppt_第1页
第1页 / 共176页
《微型计算机通信与接口技术(二版)》课件.ppt_第2页
第2页 / 共176页
《微型计算机通信与接口技术(二版)》课件.ppt_第3页
第3页 / 共176页
《微型计算机通信与接口技术(二版)》课件.ppt_第4页
第4页 / 共176页
《微型计算机通信与接口技术(二版)》课件.ppt_第5页
第5页 / 共176页
点击查看更多>>
资源描述

《《微型计算机通信与接口技术(二版)》课件.ppt》由会员分享,可在线阅读,更多相关《《微型计算机通信与接口技术(二版)》课件.ppt(176页珍藏版)》请在三一办公上搜索。

1、第8章 USB通用串行总线 及应用,本章学习目标 本章介绍了USB接口1.1规范。通过对本章的学习,读者应该掌握以下主要内容:USB总线体系结构 USB数据流模型 USB协议、构架,8.1 USB总线体系结构,1.起因,Intel公司开发的通用串行总线架构(USB)的目的主要基于以下三方面考虑:(一)计算机与电话之间的连接(二)易用性(三)端口扩充,1.USB规范的目标,本章规范了USB的工业标准。该规范介绍了USB的总线特点、协议内容、事务种类、总线管理、接口编程的设计,以及建立系统、制造外围设备所需的标准。,3.USB的设计目标,USB的工业标准是对PC机现有的体系结构的扩充。USB的设计

2、主要遵循以下几个准则:,易于扩充多个外围设备;价格低廉,且支持12M比特率的数据传输;对声音音频和压缩视频等实时数据的充分支持;协议灵活,综合了同步和异步数据传输;兼容了不同设备的技术;综合了不同PC机的结构和体系特点;提供一个标准接口,广泛接纳各种设备;赋予PC机新的功能,使之可以接纳许多新设备。,4.使用的分类,表9-1按照数据传输率(USB可以达到)进行了分类。可以看到,12M比特率可以包括中速和低速的情况。总的来说,中速的传输是同步的,低速的数据来自交互的设备,USB设计的初衷是针对桌面电脑而不是应用于可移动的环境下的。软件体系通过对各种主机控制器提供支持以保证将来对USB的扩充。,5

3、.特色,USB的规范能针对不同的性能价格比要求提供不同的选择,以满足不同的系统和部件及相应不同的功能,其主要特色可归结为以下几点:终端用户的易用性:为电缆和连接头提供了单一模型;电气特性与用户无关;自我检测外设,自动地进行设备驱动、设置;动态连接,动态重置的外设。,广泛的应用性:适应不同设备,传输速率从几千比特率到几十兆比特率;在同一线上支持同步、异步两种传输模式;支持对多个设备的同时操作;可同时操作127个物理设备;在主机和设备之间可以传输多个数据和信息流;支持多功能的设备;利用低层协议,提高了总线利用率。,同步传输带宽:确定的带宽和低延迟适合电话系统和音频的应用;同步工作可以利用整个总线带

4、宽。灵活性:可以有很多不同大小的分组,允许对设备缓冲器大小的选择;通过指定数据缓冲区大小和执行时间,支持各种数据传输率;通过协议对数据流进行缓冲处理。,健壮性:出错处理/差错恢复机制在协议中使用;对用户感觉而言,热插拔是完全实时的;可以对有缺陷设备进行认定。与PC产业的一致性:协议的易实现性和完整性;与PC机的即插即用的体系结构的一致;对现存操作系统接口的良好衔接。,价廉物美:以低廉的价格提供1.5兆比特率的子通道设施;将外设和主机硬件进行了最优化的集成;促进了低价格的外设的发展;廉价的电缆和连接头;运用了商业技术。升级路径:体系结构的可升级性支持了在一个系统中可以有多个 USB主机控制器。,

5、8.1.2 体系结构,一个USB系统主要被定义为三个部分 USB的互连;USB的设备;USB的主机。,USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:总线的拓扑结构:USB设备与主机之间的各种 连接方式;内部层次关系:根据性能叠置,USB的任务被 分配到系统的每一个层次;数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式;,USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。USB的设备及主机的细节将讲述于后。,1.总线布局技术,图9.1 总线的扑结构,USB连接了USB设备和USB主

6、机,USB的物理连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件,从图9.1中可看出USB的拓扑结构。,USB的主机,在任何USB系统中,只有一个主机。USB和主机系统的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现。根集线器是由主机系统整合的,用以提供更多的连接点。,USB的设备,USB的设备如下所示:网络集线器:向USB提供了更多的连接点;功能器件:为系统提供具体功能,如ISDN的连接,数 字的游戏杆或扬声器。,USB设备提供的USB标准接口的主要依据:对USB协议的运用;对标准USB操作的反

7、馈,如设置和复位;标准性能的描述性信息;,2.物理接口,图9.2USB 的电缆,电气特性 USB传送信号和电源是通过一种四线的电缆,图9.2中的两根线是用于发送信号。,存在两种数据传输率:USB的高速信号的比特率定为12Mbps;低速信号传送的模式定为1.5Mbps;,低速模式需要更少的EMI保护。两种模式可在用同一USB总线传输的情况下自动地动态切换。电缆中包括VBUS、GND二条线,向设备提供电源。,机械特性 所有设备都有一个上行的连接。电缆中有四根导线:一对互相缠绕的标准规格线,一对符合标准的电源线,连接器有四个方向,具有屏蔽层,以避免外界干扰,并有易拆装的特性。,3.电源,主要包括两方

8、面:电源分配:即USB的设备如何通过USB分配得到由 主计算机提供的能源;电源管理:即通过电源管理系统,USB的系统软 件和设备如何与主机协调工作。,4.总线协议,USB总线属一种轮询方式的总线,主机控制端口初始化所有的数据传输。,存在两种类型的通道:流 消息,5.健壮性,USB健壮性的特征在于:使用差分的驱动接收和防护,以保证信号完整性;在数据和控制信息上加了循环冗余码(CRC);对装卸的检测和系统级资源的设置;对丢失或损坏的数据包暂停传输、利用协议自我恢复;,对流数据进行控制,以保证同步信号和硬件缓冲管理的安全;数据和控制通道的建立,使功能部件的相互不利的影响独立开,消除了负作用。,错误检

9、测,错误处理,6.系统设置,USB设备可以随时的安装和折卸,因此,系统软件在物理的总线布局上必须支持这种动态变化。,USB设备的安装,USB设备的拆卸,总线标号,7.数据流种类,数据和控制信号在主机和USB设备间的交换存在两种通道:单向 双向。USB的结构包含四种基本的数据传输类型:,控制数据传送 批量数据传送 中断数据的传送 同步数据的传送:,对于任何给定的设备进行设置时一种通道只能支持上述一种方式的数据传输。,控制数据传送,批量数据传送,中断数据传输,同步传输,指定USB带宽,8.USB设备,设备特性,在零号端口上,控制通道中的信息应完整地描述USB设备、此类信息主要有以下几类:,标准信息

10、 类别信息 USB厂商信息,设备描述,集线器在即插即用的USB的结构体系中,集线器是一种重要设备。图9.3所示是一种典型的集线器。从用户的观点出发,集线器极大简化了USB的互连复杂性,而且以很低的价格和高易用性提供了设备的健壮性。,下面列举了一些功能部件(图9.4):,USB主机:硬件和软件,USB的主机通过主机控制器与USB设备进行交互。主机功能如下:,检测USB设备的安装和拆卸,管理在主机和USB设备之间的控制流;,管理在之间的数据流主机和USB设备;,收集状态和动作信息;,提供能量给连接的USB设备。,主机上USB的系统软件管理USB设备和主机上该设备软件之间的相互交互,USB系统软件与

11、设备软件间有三种相互作用方式:,设备编号和设置;同步数据传输;异步数据传输;电源管理 设备和总线管理信息。,8.2 USB数据流模型,8.2.1 实现者的视图,SB提供了在一台主机和若干台附属的USB设备之间的通信功能,从终端用户的角度看到的USB系统,可简单地用图9.5表示:,图9.5 USB主机/设备的简单模型,USB的这种层次结构如图所示,各层次的具体细节将在以后逐步介绍。特别地,有四个层次的实现是较为集中的,USB物理设备(USB Physical Device)客户软件(client software)USB系统软件(USB system software)USB主机控制器(USB

12、Host Controller),如图9.6所示,一台主机与一个USB设备间的连接是由许多层上的连接组成。,图9.6 USB需实现的区域,本章描述一些核心概念,USB系统的实现者必须先掌握它们,然后在往后几章中阅读更加详细的部分。,为了描述和管理USB通信,以下概念是很重要的:,总线拓朴(Bus Topology):,USB的基本物理组成、基本逻辑组成,以及各组成部分之间的相互关系。,通信流模型(Communication Flow Models):,描述主机与设备如何通过USB通信,以及通信所用的四种通信类型。,总线访问管理(BUS Access):,主机面对大量的USB设备的各种通信要求,

13、如何控制、协调总线的访问。,关于同步传送的考虑:,对要求同步传送的设备提供一些特性。非同步传送设备的实现者不必阅读此节。,8.2.2 总线拓朴,总线拓朴结构包括四个重要的组成部分。主机和设备 物理拓朴结构 逻辑拓朴结构 客户软件层与应用层的关系,1.USB主机,主机的逻辑结构如图9.7,包括 USB主机控制器(USB Host Controller)USB系统软件集合 客户软件,2.USB设备,一个USB设备的逻辑结构如图9.8所示,包括 USB总线接口 USB逻辑设备 应用层 USB设备用于向主机提供一些额外的功能。USB设备提供的功能是多种多样的,但面向主机的接口却是一致的。所以,对于所有

14、这些设备,主机可以用同样的方式来管理它们与USB有关的部分。,图9.7 主机的组成,图9.8 物理设备组成,总线的物理拓朴结构,USB系统中的设备与主机的连接方式采用的是星形连接,如图9.9,图9.9 USB物理总线的拓扑,总线逻辑拓朴结构,在物理结构上,设备通过Hub连到主机上。但在逻辑上,主机是直接与各个逻辑设备通信的,就好像它们是直接被连到主机上一样,如图9.10,图9.10 USB逻辑总线的拓扑,客户软件层与应用层的关系,USB系统的物理上、逻辑上的拓朴结构反映了总线的共享性。,图9.11 客户软件和应用间的关系,8.2.3 USB通信流,USB是为主机软件和它的USB应用设备间的通信

15、服务的,对客户与应用间不同的交互,USB设备对数据流有不同的要求。图9.12更详尽地描述了USB系统,支持了逻辑设备层和应用层间的通信。实际的通信流要经过好几个接口边界。,主机控制器的驱动程序(HCD),USB驱动程序(USBD),图9.12 USB主机/设备的细节图,图中说明了数据如何在主机侧中的内存缓冲和设备中的端点中传送。,1.设备端点,一个端点是一个可唯一识别的USB设备的Portion,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。,一个端点的特性决定了它与客户软件进行的传送的类型。一个端点有以下特性:,端点的总线访问频率要求 端点的总线延迟要求

16、端点的带宽要求 端点的端点号 对错误处理的要求 端点能接收或发送的包的最大长度 端点的传送类型 端点与主机的数据传送方向,对0号端点的要求,对非0号端点的要求,2.通道,一个USB通道是设备上的一个端点和主机上软件之间的联系。体现了主机上缓存和端点间传送数据的能力。,有两个不同的且互斥的通道通信格式。流(Stream)消息(Message),特别地,有下列概念与通道相关:对USB总线访问的申请(claim),带宽的使用情况的声明。传送类型 与通道相连的端点的特性,例如:端点的数据传送方向,最大数据净负荷区的长度。,8.2.4 传送类型,每个传送类型在以下的几个传送特征上会有不同:USB规定的数

17、据格式数据净荷区的长度限制 总线访问的限制 延时的限制 出错处理,USB定义了4种传送类型:,控制传送 同步传送 中断传送 批传送,控制传送,控制传送由以下几个事务组成:(1)建立联系(2)零个或多个数据传送事务(3)状态信息回传,同步传送,在非USB的环境下,同步传送意味着恒定速率、错误容忍(error-tolerant)的传送。在USB环境下,要求同步传送能提供以下几点:固定的延迟下,确保对USB带宽的访问。只要数据能提供得上,就能保证通道上的恒定数据传送速度。如果由于错误而造成传送失败,并不重传数据。,中断传送,中断传送是为这样一类设备设计的,它们只传或收少量数据,而且并不经常进行传送,

18、但它们有一个确定的服务周期,对中断传送有以下要求:通道的最大服务期得到保证。由于错误而引起的重发在下一服务期进行。,1.中断传送的数据格式2.中断传送的方向3.中断传送对包的长度的限制4.中断传送对总线访问的限制5.中断传送的数据顺序,批传送,为了支持在某些在不确定的时间进行的相当大量的数据通信,于是设计了批传送类型。它可以利用任何可获得的带宽。批传送有以下几点特性:以可获得带宽访问总线。如果总线出现错误,传送失败,可进行重发。可以保证数据必被传送,但不保证传送的带宽和延迟。,批传送的数据格式2.批传送的方向3.批传送对包长度的限制,如果出现以下情况,则认为批传送结束:已传的数据量恰好等于期望

19、传送的量。传了一个不到w Max Packet Size长度的包或传了一个长度为0的包。,4.批传送对总线访问的限制,5.批传送的数据顺序,传送的总线访问,要完成主机与USB设备间的任何数据传送,必须要使用一定的USB带宽。主机上有几个部分是用于协调USB上的信息流的,它们是:客户软件 USB驱动器(USBD)主机控制器驱动器(HCD)实现这些部件必须要了解关于总线访问的一些核心概念:,传送管理:,用于支持USB上信息流的各实体和各对象。,事务跟踪:,一种USB机制,跟踪在USB系统中的事务。,总线时间:,总线传一个信息包的时间。,设备/软件缓冲区大小:,支持一个事务所需要的空间。,总线带宽归

20、还:,被分配给其它传送的总线带宽未被使用时,可以重新给控制传送和批传送使用。,这节介绍主机上的不同部分如何相互协调工作来支持USB上的数据传送,他们可以由此知道当客户请求传送时主机该做什么,以及传送请求是如何被发给设备的。,1.传送管理,传送管理涉及以下几个为不同目标工作的部分,它们共同工作使数据能在总线上传送:客户软件 USBD(USB驱动器)主机控制器驱动器(HCD)主机控制器,从客户软件到总线的USB信息转换,2 客户软件,3.USB驱动器(USBD),4.主机控制器驱动器(HCD),5.事务表,8.3 USB的电气特性,8.3.1 信号的发送,1.USB驱动器的特性及其使用,一个USB

21、设备端的连接器是由D+、D-及Vbus,GND和其它数据线构成的简短连续电路,并要求连接器上有电缆屏蔽,以免设备在使用过程中被损坏。它有两种工作状态,即低态和高态。在低态时,驱动器的静态输出端的工作电压Vol变动范围为03V,且接有一个15k的接地负载。处于差分的高态和低态之间的输出电压变动应尽量保持平衡,以能很好地减小信号的扭曲变形。,所有集线器和高速的功能设备上形端口(朝主机方向的)必须使用高速的驱动器,上形集线器端口既可以高速又可以低速来传送数据,但是在信号发送时总是使用高速和边缘速率。低速数据的传输不改变驱动器的特性,低速设备的上形端口必须使用低速驱动器。所有集线器(包括主机的)外部下

22、形端口必须能适用于两种特性的驱动器,也就是说,任何类型的设备都能被插入这些端口中。当收发器工作在高速模式时,它使用高速和边缘速率来进行信号的发送;工作在低速时,它使用低速和边缘速率来发送数据。,2.接收器特性,一个差分输入接收器用来接收USB数据信号,当两个差分数据输入处在共同的0.82.5V的差分模式范围时,如图7.14所示,接收器必须具有至少200mv的输入灵敏度。除了差分接收器外,还必须有为两个数据线中任一个所用的单终端接收器,此时该接收器的合并磁滞现象可以减小它们对噪声的灵敏度。,差分输入感抗范围,在差分信号传送期间,D+和D-线上的电压可以小于Vih。对于高速传送而言,这个阶段可以延

23、续到14ns;对于低速传送,可延续到I/V ns之久。接收器的逻辑设备用于保证这种情况不会被当作SE0态来处理。,3.输入特性,没有终端的D+或D-的输入阻抗必须大于300K,一个端口的输入电容量在连结器的端口处量得。上形和下形端口可以有不同值的电容,一个集线器或主机的下形端口所允许的D+或D-上的最大电容量(差分的或单终端的)为150pF;带有可分电缆的高速设备的上形端口所允许的D+或D-上的最大电容量为100pF。,8.3.2 电压分布,所有USB设备的缺省电压为低电压,当设备要从低电压变化到高电压时,则是由软件来控制的。在允许设备达到高电压之前,软件必须保证有足够的电压可供使用。,USB

24、支持一定范围的电压来源和电压消耗供应者,包括如下的部分。,根端口集线器:它是直接与USB主机控制器相连的,并与其相同的电源来源。,从总线获得电压的集线器:它的所有内部功能设备和下形端口都从它的上形端口的Vbus上获得电压。,8.4 协议层,这节从字段(Field)和包(Packet)的定义开始,从底向上地展示USB(Univeral Serial Bus)协议。接着是对不同事务(Transaction)类型的包事务格式的描述。然后是链路层(Link layer)流程控制(Flow Control)和事务级别的故障恢复(Fault recovery)。本章的最后将讨论复执同步化(Retry sy

25、nchronization),超时干扰(Babble)和总线活动丧失(Loss of bus activity)的恢复。,8.4.1概述,位定序 数据位被发送到总线的时候,首先最低有效位(LSb),跟着是下一个最低有效位,最后是最高有效位(MSb)。在以后图表中的,包以下列形式给出,即包中单个的位和字段从左到右的顺序就是它们通过总线的顺序。,2.同步字段,所有的包都从同步(SYNC)字段开始的,同步字段是产生最大的边缘转换密度(Edge TransitionDensity)的编码序列。同步字段作为空闲状态出现在总线上,后面跟着以NRZI编码的二进制串“KJKJKJKK”。通过被定义为8位长的二

26、进制串,输入电路以本地时钟对齐输入数据。同步字段是用于同步的机制,在以后图表当中将不被表示。同步字段里的最后的2位是同步字段结束的记号,并且标志了包标识符(PID,Packet Identifer)的开始。,3.包字段格式,在后面几节将描述标记,数据和握手包的字段格式。包中位的定义是以未编码的数据格式给出。为了清楚起见,在此不考虑NRZI编码和位填充(Bit Stuffing)的影响。所有的包都分别有包开始(Start-of-Packet)和包结束(End-of-Packet)分隔符。包开始(SOP)分隔符是同步字段的一部分,包结束(EOP)分隔符。,1.包标识符字段,所有USB包的同步字段后

27、都紧跟着包标识符(PID)。如图7.15所示,包标识符由4位的包类型字段和其后的4位的校验字段构成。包标识符指出了包的类型,并由此隐含地指出了包的格式和包上所用错误检测的类型。,包标识符的4位的校验字段可以保证包标识符译码的可靠性,这样包的余项也就能被正确地解释。包标识符的校验字段通过对包类型字段的二进制的求反码产生的。如果4 个PID检验位不是它们的各自的包标识符位的补,则说明存在PID错。,主机和所有功能部件都必须对得到全部PID字段实行完整的译码。任何收到包标识符,如果含有失败的校验字段,或者经译码得到未定义的值,则该包标识符被假定是被损坏的,而且包的余项将被包接收机忽略(Ignore)

28、。如果一个功能部件(Function)收到了包含了它所不支持的事务类型或方向的合法包标识符,则不必应答。例如,只能输入的端口(IN-only Endpoint)必须忽略输出标记(Token)。表7-2列出了包标识符类型,编码及其描述。,*注解:PID位以最高位在前的顺序被表示。在USB上被发送的时候,最右的位(位0)将被第一个发出。,包标识符被分为4个编码组:标记,数据,握手和专用。包标识符传送的前2位(PID)指出了其属于哪个组。这说明包标识符编码的分布。,2.地址字段,功能部件端口使用2个字段:功能部件地址字段和端口字段。功能部件对地址和端口字段都需要进行译码。不允许使用地址或端口别名,(

29、Aliasing),并且任何一个字段不匹配,此标记都必须被忽略。另外,对未初始化的端口的访问将使得标记被忽略。,地址字段,功能部件地址(ADDR)字段通过其地址指定功能部件,至于是数据包的发出地还是目的地,则取决于标记PID的值。如图9.16所示,ADDR指定了总共128个地址。地址字段被用于输入,建立和输出标记。由定义可知,每个ADDR值都定,义了单一的功能部件。刚一复位(Reset)和加电(Power-up)的时候,功能部件的地址默认值为零,并且必须由主机在枚举过程(Enumeration Process)中编程。功能部件地址零被用作为缺省地址,不可被分配作任何别的用途。,地址字段,端口字

30、段,附加的4位的端口(ENDP)字段在功能部件需要一个以上端口时候允许更灵活的寻址。除了端口地址0之外,端口个数是由功能部件决定的。端口字段只对输入,建立和输出标记PID有定义。所有的功能部件都必须在端口0提供一个控制管道(缺省控制管道)。对于低速(Low Speed)设备,每个功能部件最多提供3个管道:在端口0的控制管道加上2个附加管道(或是2个控制管道,或是1个控制管道和1个中断端口,或是2个中断端口)。全速(Full Speed)功能部件可以支持最多可达16个的任何类型的端口。,端口字段,3.帧号字段,帧号字段是一个11位的字段,主机每过一帧就将其内容加一。帧号字段达到其最大值7FFH时

31、归零,且它仅每个帧最初时刻在SOF标记中被发送。,4.数据字段,数据字段可以在0到1,023字节之间变动,但必须是整数个字节。图为多字节显示格式。每个字节的范围内的数据位移出时都是最低位(LSb)在前。数据包大小随着传送类型而变化。,数据字段格式,5.循环冗余校验,循环冗余校验(CRC)被用来在标记和数据包中保护所有的非PID字段。在上下文中,这些字段被认为是保护字段。PID不在含有CRC的包的CRC校验范围内。在位填充之前,在发送器中所有的CRC都由它们的各自的字段产生。同样地,在填充位被去除之后,CRC在接收器中被译码。,标记CRC,标记使用了5位的CRC字段,它覆盖了输入,建立和输出标记

32、的ADDR和ENDP字段,或SOF标记的时间戳字段。生成多项式如下:,这个多项式的二进制位组合是00101B。如果所有的标记位都被准确无误地收到,接收机中的5位剩余将是01100B。,数据CRC,数据CRC是作用于数据包的数据字段上的16位多项式。产生的多项式是如下,这个多项式的二进制位组合是1000000000000101B。如果全部的数据和CRC位被准确无误地收到,16位剩余将是1000000000001101B。,8.4.2 包格式,这节展示标记,数据和握手包的包格式。这些图将以位被挪动到总线上的顺序显示包内的字段。,1.标记包,标记由PID,ADDR和ENDP构成,其中PID指定了包是

33、输入,输出还是建立类型。对于输出和建立事务,地址和端口字段唯一地确定了接下来将收到数据包的端口。对于输入事务的,这些字段唯一地确定了,哪个端口应该传送数据包。只有主机能发出标记包。输入PID定义了从功能部件到主机的数据事务。输出和建立PID定义了从主机到功能部件的数据事务。,2.帧开始(SOF,Start-of-Frame)包,主机以每1.00 ms 0.0005 ms一次的额定速率发出帧开始(SOF)包。SOF包是由指示包类型的PID和其后的11位的帧号字段构成。,3.数据包,数据包由PID,包括至少0个字节数据的数据区和CRC构成。有2种类型的数据包,根据不同的PID:DATA0和DATA

34、1来识别。2种数据包PID是为了支持数据切换同步(Data Toggle Synchronization)而定义的。,4.握手包,握手包仅由PID构成。握手包用来报告数据事务的状态,表示数据成功接收,命令的接收或拒绝,流控制(Flow Control)和停止(Halt)条件。,有3种类型的握手包:,ACK表示数据包没有位填充或数据字段上的CRC错,并且数据PID被正确收到。NAK表示功能部件不会从主机接受数据(对于输出事务),或者功能部件没有传输数据到主机(对于输入事务)。STALL作为输入标记的回应,或者在输出事务的数据时相之后由功能部件返回。,STALL握手由设备用于在两个不同的场合之一。

35、第一种情况,是当设置了与端口相联系挂起特征(Halt feature)的时候,称为“功能STALL(functional stall)”(挂起特征在这文档的第9章中详细说明)。第二种情况称为“协议STALL(protocol stall)”。,5.握手回答(Handshake Response),传输和接收功能部件必须根据一定的优先顺序返回握手。,功能部件对输入事务回答,表9-3显示了功能部件作为对输入标记的反应而可能做的回答。,功能部件对输入事务的回应,主机对输入事务回答,显示了主机对输入事务回答。主机只能返回1种类型的握手:ACK。,功能部件对输出事务回答,对输出事务的握手回答由表9-5表

36、示。,功能部件对建立事务的回答,功能部件对输出处理的回应(按优先顺序),8.4.5 错误检测和恢复,USB允许可靠的端到端(End-to-end)的通信,这种通信容许产生物理信号层上的错误。,1.包错误种类,USB使用3种错误检测机制:位填充违反,PID检验位和CRC。,包错误类型,2.总线周转(Turn-around)时间,不作肯定答复则被认为是有错误的。作为这种错误汇报的方法的结果,主机和USB功能部件需要知道从发送器发完包的时候算起直到它开始收到应答为止过了多少时间。这一段时间被称为总线周转时间。,设备在标记和数据时相之间或数据和握手时相之间使用其总线周转计时器。,3.错误的EOP,错误

37、的EOP必须被处理,以确保当前事务的包在主机或其它设备试图传输新包之前完成。,等待16个位的时间保证了2个条件:,第一个条件是确定了设备已结束发送它的包。,第二的条件是保证发送器的总线周转计时器终止。,8.5 USB设备架构,USB设备可被划分三层:,底层是传送和接收数据包的总线接口 中间层处理总线接口与不同端点之间的数据路由端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端(Sink)最上层的功能由串行总线设备提供,比如鼠标,或ISDN接口。,8.5.1 USB设备状态,USB设备有若干可能的状态,其中一些对于USB与主机(host)来说是外置的,而另外一些对USB设备来说是内置

38、的,1.外置的设备状态,表汇集这些外置设备状态之间的转化关系。,连接状态,加电状态(Powered),外置(可见)的设备状态,设备状态转化图,缺省状态,地址状态,Configured(配置状态),中止状态,2.Bus Enumeration总线标号,当USB设备接上一个加电端口时,系统当采取以下操作:,USB设备所连的集线器通过其通向主机的状态改变通道向主机,汇报本USB设备已连接上。主机通过寻问集线器决定此次状态改变的确切含义。主机一旦得知新设备已连上以后,它至少等待100ms以使得插入操作的完成以及设备电源稳定工作。集线器将发向端口的复位信号持续10ms。,主机给设备分配一个唯一的地址,设

39、备转向编址状态。(Address state)。在USB设备接受设备地址之前,它的缺省控制通道(Default Control Pipe)在缺省地址处自然是可寻址的,主机通过读取设备描述表,判决设备缺省通道的实际净数据负载。主机从设备读取配置信息要从配置0读到配置n-1,其中n为配置个数,此操作须花费几个毫秒。,基于从设备取来的配置信息及设备如何被使用的信息,主机给设备一个配置值,此刻,设备就处于配置状态(Configured state)并此配置有关的所有端节点,都按照配置各就各位,USB设备现在可以从VBUS得到描述中所要求的电量了。,8.5.2 通用USB设备操作(Generic USB

40、 Device Operations),所有的USB设备支持通用的操作集,这一节主要描述的这些操作。,1.动态插接与拔开,USB设备必须在任意时刻允许被插接与拔开。提供连接点或端口的集线器应当负责汇报端口的状态改变情况。,当主机探测到连接操作后,会使得所连的集线器端口生效,设备也会因此而复位,一个被复位了的USB设备有如下特性:,对缺省USB地址发生响应 没有被配置 初始状态不是挂起,2.地址分配,3.配置,当USB设备连接以后,由主机负责给此设备分配一个唯一的地址,这个操作是在设备复位及端口使能操作以后。,USB设备在正常被使用以前,必须被配置,由主机负责配置设备。主机一般会从USB设备获取

41、配置信息后再确定此设备有哪些功能。,4.数据传送,5.电源管理,数据可能以四种方式在USB设备端结点与主机之间传送。,USB设备的电源管理包括以下说明部分的几条。,电源 远程唤醒,6.请求处理,除SetAddress()请求以外,在安装完成返回ACK信号以后,设备就开始处理请求。,请求处理的定时处理,复位/继续 恢复时间,设置地址的处理,标准设备请求,与类有关的请求,7.请求错误,如果一设备收到一个请求,它或是在设备中无定义,或是不适用于当前设置,或是数值不对,这时就会产生一个请求错误。,8.5.3 USB设备请求,所有的USB设备在设备的缺省控制通道(Default Control Pipe

42、)处对主机的请求发出响应。,Setup 数据包的格式,1.bmRequestType域,2.bRequest域,3.wValue域,4.wIndex域,所指为端点时wIndex 格式,5.wLength域,8.5.4 描述表,USB设备通过描述表来反映他们的属性。描述表是有定义好的格式的数据结构,每一个描述表以一个字节打头表明本描述表的长度,紧跟其后是一个字节的描述表类信息。,1.如果这两种描述表的格式与标准格式相同(以长度字节打头,紧跟着类型字节)则它们可由GetDescriptor(Configuration)请求与标准描述一同返回。2.如果这两种描述表使用的非标准格式。,8.5.5 设备

43、类定义,所有的设备必须支持本章所讲的请求与描述表,多数设备还有设备特有的扩展的请求与描述表。另外,设备还会支持一组设备共有的服务。,1.描述表,2.接口与节点的使用,3.请求,8.6 USB主机:硬件与软件,USB的互连支持数据在USB主机与USB设备之间的流动。,8.6.1 USB主机概况,1.概论 图8.27展示了USB通信模型之间基本的信息流与互连关系:,由图8.51可见,主机与设备都被划分成不同的层次。,主机通信图,机在整个USB系统中是唯一的,它包括如下几个层次。USB总线接口 USB系统(USB System)USB客户(Client),USB系统有三个主要组成部份:主机控制器驱动

44、(Host Controller Driver)USB驱动(USB Driver)主机软件(host software),主机可提供如下的功能检测USB设备的连接与断开。管理主机与设备之间的标准控制流。管理主机与设备之间的数据流。收集状态及一些活动的统计数字。控制主机控制器与USB设备的电气接口,包括提供有限的能源。,2.控制机构,控制信号可通过带内信号(in-band-singling)及带外信号(out-of-bard-signaling)两种方式在主机与设备之间传输。带内信号将,3.数据流,USB支持4种形式的数据传输 控制传输。同步传输。中断传输。块传输。,每个通道基于数据传输模式和请

45、求的有如下几个特性:数据传输的频率。数据是以恒定速率提供还是随机出现的。在数据传输前可延迟的时间。在传输过程中数据的丢失是否是具有灾难性。,4.收集状态及活动统计数据,电气接口因素 主机为连在集线器上的USB设备提供能量。,8.6.2 主机控制器功能,在所有的实现中,主机控制器都必须提供基本相同的功能。下面是主机控制器所提供的功能的概况。,状态处理(State Handling)串行化与反串行化 帧产生(Frame Generation)数据处理 协议引擎 传输差错控制,远程唤醒集线器 主机系统接口,8.6.3 软件功能概论,对USB系统的功能主要表现在对USBDI所能提供的功能上。USBD与

46、HCD之间任务的划分没有具体的定义,但是HCDI必须要具备的一项功能就是它必须支持多种主机控制器的不同实现。通过USBDI实现数据传输所经历的过程将在下面得到简述。,1.设备配置,在使用之前必须要完成如下三项配置工作:,设备配置,USB配置,功能配置,配置软件完成具体的配置工作。具体的配置软件将基于特定的操作系统实现而有所不同,但一般它包括以下几个部份。,集线器驱动器 其它主机软件 设备驱动程序,2.资源管理,为了决定带宽是否能满足,或者传输事务能否被装入特定的帧,必须计算事务最大执行时间。在计算过程中使用到下述信息 每包的最大数据字节数 传输模式 拓扑结构深度,3.数据传输,当USB系统决定

47、进行请求的分割的时候,必须要考虑到以下两点:将数据流分割成更小的块操作对客户是不可见的。USB样本(Samples)在总线传输时是不被分割的。,下面的数据成份定义了一次请求的相关信息。与该请求有关的通道标识。特定客户的通知标志码。数据缓冲区的位置及长度 请求的结束状态,包括总的状态及每次事务的结束状态 工作缓冲区的位置及长度。,8.6.4 主机控制器驱动器,HCD是主机控制器硬件的抽象,同时也是对主机控制器所见的数据传输的抽象。HCDI应符合下列条件:,提供一个抽象的主机控制器硬件。提供主机控制器在USB上传输数据过程的抽象。提供主机控制器为给定设备分配(或不分配)必需的资源过程的抽象。根据一

48、般集线器的定义提供根集线器。,HCD是USB软件中的最下一层。HCD只有一个客户:USB驱动器(USBD)。,8.6.5 USBD,USBD提供了供操作系统组件特别是设备驱动程序访问设备的一组接口。这些操作系统组件只能通过USBD来访问USB。,1.USB概况,USBD的客户直接命令设备或从通道直接输入和输出数据流。USBD为客户提供两组工具 命令工具 通道工具。,USB 驱动结构,USBD初始化,USBD通道使用,通道是设备与主机的逻辑连结,在两类不同客户所拥有的通道之间还存在一定的差异:,标准通道(default pipe)其他的通道(all other pipes),标准通道,USBD有

49、义务分配及管理恰当的缓冲区以支持对客户不可见的标准通道上的数据传输。比如设置设备的地址等。对于一些客户可见的传输,比如像传送厂商定义或有关设备类的命令,或者读取设备的描述符,客户提供必须的数据缓冲区。,客户通道,所有不是被USBD拥有及管理的通道都可由客户拥有及管理。从USBD的观点看,一个单独的客户拥有该通道。实际上可以是一组用户管理通道,只要该组用户在使用通道时表现出单个客户的行为。,USBD服务功能(Service Capabilities),USBD提供如下种类的服务:,通过命令工具配置设备 通过命令工具及通道工具提供传输服务 事件通知 状态报告及错误恢复,USBD命令工具功能SBD命

50、令传输时并不需要USB设备是已被配置好。USBD提供的设备配置设施大部分使用是用命令传输。下面的是有关命令工具提供的功能,接口状态控制,通道状态控制,USBD通道状态由两部份组成 主机状态。反映的端口状态。,一个USBD可以处于如下的状态之一,活跃态挂起状态废弃一个通道重设通道清除被挂起通道挂起通道,获取描述码,USBD提供取得标准设备描述符,设备配置描述符,字串描述符和设备类或者厂商定义的描述符的功能。,取得当前配置参数,USBD提供取得任何设备当前配置参数的描述符的功能。如果设备没有被配置,则不返回描述符。当客户请求为设备设置特定的参数时也返回当前配置的描述符。返回的配置信息中包括如下一些

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号