(计算机应用技术专业论文)基于linux的网络存储盘研究与实现.pdf_第1页
(计算机应用技术专业论文)基于linux的网络存储盘研究与实现.pdf_第2页
(计算机应用技术专业论文)基于linux的网络存储盘研究与实现.pdf_第3页
(计算机应用技术专业论文)基于linux的网络存储盘研究与实现.pdf_第4页
(计算机应用技术专业论文)基于linux的网络存储盘研究与实现.pdf_第5页
已阅读5页,还剩83页未读 继续免费阅读

(计算机应用技术专业论文)基于linux的网络存储盘研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着信息技术的发展和后p c 时代的到来,嵌入式产品成为当今计算机产业的 重要需求之一,同时巨大的嵌入式应用也对嵌入式设备提出了更高的要求。在掌 上终端领域,为了支持视频播放等应用,要求掌上终端能够和主机进行数据通讯, 能够从主机下载视频文件。正是在这一背景下,提出在掌上终端上实现u s b 海量 存储功能,这样就很容易通过u s b 与p c 进行数据通讯。 本文首先详细分析了u s b 海量存储设备类规范( u n i v e r s a ls e r i a lb u sm a s s s t o r a g ec l a s ss p e c i f i c a t i o n ) 及其相关协议,在移植u c l i n u x 到基于$ 3 c 4 5 1 0 b 处理 器的评估板,和编写相关驱动后,实现了u s b 存储盘,最后在u s b 存储盘上实现 网络存储功能,即通过远程网络可以对u s b 存储盘进行读写。 本文所研究实现的u s b 存储盘遵守u s b i 1 规范和u s bm a s ss t o r a g e 协议的 要求,通过u s b 与任何兼容此规范的主机相连后,该主机便可以把该u s b 存储盘 当作本地磁盘来存取。本课题所实现的网络存储功能,意味着用户能够通过网络 对u s b 存储盘进行读写,用户无需携带存储盘就能在远程对文件进行存取操作。 关键词:通用串行总线,海量存储设备类规范,b u l k 一0 n l y ,u c l i n u x a b s t r a c t a b s t r a c t w i t ht h ef a s td e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g ya n dt h ec o m i n go fp o s t p c e r a , t h ee m b e d d e dp r o d u c tb e c o m e so n eo ft h em o s ti m p o r t a n tp r o d u c t so fc o m p u t e r i n d u s t r y m e a n w h i l e ,p l e n t yo ft h ee m b e d d e da p p l i c a t i o n sc a l lf o rb e t t e rp e r f o r m a n c e a n df u n c t i o n a l i t y i nh a n d s e tf i e l d t os u p p o r ta p p l i c a t i o ns u c ha sv i d e op l a y b a c k , h a n d s e ti sr e q u i r e dt ob ea b l et oe x c h a n g ed a t aw i mp c ,a n dd o w n l o a dv i d e of i l ef r o m p c u n d e rt h i sb a c k g r o u n d ,i ti sp u tf o r w a r di n t h i sd i s s e r t i o nt h a th a n d s e ts h o u l d i m p l e m e n tt h ef i m c t i o no fu s bm a s ss t o r a g e , s ot h a ti tc a l le a s i l ye x c h a n g ed a t aw i m p ct h r o u g hu s bl i n e 。 n i sd i s s e r t i o nf i r s td o e sad e t a i l e dr e s e a r c hj nt h eu n i v e r s a ls e r i a lb u sm a s s s t o r a g ec l a s ss p e c i f i c a t i o na n di t sr e l e v a n tp r o t o c o l s ,a f t e rp o r t i n gu c l i n u x 2 6t o e v a l u a t i o nb o a r dt h a tb a s eo np r o c e s s o r $ 3 c 4 510 b ,a n dd e s i g n i n gr e l e v a n t & r i v e r sf o r t h es y s t e m ,t h eu s bs t o r a g ed i s ki sm a d e f i n a l l yt h i sd i s s e r t i o ni m p l e m e n t sn e t w o r k s t o r a g ef u n c t i o no nu s bs t o r a g ed i s k ,w h i c hm e a n so n ec a nr e a da n dw r i t eu s bs t o r a g e d i s kt h r o u g hr e m o t en e t w o r k t h eu s bs t o r a g ed i s kr e a l i z e db yt h i sd i s s e r t i o ni sc o m p a t i b l ew i t hu s b i 1 p r o t o c o la n du s bm a s ss t o r a g ep r o t o c o l ,a f t e rc o n n e c tp ct h a ti sc o m p a t i b l ew i t ht h e s e p r o t o c o l sw i t hu s bl i n e ,t h ep cc a nr e a da n dw r i t eu s bs t o r a g ed i s ka si t sl o c a ld i s k t h en e t w o r ks t o r a g ef u n c t i o nr e a l i z e db yt h i sd i s s e r t i o n ,m e a n st h a tn s e rw i l lb ea b l et o r e a da n dw r i t eu s b s t o r a g ed i s kt h r o u g hn e t w o r kw i t h o u th a v i n gt oe a l t yi t k e yw o r d s :u s b ,m a s ss t o r a g ec l a s ss p e c i f i c a t i o n ,b u l k - o n l y , u c i m l x i l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:! 蟹兰导师签名: 日期:伽0 1 年计月叫e l 第一章引言 1 1 课题研究背景 第一章引言 随着计算机技术、通信技术和多媒体技术的发展以及计算机应用的普及,外 设种类和数量的增多,而计算机的端口资源( i o 、i r q 和d m a 等) 与接口、主 板插槽数量有限,接口数据传输性能也不能满足外设所提出的更高要求。而对用 户来讲,在计算机系统上增加新的外设, 机箱,安装板卡;为外设分配系统资源; 通常需要完成一系列繁琐的工作:打开 安装设备驱动程序,也不方便用户使用。 总之,传统计算机接口己不能满足计算机的进一步发展和应用。u s b ( u n i v e r s a l s e r i a lb u s ,通用串行总线) 正是为克服这些困难而提出的一种新型接口技术,它 是一种快速、双向、同步、廉价,并支持热插拔功能、即插即用( p l u ga n dp l a y ) 的 串行接口。u s b 技术的出现为外设的连接提供了一个很好的解决方案。通用计算 机系统中由于操作系统( w i n d o w s ,l i n u x ) q b 全面支持u s b 接口的各类协议,这使得 越来越多的设备使用u s b 接口作为与计算机通讯和传输数据的工具【l 】。 1 2 国内外研究概况 最早的u s b 规范由通用串行总线应用论坛( u s b - - i f ) 进行了标准化,并于 1 9 9 5 年1 1 月制定完成,到现在已经发展到2 0 版【2 】。目前使用的是1 9 9 8 年发布 的u s b i 1 和2 0 0 0 年发布的u s b 2 0 ,其中u s b l 1 的传输速度最高为1 2 m b p s , u s b 2 0 的速度则达到了4 8 0 m b p s ,但由于u s b 2 0 结构复杂、成本较高,在某些 场合下u s b l 1 的速度已足够使用,因此短期内还不能完全取代u s b l 1 。 目前国内外实现u s b 存储盘主要有两种实现方案,其一是采用无操作系统的 方案1 3 1 1 4 1 n 。 电子科技大学硕士学位论文 主循环:发出u s b 数据传输请求并处理总线事件等 j j ll 中断服务子程序 标准设备请求请求厂商请求处理 ,j l【 u s b 设备命令接口 竺堡堡坚星 图1 - 1 无操作系统方案的简单模型 如图1 1 所示,箭头表示数据的传输方向,其中硬件提取层负责对硬件接口进 行操作,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 l 1 规范和m a s ss t o r a g e 协议的要求,能够正常存取数据,进 行数据的传输,另外,u s b 存储盘的实现基于u c l i n u x 操作系统,设备驱动是以模 块的形式挂载在内核中的,所以具有良好的可移植性,它的实现方式以及核心的 代码对类似应用具有很好的可重用性。通过u s b 与任何兼容此规范的p c 系统相 连后,p c 系统便可以把u s b 存储盘当作本机存储设备来存取,由于u s b 总线的 众多优点和海量存储设备类规范的通用性,该u s b 存储盘与p c 的文件交换变得 十分方便。 本论文基于u c l i n u x 操作系统,并在完成u s b 存储盘的基础上实现网络存储 第一章引言 功能,即通过远程网络即可对u s b 存储盘进行读写操作,网络存储系统的实现, 使数据的存储方式就变得更加灵活和方便,使用者无需携带u 盘就能在远程对文 件进行存取操作。 目前,国内基于u s b 海量存储设备类规范的已经广泛使用,探讨如何利用网 络技术和u s b 接口进行高效数据传输是一项具有现实意义的课题。基于u c l i n u x 系统的u s b 海量存储设备设计和网络存储方面的研究成果能为今后相关方向的研 究工作提供启发和帮助,有利于提高自主开发能力,提高信息产业在世界上的核 心竞争力和效益。 1 4 课题研究目的和内容 本课题的主要目的是:研究u s b 海量存储设备类规范( u s bm a s ss t o r a g ec l a s s s p e c i f i c a t i o n s ) 及其在嵌入式l i n u x 中的实现方法,为掌上终端提供一种高效、廉 价且易于使用的文件传输系统,在此基础上完成实际设计。 嵌入式l i n u x 中除了包含对u s b 主机控制器的驱动,还含有u s b 设备控制器。 u s b 设备控制器驱动程序可使基于l i n u x 的嵌入式系统与主机( w i n d o w s 或其它 操作系统) 通过u s b 进行通信。u s b 总线协议从最开始就定义了设备类,设备类 的定义和功能的接口相关,这个接口用来访问和控制专门的一类设备,而设备的 功能需要通过u s b 设备驱动程序【7 】来实现。海量存储设备类一用于存储大量信息 的设备( 硬盘驱动器、磁带驱动器等) ,因此实现u s b 海量存储设备功能需要编 写相应u s b 设备驱动程序。 实现海量存储设备在硬件上需要u s b 设备控制器的支持,本课题采用三星公 司生产的基于a r i v l 7 核的处理器$ 3 c 4 5 1 0 b ,由于该处理器不带有u s b 设备控制 器,因而需要添加u s b 设备控制器芯片来完成u s b 设备和主机的通讯。 本课题的研究内容主要是:在研究海量存储协议和s c s it r a n s p a r e n t 命令集的 基础上,实现基于u c l i n u x 系统中u s b 存储设备,并在此基础上实现网络存储功 能。 1 5 文章的组织 本文在第一章首先介绍了u s b 技术,然后结合国内外研究现状引出基于操作 电子科技大学硕士学位论文 系统和网络的u s b 存储盘解决方案。 后面章节主要分为协议介绍和系统设计两部分。 第二章主要介绍了u s b 总线特点,系统组成以及总线协议并对u s b 设备的枚 举作了简要描述。 第三章详细介绍了u s b 海量存储设备协议,重点对b u l k o n l y 传输协议进行 了详细分析。 第四章描述了s c s it r a n s p a r e n t 命令集,在介绍完设备模型后重点对命令集中 的几个主要命令进行描述。 第五章对本论文所采用的硬件平台和软件平台进行简要的介绍。 第六章重点阐述了系统的设计和实现,包括移植系统和编写相应的驱动等。 第七章介绍了系统的编译及测试方法,并给出相应的测试结果。 第八章总结全文,对下一步工作进行了展望。 第二章u s b 总线概述 2 1u s b 总线概述 第二章u s b 总线概述 计算机内部总线,如c p u 与存储器之间均采用并行接口,但外设却以串行接 口比较占优势,u s b ( u n i v e r s a ls e r i a lb u s ,通用串行总线) 是外围设备( 简称外设) 与计算机进行连接的新型接口,其最早是由c o m p a q ,d i g i t a le q u i p m e n t ,i n t e l , n e c ,m i c r o s o f t ,i b m 和n o r t h e r n t e l e c o m7 家公司于1 9 9 4 年1 1 月共同提出的, 目的是简化外设的连接过程,使p c 机接口的扩展变得更加容易。总的说来,u s b 具有即插即用、热插拔、接口体积小巧、节省系统资源、传输可靠、提供电源、 良好的兼容性、共享通信和低成本等优点,是计算机外设连接技术的重大变革。 1 9 9 8 年月推出的u s b l 1 规范c o s b l 0 和u s b1 1 统称u s b l x 1 ,对u s b1 0 存在的问题做了修订,并且增加了一个新的传输类型( 中断传输) 。但是由于在 w i n 9 8 以前的操作系统均不支持u s b ,使得它的推广受到影响,支持u s b 的外设 也非常少。自从w i n 9 8 操作系统于1 9 9 8 年7 月推出以后,这一技术才真正进入实 用阶段,支持u s b 的外设也日益增多,像u s b 键盘、u s b 鼠标、u s b 相机、u s b c d r o m 等等。由于u s b1 x 的最高数据传输率为1 2 m b p s ,阻碍了它的进一步发 展,为了提高u s b 数据传输速度,增强计算机和影音视频设备传送信息的实时性, u s b i p 于2 0 0 0 年4 月发表了u s b 2 0 ,在原来u s b i 1 的基础上增加了高速模式, 并向后兼容u s b l 1 ( u s l 3 1 1 的传输速率最高为1 2 m b s 。u s b 2 0 的传输速率最高 4 8 0 m b s ) ,与其它老式p c 机接口相比,u s b 具有如下优点【8 】【9 】: 热插拔 用户可以把u s b 外设连接到一台正在运行的p c 机上,操作系统能自动识别, 并且用户可以立刻使用,而不需要重新启动p c 机。用户可以在任何时候断开 u s b 外设,而不管计算机是否正在运行,这都不会损坏p c 机和外设。 即插即用 u s b 实现了自动配置,它不需要用户手工配置i o 地址和中断请求。当u s b 外设接入p c 机时,操作系统会自动检测到这个连接,并加载合适的驱动程序。 对用户来说,只需要几秒钟,u s b 外设的安装就完成了。如果是外设的第一 电子科技大学硕士学位论文 次连接,操作系统可能会需要用户为期选择合适的设备驱动程序,除此之外, 所有的安装都是自动的。 共享式接口 u s b 端口支持多个外设的连接,通过u s b 集线器,一个u s b 主控制器上最多 可以连接1 2 6 个外设。 接口体积小巧 和其它老式p c 接口设备相比,u s b 接口小且薄,更适合于外设体积小型化。 节省系统资源 在u s b 系统中,只有u s b 主控制器需要使用一根i r q 线和一些i o 地址空间。 对u s b 外设来说,它需要的仅仅是u s b 系统为其分配一个唯一的地址,而这 个地址只有u s b 予系统知道。 灵活 u s b 支持三种类型的传输速率:1 5 m b s 的低速传输、1 2 m b s 的全速传输、 4 8 0 m b s 的高速传输( u s b 2 0 ) ,4 种传输类型:块传输、同步传输、中断传输和 控制传输,这使其能适应多种外设的需要。 低成本 u s b 能实现强大的功能,它比以前的接口更加复杂。但是,它的组件和电缆 并不贵,带有u s b 接口的外设和具有同样功能的老接口相比,所需费用差不 多,有时会更少一些。 性能可靠 u s b 系统通过硬件设计和数据传输协议两方面来保证其传输的可靠性。u s b 发送器、接收器和电缆的硬件规范消除了大多数可能引起数据错误的噪声。在 u s b 协议中包含了数据错误的检测机制,用来确保数据准确无误地发送和接 收。 提供电源 u s b 电缆向外提供一根+ 5 v 的电源线,电流的大小取决于集线器端口,最小 为1 0 0 m a ,最大不超过5 0 0 m a ,用户可以直接使用这个总线电源。另外,u s b 支持低功耗模式,如果其连续3 m s 没有总线活动的话,u s b 就会自动进入挂 起状态,以节省电能消耗。 兼容性 u s b 规范有良好的向下兼容性,如u s b 2 0 的主控制器就能很好地兼容u s b l 1 的产品,操作系统在检测到全速u s b 设备接入时,会自动按照1 2 m b s 的速率 第二章u s b 总线概述 进行传输,而其它高速u s b 设备,并不会因为全速设备的连接而减慢它们的 传输速率,它们仍可继续使用4 8 0 m b s 的速率进行传输。 2 2u s b 系统组成分析 u s b 提供了在一台主机和若干台附属的u s b 设备之阀的通信功能,从终端用 户的角度看到的u s b 系统,可简单地用图2 - i 表示,由于本设计实现u s b 海量存 储设备类,因此着重分析u s b 设备端组成及功能。 图2 - 1u s b 主机设备的简单模型 2 2 。1u s b 主机端组成及功能分析 在任何u s b 系统中,只有一个主机。u s b 接口的h o s t 端也被称为主机控制器, 主机控制器由硬件和软件组成。硬件部分由主机控制器( h o s tc o n t r o l l e r ) ,根集线器 ( r o o th u b ) 和数据缓冲区d a t a b u f f e r 组成。根集线器是由主机系统整合的,用以提 供更多的连接点。软件部分主要由“主机控制器驱动( h o s tc o n t r o l l e r d r i v e r h c d ) ” 构成。h c d 通过硬件软件接口与主机控制器相互作用。 2 ,2 2u 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 设备可在任何时候接入,同时可把描述自己的完整 信息( 主要包括标准信息和厂商信息等) 告诉主机h o s t 端。 功能部件类可分多个种类。现在己经形成类规范的主要有5 种t 1 0 j 。 音频设备类:实时音频信息接收器的源或目的设备。比如:话筒、音箱等。 通信设备类:和电话线相连的设备。比如:电信适配器,i s d n 等。 显示设备类:比如,显示器等。 人机接口设备类:被最终用户操纵的设备。比如,鼠标、键盘、光笔、游 戏控制杆等。 海量存储设备类;用于大量信息记录的设备。比如,软盘、硬盘、磁带、 光盘等。 2 3 总线协议 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 第二章u s b 总线概述 中有一个特殊的通道一缺省控制通道,它属于消息通道,当设备一启动即存在, 从而为设备的设置、查询状况和输入控制信息提供一个入口。事务预处理允许对 一些数据流的通道进行控制,从而在硬件级上防止了对缓冲区的高估或低估,通 过发送不确认握手信号从而阻塞了数据的传输速度。当不确认信号发过后,若总 线有空闲,数据将再传输一次。这种流控制机制允许灵活的任务安排,可使不同 性质的流通道同时正常工作。这样多种流通常可在不同间隔进行工作,传送不同 大小的数据包。 2 3 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 必须对交互数据提供一个反应时间的最 低界限。 9 电子科技大学硕士学位论文 同步数据的传送 由预先确定的传送延迟来填满预定的u s b 带宽。同步数据的建立、传送和使 用是连续且实时的,同步数据是以稳定的速率发送和接收实时的信息,同步数 据要使接收者与发送者保持相同的时间安排,除了传输速率,同步数据对传送 延迟也非常敏感。所以同步通道的带宽的确定,必须满足对相关功能部件的取 样特性。不可避免的信号延迟与每个端口的可用缓冲区数有关。一个典型的同 步数据的例子是语音,如果数据流的传送率不能保持,数据流是否丢失将取决 于缓冲区的大小和损坏的程度。即使数据在u s b 硬件上以合适的速率传送, 软件造成的传送延迟将对那些实时系统的应用( 如电话会议等) 造成损害。实 时传送同步数据肯定会发生潜在瞬时的数据流丢失现象,换句话说,即使许多 硬件机制,如重传的引入也不能避免错误的产生。由于u s b 的带宽给u s b 同 步数据流分配了专有的一部分以满足所想得到的传速率,而且u s b 还为同步 数据的传送设计了最少延迟时间,所以在实际应用中,u s b 的数据出错率小 到几乎可以忽略不计。在以上提到的四种传输数据类型中,对于任何特定的设 备进行设置时一种通道只能支持上述一种方式的数据传输。 2 4u s b 设备的枚举过程 要主机识别一个u s b 设备和管理必要的设备状态变化必须经过枚举的过程。 总线的枚举过程如下: 设备连接 u s b 设备接入u s b 总线。 设备上电 u s b 设备可以使用u s b 总线供电,主机使用总线枚举来识别设备是否也可以 使用外部电源供电。 主机检测到设备,发出复位信号 设备连接到总线后,主机通过检测设备在总线上的上拉电阻检测到有新设备连 接,并确定该设备是全速设备还是低速设备,然后向该端口发送一个复位信号。 设备默认状态 设备要从总线上接收到一个复位信号后,才可以对总线的处理操作做出响应。 设备接收到复位信号后,就使用默认地址( 0 0 h ) 对其进行寻址。 第二章u s b 总线概述 地址分配 当主机接收到有设备对默认地址( 0 0 h ) 相对应的时候,就对设备分配一个空闲 的地址,以后设备就只对该地址进行响应。 读取u s b 设备描述符 主机读取u s b 设备描述符,确认u s b 设备的属性。 设备配置 主机依照读取的u s b 设备描述符来进行配置,如果设备所需的u s b 资源得以 满足,就发送配置命令给u s b 设备,表示配置完毕。 挂起 为了节省电源,当总线保持空闲状态超过3 m s 以后,设备驱动程序就会进入挂 起状态。当被挂起时,u s b 设备保留了包括其地址和配置信息在内的所有内 部状态。 完成以上8 个步骤后,u s b 设备即可使用。在枚举的过程中,设备不一定要 求进入挂起状态。 2 5 本章小结 本章对u s b 总线技术作了简要的橛述,接着对u s b 系统组成进行了简单的分 析,然后介绍了总线协议,最后描述了u s b 设备的枚举过程。 电子科技大学硕士学位论文 3 1 设备类的定义 第三章u s b 海量存储设备协议 设备类是指一类有相似的属性和提供相似服务的设备。一个给定的类定义可 以描述在这个设备类中的特定的设备类型的专门的特征,从而为u s b 设备驱动程 序提供了它操纵这个设备所需要的信息,以便系统软件为它们建立一个统一的设 备驱动程序。设备类的定义和一个功能的接口相关,这个接口用来访问和控制专 门的一类设备。设备类特定的u s b 组件是功能接口和u s b 设备驱动程序。和设备 相关的描述符指出了几项与设备类定义相关的项,其中包括:设备类的代码字段, 子类代码字段和协议字段【”】。设备类的代码可以由主机软件用来定位合适的设备 驱动程序,这些设备驱动程序用来存取一个设备的功能接口。所有其他标准描述 符的信息都和u s b 的特定信息相关,主机软件可以在不知道设备类的定义的情况 下解释这些信息。 3 2u s b 海量存储设备类规范 本节探讨了u s b 海量存储设备类规范1 1 ( u s bm a s ss t o r a g ec l a s s s p e c i f i c a t i o n s1 1 ) 的整体结构和其相关协议之间的相互关系。u s b 海量存储设 备类规范使用的协议分为两类:传输协议和命令协议。 3 2 1 传输协议 传输协议定义了系统传输数据或命令时所使用的方法,总共有两个传输协议: u s bm a s ss t o r a g ec l a s sb u l k - o n l yt r a n s p o r t t l + j 与u s bm a s ss t o r a g e c l a s s c o n t r o l b u l k i n t e r r u p t ( c b i ) t r a n s p o r t ) ) 1 4 】。前者规定只使用“批量( b u l k ) 传输”进行数据交换,而后者同时使用“控制批量中断( c o n t r o l b u l k i n t e r r u p t ) 传输”。在实际系统中可以根据系统软硬件环境选择其中一种传输协议。 在本课题设计的系统中使用( b u l k - o n l yt r a n s p o r t ) 协议。 第三章u s b 海量存储设备协议 3 2 2 命令协议 命令协议定义了数据与命令的具体格式,有多种命令协议供不同的设备使用: u f ic o m m a n ds p e c i f i c a t i o n 州,r e x l u c c db l o c kc o m m a n d s ( r b c d 1 6 j , m u l t i m e d i ac o m m a n ds e t2 ( m m c 2 ) ,s c s ip r i m a r yc o m m a n d s 一2 ( s p c 2 ) ,c s c s it r a n s p a r e n tc o m m a n ds e t ) ) 等。本系统使用s c s it r a n s p a r e n t c o m m a n ds e t 协议,它适合一般的海量存储设备,具有通用性。个设备类的代 码和子类代码是在接口描述符内定义的。海量存储设备的类代码是0 6 h ,其接口 描述符中还包含子类代码和协议代码。 3 2 3 子类代码 子类代码字段( b i n t e r f a c e s u b c l a s sf i e l d ) ,这个字段代表了设备接口所使用的 传输协议,它的取值规则如下表所示。 表3 1 子类代码与命令协议的映射表 鳓瓣l 涵i e 獭陵轻裔螽i 釜瓣移目i 蕊s | 瓣l 螨罐垃;毒j 掣赢一 蔷一、谴一“。 j 毫。甍+ | :鼍j 誊j ? 二5 。j o l hr c d u c o db k g kc o m m 出t r b c ) f 1 0 r y p k a l l y af l a s h 妇i c em o sr b t c o m l b m a db l o c k s p 蛹“1 2 4 0 - d l l v c r m a y m a s ss t o r a 萨d o r i c e 。nu r b c o 堪 u m a n db l o c k s 0 2 h s f f - s 0 2 0 lm m c - 2 ( a t a p i )t + v p m a l l y a c d v d 出v ;c e u j s p f - 8 0 2 0 i o r a a l c - 2c c m r a a n db i l k sf o ri t s m a s s $ 1 0 r a 8 c i a k m c t 0 3 h q i ( 2 * 1 5 7t y p i c a l l y , l h 辨州i q z c l j 7 0 0 n m m n d b l o o b 0 4 h c n t w p i e a l l ya f l o p p y d i s kd r i v e f l r d d l 缸; 0 5 hs f f 8 0 7 0 i 研p i c a l l y a f l o p p y d i s k d “e 俨d d ) d e v i c e 懒雌 8 f f - 8 0 7 0 io o m a n n db l o 磕s h o w e e r , i t nf d d d e v k m c b c m a m ) l h e r s u b e l ( f o rc x a m p k r b c a n do t h c r t ) _ p e * n m 萨d o x i e e t c a nb e l o n gt ot h o s f f - 8 0 7 0 ts m b d a s s , 0 6 hi s c s ll r m t s l m r e n lc o m m a n ds d 0 7 h i 僵hr c 辩u - + c df o r 矗i t u r eh g a 子类代码命令协议注释: 0 1 hr e d u c e db 1 0 c kc o m m a n d s 0 2 hs f f 一8 0 2 0 i m m c - 2 ( a 酗p i ) 0 3 hq i c 1 5 7 磁带 0 4 hu f i 软盘驱动器 0 5 hs f f 8 0 7 0 i 软盘驱动器 电子科技大学硕士学位论文 0 6 h s c s it r a n s p a r e n tc o m m a n ds e t 0 7 1 1 一f l h 保留使用 在表3 1 中,子类代码定义了控制命令系统所使用的协议标准。本课题设计 采用子类代码为0 6 h ,即s c s it r a n s p a r e n tc o m m a n ds e t 。 3 2 4 协议代码 接口协议代码字段( b i n t e r f a c e p r o t o c o lf i e l d ) ,它规定了接口数据传输所使用 的协议。 表3 - 2 协议代码与传输协议的映射表 a 国6 :确懒骥p r o , c m i m 诹赫赫誓,誓。一麓“:铷n m t “o :。,? 。p i 4 o o h c o n t n 3 l b u i k i r t l e r m p lp r o t o c o l u s b k m l ”笋c l a s s ( w a h m m dc r m a p l e t l e an c 把u 埘觚e p t c b b t r a m l ,o r t o l h c c m t r o l b u l k i n t o n m p tp r d o e o l u s bm a s ss t o r a g ec i n t w l t hn oe d n 雌n d c 雠。d e 6 憾i a t e r r a i x ) c o u l r o l b u l k i n t e r r u 讲( c b i ) t r a m p o r l ,0 h b u l k - o n l yt r a n s p o r t u s bm a a * y a o r a 萨c i a “b t d k - o a l y t r a n t p o a i y 2 h 一盯hr a c m d 5 l h f f hr 删e r * e d 一共有两种传输协议可以使用:c o n t r o l b u l k i n t e r r u p t ( c b i ) t r a n s p o r t 和 b u l k o n l yt r a n s p o r t 。前者同时使用控制、批量和中断端点来传输数据、命令和状 态【m ,而后者只使用批量端点。我们在下一章中将详细讨论它的实现细节。 3 3b u l k - o n l y 传输协议 b u l k o n l y 传输协议( b u l k - o n l yt r a n s p o r ts p e c i f i c a t i o n ) 描述了只使用b u l k 端点( 不通过中断和控制端点,而c b i 协议则同时使用三种端点) 来传输数据、 命令和状态的交互方式。此协议只使用缺省管道来清除b u l k 端点的s t a l l ( 停 止) 状态和执行本设备类相关的请求,并且定义了逻辑设备的特性( 一个物理设 备包含多个逻辑上独立的设备) 。 第三章u s b 海量存储设备协议 3 3 1 功能特性 3 3 1 1b u l k - o n l ym a s ss t o r a g er e s e t 主机从缺省管道发送这个请求给设备,该请求用于复位存储设备和与其相关 的接口。设备复位后为接受从主机发送过来的命令包做好准备。在复位没有完成 前设备拒绝主机的任何请求,该请求的特征如表3 3 所示: 表3 - 3 b u l k - o n l ym a s ss t o r a g er e s e t b 镕蠢叫| t b 蕊p er 函施辨fw i :m i ,ef w i | i 莲矗一 。w l x n t , , t h ” d a t a | 0 0 1 0 0 0 0 t b l l l l l | l l b0 0 0 0 hi n t m f a 0 0 0 0 h n e 相应字段说明: b m r e q u e s t t y p e :c l a s s ,i n t e r f a c e ,h o s tt od e v i c e ,0 0 1 0 0 0 0 1 b b r e q u e s tf i e l ds e tt o2 5 5 ( f f h ) w v a l u ef i e l ds e t t o0 w l n d e xf i e l ds e tt ot h ei n t e r f a c en u m b e r w l e n g t hf i e l ds e tt o0 d a t a :n o n e 3 。3 1 2g e tm a xl u n ( l o g i cu n i tn u m b e r ) 海量存储设备可能会包含多个逻辑设备。主机通过c b w ( c o m m a n d b l o c k w r a p p e r ,命令数据包) 中的b c b w l u n 字段来告诉设备当前的c b w 是发 给哪个逻辑设备的。g e tm a xl u n 请求用来确定设备有多少个逻辑设备,逻辑设 备数目的取值范围是:o 一1 5 。该请求的特征如表3 - 4 所示: 表3 4g e t m a x l u n l 妇l r e q s t c s l

温馨提示

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

评论

0/150

提交评论