(电路与系统专业论文)基于单片机的USB主从机的设计与实现[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于单片机的USB主从机的设计与实现[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于单片机的USB主从机的设计与实现[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于单片机的USB主从机的设计与实现[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于单片机的USB主从机的设计与实现[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(电路与系统专业论文)基于单片机的USB主从机的设计与实现[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着总线和接口技术的发展,在工业场合如何更加可靠、快速、便捷地进行 数据传输成为该领域通信的研究重点之一。而u s b 技术以其高速、可靠、通用性 强等一系列特点在过去的十多年时间里发展迅猛,而u s bo t g 技术的诞生,使 得两u s b 设备在没有p c 参与的情况下进行数据传输成为可能。 本文通过搭建以1 6 位微处理器m s p 4 3 0 f 1 4 9 为核心控制芯片、i s p l 3 6 2 为 u s b 接口芯片的硬件平台,分别实现了u s b 部分主机和从机功能,使之能进行 u s b 数据的存储与交换。本文完成以下工作: 首先,认真研究u s b 协议,深入理解u s b 通信的基本概念和传输方式等内 容。仔细分析u s bm a s ss t o r a g e 类协议,并讨论了采用b u l k - o n l y 传输实现 m a s ss t o r a g e 类协议的方法,并对s c s i 指令集等进行了深入的剖析。 其次,根据要求,设计出由控制、接口、数据存储、过流保护与供电切换电 路等硬件模块组成的系统,在a l t i u m2 0 0 4 软件上完成原理图的设计和p c b 图的布局、布线,并完成硬件调试工作。 再次,在已构建的硬件平台上,针对i s p l 3 6 2u s b 接口芯片的主从机功能, 分别设计了u s b 主机和从机的固件程序。利用i a rw o r k b e n c h 、b u s h o u n d 等软 件进行固件程序的调试,最终u s b 主机可对u 盘进行检测、识别与配置;u s b 设备实现了u s b 设备的基本功能,能够被w i n d o w sx p 操作系统识别,与p c 机 之间实现数据的批量传输。 最后,用d r i v e r w o r k s 软件包的d r i v e rw i z a r d 生成驱动程序框架,并利用 w i n d o w sd d k 和v c + + 等软件进行驱动程序的编译,最终生成基于w i n d o w s 操 作系统的w d m 型u s b 设备驱动程序。 通过对u s b 通信协议的研究,本人成功地构建了以m s p 4 3 0 f 1 4 9 和i s p l 3 6 2 为核心的硬件试验平台,并在此平台上进行u s b 主机、从机通信试验。经测试表 明,p c 机能检测、识别、读写u s b 设备,其读取与写入速度分别为5 6 0 k b s 和 3 1 2 玳。而主机能识别、配置接入的u 盘。 关键词:u s b 主机、u s b 从机、m s i 4 3 0 f 1 4 9 、i s p l 3 6 2 、b u r - o n l y 传输 a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fb u sa n di n t e r f a c et e c h n o l o g y , h o wt ot r a n s f e rd a t ai na m o r er e l i a b l e ,f a s t e ra n dm o r ec o n v e n i e n tw a yi nt h ei n d u s t r i a le n v i r o n m e n th a s b e c o m eo n eo ft h ek e yr e s e a r c h et o p i c si nt h i sf i e l d t h eu s bt e c h n o l o g y , w i t hi t s o u t s t a n d i n gf e a t u r e ss u c ha sh i g hs p e e d , r e l i a b i l i t ya n du n i v e r s a l i t yh a se n j o y e dar a p i d d w e l o p m c o ti nt h el a s td e c a d e 耶1 eb i r t ho fu s b o t g t e c h n o l o g ym a d ei tp o s s i b l ef o r t w ou s bd e v i c e st oc o m m u n i c a t ew i t he a c ho t h e rw h e nt h ep ci sn o ta v a i l a b l e i nt h i s d i s s e r t a t i o n , a h a r d w a r e p l a t f o r mc o n s i s t i n g o fa1 6 一b i tm c u m s p 4 3 0 f 1 4 9a st h ec o r ec o n t r o l l i n gc h i p ,a n dau s bi n t e r f a c ec h i po fi s p l 3 6 2h a s b e e nc o n s t r u c t e d o nt h ea b o v ep l a t f o r m t h ep a r tu s bh e s tf u n c t i o na sw e l la st h e d e v i c ef u n c t i o nw a sr e a l i z e d b e s i d e s ,t h es t o r a g ea n de x c h a n g eo fu s bd a t ac o u l db e i m p l e m e n t e d n ef o l l o w i n gw o r kw a sf i n i s h e di nt h i sd i s s e r t a t i o n : f i r s t ,t h eu s b p r o t o c o la n d t h eu s bm a s ss t o r a g ed a s sp r o t o c o l sw e r es e r i o u s l y s t u d i e d a st ot h eu s bm a s ss t o r a g ec l a s sp r o t o c o l ,t h er e a l i z a t i o nm e t h o dt h r o u g h b u l k - o n l yt r a n s f c rt y p ew a sd i s c u s s e d , w h i l et h er e f e r r e ds c s ii n s t r u c t i o n sw e r e t h o r o u g h l ya n a l y z e d s e c o n d ,as y s t e mc o n s i s t i n go ft h ec o n t r o li n t e r f a c e ,d a t as t o r a g e ,o v e r c u r r c o t p r o t e c t i o na n dp o w e rs w i t c hm o d u l e sw a sc o n s t r u c t e d a n dt h es y s t e ms c h e m a t i cc h a r t a n dt h el a y o u to fp c bd e s i g nw e r ef i n i s h e di nv i l t u eo fa l t i u m2 0 0 4s o f t w a r e b e s i d e st h eh a r d w a r et e s tw a sa l s of i n i s h e d , t h i r d , o nt h ep l a t f o r m , t h eh o s tf l r i n w a r ea n dd e v i c e 盘u l w a r ew e i ed e s i g n e d r e s p e c t i v e l y , t a r g e t i n ga tr e a l i z i n gt h eh o s t d e v i c ef u n c t i o n so fi s p l 3 6 2 t h ef o r m e r c o u l dd e t e c t , i d e n t i f ya n da l l o c a t es o m eud i s k s ;w h i l et h el a t t e rc o u l dd e t e c t , i d e n t i f y a n da l l o c a t et h ea t t a c h e dud i s k , w h i l et h el a t t e rr e a l i z e dt h eb a s i cf u n c t i o n , s u c ha s b e i n gi d e n t i f i e db yt h ew i n d o w s o sa n dt r a n s f e r r i n gd a t ai nb u l kw a yw i t hp c f i n a l l y , w i t ht h eh e l po fd r i v e r w o r k ss o f t w a r ek i t , t h ed r i v e rp r o g r a mf r a m ew a s c o n s t r u c t e d 1 1 1 ew d m t y p ed r i v e ro nw i n d o w so sw a sf i n a l l yc o n s t r u c t e da f t e r c o m p i l i n g t h ed r i v e r i nt h ev c + + a n d 眦d d ke n v i r o n m e n t o nt h et h e o r e t i c a lr e s e a r c ho nu s bc o m m u n i c a t i o np r o t o c o lah a r d w a r e p l a t f o r mw i t hc h i p so fm s p 4 3 0 f 1 4 9a n di s p l 3 6 2a st h eg o r e , t h eh o s u d e v i c eu s b c o m m u n i c a t i o nc o u l db ec a r r i e do u t t h ee x p e r i m e n tr e s u l t ss h o w e dt h a t , p cc o u l d d e t e c t ,i d e n t i f y , a n dc o m m u n i c a t ew i t ht h eu s bd e v i c e ,w i t had a t a - r e a d i n gr a t eo f 5 6 0 k b sa n dad a t a - w r i t i n gr a t eo f3 1 2 k b sr e s p e c t i v e l y ;a n dt h eh o s tc o u l dd e t e c t , i d e n t i f y , a n da l l o c a t et h ei n s e r t e du d i s k k e yw o r d s :u s bh o s t ,u s bd e v i c e ,m s p 4 3 0 f 1 4 9 ,i s p l 3 6 2 , b u l k - o n l yt r a n s f e r m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 签名:盗:驾! 盎日期:2 。矿年f 月岛日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:望逃导师签名:埤 日期:仇7 年r 月哆日 第一章引言 1 1u s b 总线概述 第一童引言 通用串行总线( u n i v e r s a ls e r i a lb u s ,u s b ) 是一种快速、灵活的总线。具有 以下特点f 1 1 1 2 1 1 3 1 1 4 1 :1 1 适用范围广泛,适用于诸如数码相机、高速数据采集等多种 设备;支持热拔插,且此过程由系统自动完成,无需用户干预;3 ) 采用菊花链 式的星型总线结构,支持多达1 2 7 个外设同时连接;4 ) 1 5 m b p s 、1 2 m b p s 和 4 8 0 m b p s 的3 种速度模式,满足了不同外设对速度的要求。 通常一个u s b 系统由【4 】:u s b 的互联, u s b 的设备, u s b 的主机等 三部分组成。 一个u s b 系统只能有1 个主机,主计算机系统的u s b 接口可视为主机控制 器。主机控制器又可是硬件、固件或者软件的组合。主机具有以下功能h i : 检测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 0 多年的时间里发展 迅猛,应用日益广泛。 1 。2u s bo t g ( o n - t h e g o ) 简介 随着u s b 技术的发展,u s b i f 于2 0 0 1 年底发布了u s b 2 0 的补充规范- u s b o t g ,更多服从该协议的u s b 设备可以在没有p c 的情况下,实现不同设备或者 电子科技大学硕士学位论文 移动设备间的互连和数据交换。 o t g 的最大特点在于,可实现o t g 设备之间点对点的通信 3 1 1 5 1 。进行点对点 通信的双方仍跟一般u s b 通信一样,有一方担任主机的角色,一方担任从机设备 的角色。具有o t g 功能的设备,可以根据接入设备的特性和数据传输的具体情 况而自动切换主机或从机的身份,完成数据的传输。因此,o t g 设备也可称为双 角设备。 图1 - 1 典型u s b 主从设备连接图 以具有o t g 功能的p d a 为例( 见图1 1 ) ,当p d a 被设为主机时,它可将 数据下行至与之相连的其他u s b 设备,完成数据传输;当p d a 被设为设备时, 可将数据上行至与之相连的主机上;当它与其他o t g 设备相连时,两者通过会 话来决定谁当主机,谁当从机,从而进行数据的交换;而主从机的角色不是一成 不变的,两者可根据具体情况在通信过程中转换角色,而进行数据的传输,大大 增加了系统的灵活性阁。 1 3 论文主要研究内容与论文结构 课题的主要研究内容有: 首先,本人深入学习了u s b 通信协议的基本概念和u s bm a s ss t o r a g e 类协 议,尤其是其下的批量传输规范和s c s i 指令集。其次,在学习上述理论的基础 上,设计系统实现方案。利用a l t i u m 2 0 0 4 软件画出系统硬件原理图和p c b 图, 完成硬件设计、调试任务。再次,借助i a rw o r k b e n c h 、b u s h o u n d 等软件进行系 2 第一章引言 统软件调试与验证工作,并利用d r i v e r w o r k s 、v c + + 和w i n d o w sd d k 设计了基 于w i n d o w sx p 操作系统的w d m 型u s b 设备驱动程序。最后,根据测试结果对 课题设计进行分析与总结,并针对不足提出改进方法。 论文结构如下: 第一章,引言。介绍课题背景、发展现状、课题意义、应用前景等。 第二章,简要介绍u s b 协议。主要介绍u s b 通信的基本概念、传输类型、 总线枚举等内容。 第三章,简要介绍u s bm a s ss t o r a g e 类协议。本章着重介绍了批量传输的传 输流程和s c s i 指令集等内容,为系统软件设计打好理论基础。 第四章,根据系统设计要求,提出设计方案。本章首先介绍了系统中所采用 的几款芯片的特点和相应的管脚功能,随后按照系统设计的各个功能模块,逐一 介绍各功能模块的设计与实现方案。 第五章,在已搭建的硬件平台上,设计分别针对主机和从机软件。本章介绍 了主、从机固件的设计流程。此外,鉴于n a n df l a s h 读写操作的特殊性,本 章还专门介绍了对n a n df l a s h 的读写操作。最后,本章还介绍了使用 d r i v e r w o r k s 软件生成w d m 型u s b 驱动程序的设计流程。 第六章,在已经构建的软、硬件平台上,对系统进行系统测试,并针对测试 结果进行调试。 第七章,总结论文工作。对设计的不足之处提出改进方案,并提出下一步的 研究方向。 3 电子科技大学硕士学位论文 第二章u s b 协议简介 本章首先介绍包括u s b 事务处理、u s b 数据传输类型等在内u s b 数据通信 的基本概念,随后介绍了总线枚举实现的过程,以及分别针对主机、设备实现主、 从机会话的设备描述符和设备请求命令。为下文介绍u s b 设备类协议作了铺垫。 2 1u $ b 数据流模型 任何u s b 通信都是架构在主机的缓冲区与接收设备的端点之上的,数据在这 两者之间的管道之间传输,其数据流模型见图2 - 1 。本节将依次介绍端点、管道、 u s b 传输类型等概念。 2 1 1 端点( e n d p o i n t ) 图2 - 1u s b 数据流模型 端点缓冲 通信流 每个逻辑设备都可视为一系列端点的集合,端点标志着主机与设备通信的结 束点1 4 1 。每个端点都有一个序号,序号值的范围在o 到1 4 之间。其中,0 号端点 专用于控制传输,不可为主机配置。其他非零端点需在主机配置后,方可访问。 端点根据数据流动的方向又可分为玳端点和o u t 端点,因此,o 号端点又 分为控制i n 和控制o u t 两类。其他端点的属性,如方向、缓冲大小等的设置则 在相应的寄存器中进行。 4 第二章u s b 协议简介 2 1 2 管道( p i p e ) 主机与设备端点之间的连接即称管道1 7 1 。管道代表了u s b 系统在主机软件与 设备端点之间移动数据的能力旧。u s b 有2 种不同且并不互斥的管道通信格式1 7 1 : 流管道( s t r e a mp i p e ) 在流管道内传输的数据不具有u s b 定义的数据格 式。消息管道允许双向信息流,但大多数通信流仍然是单向的。 消息管道( m e s s a g ep i p e ) 用于传输具有某种u s b 定义的格式的数据流。 需要指出的是,缺省控制管道是一个消息管道,每个消息管道在一个时间段 内,只能为一个请求服务,多个客户软件可以通过缺省的控制管道发出请求,但 这些请求仍是按照先进先出的顺序发向设备。设备则在数据阶段和状态阶段控制 信息流。 2 1 3 包( p a c k ) “包”是u s b 通信的最基本数据单元。每一个包,基本上包含了一个完整的 u s b 信息。按照包在整个u s b 数据传输种的作用不同,包可以分为3 类:令牌 包、数据包和握手包1 3 1 4 1 。信息包类型不同,其所包含的字段也不同,但第一个 域都是同步域,且它在总线上传输时,总是以s o p 信号开始、以e o p 信号结束, 如表2 - 1 。 表2 1 信息包的组成 i 同步域 l 具有特定格式的域i e o p l 令牌包定义了数据传输的类型,数据包中包含需要传输的数据,握手包则用 于指明了数据接收的状态。 令牌包 在u s b 系统中,只有主机才能发出令牌包。令牌包定义了数据传输的类型, 是事务处理的第一个阶段。u s b 包含7 种令牌包:i n ,o u t ,s e t u p ,s o f ,p i l e , s p l i t 和p i n g ,其中p r e 、s p l i t 和p i n g 属于专用令牌【3 1 1 4 1 。 数据包 数据包由1 个p i d 域、包含0 个或多个数据字节的数据域、以及1 个c r c 域组成1 3 1 1 4 1 。因p i d 的不同,数据包分为d a t a 0 和d a t a l 两种。数据c r c 只对 包的数据域进行计算,而不需对p i d 域进行校验。 电子科技大学硕士学位论文 低速设备允许的最大数据有效负载是8 字节,即对低速设备而言,其数据包 的最大长度为8 字节。全速设备的最大数据有效负载为1 0 2 3 字节,高速设备的为 1 0 2 4 字节 4 1 。当要传输的数据长度大于相应端点的容量时,待传数据将会被分为 若干个包,分批发送。同时数据包的类型也将在d a t a 0 与d a t a l 之间交替变化。 从接收角度来看,d a t a 0 与d a t a l 的交替也成为数据交换成功与否的检测标准 之一。 握手包 握手包用于报告数据处理的状态,它仅由一个p i d 域组成【4 】网。它用于报告 事务处理的状态,以反映数据接收成功与否、指定端点是否被停止、是否能响应 命令等情况。 u s b 定义了5 种类型的握手包:a c k 、n a k 、s t a l l 、n y e t 和e r r ,其 中e r r 属于专用握手包1 3 】【4 】。鉴于本设计仅涉及全速设备,故在此只介绍a c k 、 n a k 、s t a ii ,包等。 a c k 包表示接收的数据包在数据段没有位填充或c r c 错误,数据p i d 也被正确接收 3 1 1 4 。a c k 握手包只在数据已经被发送并等待接收握手的处理操作 中使用。主机可以对跗处理返回a c k 握手,功能设备可对o u t 、s e ,1 1 j p 处理 返回a c k 握手。 n a k 包表示功能设备不能从主机接收数据,或者功能设备没有数据发送 到主机1 3 】【4 1 。功能设备只有在矾处理的数据阶段或者o u t 处理的握手阶段返回 n a k 。主机不会发送n a k 握手。n a k 用于实现流控制,它能指出功能设备展示 不能发送或者接收数据,但最终可以发送或者接收数据且无需主机干涉。 s t a l l 包说明功能设备不能发送或者接收数据,或不支持控制管道的请 求【3 】【4 】。它在功能设备响应玳令牌或者o u t 令牌的数据阶段后返回。 2 1 4 事务( t r a n s a c t i o n ) 事务处理是u s b 总线上数据传输的基本单位,主机与u s b 设备之间的一次通 信可能要用到1 个或者多个事务。事务处理由3 个阶段组成:令牌阶段、数据阶 段和握手阶段。事务又分为i n 事务、o u t 事务、s e t u p 事务、p i n g 事务、s o f 事 务、s p l i t 事务和p r e 事务。针对本课题,选取最为重要的i n 、o u t 、s e t u p 、s o f 等4 个事务来介绍【1 】【3 】【6 】川。 1i n 事务 6 第二章u s b 协议简介 m 事务用于完成u s b 设备到主机的数据传输。其内容可由图2 - 2 表示。正 常情况下,u s b 设备将向主机发出数据包。u s b 设备不能成功地响应主机发出的 玳令牌包时。u s b 设备的响应有:当收到的矾令牌包已损坏,则u s b 设备不应 答;如u s b 设备暂时不能向主机发送数据,则返回n a k 握手包:当u s b 设备 的这个端点被停止了,则向主机返回s t a l l 握手包。 图2 2 成功传输的i n 事务处理 对主机而言,正常时应接收来自u s b 设备的数据,并以a c k 握手。但当主 机暂不能接收数据或检测到数据包已损坏,则会丢弃数据包,不做任何响应。 2o u t 事务 o u t 事务用于完成主机到u s b 设备的数据传输。正常情况下,u s b 设备成 功接收来自主机的数据,并以a c k 握手返回。当u s b 设备收到已损坏的o u t 令牌包和数据包,则设备将不做答。当u s b 设备的该端点已被停用,它将会向主 机返回s t a l l 握手包。当u s b 设备和该数据包的数据触发位不匹配,则u s b 设 备则会丢弃数据,返回a c k 握手1 4 】。 3 s e l l p 事务 s e t u p 事务是一种特殊的事务,它用于定义主机到u s b 设备的数据传输。 由于它的数据格式较为特殊,只用于在u s b 控制传输的建立阶段。当u s b 设备 接收到的s e t u p 令牌包有误,u s b 设备则忽略该信息包,且不做任何响应。一 旦u s b 设备接收了s e t u p 令牌包,则一定要接受后面的数据包并向主机返回 a c k 包握手。与i n 、o u t 事务不同的是,u s b 设备不能对s e t u p 事务处理返 回n a k 或者s 1 a i j 等握手包【4 】。 4s o f 事务 s o f 事务表示u s b 帧,小帧的开始,它仅包含主机或者集线器事务馥译器发 出的s o f 令牌包,而不需u s b 设备返回任何握手【4 l 。 对低速,全速传输而言,帧的长度为l m s ,即每l m s 产生一次s o f 令牌包。 对高速传输而言,帧长度为1 2 5i ts ,s o f 令牌包每7 个小帧产生一次。 7 电子科技大学硕士学位论文 2 2 数据传输类型 u s b 事务处理是主机与u s b 设备数据传输的基本单位,由一系列具有特定 格式的信息包组成。事务处理由3 个阶段组成,分别是:令牌阶段、数据阶段和 握手阶段。不是所有事务都要经历全部3 个阶段,在某些情况下,可只经历其中 的一个阶段或者两个阶段。但所有的事务处理都是以令牌阶段开始。 u s b 定义了4 种传输类型,即控制传输、中断传输、批量传输和同步传输。 表2 - 2 是这4 种数据传输类型在端点类型、传输方向、传输数据的特点等方面的 比较。 表2 - 2u s b 4 种传输类型的比较 传输类型端点类型传输方向所传输数据的特点 控制传输控制端点i n 或o u t少量、无传输时间要求、传输有保证 批量传输批量端点i n 或o u t大量、无传输时间和速率要求 同步传输同步端点或o u t大量、速率恒定、周期性 中断传输中断端点矾或o u t少量或中量、周期性 对f l a s h 等存储介质进行读写操作,一般没有时问和速率的要求,一般都 采用批量传输方式进行传输。 2 2 1 控制传输( c o n t r o lt r a n s f e r ) 控制传输作为最重要同时也是最为复杂的传输类型,是所有u s b 设备都必须 支持的传输类型。待u s b 设备连接到主机上之后,主机借助控制传输来与设备交 换信息、配置设备、读取设备描述符等。 控制传输由初始设置、可选数据和状态信息三个阶段组成。其中,初始设置 阶段中,主机向指定的u s b 设备发送s e t u p 令牌包。可选数据阶段中,主机则 发送具有u s b 定义格式的数据包。在最后的握手阶段,u s b 设备则接收主机发 送给它的令牌包和数据包,并向主机返回a c k 握手包。一旦s e t u p 令牌包出错, u s b 设备就回忽略该信息包,也不会对返回任何信息。丽当设备接收了来自主机 的s e t u p 包时,就一定要接收后面的数据包,同时必需向主机返回a c k 握手包。 如图2 - 3 所示,并不是所有的控制传输都必须经历这三个阶段的,其中的数 据阶段是可选的。 8 第二章u s b 协议简介 事控 务制 。 与 控 制 芝 事 务 的数 控据 制阶 传段 输 际而硐 i一 d a t a 0 厂型耀豳l 圆圆一一i :卫 d a t a ld a t a 0d a t a 0 1 回圈- :圃 图2 - 3 控制传输格式 【1 】初始设置阶段 s e t u p 事务的初始设置阶段知识发送一个s e t u p 令牌包。 s e t u p 的数据阶段只是发送d a t a 0 ,它用于告诉设备来自主机的控制请求, 这些请求包括用以完成u s b 设备配置操作的1 1 种标准u s b 设备请求,以及用以 进行该设备专用操作的设备类或供应商自定义控制请求。 d a t a 0 包的长度是固定的,为8 字节,并有确定的格式。这8 个字节分配给 5 种命令信息,如b m r e q u e s t t y p e 、b r e q u e s t 、w v a l u e 、w l n d e x 和w l e n g t h 。这些 命令有的是要向设备写数据的,如配置设备地址;有的则是需从设备读取数据, 如读取配置信息;有的则不需要经历读写操作。这些数据都是在随后的“可选数 据阶段”中交换的。 当u s b 设备不能完成控制请求时,在控制事务的数据返回阶段或者状态阶段 将返回s t a l l 握手包,即对初始设置阶段后的所有i n o u t 事务处理都返回 s t a l l ,握手包。而该错误状态会在其接收到新的s e t u p 令牌包时自动恢复。但 如果出现某种错误而导致u s b 设备不能使用缺省控制管道与主机进行通信时,该 设备必须通过被复位才能清除错误状态。 9 筝挈 j,_l_l 蕈 电子科技大学硕士学位论文 1 。_ j 胞囱 卜弋 孢占 出错 主机 设备 图2 4s f r u p 事务处理格式 【2 】可选数据阶段 顾名思义,这一步骤是可选的。当有数据传输时,该数据阶段将包括1 个或 者多个i n o u t 事务。这些事务的作用就是传输u s b 定义格式的数据,数据的传 输方向和长度也都在初始设置阶段确定。不同的请求,其数据传输的方向和长度 亦不同。当数据阶段发送或接收的数据量大于建立阶段所规定的数据量,则返回 s t a l l 握手包。在控制事务的数据阶段种返回s t a l l 握手包,则该控制事务将 不经历状态阶段,见图2 5 。 令牌阶段 数据阶段 状态阶段 匿蚕主机 设备 图2 - 5 控制传输的可选数据阶段 1 0 第二章u s b 协议简介 与初始设置阶段不同,由于在i n o u t 事务阶段已经包含了一个d a t a 0 数 据包,因此,在数据阶段,其数据包都是以d a t a l 开始,与d a t a 0 交替触发。 由图2 - 5 可见,矾事务与o u t 事务相比,要更为复杂。对事务而言,当设备 尚未处理完上一个事务时,而主机向设备发送一个m 事务令牌,则设备将会返 回n a k ,总线空闲,而主机将不断重试该事务;当相应的设备端点被禁止,则设 备将返回s t a l l 包,总线空闲;否则设备就会按照总线的要求发送数据【4 】。 在状态阶段,o u t 事务相对于m 事务复杂。对o u t 事务而言,当设备接 收数据无误,但设备正处于“繁忙”时,主机将不断重发,而设备将返回n a k , 总线空闲;如果设备端点被禁止,则设备返回s t a l l 包;如果发送的数据无误, 且被设备成功接收,设备将返回a c k ,并通知主机可发送新的数据。 此外,如果控制i n o u t 传输的数据量大于控制端点所支持的最大数据包长 度,则u s b 主机将会把该传输分成多个i n o u t 事务。除最后一次传输外,其他 所有i n o u t 事务数据包中数据阶段的长度都等于该控制端点的最大数据包长 度,最后一个i n o u t 事务将剩余的数据传完。当待传数据为端点最大数据包长 度的整数倍时,其最后一个数据包将为一个长度为o 的数据包。这点对于下文编 写控制传输的读写程序至为重要。 【3 1 状态阶段 露。i 勇主机发出厂 设备发出 令牌阶段 数据阶段 状态阶段 图2 - 6 控制传输的状态阶段 状态阶段,主机的读操作则是对应于o u t 事务,而写操作对应于玳事务。 这点与中断传输、批量传输和控制传输的“可选数据阶段”的读写概念不同。此 外,它的数据阶段也都是好为d a t a l 包的o 长度数据。具体见图2 - 6 。 1 1 电子科技大学硕士学位论文 2 2 2 批量传输( b u l kt r a n s f e r ) 批量传输支持在不确定时间进行的大量的数据通信,在移动存储设备中使用 广泛。用于批量传输的端点决定其接收或发送的最大数据净负荷区大小。u s b 规 定最大的批量传输净负荷区的长度为8 、1 6 、3 2 或6 4 字节。所有主机控制器都必 须支持这几种字节长度作为最大长度,而对于超过此范围的数据长度可以不支持。 图2 7 为批量传输格式。 总线空闲 图2 - 7 批量传输格式 以b u l k i n 传输为例,当主机做好准备接收数据时,就会向u s b 设备发送 玳令牌包,并根据u s b 设备返回的数据来握手。当u s b 设备在接收到令牌包后, 发现此包损坏,将不应答。若令牌包有效,则u s b 设备将返回d a t a x 数据包、 n a k 或者s t a l l 握手包。主机接收到有效的d a t a x 数据包,就会向u s b 设备 返回a c k 包;相反,如果接收的数据有误,数据包将被丢弃,主机不做应答, 并重试该矾事务,但最多3 次。 2 2 3 中断传输( i n t e r r u p tt r a n s f e r ) 中断传输适用于传输数据量少、但服务周期固定的数据,常用来传输鼠标、 键盘操作的数据。同批量传输类似,中断传输包括m 和o u t 事务,并可分为令 牌、数据和握手三个阶段,但不一定要经历所有3 个阶段。其传输格式见图2 - 8 。 第二章u s b 协议简介 令牌 握手 图2 - 8 中断传输格式 中断传输的数据不具有u s b 定义的格式。因此在总线上进行中断传输时,必 须使用数据触发机制来保证数据包收发同步,从而使数据能被正确接收。 2 2 4 同步传输( s y n c h r o n o u st r a n s f e r ) 对于大量的、速率恒定且对服务周期有要求的数据,适合采用同步传输。通 常,对于音视频设备,如c d 机、m p 3 等都采用同步传输的方式进行数据的传输 【4 】 6 i 7 1 。在同步传输中,数据的及时收发相对其正确性更为重要,因此,同步传输 只包含令牌和数据2 阶段,省去了握手这一步。鉴于u s b 总线传输的误码率很低, 即使偶尔出现错误情况,也都是在可以接受的范围内。同步传输格式见图2 - 9 。 令牌 数据 图2 9 同步传输格式 主机 电子科技大学硕士学位论文 2 3u s b 设备总线枚举 主机要识别u s b 设备之前,需要经历一系列的设备状态,即设备暂态,进而 才能进行u s b 设备的总线枚举。 2 3 1 设备暂态 图2 1 0u s b 设备状态转移图 u s b 设备的暂态有【4 】: 接入态1 i s b 设备接入主机的物理行为。主机通过检测信号线上的电平变 化即可发现有设备接入。 供电态在设备未被配置前,设备的电源仍是默认值。设备进入配置阶段 之后,供电态会暂时停止供电,以实现设备的复位及重新接入。待设备被配置后, 进入正常的供电态,即主机按照设备要求的最大电流值供电。 缺省态一设备在配置前,通过缺省地址0 与主机通信时的状态。 1 4 第二章u s b 协议简介 地址态一设备历经了配置、复位后,按照主机分配的地址通信的状态。 配置态一主机通过各种u s b 请求命令获取设备信息,并改变或设置设备的 某些信息,从而完成对设备的配置此状态即为配置态。 挂起态设备进入挂起状态。 除挂起态外,设备必须历经其他5 个状态,方可被成功配置。而这6 个暂态 之间的关系并非彼此孤立,而是相互关联的。其关系可见图2 1 0 。 2 3 2u s b 设备的总线枚举 u s b 通过使用总线列举操作来管理u s b 设备的连接与断开。总线枚举的过程 有2 部分组成,一方面是主机和u s b 设备所连接的集线器进行通信,然后主机才 开始与这个新连接的u s b 设备进行数据传输。总线枚举的具体过程如下 4 1 1 6 1 1 7 1 1 8 : 设备连接。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 m s ,设备驱动程序就 进入挂起状态。此时,设备的耗电流不超过5 0 0l la 。而设备的地址及配置等信息 都不会因此而发生改变,而是保存在设备里。 完成以上8 步之后,u s b 设备即可实现即插即用。其中,步骤8 是可选的。 即设备不一定都要进入挂起状态。 2 3 3 标准u s b 描述符 如前文所述,任何u s b 设备都可视为是配置、接口和端点的集合。在实际应 电子科技大学硕士学位论文 用上,主机通过发送g e t d e s e r i p t o r 请求来获取设备描述符,从而了解设备的具体 信息,以便为两者通信做好准备。标准u s b 描述符分几大类,见表2 3 。 表2 - 3 标准u s b 描述符 描述符的类型值描述符的类型值 设备描述符 l 端点描述符 5 配置描述符 2 设备限定描述符 6 字符串描述符 3 其他速率配置描述符 7 接口描述符 4 其中,设备描述符主要向主机提供u s b 设备的一般信息,并指出其所含配置 的个数。配置描述符、接口描述符和端点描述符则根据设备的工作情况,返回设 备的相关信息。只是一个u s b 设备只能有一个设备描述符,但可以同时有多个配 置描述符,接口描述符和端点描述符。 2 4 本章小结 本章主要介绍了u s b 通信的基本概念,以及u s b 设备总线枚举的实现过程, 为下文学习m a s ss t o r a g e 类协议做了准备。 第三章m a s ss t o r a g e 类协议简介 第三章m a s ss t o r a g e 类协议简介 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 ) 包括:c b i 传输 ( 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 y 传输、u f i 命令规范、可引导性( b o o t a b i l i t y ) 规范和兼容性测试规范等五类吼 其中c b i 和b u l k o n l y 传输定义了在移动存储设备和主机之间数据,命令,状态 在u s b 总线上传输的方法。c b i 则使用c o n t r o l b u l k i n t e r r u p t 三种类型的端点进 行数据命令状态的传递。其基本流程为:发送c b i 命令传输标志一发送s c s i 命令一读取0 字节数据一传输数据( 可选) 一获取状态信息。 b u l k o n l y 传输规范仅使用b u l k 端点传输数据命令状态。其基本流程与标 准请求的类似,只是控制命令、数据和状态等信息都采用批量传输的方式传送。 根据b u l ko n l y 协议,控制命令和状态信息都需要经过打包处理,s c s i 命令 打包后即成c b w ( c o m m a n db l o c kw r a p p e r ) ,而状态信息打包后则为 c s w ( c o m m a n ds t a t u sw r a p p e r ) 。那么b u l ko n l y 传输流程就可认为:发送c b w 命令一传输数据( 可选) 一发送c s w 命令。 b o o t a b m i t y 规范和u r 命令规范定义了存储介质的操作命令u f i 命令规范 则主要针对u s b 移动存储设备。 3 _ 1b u l k - o n l y 传输流程 图3 1

温馨提示

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

评论

0/150

提交评论