新闻  |   论坛  |   博客  |   在线研讨会
USB协议及规范---(之一)绪论
tvb2058 | 2007-12-13 14:38:58    阅读:3259   发布文章

第1章 绪论

1.1  起因
     Intel公司开发的通用串行总线架构(USB)的目的主要基于以下三方面考虑:
    (一)计算机与电话之间的连接:显然用计算机来进行计算机通信将是下一代计算机基本的应用。机器和人们的数据交互流动需要一个广泛而又便宜的连通网络。然而,由于目前产业间的相互独立发展,尚未建立统一标准,而USB则可以广泛的连接计算机和电话。
    (二)易用性:众所周知,PC机的改装是极不灵活的。对用户友好的图形化接口和一些软硬件机制的结合,加上新一代总线结构使得计算机的冲突大量减少,且易于改装。但以终端用户的眼光来看,PC机的输入/输出,如串行/并行端口、键盘、鼠标、操纵杆接口等,均还没有达到即插即用的特性,USB正是在这种情况下问世的。
    (三)端口扩充:外围设备的添加总是被相当有限的端口数目限制着。缺少一个双向、价廉、与外设连接的中低速的总线,限制了外围设备(诸如电话/电传/调制解调器的适配器、扫描仪、键盘、PDA)的开发。现有的连接只可对极少设备进行优化,对于PC机的新的功能部件的添加需定义一个新的接口来满足上述需要,USB就应运而生。它是快速、双向、同步、动态连接且价格低廉的串行接口,可以满足PC机发展的现在和未来的需要。
 
1.2  USB规范的目标
    本书规范了USB的工业标准。该规范介绍了USB的总线特点、协议内容、事务种类、总线管理、接口编程的设计,以及建立系统、制造外围设备所需的标准。
    设计USB的目标就是使不同厂家所生产的设备可以在一个开放的体系下广泛的使用。该规范改进了便携商务或家用电脑的现有体系结构,进而为系统生产商和外设开发商提供了足够的空间来创造多功能的产品和开发广阔的市场,并不必使用陈旧的接口,害怕失去兼容性。

1.3  适用对象
    ·该规范主要面向外设开发商和系统生产商。并且提供了许多有价值的信息给操作系统/BIOS/设备驱动平台、IHVS/ISVS适配器,以及各种计算机生产厂家使用。
    ·该USB版本的规范可以用来设计开发新产品,改进一些经典的模型,并开发相应的软件。所有的产品都应遵循这个规范——USB 1.1。

1.4  本书结构
    第一章至第四章为读者提供了一个纲要,第五章至第十章则提供了USB的所有的具体技术细节。
    ·外设厂家应着眼于第四章至第十章
    ·USB的主机控制器应用主要参考第四章至第七章和第九、十章。
    ·USB 设备驱动厂家主要参考第四、七、九章
     《Universal Serial Bus Device Class Specification》一书可以作为本书的补充和参考。各种设备的规范是形形色色的,如有疑问,请与USB Implements Forum索要更多细节。
读者也可以为向操作系统厂商索取关于USB的一些具体特性。

   


       
第2章 背景知识

     本章将对USB背景知识作简单描述,其中主要包括设计目标、总线特性,以及现行技术特点。

2.1  USB的设计目标
     USB的工业标准是对PC机现有的体系结构的扩充。USB的设计主要遵循以下几个准则:
    ·易于扩充多个外围设备;
    ·价格低廉,且支持12M比特率的数据传输;
    ·对声音音频和压缩视频等实时数据的充分支持;
    ·协议灵活,综合了同步和异步数据传输;
    ·兼容了不同设备的技术;
    ·综合了不同PC机的结构和体系特点;
    ·提供一个标准接口,广泛接纳各种设备;
    ·赋予PC机新的功能,使之可以接纳许多新设备。

2.2  使用的分类
表2-1按照数据传输率(USB可以达到)进行了分类。可以看到,12M比特率可以包括中速和低速的情况。总的来说,中速的传输是同步的,低速的数据来自交互的设备,USB设计的初衷是针对桌面电脑而不是应用于可移动的环境下的。软件体系通过对各种主机控制器提供支持以保证将来对USB的扩充。

 
     性能      应用       特性   
低速
 ·交互设备
 ·10-20kb/s 键盘、鼠标、游戏棒 低价格、热插拔、易用性   
