




已阅读5页,还剩71页未读, 继续免费阅读
(信号与信息处理专业论文)嵌入式linux下usb20设备驱动设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 u s b 2 0 接豳和基于l i n u x 的驱动程序的应用融经非常广泛,特别在电子消 费类领域。基于l i n u xt 的u s b 2 。0 设备嬲更是市场的需求。本文介绍种基于 嵌入式l i n u x 的u s b 2 0 设备驱动的设计,主要对一种u s b 海量存储设各驱动的 设计及其测试驱动的设计进行讨论毒 该驱动是基于学校自主研发的a h bu s b 2 0i p 核而设计的。该口核支持u s b 2 。0 协议,并兼容u s b1 1 协议;支持a m b a2 。0 协议和u t m i1 0 5 协议。该撙 核一侧通过u t m i 接口或u l p i 接口的p h y 与u s b 2 0 主机端进行通信;另 侧则通过a h b 总线与a r m 相连。 u s b 2 。0 设备驱动豹设计分为三个大模块:系统初始纯和端点0 解析;块数据 传输和u f i 协议分析。系统初始化和端点0 解析模块主要解析u s b 协议,实现了 u s b 设备蘸总线列举;块数据抟输模块主要解耄蓐u s b 海量传输协议b u l k o n l y 协议,实现了数据的块传输;u f i 协议分析模块则通过解析u s b 媒质接口协议u f i 命令集,实现了内存虚拟f l a s h 的读写。 该驱动设计遵循u s b 协议、b u l ko n l y 协议和u f i 协议,由外挂a r m 实现 u s b 设备命令和u f i 命令的解析,并执行耀应的操作,实现常规数据读写访阀、 内部d m a 或外部d m a 等多种方式的切换。 该i p 及驱动验证测试可分为寄存器测试、通道测试和业务测试三层。寄存器 测试主要用于测试寄存器读写是否正确;遂道测试用于测试各个端点的各种传输 模式是否工作正常;业务测试则是通过完成一个完整的u 盘驱动并测试其是否能 够完整完成一个u 盘功麓。 本项目最终已经通过e d a 验证和f p g a 测试,并且已经在内嵌a r m 核的 f p g a 系统上实现了多个u 盘。这个f p g a 系统的正确工终,证明了整个项躁是 成功的,也证明了u s b 2 0 驱动以及测试程序是成功的。 关键词:嵌入式l i n u x ,通用串行总线,驱动,海量存储,u s b 媒质接口 a b s t r a ( t a b s t r a c t u s b 2 0i n t e r f a c ea n dd r i v e r sb a s e do nt h ee m b e d d e dl i n u xh a v eb e e nu s e d w i d e l y , e s p e c i a l l yi nt h ec o n s u m e re l e c t r o n i c sz o n e t h eu s b 2 0e q u i p m e n tb a s e do n t h ee m b e d d e dl i n u xi se s p e c i a l l yt h en e e do ft h em a r k e t 。t h i sp a p e ri n t r o d u c e sa u s b 2 0d e v i c ed r i v e rd e s i g nb a s e do nt h ee m b e d d e dl i n u x ,m a i n l yau s bm a s s s t o r a g ed e v i c ed r i v e rd e s i g ne x t r e m e l yt e s t d r i v e nd e s i g nf o rd i s c u s s i o n t h ed r i v ei sd e s i g n e df o rt h es c h o o l b a s e di n d e p e n d e n tr e s e a r c ha n d d e v e l o p m e n t a h b _ _ u s b 2 。0i pc o r e t h ei pc o r ec o m p l i e sw i t hu s b l 1s p e c i f i c a t i o n 。i ta l s os u p p o r t s a m b a2 0s p e c i f i c a t i o na n du t m l l 0 5s p e c i f i c a t i o n t h i s a h b u s b 2 0i pc o r e c o m m u n i c a t e sw i t hu s bb u st h r o u g hu t m io ru l p ii n t e r f a c e i tc o n n e c t sw i t ha r m b y a h b b u s 。 u s b 2 0d e v i c ed r i v e rd e s i g ni sd i v i d e di n t ot h r e em o d u l e s :s y s t e mi n i t i a l i z a t i o n a n d e n d p o i n t0a n a l y s e s ,b u l kd a t at r a n s f e r , u hp r o t o c o la n a l y s i s s y s t e mi n i t i a l i z a t i o n a n de n d p o i n t0a n a l y s i sm o d u l em a i n l ya n a l y s i su s b p r o t o c o l ,i m p l e m e n t a t i o no ft h e u s bd e v i c eb u sd t e d ;b u l kd a t at r a n s f e rm o d u l em a i n l ya n a l y s i su s bm a s ss t o r a g e t r a n s f e rp r o t o c o lb u l k o n l y p r o t o c o l ,i m p l e m e n t a t i o no fb u l kd a t at r a n s m i s s i o n ;u f i p r o t o c o la n a l y s i sm o d u l ea n a l y s i so fm e d i at h r o u g hu s bi n t e r f a c ep r o t o c o lu f i c o m m a n ds e t s ,a c h i e v e dv i r t u a lf l a s h m e m o r yr e a da n dw r i t e t h i sd r i v e r sd e s i g nf o l l o w st h eu s b 2 。0p r o t o c o l ,b u l ko n l yp r o t o c o la n dt h eu f i p r o t o c o l ,b yt h er e a l i z a t i o no fu s bd e v i c e sp l u ga r mo r d e r sa n du f io r d e ra n a l y s i s , a n di m p l e m e n t a t i o no ft h ec o r r e s p o n d i n go p e r a t i o n ,t oa c h i e v ec o n v e n t i o n a lr e a da n d w r i t ed a t aa c c e s s ,i n t e r n a lo re x t e r n a ld m ad m a , a n do t h e rm o d e s w i t c h i n g t h ed r i v et e s t i n gt a i lb ed i v i d e di n t ot h er e g i s t e rt e s t i n g , t h ec h a n n e lt e s t i n ga n d t h eo p e r a t i o n a lt e s t i n g r e g i s t e rt e s t i n gm a i n l yu s e dt ot e s tw h e t h e rt h ec o n - e c tr e g i s t e r r e a da n dw r i t e ;c h a n n e le n d p o i n tt e s tf o rt e s t i n gt h ev a r i o u sm o d e so ft r a n s m i s s i o na r e w o r k i n gp r o p e r l y ;o p e r a t i o n a lt e s t i n gi sc o m p l e t e dt h r o u g hac o m p l e t eu d i s kd r i v ea n d t e s tw h e t h e ri tc a l lc o m p l e t eaf u l lu d i s k t h ei pc o r eh a sp a s s e dt h ee d av e r i f i c a t i o na n ds o f t w a r es i m u l a t i o n i th a sa l s o 珏 a b s t r a ( 丌 i m p l e m e n t e dt h ef u n c t i o no fud i s ki naf t g as y s t e m t h i sf p g as y s t e mc a l lw o r k p r o p e r l yw h i c hp r o v e st h es u c c e s so ft h ed r i v e rd e s i g n k e y w o r d s :e m b e d d e dl i n u x ,u s b ,d r i v e r s ,m a s ss t o r a g e ,u s bf l o p p yi n t e r f a c e i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 ,、t ,r 签名: 垡整 e l 期:加4 譬年6 月刀日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 叠丝导师签名: 日期:夕蹦9 年月妇日 第一章引言 1 1 课题研究背景 第一章引言 u s b 2 0 ( 通用串行总线) 是由c o m p a q 、h p 、i n t e l 、l u c e n t 、m i c r o s o f t 、n e c 和 p h i l i p s 制定的一种计算机外设连接规范【1 】【2 】。理论上它可提供4 8 0 m b p s ( 6 0 m b p s ) 的高速数据传输,具有即插即用、热插拔、接口体积小巧、节省系统资源、传输 可靠、提供电源、良好的兼容性、共享式通信和低成本等优点。由于u s b 接口的 优点和流行,当今嵌入式设计要和p c 连接,首选u s b 接口。许多公司都开发了 u s b 设备控制芯片【3 】【4 l 错误未钢引用鼠。 l i n u x 以其开源、易于移植和可裁剪性,越来越多地被应用于嵌入式系统。近 年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3 c ( 计算 机、通信、消费电子) 合一的加速,微型化和专业化成为发展的新趋势,嵌入式产 品成为信息产业的主流。l i n u x 从1 9 9 1 年问世到现在,短短的十几年时间已经发 展成为功能强大、设计完善的操作系统之一。可运行在x 8 6 、a l p h a 、s p a r c 、m i p s 、 p p c 、m o t o r o l a 、n e c 、a r m 等多种硬件平台,而且开放源代码,可以定制;可 与各种传统的商业操作系统分庭抗争。越来越多的企业和研发机构都转向嵌入式 l i n u x 的开发和研究上,在新兴的嵌入式操作系统领域内也获得了飞速发展。 l i n u x 内核支持两种主要类型u s b 设备的驱动程序:主机端和设备端驱动程 序。主机端驱动程序控制与其连接的u s b 设备从而使用设备的功能;设备端u s b 驱动程序控制设备如何与主机通信从而使其对主机表现出特定的功能,此时的设 备应理解为运行l i n u x 的嵌入式系绀5 】【6 】。 本文将详细介绍嵌入式l i n u x 下u s b 2 0 设备驱动的具体设计与实现。 1 2u s b 2 0 以及嵌入式l if l u x 概述 u s b 2 0 ( 通用串行总线) 是由c o m p a q 、h p 、i n t e l 、l u c e n t 、m i c r o s o f t 、n e c 和 p h i l i p s 制定的一种计算机外设连接规范,在原来的u s b l 1 的1 5 m b i t s 和 1 2 m b i t s 基础上增加了4 8 0 m b i t s ( 6 0 m b s ) i 拘速数据传输模式,使u s b 的应用 电子科技大学硕士学位论文 范围得到进一步扩大。 u s b 接口是随着电脑的发展而产生的。随着电脑的广泛应用,外设的使用也 越来越多,但是个人电脑上原有的串口和并1 3 却限制了外设的使用,不仅性能无 法满足要求,而且数量上也很难扩展。这时u s b 接口应运而生,无疑从根本上 解决了这一问题。它不仅可以支持热插拔技术和高级即插即用功能,而且不使用 i r q 的中断控制以及输入输出的地址资源,最多可以级连1 2 7 个设备。而且u s b 接1 3 还有一个最大的优点就是速度快,在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 外设迅速流行起来,从优 盘到m p 3 播放器,从数码相机到打印机,u s b 接口几乎应用到了所有种类的外 设上面。由于u s b 接口的广泛应用,设计u s b 2 0 接口i p 核具有巨大的使用 价值和应用前景。 国外u s b 2 0 接口芯片产品开发的很早,甚至在u s b 2 0 协议公布的同年1 1 月份,c y p r e s s 和p h i l i p s 就推出了u s b 2 0 接口芯片。当前市面上卖的u s b 2 0 接 口芯片也都被国外芯片所统治,其中c y p r e s s 、i n t e l 、p h i l i p s 、n e t c h i p 、n e c 、t i 等几家公司的芯片比较成功。它们的芯片主要分2 种:带u s b 接口的单片机或纯 粹的u s b 接口芯片,后者需要用外部的m c u 、d s p 或其它的处理器来对接口芯 片进行控制。2 种接口芯片的核心部分都是u s b 2 0p h y + s i e 核,其它还包括时钟 模块、数据缓存、各类接口等,不同的接口芯片有各自的一些特色,不过总体结 构和功能都相差不大。在使用时需要处理器的固件以中断的方式来做一些控制, 比如向主机返回各类设备描述符等。u s b 接口上电配置好以后,处理器可通过u s b 接口芯片收发与u s b 协议无关的数据。 国内u s b 2 0 接口芯片现在也有一定的发展。早在2 0 0 2 年国内已有一些公司 开始研究u s b 2 0 的接口芯片,比如青岛硅盛微电子有限公司已取得了研发成功, 并于2 0 0 4 年5 月申请了专利,它还在2 0 0 5 年的高交会上吸引了资金,进入u s b 2 0 接口芯片的产品研发阶段。国家相关部门也高度重视u s b 2 0 接口芯片的研发,并 将其列为国家8 6 3 项目,课题组在2 0 0 2 年承接了u s b 2 0i p 核开发的国家8 6 3 项 目,在2 0 0 4 年3 月通过了国家的验收。当时的演示系统也是优盘的应用。课题组 的u s b 2 0 接口芯片的技术处于国家领先的水平。这个项目和原8 6 3 项目最大的不 同是两者开发的侧重点不同。原先的项目是偏重于研发的项目,目标是打破国外 的技术垄断,拥有自己的核心自主知识产权;当前这个项目是偏重于产品的项目, 目标是制作一个基于a r m 的u s b 2 0 的p 核。 u s bi f 推出了u s bo t g ( u s bo nt h eg o ) ,w i r e l e s su s b 。u s bo t g 由 2 第章引言 u s bi f 在2 0 0 1 年1 2 月1 8 日公布。o t g 并不是一个独立于u s b 2 0 的规范,他 是对u s b 2 0 的补充,所有在o t g 中未提到的事项都以u s b 2 0 的规范为准。2 0 0 5 年5 月底无线u s b 促进组织完成了无线u s b 标准1 0 修订版,他的目的就是在传 输速度提高的同时,u s b 与无线技术相结合,形成一种新的高速无线个人互连技 术。无线u s b 标准的制定完成,将会极大的推动无线u s b 技术在计算机工业、 消费电子、移动通信、工业自动化控制等众多领域的快速应用与发展。 嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁剪,适用于系统 对功能、可靠性、成本、功耗严格要求的专用计算机系统。实时性是嵌入式系统 的基本要求,其次,还要求代码小、速度快、可靠性高。嵌入式l i n u x ( e m b e d d e d l i n u x ) 是指对l i n u x 经过裁剪小型化后,可固化在存储器或单片机中,应用于特定嵌入式 场合的专用l i n u x 操作系统。嵌入式l i n u x 的开发和研究已经成为目前操作系统领 域的一个热点。与其它嵌入式操作系统相比l i n u x 的特点如下。 第一,l i n u x 系统是层次结构且内核完全开放。l i n u x 是由很多体积小且性能 高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用 户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足 自己需要的嵌入式系统。 第二,强大的网络支持功能。l i n u x 诞生于因特网时代并具有u n i x 的特性, 保证了它支持所有标准因特网协议,并且可以利用l i n u x 的网络协议栈将其开发成 为嵌入式的t c p i p 网络协议栈。此外,l i n u x 还支持e x t 2 、f a t l 6 、f a t 3 2 、r o m f s 等文件系统,为开发嵌入式系统应用打下了很好的基础。 第三,l i n u x 具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉 运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。l i n u x 也符合 i e e e p o s i x 1 标准,使应用程序具有较好的可移植性。 传统的嵌入式开发的程序调试和调试工具是用在线仿真器( i c e ) 实现的。它通 过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调 试程序;但一般价格比较昂贵,只适合做非常底层的调试。使用嵌入式l i n u x ,一 旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地进行开发和 调试工作,从而节省一笔不小的开发费用。嵌入式l i n u x 为开发者提供了一套完整 的工具链( t o o l c h a i n ) 。它利用g n u 的g c c 做编译器,用g a b 、k g d b 、x g d b 做调试 工具,能够很方便地实现从操作系统到应用软件各个级别的调试。 第四,l i n u x 具有广泛的硬件支持特性。无论是r i s c 还是c i s c 、3 2 位还是 6 4 位等各种处理器,l i n u x 都能运行。l i n u x 通常使用的微处理器是i n t e l x 8 6 芯片 电子科技大学硕士学位论文 家族,但它同样能运行于m o t o r o l a 公司的6 8 k 系列c p u 和i b m 、a p p l e 、m o t o r o l a 公司的p o w e r p c c p u 以及i n t e l 公司的s t r o n g a r m c p u 等处理器。l i n u x 支持各种 主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元( m m u ) 的处理器上 运行。这意味着嵌入式l i n u x 将具有更广泛的应用前景。【7 。9 】 1 3 本文课题来源、目标和本人任务 本课题来源于课题组与校外公司的合作项目,主要为基于a m b a 总线的s o c 系统提供u s b2 0 设备端接口功能。本论文属于该课题的一部分。 本课题的目的是用v e r i l o g 在r t l 级实现u s b a h bi p 核,并且用s y n o p s y s 的u s b 和a h b 验证i p 充分验证设计的正确性,并且在f p g a 上完成测试,最后 实现u 盘的业务测试。 本口核主要实现以下功能: 与高速u s b2 0 规范兼容,并可使设备能向下兼容u s b i 1 产品; 与u s b2 0u t m i ( t r a n s c e i v e rm a c r o c e l li n t e r f a c e ) 和u l p i 接口规范兼容; 适应u s b2 0 p h y 操作; 芯片内部的u s b 传输支持1 2 m b s 、4 8 0 m b s 模式; 灵活的端设备配置; 支持a m b a r e v2 0 中规定的a h b 总线协议; 内置d m a 控制器; 减少c p u 利用率,采用多d m a 传输技术; 业务u 盘支持w i n d o w s x p 操作系统。 本课题的主要工作量包括:口设计( i p 总体方案设计,验证方案设计,驱动方 案设计和测试方案设计) ,用v e r i l o g 完成r t l 代码( a h b 和u s b 通用串行接口s i e ) , 完成设备端驱动代码( u 盘驱动和测试代码) ,i p 的验证,i p 综合,上板测试。由课 题组总共7 位同学共同完成。 本人在项目中承担的工作: 。 1 参与项目的规格确定、模块划分、接口定义、总体方案设计; 2 负责设备端驱动总体设计与代码编写; 3 协助软件验证测试方案设计与代码编写; 4 负责寄存器测试、通道测试和u 盘业务测试。 4 第一章引言 1 4 本文结构 本文一共分为六章。第一章简单介绍了嵌入式l i n u x 系统和u s b 总线的历史 和发展前景,以及课题的来源、目标和本人工作。第二、三章分别介绍了u s b 和 b u l k - o n l y 协议,并分析了和课题相关的注意点。第四章描述了u s b 海量存储 设备( 即u 盘) 的系统设计。第五章阐述了对于该口的软件全面验证测试以及对于 u 盘的测试。最后的第六章对本论文做了个总结。 5 电子科技大学硕士学位论文 第二章u s b2 0 协议简介 本设计是基于u s b2 0 设备的驱动设计,必须按照u s b 协议进行设计,因此 有必要先对u s b2 0 的协议原理进行简单的介绍。 2 1u s b 协议总览 u s b2 0 接口是一个传输速率可以达到4 8 0 m b p s 的串行接口,并由不同类型 的外围设备共享这个接口总线。一个主机最高可以通过u s b 总线控制1 2 7 个外设。 u s b 主机是整个总线的主控者,掌握所有的控制权,总线上的通信都是由主机来 发起【1 0 l 。主机负责向各个外设发出各种命令和配置。u s b 是基于令牌包的通信协 议。主机在总线上发送含有设各地址和命令的令牌包,这时总线上符合该地址的 设备将接收这个包,并且按照令牌包的内容进行相应的操作。另外主机会定时发 送帧开始包,将总线时间分割为1 2 5 比s 一帧( u s b l 1 为l m s 一帧) 。所有总线上的 设备就会以时间分割的方式来分享总线带宽。 2 2u s b 的系统结构 u s b 为了统一p c 机的外设接口总线,需要有清晰的拓扑结构,较强的扩展性, 并且需要支持多种传输方式,以适应千变万化的p c 外设接1 3 应用【1 0 】【1 1 1 。 2 2 1 总线的拓扑结构 u s b 系统的总线拓扑结构是一个金字塔结构,包括以下三个部分:u s b 主机 ( 唯一) 、u s b 内连中继器( h u b ) 、u s b 设备。其总线拓扑图如图2 - 1 所示【1 2 出】。 6 第二章u s b 2 0 协议简介 2 2 2 内部层次关系 图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 端点而言,都会有一个控制端点( 端点o ) ,客 户软件对接口进行操作,系统软件通过u s b 设备的端点0 对系统进行设置,其他 端点则主要承载数据传输等功能。而在底层,主机和设备通过u s b 电缆进行数据 交换【1 1 】。 u s b 系统层次结构如图2 2 所示: 7 电子科技大学硕士学位论文 主机 互连璐台暧各 2 2 3 数据流模式 图2 - 2u s b 系统层次结构图 图2 3 说明了数据如何在主机侧中的内存缓冲和设备中的端点中传送。主机上 的软件通过一系列的通信流与逻辑设备进行通信。这一系列的通信流是由u s b 设 备的软件和硬件设计者选择的,使设备能传送由u s b 提供的字符。 图2 3u s b 通信流 8 第二章u s b 2 0 协议简介 u s b 是为主机软件和它的u s b 应用设备间的通信服务的,对客户与应用间不 同的交互,u s b 设备对数据流有不同的要求。u s b 允许各种不同的数据流相互独 立地进入二个u s b 设备,每种通信流都采取了某种总线访问方法来完成主机上的 软件与设备之间的通信。每个通信都在设备上的某个端点结束。不同设备的不同 端点用于区分不同的通信流。 2 3u s a 传输模式 u s b 协议规定了4 种传输模式以适应不同的应用环境,这几种传输方式在数 据格式,总线访问的限制,延时的限制,出错处理等方面都有不同的特征。每种 传输方式一个完整的传输通常包含几个阶段,如设置阶段,数据阶段和状态阶段。 但并非所有的传输方式都包含所有的阶段。以下为4 种传输方式: 2 3 1 控制传输 是可靠的、非周期性的、由主机软件发起的请求或者回应的传送,通常用于 命令事务和状态事务。主机通过端点o 对设备进行配置都是通过控制传输来完成。 一个控制传输由设置阶段,数据阶段和状态阶段组成。如图2 4 所示。其中数 据阶段是可选部分,是否存在数据阶段由不同的控制命令决定。 9 s e t u p s t a g e d a t a s t a g e l o p t i o n a l s t a t u s s t a g e 输扛 圆一 ltetifileifttiill_j 一罔蝌一 图 一司叫舅徽俪吲划 电子科技大学硕士学位论文 2 3 2 同步传输 用于在主机与设备之间的周期性的、连续的通信。一般用于传送与时间相关 的信息。这种类型保留了将时间概念包含于数据中的能力。如影音文件的播放通 常通过同步传输模式。 同步传输只有数据阶段,而且一个特点就是数据阶段没有握手,这和同步传 输要求连续的通信特点是相联系的。图2 - 5 是一个同步i n 传输。 2 3 3 中断传输 图2 - 5 同步传输 小规模数据的、低速的、固定延迟的传送模式。 中断传输只包含数据阶段,由主机定时向设备发矾包来获得设备的中断信息, 从而决定下一步的操作。图2 - 6 为中断烈传输。 2 3 。4 块传输 图2 - 6 中断i n 传输 非周期性的,大包的可靠的传送。主要用于传送那些可以利用任何带宽的数 据,而且这些数据当没有可用带宽时,可以容忍等待。 中断传输只包含数据阶段。通常用于对时间没有严格要求的数据传输。图2 - 7 为批量i n 传输。图2 8 为批量o u t 传输。 1 0 第二章u s b 2 0 协议简介 图2 7 块l n 传输 d a 了 矗 o 图2 - 8 块o u t 传输 1 1 电子科技大学硕士学位论文 第三章b u l k o n l y 海量存储协议 3 1b u l k - o n l y 协议简介 b u l k - o n l y 传输协议是针对于u s b 设备块传输方式的一种传输协议,主机 和大容量存储u s b 设备之间的数据传输都必须遵循此协议。该协议通过传输特殊 的控制包c b w 和c s w 包来达到对块数据传输的控制。它们的通信有以下七种方 式【1 6 】: 1 主机从控制端点0 发送与u 盘有关的特殊类请求; 2 主机从b u l ko u t 端点发送c b w 包; 3 主机从b u l ko u t 端点发送文件数据; 4 主机从b u l ko u t 端点发其它设置状态数据; 5 设备从b u l ki n 端点发送c s w 包; 6 设备从b u l ki n 端点发送文件数据: 7 设备从b u l ki n 端点发其它设置状态数据。 3 1 1c o m m a n dbio c kw r a p p e r ( c b w ) 介绍 c b w 为一定长( 3 1 b y t e ) 的数据包,该包为发起u s b 块传输的标志。数据报文 定义了一些与u s b 相关的字段,格式如下: d c b w s i g n a t u r e d c b w t a g d c b w d a t 扪r r a n s f e d l e n g t h b m c b w f l a g s b c b w l u n b c b w c l e n g t h c b w c b 各字段的声明如下: d c b w s i g n a t u r e :数字签名, 是一个c b w 包; b y t e 0 - 3 b y t e 4 7 b y t e 8 1 1 b y t e l 2 b y t e l 3 0 - b y t e l 3 3 b y t e l 4 0 一b y t e l 4 4 b y t e l 5 3 0 c b w 包的开始标志,值为4 3 4 2 5 3 5 5 h ,指明这 1 2 第三章b u l k - o n l y 海量存储协议 d c b w t a g :主机发出的c o m m a n d 块标签。设备需要根据相应的c b w 响 应,填充d c s w t a g 字段于c s w 包,并将c s w 包返回给主机; d c b w d a t a t r a n s f e r i l e n g t h : 本次c b w 希望b u l k o u t b u l k - i n 端点传送接 收的数据长度。如果长度为o ,本次传输无数据传输,可忽略b m c b w f l a g s ; b m c b w f l a g s :c b w 标志位; b c b w l u n :主机设置,设备驱动不需要对其进行处理; b c b w c l e n g t h :c b w c b 字段有效长度。有效范围为1 至1 6 ; c b w c b :设备所要响应的命令。设备先检查该段中长度为b c b w c l e n g t h 的 子段中的命令是否为b i n t e r f a c e s u b c l a s s 中所定义的命令类型。若是且长度小于1 6 , 则设备忽略掉c b w c b 段中从( 1 5 + b c b w c l e n g t h - - 1 ) 至最后的数据。作为海量存 储设备的驱动时,该字段命令为u f i 命令。 3 1 2c o m m a n ds t a t u sw r a p p e r ( c s w ) c s w 为一定长( 1 3 b y t e ) 的数据包。该包为u s b 块传输结束的标志。数据报文 定义了一些与u s b 相关的字段,格式如下: d c s w s i g n a t u r e d c s w t a g d c s 、v d a t a r e s i d u e b c s w s t a t u s 各字段的声明如下: d c s w s i g n a t u r e :数字签名, 是一个c s w 包; c s w 包的开始标志,值为5 3 4 2 5 3 5 5 h ,指明这 d c s w t a g :设备需要根据相应的c b w 响应,填充d c s w t a g 字段于c s w 包, 并将c s w 包返回给主机; d c s w d a t a r e s i d u e :剩余数据长度。该字段用来监视数据传输过程。当对主 机一设备的d a t a - o u t ,该值为d c b w d a t a t r a n s f e d l e n g t h 与设备实际接收到的数 据量之差。当对设备一主机的d a t a - i n ,该值为d c b w d a t a t r a n s f e r l l e n g t h 与设备 实际发送的数据量之差。该值不得超过d c b w d a t a t r a n s f e r l e n g t h : d c s w s t a t u s :该字段用来指示c b w 命令执行成功或者失败。当发生以下两 种错误不需要设置c s w 通知主机。 1 如果是c b w 无效( 无意义) 。此时设备需要直接s t a l l 掉b u l ki n 和b u l ko u t 3刁2 一忡吣呲 电子科技大学硕士学位论文 端点,然后等待主机复位恢复; 2 如果是需要复位才能解决的内部设备错误,刘壹接s t a l l 掉b u l ki n 和 b u l ko u t 端点,然后等待主机复位恢复。 3 2b u l k - o n l y 传输条件 b u l k o n l y 协议定义了c b w 和c s w 控制包,并以此来来保持主机和设备 传输的同步。除却错误情况外,正常的流程应该是按照:命令传输( c b w 传输) 专 数据传输旁状态传输( c s w 传输) 专命令传输( c b w 传输) 这一过程循环。下面 就详细叙述各个传输过程 3 2 1 命令传输 当个块传输任务发起时,首先,主枫经过b u l k - o u t 端点向设备发送包含 ,命令字段的c b w 。此时设备响应情况如下: 若c b w 有效,设备发回一a c k 应答; 若c b w 无效,设备则s t a l l 掉b u l k - o u t 管道或接受并且抛弃b u l k - o u t 端点缓冲里的数据。设备将保持该状态直到复位恢复; 命令传输过程中主桃检测到b u l k o u t 端点的s t a l l ,主机将执行复位恢 复。 3 2 2 数据传输 块数据传输将在一个苞的边界处开始。 主机将根据d c b w d a t a t r a n s f c r k n 舀h 和d i r e c t i o nb i t 位来发送或接收确定数目 的数据。为了在数据传输过程结束前报告错误,设备将通过s t a l l 掉数据传输所 使用的端点来结束本次命令。 3 2 。3 状态传输 当一个传输任务结束时,设备经过b u l k - i n 端点向主机发送c s w 包。c s w 包将在包边界处开始并越在传送1 3 个数据后结束。 该c s w 包将通知主机每个对应的c b w 包内的命令块执行情况。 d c s w d a t a r e s i d u e 逶知主机设备实际接收发送的数据量。这样主机将忽略接收至l 1 4 第三章b u l k - o n l y 海量存储协议 的序号超出d c s w d a t a r e s i d u e 值的数据。 3 2 4 相位错误 当主机接收到c s w 包中的相位错误时,主机将进行复位恢复。 3 2 5 复位恢复 复位恢复由主机执行,分以下三个步骤: 1 b u l k - o n l ym a s ss t o r a g er e s e t 复位( 主机向端点0 发送该命令字段) ; 2 对b u l k o u t 端点的c l e a rf e a t u r e 请求; 3 对b u l k i n 端点的c l e a rf e a t u r e 请求。 3 3 主机设备之间的数据传输 b u l k - o n l y 协议层处理开始于主机发送一个c b w 包给设备,并尝试开始自 己所期望的数据传输。设备接收c b w ,核对c b w ,解释c b w ,并尝试开始满足 主机的要求,通过c s w 向主机报告c b w 运行情况。以下部分详细描述了在正常 和异常的b u l k - o n l y 协议层处理过程中主机和设备交互的更多细节。 3 3 1 合法且有意义的c b f f 主机通过c b w 包通知设备自己的意图。设备对每个收到的c b w 包执行双重 验证。首先,设备验证c b w 包是否合法。然后,设备判断c b w 包中的数据是否 有意义。设备在任何方式下都不会使用d c b w t a g 除了将它的值拷贝至对应的c s w 包中的d c s w t a g 中。 合法的c b w : 当以下情况都满足时设备将认为c b w 合法: 1 设备发送一个c s w 包后或上电复位设备收到一个c b w 包; 2 c b w 包长度是3 1 个b y t c ; 3 c b w s i g n a t u r e 的值为4 3 4 2 5 3 5 5 h 。 有意义的c b w : 当以下情况都满足时设备将认为c b w 有意义: 1 没有保留的b i t 位被置位; 电子科技大学硕士学位论文 2 b c b w l u n 包含一个为设备所支持的合法的l u n ; 3 b c b w c b l e n g t h 和c b w c b 字段内容与b i n t e r f a c e s u b c l a s s 类中的声明一 致。 3 3 2 合法且有意义的o s w 设备通常通过c s w 包通知主机自己试图满足主机需求的结果。主机对每个收 到的c s w 包执行双重验证。 首先,主机验证收到的c s w 包是否合法。然后,主机判断c s w 包中的数据 是否有意义。 合法的c s w : 当以下情况都满足时设备将认为c s w 合法: 1 c s w 包长度是1 3 个b y t e ; 2 d c s w s i g n a t u r e 的值为5 3 4 2 5 3 5 5 h ; 3 d c s w t a g 的内容与c b w 包中d c b w t a g 的内容匹配。 有意义的c s w 包: 当以下情况都满足时设备将认为c s w 有意义: 1 ,b c s w s t a t u s 的值为0 0 h 或0 1 h ,且d c s w d a t a r e s i d u e 的值不超过 d c b w d a t a t r a n s f e r l e n g t h 的值; 2 b c s w s t a t u s 的值为0 2 h 。 3 3 3 设备端错误处理 设备端有可能会不能完全满足主机的请求。当设备发现不能完全满足主机的 请求时,很可能当前u s b 总线上已经有数据传输,并且主机可能还有其他未决定 的请求。此时,设备将s t a l l 掉相应的管道。对于无意义的c b w ,设备将不予 以响应。 当设备准备s t a l l 掉管道时,s t a l l 握手是否在总线上发生则决定于在相应 的端点上是否有数据传输。 3 3 4 主机端错误处理 主机端如果收到一个非法和无意义的c s w ,主机都将执行复位恢复。并且在 复位操作完成后重新尝试传输该次传输数据。 1 6 第三章b u l k - o n l y 海量存储协议 3 3 5 错误的类别 在主机和设备之间发生的每次传输,有四类可能的错误。这些类别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地租赁承包协议书5篇
- 畜牧兽医招聘考试动物医学知识考试题
- 水力发电技术试题
- 电镀工基本考试题
- 【R2移动式压力容器充装】考试题及答案
- 词料合同(标准版)
- 在供房换合同(标准版)
- 智能交通流预测与路况分析创新创业项目商业计划书
- 心理健康讲座与工作坊创新创业项目商业计划书
- 2025餐饮业员工劳动合同书
- 2025广西公需科目真题续集(附答案)
- T/CECS 10214-2022钢面镁质复合风管
- 学校“1530”安全教育记录表(2024年秋季全学期)
- 公路工程标准施工招标文件(2018年版)
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 《概率论与数理统计》-教学教案
- 放射培训考试习题及答案
- DB33∕1050-2016 城市建筑工程日照分析技术规程
- 道路、桥梁、隧道、地铁施工标准化手册(专业篇)
- 第十四章 环合反应天津大学
- 有机化学汪小兰 知识点总结 315化学
评论
0/150
提交评论