




已阅读5页,还剩63页未读, 继续免费阅读
(无线电物理专业论文)usb接口技术及驱动程序开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 u s b 接口以其连接方便,快速、稳定、热插拔,体积小等优点越来越得到现代人的喜 爱。从轻便、快速的u 盘、移动硬盘,到现在普遍使用的数码相机、m p 3 、m p 4 、摄像头、 打印机,甚至是很多开发设备,如d s p 仿真器、单片机仿真器、a r m 仿真器等均出现了 u s b 接口的产品。 u s b 设备的开发包括硬件设计、固件程序设计和驱动程序开发。一般的u s b 设备均为 从设备,即数据交易的发起者仅为主控方( u s bh o s t ) ,也就是我们常见的p c 机。而使得 操作人员能够方便自如的操作i o 设备的就是操作系统,操作系统为计算机操作人员提供了 友好的平台,特别是基于w i n d o w s 的操作系统出现以来。目前操作系统市场m i c r o s o f t 所占 份额最大。w i n d o w s 以其友好易用的等特点得到了大众的认可,为了能够屏蔽各种硬件设备 的差异,微软的操作系统采用了驱动程序,以便上层应用程序能够利用同一接口来对硬件设 备操作。随着计算机外设的分类越来越多,应用面也越来越广,因此驱动程序的开发技术也 变得越来越重要,得到了越来越多的人的重视。由丁二掌握w i n d o w s 驱动程序开发技术需要 了解很多底层的关于操作系统和一些u s b 硬件设备的知识,因此具有较大难度,本论文以 u s b 接口技术及驱动程序设计为内容,详细地分析和介绍了u s b 系统的工作原理以及 w i n d o w sw d m 的结构和原理,同时介缁了u s b 驱动程序的构成、原理及编写过程和开发 工具的使用情况。最后对u s b 设备及驱动的发展和应用进行了说明。全文对u s b 的工作原 理进行了全面的论述,内容详实具体,具有很大的实用价值。 关键字:u s b 主机u s b 设备w d m1 n f 驱动程序 a b s t r a c t u s ba r eg e t t i n gm o r ea n dm o r ep e o p l e sc a r eb e c a u s ei t sr o b u s t ,c o n v e n i e n t ,s m a l ls i z ea n d c a l lb ep l u gi nh o ts t a t e ,w ec a nf i n dm a n yp r o d u c t i o n sw i t hu s bi n t e r f a c e ,s u c ha sm o v i n gh a r d d i s k ,f l a s hd i s k ,d i g i t a lc a m e r a ,m p 3 ,m p 4 ,p r i n t e r sa n ds oo n ,e v e ns o m ed e v e l o p m e n tt o o l ss u c h a sd s ps i m u l a t o ra n ds i n g l ec h i ps i m u l a t o r , a r ms i m u l a t o ra r eg e t t i n gb es u p p o r t e dw i t hu s b t h ed e v e l o p m e n to fu s bd e v i c ei n c l u d e st h r e ep a r t s ,t h a ti sh a r d w a r ed e s i g n ,f i r m w a r e d e s i g na n dd r i v e rd e v e l o p m e n t c o m m o n l yu s bd e v i c e sa r es e r v i c ed e v i c e t h i sn l e a n st h a tt h e m a i nt r a n s i s t o ro fd a t ai su s bh o s tw h i c hi sp c t h eo sm a k ei tc o n v e n i e n tf o ro p e r a t o r st o c o n t r o lv od e v i c e s ,a n do ss u p p o r t saf r i e n d l yp l a t f o r mf o rc o m p u t e ro p e r a t o r s ,e s p e c i a ls i n c et h e w i n d o w sa p p e a r s a tp r e s e n tw i n d o w so p e r a t i o ns y s t e mh a sav e r yb i gp a r ti no sm a r k e t b e c a u s et h ew i n d o w so p e r a t i o ns y s t e mi sc o n v e n i e n tt ou s e ,n l o r ea n dm o r ep e o p l es e l e c ti t i n o r d e rt om a s kt h ed i f f e r e n c e sb e t w e e na l lk i n d so fh a r d w a r et h em i c r o s o f tu s e st h ed i v e r sb y w h i c hu s e r sc a nu s eu n i v e r s a la p it oc o n t r o lt h eh a r d w a r ee v e nt h e yc o m e sf r o md i f f e r e n t m a n u f a c t o r i e s a st h ec o m p u t e rp e r i p h e m le q u i p m e n t sb e c o m e sm o r ea n dm o r e ,a n da r eu s e d w i l d l y , t om a s t e rt h et e c h n o l o g yo fd r i v e r sd e v e l o p m e n tb e c o m e sm o r ea n dm o r ei m p o r t a n ta n d n e c e s s a r y i ti se s s e n t i a lt ok n o wm u c hl o wl e v e lk n o w l e d g ea b o u to p e r a t i o ns y s t e ma n du s b h a r d w a r e ,s oi ti sm o r ed i f f i c u l tc o m p a r e dt oo t h e rs o rt e c h n o l o g i e s t h i sp a p e ri sb a s e du p o nt h e t e c h n o l o g ya n dd r i v e rd e v e l o p m e n to fu s b ,a n dt m k sa b o u tt h ep r i n c i p l ea n da r c h i t e c t u r eo fo f u s ba n dw i n d o w sw d m a tt h es a m et i m et h i sp a p e ri n t r o d u c e st h eu s bd r i v e re l e m e n t sa n d p r o c e d u r eo fw r i t i n ga n dc o m p i l e a tl a s t t h i s a r t i c l ee n d sw i t ht h ei l l u m i n a t i o n so ft h e d e v e l o p m e n to fu s bd e v i c e sa n dd r i v e r s a l lp a p e rd o e sap a r t i c u l a ri n t r o d u c t i o na b o u tu s ba n d h a sv a l u a b l ea p p l i c a t i o n k e y w o r d s :u s bh o s tu s bd e v i c ew d m1 n fd r i v e r 原创性声明 絮8 2 37 8 3 本人郑熏声明:本人所呈交的学位论文,是在导师的指导下独立进行 研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、 数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不 包含任何其他个人或集体已经发表或撰写过的科研成果。对奉文的研究成 果做出重要贡献的个人和集体,均已在义中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:薹l 蔓兰煎日期:出。+ ,;d 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属兰 州大学。本人完全了解兰州大学有关保存、使用学位论文的规定,同意学 校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被 查阅和借阅;本人授权兰州大学可以将本学位论文的全部或部分内容编入 有关数据库进行检索,可以采用任何复制手段保存和汇编本学位论文。本 人离校后发表、使用学位论文或与该论文直接相关的学术论文或成果时, 第一署名单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名:主王苎亟导师签名 第一章绪论 1 1 选题背景及意义 随着计算机工业的不断发展,计算机技术推胨出新,特别是外围设备的发展 更是迅猛。传统的计算机仅有少量s i o 和p i o 接口,通常设置在主机箱的后面 板上,用以连接键盘、鼠标、显示器与打印机等常用外部设备,随着计算机的应 用日益广泛,需要连接的外设不断增多,接口短缺的矛盾日趋尖锐。于是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 驱动程序的开发,特别是u s b 驱动程序 的开发,都存在一定的难度。所以,快速可靠的开发u s b 设备和u s b 驱动程序的 技术成了很多科技公司追逐的目标和比拼的利器。又由于u s b 设备与系统具有相 互独立性,因此掌握u s b 开发技术具有广泛适用性。而且随着u s b 技术应用的越 来越广泛,掌握u s b 开发技术也就变成了软、硬件底层工程师必须掌握的- - 1 3 技 术。 基于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 接口的移动存 储设备保护器积累经验,储备技术。 1 2 内容安排及各章概述 本论文共分五章,第二章对u s b 机构体系进行了详细的介绍。主要研究了 u s b 的电气规范、通信协议,以及u s b 设备的枚举过程。第三章介绍了目前在 国内广泛使用的操作系统w i n d o w s 的驱动程序结构及其特点。驱动程序在操作 系统中扮演者控制硬件设备工作的重要角色。第四章是本论文的重点章节,这一 章节对u s b 驱动程序进行了详尽的研究,从u s b 驱动程序的机构组成,到驱动 程序的编写、编译调试,以及安装都作了比较全面的分析和介绍,同时还简要介 绍了基于u s b 接口的移动存储设备保护器的研制方案。第五章总结工作并对u s b 技术的发展进行了展望 第二章u s b 体系结构 u s b 是由c o m p a q 、d e c 、i b m 、i n t e l 、m i c r o s o f t 和n e c 等多家美国和日 本公司共同开发的一种新的外设连接技术。早在1 9 9 5 年,这些公司就成立了一 个称为“通用串行总线应用论坛”( u n i v e r s a ls e r i a lb u si m p l e m e n t e r sf o r u m u s b - i f ) 的组织,旨在促进p c 总线的标准化,加速新标准的制订和产品开发。 该组织的目标是发展一种兼容低速和高速的技术,从而可以为广大用户提供一种 可共享的、可扩充的、使用方便的串行总线。该总线应独立于主计算机系统,并 在整个计算机系统结构中保持一致。为了实现上述目标,u s b ,i f 发布了一种称 为通用串行总线的串行技术规范,简称为u s b 。由于微软从w i n d o w s 9 8 丌始加 入了对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 的设备; 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 连接了u s b 设备和u s b 主机,u s b 的物理连接是有层次性的星型结构。 u s b 连接了u s b 设备和u s b 主机,u s b 的物理连接是有层次性的星型结构。 每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功 能部件,或从集线器到集线器或其功能部件,从图3 - 1 中可看出u s b 的拓扑结构。 在任何u s b 系统中,只有一个主机。u s b 和主机系统的接口称作主机控制器,主 图2 i u s b 的拓扑结构 3 t l e r 4 机控制器可由硬件、固件和软件综合实现。根集线器是由主机系统整合的,用以 提供更多的连接点。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 主机被定义为 控制u s b 的软件和硬件的集合。如果不是很严格的话,可以认为u s b 主机就是 p c 机的硬件和相应的驱动程序。主机在u s b 中的责任是: ( 1 1 检测u s b 设备的插入和移出。 在上电时,主机必须识别所有已经连接的u s b 设备。在识别过程中,主机 为每个设备分配一个地址,并从设备获取其他配置信息。在上电后,无论何时当 一个设备被连接或断开时,主机都能察觉到该事件的发生,并向设备表中加入任 何新连接的设备或删除任何断开的设备。 ( 2 ) 在主机与u s b 设备之间管理数据流。 主机负责控制总线上的数据流。一般来说,u s b 通信总是由主机发起,并由 主机管理整个数据传输过程。若多个外设希望同时传输数据,主机控制器按如下 方式处理这个问题:它把数据通道分为l 毫秒的帧,然后给每个设备分配每一帧 的一部分。 主机应该保证那些必须以固定速率进行的传输在每一帧中确实能得到它们 所需要的时间量。在设备识别过程中,设备驱动将申请传输所需要的带宽。如果 无法分配所需的带宽,主机就不允许与设备进行通信。不需要固定速率的传输使 用帧的其他部分,并且可能需要等待。 ( 3 ) 进行错误检查。 主机也有错误检查的责任。它往发送的数据中加入错误校验码。当设备收到 数据时,它按校验算法对数据执行计算,然后把结果与接收到的错误校验码进行 比较。如果二者不同,则设备就不确认所收到的数据,于是主机就知道它需要重 新发送( u s b 也支持不允许重新发送的传输类型,目的是保持一个稳定的传输 速率) 。主机对从设备接收到的数据也采用相同的方法进行错误处理。 主机也可能收到其他错误指示符,指示设备现在不能发送接收数据,这时主 机就通知应用程序以采取合适的动作。 ( 4 ) 提供电源。 除了两个信号线,u s b 还有一个+ 5 v 的电源线和地线。大部分外设都可以从 该线上得到所有所需的电源。在上电或连接时,主机给所有设备提供电源,当需 要时还可以使这些设备工作在省电模式下。每个满负荷供电的设备需要高达 5 0 0 m a 的电流。在一些电池供电的p c 的端口和集线器上只支持低功耗的设备, 它们的工作电流被限制在1 0 0 m a 以内。若设备自己有独立的电源供应,则只在 刚开始与主机通信时使用总线电源。 u s b 设备分为集线器和功能设备。图2 - 1 给出了一个典型的集线器的示意图。 集线器具有一个上行端1 :3 ( u p s t r e a m p o r t ) 和若干个下行端口。上行端口用于连 接主机或上级集线器,下行端1 2 1 用于连接下级集线器或直接连接设备。通过集线 器可实现u s b 总线的多级连接。在连接到u s b 总线的初期以及电源断开与重新 接通时,除上行端口外的所有其他端口是不能使用的( 当然它们也可以被单独设 置为可用或不可用) 。另外,集线器可以发现下行端口上的设备插入或移出操作, 并为下行设备分配电源。每一个下行端口都可以分别配置为全速或低速,集线器 可以把低速端口与全速率信号分离开来。 功能设备是指一个可以从u s b 总线上接收或发送数据或控制信息的u s b 设 备。一个功能设备由一个独立的外围设备而实现,它通过一根电缆接到集线器上 的某一端口。但是,一个物理组件也可以包含多个功能设备和一个嵌入式集线器, 而且仅用一根u s b 电缆连接到上级集线器,这被称为复合设备。对主机而言, 复合设备呈现为永远都连接着一个或多个u s b 设备的集线器。 每一个功能设备都包含了用来描述其能力和所需资源的配置信息。在使用一 个功能设备之前,必须由主机来对其进行配置。这种配置操作包括分配u s b 带 宽和为该功能设备选择特定的配置选项。功能设备的例子包括鼠标、键盘、打印 机、m o d e m 、活动硬盘、数字相机等。 与主机不同的是,设备不能主动发起一次u s b 通信。相反,它必须等待主 机并响应主机发起的通信( 一个例外是远程唤醒特征,这个特征使一个设备能向 主机申请通信) 。 设备在u s b 中的责任是: ( 1 ) 检测与自己的通信 每个外设始终监测着总线上的通信,若通信的设备地址与设备的地址不同, 则设备忽略这次通信。如果地址相同,设备就把通信的数据保存在它的接收缓冲 器中,并产生一个中断来发出数据已经到达的信号。在几乎所有的芯片中,这个 步骤都是自动完成的,它被内嚣于硬件中。 ( 2 ) 对标准请求的响应 在上电和连接到带电系统时,设备必须在识别过程中对主机发出的请求做出 响应。当收到请求时,设备把要发送的响应信息放置在它的传输缓冲器中。在某 些情况下,如设定一个地址和配置,设备除了发出响应信息外还要采取其他动作。 然而设备不必执行每一个请求,它只需要以一种可以理解的方式对请求做出响 应。例如,当主机请求使用一个设备不支持的配置时,设备用一个指示符来响应, 通知主机该请求不被支持。 ( 3 ) 错误检查 像主机一样,设备在要发送的数据后面加入错误校验码。在接收到数据时, 设备进行错误校验计算,如果检测到错误就请求重新传输。这些功能内置在硬件 中,不需要软件实现。 f 4 1 管理电源 如果设备不从总线获得电源供应,它就必须自己供电。当没有总线活动时, 设备必须进入它的低功耗挂起状态,但继续监视总线,当总线活动恢复时退出挂 起状态。 当主机进入低功耗状态时( 如w i n d o w s9 8 的待机状态) ,所有与总线的通信 都停止了。与之相对应,连接到总线的设备检测到总线活动停止了3 毫秒时,它 们也必须进入挂起状态并且限制从总线中获取电流。主机也可能请求挂起与一个 特定设备的通信。当总线活动恢复后,设备必须退出挂起状态。 不支持远程唤醒特征的设备在挂起状态下从总线取出的电流不会超过 5 0 0 m a 。有远程唤醒特征的设备并且该特征被主机使能后,这个极限是2 5 m a 。 2 2u s b 物理接口与电气特性 2 2 1u s b 物理接口 u s b 规定了两种连接器,分别称为a 系列和b 系列,见图2 2 所示。通常 计算机主机板上的连接器都是a 系列的,b 系列的连接器常见于设备端上。对 键盘、鼠标和扩充集线器等u s b 设备,其引出连线上的插头多使用a 系列连接 器与主机实现连接。 圈圆 a 系列b 系列u s b 图标 图2 - 2两种常见的u s b 连接器的前视图 u s b 连接器有4 个引脚,各引脚信号的定义和用途见表2 1 。 2 2 2u s b 电气特性 表2 - 1u s b 的引脚配置 引脚导信号名称 1+ 5 v 2 信号负数据 3信号正数据 4 地线 u s b 的电气特性主要是对信号的发送及电压分布情况的描述。u s b 通常使 用一种差分的输出驱动器来控制数据信号在u s b 电缆上的发送。一个u s b 设备 端的连接器是由d + 、d 及v b u s ,g n d 和其它数据线构成的简短连续电路,并 要求连接器上有电缆屏蔽,以免设备在使用过程中被损坏。 靠近设备的u s b 连接器上的d + 或 n 捕口 咧奎 q l ( r a i n ) 么 “ 吒7nis“11661 由于u s b 设备的输 保护世备司能互相排斥因此当观察数据 的辅l 入揣时可悱骨强南m 乐牛髋器产毕的信导 i # 琳畚夸聪 图2 - 3u s b 信号发送的最大输 波形 u s b 支持三种传输速率:1 5 m b s 的低速、1 2 m b s 的全速和4 8 0 m b s 的高速 传输。 低速u s b 设备在插口端必须要有一个带有串行a 口连接器的可控制电缆, 其速率为1 5 m b s 。当电缆与设备相连时,在d + d 线上通常要有一个2 0 0 4 5 0 p f 的单终端电容器,传输时延必须小于1 8 n s ,从而保证信号响应在其上升沿或下 降沿的第一个中点处产生。 全速u s b 设备的连接是通过阻抗为4 5q 1 5 ,最大单路时延为2 6 n s 的屏 蔽双绞线电缆进行的,其到达的最大速率为1 2 m b s ,并且每个驱动器的阻抗必 须在2 8 q 4 4 q 之问。 对于低速全速信号传输,驱动器的静态输出端的工作电压v o l 变动范围为 o 0 3 v ,且接有一个1 5 k q 的接地负载:差分输入接收器用来接收u s b 数据信 号,当两个差分数据输入处在共同的0 8 2 5 v 的差分模式范围时,如图2 - 4 所 示,接收器必须具有至少2 0 0 m v 的输入灵敏度。 1 o i m n i n tv o t n 卜 o l f f e r e n l l l l lo u l p u t 译剖 图- 4 差分输入感抗范围 高速u s b 设备的连接是通过阻抗为9 0q 1 5 ,最大单路时延为2 6 n s 的屏 蔽双绞线电缆进行的,其到达的最大速率为4 8 0 m b s ,其d + 军1 1d 一线上输出低 电位时的电压必须为0 v 1 0 m v ,输出高电位时的电压必须为4 0 0 m v 1 0 , 输入的电压范围为一5 0m v 5 0 0m v 。 2 2 3u s b 设备速度的识别 图2 - 5 和图2 - 6 图分别列出了低速、全速,高速u s b 设备在集线器的终端位置及其所连 的功能设备。两者电缆的下形端的电阻r p u 在囤中的连接位置是不同的,全速传输时,d + 线必须使用上拉电阻r p u ,而高速传输则不需使用上拉电阻r p u 。 匿膏 qi叠 低速u s b 设备 慢速旋转 r o 。瓢n t 5 缓冲器 主帅b o 它 r n z j k n 世哺_ m 0两睇曙- 一 图2 - 5 低速设各电缆和电阻连接 k i u 蛰 口lo s b 发送器k :i f 1o - l 二二二= : r 一 $ k n 5 主机h u bv i 口 h u b 上行端或高速设备 l u m l 5 k n 5 图2 - 6 全,高速设备电缆和电阻连接 2 3u s b 总线协议与数据流 2 3 1u s b 总线协议 u s b 总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输。 每一总线执行动作最多传送三个数据包。按照传输前制定好的原则,在每次 传送开始时,主机控制器发送一个描述传输运作的种类、方向、u s b 设备地址和 终端号的u s b 数据包,这个数据包通常称为标志包( t o k e np a c k e t ) 。u s b 设备从 解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设 备就是从设备到主机。在传输开始时,由标志包来标志数据的传输方向,然后发 送端开始发送包含信息的数据包或表明没有数据传送。接收端也要相应发送一个 握手的数据包表明是否传送成功。发送端和接收端之间的u s b 数据传输,在主机 和设备的端口之间,可视为一个通道。存在两种类型的通道:流和消息。流的数 据不像消息的数据,它没有u s b 所定义的结构,而且通道与数据带宽、传送服务 类型,端口特性( 如方向和缓冲区大小) 有关。多数通道在u s b 设备设置完成后 即存在。u s b 中有一个特殊的通道缺省控制通道,它属于消息通道,当设备 一启动即存在,从而为设备的设置、查询状况和输入控制信息提供一个入口。 事务预处理允许对一些数据流的通道进行控制,从而在硬件级上防止了对缓 冲区的高估或低估,通过发送不确认握手信号从而阻塞了数据的传输速度。当不 确认信号发过后,若总线有空闲,数据传输将再做一次。这种流控制机制允许灵 活的任务安排,可使不同性质的流通道同时正常工作,这样多种流通常可在不同 间隔进行工作,传送不同大小的数据包。 2 3 2u s b 数据流种类 u s b 的结构包含四种基本的数据传输类型: 控制数据传送:在设备连接时用来对设备进行设置,还可对指定设备进行 控制,如通道控制; 批量数据传送:大批量产生并使用的数据,在传输约束下,具有很广的动 态范围; 中断数据的传送:用来描述或匹配人的感觉或对特征反应的回馈。 同步数据的传送:由预先确定的传送延迟来填满预定的u s b 带宽。 控制数据传送 当u s b 设备初次安装时,u s b 系统软件使用控制数据对设备进行设黄,设备 驱动程序通过特定的方式使用控制数据来传送,数据传送是无损性的。 批量数据传送 批量数据是由大量的数据组成,如使用打印机和扫描仪时,批量数据是连续 的。在硬件级上可使用错误检测可以保证可靠的数据传输,并在硬件级上引入了 数据的多次传送。此外根据其它一些总线动作,被大量数据占用的带宽可以相应 的进行改变。 中断数据传输 1 0 中断数据是少量的,且其数据延迟时问也是有限范围的。这种数据可由设备 在任何时刻发送,并且以不慢于设备指定的速度在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 接口是一个基于令牌包( t o k e n - b a s e d ) 的总线协议,对于u s b 的通信, u s b 规范引入了一种管道的概念。在整个u s b 的通信中包含了一个大的管道 ( 1 2 m b p s ) ,这个大管道可以分为高达1 2 7 个小的管道,每个小管道连接到一个 u s b 的设备上。由于在u s b 令牌包中都含有7 个用来寻址的位( 位于地址数据 域,a d d r ) ,因此最多可寻址到1 2 8 个设备,但是由于0 0 0 0 0 0 0 0 b 地址是默认 地址,且用来指定给所有刚连上的设备。这也就是为什么u s b 最多能连接到1 2 7 个设备的原因,而每一个连接到设备的小管道又可再细分为许多的微管道。由于 在令牌包中包含了4 位的端点( e n d p o i n t ) 地址( 位于端点数据域,e n d p ) 以 及一个输入输出位,所以在一个单独的小管道内最多可再分割成1 6 组微管道, 也就是可对1 6 个输出输入点的端点( 共3 2 个端点) 寻址。 下面对端点和管道的概念进行一些解释。 1 设备端点( e n dp o i n t ) 端点是一个u s b 设备唯一可以确认的部分,它是主机和设备之间通信流的 终点。u s b 为主机上的客户软件与u s b 功能模块之间的通信提供了服务。端点 可以决定端点和客户软件之间通信所需要的传输服务类型。一个端点具有以下一 些属性: ( 1 ) 端点号 ( 2 ) 总线频率延时要求 ( 3 ) 带宽要求 ( 4 ) 差错控制要求 ( 5 ) 端点可以接收或传递的最大分组 ( 6 ) 端点的传送类型 ( 7 ) 端点和主机之间的数据传送方向 ( 8 ) 端点0 是u s b 设备的缺省端点,所有u s b 设备都必须拥有端点0 ,该端 点用于对u s b 设备进行配置( 初始化) 。端点0 提供了对设备配置信息的访问权, 通过它还允许访问u s b 状态和控制操作。端点0 总是在设备接入和上电时就立 即进行配置。 ( 9 ) 除端点0 外,功能设备还具有其他的端点。低速功能设备有两个端点可 供选择。而对于全速率设备来说,它的附加的端点数仅受到协议的限制,最多可 有1 6 个输入端点和1 6 个输出端点。 在对端点进行配置之前,端点处于一种不确定的状态。所以一个端点只在对 其进行配置之后,主机才能访问它。包括端点0 在内的所有端点,都作为设备配 置过程中的普通对象来对其进行配置。 2 管道 一个u s b 管道是设备上的一个端点和主机上的软件的联合体。管道表示经 过一个存储器缓冲区和一个设备上的端点,可以在主机上的软件之间传送数据的 能力。 u s b 并不对管道中传递的数据内容进行翻译,即使是消息管道要求根据u s b 的规定对数据进行打包,u s b 也不会翻译这些数据的内容。 对一个u s b 设备进行配置之后,就会形成管道。由于一个u s b 设备上电后 总要对端点0 进行配置,所以端点0 总是拥有一个管道。该管道称为缺省管道。 系统软件利用该管道来识别设备和确定配置要求,并对设备进行配置。当设备配 置完毕后,该设备的专用软件也可以使用缺省管道。同时u s b 系统软件也保留 对缺省管道的“所有权”,并由它来协调其他客户软件对该管道的使用。 数据的编码与解码 在包传送时,u s b 使用一种n r z i ( n o n er e t u r nz e r oi n v e r t ,即无回零反向码) 编码方案。在该编码方案中,“1 ”表示电平不变,0 表示电平改变。图2 7 列 出了一个数据流及其它的n r z i 编码,在该图的第二个波形图中,一开始的高电 平表示数据线上的j 态,后面就是n r z i 编码。 蝴可! h ! ! ! ! ! ! ! 广l !啦旧菇订广 厂 r 广 广 n r z l0 1 面 r _ 厂 广 r 图2 - 7n r z i 数据编码 为了确集信号发送的准确性,当在u s b 上发送一个包时,传送设备就要进 行位插入操作。所谓位插入操作是指在数据被编码前,在数据流中每六个连续的 1 后插入一个0 ,从而强迫n r z i 码发生变化,如图2 8 所示。 精椐编码序葫i 原始数r 一 u? 卜一帅“_ 十一h “刊 竺厂jf = h 位插入数h s ,陆p 帕m + 扣i _ 一p v j 喊 1 i r a s h h p s i xo _ l + l ! ”司r r r 厂 r e “d e dd a l 8 k 一8 y n ep | 岫m l 一h 醐。出h n r z i 编码后的 图2 - 8 位插入 位插入操作从同步格式( 如图2 - 9 所示) 开始,贯穿于整个传送过程,在同步 格式端的数据1 作为真正数据流的第一位。位插入操作是由传送端强制执行 的,是没有例外的。如果严格遵守位插入规则,甚至在e o p 信号结束前也要插 入一位0 位。接收端必须能对n r z i 数据进行解码,识别插入位并去掉它们。 如果接收端发现包中任一处有七个连续的“l ”,则将会产生一个位插入错误,该 数据包将被忽略。 卜一同步格式叫 n r z i 数据编码 1 五i ;_ 、几几厂_ 、臣垂亘题i i 汉 空闲 图2 - 9 同步格式 关于位的插入有一个特例,那就是刚好在e o p 前的时间间隔,e o p 前的最 后一个数据位可能被集线器的转换偏移而拉长,这种情况如图2 - 1 0 所示。 从传送器来的数据 接收的特别位,没有错 接收端数据 o1 e 。p j | ( 二l le u 一 | ( 二l 臀e c一i 图2 1 0 对e o p 前的特别位的说明 2 4u s b 设备与枚举过程 2 4 1 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 设备通过一个或多个通道与主机通讯。所 有u s b 设备必须在零号端口上有一指定的通道,每个u s b 设备的u s b 控制通 道将与之相连。通过此控制通道,所有的u s b 设备都列入一个共同的准入机制, 以获得控制操作的信息。 1 4 在零号端口上,控制通道中的信息应完整的描述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 1 1 所示是 一种典型的集线器。从用户的观点出发,集线器极大简化了u s b 的互连复杂性, 而且以很低的价格和高易用性提供了设备的健壮性。 端口l 上行端口 端口7 端口l 端口 hub 端口2 端e 1 6 端口3端口4端口5 图2 - 1 l 典型的u s b 集线 u s b 接口 集线器串接在集中器上,可让不同性质的设备连接在u s b 上,连接点称作 端口。每个集线器将一个连接点转化成许多的连接点。并且该体系结构支持多个 集线器的连接。 每个集线器的上游端口向主机方向进行连接。每个集线器的下游端口允许连 接另外的集线器或功能部件,集线器可检测每个下游端口的设备的安装或拆卸, 并可对下游端口的设备分配能源,每个下游端口都具有独立的能力,不论高速或 低速设备均可连接。集线器可将低速和高速端口的信号分开。 一个集线器包括两部分:集线控制器( c o n t r o l l e r ) 和集线放大器( r e p e a t e r ) 。 集线放大器是一种在上游端口和下游端口之间的协议控制开关。而且硬件上支持 复位、挂起、唤醒的信号。集线控制器提供了接口寄存器用于与主机之间的通信、 集线器允许主机对其特定状态和控制命令进行设置,并监视和控制其端口。 功能部件是一种通过总线进行发送接收数据和控制信息的u s b 设备,通过一根 电缆连接在集线器的某个端口上,功能设备一般是一种相互无关的外设。然而一 个物理单元中可以有多个功能部件和一个内置集线器,并利用一根u s b 电缆, 这通常被称为复合设备,即一个集线器连向主机,并有一个或多个不可拆卸的 u s b 设备连在其上。每个功能设备都包含设置信息,来描述该设备的性能和所 需资源。主机要在功能部件使用前对其进行设置。设置信息包括u s b 带宽分配, 选择设备的设置信息等。常见的功能设备包括:定位设备:如鼠标或光笔:输 入设备:如键盘:电信适配器:如i s d n 等 u s b 设备状态: u s b 设备有若干可能的状态,其中一些对于u s b 与主机( h o s t ) 来说是外置的, 而另外一些对u s b 设备来说是内置的,这里我们主要描述这些外置状态。外部 可见的u s b 设备状态如图2 1 2 连接状态: u s b 设备可被连接到u s b 接口上或从接口断开,u s b 设备处在断开时的设 备状态不包括在本篇说明之中。本说明中仅讨论那些处在连接状态的设备特性与 操作。 加电状态( p o w e r e d ) u s b 设备的电源可来自外部电源,也可从u s b 接口的集线器而来。电源来 自外部电源的u s b 设备被称作自给电源式的( s e l f - p o w e r e d ) 。尽管自给电源式的 u s b 设备可能在连接上u s b 接口以前可能已经带电,但它们直到连线上u s b 接v i 后才能被看作是加电状态( p o w e r e ds t a t e ) 。而这时候v b u s 已经对设备产生 作用了。 一个设备可能有既支持自给电源的,同时也支持总线电源式的配置。有一些 支持其中的一种,而另一些设备配置可能只有在自给电源下才能被使用。设备对 电源支持的能力是通过配置描述表( c o n f i g u r a t i o nd e s c r i p t o r ) 来反映的。当前的电 源供给形式被作为设备状态的一部分被反映出来。设备可在任何时候改变它们的 1 6 供电来源,比如说:从自给式向总线式改变,如果一个配置同时支持两种模式, 那此状态的最大电源需求就是指设备在两种模式下从v b u s 上获取电能的 最大值。设备必须以此最大电源作为参照,而究竟处于何状态是不考虑的。如果 有一配置仅支持一种电源模式,那么电源模式的改变会使得设备失去当前配置与 地址,返回加电状态。如果一个设备是自给电源式,并且当前配置需要大于 1 0 0 m a 电流,那么如果此设备转到了总线电源式,它必须返回地址状态( a d d r e s s s t a t e ) 。自给电源式集线器使用v b u s 来为集线控制器( h u bc o n t r o l l e r ) 提供电源, 因而可以仍然保持配置状态( c o n f i g u r e ds t a t e ) ,尽管自给电源停止提供电源
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论