中速
 ·电话、音频、压缩视频
 ·500kb/s-10Mb/s ISBN、PBX、POTS 低价格、易用性、动态插拔、限定带宽和延迟   
高速
 ·音频、磁盘
 ·25-500Mb/s 音频、磁盘 高带宽、限定延迟、易用性 
                           表2-1
2.3  特色
    USB的规范能针对不同的性能价格比要求提供不同的选择,以满足不同的系统和部件及相应不同的功能,其主要特色可归结为以下几点:
    终端用户的易用性:
    · 为接缆和连接头提供了单一模型;
    ·电气特性与用户无关;
    ·自我检测外设,自动地进行设备驱动、设置;
·动态连接,动态重置的外设。
 广泛的应用性:
    ·适应不同设备,传输速率从几千比特率到几十兆比特率;
    ·在同一线上支持同步、异步两种传输模式;
    ·支持对多个设备的同时操作;
    ·可同时操作127个物理设备;
    ·在主机和设备之间可以传输多个数据和信息流;
    ·支持多功能的设备;
·利用低层协议,提高了总线利用率。
    同步传输带宽:
    ·确定的带宽和低延迟适合电话系统和音频的应用;
    ·同步工作可以利用整个总线带宽。
    灵活性:
    ·直接一系列大小的数据包,允许对设备缓冲器大小的选择;
    ·通过指定数据缓冲区大小和执行时间,支持各种数据传输率;
    ·通过协议对数据流进行缓冲处理。
    健壮性:
    ·出错处理/差错恢复机制在协议中使用;
·对用户感觉而言,热插拔是完全实时的;
    ·可以对有缺陷设备进行认定。
    与PC产业的一致性:
    ·协议的易实现性和完整性;
    ·与PC机的即插即用的体系结构的一致;
    ·对现存操作系统接口的良好衔接。
    价廉物美
    ·以低廉的价格提供1.5兆比特率的子通道设施;
    ·将外设和主机硬件进行了最优化的集成;
    ·促进了低价格的外设的发展;
    ·廉价的电缆和连接头;
    ·运用了商业技术。
    升级路径:
·体系结构的可升级性支持了在一个系统中可以有多个USB主机控制器。

     


第3章 体系结构概述

    本章主要内容是关于USB的概述和一些关键的概念。USB是一种电缆总线,支持在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准的协议使各种设备分享USB带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。
    后续章节将着重描述USB的细节。
3.1  USB系统的描述
    一个USB系统主要被定义为三个部分:
    ·USB的互连;
    ·USB的设备;
    ·USB的主机。
    USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:
    ·总线的拓扑结构:USB设备与主机之间的各种连接方式;
    ·内部层次关系:根据性能叠置,USB的任务被分配到系统的每一个层次;
    ·数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式;
    ·USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。
    USB的设备及主机的细节将讲述于后。

3.1.1  总线布局技术

    USB连接了USB设备和USB主机,USB的物理连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件,从图3-1中可看出USB的拓扑结构。
3.1.1.1  USB的主机
    在任何USB系统中,只有一个主机。USB和主机系统的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现。根集线器是由主机系统整合的,用以提供更多的连接点。关于主机更多的内容可参见4.9节和第9章。

4.1.1.2  USB的设备
    USB的设备如下所示:
    ·网络集线器,向USB提供了更多的连接点;
    ·功能器件:为系统提供具体功能,如ISDN的连接,数字的游戏杆或扬声器。
    USB设备提供的USB标准接口的主要依据:
    ·对USB协议的运用;
    ·对标准USB操作的反馈,如设置和复位;
    ·标准性能的描述性信息;
    关于USB设备的更多信息请参见3.8节和第8章。


3.2  物理接口
USB 的物理接口的电气特性在第六章,机械特性在第五章详细介绍。
 
3.2.1电气特性
USB传送信号和电源是通过一种四线的电缆,图3-2中的两根线是用于发送信号。
   存在两种数据传输率:
    ·USB的高速信号的比特率定为12Mbps;
    ·低速信号传送的模式定为1.5Mbps;
    低速模式需要更少的EMI保护。两种模式可在用同一USB总线传输的情况下自动地动态切换。因为过多的低速模式的使用将降低总线的利用率,所以该模式只支持有限个低带宽的设备(如鼠标)。时钟被调制后与差分数据一同被传送出去,时钟信号被转换成NRZI码,并填充了比特以保证转换的连续性,每一数据包中附有同步信号以使得收方可还原出原时钟信号。
    电缆中包括VBUS、GND二条线,向设备提供电源 。VBUS使用+5V电源。USB对电缆长度的要求很宽,最长可为几米。通过选择合适的导线长度以匹配指定的IR drop和其它一些特性,如设备能源预算和电缆适应度。为了保证足够的输入电压和终端阻抗。重要的终端设备应位于电缆的尾部。在每个端口都可检测终端是否连接或分离,并区分出高速,或低速设备。

