USB的开发和设计.pdf_第1页
USB的开发和设计.pdf_第2页
USB的开发和设计.pdf_第3页
USB的开发和设计.pdf_第4页
USB的开发和设计.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安电子科技大学 硕士学位论文 USB的开发和设计 姓名:樊巍 申请学位级别:硕士 专业:计算机系统结构 指导教师:高有行 2002.1.1 摘要 本论文主要目的是利月jU S B 为彩色宽幅绘图机提供一种高速可靠的数据传输 的设计和实现,从而使绘图机能够高速准确地绘制图形。 ;f i 叠之第一部分洋绍论述了U S B l l 规范的核心内容,给出了U S B 开发所存; 的:“;基础知识和设计思路。第:二部分分析了U S B ll 规范所能提供的实际最大带 宽。笫i 部分从硬仆、固件和主 几程宁三个部分给出了具体的工程实现。 本论文采用的U S B 这种传输方式,克服了以往绘图机利用并行电缆带来地低 速、j 羔纱娩杂等种引,缺点,为绘羽机的数据传输提供了一利崭新的新型接口, 关键词:通用串行总线彩包喷s 墨绘图机固件开发 A b s t r a c t 1 h i s p a p e rp r e s e n t sam e t h o do fd e s i g nf o ra n dr e a l i z a t i o no fd a t at r a n s f e rw i t h h i g h , p e e 。da n dr e l i a b i l i t yf o J 。c o l o li n k j e tp l o t t e rb yU S B S Ot h a ti tc a nd r a ww i t hh i g h s p e e da n dp r e c i s i o n T h ef i r s t p a r to f t h i sp a p e rd e a l sw i t ht h ec o r ec o n t e n to fU n i v e r s a lS e r i a lB u s1 1 S p e c i f i c a t i o ni nd e t a i a n dp r o i d e sf u n d a m e n t a lk n o w l e d g ea n dw a yo f d e s i g ni nU S B d m e h I p r r , e n t T i r e c o n d p a r t ( f t h i s p a p e rm a i n l ya n a l y z e s t h ea c t u a l b i g g e s t b a n d ui d t h p r o v i d e db yU S BS fe c l ,1 ,T h e l a s t p a r t o ft h i s p a p e r d e s c r i b e st h e i m p l e m e n to fe n g i n e e ii n g i nh a r d w a r e ,f i r m w a r ea n dh o s tp r o g r a m T h ed a l at r a n s f ero fU S Bu s e di nt h i sp a p e rc o n q u e r ss o m e d i s a d v a n t a g e s ,s u c h a s l o ws p e e d c o m p l e xo fc o n n e c t i n ga n dS Oo n ,p r o v i d i n gan e wp a t t e r ni n t e r f a c ef o rt h e d a t at r a n s f e ro f p l o t t o K I _ 1 l l :U S Bc o l o r i n h j e tp l o t t e r f i r m w a r e d e v e l o p 第一章绪论 1 第一章绪论 1 1 论文选题背景 今天个人电脑上所使用的大多数外围设备仍然是基于接口实现的,这些接口 最- q , J 圭- 曰I B M 公司在2 0 世纪8 0 年代早期设计的。这些接口的设计存在很多缺陷, 它们不仅给设计者带来了许多麻烦,而且给用户带来了诸多不便。比如:I O 地 址经常出现冲突,接口是j :共享式的,接口的数据线种类繁多,外围设备不能热 插拔,以及传输速率不够高等等者多不足之处。 随着计算机的飞速发展,新的外没层出不穷,其性能越来越完善,速度要求 越来越高。同时这些外设对接口的要求也越来越高。老式接口在很多应用领域已 经完全不能满足新型外设的耍求。于是,为了满足新型外设对接口的要求,在1 9 9 5 年币| | 19 9 8 年推出了U S B l0 和L S B l1 规范,标志着一种新型高速串行接口 U S BI 内产生。 U S B 全称为U n i v e r s a lS e r i a lB u s ,即通用串行总线,是新一代的硬件接入总 线技术。它的主要优点如下:数据传输速度明显快于串联和大多数的并联接口; 最毒:连接1 2 7 个外部设备:具有良好的弹性适应能力;支持热插拔和即插即用 ( P :小) :。0 用系统资源少1 只占羽一个I R P ) ;无总线竞争等等。目前在很多应用 上,U S Bl E 在逐步取代我们以往所普遍使用的老式串、并联接口,成为许多外设 接口的首选。 讨:U S B l1 规范而言,它:持最高速率为1 2 M b i t s S 的数据传输,而新推出 的U S B20 支持的:夜高运巍更是达到了4 8 0 M b i t s S 。对于前者而言,U S B 提供的 数据传输速率比每秒1 0 k b i t 传输速率的苹果桌面总线端口快了1 2 0 0 倍,比每秒 2 3 0 k b i t 传输速率的苹果串叶陕了5 0 倍。这样就给我们提供了一种高速,方便, 成本f ,珀0 接口,征很大程度上玫善了外发和接口之间的矛盾。 i EU S B 推出的短短几年内,有关U S B 的产品已经逐步占据市场的主导地位。 比如高速的U S B 移动硬盘,U S B 摄像头,U S B 读卡机,U S B 文件传输绂,I S D N U S B 终端适配器等等。在2 0 0 1 年9 月,威盛电子宣布推出V T 6 2 0 2U S B2 0 控制 芯 ,:童种新一代的四端 1 U S B2 0 控制芯片支持P C I 总线接口、进阶的电源管 理能力以及更丰富的技术规格,可为日益先进的计算机外设产品,如高解析度视 讯、影像摄影机,以及下一代的扫描仪、打印机等等提供比传统U S B 接:2 1 高出 4 0 倍的数据传输带宽。 1 2 论文的主要工作 目前随着广告业的迅猛发展,大型彩色喷墨绘图机的市场进一步扩大。但是 由于其分辨率和绘图速度越来越高,并且图像幅度越来越大,需要传输的数据量 2U S B 接口的开发和设计 急剧增加,传统的低速串行接口己无法满足绘图机的要求。但对于通用串行总线 U S B 而言,它f 输速率高,连线简单,完全可以满足绘图机对数据传输的要求。 本论文完成的主要工作便是为大型喷疆绘图机提供基于U S B 的传输方式,将 计算机处理完的图象信息通过U S B 电缆高速可靠的传输给绘图机,使其打印出高 质量的图像。由于U S B 实际传输的数据率和理论值存在一定程度的差异,所以作 者在实现U S B 传输模式时不仅注重其数据准确性,更重要的是通过种种手段提 高其数据传输速率试图使U S B 传输的速度达到或者高于当前大部分利用U S B 传 输数据的速率,从而使U S B 电缆能够在绘图机中真正的高速传输图像信息。 第:二章U S B 协议分析 第二章U S B 协议分析 2 1U S B 概述 U S B 是一和电缆总线,它支持多台外设和一台主计算机同时进行数据交换。 所接入的多台外设通过一个主机调度的,以令牌为基础的协议来共享U S B 的整个 资源。U S B 允许其中一个外设当主机和其他外设进行通信时可以被插入,确认, 使用和拔出。 2 1 1U S B 系统的组成 一个U S B 系统是由以f ? 三个方面描述的:U S B 互联,U S B 设备,U S B 主机。 U S B _ 可- 联描述了U S B 设备和主丰厂J 进行互联和通信的方式和手段。U S B 设备和U S B 主机则是整个U S B 系统的,) 外谬j 个主要因素。 ( 0U S B 互联 U S B 互联包括了,以下,乙个方面:( 1 ) 总线的拓扑结构,即U S B 设备和主机之 间的连接模型。( 2 ) 内部层次j 勺联系,即在U S B 系统中各个层次完成的功能。( 3 ) 数 据流馍堡! ,即数据通过U S 8 在挺供者和使用者之间移动的方式。( 4 ) u S B 调度, 即L7 S B 提供共享互联的方F i , U S B 负责连接U S B 设备和U S B 主机。其中U S B 物理互联是一个分层的星 型拓扑结构。而H U B ( 集线器) 是每层的核心,每个电缆段是一个点到点的连接, 该连接j 要么是在主机和H U B :芝n 0 ,要么是在主机和设备之间。 U S Bl :机是整个通信模式的核心是整个U S B 系统的管理者。U S B 主机就 像交通警察一样控制和调度连接到端口的全部设备的活动。这种模式被称为基于 主机的通信模式。并且U S B 主机是整个U S B 系统中唯一需要系统资源的部分( 主 机存f 器,I O 地址空间,【R Q ) 。但是,U S B 设备不再需要映射到相应的主机存 储器和I ? O 地址空间,也不需要m Q 。 U S B 主机 在任何U S B 系统中只有一个U S B 主机。主计算机系统上的U S B 接口被称 为主控制器( H o s cC o n t r o l l e r ) ,主:空制器是通过硬件,固件和软件共同来实现的。 一个根H U B 被集成到主机上来提供个或者多个接入点。 U S B 主机控制器借助它的根H U B 或者H U B 初始化所有的事务,它每一毫秒 初始化一帧的开始( S O F ) 。在S O F 产生之后,通信事务就在每一秒的帧中,在 主机和H U B ) f , 设之间产生。 ( 爹U S B 设备 U S B 设备通常有以下P 种:H 【J B 负责提供额外的接入到U S B 系统的连 接点;功能设备为系统提供某种特定功能,比如I S D N 连接器,数字游戏杆 4 U S B 接口的开发和设计 或者扬声器。现在有了第三种设备,集成了前两者的功能,既可以提供接入点, 又能完成一定的功能,比如一些提供U S B 接口的显示器。 2 1 2 总线协议 U S B 总线属于查询总线这一类。:主控制器负责初始化所有的数据传输,这些 总线事务最多包括三个信息包( 令牌包、数据包、应答包) 的传输。主控制器在 调度的基础上开始发送个U S B 包,此时总线事务开始进行,这个包描述了事务 的类型和方向,U S B 设备地址:和应用功能点的数目。这种包称为令牌包。U S B 设 备通过对相堑白,J 地址字段进铜c 翠码来进行l j 身的地址选择。在一个给定的事务中, 数据要么是从主机到设备,要么是从设备到主机。数据传输的方向在令牌包中被 指定。然后,事务的源方发送一个数据包,或者发送一个包表明没有数据传输。 一般说来,j 务的1 1 的方用应答包来指示传输是否成功。 在主机和个没备上的应j 目功能点之f 目的U S B 数据传输模型称为一个管道 ( P i p e ) 。在U S B 系统【 1 共有两种管道:流管道( s t r e a m ) 和消息管道( m e s s a g e ) 。流数 据没有U S B 定义的结构,但是消息数据具有U S B 定义的结构。另外,管道具有 一些有用的信基、,乜括数据荐宽,传输服务类型,以及一些应用功能点信息( 方 向和缓存尺寸,小) 。 大多数管道是! j 一个U S B 设备被配置后才存在。但是,有一个信息管道,即 缺省的控制管道只要相应设备被加电就一直存在,以此提供对设备确认,状态和 控制信息的访问。 事务调度允汁刈流管道进行流控制。i E 硬仁层,通过使用一个N A K 握手包 来阻止对缓存的读写,从而停止当前的数据传输。当收到N A K 包时,只要总线 可用,该事务会一直重试。这种流控制机制允许一种灵活的流控制机制,即允许 多种流管道同蕾。运行。所以,多重流管道可以用:下同的时间间隔和包尺寸进行服 务。 2 1 3 数据流类型 U S B 数据传输在主机软件和一个U S B 设备上特定的应用功能点之间发生。 一般:来说,通过个管道的数据传输和其他管道中的数据流是独立的。一个给定 的U S B 设备可以有很多管道。比如,一个给定的U S B 设备可以有个从主机到 设备的管道,也可以有一个从设备到主机的管道。 在U S B 系统体系结构中,共有四种基本类型的数据传输:控制传输,块传 输,中断传输和同步传输。难。f 任何给定的设备配置,一个管道只能支持以上的 一种数据传输。 小结:本节从一个整体来分析一个U S B 系统的主要内容,即U S B 互联,U S B 第:二章U S B 协议分析 设备,U S B 主机,给出了理解U S B 系统体系的一个整体概念。 2 2 U S B 硬件元素 2 2 1 连接器 U S B 连接器被设计成允许U S B 外设连接到集线器端口。集线器端口位于计 算机的背面,也可以和其他外设相连,还可以位于独立的集线器设备上。 为了方便用户的使用,U S B 协议规定了两种连接器:A 连接器和B 连接器( 分 为插喳:f 插头,两种必须对应使用) 。 A 连接器:提仁eU S B 瑞口和U S B 外设数据线之间的连接。A 系列插座是作 为集线器端口连接器使用的,而A 系列的插头和外设数据线相连,插头用来和 U S B 外设相连。 B 连接器:提化和U S B 外殳的数据线连接。B 系列插座在外设上提供,B 系列的捅头和数据线相连。 每个连接器有四个管脚,两个数据管脚用于传输差分数据,两个电源管脚用 于给设备供电。 2 2 2 数据线 U S B 电缆:U S B 物理介质由根四芯的电缆组成:V c c ,G r o u n d ,D + ,D - 。 V c c 接5 伏的电源线,G r o u n d 接地线,D + ,D - 是两根差分数据传输线。具体见图 21 。 l 箍l S 艳 图2 1 U S B 传输线缆 低速数据线:传输速率为l5 M b S ,最长传输距离不能超过3 米,它只能用 于低速设备,数据线可以不屏蔽, 高速数据线:传输速率为1 2 M b S ,最长传输距离不能超过5 米,它能用于高 速设备和低速设备,数据线必须屏蔽,并且必须是双绞线形式。具体如下:一对 2 8 到2 0 A W G 非屏蔽双绞线,一对2 8 A W G 屏菠数据双绞线。 2 2 3 检测设备连接和速度 主机软件在进行数据传输之前,H U B 通过监视差分数据线来检测U S B 设备 是否连接,并且可判断U S B 设备的快慢。 体方法:连接到U S B 主村。端的D + ,D 均接上1 5 K 的下拉电阻,对于全 6U S B 接口的开发和设计 速设备,在D + 接上l5 k 的上拉电阻,对于低速设备,在D 接上1 5 k 的上拉电阻。 当H U B 检测到D + 上为高电平D 上为低电平时,可以判断此时加上了一个全速 设备;当H U B 检测到D 一上为高电平,D 上为低电平时,可以判断此时加上了 一个低速设备。 当这种情况持续时间超过2 5 毫秒时,H U B 认为该设备已经接上,并且在它 的端口状态寄存器中设置适当的状态位。主机软件则周期性检查每个集线器进行 以上的判断。 2 2 4N R Z I 编码 U S B 串行数据是用N R Z l ( 反相非归零) 进行编码的,其过程是在通过U S B 数据线进行传辑城进行的,匿l22 显示r 署佣N R Z I 编码和差分信号的传输方式 的具体情况。 一芒卜一鬟兰刍墨一吕一 一l一一l |l 一 L 一一。王J _ 一0 L _ J D p 网2 2 在U S B 二采用N R Z I 编 马和差分信号的传输方式 N R Z I 编鸭片先是由U S B 弋理执行,接下来,编码后的数据被放入U S B 数据 线。接收器放大传来的差分数据,并把N R Z I 数据发送到解码器,对数据进行解 码和采用差分信号进行传输有助于确保数据的完整性和防止噪声干扰。 小结:本节从U S B 连接器,数据线和编码方式等角度论述了U S B 的硬件元 素,为从硬件J 理解U S B 连线简单,传输速率高提供了理论基础。 2 3U S B 数据流模型 U S B 在主机和接入的U S B 设备之间提供通信服务。图2 3 U S B 实现图从一个 全面的角安给出了U S B 通信的具体情况。如下图所示,主机到一个设备的简 单连接需要相芳| j 未次和实体的相互作用才能实现。U S B 总线接口层在主机和设备 之间提供物理的、信号级的、分组的连接。U S B 设备层体现了U S B 系统软件和 U S B 设备之间的一般性操作。功能层借助与之匹配的客户软件层为主机提供额外 的服:簪。U S B 设各层和功能层部从逻辑的:宥度分忻数据移动,所以它们通常使用 U S B 总线接 层米实现数据传输。 第:二章U S B 协议分析 7 E 二二器一 _ L 一 = :二二肾21 R 日 f , 一 礓坦1 Im = ! Hmmm P 到2 :3i l s E ;:实珊图 :0j 搞述和管I l ! U S B 通7 声,以下兰个方面的理解至关重要。其中包括:总线 拓扑,通信流模型和总线访问管理。 = ! 3 1 总线拓扑 f ! 总线拓扑中,一共有旧个主要部分,即为:主机和设备u s B 系统的基 本要索。物理拓扑一一u s B 实际互联的方式。逻辑拓扑不同U S B 要素的作 用和功能,以及从主机和设备角度看U S B 工作的方式。客户软件和功能块的联系 客,。软件和在U S B 设备中与之相关的功能块接口之间协同工作的方式。 ( 1 = | I _ J S B 主机 在图23 的左边体现了U S B 系统中主机的逻辑组成。在U S B 整个体系中, U S B 主机具有独一无二的作用。除了它自己特定的物理层地位外,主机对U S B 和它月i 连接的设备具有特定的作用。个U S B 设备只有获得主机的许可之后才能 访问U S B 总线,同时主机j ! 三负帚监控整个U S B 拓扑结构的活动。 U S B 设备 在图23 的右边体现了U S B 系统中设备的逻辑组成。U S B 物理设备可以为主 机提俺弧外的功能,这些功能范习很广。但是,所有的U S B 逻辑设备为主机提供 相同的:篓本接口。返就允影:主机以相同的方式管理不同的U S B 设备。 为了帮助主机识别和确认U S B 设备,每个U S B 设备必须传送和报告与配置 相关的信息。有些相关信息是所有U S B 逻辑设备都需要报告的,而有些信,f f , 贝J J 是 和某些I l 体的设备相关。 |、i U S B 接口的开发和设计 ( 9 物理总线拓扑结构 正如图2 4 所示,U S B 上的设备借助分层的星型结构连接到主机上。U S B 的 接入点是由一个U S B 特定的设备类提供( H U B ) 。由一个H U B 提供的额外的接 入点被称为端口。而含有嵌入式H U B 的主机就是根H U B 。主机可以借助根H U B 提供一个或者多个接入点。为了防止循环的接入,在U S B 星型结构中必须采用分 层结构。这就导致了如下图的裉状图形。 訇24U S B 物Ir p 总线拓扑结核 ( D 逻辑总线拓扑 当设备已经实助接入到U S B 分联星型结构时,主机可以和每个逻辑设备进行 通信,就好像这砦设备直接接入到根端口上。这洋就产生了如下图的U S B 逻辑视 图。 ,i 磊卜、 、竺兰, 图2 5u s B 逻辑总线拓扑图 尽管大多数主机,逻辑设备活动使厍这个逻辑视图,主机仍然需要知道其物理 拓扑结构来支持H U B 的活动,当卜H U B 被移除,所有接到这个H U B 上的设 备都必须从该逻辑视图中移除。 客户软件和功能设备的联系 第二二章U S B 协议分析 址,该地址是由U S B 系统在设各接入时设置的。同时,设备上的每个应用功能点 在设计时也被给定一个唯的设备标志应用功能点号,其方向是由设备决定 的。每个应用功能点有一个单一的连接,即支持数据在一个方向上传输,或者是 I N 人设备到主机) ,或者是O L T ( 从主机到设备) 。 所自的U S B 设备都需:引- 一E l :旦J0 号应用功能点实现一个缺省的控制方法,该应 用功能点具有I N 和O U T 两个方向。U S B 系统软件利用这个缺省的控制方法来初 始化和控制逻辑设备。一旦设备插入,加电,0 号应用功能点就一直可以使用。 而划于:t 1 :0 的应用功能点,只有当其被成功配置之后才能使用。 2322 管道 一一个U S B 管道是建立在一个设备上的应用功能点和主机上软件之间的某种 联系。管道代表了一种借助缓存在主机软件和设备上的某个应用功能点之间传输 数据j E 力。在U S B 系统中,一共有两种类型的管道:流管道( s t r e a mp i p e ) 和 消息镑通( m e s s a g ep i p e ) 。 流管道从总线事务的数据包中获得数据,并且该数据不具有U S B 所定义的结 构。数据流从一个漉管道的一端施入,从另一端流出。在整个通信流中,流管道 始终;- ! 引的。 消息管道和流镑道有很大程度的不同,消息管道允许数据流在同一个管道的 两个方向I i 发生,并且传输的数据具有特定的结构。缺省的控制管道( 含有0 号 应H :功能点) 一直是一个: i 息管道。 小纷:本节从物理和逻辑拓扑结构,U S B 通信模型等几个方面分析了U S B 的数据流模型,从1 3 体上提供了理解U S B 通信的具体思路。 2 4 传输和事务处理 2 4 1 传输类型 一个给定的U S B 设备的每一个应用功能点均有其特殊的性质,这些特性规定 了访问这些端点的方式。其传输特性和应用程序的要求密切相关。U S B 规范一共 定义了四种传输类型,每一种均反映了U S B 设备的应用功能点可能要求的传输性 质。 U S B 即可以支持非实叫的数据类型,如打印,文本或者图象数据:也可以支 持实时的数据类型,如语音和视频信息。以下将就四种传输类型逐一介绍。 24 1l 简介 控制传输:属 :双向传:输,7 三用来把特定的请求传送给U S B 设备,经常在设 备配谴中被使用。控制传输恒定占据总线1 0 的带宽,每个控制分组最大为6 4 字节,有C R C 校验。 U S B 接口的开发和设计 同步传输:可以是双向,也可以是单向。同步传输的最大分组可为1 0 2 4 字节。 它对实时性的要求超过对准确性的要求,f 目此不支持错误恢复。同步传输特别适 合数据采集和视频的传输比如U S B 摄像头。 块传输:可以是双向,也可以是单向,它特别适于大数据块的传输。它对准 确性要求较高,蛀大分组长度为6 4 字节,常常醚! 用在绘图机和打印机中。 中断传输:这个中断不同于二P C 机中的中断,它总是用于对设备的查询,以 确定设备是否有数据需要传输。这种传输方式常用于U S B 键盘等一些低速设备。 2 412 够:传输 U S B 对于块落道没有定义睾门的数据咯式,它使用流管道进行数据传输,所 以其管道只能有一个方向。 块传输包尺寸限制:其千专输的最大信 包的大小限制为8 ,1 6 ,3 2 ,6 4 字节, 不允许出现其他长度的信息包。当块传输;乏生时,所有信息包的大小必须是最大 信息包容量字段中指出的最大容量,传输的最后一个信息包除外。一个块应用功 能点被设计来支持一个最大负载尺寸,它在确认信息中报告其最大负载尺寸。在 确认;扣,U S B 系统读取应用功能点能最大, 己寸负载,并且确认发到应用功能点的 负载尺寸小于该健。 块传输在以I 、任何一种情;兄发生时,表明传输成功: 已经正确传输了指定长度的数据 传输一小包,其尺寸小于蛀大负载尺寸( w M a x P a c k e t S i z e ) 或者为零 当块传输景:成以后,主耖蕴制器峻回当前的I R P ( 中断请求) ,对下一个I R P 作出响应。 块传输总线访问限制:这种传输疗式仪用于全速设备,它和控制传输很相似, 但是优先级低些。当有一些总线时问没,亨用于其他传输类型时,可以用来进行 块传输。 因为块传输是基于目前I - 供分配的带宽,所以一个应用功能点和它的应用程 序不能对块传输指定特定速率的服务。一个应用功能点和它的应用程序当有其他 设备加入或者拨出时,可以西。7 变分配给它们的总线时间。应用程序在块传输和控 制传输之间不能设定顺序, 2 4 13 控制传输 控制传输主要负责配置U S B 设备。每个设备都通过一个缺省的控制端点 ( E N D P O I N T c ) :采配置设备,控制发备状态,以及该设备的其他特性,并且必 须响应U S B 的些特殊请求。 组成:控制传输至少由2 个阶段构成,也可以是3 个阶段。 建立阶段:本阶段把信息传送给目标设备,定义对U S B 设备的请求类型。 第二章U S B 协议分析 在本阶段使用S E T U P 令牌包。传输方向是从主机到设备。 数据阶段:该阶段仅仅是为了数据传输的请求而定义的。例如,在数据阶 段,读描述符的请求把描述符的内容发送给系统。但是,并不是所有的请求均需 要该阶段。传输方向是双向的。 状态阶段:该阶段月j 来报告被请求的操作的结果。传输方向是从设备到主 机。 包尺、j 限制:对于全速设备,所能允许的最大负载尺寸为8 ,1 6 ,3 2 ,6 4 字 节;低速设备所能允许的最大负载尺寸为8 字节。 为了决定缺省控制管道( 应羽功能点0 ) 的最大包尺寸,U S B 系统软件读取 设备 靖述符来获取相关信息。当主机读取了设备描述符的初始部分后,它会认为 已经读取了缺省管道的w V l a x P a c k e t S i z e 字段( 设备描述符的第7 个字节) 。主机 会在随后的事务中允许传输正确尺寸的数据。 对r ! 它的控制应用功能点,在被确认后,U S B 系统软件会知道最大负载尺 寸,【l 此保证发往应用功自i 点负载大小不超过这个限制。 对j :从应用功能点到j i 机的控制传输的数据阶段,当应用功能点完成以下任 何件事情时,便视为成功: 【_ 三经精确传输了在叮f 阶段指定的数据长度。 :多j 0 输了一个: 载,其尺一| ,J 、于w M a x P a c k e t S i z e 或者为零。 当数据阶段完成后,主机控制器必须执行状态事务而不是下一个数据事务。 否则应用功能点将会中止管道。如果从应用功能点接受到了一个超过约定的负载, 该抒制传输的I R Pj g 被中上! :或者收回。 ,t :j l 、主机到应用功自i 点的腔制传输的数据阶段,只要所有的数据被传输完 则表明成功。如果应用功能点接受到了一个从主机来的超过约定的负载,它会中 止管道。 总线访问限制: 扎果需要的控制传输没有芘费一帧时间的1 0 ,剩下的时间可用于块传输。 个总线传输可以在不同帧传输。 如果需要传输的控制传输超过了保留时间,并且额外的帧时没有用于同步 或者中断传输,主机控制器将会尽它昕能完成更多的控制传输。 如果要进行的控制传输大大超过提供的帧时,控制传输将会被挑选来在总 线上传输。 控制传输数据时序:如果一个应用功能点在一个控制传输未完成时又收到一 个se u 1 ) 事务,设备涛会丢弃当1 击的控制传输,而去处理新的控制传输。这种情 况一般不会发生,除非在总线上出现了错误。 当主机遇到一个中止( H a l t ) 状态或者侦测到一个错误后,控制应用功能点 1 4U S B 接口的开发和设计 可以通过接受下个设置标志( S E T U P P D ) ) 来恢复。对于缺省控制管道,如果 没有收到S E T U PP I D ,设备将要重启来清除H A L T 或者错误状态。 24 14 中断传输 ,扣断传输通常用来支持那些需要间断的发送或者接受少量数据的设备。支持 中断传输的管道通常必须提供以下两种功能:可保证的最大服务周期;由于总线 错误造成传输失败时,需要在下一时刻重新尝试的能力。 中断传输的数据格式:对于中断管道而言,没有特定的U S B 数据格式。 中断传输克旺:中断管道:睦流管道,f 日此它始终是单向的。一个应用功能点 的描述符定义1 。1 给定的中断传输是进八主机,还是从主机出来。 中断传输的分组尺寸限制:一个用于中断传输的应用功能点指定了它传输数 据的最大尺寸负载。对于全速设备而言,最大数据包是6 4 个字节,对于低速设备 而言,最大数拄:包毡8 个字彳,U S B 并不要求数据包正好是最大数据限制的值, 所以也并不要末将数据包填充为最大数据e 曼制6 】值。 中断服务剧期:采用中断传输是因为设备要求周期性地安排执行任务,所以 不会发生超时运行地情况,全速中断传输可以频繁到每毫秒都发生传输,也可以 慢到每2 5 5 毫秒刁发7 扣一次传输。低速传输j 勺最快频率是每1 0 毫秒发生一次传输, 也可以慢到每2 55 毡秒发生一次传输。 总线带宽分配:U S B 只是利用9 0 的总线时间用于中断和同步传输。总线频 率和帧的计时限制了在一帧中能够成功完成的中断事务的数目,对于全速设备而 言是1 0 8 个单字节负载;对于低速设备而言是1 4 个单字节负载。由于种种实现的 条件,主控制嚣铷能在每一帧中不能提供如上的中断事务数目。 中断管道要求保证数据在明确的查询周期里被发送。由于缓冲区溢出而造成 的在查询周期内对端点的存取失败可能导致数据丢失。 错误恢复;中断传输支捧错误恢复。j E 执行传输的时候如果检测到错误,那 么在下一个服务周期内就将试图进行重新传输。 24 15 同步传输 在一个非L S B 的环境中,同步传输通常具有恒定的数据传输率,错误容忍机 制。在一个( L q B 环境中,同步专输必须提供如下的服务:在有限制的等待时间里 保证对U S B 带宽的访问;只要数据玻提供给管道,就保证通过该管道的恒定的数 据传输率;万一由于错误造成数据丢失,不进行数据重发。 同步传输数据格式:对于同步管道而青,L s B 不要求在其通信流中有固定的 数据格式。并L 它只用于全速设备;在低速设备中不能使用同步传输方式。 同步传输方峨同步管道是流管道, 目此它始终是单向的。一个应用功能点 的描述符定义了一个给定的同步传输是进入主机还是从主机出来。如果一个设备 第二章U S B 协议分析 要求双向的同步传输流,必须使用两个方向的同步管道,每个方向上均有一个。 一个朋j 。接受数据,个用于发送数据。 司步服务后期:在U S B 上,同步传输作业是经过安排后按照一定的规则执行 于连续的时间片上的,每个时间片为l 毫秒。这就可以保证传输可以维持一个恒 定的速率。 目步传输的分组尺寸限制:左一个给定的配置中,用于同步传输的应用功能 点指定了它能够传输或者接受的最大尺寸数据负载。U S B 系统软件在配置中使用 这个信息来确保每帧中有足够多的总线时间来满足这个最大的数据负载要求。如 果有足够多的总线时间,则建立配置:否则配最无法建立。 弼哺J 管道一十f ,U S B 系统坎件不能调整一个同步管道的最大负载尺寸。在 一个给廷的U S B 配蟊中,库】步管道能很简单地被支持或者不被支持。 对于每个同步管道而言,最大数据负载尺寸不能超过1 0 2 3 字节。同步管道的 任f j j 给疋尊务不要求正好为应用功能点规定的最大负载尺寸。数据负载的尺寸由 传送j r 5 = 户软件;t 者功自i 殴备) 决定,其负载大小可以随着事务的不一样而不 同。数据负载的尺可由数据传输苦决定,而且必须小于最大负载尺寸。值得注意 的是,总线错误能够改变接受方昕看见的数据包尺寸。但是,这些错误能被检测 出柬,或哲通过数据上的( f c 纠蒲码,或者通过接受方所预测的数据包大小来检 测。 错误恢复:由于一个恒定的数据传输率对于一个同步应用来说至关重要,所 以同步传输不支持错误检测和错误恢复。错误恢复包括在错误被检测到时,重新 传输随复弼,进行重新传输可能会导致来自U S B 设备的数据率和来自于应用程序和 目柄:没l 一的数据率z 间失去同步,所以,它不允许重新传输。 2 4 2U S B 事务处理 一个传输在U S B 上执行,期间需要进行一个或者多个事务处理,每个事务处 理出一序列的信息包组成。图2j 显示了在次传输过程中,不同层次之间的关 系。传输过程从U S B 设备驱动翟! 序要求执行一次传输开始,到通过U S B 数据线 传送结果信息包结束。这个传输可以来自设备,也可到达设备。对于一个事务处 理而吉,它由主机进行初始化,用于把数据发送到U S B 设备和从U S B 设备把数 据发送j 士1 去。每个事务处理由一个或暂多个信息包组成,它们都通过U S B 传输。 1 6 U S B 接口的开发和设计 U S B 驱动 程序 主机 驱动 程序 U S B 主控 制器 O S B 客户驱动程序U S B 客户驱动程序 陶2 9t S B I 辖的层次关系图 2 421U S B 信息包 U S B 信l l 包组成 信息包是U S B 事务处理基本构成单位。事务处理一般由三个阶段组成,或 者是三个信息包组成。如下图所示。 握手包阶段 令牌阶段 数据包阶段 一一、y 一 一次事务处理 图2 1 0 传输事务的组成 令牌包阶B :每个事务处:蛩部从一个令牌阶段开始,它定义了事务处理的类 型。如果事务处理的目标是个指定的U S B 设备时,这个阶段还包括设备地址。 第:二章U S B 协议分析 有些令牌包是独立的,所以没有其他附加的信息包跟随,比如S O F ( 时间片开始) ; 而另外一些令牌包总是跟随有一个到两个附加的信息包,比如I N 包。 数据包阶段:相当多的事务处理类型都包括一个数据阶段,该阶段负责传输 相奠:的数据。数据阶段在不同的传输类型中可以传输不同的最大数据包。 握手阶段:所有U S B 传输的实现都要保证能够进行数据发送,除了同步传输 外,还有握手阶段。握手阶段为数据发送方提供一个反馈信号,通知发送方数据 是否已经被正确接受到了。如果荏一次事务处理中遇到了错误,发送方会进行相 关i f , ”上圳, 信息包是用来执行所有的U S B 事务处理的机制。下图所示即为U S B 信息包 的基本格式。每个前行数据包是。一个同步序列,同时还允许U S B 设备和传来的数 据位的! ! 输速率同步,这些j 数据血就是信息包中的数据。信息包的类型由一个位 组合i _ 【| U 定义,成为信息包的I 【。在I D 之后是关于这个信息包的具体内容。它 根据包类型的不同而不同,每个包以个包结尾状态来标示。 可j 序列 包I D 包结束 丑特定瞎息C R C 位 标志 、- , 信息包 訇2 】1 数据包的格式 c | 。i ,窿、包的标识符信息包的标识:符定义了信息包的目标和内容,它可以 分为以F 四类: 令牌包令牌包在U S B 事务处理的开始被发送,用于定义传输的类型。 数据包该包在事务处理中跟随在令牌包之后,该事务处理需要把数据传 输到O S B 没备或者需要从U S B 殳备j ! 数据传输到别处。 握手包握手包一般从接受方返回到发送方,它向发送方提供一个信息反 馈,告诉发送方事务处理的成功或者失败, 二封J 包在U S B l1 中仪有一个号用包的定义,即为前导包,用以激活低 速端。 令牌包 令牌包定义了在U S BJ 二进轭二事务处理的类型。所有的事务处理都是从一个令 牌包开甜 的。 下表给出了U S B 所支持的令牌类型及功能。 U S B 接口的开发和设计 P I D 类型P I D 名称令牌包描述 令牌 S O F 包含时间片的开始标志( s 0 F ) 和时间片编号 S O F 令牌由同步端点使用,用来同步其传输, 仅用二F 全速设备 令牌 S E T U P 包含U S B 设备地址和端点号( 从主机到设备, 用于建立一个控制端点) 令牌 O U T 包含U S B 设备地址和端点号( 从主机到设备) 令牌 】N 包含。s B 设备地址和端点号( 从设备到主机) 嵌2lU S B环识 S O F 包:该包提供了一种疗法用于目标设备识别一个时间片的开始。比如同 步应用程序可以把S O F 放在- 。个指定的1 毫秒时间片的开头,触发和同步传输的 开始。S O F 色对j :所有的全速没各进行广播,其广播发生在每个时间片的开始, 并且S O F 包从不发送给低速设备。 S E T U P 包:该包仅仅在控制传输的建立阶段使用。S E T U P 事务处理启动一 个控制传输,这个阶段即为建扩阶段。一个S E T U P 事务处理在格式上和个O U T 事务! 处理是类似的:S E T U P i 跟随一个数据包和一个确认包。S E T U P 把一个将 要由目标设备执行的请求发送B 去据请求,S E T U P 事务处理可以跟随一个或者多 个I N 或O U T 事务处理( 数拆;阶段) ,也可以仅仅伴随一个状态阶段,状态阶段 由一个最后的数据包组成,它从端点传向:E 机系统。 】N 包:! I 软。r 希望从一、指定的发备凄取信息时,就会使用一个I N 令牌。 I N 包通知目托、U S B 设备数据。卜在被系统请求。I N 事务可用于各种U S B 传输类型。 O U T 包:系统软件指定个O U T 事务处理,当数据被发送到一个目标U S B 设备时,有三和传输类型的传输可以使用O U T 事务处理。它们是:块传输,控 制传输的数据彰、段和同步传输。 ( D 数据包 数据包是和给定的事务处理相关的,其传输方向由事务处理类型确定,数据 包可以传向L S B 设备也可以从U S B 设备传出。目前有两种类型的数据包D A T A o 和D A T A I ,用:柽支筠:在发送方和接受疗之怍】的长数据传输的同步。 握手包 U S B 设备使用握手包来报告一个给定的事务处理状态。数据的接收器负责给 发送:疗发回一个数据包。通过不同的握手包,可以报告三种情况: 确认包( l :K ) 确认数据包被无误的接受。 非确认包K ) 指示一个功能设备在O U T 事务中不能从主机接受数据, 或者在I N 事务中不能发送数据到主机。N A K 只能在I N 事务的数据阶段或者在O U T 第:二章U S B 协议分析 事务的握手阶段被返回。N A K 被J 日来指示一个功能设备暂时不能传输数据,但如 果主机不介入,它将永远不能传输数据。 停止包( S T A L L ) 目标设备用它来报告不能完成传输任务,并且要求软件 进行二F 预,使设备从停止状态恢复。 衙导包 集线器通过禁止低速端口的方法来阻止高速事务在低速数据线上进行处理。 在广播个低速信息包之前,必须广播一个前导包,目的是通知所有的集线器在 这个fi ; 。包后面跟随一个低速的事务处理,集线器必须对这个前导包作出响应, 响J 07 :r 法就是激活集线暑;的低速端口。 2 422 U S B 事务处理 l j s B 事务处理过程随稻传输类型3 J 不同有很大程度的区别,以下将就块传 输,控制传输,同步传输的事务处理逐一介绍。 l = D 块传输事务 借助错误检测机制和重试机制,块传输类型必须保证在主机和功能设备之间 的数报确剥也进行传输。块传输事务使用一个包括了令牌,数据,握手在内的三 阶段骣鼽具体如。图。壬:特定的流控制和中止条件下,数据阶段可以被一个握 手阶段f 锊,从而导致一个二阶段的事务,即没有数据需要传输。 图2 1 2 块传输事务格式 当主机准备接受块数据时,它负责指定一个I N 令牌。功能设备的应用功能 U S B 接口的开发和设计 点通过一个数据包来响应;如果不能返回数据,则返回一个N A K 或者S T A L L 握 手信号。N A K j 示功能设备矧对不能返回敫据,而S T A L L 指示如果U S B 系统软 件不介入的话,功能设备将永远不能传输数据。如果主机接受到一个合法的数据, 它将返回个A C K 握手信号作为响f 巫。如果主机侦测到接受数据有错误时,它 不会给功能设备返q 握手包。 当主机准釜发送块数据旺它首先指定一个0 u T 令牌,紧接着是个数据 包,如果数据破功能设备无误接受,它将要返回以下三种握手信号中的一种: A C K :数据被无误接受,主机可以发送下一个数据包。 N A K :数 j ; 妓无误接受,当主机应该j 萤发数据,因为功能设备暂时处于无法 接受数据的状奁。r 【:二如缓存f z :满) s n 地L ;如果应用功能点:被中止,该握手信号被返回,用来指示主机不再重 发数据,因为功能设备出现了错误。 ( 萤控制传! :龟目;务 控制传输菇! 少l 有两个髟段的事务:设置 事务和状态事务。个控制传输在设簧阶段和 状态阶段之间的数据阶段不是必需的:在设置 阶段,一个设置事务被用来传输功能设备中控 制应用功能t i 舒m l 泛信启、。壬17 訇显示丫没5 呈事 务格式。设置事务通常在其数据域使用D A T A 0 标识符。接受了S E T U P 事务的功能设备必须接 受S E T U P 数据,然后以A C K 响应;如果敛据 出现错误,丢手:i 参数据并且才:,塞回握手包。 如果一个控制传输的数捌阶段存在,那它 图2 1 3 控制设各事 将会包括一个或者多个I N 或O U T 事务,沣且 ” 保持和块传输样的协议规则。在数据阶段中的所有事务必须保持同个方向。 在设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论