




已阅读5页,还剩61页未读, 继续免费阅读
(测试计量技术及仪器专业论文)基于arm的嵌入式usb主机系统设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙 江 大 学 硕 论 文y6 8 9 2 0 4 摘要 本文详细介绍了一种基于 a r m内核处理器开发的u s b主机系统。该主机系 统实现了 u s b核心驱动程序、主机控制器驱动程序以及用户程序,支持 m a s s s t o r a g e 设各类协议,并在系统中建立了精简的f a t 文件系统,能够用此系统来 读取 f l a s h闪盘中的文件数据,并通过 r s - 2 3 2 接口送入民 显示。 传统意义上的 u s b开发仅仅是对u s b设各的开发,比如设计一个 f l a s h闪 盘。 但在 u s b 体系结构中, u s b 设备无法发起或控制一个u s b的传输过程, 因此, 一旦脱离了主机,u s b设各就毫无用武之地。现今的 u s b主机一般意义上指 p c 机。而使用 p c机作为主机,对一些应用场合有局限性。因此,开发一款u s b主 机,实现 u s b 主机的嵌入式化,使 u s b 设各的使用可以脱离p c 机是有) 一 泛应用 前景的。 本系统使用 s a m s u n g公司的s 3 c 4 4 b 0 芯片作为主c p u , 使用 c y p r e s s 公司的 s l 8 1 1 h s芯片作为主机控制器芯片, 构建了u s b主机系统系统硬件方案设计具 有 成本低、 功耗小、 速度快等特点。 在软件上, 系统完 成了u s b 主机 控制 器驱动 程序、 核心驱动程序以及用户软件的设计,可很好地完成设备的枚举、 配置等功 能;系统支持m a s s s 七 o r a g e 类协议,并建立了精简的f a t文件系统,可以完成 f l a s l: 闪盘上文件的读取 按照论文中提出的方法,实现了 u s b主机系统的构建,对开发嵌入式 i j s b 主 机, 使 u s b 应用脱离个人电 脑具 有普遍意义。论文 针刘所设计的 系统, 就u s b 主机系统作了总结和分析,并对嵌入式u s b 主机的发展前景作了展望 关键词:a r m嵌入式 u s b主机系统 浙江大学硕士论文 ab s t r a c t i n t h i s p a p e r w e p r o p o s e a n e m b e d d e d u s b h o s t s y s t e m b a s e d o n a r m.t h e s y s t e m i s c o m p o s e d o f u s b d r i v e r , h o s t c o n t r o l l e r d r i v e r , a n d u s e r s o ft w a r e . a n d i t c o n t a i n e d ma s s s t o r a g e c l a s s p r o t o c o l , f a t f i l e s y s t e m , e t c . t h e s y s t e m c a n r e a d t h e d a t a f r o m fl a s h d i s k , a n d t h e n t r a n s f e r t h e m t o p c v i a r s - 2 3 2 . t r a d it i o n a l , t h e d e s i g n o f u s b i s j u s t t o d e v e l o p u s b s l a v e , l i k e fl a s h d is k . b u t i n t h e u s b s y s t e m , t h e s l a v e c a n t l a u n c h a n d c o n t r o l t h e p r o c e s s o f d a t a t r a n s f e r . s o s l a v e w i l l b e n o - g o o d i f i t i s d i v o r c e d f r o m h o s t . a n d n o w a d a y s , o n l y t h e p e r s o n a l c o mp u t e r d e v e l o p a n s e r v e d a s h o s t , t h e d i s c o m f o r t i s o b v i o u s . s o , i t i s a n u r g e n t a ff a i r t o e m b e d d e d u s b h o s t s y s t e m t o r e l e a s e t h e s l a v e f o r p c . t h e e m b e d d e d u s b h o s t s y s t e m s e l e c t s s 3 c 4 4 b 0 t o a c t a s t h e c p u , a n d s e l e c t s s l 8 1 1 h s t o a c t a s u s b h o s t i n t e r f a c e c h i p . t h e p r o j e c t o f t h e s y s t e m p o s s e s s e s t h e v i r t u e o f c h e a p n e s s , s p e e d i n e s s , e t c . a n d f r o m t h e p o i n t o f t h e s o ft w a r e , t h e s y s t e m i n t e g r a t e s u s b d r i v e r , u s b h o s t c o n t r o l l e r d r i v e r , a n d u s e r s o ft w a r e . a c c o r d i n g t o t h e m e t h o d i n t r o d u c e d i n t h i s p a p e r , w e e s t a b l i s h e d t h e e m b e d d e d u s b h o s t s y s t e m s u c c e s s f u l l y . b u t b e c a u s e o f t h e c o m p l e x i t y o f t h e u s b p r o t o c o l , t h e s y s t e m s t i l l h a s t h e s h o r ta g e . we s u m m a r i z e d a n d a n a l y z e d t h e r e a s o n a t t h e e n d in g o f t h e p a p e r . k e y w o r d : a r m, e m b e d d e d s y s t e m, u s b h o s t 浙江大学硕士论文 第一章 绪论 本章主要介绍课题的背景及研究意义, 以及u s b 主机系统设计方案的介绍。 1 . 1课题的背景及意义 1 9 9 4 年底,以i n t e l 为首的7 家公司推出了u s b ( u n i v e r s a l s e r i a l b u s , 通用串行总线) 第一个协议规范, 专用于中、 低速的计算机外设与p c 机之间的 数据传输。自此,u s b协议规范稳健发展,从最初的 1 . 0 版本到如今的2 . 0 版 本, 最高数据传输速率己 达到4 8 0 m b p s , u s b 接口也被广泛应用。 如今, u s b 己 经成为p c 上的标准接口, 并迅速占 领了计算机中、 低速外设的市场, 大有取代 并口和串口的趋势。 但是,随着移动数据业务的飞速发展,传统的u s b 接口似乎已经跟不上时 代要求。由于在 u s b 的拓扑结构中,居于核心地位的是主机,任何一次 u s b的 数据传输都必须由主机来发起和控制,所有的u s b 设备都只能和u s b主机建立 连接,任何两个u s b设备之间无法直接进行通信。目前在市场上能够购买到和 使用的都是 u s b设备,比如 u s b 移动硬盘,闪存,数码相机,m p 3等,而目前 传统的u s b 主机都是基于p c 机的,因此所有的设备都只能在p c 机上使用,脱 离了p c u s b 设备就毫无用武之地。 所以,如何将u s b 应用在非p c 应用领域, 使u s b 设备脱离p c 领域成了当 务之急。根据 u s b的体系结构,我们只能开发嵌入式 u s b 主机,才能将 u s b 设 备的应用从 p c 领域脱离出来, 才能使如今高速发展的移动数据业务真正“ 移动” 起来。 1 . 2 u s b 主机系统解决方案介绍 由于u s b 协议规范十分庞大和复杂, 基于嵌入式系统的u s b 主机方案由于 在系统处理器的选择、r a m和 r o m的容量、以及系统成本、实现难度等方面的 浙江大学硕士论文 考虑, 实现的功能不可能面面俱到, 只能 根据具体的应用来实现基于p c 平台的 u s b主机功能中的某一个部分,其支持的设备类也相应的只是所有设备类中的 某一种或几种,其中最具有代表性的便是大容量数据的存储应用,u s b主机对 应支持的设备类即为大容量存储设备,包括u s b 接口的移动硬盘以及f l a s h 闪 盘等。在本文中将要介绍的u s b主机方案就是基于支持大容量存储设备类来实 现对存储设备内文件的读写等操作的。 如今的支持大容量存储设备的嵌入式 u s b主机系统多采用 8 位或是 1 6 位 的单片机来构成系统核心处理器,该类单片机价格低廉,体积小,功耗低,功 能比较齐全等优点,但由于时钟频率比较低,而且往往一个及其周期需要好几 个时钟周期,因此效率比较低,处理速度比较慢,导致系统主机对 u s b 外设数 据的读取速度也受到限制,所以,并不是理想的实现方案。 本论文提出的 u s b主机系统方案基于 a r m处理器实现,该处理器采用 3 2 位r 工 s c 指令集。 与一般单片机相比, 它同样具有成本低、功耗低、功能齐等特 点, 但是由于其时钟频率远比8 位或是 1 6 位单片机高, 并且其流水线结构使得 大多数指令的执行只需要一个时钟周期, 因此其处理速度较之8 位或是1 6 位单 片机要快得多,作为u s b 主机系统的主处理器其zl a , x l 7w c t h ,-9 t . 浙江大学硕士论文 第二章 u s b 主机的系统分析及其工作原理 本章主婆介 绍u s b 主机的 系 统结 构, 并介 绍嵌 入式u s b 主 机系统 支持的设 备类m a s s s t o r a g e 类协议和f a t 文件系统,以及u s b 主机系统的工作原理。 2 . 1 u s b 主机系统的结构 图2 - 1 所示为u s b 主机的系统结构图。 3 . u s b 用户层 t a% i i 1 1 界 l ol l 二 : 二二 二 二 : 二 二长 通道组 煞 二 滩 : 跳 二 岌 狱 汇 二 : 一 l j ,l! : 接日) 广|,匕 13 : . ( 可选) 标准通通 升缺首端脚地徽、 u s e 主机径制君驱动程序 z . u s b 系统层 硬1 f 定义 主 机 控 制 器嘿 些 $ u s b 电揽 一 . 一, 今 1 . u s b 总线 接口 层 i 1 e 6 代友 1 i 脚暇之筋连报的袖兮 图2 - 1 . u s b 主机系统结构 从上图可以 看出,u s b 主机具有一套完善的系统结构,从软件到硬件被分 为 3 个部分: 1 . u s b 总线接口层; 浙江大学硕士论文 2 . u s b 3 . u s b 系统层 用户层 u s b总线接口 层处理电 气及协议层的 互连, 主要是指以 主机控制器为核心 的 硬件部分,包括串 行接口 引擎 ( s e r i a l i n t e r f a c e e n g i n e , s i e ) ,以 实现数 据的串并转换、产生帧起始包等功能。主机控制器还集成了 u s b根 h u 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 设备驱动 程序 ( 实现设备类协议)和用户软件。 2 . 1 . 1 . u s b 主机控制器及其功能 从主机系统结构上来看,u s b主机控制器处于系统总线接口层,而其驱动 程序处于u s b 系统层。 u s b主机控制器就是通常所说的 u s b主机接口芯片的核心部分。根据 u s b 系统对于主机系统的要求,u s b主机控制器所提供和实现的主要功能包括以下 几个方面: 1 .对主机和设备的各种状态进行管理和控制; 2 利用串行引擎接口s i e 来完成数据串行/ 并行化, 具体来说就是将主机 输出的并行数据转换成串行数据,而将设备发来的串行数据转换成并 行数据; 3 .每隔 l m s 产生一个帧起始包s o f 来将u s b 总线的时间划分为一个个的 帧,而所有的 u s b数据传输任务都是在以帧为单位的时间间隔内进行 的: 4 .提供相 h u b及全机系统接口,用于提供与 u s b设备的连接点以及与核 心 c p u 之间的通信接口。 浙江大学硕士论文 2 . 1 . 2 u s b 主机控制器驱动程序 u s b 主控制器驱动程序 ( h o s t c o n t r o l l e r d r i v e r , h c d )处于u s b 主机的 系统层,u s b软件协议栈最底层一部分。它实质上是对 u s b主机控制器硬件和 数据传输的一种抽象。 h c d 的存在, 方便地将各种不同的主机控制器映射到u s b 系统, 使得主机不必知道设备到底接在哪个主机控制器上就能同设备进行通信。 h c d向上仅对 u s b核心驱动程序服务,h c d提供了一个软件接口,即 h c d 工 n t e r f a c e , 使得各种u s b 主机控制器的 硬件特性都被软件化, 并受核心驱动程 序的调用和管理。h c d向下则直接管理和检测主机控制器硬件的各种行为。 2 . 1 . 3 u s b 核心驱动程序 从图 2 - 1 可知,u s b核心驱动程序( u s b d r i v e r,简称 u s b d ) 也处于 u s b 主机的系统层, 它起着承启用户程序和主机控制器驱动程序的作用, 向上来说, u s b d 通过管道机制和命令机制接受用户程序或是u s b 设备驱动程序的访问和请 求,向下来说,u s b d 把处理好的数据发送给 h c d ,并对其进行管理,最终实现 与u s b 设备之间的 通信。 从客户的 观点来看, 与客户进行通信的u s b d 管理着所 有连接着的u s b 设备。 u s b d为客户提供两组工具: 命令工具和通道工具。 通过这两组工具, 客户 可以直接命令u s b设备或从通道直接输入和输出数据流。 其中命令工具允许客 户配置和控制u s b 设备,通道工具则允许客户管理特定设备的数据和控制数据 的传输。 总体来说, u s b d 可提供如下种类的服务: 1 .通过命令工具配置设备: 2 .通过命令工具及通道工具提供传输服务: 3 事件通知, 例如设备的添加和移除等操作, 均可通过u s b d 的命令工具 来获取: 4 .状态报告及错误恢复:u s b d 能够通过设备、接口或管道等,获取或清 除设备的状态; 浙江大学硕 土 论文 2 . 2 m a s s s t o r a g e 类协议 主机中的类协议设备驱动程序和用户软件构成主机系统的客户层, 直接面 向不同的u s b 设备。而不同的设备分属不同的设备类,因此u s b 主机针对不同 的设备需要具有不同的类协议设备驱动程序。由于u s b设备类种类繁多,不可 能在嵌入式 u s b主机上实现所有的设备类协议,因此,只能实现某一特定的类 协议。 在本论文设计的系统中,支持m a s s s t o r a g e 类协议,故主机中必须编写 m a s s s t o r a g e 类驱动程序,并遵循m a s s s t o r a g e 类协议。 2 . 2 . 1 m a s s s t o r a g e 类概述 m a s s s t o r a g e 类协议是众多u s b 设各类协议中的一种, 主要用于软磁盘接 口、 a t a 接口, 工 d e 硬盘接口及f l a s h 存储器等设备建立的u s b 接口, 其类代码 ( b i n t e r f a c e c l a s s 字段的值)为o x o b . m a s s s t o r a g e c l a s s 类 规范 包括4 个 独 立的 子 类 规范, 即: 1 .u s b m a s s s 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 传输协议; 2 . u s b m a s s s t o r a g e c l a s s b u l k - o n l y t r a n s p o r t传输协议; 3 . u s b m a s s s t o r a g e c l a s s a t a c o m m a n d b l o c k ; 4 . u s b m a s s s t o r a g e c l a s s u f i c o m m a n d s 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 l k端点传送数据/ 命令/ 状态,c b i传输规范则使用 c o n t r o l / b u l k / 工 n t e r r u p t 三种类型的端点进行数据/ 命令/ 状态传送。 在本设计 系统中 采用的 传输方式为单批量b u l k - o n l y 传输协议, 其b i n t e r f a c e p r o t o c o l 字段值为o x 5 0 o 后两个规范则定义了存储介质的操作命令。a t a命令规范用于硬盘,盯工 命令规范是针对f l a s h 闪盘, 符合我们系统设计的要求, 因此我们只需实现u f i 命令即可完成m a s s s t o r a g e 类协议构架,其子类代码为o x o 4 o 浙江大学硕士论文 2 . 2 . 2 单批量b u l k - o n l y 传输协议 b u l k - o n l y 传输协议没有使用中断和控制端点, 仅使用b u l k 批量端点来进 行命令、数据和状态的传输。其传输流程如下图所示: 图2 - 2 . b u l k - o n l y 的 命令、 数据 和状态传输流程 其中c b w ( c o m m a n d b l o c k w r a p p e r ) 和c s w ( c o m m a n d s t a t u s w r a p p e r ) 分别 称为命令块封包和命令状态封包。命令块封包用于用户层向u s b 系统层发送命 令,以便与u s b 设备建立连接,读取 u s b 设备的各种信息;命令状态封包则用 于指示发送的命令执行是否成功,其数据流方向是系统层向用户层。 该数据包的结构在u s b 驱动的编写中至关重要, 故将其数据结构分别列出, 如表 2 - 1 和表2 - 2 所示。 偏移量字段属性大小 0 d c b w s i g n a t u r ec b w 的标志4 b 一 4 d c b w t a g命令标签块4 b 8d c b w d a t a t r a n s f e r l e n g t h 传输的数据大小 4 b 1 2 b m c b w f l a g s传输方向1 b 1 3 b c b w l u n 接收命令的设备的逻辑单 元号 1 b 1 4 b c b w c b l e n g t hc b w c b 的长度1 b 1 5 c b w c b 子类命令1 6 b 表2 - 1 . c b w 的数据结构 浙江大学硕士论文 偏移量字段属性大小 0 d c s w s i g n a t u r ec s w 的标志 4 b 4 d c s w t a g命令态标签 4 b 8d c s w d a t a r e s i d u e 主机希望的数据长度与实 际发送的数据长度之差 4 b 1 2b c s w s t a t u s 表示命令的执行情况 1 b 表2 - 2 . c s w 的数据结构 设备插入到u s b 接口 上后,主机即对设备进行搜索,并要求设备提供相应 的描述符,在主机得到设备的描述符后,即完成了对设备的配置,系统识别出 为b u l k - o n l y 的m a s s s t o r a g e 类设备, 然后即进入b u l k - o n l y 传输方式。 在此 方式下, u s b 与设备之间的所有数据均使用批量端点通过批量输入( b u l k - o n l y ) 和批量输出( b u l k - o u t ) 来进行传输,不再通过控制端点传输任何数据。 在这种传输方式下, 有三种类型的数据在主机和设备之间 传送,即上图中 的c b w , c s w 和普通数据。 c b w 是从主机发送到设备的命令,命令格式遵从接口 中的 b i n t e r f a c e s u b c l a s s所指定的命令块。u s b设备需要将 s c s i 命令从 c b w 中提取出来,执行相应的命令,完成以后,向主机发出反应当前命令执行状态 的c s w ,主机根据c s w来决定是否继续发送下一个c s w或是数据。主机要求设 备执行的命令可能为发送数据,则此事需要将特定数据传送出去,完毕后发出 c a,以使主机进行下一步的操作。 2 . 2 . 3 m a s s s t o r a g e 类协议的u f i 子类命令 在b u l k - o n l y 传输协议传送的c b w 命令封包中c b w c b 字段( 即子类命令字 段) 中 包含了设备类的子类命令,在本系统中, 我们使用的是m a s s s t o r a g e 类 协议中的u f i 子类命令。 u f t 子类的命令块是基于s c s i 子类命令协议的。每个 命令块的长度均为 1 2个字节,则对应的 c b w中 b c b w c b l e n g t h字段的值就是 o x o c . o f 工 子类命令块的数据格式及大小如表 2 - 3 和 2 - 4 所示 浙江大学硕士论文 偏移量字段大小 0操作码1 b 1 逻辑单元号 ( l u n ) 1 b 2 逻辑块地址 4 b 6 保留 1 b 7 传输量、参量列表或返回的数据 2 b 9 保留 3 b 表2 - 3 . u f i 子类命令块数据结构 其中,u f i 的各种操作码如下表所示: 操作码命令说明 0 x 0 4 格式化单元格式化存储的介质 o x i 2 查询 ( i n q u i r y )获取设备信息 o x 1 b 启动/ 停止请求设备卸载/ 装载 0 x 5 5 模式选择主机设置设备参数 o x 5 a 模式判别主机请求设备参数 o x l e 禁止/ 允许介质移除禁止/ 允许介质移除 0 x 2 8 读 ( 1 0 )主机从设备中读取数据 o x a 8 读 ( 1 2 ) 主机从设备中读取数据 0 x 2 5 读容量 主机请求设备的容量 0 x 2 3 读格式化容量主机请求设备容量及能够格式 化的容量 0 x 0 3 请求判别主机请求判别参数 0 x 0 1 归0 磁盘驱动器磁头归0 磁道 o x 2 b 寻道 将磁头定位于特定磁道 o x l d 发送诊断 执行硬复位和诊断 0 x 0 0 测试单元准备查询设备是否准备好 o x 2 f 验证 验证设备上的数据 o x 2 a 写 ( 1 0 ) 主机往设备上写数据 浙江大学硕士论文 o x a a 写 ( 1 2 ) 主机往设备上写数据 o x 2 e 写并验证主机往设备上写数据并验证 表2 - 4 . u f i 的命令块及其操作码 u f i 子类命令直接定义了设备的各种操作,如上表所示,在此不加详细叙 述 。 2 . 3 f a t 文件系统 大容量存储设备在存储数据时,为了方便文件的管理,一般都会建立一个 文件系统,f l a s h闪盘上的文件存储是基于 f a t 1 6文件系统的,因此,为了方 便u s b 主机对文件进行操作,在开发嵌入式u s b 主机系统时同样就有必要建立 一个f a t 1 6 文件系统。 2 . 3 . 1 f a t 文件系统结构 一个f a t 文件系统卷( 卷可以理解为是一张软盘, 一个硬盘, 或是一个f l a s h 闪盘)由4 个部分组成: 1 . 保留区 ( r e s e r v e d r e g i o n ) :分区的保留区的第一个扇区必须是 b p b c b i o s p a r a m e t e r b l o c k ) 。此扇区有时也称作 “ 引导扇区” 、“ 保留扇区”或是 “ 零扇区,它含有对文件系统进行识别的关键信息。 2 . f a t 区 ( f i l e a l l o c a t i o n t a b l e ) :文件分配表。 文件分配表存放文件 所占用的存储空间族链以 及f l a s h 存储器的占 用和空闲空间的情况, 非常重要。 为了防止文件分配表损坏而引起文件的丢失,该系统中保存了两个相同的文件 分配表f a t 1 和f a t 2 ,以改善其安全性。在文件系统的操作中,程序对 f a t 表 结构的两个备份进行顺次修改,以此确保 f l a s h 存储器上总是存有一整套完好 的文件分配表。 3 .根目 录区( r o o t d i r e c t o r y r e g i o n ) :紧接着 f a t 2表的后面的一个扇 区, 就是根目 录区了。 根目 录区中存放目录项,每个目录项为3 2 个字节,记录 一个文件或目录的信息。 4 .文件和目录数据区:目录项所占的最后一个扇区之后,才是真正存放 文件数据或是目 录的位置。 浙江大学硕士论文 2 . 3 . 2 f l a s h 闪盘的文件系统结构 f a t结构是按照f a t 文件系统来组织存储单元的介质都必须遵守的一种文 件系统,对于不同的介质,其结构又有所差异。下面介绍一下系统中将使用到 的f l a s h 闪盘的文件系统结构。 f l a s h 闪盘上的数据按照其不同的特点和作用大致可分为以下5 个部分: 主引导记录( m b r ) 区,位于0 磁道0 柱面1 扇区,共占用4 4 6 个字节: 2 .系统引导记录( d b r ) 区, 位于0 磁道 1 柱面1 扇区,是主机系统可以访 问的第一个扇区, 包括一个引导程序和b p b . b p b 参数块记录本分区的 起始扇区、结束扇区、文件存储格式、介质描述符、根目录大小、f a t 个数、分配单元的大小等重要参数; 3 .文件分配表( f a t ) , 主要记录存储介质所有簇的使用情况, 通过查文件 分配表可以得知任一簇的使用情况: 4 .文件目 录表( f d t ) :包括根目录和子 目录,根目录只有一个,子 目录可 以有多个,子目 录下还可以有子目 录。文件目录表记录存储文件的文 件名、扩展名、属性、建立时间、开始簇号、文件长度等信息; 5 .数据区( d a t a ) :记录文件的数据信息。 了 解了f l a s h 闪 盘的 存 储结 构, 毯 们 就可以 将 每一 个区 定 义 为一 个 数 据结 构 , .通 过u f 工 命 令 来 读 取 每 一 个 区 所 记 录 的 信 息 , 然 后 通 过 这 些 信 息 来 读 取 数 据区的记录, 这个过程就是所谓的在m a s s s t o r a g e 类协议的基础上, 通过建立 f a t 文件系统来读取f l a s h 闪盘文件的最简单描述。 2 . 4 u s b 主机系统的工作原理 一言以 蔽之,u s b系统的功能就是完成数据的传输, 其主要特点就是 u s b 系统中所有的操作都由u s b主机来发起、控制和结束,u s b设备只是充当了一 个被动者的角色。 为了解u s b 是如何完成数据量的传输的, 我们首先要了解u s b 系统中数据流的模型以及其传输方式。 2 . 4 . 1 u s b 系统的 数据传输方式 浙江大学硕士论文 u s b 系统是以“ 包( p a c k e t ) ” 作为最基本的数据传输单 元的。 基于包在u s b 传输中的不同功能,可以将包分为标记包、数据包和握手包三类。而包又可以 分解为更小的单元,即 “ 字段( f i e l d ) 。字段又被分为 7类:同步序列字段 ( s y n c ) , 包标志字段( p i d ) , 地址字段( a d d r ) , 帧号字段, 端点字段( e n d p ) ,数 据字段和c r c 校验字段( c r c ) 。 关于各字段不同的值分别对应何种意义, 在此不 作详述,具体可参阅参考文献 1 9 , “ 包”根据不同的字段值来进行区分,以实现不同的功能。 譬如标记包由 p i d , a d d r , e n d p三个字段构成,而根据不同的p t d值又可以分为输入包、输 出包和设置包;数据包由p 工 d 、至少包括 0个字节的数据区以及 c r c字段来构 成,分为d a t a o 和d a t a 1 数据包两种;而握手包仅由p i d 构成,分为确认包、 无效包和停止包。 以 “ 包”为基础,u s b 协议定义了4 种数据传输类型: 1 . 控制传输:可靠的、非周期性的、由主机软件发起的请求或者回应的传 送,通常用于主机命令和设备状态信息: 2 .同步传输:在主机与设备之间的周期性的、连续的通信,一般用于传 送与时间相关的信息,比如说音频流数据的传输: 3 中断传输:小规模的、低速的、固定延迟的传输,比如鼠标、键盘等 数据量小的设备就使用中断传输方式: 4 ,批量传输:非周期性的、大量的可靠的传送,典型的用于哪些可以利 用任何带宽的数据,比如f l a s h闪盘数据的读取等,就可以使用批量传输的方 式来传送。 传输又由 “ 事务”构成。 “ 事务”按其特点可以分为 3种类型:输入( t n ) 事务、输出( o u t ) 事务和设置( s e t u p ) 事务。也就是说, 任何一种传输都是由 这 3 种事务所组成, 而这3 种事务不同的搭配和组成情况则构成不同的传输方式。 因此,要定义u s b 主机系统中 数据的传输方式,必须首先建立这三种事务的实 现函数。 浙江大学硕士 论文 2 . 4 . 2 u s b 设备的枚举过程 在主机与设备进行通信之前,主机需要知道设备的一些具体信息,主机也 必须分配一个地址给设备。 主机是通过一个被称为枚举的过程来完成这些工作。 其流程如下: 1 .用户插入一个设备到 u s b 端口:集线器给 u s b端口供电,此时设备处 于上电状态: 2 主机通过集线器来确定连接事件的细节:当集线器通过差模信号线( d +和d -) 检测到设备的接入后, 则向主c p u 发送一个中断信号,主机给集线器 发送一个g e t p o r t s t a t u s 确认设备的 状态后,主机会等待l o o m s 以 使设备的的 接入过程顺利完成并使供电稳定: 3 , 主机再给集线器发送一个s e t p o r t f e a t u r e 请求,重新配置端口。集线 器在设备接入的端口 上保持复位命令 1 o m s , 然后, 该端口就处于被激活的状态。 这时,设备处于缺省态,可以从端口上获取最高达 1 0 0 m a 的电流,设备的所有 寄存器等均已复位,并通过默认地址0 与主机通信: 4 .主机获取设备描述符:主机发送一个 g e t d s e c r i p t o r请求来获得缺省 管道的最大数据包的大小: 5 . 主机分配一个地址给设备:主机控制器通过发送一个s e t a d d r e s s 请求 来给设备分配一个总线上唯一的地址,此时设备进入地址态,在以后的各种数 据传输中,设备将使用这个新的地址: 6 . 主机获取设备的配置描述符:主机给新地址发送一个 g e t d e s c r i p t o r 请求来读取这个设备描述符,这个描述符包括终端 0的最大包的大小,设备支 持的 配置号,以 及关于这个设备的 其他基本信息。 主机把这些信息应用在其后 的通信中; 浙江大学 硕士论文 7 .主机给设备分配配置值:在从描述符了解了设备之后,主机发送一个 s e t c o n f i g u r a t i o n 命令来请求希望的配置号, 设备读取这个请求并且设置它的 配置来匹配它。设备此时处于配置端口,并且设备的接口己经被使能,也就是 说,这个u s b己经可以开始使用了。 上述就是简单的u s b 枚举过程。 我们在编写与 u s b 主机有关枚举阶段的程 序时,基本可以按照这个思路进行。 2 . 4 . 3 u s b 设备的描述符 当u s b 设备第一次连接到主机上时, 息,比 如设备有何种功能, 需要占 用多少 主机要求了解 u s b 设备的一些基本信 u s b资源, 主机完全确认了这些信息之后,设备才能正常工作。 备中的 u s b 描述符来体现的。 属于何种设备类等。只有 这些信息是通过存储在设 描述符可以看作是一个完整的数据结构, 用于描述一个u s b 设备的所有属 性。u s b 协议1 . 1 中对定的标准的描述符包括以下几种: 1设备描述符: 描述了u s b 设备的通用信息, 一个u s b 设备只有一个设备 描述符;设备描述符包括设备类代码、子类代码、设备协议代码、端点0的最 大包大小等基本信息; 2 . 配置描述符:用于描述一个 u s b设备的属性和能力等配置信息,一个 u s b设备也只需一个配置描述符就足够了,包括配置描述符的类型编号、所支 持的接口 数量、供电模式的选择等参数: 3 . 接口 描述符: 用于描述一个特定接口的属性, 一般一个u s b 设备只需一 个接口,包括接口编号、接口描述符编号、以及该端口使用的端点数、接口类 型、接口遵循的协议等信息: 4 . 端点描述符:用于描述接口所使用的非 0 端点的属性,包括输入/ 输出 浙江大学硕士论文 方向、 端点号和端点容量等。 所谓端点,其实 就是u s b 中 一系列实际的 物理数 据缓冲区,发送和接收到数据都存储在这里。一个u s b 设备至少包括端点0 和 端点 1 两个端点。端点描述符包括端点地址、端点的传输类型、收发的最大包 的大小等信息; 5 字符串描述符:可选。 关于各类描述符的详细信息请参阅参考文献 1 9 ,在此不详述。 2 . 4 . 4标准请求命令 在u s b 对设备进行枚举时, 主机需要对设备进行一系列设置。 主机通过缺 省的控制管道对设备发送一些基本的请求命令,完成读取设备状态、设备的各 种描述符,并对设备重新分配地址,重新配置端口等功能。这些命令都是由控 制传输方式来传送的。我们将这些基本的请求命令称为标准的u s b 设备请求命 令,这些请求命令是主机配置u s b 设备的关键。 标准的 u s b 设备请求命令是一个 8 字节的数据包,在 u s b i . i 协议中,这 样的命令有 1 1 个, 都具有相同的数据结构格式, 共分为5 个字段, 如表2 . 5 所 不 : 偏移量01246 请求 b m r e q u e s t b y t e b r e q u e s t w v a l u ew i n d e x w l e n g t h 大小1 b y t e 1 b y t e2 b y t e2 b y t e2 b y t e 表2 - 5 .设备请求命令数据包格式 其中,各字段代表的意义为: b m r e q u e s t b y t e : 请求命令类型。 其中d 7 位用于选择数据传输方向, d 6 d 5 位表示命令类型,d 4 -d o 位并表明该命令的接受者类型; b r e q u e s t 命令; w v a l u e : 的内容; w i n d e x : :请求命令代码。u s b为每一个命令定义了编号用于区分不同的 命令信息。占用两个字节,每一种请求命令都可以自 定义该字段 索引信息,一般该字段大内容为索引值或偏移量: 浙江大学硕士论文 w l e n g t h :传输的数据大小,表示在控制传输可选数据步骤中要传输的数 据的大小。当数据是主机发送给设备的,那么该字段中的值便是实际的数据大 小,当数据是设备发送给主机的, 那么该字段中的值便是设备能够发送的最大 数据包的大小。 显然,u s b设备请求命令根据 re q u e s t的不同可分为不同的类型,在 u s b 1 . 1 协议中,共有1 1 种不同的设备请求命令: 7 . 获取状态请求g e t s t a t u s : 用于返回特定接收者的状态信息, 比如端点、 接口 等的状态,b r e q u e s t 字段值为0 x 0 0 ; 2 .清除特性请求 c 1 e a r f e a t u r e :用于清除或禁止接受者的某些特性, b r e q u e s t 字段值为0 x 0 1 ; 3 .设置特性请求 s e t f e a t u r e :用来启用或激活命令接受者的某些特性, b r e q u e s t 字段值为0 x 0 3 ; 4 .设置地址请求s e t a d d r e s s :用于主机给设备分配地址, b r e q u e s t 字段 值为0 x 0 5 ; 5 .获取描述符请求 g e t d e s c r i p t o r :用于主机获取设备的特定描述符 re q u e s t 字段值为0 x 0 6 ; 6 . 设置描述符请求s e t d e s c r i p t o r : 主机利用该请求命令来修改设备中的 有关描述符,或者增加新的描述符, b r e q u e s t 字段值为0 x 0 7 ; 7 获取配置请求 g e t c o n f i g u r a t i o n :用于获取当前设备的配置值, re q u e s t 字段值为0 x 0 8 ; 8 .设置配置请求 s e t c o n f i g u r a t i o n :用于指示设备采用要求的配置, b r e q u e s t 字段值为0 x 0 9 ; 9 .获取接口请求 g e t 工 n t e r f a c e :用于获取当前的某个接口的接口描述符 编号,re q u e s t 字段值为o x o a ; 1 0 . 设置接口请求s e t i n t e r f a c e : 用于要求设备用某个接口 描述符来描述 接口,b r e q u e s t 字段值为 o x o b ; 1 1 .同步帧请求 s y n c h f r a m e :用于设备设置和报告一个端点的同步帧, b r e q u e s t 字段值为 o x 0 c o 浙江大学硕士论文 结合u s b 系统的枚举过程和标准设备请求命令来看, u s b 系统的枚举过程 其实就是主机向设备发送标准的设备请求命令的过程。 从软件角度来看,主机 按照枚举的过程依次向设备写入请求命令也就完成了枚举功能。枚举功能完成 之后,用户软件遵循一定的设备类协议对设备进行各种操作,比如在本主机系 统中实现的对 m a s s s t o r a g e 类设备的读写操作等。 浙江大学硕士论文 第三章 嵌入式u s b 主机系统规划 本章主要介绍将u s b 主机嵌入式化的主要设计方案。 3 . 1系统硬件设计思路 根据第二章所述,u s b 主机系统从硬件上区分主要包括u s b 主机控制器和 系统主处理器,因此,主机系统的核心就由主c p u和主机控制器芯片构成。组 成系统的首要任务就是选择合适的主 c p u以及主机控制器芯片。另外,为了直 观显示系统调试和运行的结果,需要建立一个人机界面,若作为一个独立的系 统,需要配置l c d显示模块、完整的键盘等,但在本系统设计中,考虑到成本 因素以及开发难度,在系统中未加上 l c d显示模块和完整的键盘。但为了方便 系统调试, 本系统中增加l e d 显示模块、 简单的键盘模块以及r s - 2 3 2 串口 模块 等。 而且,为了 方便系统的 扩展, 在系统的硬件设计中保留了l c d 显示模块和 键盘的接口。 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄河上游建筑方案设计
- 实时自动化营销技术方案
- 知名咨询公司客服方案
- 咨询方案的构成
- 2025年秋季初级经济师考试 经济基础知识冲刺试题试卷
- 战略联盟协议的法律构架
- 麻醉药品处方权考试题库及答案
- 2024年高职单招预测复习必考题附答案详解
- 2025法院司法辅助人员能力提升B卷题库含完整答案详解【夺冠系列】
- 2024-2025学年计算机二级试卷及参考答案详解
- 黑龙江省哈尔滨市哈尔滨市第一中学校2024-2025学年度上高一期中考试语文试题
- 2025年广西壮族自治区招聘警务辅助人员考试真题及答案
- (完整版)人教八年级下册期末物理测试真题经典及解析
- GJB3206B-2022技术状态管理
- 园林养护服务公司简介范文
- 储能项目竣工验收与交付方案
- 2025秋人教版(2024)二年级上册数学教学计划
- 2025至2030中国清真食品市场供需前景调查及发展动向分析报告
- 农业综合服务战略合作协议书
- 检验科实验室生物安全风险评估报告
- 药厂复试面试常见问题及答案解析
评论
0/150
提交评论