3.2.2  机械特性
    电缆和连接器的机械特性将在第5章详述。所有设备都有一个上行的连接。上行连接器和下行连接器是不可简单的互换,这样就避免了集线器间的非法的循环往复的连接,电缆中有四根导线:一对互相缠绕的标准规格线,一对符合标准的电源线,连接器有四个方向,具有屏蔽层,以避免外界干扰,并有易拆装的特性。

3.3  电源
    主要包括两方面:
    ·电源分配:即USB的设备如何通过USB分配得到由主计算机提供的能源;
    ·电源管理:即通过电源管理系统,USB的系统软件和设备如何与主机协调工作。

3.3.1  电源分配
    每个USB单元通过电缆只能提供有限的能源。主机对那种直接相连的USB设备提供电源供其使用。并且每个USB设备都可能有自己的电源。那些完全依靠电缆提供能源的设备称作“总线供能”设备。相反,那些可选择能源来源的设备称作“自供电”设备。而且,集线器也可由与之相连的USB设备提供电源。受一定布局限制的带有“总线供能”集线器的体系结构将在第十章讨论。在图4-4(位于3.8)中,键盘,输入笔和鼠标均为“总线供能”设备。

3.3.2  电源管理
    USB主机与USB系统有相互独立的电源管理系统。USB的系统软件可以与主机的能源管理系统结合共同处理各种电源子件如挂起、唤醒,并且有特色的是,USB设备应用特有的电源管理特性,可让系统软件和控制其电源管理。
    USB的电源分配和电源管理特性使之可以被设计在电源传感系统中,如采用电池的笔记本电脑。

3.4  总线协议
    USB总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输。
    每一总线执行动作最多传送三个数据包。按照传输前制定好的原则,在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(token packet)。USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机。在传输开始时,由标志包来标志数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端之间的USB数据传输,在主机和设备的端口之间,可视为一个通道。存在两种类型的通道:流和消息。流的数据不像消息的数据,它没有USB所定义的结构,而且通道与数据带宽、传送服务类型,端口特性(如方向和缓冲区大小)有关。多数通道在USB设备设置完成后即存在。USB中有一个特殊的通道——缺省控制通道,它属于消息通道,当设备一启动即存在,从而为设备的设置、查询状况和输入控制信息提供一个入口。
    事务预处理允许对一些数据流的通道进行控制,从而在硬件级上防止了对缓冲区的高估或低估,通过发送不确认握手信号从而阻塞了数据的传输速度。当不确认信号发过后,若总线有空闲,数据传输将再做一次。这种流控制机制允许灵活的任务安排,可使不同性质的流通道同时正常工作,这样多种流通常可在不同间隔进行工作,传送不同大小的数据包。

3.5  健壮性
    USB健壮性的特征在于:
    ·使用差分的驱动接收和防护,以保证信号完整性;
    ·在数据和控制信息上加了循环冗余码(CRC);
    ·对装卸的检测和系统级资源的设置;
    ·对丢失或损坏的数据包暂停传输、利用协议自我恢复;
    ·对流数据进行控制,以保证同步信号和硬件缓冲管理的安全;
    ·数据和控制通道的建立,使功能部件的相互不利的影响独立开,消除了负作用。
3.5.1  错误检测
    USB传输介质产生的错误率是与自然界的异常现象的概率相吻合,是瞬时一现的,因此就要在每个数据包中加入检测位来发现这些瞬时的错误,并且提供了一系列硬件和软件设施来保证数据的正确性。
    协议中对每个包中的控制和数据位都提供了循环冗余码校验,若出现了循环冗余码的错误则被认为是该数据包已被损坏,循环冗余码可对一位或两位的错误进行100%的修复。
3.5.2  错误处理
    协议在硬件或软件级上提供对错误的处理。硬件的错误处理包括汇报并重新进行上一次失败的传输、传输中若遇到错误,USB主机控制器将重新进行传输,最多可再进行三次。若错误依然存在,则对客户端软件报告错误,客户端软件可用一种特定的方法进行处理。

