1、西安电子科技大学硕士学位论文USB的开发和设计姓名:樊巍申请学位级别:硕士专业:计算机系统结构指导教师:高有行2002.1.1摘要本论文主要目的是利月j USB为彩色宽幅绘图机提供一种高速可靠的数据传输的设计和实现,从而使绘图机能够高速准确地绘制图形。;fi叠之第一部分洋绍论述了USBll规范的核心内容,给出了USB开发所存;的:“;基础知识和设计思路。第:二部分分析了USBl l规范所能提供的实际最大带宽。笫i部分从硬仆、固件和主几程宁三个部分给出了具体的工程实现。本论文采用的USB这种传输方式,克服了以往绘图机利用并行电缆带来地低速、j羔纱娩杂等种引,缺点,为绘羽机的数据传输提供了一利崭新
2、的新型接口,关键词:通用串行总线彩包喷s墨绘图机固件开发Abstract1his paper presents a method of design for and realization of data transfer withhigh,pee。d and reliability foJ。colol inkjet plotter by USB SO that it can draw with highspeed and precisionThe first part of this paper deals with the core content of Universal Serial
3、Bus 1 1Specification in detaiand proides fundamental knowledge and way ofdesign in USBdmehIprr,ent Tirecond part(f this paper mainly analyzes the actual biggestbandu idth provided by USB Sf ecl,1,The last part of this paper describes theimplement of engineei ing in hardware,firmware and host program
4、The dala transfe r of USB used in this paper conquers some disadvantages,such aslow speed complex of connecting and SO on,providing a new pattern interface for thedata transfer ofplottoKI_1ll:USB color inhjet plotter firmware develop第一章绪论 1第一章绪论11论文选题背景今天个人电脑上所使用的大多数外围设备仍然是基于接口实现的,这些接口最-q,J圭-曰IBM公司在
5、20世纪80年代早期设计的。这些接口的设计存在很多缺陷,它们不仅给设计者带来了许多麻烦,而且给用户带来了诸多不便。比如:IO地址经常出现冲突,接口是j:共享式的,接口的数据线种类繁多,外围设备不能热插拔,以及传输速率不够高等等者多不足之处。随着计算机的飞速发展,新的外没层出不穷,其性能越来越完善,速度要求越来越高。同时这些外设对接口的要求也越来越高。老式接口在很多应用领域已经完全不能满足新型外设的耍求。于是,为了满足新型外设对接口的要求,在1995年币|1 998年推出了USBl 0和LSBl 1规范,标志着一种新型高速串行接口USB I内产生。USB全称为Universal Serial B
6、us,即通用串行总线,是新一代的硬件接入总线技术。它的主要优点如下:数据传输速度明显快于串联和大多数的并联接口;最毒:连接127个外部设备:具有良好的弹性适应能力;支持热插拔和即插即用(P:小):。0用系统资源少1只占羽一个IRP);无总线竞争等等。目前在很多应用上,USB lE在逐步取代我们以往所普遍使用的老式串、并联接口,成为许多外设接口的首选。讨:USBl 1规范而言,它:持最高速率为12MbitsS的数据传输,而新推出的USB 2 0支持的:夜高运巍更是达到了480MbitsS。对于前者而言,USB提供的数据传输速率比每秒10kbit传输速率的苹果桌面总线端口快了1200倍,比每秒23
7、0kbit传输速率的苹果串叶陕了50倍。这样就给我们提供了一种高速,方便,成本f,珀0接口,征很大程度上玫善了外发和接口之间的矛盾。iE USB推出的短短几年内,有关USB的产品已经逐步占据市场的主导地位。比如高速的USB移动硬盘,USB摄像头,USB读卡机,USB文件传输绂,ISDNUSB终端适配器等等。在2001年9月,威盛电子宣布推出VT6202 USB 20控制芯,:童种新一代的四端1USB 20控制芯片支持PCI总线接口、进阶的电源管理能力以及更丰富的技术规格,可为日益先进的计算机外设产品,如高解析度视讯、影像摄影机,以及下一代的扫描仪、打印机等等提供比传统USB接:21高出40倍的
8、数据传输带宽。12论文的主要工作目前随着广告业的迅猛发展,大型彩色喷墨绘图机的市场进一步扩大。但是由于其分辨率和绘图速度越来越高,并且图像幅度越来越大,需要传输的数据量2 USB接口的开发和设计急剧增加,传统的低速串行接口己无法满足绘图机的要求。但对于通用串行总线USB而言,它f输速率高,连线简单,完全可以满足绘图机对数据传输的要求。本论文完成的主要工作便是为大型喷疆绘图机提供基于USB的传输方式,将计算机处理完的图象信息通过USB电缆高速可靠的传输给绘图机,使其打印出高质量的图像。由于USB实际传输的数据率和理论值存在一定程度的差异,所以作者在实现USB传输模式时不仅注重其数据准确性,更重要
9、的是通过种种手段提高其数据传输速率试图使USB传输的速度达到或者高于当前大部分利用USB传输数据的速率,从而使USB电缆能够在绘图机中真正的高速传输图像信息。第:二章USB协议分析第二章USB协议分析21 USB概述USB是一和电缆总线,它支持多台外设和一台主计算机同时进行数据交换。所接入的多台外设通过一个主机调度的,以令牌为基础的协议来共享USB的整个资源。USB允许其中一个外设当主机和其他外设进行通信时可以被插入,确认,使用和拔出。211 USB系统的组成一个USB系统是由以f?三个方面描述的:USB互联,USB设备,USB主机。USB_可-联描述了USB设备和主丰厂J进行互联和通信的方式
10、和手段。USB设备和USB主机则是整个USB系统的,)外谬j个主要因素。(0 USB互联USB互联包括了,以下,乙个方面:(1)总线的拓扑结构,即USB设备和主机之间的连接模型。(2)内部层次j勺联系,即在USB系统中各个层次完成的功能。(3)数据流馍堡!,即数据通过US8在挺供者和使用者之间移动的方式。(4)uSB调度,即L 7SB提供共享互联的方Fi,USB负责连接USB设备和USB主机。其中USB物理互联是一个分层的星型拓扑结构。而HUB(集线器)是每层的核心,每个电缆段是一个点到点的连接,该连接j要么是在主机和HUB:芝n0,要么是在主机和设备之间。USB l:机是整个通信模式的核心是
11、整个USB系统的管理者。USB主机就像交通警察一样控制和调度连接到端口的全部设备的活动。这种模式被称为基于主机的通信模式。并且USB主机是整个USB系统中唯一需要系统资源的部分(主机存f器,IO地址空间,【RQ)。但是,USB设备不再需要映射到相应的主机存储器和I?O地址空间,也不需要mQ。USB主机在任何USB系统中只有一个USB主机。主计算机系统上的USB接口被称为主控制器(Hosc Controller),主:空制器是通过硬件,固件和软件共同来实现的。一个根HUB被集成到主机上来提供个或者多个接入点。USB主机控制器借助它的根HUB或者HUB初始化所有的事务,它每一毫秒初始化一帧的开始(
12、SOF)。在SOF产生之后,通信事务就在每一秒的帧中,在主机和HUB)f,设之间产生。(爹USB设备USB设备通常有以下P种:H【JB负责提供额外的接入到USB系统的连接点;功能设备为系统提供某种特定功能,比如ISDN连接器,数字游戏杆4 USB接口的开发和设计或者扬声器。现在有了第三种设备,集成了前两者的功能,既可以提供接入点,又能完成一定的功能,比如一些提供USB接口的显示器。212总线协议USB总线属于查询总线这一类。:主控制器负责初始化所有的数据传输,这些总线事务最多包括三个信息包(令牌包、数据包、应答包)的传输。主控制器在调度的基础上开始发送个USB包,此时总线事务开始进行,这个包描
13、述了事务的类型和方向,USB设备地址:和应用功能点的数目。这种包称为令牌包。USB设备通过对相堑白,J地址字段进铜c翠码来进行lj身的地址选择。在一个给定的事务中,数据要么是从主机到设备,要么是从设备到主机。数据传输的方向在令牌包中被指定。然后,事务的源方发送一个数据包,或者发送一个包表明没有数据传输。一般说来,j务的11的方用应答包来指示传输是否成功。在主机和个没备上的应j目功能点之f目的USB数据传输模型称为一个管道(Pipe)。在USB系统【1共有两种管道:流管道(stream)和消息管道(message)。流数据没有USB定义的结构,但是消息数据具有USB定义的结构。另外,管道具有一些
14、有用的信基、,乜括数据荐宽,传输服务类型,以及一些应用功能点信息(方向和缓存尺寸,小)。大多数管道是!j一个USB设备被配置后才存在。但是,有一个信息管道,即缺省的控制管道只要相应设备被加电就一直存在,以此提供对设备确认,状态和控制信息的访问。事务调度允汁刈流管道进行流控制。iE硬仁层,通过使用一个NAK握手包来阻止对缓存的读写,从而停止当前的数据传输。当收到NAK包时,只要总线可用,该事务会一直重试。这种流控制机制允许一种灵活的流控制机制,即允许多种流管道同蕾。运行。所以,多重流管道可以用:下同的时间间隔和包尺寸进行服务。213数据流类型USB数据传输在主机软件和一个USB设备上特定的应用功
15、能点之间发生。一般:来说,通过个管道的数据传输和其他管道中的数据流是独立的。一个给定的USB设备可以有很多管道。比如,一个给定的USB设备可以有个从主机到设备的管道,也可以有一个从设备到主机的管道。在USB系统体系结构中,共有四种基本类型的数据传输:控制传输,块传输,中断传输和同步传输。难。f任何给定的设备配置,一个管道只能支持以上的一种数据传输。小结:本节从一个整体来分析一个USB系统的主要内容,即USB互联,USB第:二章USB协议分析设备,USB主机,给出了理解USB系统体系的一个整体概念。22USB硬件元素221连接器USB连接器被设计成允许USB外设连接到集线器端口。集线器端口位于计
16、算机的背面,也可以和其他外设相连,还可以位于独立的集线器设备上。为了方便用户的使用,USB协议规定了两种连接器:A连接器和B连接器(分为插喳:f插头,两种必须对应使用)。A连接器:提仁e USB瑞口和USB外设数据线之间的连接。A系列插座是作为集线器端口连接器使用的,而A系列的插头和外设数据线相连,插头用来和USB外设相连。B连接器:提化和USB外殳的数据线连接。B系列插座在外设上提供,B系列的捅头和数据线相连。每个连接器有四个管脚,两个数据管脚用于传输差分数据,两个电源管脚用于给设备供电。222数据线USB电缆:USB物理介质由根四芯的电缆组成:Vcc,Ground,D+,D-。Vcc接5伏
17、的电源线,Ground接地线,D+,D-是两根差分数据传输线。具体见图2 1。l箍lS艳图21USB传输线缆低速数据线:传输速率为l 5MbS,最长传输距离不能超过3米,它只能用于低速设备,数据线可以不屏蔽,高速数据线:传输速率为12MbS,最长传输距离不能超过5米,它能用于高速设备和低速设备,数据线必须屏蔽,并且必须是双绞线形式。具体如下:一对28到20AWG非屏蔽双绞线,一对28AWG屏菠数据双绞线。223检测设备连接和速度主机软件在进行数据传输之前,HUB通过监视差分数据线来检测USB设备是否连接,并且可判断USB设备的快慢。体方法:连接到USB主村。端的D+,D均接上15K的下拉电阻,
18、对于全6 USB接口的开发和设计速设备,在D+接上l 5k的上拉电阻,对于低速设备,在D接上15k的上拉电阻。当HUB检测到D+上为高电平D上为低电平时,可以判断此时加上了一个全速设备;当HUB检测到D一上为高电平,D上为低电平时,可以判断此时加上了一个低速设备。当这种情况持续时间超过25毫秒时,HUB认为该设备已经接上,并且在它的端口状态寄存器中设置适当的状态位。主机软件则周期性检查每个集线器进行以上的判断。224 NRZI编码USB串行数据是用NRZl(反相非归零)进行编码的,其过程是在通过USB数据线进行传辑城进行的,匿l 2 2显示r署佣NRZI编码和差分信号的传输方式的具体情况。一芒
19、卜一鬟兰刍墨一吕一一l 一一 l| l一L一一。 王J_一0L_J D p网22在USB二采用NRZI编马和差分信号的传输方式NRZI编鸭片先是由USB弋理执行,接下来,编码后的数据被放入USB数据线。接收器放大传来的差分数据,并把NRZI数据发送到解码器,对数据进行解码和采用差分信号进行传输有助于确保数据的完整性和防止噪声干扰。小结:本节从USB连接器,数据线和编码方式等角度论述了USB的硬件元素,为从硬件J理解USB连线简单,传输速率高提供了理论基础。23 USB数据流模型USB在主机和接入的USB设备之间提供通信服务。图23USB实现图从一个全面的角安给出了USB通信的具体情况。如下图所
20、示,主机到一个设备的简单连接需要相芳|j未次和实体的相互作用才能实现。USB总线接口层在主机和设备之间提供物理的、信号级的、分组的连接。USB设备层体现了USB系统软件和USB设备之间的一般性操作。功能层借助与之匹配的客户软件层为主机提供额外的服:簪。USB设各层和功能层部从逻辑的:宥度分忻数据移动,所以它们通常使用USB总线接层米实现数据传输。第:二章USB协议分析 7E二二器一_L一=:二二肾21R日f,一 礓坦1I m=!H m m mP到2:3 ilsE;:实珊图:0 j搞述和管Il!USB通7声,以下兰个方面的理解至关重要。其中包括:总线拓扑,通信流模型和总线访问管理。=!31总线拓
21、扑f!总线拓扑中,一共有旧个主要部分,即为:主机和设备usB系统的基本要索。物理拓扑一一usB实际互联的方式。逻辑拓扑不同USB要素的作用和功能,以及从主机和设备角度看USB工作的方式。客户软件和功能块的联系客,。软件和在USB设备中与之相关的功能块接口之间协同工作的方式。(1=|I_JSB主机在图2 3的左边体现了USB系统中主机的逻辑组成。在USB整个体系中,USB主机具有独一无二的作用。除了它自己特定的物理层地位外,主机对USB和它月i连接的设备具有特定的作用。个USB设备只有获得主机的许可之后才能访问USB总线,同时主机j!三负帚监控整个USB拓扑结构的活动。USB设备在图2 3的右边
22、体现了USB系统中设备的逻辑组成。USB物理设备可以为主机提俺弧外的功能,这些功能范习很广。但是,所有的USB逻辑设备为主机提供相同的:篓本接口。返就允影:主机以相同的方式管理不同的USB设备。为了帮助主机识别和确认USB设备,每个USB设备必须传送和报告与配置相关的信息。有些相关信息是所有USB逻辑设备都需要报告的,而有些信,ff,贝JJ是和某些Il体的设备相关。|、iUSB接口的开发和设计(9物理总线拓扑结构正如图24所示,USB上的设备借助分层的星型结构连接到主机上。USB的接入点是由一个USB特定的设备类提供(HUB)。由一个HUB提供的额外的接入点被称为端口。而含有嵌入式HUB的主机
23、就是根HUB。主机可以借助根HUB提供一个或者多个接入点。为了防止循环的接入,在USB星型结构中必须采用分层结构。这就导致了如下图的裉状图形。訇2 4 USB物I rp总线拓扑结核(D逻辑总线拓扑当设备已经实助接入到USB分联星型结构时,主机可以和每个逻辑设备进行通信,就好像这砦设备直接接入到根端口上。这洋就产生了如下图的USB逻辑视图。,i磊卜、竺兰,图25 usB逻辑总线拓扑图 尽管大多数主机,逻辑设备活动使厍这个逻辑视图,主机仍然需要知道其物理 拓扑结构来支持HUB的活动,当卜HUB被移除,所有接到这个HUB上的设备都必须从该逻辑视图中移除。客户软件和功能设备的联系第二二章USB协议分析
24、址,该地址是由USB系统在设各接入时设置的。同时,设备上的每个应用功能点在设计时也被给定一个唯的设备标志应用功能点号,其方向是由设备决定的。每个应用功能点有一个单一的连接,即支持数据在一个方向上传输,或者是IN人设备到主机),或者是OLT(从主机到设备)。所自的USB设备都需:引-一El:旦J 0号应用功能点实现一个缺省的控制方法,该应用功能点具有IN和OUT两个方向。USB系统软件利用这个缺省的控制方法来初始化和控制逻辑设备。一旦设备插入,加电,0号应用功能点就一直可以使用。而划于:t1:0的应用功能点,只有当其被成功配置之后才能使用。2 3 2 2管道一一个USB管道是建立在一个设备上的应
25、用功能点和主机上软件之间的某种联系。管道代表了一种借助缓存在主机软件和设备上的某个应用功能点之间传输数据jE力。在USB系统中,一共有两种类型的管道:流管道(stream pipe)和消息镑通(message pipe)。流管道从总线事务的数据包中获得数据,并且该数据不具有USB所定义的结构。数据流从一个漉管道的一端施入,从另一端流出。在整个通信流中,流管道始终;-!引的。消息管道和流镑道有很大程度的不同,消息管道允许数据流在同一个管道的两个方向Ii发生,并且传输的数据具有特定的结构。缺省的控制管道(含有0号应H:功能点)一直是一个:i息管道。小纷:本节从物理和逻辑拓扑结构,USB通信模型等几
26、个方面分析了USB的数据流模型,从13体上提供了理解USB通信的具体思路。24传输和事务处理241传输类型一个给定的USB设备的每一个应用功能点均有其特殊的性质,这些特性规定了访问这些端点的方式。其传输特性和应用程序的要求密切相关。USB规范一共定义了四种传输类型,每一种均反映了USB设备的应用功能点可能要求的传输性质。USB即可以支持非实叫的数据类型,如打印,文本或者图象数据:也可以支持实时的数据类型,如语音和视频信息。以下将就四种传输类型逐一介绍。2 41 l简介控制传输:属:双向传:输,7三用来把特定的请求传送给USB设备,经常在设备配谴中被使用。控制传输恒定占据总线10的带宽,每个控制
27、分组最大为64字节,有CRC校验。USB接口的开发和设计同步传输:可以是双向,也可以是单向。同步传输的最大分组可为1024字节。它对实时性的要求超过对准确性的要求,f目此不支持错误恢复。同步传输特别适合数据采集和视频的传输比如USB摄像头。块传输:可以是双向,也可以是单向,它特别适于大数据块的传输。它对准确性要求较高,蛀大分组长度为64字节,常常醚!用在绘图机和打印机中。中断传输:这个中断不同于二PC机中的中断,它总是用于对设备的查询,以确定设备是否有数据需要传输。这种传输方式常用于USB键盘等一些低速设备。24 1 2够:传输USB对于块落道没有定义睾门的数据咯式,它使用流管道进行数据传输,
28、所以其管道只能有一个方向。块传输包尺寸限制:其千专输的最大信包的大小限制为8,16,32,64字节,不允许出现其他长度的信息包。当块传输;乏生时,所有信息包的大小必须是最大信息包容量字段中指出的最大容量,传输的最后一个信息包除外。一个块应用功能点被设计来支持一个最大负载尺寸,它在确认信息中报告其最大负载尺寸。在确认;扣,USB系统读取应用功能点能最大,己寸负载,并且确认发到应用功能点的负载尺寸小于该健。块传输在以I、任何一种情;兄发生时,表明传输成功:已经正确传输了指定长度的数据传输一小包,其尺寸小于蛀大负载尺寸(wMaxPacketSize)或者为零当块传输景:成以后,主耖蕴制器峻回当前的I
29、RP(中断请求),对下一个IRP作出响应。块传输总线访问限制:这种传输疗式仪用于全速设备,它和控制传输很相似,但是优先级低些。当有一些总线时问没,亨用于其他传输类型时,可以用来进行块传输。因为块传输是基于目前I-供分配的带宽,所以一个应用功能点和它的应用程序不能对块传输指定特定速率的服务。一个应用功能点和它的应用程序当有其他设备加入或者拨出时,可以西。7变分配给它们的总线时间。应用程序在块传输和控制传输之间不能设定顺序,241 3控制传输控制传输主要负责配置USB设备。每个设备都通过一个缺省的控制端点(ENDPOINT c):采配置设备,控制发备状态,以及该设备的其他特性,并且必须响应USB的
30、些特殊请求。组成:控制传输至少由2个阶段构成,也可以是3个阶段。建立阶段:本阶段把信息传送给目标设备,定义对USB设备的请求类型。第二章USB协议分析在本阶段使用SETUP令牌包。传输方向是从主机到设备。数据阶段:该阶段仅仅是为了数据传输的请求而定义的。例如,在数据阶段,读描述符的请求把描述符的内容发送给系统。但是,并不是所有的请求均需要该阶段。传输方向是双向的。状态阶段:该阶段月j来报告被请求的操作的结果。传输方向是从设备到主机。包尺、j限制:对于全速设备,所能允许的最大负载尺寸为8,16,32,64字节;低速设备所能允许的最大负载尺寸为8字节。为了决定缺省控制管道(应羽功能点0)的最大包尺
31、寸,USB系统软件读取设备靖述符来获取相关信息。当主机读取了设备描述符的初始部分后,它会认为已经读取了缺省管道的wVlaxPacketSize字段(设备描述符的第7个字节)。主机会在随后的事务中允许传输正确尺寸的数据。对r!它的控制应用功能点,在被确认后,USB系统软件会知道最大负载尺寸,【l此保证发往应用功自i点负载大小不超过这个限制。对j:从应用功能点到ji机的控制传输的数据阶段,当应用功能点完成以下任何件事情时,便视为成功:【_三经精确传输了在叮f“阶段指定的数据长度。:多j0输了一个:载,其尺一|,J、于wMaxPacketSize或者为零。当数据阶段完成后,主机控制器必须执行状态事务
32、而不是下一个数据事务。否则应用功能点将会中止管道。如果从应用功能点接受到了一个超过约定的负载,该抒制传输的IRP jg被中上!:或者收回。,t:jl、主机到应用功自i点的腔制传输的数据阶段,只要所有的数据被传输完则表明成功。如果应用功能点接受到了一个从主机来的超过约定的负载,它会中止管道。总线访问限制:扎果需要的控制传输没有芘费一帧时间的10,剩下的时间可用于块传输。个总线传输可以在不同帧传输。如果需要传输的控制传输超过了保留时间,并且额外的帧时没有用于同步或者中断传输,主机控制器将会尽它昕能完成更多的控制传输。如果要进行的控制传输大大超过提供的帧时,控制传输将会被挑选来在总线上传输。控制传输
33、数据时序:如果一个应用功能点在一个控制传输未完成时又收到一个s eu1)事务,设备涛会丢弃当1击的控制传输,而去处理新的控制传输。这种情况一般不会发生,除非在总线上出现了错误。当主机遇到一个中止(Halt)状态或者侦测到一个错误后,控制应用功能点14 USB接口的开发和设计可以通过接受下个设置标志(SETUPPD)来恢复。对于缺省控制管道,如果没有收到SETUP PID,设备将要重启来清除HALT或者错误状态。2 41 4中断传输,扣断传输通常用来支持那些需要间断的发送或者接受少量数据的设备。支持中断传输的管道通常必须提供以下两种功能:可保证的最大服务周期;由于总线错误造成传输失败时,需要在下
34、一时刻重新尝试的能力。中断传输的数据格式:对于中断管道而言,没有特定的USB数据格式。中断传输克旺:中断管道:睦流管道,f日此它始终是单向的。一个应用功能点的描述符定义1。1给定的中断传输是进八主机,还是从主机出来。中断传输的分组尺寸限制:一个用于中断传输的应用功能点指定了它传输数据的最大尺寸负载。对于全速设备而言,最大数据包是64个字节,对于低速设备而言,最大数拄:包毡8个字彳,USB并不要求数据包正好是最大数据限制的值,所以也并不要末将数据包填充为最大数据e曼制6】值。中断服务剧期:采用中断传输是因为设备要求周期性地安排执行任务,所以不会发生超时运行地情况,全速中断传输可以频繁到每毫秒都发
35、生传输,也可以慢到每255毫秒刁发7扣一次传输。低速传输j勺最快频率是每10毫秒发生一次传输,也可以慢到每25 5毡秒发生一次传输。总线带宽分配:USB只是利用90的总线时间用于中断和同步传输。总线频率和帧的计时限制了在一帧中能够成功完成的中断事务的数目,对于全速设备而言是108个单字节负载;对于低速设备而言是14个单字节负载。由于种种实现的条件,主控制嚣铷能在每一帧中不能提供如上的中断事务数目。中断管道要求保证数据在明确的查询周期里被发送。由于缓冲区溢出而造成的在查询周期内对端点的存取失败可能导致数据丢失。错误恢复;中断传输支捧错误恢复。jE执行传输的时候如果检测到错误,那么在下一个服务周期
36、内就将试图进行重新传输。2 41 5同步传输在一个非LSB的环境中,同步传输通常具有恒定的数据传输率,错误容忍机制。在一个(LqB环境中,同步专输必须提供如下的服务:在有限制的等待时间里保证对USB带宽的访问;只要数据玻提供给管道,就保证通过该管道的恒定的数据传输率;万一由于错误造成数据丢失,不进行数据重发。同步传输数据格式:对于同步管道而青,LsB不要求在其通信流中有固定的数据格式。并L它只用于全速设备;在低速设备中不能使用同步传输方式。同步传输方峨同步管道是流管道,目此它始终是单向的。一个应用功能点的描述符定义了一个给定的同步传输是进入主机还是从主机出来。如果一个设备第二章USB协议分析要
37、求双向的同步传输流,必须使用两个方向的同步管道,每个方向上均有一个。一个朋j。接受数据,个用于发送数据。司步服务后期:在USB上,同步传输作业是经过安排后按照一定的规则执行于连续的时间片上的,每个时间片为l毫秒。这就可以保证传输可以维持一个恒定的速率。目步传输的分组尺寸限制:左一个给定的配置中,用于同步传输的应用功能点指定了它能够传输或者接受的最大尺寸数据负载。USB系统软件在配置中使用这个信息来确保每帧中有足够多的总线时间来满足这个最大的数据负载要求。如果有足够多的总线时间,则建立配置:否则配最无法建立。弼哺J管道一十f,USB系统坎件不能调整一个同步管道的最大负载尺寸。在一个给廷的USB配
38、蟊中,库】步管道能很简单地被支持或者不被支持。对于每个同步管道而言,最大数据负载尺寸不能超过1023字节。同步管道的任fjj给疋尊务不要求正好为应用功能点规定的最大负载尺寸。数据负载的尺寸由传送jr5=户软件;t者功自i殴备)决定,其负载大小可以随着事务的不一样而不同。数据负载的尺可由数据传输苦决定,而且必须小于最大负载尺寸。值得注意的是,总线错误能够改变接受方昕看见的数据包尺寸。但是,这些错误能被检测出柬,或哲通过数据上的(fc纠蒲码,或者通过接受方所预测的数据包大小来检测。错误恢复:由于一个恒定的数据传输率对于一个同步应用来说至关重要,所以同步传输不支持错误检测和错误恢复。错误恢复包括在错
39、误被检测到时,重新传输随复弼,进行重新传输可能会导致来自USB设备的数据率和来自于应用程序和目柄:没l一的数据率z间失去同步,所以,它不允许重新传输。242 USB事务处理一个传输在USB上执行,期间需要进行一个或者多个事务处理,每个事务处理出一序列的信息包组成。图2 j显示了在次传输过程中,不同层次之间的关系。传输过程从USB设备驱动翟!序要求执行一次传输开始,到通过USB数据线传送结果信息包结束。这个传输可以来自设备,也可到达设备。对于一个事务处理而吉,它由主机进行初始化,用于把数据发送到USB设备和从USB设备把数据发送j士1去。每个事务处理由一个或暂多个信息包组成,它们都通过USB传输
40、。16 USB接口的开发和设计USB驱动程序主机驱动程序USB主控制器OSB客户驱动程序 USB客户驱动程序陶29 tSBI辖的层次关系图24 2 1 USB信息包USB信ll包组成信息包是USB事务处理基本构成单位。事务处理一般由三个阶段组成,或者是三个信息包组成。如下图所示。握手包阶段令牌阶段 数据包阶段一一、y一 一次事务处理图210传输事务的组成令牌包阶B:每个事务处:蛩部从一个令牌阶段开始,它定义了事务处理的类型。如果事务处理的目标是个指定的USB设备时,这个阶段还包括设备地址。第:二章USB协议分析有些令牌包是独立的,所以没有其他附加的信息包跟随,比如SOF(时间片开始);而另外一
41、些令牌包总是跟随有一个到两个附加的信息包,比如IN包。数据包阶段:相当多的事务处理类型都包括一个数据阶段,该阶段负责传输相奠:的数据。数据阶段在不同的传输类型中可以传输不同的最大数据包。握手阶段:所有USB传输的实现都要保证能够进行数据发送,除了同步传输外,还有握手阶段。握手阶段为数据发送方提供一个反馈信号,通知发送方数据是否已经被正确接受到了。如果荏一次事务处理中遇到了错误,发送方会进行相关if,”上圳,信息包是用来执行所有的USB事务处理的机制。下图所示即为USB信息包的基本格式。每个前行数据包是。一个同步序列,同时还允许USB设备和传来的数据位的!输速率同步,这些j数据血就是信息包中的数
42、据。信息包的类型由一个位组合i_【|U定义,成为信息包的I【。在ID之后是关于这个信息包的具体内容。它根据包类型的不同而不同,每个包以个包结尾状态来标示。可j序列 包ID 包结束丑特定瞎息 CRC位 标志、-,信息包訇2】1数据包的格式c|。i,窿、包的标识符信息包的标识:符定义了信息包的目标和内容,它可以分为以F四类:令牌包令牌包在USB事务处理的开始被发送,用于定义传输的类型。数据包该包在事务处理中跟随在令牌包之后,该事务处理需要把数据传输到OSB没备或者需要从USB殳备j!数据传输到别处。握手包握手包一般从接受方返回到发送方,它向发送方提供一个信息反馈,告诉发送方事务处理的成功或者失败,
43、二封J包在USBl 1中仪有一个号用包的定义,即为前导包,用以激活低速端。令牌包令牌包定义了在USB J二进轭二事务处理的类型。所有的事务处理都是从一个令牌包开甜的。下表给出了USB所支持的令牌类型及功能。USB接口的开发和设计PID类型 PID名称 令牌包描述令牌 SOF 包含时间片的开始标志(s0F)和时间片编号SOF令牌由同步端点使用,用来同步其传输,仅用二F全速设备令牌 SETUP 包含USB设备地址和端点号(从主机到设备,用于建立一个控制端点)令牌 OUT 包含USB设备地址和端点号(从主机到设备)令牌 】N 包含。sB设备地址和端点号(从设备到主机)嵌2 l USB 环识SOF包:
44、该包提供了一种疗法用于目标设备识别一个时间片的开始。比如同步应用程序可以把SOF放在-。个指定的1毫秒时间片的开头,触发和同步传输的开始。SOF色对j:所有的全速没各进行广播,其广播发生在每个时间片的开始,并且SOF包从不发送给低速设备。SETUP包:该包仅仅在控制传输的建立阶段使用。SETUP事务处理启动一个控制传输,这个阶段即为建扩阶段。一个SETUP事务处理在格式上和个OUT事务!处理是类似的:SETUPi跟随一个数据包和一个确认包。SETUP把一个将要由目标设备执行的请求发送B去据请求,SETUP事务处理可以跟随一个或者多个IN或OUT事务处理(数拆;阶段),也可以仅仅伴随一个状态阶段
45、,状态阶段由一个最后的数据包组成,它从端点传向:E机系统。】N包:!I软。r希望从一、指定的发备凄取信息时,就会使用一个IN令牌。IN包通知目托、USB设备数据。卜在被系统请求。IN事务可用于各种USB传输类型。OUT包:系统软件指定个OUT事务处理,当数据被发送到一个目标USB设备时,有三和传输类型的传输可以使用OUT事务处理。它们是:块传输,控制传输的数据彰、段和同步传输。(D数据包数据包是和给定的事务处理相关的,其传输方向由事务处理类型确定,数据包可以传向LSB设备也可以从USB设备传出。目前有两种类型的数据包DATAo和DATAI,用:柽支筠:在发送方和接受疗之怍】的长数据传输的同步。
46、握手包USB设备使用握手包来报告一个给定的事务处理状态。数据的接收器负责给发送:疗发回一个数据包。通过不同的握手包,可以报告三种情况:确认包(l:K)确认数据包被无误的接受。非确认包K)指示一个功能设备在OUT事务中不能从主机接受数据,或者在IN事务中不能发送数据到主机。NAK只能在IN事务的数据阶段或者在OUT第:二章USB协议分析事务的握手阶段被返回。NAK被J日来指示一个功能设备暂时不能传输数据,但如果主机不介入,它将永远不能传输数据。停止包(STALL)目标设备用它来报告不能完成传输任务,并且要求软件进行二F预,使设备从停止状态恢复。衙导包集线器通过禁止低速端口的方法来阻止高速事务在低
47、速数据线上进行处理。在广播个低速信息包之前,必须广播一个前导包,目的是通知所有的集线器在这个f i;。包后面跟随一个低速的事务处理,集线器必须对这个前导包作出响应,响J0 7:r法就是激活集线暑;的低速端口。24 2 2USB事务处理ljsB事务处理过程随稻传输类型3J不同有很大程度的区别,以下将就块传输,控制传输,同步传输的事务处理逐一介绍。l=D块传输事务借助错误检测机制和重试机制,块传输类型必须保证在主机和功能设备之间的数报确剥也进行传输。块传输事务使用一个包括了令牌,数据,握手在内的三阶段骣鼽具体如。图。壬:特定的流控制和中止条件下,数据阶段可以被一个握手阶段f锊,从而导致一个二阶段的
48、事务,即没有数据需要传输。图212块传输事务格式当主机准备接受块数据时,它负责指定一个IN令牌。功能设备的应用功能USB接口的开发和设计点通过一个数据包来响应;如果不能返回数据,则返回一个NAK或者STALL握手信号。NAKj示功能设备矧对不能返回敫据,而STALL指示如果USB系统软件不介入的话,功能设备将永远不能传输数据。如果主机接受到一个合法的数据,它将返回个ACK握手信号作为响f巫。如果主机侦测到接受数据有错误时,它不会给功能设备返q握手包。当主机准釜发送块数据旺它首先指定一个0uT令牌,紧接着是个数据包,如果数据破功能设备无误接受,它将要返回以下三种握手信号中的一种:ACK:数据被无误接受,主机可以发送下一个数据包。NAK:数j;妓无误接受,当主机应该j萤发数据,因为功能设备暂时处于无法接受数据的状奁。r【:二如缓存fz:满)sn地L;如果应用功能点:被中止,该握手信号被返回,用来指示主机不再重发数据,因为功能设备出现了错误。(萤控制传!:龟目;务控制传输菇!少l有两个髟段的事务:设置事务和状态事务。 个控制传输在设簧阶段和状态阶段之间的数据阶段不是必需的:在设置阶段,一个设置事务被用来传输功能设备中控制应用功能ti舒ml泛信启、。壬1 7訇显示丫没