(电路与系统专业论文)基于U盘应用的USB20设备端控制器的设计[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于U盘应用的USB20设备端控制器的设计[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于U盘应用的USB20设备端控制器的设计[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于U盘应用的USB20设备端控制器的设计[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于U盘应用的USB20设备端控制器的设计[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(电路与系统专业论文)基于U盘应用的USB20设备端控制器的设计[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

太原理工大学硕士研究生学位论文 基于u 盘应用的u s b 2 0 设备端控制器的设计 摘要 本文介绍了一种基于u 盘应用的u s b 2 0 设备控制芯片的设计方法。针 对其两个主要部分叫) 盘的枚举和f l a s h 控制进行了细致的分析和实现。 并用时序图、状态机、代码等方法着重说明了u s b 2 0 设备控制器中各功能 模块的具体实现,并给出了仿真结果。 首先介绍了u s b 芯片的发展现状,u 盘的广阔市场前景。然后对u s b 2 0 协议和相关子类协议以及f p g a 设计方法给出了说明,这是本设计必须遵循 的标准。接着是规划整个系统的系统分析以及对各端口的设定。为了符合 协议要求进而正确实现设计,期间查阅了大量的相关资料并对核心部分 u s b 2 0 协议进行了翻译。 然后对各模块的具体实现作了详细介绍,主要包括物理层接口模块, 它主要完成跟踪总线事件、挂起、恢复、复位切换,全速高速切换,数据 传递等功能;协议处理模块,它主要完成u s b 数据包的解析和封装以及协 议实现等环节;f l a s h 控制器模块,它主要完成s c s i 命令的解析和f l a s h 芯片的控制;以及完成u 盘主机识别的枚举模块;随后是作为u s b 端点的端 点模块。 最后对实验结果进行了分析,对u 盘枚举和f l a s h 控制给出了仿真的波 形,完全符合u s b 2 0 协议和f l a s h 芯片控制的要求。 关键词:通用串行总线、串行接口引擎、闪存、f p g a 一一一 奎堕里三盔堂亟主婴窒圭堂篁鲨塞 _ _ _ _ - _ _ _ _ _ _ - _ _ _ _ _ _ - _ - - _ _ _ _ - _ - _ - _ _ - - - _ - - _ 一 一一 一 d e s i g no fau s b 2 0i n t e r f i 慨c o n t r o l l e r t h i sd i s s e r t a t i o ni n t r o d u c e st h ed e s i g no fu s b 2 0i n t e r f a c ec o n t r o l l e r i m a k ed e t a i l e da n a l y s i sa n dr e a l i z ea i ma ti t st w om a i np a r t s f l a s hc o n t r o la n d t h ee n u m e r a t i o n ia l s ou s et i m i n gd i a g r a m ,s t a t em a c h i n e ,a n dc o d et od e s c r i b e t h er e a l i z a t i o no fa l lu s b 2 0d e v i c ec o n t r o l l e r sf u n c t i o n a lm o d u l e s ,a n dg a v e t h es i m u l a t i o nr e s u l t s f i r s t l y ,t h i sd i s s e r t a t i o ni n t r o d u c e st h ef e a t u r e so fu s bc h i p ,t h ec u r r e n t d e v e l o p m e n to fu s b d i s ki nt h ew o r l d t h e ni n t r o d u c e st h eu s b 2 0p r o t o c o l a n dr e l a t e ds u b c l a s sp r o t o c o l ,a sw e l la sf p g ad e s i g nm e t h o d s ,w h i c hi st h e s t a n d a r dm u s tt of o l l o w t h e nil a y o u t st h ew h o l es y s t e ma n a l y s i sr e p o r t sa n d t h ep o r td e f i n eo fa l lm o d u l e s i no r d e rt om e e tt h ep r o t o c o lr e q u e s ta n df u r t h e r r e a l i z a t i o no ft h er i g h td e s i g n ,il o o k u p t i m ea n dt r a n s l a t et h eu s b 2 0p r o t o c 0 1 ag r e a td e a lo fi n f o r m a t i o nd u r i n gt h e t h e np a r t i c u l a ri n t r o d u c et h ei m p l e m e n ti nd e t a i lo fa l lm o d u l e s ,i n c l u d i n g t h e p h y s i c a l l a y e r i n t e r f a c e m o d u l e ,i tc o m p l e t e d t h em a i n b u s i n c i d e n t t r a c k i n g ,h u n g ,r e h a b i l i t a t i o n ,r e s e t ,s w i t h ,f u l l - s p e e d o r h i g h 。s p e e d s w i t c h i n g ,d a t at r a n s m i s s i o na n do t h e rf u n c t i o n s ;p r o t o c o lp r o c e s s i n gm o d u l e ,i t m a i nc o m p l e t eu s bd a t ap a c k e t se n c a p s u l a t i o na n da n a l y s i sa sw e l la st h e i m p l e m e n to fp r o t o c o l ;f l a s hc o n t r o l l e rm o d u l e ,i tc o m p l e t e dt h ea n a l y s i so f 太原理工大学硕士研究生学位论文 s c s ic o m m a n da n df l a s h c h i pc o n t r o l ;e n u m e r a t i o nm o d f l ec o m p l e t i o nt h e i d e n t i f i c a t i o no ft h eud i s k ;t h e ni se n d p o i n tm o d u l eu s ea sau s b e n d p o i n t f i n a l l y ,t h ee x p e r i m e n t a lr e s u l t s a r ea n a l y s e d t h es i m u l a t i o nw a v e f o r m s o fud i s k se n u m e r a t i o na n df l a s hc o n t r o la r ei nf u l lc o m p l i a n c ew i t ht h e p r o t o c o lo fu s b 2 0a n df l a s h c o n t r o lr u l e s k e y w o r d :u n i v e r s a l s e r i a l b u s ,s e r i a l i n t e r f a c e e n g i n e ,f l a s h ,f i e l d p r o g r a m m a b l eg a t ea r r a y 1 1 1 声明尸明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体已经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的 法律责任由本人承担。 论文作者签名:三叁查超 日期:翌呈金叠呈臼 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文; 学校可允许学位论文被查阅或借阅;。学校可以学术交流为目的, 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) 。 签名:蔓墼建垒日期:竺:墨圭三亟 导师签名:日期: 太原理工大学硕士研究生学位论文 1 本课题研究的背景与意义 t - - k 刖舌 通用串行总线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 制定的一种计算机外设连接规范,于2 0 0 0 年4 月2 7 日公开发布,在原先u s b l 1 的 1 5 m b s 和1 2 m b s 基础上增加了4 8 0 m b s 的高速数据传输模式。具有即插即用、热插拔、 接口体积小巧、节省系统资源、传输可靠、提供电源、良好的兼容性等优点。随爹p c 应用的普及化,以p c 为核心的各类外设越来越多,从u 盘到m p 3 播放器,从数码相 机到打印机,u s b 接口几乎应于所有种类的外设。据d i g i t l m e s 科技网的评论预测u s b 产品的出货量将从2 0 0 3 年的4 亿9 0 0 0 万套成长至2 0 0 8 年的1 1 亿3 0 0 0 万套,年复合 成长率为1 8 1 。 每一个u s b 的外设都必须至少有一片u s b 接口芯片。u s b 接口最典型的应用是u 盘。自从1 9 9 9 年朗科生产出第一个u 盘以来i ,它便以小巧方便的特点迅速取代了人 们原先使用的软盘,成为最为主流的一种便携存储设备,甚至成为一种电子产品的时尚, 几乎人人都在使用,故而设计针对u 盘应用的u s b 2 0 设备控制器芯片不仅仅结合了当 今主流外设接口规范和大容量存储器控制协议,同时具有巨大的市场潜力。 2 论文完成工作 在u 盘应用的u s b 2 0 设备控制芯片的设计中,主要完成了以下工作: ( 1 ) 用硬件描述语言v h d l 编程实现u s b 2 0 协议、海量存储协议的通信、f l a s h 的读写控制以及软件级的仿真测试。 ( 2 ) 对验证用p c b 板进行了焊接和调试。 ( 3 ) 将软件测试通过的代码下载到p c b 板上进行硬件级的测试和验证。 奎堕里三丕堂亟主婴窒圭堂焦迨銮 - _ _ _ - _ _ _ _ _ _ _ - i - _ i - i _ l _ l - _ _ - _ _ i - - _ _ - - _ _ - _ _ - _ _ i _ - _ - - _ - - 。_ - _ _ - _ - 一一一 3 本论文的组织 第一章介绍了本课题的研究基础即u s b 2 0 协议和相关子类协议:第二章给出 了设计实现的系统分析报告;第三章着重对各模块的具体实现做出了分析。第四章列出 了重要的实验数据。第五章对本文内容作了总结,并指出进一步的研究方向。 2 太原理工大学硕士研究生学位论文 第一章u s b 2 0 相关协议和f p g a 介绍 1 1u s b 2 0 协议 1 1 1u s b 的特点 u s b 的规范能针对不同的性能价格比要求提供不同的选择,以满足不同的系统和部 件及相应不同的功能,其主要特点可归结为以下几点砼: 为接缆和连接头提供了单一模型; 电气特性与用户无关; 自我检测外设,自动地进行设备驱动、设置; 动态连接,动态重置的外设。 适应不同设备,传输速率从几k b s 比特率到几百m b m 在同一线上支持同步、异步两种传输模式; 支持对多个设备的同时操作; 可同时操作1 2 7 个物理设备; 在主机和设备之间可以传输多个数据和信息流; 支持多功能的设备: 协议开销低,提高了总线利用率。 1 1 2 总线的拓扑结构 u s b 系统的总线拓扑结构是一个金字塔结构,包括三个部分:唯一的u s b 主机、 u s b 内连中继器( h u b ) 、u s b 设备。其总线拓扑如图1 - 1 所示啪。 1 1 3u s b 的电气特性 u s b 总线通过4 线电缆来传输信号,如图所示1 2 所示。其中v b u s 和g n d 是电 源线,d + 和d 是差分信号线。u s b 主机通过v b u s 和g n d 两根电源线提供设备所需 的电流【5 1 。 u s b 支持热插拔,需要有机制检测u s b 设备的插入和拔出。当主机检测到信号线 3 太原理工大学硕士研究生学位论文 上电平升高到一定电平后可判断设备已经连接。当主机检测到信号线上电平都降低到一 定电平后可判断设备的移除。u s b 总线的差分信号线以总线的差分状态表示“1 或者 “o 。采用差分方式可以降低干扰,提高总线速度。由于 u s 伊 胁 g k d 图1 - 1u s b 的拓朴结构 f i g u r c l 1u s b st o p o l o g yf r a m e w o r k 访潞 d 降 d 一 图1 - 2 u s b 的电气特性 f i g u r e l 2u s b se l e c t r i cs p e d a l i t y u s b 2 0 需要和u s b i 1 互相兼容,并且u s b 总线要求在总线空闲的时候挂起总线以便 于省电。因此u s b 总线定义了总线复位、挂起和恢复协议。用于主机和设备相互确定 双方的运行模式以及如何挂起设备和如何使挂起设备恢复到正常状态1 6 。 1 1 4 内部层次关系 在实际的应用系统中,不同层次的实现者对u s b 有不同要求。u s b 系统的分层概念 能使不同层次的实现者只关,t ) , u s b 相关层次的特性功能细节,而不必掌握从硬件结构到 软件系统的所有细节。一个u s b 设备对于u s b 系统来讲就是一系列端点的集合,多个端 点集合组成了接口,多个接口组成了最上层的配置。系统软件通过u s b 设备的端点0 对 4 一一 奎星里三盔堂堡主堕窒圭堂鱼迨塞 一 _ _ - - _ _ _ _ l - l - - _ _ - _ _ l _ l - _ _ - l _ _ _ _ _ - - _ _ _ - - - 一 系统进行设置,而在最底层,主机和设备通过u s b 总线电缆进行数据交换。u s b 系统的 层次结构如图1 3 所示。其中实线表示实际的通信流,虚线表示逻辑通信流n 3 。 1 1 5 数据流模式 主机互连 设备 图1 - 3u s b 的层次结构 f i g u r e l - 3u s b sh i b e r a r c h y 图1 - 4 说明了数据在主机侧内存缓冲和设备端点之间的传输方式。主机上的软件通 过一系列的通信流与逻辑设备的端点进行通信嘲。 图i - 4u s b 的数据流模型 f i g u 他1 - 4u s b sd a t as t r e a mf o r m e r 每个通信流都在设备上的某个端点结束。不同设备的不同端点用于区分不同的通信 流。一个端点是一个可唯一识别的u s b 设备的一部分,是主机与设备间通信流的一个结 5 太原理工大学硕士研究生学位论文 束点。一系列相互独立的端点在一起构成了u s b 逻辑设备。每个逻辑设备有一个唯一的 地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部 有唯一的端点号,端点号由设备设计者设定。设备地址+ 端点地址就可以选中某个u s b 设备中的一个端点。一个u s b 设备最多可支持1 6 个端点。端点0 是固定的控制传输,每 个u s b 设备都必须具备;其余的端点的端点数目、端点号、传输方式、传输方向都是由 设备设计者根据需要来进行设定。u s b 通信流是为主机软件和它的u s b 应用设备间的通信 服务的,对客户与应用间不同的交互,对通信流有不同的要求。u s b 允许各种不同的通 信流相互独立地进入一个u s b 设备,每种通信流都采取了某种总线访问方法来完成主机 上的软件与设备之间的通信m 。 1 1 6u s b 的传输类型 u s b 协议规定了4 种传输模式以适应不同的应用环境,这几种传输方式在数据格式, 总线访问的限制,延时的限制,出错处理等方面都有不同的特征。一次完整传输包含3 个阶段:设置阶段、数据阶段、状态阶段。但并非所有的传输方式都包含所有的阶段。 每个阶段一般由3 个u s b 协议包组成:令牌包、数据包、握手包。但不是每个阶段都会 有完整的3 个包。以下为4 种传输方式n 。 ( 1 ) 控制传输:是一种可靠的、非周期性的、由主机软件发起的请求或者回应的传输方 式,通常用于命令事务和状态事务。主机通过端点0 对设备进行配置都是通过控制传输 来完成。一个控制传输由设置阶段、数据阶段、状态阶段组成。图是一次控制写传输。 其中数据阶段是可选的,由不同的控制命令决定,如图i - 5 所示。 令牌 s e ec t dnr u ddc rp5 p 令牌 e c id nr nd dc rp5 6 堡圈五圉夏困一 。,l。l。l 太原理工大学硕士研究生学位论文 图1 - 5 控制传输类型 f i g u r e l - 5c o n t r o lt r a n s f e r st y p e ( 2 ) 同步传输:一种周期性的、连续的传输方式,通常用于传送与时间相关的信息。这 种类型保留了将时间概念包含于数据中的能力。如影音文件的播放通常通过同步传输模 式。同步传输只有数据阶段,在数据阶段中没有握手包,这和同步传输要求连续的通信 特点是相联系的。图1 - 6 是一个同步i n 传输。 图1 - 6 同步传输类型 f i g u r e l - 6s y n c h r o n i z a t i o nt r a n s f e r st y p e : ( 3 ) 中断传输:一种小规模数据的、低速的、固定延迟的传数方式,通常用于鼠标、键 盘类设备。中断传输只包含数据阶段,由主机定时向设备发i n 包来获得设备的中断信 息,从而决定下一步的操作。图1 - 7 为中断i n 传输。 令牌 ec rdnr n ddc rp5 图1 - 7 中断传输类型 f i g u r e l - 7i n t e r r u p tt r a n s f e r st y p e ( 4 ) 批量传输:一种非周期性的,大数据量的、可靠的传送方式,用于传送那些可以利 用任何带宽的数据,而且这些数据当没有可用带宽时,可以容忍等待。通常用于对时间 没有严格要求的大规模数据传输,如优盘、移动硬盘、刻录机、数码相机等外设。批量 传输只包含数据阶段。图卜8 为批量o u t 传输。 。 令牌 ec dnr ddc rp5 图1 - 8 批量传输类型 7 太原理工大学硕士研究生学位论文 1 1 7u s b 的传输格式 u s b 总线上传输数据都是以包的形式来完成的,一次成功的u s b 传输一般分为令牌 包,数据包和握手包三种。它们分别的格式为: ( 1 ) 令牌包: 如图1 9 所示,由p i d ,a d d r 和e n d p 构成,其中p i d 指定了包是输入,输出还是建 立类型。对于输出和建立事务,地址和端口字段唯一地确定了接下来将收到数据包的端 口。对于输入事务的,这些字段唯一地确定了哪个端口应该传送数据包。只有主机能发 出令牌包。输入p i d 定义了从功能部件到主机的数据事务。输出和建立p i d 定义了从主机 到功能部件的数据事务。 f i e l dp i da d d re m ) pc r c 5 b i t s 87 45 图i - 9 令牌包 f i g u r e l 一9t o k e np a c k e t ( 2 ) 数据包: 如图1 1 0 所示,数据包由p i d ,包括至少o 个字节数据的数据区和c r c 构成。有2 种 类型的数据包,根据不同的p i d :d a t a 0 和d a t a l 来识别。2 种数据包p i d 是为了支持数 据切换同步( d a t at o g g l es y n c h r o n i z a t i o n ) 。数据必须以整数的字节数发出。数据c r c 仅 通过对包中的数据字段计算而得到,而不包括p i d ,它有自己的校验字段。 f i e l dp i dd a t ac r c l 6 b i t s 8o 一8 1 9 21 6 图卜1 0 数据包 f i g u r e l 1 0d a t ap a c k e t ( 3 ) 握手包: 如图1 - 11 所示,握手包仅由p i d 构成。握手包用来报告数据事务的状态,能还在表 示数据成功接收,命令的接收或拒绝,流控制( f l o wc o n t r 0 1 ) 和停止( h a l t ) 条件。只有支 持流控制的事务类型才能返回握手信号。握手总是在事务的握手时相( p h a s e ) d p 被返回, 8 太原理工大学硕士研究生学位论文 也可在数据时相代替数据被返回。握手包由1 个字节的包字段后的e o p 确定界限。如果包 被解读为合法的的握手信号,但没有以1 个字节后面的e o p 终止,则它被认为是无效的, 且被接收机忽略。设备能识别或者发送的握手包有a c k 、m 蛆国s t a l l 。其中a c k 表 示数据被接收方正确接收;n a k 用于流控制,仅由设备发出,表示暂时不能发送或者接 收数据,但不需要主机干预;s t a l l 表示数据包在传输的过程中出了故障或者设备被禁 止,需要主机重新发送数据或者清除这次传输。 1 2 海量存储协议 1 2 1 海量存储协议介绍 f i e l dp i d b i t s8 图1 - 1 1 握手包 f i g u r e l - 1 1h a n d s h a l 【ep a c k e t 海量存储协议是u s b 协议上层应用的一种协议,专为批量传输的端点所设计,为海 量存储类外设所使用,u 盘是其典型的应用。u 盘是海量存储类中的直接存储子类中的一 种。 u s b 组织定义了海量存储设备类( m a s ss t o r a g ec l a s s ) 的规范,这个类规范包括四个 独立的子类规范,即:1 u s bm a s ss t o r a g ec l a s sc 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 t2 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 t3 u s bm a s ss t o r a g ec l a s sa t ac o m m a n d b l o c k4 u s bm a s ss t o r a g ec l a s su f ic o m m a n ds p e c i f i c a t i o n 。前两个子规范定义了数据 命令状态在u s b 上的传输方法。b u l k - o n l y 传输规范仅仅使用b u u 【端点传送数据命令 状态,c b i 传输规范则使用c o n t r o l b u l k i n t e r r u p t 三种类型的端点进行数据命令状态传 送。后两个子规范则定义了存储介质的操作命令。a t a 命令规范用于硬盘,u f i 命令规 范是针对u s b 移动存储一羽。 m i c r o s o f tw i n d o w s 中提供对m a s ss t o r a g e 协议的支持,因此u s b 移动设备只需要遵 循m a s ss t o r a g e 协议来组织数据和处理命令,即可实现与p c 机交换数据。而f l a s h 的存储 单元组织形式采用f a t 3 2 文件系统,这样就可以直接在w i n d o w s 的浏览器中通过可移动 磁盘来交换数据了,w i n d o w s 负责对f a t 3 2 文件系统的管理,u s b 设备不需要干预 9 太原理工大学硕士研究生学位论文 f a t 3 2 文件系统操作的具体细节。设备插入至u u s b 后,u s b o i 对设备进行搜索,并要求 设备提供相应的描述符。在u s b h o s t 得到上述描述符后,即完成了设备的配置,识别 出为b u l k - - o n l y 的m a s ss t o r a g e 设备,然后即进入b u 墩一0 n l y 传输方式。在此方式下, u s b 与设备间的所有数据均通过b u l k - - i n 和b u l k - - o u t 来进行传输,不再通过控制端点传 输任何数据。在这种传输方式下,有三种类型的数据在u s b 和设备之间传送,c b w 、 c s w 和普通数据。c b w ( c o m m a n db l o c kw r a p p e r ,即命令块包) 是从u s bh o s t 发送到 设备的命令,命令格式遵从接口中的b i n t e f f a c e s u b c l a s s 所指定的命令块,这里为s c s i 传输命令集。u s b 设备需要将s c s i 命令从c b w 中提取出来,执行相应的命令,完成 以后,向h o s t 发出反映当前命令执行状态的c s w ( c o m m a n ds t a t u sw r a p p e r ) ,h o s t 根 据c s w 来决定是否继续发送下一个c b w 或是数据。h o s t 要求u s b 设备执行的命令可 能为发送数据,则此时需要将特定数据传送出去,完毕后发出c s w ,以使h o s t 进行下 一步的操作。得到一个c b w 后,解析出c b w c d 中所代表的命令,然后按照s c s i 命令 集中的定义来执行相应的操作,或是需要接收下一个b u l k - - o u t 发来的数据,或是需要 向h o s t 传送数据,完成以后需要向u s bh o s t 发送c s w ,反映命令执行的状态。u s b 也是 通过此来了解设备的工作情况的n 3 1 。 1 2 2 海量存储传输过程 海量存储的流程如图1 - 1 2 所示: 图1 - 1 2 海量传输过程 h g u m l - 1 2b u l kt r a n s f e r sp r o c e s s 1 0 太原理工大学硕士研究生学位论文 u s bh o s t 按照图1 1 3 的格式向设备端发送c b w 。 b i t 76543210 b y t e o 一3 d c b w s t g n a t u r e 4 7d c b w t a g 8 - 1 i d c b w o a t a t r a n f e r l e n g t h 1 2 l m c b w f l a g s 1 3 r e s e r v e d ( o ) b c b w l u n 1 4r e s e r v e d ( 0 ) b c b w c b l e n g t h 1 5 - 3 0 c b w c b 图卜1 3c b w 包 f i g u r e l 1 3c b wp a c k e t 其中d c b w s i g n a t u r e 的值为4 3 4 2 5 3 5 5 h ( l s b ) ,表示当前发送的是一个c b w ; d c b w t a 的内容需要原样作为d c s w t a g 再发送给h o s t 。d c b w d a t a t r a n s f e r l e n g t h 为本次 c b w 需要传输的数据,b m c b w f l a g s 反映数据传输的方向,o 表示来h o s t 。1 表示发至 h o s t ;b c b w u 肘一般为零,但当设备有多个逻辑单元时,用此位指定本次命令是发给 谁的;b c b w c b l e n g t h 为本次命令字的长度;c b w c b 即为真正的传输命令集的命令。 得到一个c b w 后,解析出c b w c d 中所代表的命令,然后按照s c s i 命令集中的定义来执 行相应的操作,或是需要接收下一个b u l k - - o u t 发来的数据,或是需要向h o s t 传送数据, 完成以后需要向u s bh o s t 发送c s w ,反映命令执行的状态。u s b 也是通过此来了解设备 的工作情况的。图1 1 4 是c s w 的格式和定义: b i t 7654 3 2 l o b y t e o - 3 d c s w s t g n a t u r e 4 - 7 ,dcswtag 8 - 1 1d c s 骶i a t a r e s i d u e 1 2b c s w s t a t u s 图1 - 1 4c s 包 h g u r e l 1 4c s wp a c k e t 其d c s w s i g n a t u r e 的内容为5 3 4 2 5 3 5 5 h ,d c s w t a g 即为d c b w t a g 的内容, 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 - - 本次已经传 太原理工大学硕士研究生学位论文 送的数据得到。h o s t 端根据此值决定下一次c b w 的内容,如果没有完成则继续:如果 命令正确执行,b c s w s t a t u s 返回0 即可。按这个规则组装好c s w 后,通过b u r - - i n 端 点将其发出即可。 枚举完成后的u 盘使用的是批量传输类型,其具体流程为: ( 1 ) 应用程序发出的磁盘操作请求,经过可安装文件系统及输入输出系统层层过滤被分解 为一个个基本的s c s i 块读写请求。然后经过s c s i 驱动层封装成i r p ( i or e q u e s tp a c k e t ) 下发u s b 传输驱动层。u s b 传输驱动层对接受到的i r p 进一步封装成c b w ,下发给设备方的 固件。 ( 2 ) 固件检查c b w 是否有效。若无效将b u l k 端点s t a l l 掉,并发送c s w 包向主机汇报c b w 无效 主机将执行相应的端点复位操作,并重发c b w 。 ( 3 ) 若c b w 有效,固件将把c b w 包中的信息做进一步处理若主机发过来的是读非o 长度的数 据,则固件将启动u 盘的读操作,从闪存中读取数据,并将数据写入至u b u l k i n 端点发送 给主机,若主机发过来的是写非0 长度的数据,则固件等待从b u l k o u t 端点接收主机发 过来的数据,然后启动闪存的写操作,将数据写入到闪存里面 h ) 若主机没有数据请求或主机请求的数据处理已经结束,则固件将最终的处理结果封装 成c s w 包返回给主机此后,u s b 设备将处于空闲状态,等待接收主机的下一个请求 1 3s c s i 指令集 b u l k - o n l y 的c b w 中的c b w c b 中的内容即为如下格式的命令块描述符 ( c o n 皿n a n d b l o c kd e s c r i p t o r ) 。s c s i 2 有三种字长的命令,6 位、1 0 位和1 2 位,m i c r o s o f t w i n d o w s 环境下支持1 2 位字长的命令n 引。 如图卜1 5 所示,其中o p e r a t i o nc o d e 是操作代码,表示特定的命令。高3 位为g r o u p c o d e ,共有8 种组合,即8 个组,低5 五位为c o m m a n dc o d e ,可以有3 2 种命令。l o g i c o lu n i t n u m b e r 是为了兼容s c s i 一1 而设的,此处可以不必关心。l o g i c a lb l o c ka d d r e s s 为高位 在前,低位在后的逻辑块地址,即扇区地址。第2 位为高位,第3 、4 、5 依次为低位。 t r a n s f e rl e n g t h 为需要从逻辑块地址处开始传输的扇区数;p a r a m e t e rl i s tl e n g t h 为 1 2 太原理工大学硕士研究生学位论文 b i t 765432lo b y t e 0 0 p e r a ti o nc o d e l l o g i c a lu n i tn u m b e r r e s e r v e d 2 - 5 l o g i c a lb l o c ka d d r e s s 6 - 9t r a n s f e rl e n g t hl p a r 锄e t e r1 i s t l e n g t l l | a 1 1 。c a t i 。n l e n g t h 1 0r e s e r v e d 1 1c o n t o r l 图卜1 5s c s i 指令 f i g u r e l - 1 5s c s ii n s t r u c t i o n 需要传输的数据长度( 比如在m o d es e n s e 命令中) ;a l l o c a t i o nl e n g t h 为初始程序为返回 数据所分配的最大字节数,此值可以为零,表示不需要传送数据。s c s i 指令集的d i r e c t a c c e s s 类型存储介质的传输命令有许多,m a s ss t o r a g e 协议只用到了其中的_ 些。主机 ; 需u s b 设备做出响应的请求,一般是要求向h o s t 发送一些有关设备的数据。 对于不同的命令,其命令块描述符略有不同,其要求的返回内容也有所不同,根据 相应的文档,可以对每种请求做出适当的回应。 1 4u t m i 接口规范 随着u s b 2 0 的到来,4 8 0 m b s 的速率很难仅仅依靠硬件描述语言的来完成 设计。i n t e l 公司制定了u t m i ( u s b2 0t 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 s b 2 0 的设计。在这个规范中定义了u t m i 的接口定义和u 1 q v l 单元应该完成的功能。如 数据的解串和串行化,时钟恢复,比特填充等。这样就使得u s b 设备接口接口的开发者 只需要面对6 0 m 的8 位数据或3 0 m 的1 6 位数据,并且可以通过u t m i 接口中的一些状态控制 信号来获得总线状态和控制u t m 的工作方式,来满足u s b 协议的要求。 1 4 1 通用设计系统框图 使用u t i v l 来完成u s l 3 设计的通用系统框图如图1 1 6 所示。 太原理工大学硕士研究生学位论文 1 4 2u t m 功能 图1 - 1 6 通用系统框图 f i g u r c l 1 6c u r r e n c ys y s t e md i a g r a m u t m 用于消除u s b 开发者高速u s b 2 0 逻辑设计的困难,处理u s b 的底层协议和信令, 完成了u s b 协议电气上的很多基本的处理n 耵。u t m 的一些关键特性有:向逻辑电路提供 标准的u t m i 接口;支持4 8 0 m b s ( 高速) 1 2 枷,s ( 全速) 模式、仅有1 2 m b p s ( 全速) 模式、 仅有1 5 m b p s ( 低速) 模式;使用6 0 m8 位或3 0 m1 6 位并行接口传输u s b 2 0 数据; s y l 叮叩o p 的产生和检测;从u s b 的串行流中进行数据和时钟的恢复;比特填充和比特 解填充:比特填充错误的检测;具有保持寄存器用于暂存要发送和接收的数据:检测和 发送恢复信号;检测复位和挂起功能;在全速和高速之间切换端接和收发器电平的特点 【1 6 】 o 1 5f p g a 的结构及应用 1 5 1f p g a 的结构 现场可编程门阵列( 】f p g a ) 器件是x i l i n x 公司1 9 8 5 年首家推出的旧,它是一种新型 的高密度p l d 。f p g a 的内部由许多独立的可编程逻辑模块( c l b ) 组成,逻辑块之间可 以灵活地相互连接。本课题选用的器件属于x i l i n x 公司的s p a r t a n 3 系列,型号为 x c 3 s 1 0 0 0 。该系列f p g a 主要由以下几个模块组成:可编程逻辑块c l b ( c o n f i g u r a b l e l o g i cb l o c k s ) 、输入输出模块i o b ( i ob l o c k s ) 、块r a m ( b l o c kr a m ) 、乘法器( m u l t i p l i e r b l o c l 【s ) 、数字时钟管理( d i g i t a lc l o c km a n a g e rb l o c k s ) 1 1 8 1 。 其基本结构如图1 1 7 所示。 1 4 太原理工大学硕士研究生学位论文 图l 一1 1s p a r t a n - 3 系列结构 f i g u r e l - 1 7s p a r t a n 3 ef a m i l ya r c h i t e c t u r e ( 1 ) 口- i 编程逻辑块c l b c l b 是f p g a 的主要组成部分,是实现逻辑功能的基本单元。s p a r t a n 3 e 系列的 c l b 在f p g a 中的位置如图1 1 8 所示。 ( 2 ) 输入输出模块i o b i o b 提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。其结 构如图1 1 9 所示,主要由输入触发器、输入缓冲器、输出触发锁存器和输出缓冲器 组成。每个i o b 控制一个引脚,可被配置为输入、输出或双向i o 功能。 太原理工大学硕士研究生学位论文 园圃 回圆 圃图| 田 f 匝衄憋皿 , 、 c s 晒 图卜1 8c l b 4 立- 置 f i g u r e l - 1 8c l bl o c a t i o n ( 3 ) 块r a m x c 3 s 1 0 0 0 包含2 0 个块r a m ,每个大小为1 8 k b i t ,可被配置为单口r a m 或双口 洲。其双端口定义如图1 - 2 0 所示。 ( 4 ) 乘法器 乘法器主要用来执行两个整型数的乘法运算,也可以执行一些简单的应用,如简单 的的数据存储和移位。其结构如图1 2 1 所示。 1 6 圃圊一围圈固旧围圆 一一一一一一一一一一一一_ 一一一一一一一一一一 图1 - 1 91 0 b 简图 f i g u r e l 1 9s i m p l i f i e di o bd i a g r a m 1 7 a r e g 图1 - 2 0 双端口决r a m 端口 f i g u r e l - 2 0d u a l - p o r tb l o c kr a m p r i m i t i v e s 图1 - 2 1 专用乘法器端口原理及功能 f i g u r e l - 2 1p r i n c i p l ep o r t sa n df u n c t i o n so fd e d i c a t e dm u l t i p l i e r b l o c k s 太原理工大学硕士研究生学位论文 x c 3 s 1 0 0 0 可以对时钟频率、相移、时钟偏移等进行灵活全面的控制。他包括数字 锁相环( d l l ) 、相移器、时钟延迟部件等。其结构如图所示。 d c m p s e n p h a s e p s d o n e p s c l k s h i f t e l j c l k ic i 。k 0 i n p u td e l a yo u t p u t r c l k 9 0 。 c l k f b s t a g e i r s t e p ss t a g ec l k 2 x 二 i 。 c l k f s 。 i ,id f $ r c l l q 、s 1 8 0 、 i r d l l 。 r s t 、 l o c k e d r s t a t u sl o g i c s t a i r ij s

温馨提示

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

评论

0/150

提交评论