3.6  系统设置
    USB设备可以随时的安装和折卸,因此,系统软件在物理的总线布局上必须支持这种动态变化。
3.6.1  USB设备的安装
    所有的USB设备都是通过端口接在USB上,网络集线器知道这些指定的USB设备,集线器有一个状态指示器指明在其某个端口上,USB设备是否被安装或拆除了,主机将所有的集线器排成队列以取回其状态指示。在USB设备安装后,主机通过设备控制通道激活该端口并以预设的地址值给USB设备。
    主机对每个设备指定唯一的USB地址。并检测这种新装的USB设备是集线器还是功能部件。主机为USB设备建立了控制通道,使用指定的USB的地址和零号端口。
    如果安装的USB设备是集线器,并且USB设备连在其端口上,那上述过程对每个USB设备的安装都要做一遍。
    如果安装的设备是功能部件,那么主机中关于该设备的软件将因设备的连接而被引发。
3.6.2  USB设备的拆卸
    当USB设备从集线器的端口拆除后,集线器关闭该端口,并且向主机报告该设备已不存在。USB的系统软件将准确进行处理,如果去除的USB设备上集线器,USB的系统软件将对集线器反连在其上的所有设备进行处理。

3.6.3  总线标号
    总线标号就是对连接在总线上的设备指定唯一的地址的一种动作,因为USB允许USB设备在任何时刻从USB上安装或拆卸,所以总线标号是USB的系统软件始终要作的动作,而且总线标号还包括对拆除设备的检测和处理。

3.7  数据流种类
    数据和控制信号在主机和USB设备间的交换存在两种通道:单向和双向。USB的数据传送是在主机软件和一个USB设备的指定端口之间。这种主机软件和USB设备的端口间的联系称作通道。总的来说,各通道之间的数据流动是相互独立的。一个指定的USB设备可有许多通道。例如,一个USB设备存在一个端口,可建立一个向其它USB设备的端口,发送数据的通道,它可建立一个从其它USB设备的端口接收数据的通道。
USB的结构包含四种基本的数据传输类型:
·控制数据传送:在设备连接时用来对设备进行设置,还可对指定设备进行控制,如通道控制;
    ·批量数据传送:大批量产生并使用的数据,在传输约束下,具有很广的动态范围;
    ·中断数据的传送:用来描述或匹配人的感觉或对特征反应的回馈。
    ·同步数据的传送:由预先确定的传送延迟来填满预定的USB带宽。
    对于任何对定的设备进行设置时一种通道只能支持上述一种方式的数据传输,数据流模式的更多细节在第四章中详述。
3.7.1  控制数据传送
    当USB设备初次安装时,USB系统软件使用控制数据对设备进行设置,设备驱动程序通过特定的方式使用控制数据来传送,数据传送是无损性的。
3.7.2  批量数据传送
    批量数据是由大量的数据组成,如使用打印机和扫描仪时,批量数据是连续的。在硬件级上可使用错误检测可以保证可靠的数据传输,并在硬件级上引入了数据的多次传送。此外根据其它一些总线动作,被大量数据占用的带宽可以相应的进行改变。
3.7.3  中断数据传输
    中断数据是少量的,且其数据延迟时间也是有限范围的。这种数据可由设备在任何时刻发送,并且以不慢于设备指定的速度在USB上传送。
    中断数据一般由事件通告,特征及座标号组成,只有一个或几个字节。匹配定点设备的座标即为一例,虽然精确指定的传输率不必要,但USB必须对交互数据提供一个反应时间的最低界限。
3.7.4  同步传输
    同步数据的建立、传送和使用时是连续且实时的,同步数据是以稳定的速率发送和接收实时的信息,同步数据要使接收者与发送者保持相同的时间安排,除了传输速率,同步数据对传送延迟非常敏感。所以同步通道的带宽的确定,必须满足对相关功能部件的取样特性。不可避免的信号延迟与每个端口的可用缓冲区数有关。
    一个典型的同步数据的例子是语音,如果数据流的传送率不能保持,数据流是否丢失将取决于缓冲区的大小和损坏的程度。即使数据在USB硬件上以合适的速率传送,软件造成的传送延迟将对那些如电话会议等实时系统的应用造成损害。
    实时的传送同步数据肯定会发生潜在瞬时的数据流丢失现象,换句话说,即使许多硬件机制,如重传的引入也不能避免错误的产生。实际应用中,USB的数据出错率小到几乎可以忽略不计。从USB的带宽中,给USB同步数据流分配了专有的一部分以满足所想得到的传速率,USB还为同步数据的传送设计了最少延迟时间。
3.7.5  指定USB带宽
    USB的带宽分配给各个通道,当一个通道建立后,USB就分配给它一定的带宽,USB设备需要提供一些数据缓冲区。若USB提供了更多带宽,则需更多的缓冲区。USB的体系要保证缓冲引导的硬件的延迟限定在几毫秒内。
USB的带宽容量可以容纳多种不同的数据流,因此保证USB上可以连接大量设备,如可以容纳从1B+D直到T1速率范围的电信设备。同时USB支持在同一时刻不同设备具有不同比特率,并具有一个动态变动的范围。
    USB规范对总线的每类转输规定的具体的原则。

3.8  USB设备
    USB设备分为诸如集线器、分配器或文本设备等种类。集线器类指的是一种提供USB连接点的设备(详见第十章),USB设备需要提供自检和属性设置的信息,USB设备必须在任何时刻执行与所定义的USB设备的状态相一致的动态。
3.8.1  设备特性
    当设备被连接、编号后,该设备就拥有一个唯一的USB地址。设备就是通过该USB地址被操作的,每一个USB设备通过一个或多个通道与主机通讯。所有USB设备必须在零号端口上有一指定的通道,每个USB设备的USB控制通道将与之相连。通过此控制通道,所有的USB设备都列入一个共同的准入机制,以获得控制操作的信息。
    在零号端口上,控制通道中的信息应完整的描述USB设备、此类信息主要有以下几类:
    ·标准信息:这类信息是对所有USB设备的共同性的定义,包括一些如厂商识别、设备种类、电源管理等的项目。设备设置、接口及终端的描述在此给出。关于这些具体的描述信息在第九章给出;
    ·类别信息:此类信息给出了不同USB的设备类的定义,主要反映其不同点。
    ·USB厂商信息:USB设备的厂商可自由的提供各种有关信息,其格式不受该规范制约。此外,每个USB设备均提供USB的控制和状态信息。

3.8.2  设备描述
    主要分为两种设备类:集线器和功能部件。只有集线器可以提供更多的USB的连接点,功能部件为主机提供了具体的功能。

3.8.2.1  集线器
在即插即用的USB的结构体系中,集线器是一种重要设备。图3-3所示是

一种典型的集线器。从用户的观点出发,集线器极大简化了USB的互连复杂性,而且以很低的价格和高易用性提供了设备的健壮性。
 
    集线器串接在集中器上,可让不同性质的设备连接在USB上,连接点称作端口。每个集线器将一个连接点转化成许多的连接点。并且该体系结构支持多个集线器的连接。
    每个集线器的上游端口向主机方向进行连接。每个集线器的下游端口允许连接另外的集线器或功能部件,集线器可检测每个下游端口的设备的安装或拆卸,并可对下游端口的设备分配能源,每个下游端口都具有独立的能力,不论高速或低速设备均可连接。集线器可将低速和高速端口的信号分开。
    一个集线器包括两部分:集线控制器(Controller)和集线放大器(Repeater)。集线放大器是一种在上游端口和下游端口之间的协议控制开关。而且硬件上支持复位、挂起、唤醒的信号。集线控制器提供了接口寄存器用于与主机之间的通信、集线器允许主机对其特定状态和控制命令进行设置,并监视和控制其端口。

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

3.9  USB主机:硬件和软件
    USB的主机通过主机控制器与USB设备进行交互。主机功能如下:
    ·检测USB设备的安装和拆卸
    ·管理在主机和USB设备之间的控制流;
    ·管理在主机和USB设备之间的数据流;
    ·收集状态和动作信息;
    ·提供能量给连接的USB设备。
    主机上USB的系统软件管理USB设备和主机上该设备软件之间的相互交互,USB系统软件与设备软件间有三种相互作用方式:
    ·设备编号和设置;
    ·同步数据传输;
    ·异步数据传输;
    ·电源管理
    ·设备和总线管理信息。
    只要可能,USB系统软件就会使用目前的主机软件接口来管理上述几种方式。

3.10  体系结构的扩充
    USB的体系结构包含主机控制驱动器和USB驱动器之间的接口的扩展,使多个主机控制器和主机控制驱动器的使用成为可能。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客