(通信与信息系统专业论文)基于mcf5249的usb主机的设计与实现.pdf_第1页
(通信与信息系统专业论文)基于mcf5249的usb主机的设计与实现.pdf_第2页
(通信与信息系统专业论文)基于mcf5249的usb主机的设计与实现.pdf_第3页
(通信与信息系统专业论文)基于mcf5249的usb主机的设计与实现.pdf_第4页
(通信与信息系统专业论文)基于mcf5249的usb主机的设计与实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

皂王型垫盔堂三堂堡主堂笪笙苎 一 摘要 在u s b 技术广泛应用的今天,研究u s b 的相关应用具备鲜明的时代 意义。移动数据的交换和存储,是近年来i t 行业的热点。可以预见,能 让移动数据交换真正“移动”起来的嵌入式u s b 主机将被广泛应用于消 费类电子产品中。 本文根据设计要求,首先分析了u s b l 1 协议,其中,对u s b 的系统 体系、数据通信模型、数据包格式、u s b 标准描述符进行了深入剖析;其 次,在分析u s b 大容量存储设备( m a s ss t o r a g e ) 类规范的基础上,建立 了u s b 主机与m a s ss t o r a g e 类设备之间的逻辑通信模型;然后,进行了 u s b 主机控制器扩展接口电路和u s b 主机系统软件的设计;最后对u s b 主机系统进行了硬件和软件上的测试。 在硬件设计上,以m c f 5 2 4 9 为处理器( 3 2 一b i t 嵌入式m c u ) 和 s l 8 1 1 h s ( u s b 主机控制器) 为主机控制芯片,依托m 5 2 4 9 c 3 实验开发 板,通过分析芯片结构,引脚信号功能和读写时序,m c f 5 2 4 9 对m 5 2 4 9 c 3 上各模块存储空间的管理,完成了u s b 主机控制器接口电路的设计,实 现了m c f 5 2 4 9 对s l 8 n h s 的操作和控制。 在软件设计上,以m e t r o w e r k s 公司的c o d e w a r r i o r 为编译调试平台, 进行软件编码和调试,并利用m 5 2 4 9 c 3 开发板上的b d m 口和计算机的并 口相连,通过下载c o d e w a r r i o r 编译生成的e l f 文件到m c f 5 2 4 9 的s d r a m 中对软件进行功能测试;采用模块化设计的思想,将u s b 系统软件分为 通用的u s b 设备命令和特定的u s b 设备类应用程序两部分,对各模块分 别加以实现。实现了u s b 设备的检测、识别、配置;建立起u s b 大容量 存储设备类的单批量( b u l k o n l y ) 传输,并在此基础上,建立与文件系统 的接口,通过发送u f i ( u s bf l o p p yi n t e r f a c e ) 命令实现了u 盘文件的 读,写。 通过一系列的测试,包括u s b 主机扩展接口电路测试;u s b 设备连 接检测的测试;主机识别设备并对设备进行配置的测试:主机和设备之间 m a s ss t o r a g e 类协议数据传输的测试,表明本u s b 主机的硬件电路设计是 正确的,u s b 主机能够实现对设备进行检测、识别、配置和读写文件等 操作,达到了预定的设计目的。 【关键词】u s b 主机:m c f 5 2 4 9 处理器;主机控制器;单批量传输;u f i 命令 皇王型垫盔兰三堂堡主兰焦堕苎 a b s tr a c t t h ee x c h a n g ea n ds t o r a g eo fm o b i l ed a t ai st h er e c e n t l yh o t s p o ti ni t i n d u s t r y ,w h i c hi ss p r i n g i n gu pw i t ht h eu s bg r o w su p t h eu s b t e c h n o l o g y i sn o to n l yt h ei n t e r m e d i u mo fm o b i l ed a t ae x c h a n g e ,b u ta l s oi t sc o r e i ti s c a nb ef o r e s e et h a t ,t h ee m b e d d e du s bh o s tw i l lb ew i d e l yu s e di nc o n s u m i n g e l e c t r o n i cp r o d u c t a c c o r d i n gt o t h e d e s i g nr e q u e s t ,f i r s t l y ,t h e u s b l 1 s p e c i f i c a t i o n i s a n a l y z e d i nt h i s t h e s i s ,i nw h i c h ,p u t t h e e m p h a s i s o nt h eu s bs y s t e m a r c h i t e c t u r e 、d a t ac o m m u n i c a t i o nm o d e l 、d a t ap a c k e tf o r m a t 、u s bs t a n d a r d d e s c r i p t o r s e c o n d l y ,o nt h eb a s i so fa n a l y z i n gt h eu s bd e v i c em a s ss t o r a g e c l a s ss p e c i a t i o n ,t h el o g i c a lc o m m u n i c a t i o nm o d e lb e t w e e nh o s ta n dd e v i c ei s e s t a b l i s h e d t h i r d l y ,t h eh a r d w a r ea n ds o f t w a r ed e s i g no ft h eu s b h o s ts y s t e m i sr e a l i z e d w h i l ed e s i g n i n gt h eh a r d w a r e ,b a s e do nm 5 2 4 9 c 3d e v e l o p m e n t k i t ,w e u s e m c f 5 2 4 9 ( 3 2 - b i t e m b e d e d m c u ) a sp r o c e s s o r ,s l 8 11 h s ( u s bh o s t c o n t r o l l e r ) a sh o s tc o n t r o l l e r b ya n a l y z i n gt h ea r c h i t e c t u r eo ft h ec h i p s ,t h e f o u n c t i o no ft h e p i n s a n dt h er e a d w r i t e t i m i n g ,t h eu s bh o s tc o n t r o l l e r i n t e r f a c ec i r c u i ti sa c c o m p l i s h e d d e p e n d i n go ni t ,m c f 5 2 4 9c a no p e r a t ea n d c o n t r o ls l 811 h s w h i l ed e s i g n i n gt h eu s bs y s t e ms o f t w a r e w eu s et h em e t r o w e r k s c o d e w a r r i o ri d ea st h ep r o g r a m m i n ga n d d e b u g i n gt 0 0 1 f i r s t l y ,t h eu s b b u s d r i v e ri sb er e a l i z e d ,w h i c hc a nd e t e c t 、r e c o g n i z ea n ds e t u pt h eu s b d e v i c e , t h e n ,t h eb u l k - o n l yt r a n s p o r td r i v e ri sb u i l d e db a s eo nu s bm a s ss t o r a g e c l a s ss p e c i f i c a t i o n o v e rb u l k - o n l y t r a n s p o r t i n g ,t h eu s bh o s tc a nr e a d w r i t e t h ef i l e so nt h eu s bf l a s hd i s k b ys e n d i n gu s bf l o p p yi n t e r f a c e ( u f i ) c o m m a n d s a tl a s t ,t h e r ea r eas e r i e so ft e s t sa b o u tt h ef o u n c t i o no ft h ee m b e d d e d u s b h o s t t h e ya r et e s tf o ru s bh o s te x p a n d i n gi n t e r f a c ec i r c u i t ;t e s tf o r d e t e c t i n g 、r e c o g n i z i n ga n ds e t u p i n gu s bd e v i c e ,a n dt e s tf o rd a t at r a n s m i s s i o n o v e rm 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 t h er e s u l t so fa l lt h et e s t sv e r i f yt h a t t h eh a r d w a r eo ft h ee m b e d d e du s bh o s ti s c o r r e c t l yd e s i g n e da n dt h eu s b s y s t e ms o f t w a r ec a nd r i v et h eu s bh o s tt or e a d w r i t et h ef i l e so nu s bf l a s h d i s k 【k e y w o r d s u s bh o s t ;m c f 5 2 4 9 ;h o s t c o n t r o l l e r ;b u l k o n l yt r a n s p o r t : i j f ic o m m a n d i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人己经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:逐型嗍硝年5 月即日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 导师签名:堑盐坠:鱼 日期:枷5 年5 - j q 卵日 电子科技大学工学硕士学位论文 第一章引言 1 1 研究嵌入式u s b 主机的意义 1 1 1u s b 的产生和发展 如今p c 上使用的绝大多数外部设备仍然基于接口实现,随着计算机 技术的飞速发展,一般的串行和并行接口已经无法满足p c 与外部设备之 间不断提高的速度和稳定性、易用性和可扩展性的要求,大大限制了计算 机的发展。u s b 总线是为了解决传统总线的不足而提出并推广的一种新的 串行总线标准,目前已广泛应用于p c 机与其外围设备的互联。 与其他总线相比,u s b 总线具有低成本、使用简单、连接容易、支 持即插即用、易于扩展、维护方便等特点,已成为p c 及其外部设备的标 准协议之一,迅速占领了计算机中、低速外部设备的市场。随着u s b 技 术趋于成熟,近年来u s b 2 0 协议的出现,大大提高了u s b 的传输速度, 使得u s b 进入个发展的黄金时代【l l 。现在p c 机均配备有u s b 主机接口, 流行的操作系统都支持u s b ,很多厂商也都提供u s b 芯片与外设。 1 1 2 研究嵌入式u s b 主机的必要l 生 随着u s b 的应用领域的逐渐扩大,消费类电子产品的迅速发展,人 们对于u s b 的期望也越来越高,希望u s b 能应用在各种非计算机领域中, 尤其是在移动数据领域中,希望能够直接实现一些原来要通过p c 机才能 实现的功能,例如挂接移动硬盘以备份数据,直接驱动u s b 打印机打印 照片等等,使得u s b 能应用在没有p c 的领域中。 非p c 应用领域? 这正是u s b 一个致命的弱点。在u s b 的拓扑结构 中居于核心地位的是主机( h o s t ) 。任何一次u s b 的数据传输都必须由主 机来发起和控制,所有u s b 设备都只能和主机建立连接,任何两个外设 之间或是两个主机之间无法直接通信。而目前,大量扮演主机角色的是个 人电脑,目前所能买到和使用的u s b 移动设备,比如u s b 的移动硬盘、 带u s b 接口的数码相机等都只集成了u s bs l a v e 功能。所有这些设备都只 能在p c 上使用,只能通过p c 来进行相互的文件和数据交换。没有了p c , 也就是没有了u s b 主机,这些设备就“失灵”了。 电子科技大学工学硕士学位论文 因此,“如何将u s b 应用到嵌入式领域? 如何实现u s b 点对点的通 信? ,等问题,开始进入了u s b 开发者的讨论议程。正是在这种新的需 求之下,u s b 主机的嵌入式应用成了u s b 领域新的兴奋点,研究嵌入式 u s b 主机就显得非常必要。 1 2 国内外对嵌入式u s b 主机的研究现状 嵌入式u s b 主机作为u s b 的延伸,国内、外的研究都是处于积极研 究和发展的阶段,同时已经有为数不少的半导体公司提供接口芯片。目前, u s b 接口芯片很多,但主要有3 类,类是带有微控制器( m c u ) 的u s b 接口芯片。这类u s b 接口芯片的微控制器从底层控制u s b 接口。比如: c y p r e s s 的e z u s b f x f x 2 系列等,这类芯片的微控制器有自己的系统结 构和指令。有些u s b 接口芯片的微控制器是通用芯片( m c s 5 1 内核) ,比 如a t m e l 公司的a t 8 9 c 5 13 x 、i n t e l 公司的8 x 9 3 1 等。另外,也有很多公司 的s o c 专用芯片也带有u s b 接口,如a t m e l 的a t 7 6 c 1 1 3 数码相机专用 芯片就集成了良种功能角色的u s b 接口,此类芯片多数是消费类电子产 品芯片【】 ”。 另类是纯粹的u s b 接口芯片,它需要有个外部微控制器。如朗 讯的u s s 8 2 0 ,n a t i o n a l 公司的u s b n 9 6 2 0 、p h i l i p s 公司的i s p l 3 6 2 、c y p r e s s 公司的s l 8 1 i h s ,e z - u s bf x 2 等 2 】。其中,c y p r e s s 半导体公司是u s b 控制器设计领域的领先者。 还有一类是单纯的物理层总线接口转换器,如p h i l i p s 的p d i u s b l l a 。 由于需要用户自行实现u s b 协议部分,设计较复杂,通常只作为控制器 开发和测试使用1 2 1 。 市场上也逐步出现具有部分功能的嵌入式u s b 主机产品,但大多数 厂家和u s b 论坛所能提供的产品或d e m o 多数是依靠嵌入式操作系统 w i n c e 和l i n u x 等,在国内,也有一家北京的高科技公司提供嵌入式u s b 主机解决方案,虽然也能接入“u 盘”,但还很不完善。因此,不依托任 何操作系统的u s b 主机系统的研究具有一定的领先性、前瞻性和实用性。 1 3 本论文的设计目标和研究内容 本课题是m o t o r l a 基金所资助c o l d f i r e 系列微处理器推广项目的一部 分,目标是依托m 5 2 4 9 c 3 实验开发板以c o l d f i r em c f 5 2 4 9 为处理器,开 发基于u s b l 1 协议的嵌入式u s b 主机,能够实现对u s bm a s ss t o r a g e 电子科技大学工学硕士学位论文 类设备的检测、识别、配置并能实现对u s b m a s ss t o r a g e 类设备上的文件 进行读,写等操作。 由于m 5 2 4 9 c 3 实验丌发板上没有u s b 主机控制器,所以要设计u s b 主机控制器接口电路,实现u s b 主机控制器和m 5 2 4 9 c 3 实验开发板的正 确通信,完成m c f s 2 4 9 对u s b 主机控制器的控制和操作;m c f s 2 4 9 主要 应用于消费类电子和汽车电子,因此要求u s b 主机能充分节约系统资源, 并且具有通用性,这样就需要u s b 主机的系统软件不依赖于任何操作系 统。 本文在充分分析u s b l 1 协议、u s bm a s ss t o r a g e 协议、m c f 5 2 4 9 芯 片结构、m 5 2 4 9 c 3 实验开发板各模块功能的基础上,选择合适的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 标准 请求命令。 第三章是m a s ss t o r a g e 设备类协议的研究。分析了b u l k o n l y 子类传 输规范的命令数据,状态的通信结构;建立基于u f i 子类规范的主机与设 备的逻辑通信模型。 第四章是u s b 主机的硬件设计部分。包括u s b 主机控制芯片s l 8 1 1 h s 和m c f 5 2 4 9 的芯片结构和信号特征分析:m c f 5 2 4 9 对m 5 2 4 9 c 3 实验开 发板的存储空间管理分析;设计出u s b 主机控制器扩展电路板。 第五章是u s b 主机的系统软件实现部分。包括软件设计思路,软件 结构和模块划分和软件的具体实现。 第六章是u s b 主机的软硬件联调和测试部分。 电子科技大学工学硕士学位论文 第二蕈u s b 协议研究 本章简要介绍了u s b 接口协议的特点和发展过程,同时对u s b l 1 协议做了详细分析。 2 1u s b 基本规范发展过程 早在1 9 9 4 年,i n t e l 、c o m p a q 、d i g i t a l 、i b m 、m i c r o s o f t 、n e c 、n o r t h e r n t e l e c o m 等7 家世界著名的计算机和通信工业领先的公司组成联盟,并建 立u s b i f ( u s b 实旋者论坛) 来推进采用u s b 标准的兼容设备的开发。 u s b - i f 于1 9 9 5 年1 1 月正式指定了u s b 0 9 通用串行总线规范。与此同时, 就有p c 带有u s b 接口了,但由于缺乏相应的软件和硬件设备的支持,这 些p c 机的u s b 接口基本上是闲置未用的。到了19 9 7 年开始,才有真正 符合u s b 技术标准的外设出现。1 9 9 8 年9 月2 3 目,c o m p a q 、i n t e l 、m i c r o s o f t 和n e c 四公司联手发布u s b l 1 正式版的接1 :3 规范,从此,u s b 逐步走进 了实用阶段 4 1 。 其后,到了1 9 9 9 年,在i n t e l 的开发者论纭大会上,与会者介绍了 u s b 2 0 规范,该规范的支持者除了原有的四个成员外,还有惠普、朗讯 和菲利浦三个新成员,从而使联盟的核心成员数恢复为七个。2 0 0 0 年4 月2 7 日, c o m p a q 、i n t e l 、m i c r o s o f t 、n e c 、l u c e n t 、h p 和p h i l i p s 7 公司 联手发布了u s b 2 0 接口规范川4 1 。 之后,u s b 一直持续不断地发展。今天的u s b i f 已经拥有6 0 0 多个 成员公司,几乎包括所有世界上地p c 和外设制造商。 2 2 u s b 系统体系 u s b 支持在主机和各种外设之间进彳亍数据传输。通过标准协议使各 种设备分享u s b 带宽,u s b 总线允许添加、设置、使用以及拆除外设。 个u s b 系统主要被定义为三个部分【5 】【6 】: u s b 的互连; u s b 的设备; u s b 的主机: 1 、u s b 的互连 u s b 的互连是指u s b 设备与主机之间进行的连接和通信操作。u s b 4 电子科技大学工学硕士学位论文 采用菊花链式的星形结构,能够支持多达1 2 7 个外设同时连接,充分满足 了外设的需求。以u s bh u b 为“中转站”的模式,大大减低了u s b 主机 的工作负荷,同时为设备的工作提供了更高的稳定性。 2 、u s b 的设备 主要分为两种设备类:集线器类( h u b ) 和功能部件类( f u n c t i o n ) 。 集线器类是为了提供更多的u s b 的连接点。功能部件类则是一种通过总 线进行发送、接收数据和控制信息的u s b 设备,为主机提供了各种具体 的功能。通过一根电缆连接在集线器的某个端口上,功能设备一般是一种 相互无关的外设。功能部件类又细分为多种类,现在已经形成的类规范如 下: 音频设备类:实时音频信息接收器的源或目的设各,如话筒、音 箱等; 通信设备类:和电话线相连的设备,如电信适配器、i s d n 等; 显示设备类:如显示器等; 人机接口设备类( h i d ) ;被终端用户操纵的设备,如:鼠标、键 盘、游戏控制杆等; 大容量存储设备类( m a s ss t o r a g e ) :用于信息记录的设备,如软 盘、硬盘、f l a s h 存储盘等。 图像设备类:处理图像的设备,比如:扫描仪、摄象机等; 打印机设备类:比如打印机等。 3 、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 系统软件与设备软件 间有如下几种交互作用: 设备编号和设置; 同步数据传输; 异步数据传输; 电子科技大学工学硕士学位论文 电源管理: 设备和总线管理。 2 3u s b 数据通信模型 u s b 协议所况的通信指的就是u s b 设备和u s b 主机之间的通信。 物理上,总线上的设备通过一条物理连线和主机通信,所有的设备共享这 条物理链路。逻辑上,主机给每个设备提供了一条逻辑的连接,每个设备 都有这样一条点对点的连接5 1 。 从终端用户的角度看到的u s b 系统,可简单地用图2 - 1 表示。 图2 1 主机利设备的连接不意图 但在实际的实现上,具体的系统要比这复杂,不同层次的实现者对 u s b 有不同的要求。为了细化u s b 的通信机制,u s b 协议的开发者采用 了分层的概念,将u s b 通信逻辑上分成了三层【5 】1 6 1 7 】:信号层、协议层和 数据传输层,如图2 2 。信号层用来实现在u s b 设备和主机的物理连接之 间位信息流的信息。协议层用来实现在u s b 设备和u s b 主机端的协议软 件之间包字节流的信息,它们在信号层被编码成n r z i 位信息后传送出去。 数据传输层用来实现u s b 主机端的客户端驱动程序和设备端的功能接口 之间传输有定意义的信息,这些信息在协议层被打包成包的格式。 为了方便,将信号层传输的位信息流称为包( p a c k e t ) ,将协议层传输 的包信息流称为事务处理( t r a n s a c t i o n ) ,将数据传输层传输的信息流称为 传输( t r a n s f e r ) 。所有的传输最终都以比特流的方式在信号层上实现通信。 协议逻辑上将设备分成了三层实体:总线接口、端点和功能接口,如 图2 - 2 右侧所示。 1 、总线接口 总线接口的功能除了传送和接收数据信号外,逻辑上还包括识别设备 当前唯一地址。设备的地址是在设备插入到总线上时,由u s b 主机分配 的,范围从0 1 2 7 。当总线上有包传输时,设备的总线接口接收到此包, 通过解析其中的设备地址判断此包是否发送给自己的,如果不是则忽略此 包,否则判断此包是发送个给哪个端点的,并将整理后的包传送到上面的 协议层对应的端点。 u s b 设备 数据传输层 接口 u s b 主机 协议层 端点 信号层lu s b 总i i 线接口l i1 = = = = = 今 逻辑通信 物理通信 图2 - 2u s b 通信的分层结构 2 、端点 端点是设备端用于传输数据的接收点和发送点,它的功能相当于其他 总线设备的i o 端口,具有方向性:输入和输出。所有设备都要求有一个 端点0 ,它用来接收u s b 主机发送的控制命令,完成对设备的控制和状态 反馈,称为默认端点。主机端的客户端驱动程序也是通过与设备接口的端 点的数据传输实现对设备驱动的。在本设计中,u s b 主机将为设备配置两 个端点用于文件传输,b 目批量输出端点b u l k i n 和批量输出端点 b u l k o u t 。 3 、功能接口 由一组端点组成,用来完成特定的功能。每个设备可以同时提供多个 功能接口,如打印机和扫描仪等。u s b 主机端为每个接口提供了客户端驱 动程序,驱动程序和接口之间通过交互,完成有特定意义的数据传输。 2 4 传输的基本单元一包 包( p a c k e t ) 是u s b 系统中信息传输的基本单元,所有数据都是经过 打包后在总线上传输的。分析u s b 数据包格式,是进行u s b 系统软件设 计必须要完成的工作。 电子科技大学工学硕士学位论文 2 4 1 包的组成 根据u s b 规范,u s b 总线上的数据总是以u s b 包的结构在总线上进 行传输,而每个u s b 包都是由不同的字段组成【5 1 7 1 8 】 9 1 。 u s b 包由5 个字段组成,即同步( s y n c h r o n i z a t i o ns e q u e n c e ,简称 s y n c ) 字段、包标识符( p a c k e ti d e n t i f i c a t i o n ,简称p i d ) 字段、数据字 段、循环冗余校验( c r c ) 字段和包结尾( e n do f p a c k e t ,简称e o p ) 字 段,图2 - 3 显示了包的基本格式。 同步宇段p i d 字段 数据c r c包结尾字段 ( s y n c )( p i d )字段字段 ( e o p ) 图2 - 3 包的基本格式 l 、同步字段 任何类型的u s b 包都必须以同步字段作为起始。同步字段用于本地 时钟与输入信号的同步,由8 个数据位组成,其作用与以太网中的前同步 码相似,目的是使u s b 设备与总线的包传输率同步。同步字段的数值固 定为0 0 0 0 0 0 0 1 ,如图2 - 4 所示。 l s bm s b 图2 - 4u s b 包的同步字段 2 、包标识符( p i d ) 字段 包标识字段紧跟在同步字段之后,作用是标明包的类型和格式,并作 为包的错误检测手段的一种。由于同步字段主要是由硬件来处理的,因此, 标识字段就是u s b 软件机制最先收到并处理的包的内容。u s b 主机和设 备都要首先对接收到的标识字段进行解码。如果出现错误或是该标识字段 指明的类型或方向不被支持,那么这个包会被忽略。比如,u s b 接口芯片 中定义的i n 端点,在接收到o u t 标识字段后,就会把相应的包忽略掉。 标识字段由4 位标识符和紧跟的4 位标识符的反码组成,总共8 位, 如图2 - 5 所示。 l s b m s b 图2 - 5 标识字段p i d 标识字段中关键的标识符由4 位二进制数组成,因而,可以计算出, u s b 能够定义的包的类型总共有1 6 种。在u s b l 1 协议中,使用了其中的 电子科技大学工学硕士学位论文 1 0 种,也就是定义了1 0 种不同的类型包。 u s b l 1 支持的包类型包括:令牌包( t o k e np a c k e t ) 、数据包( d a t a p a c k e t ) 、握手包( h a n d s h a k ep a c k e t ) 和特殊包( s p e c i a lp a c k e t ) 四种类 型。表2 - l 列出了包标识符的类型,编码及其描述【引。 表2 1 包标识符的类型、编码及描述 数据包类标识字段名称 编码描述 五! i 输出( o u t ) 0 0 0 1从主机到设备的数据传输 令牌包输入( i n )1 0 0 1从设备到主机的数据传输 帧起始( s o f ) 0 1 0 1帧的开始和帧号 设置( s e t u p )1 1 0 1从主机到设备标识要进行控制传输 数据包数据0 ( d a t a 0 ) 0 0 1 l偶数据包 数据1 ( d a t a l ) 】0 1 1 奇数据包 确认( a c k ) 0 0 1 0 接收端收到没有错误的数据包 握手包无效( n a k )10 1 0 接收端无法接收数据或发送端无法发送数据 错误( s t a l l )1 1 1 0端点被禁止或不支持控制管道请求 特殊包前同步( p r e ) 1 1 0 0 由主机发送的前同步字,表示将进行低速设备 的总线通信 3 、数据字段 在u s b 包中,数据字段用来携带主机与设备之间要传递的信息,其 内容和长度根据包标识符、传输类型的不同而各不相同。并非所有的u s b 包都必须有数据字段,例如握手包。在u s b 包中,数据字段可以包含设 备地址、端点号、帧序列号以及数据等类容。在总线传输过程中,所有的 u s b 数据字段总是以l i t t l ee n d i a n 的方式存在,即总是首先传输字节的最 低位,最后传输字节的最高位。 设备地址 在u s b 数据传输过程中,u s b 主机总是通过唯一的设各地址与总线 上特定的u s b 设备进行数据传输。设备地址由主机进行分配,由7 位二 进制数组成,如图2 - 6 ,因而最多可以拥有1 2 8 个不同的设各地址,其中 地址o 被系统保留,仅仅用在设备的枚举过程。 l s bm s b 区五匾五正五五亟五亟正画蜮 图2 - 6 设各地址字段 端点号 电子科技大学工学硕士学位论文 从硬件的角度看待端点,它其实就是u s b 中一系列实际的物理数据 缓冲区,发送和接收的数据都存储在这里。一个设备可以有很多种传输方 式来与主机进行数据通信,每一种传输中都可以有特定的端点。从设备端 来说,端点一般都直接由u s b 接1 :3 芯片来提供,功能较强的芯片都会提 供多个具有一定容量的端点,开发人员在设计u s b 程序时一个任务就是 要合理分配这些端点,而每一次u s b 的数据传输都是在某一个特定的端 点和主机之间进行的。因此,端点号也是每一次u s b 数据传输非常重要 的参数。 有关端点号的结构如图2 7 所示。 l s bm s b 图2 7端点域e n d p 由图2 7 可以看到,端点号由4 位二进制数组成,因此,一个u s b 设备能够拥有的端点容量为1 6 个。但是,并不是每一种u s b 设备都能实 际拥有1 6 个端点。u s b 协议规定,低速设备只能定义两个端点,即端点 0 和端点1 ( 这个0 和1 就是端点号) 。此外,除端点0 以外,任何一个端 点都可以定义为i n 端点或o u t 端点,因此一个全速设备则能定义1 6 + 1 6 = 3 2 个端点【5 】。很多u s b 接口芯片本身已经确定了端点的数量和属性, 用户只能按照既定的端点进行编程。 帧序列号 当u s b 令牌包的p i d 为s o f 时,其数据字段必须为1 l 位的帧序列 号如图2 - 8 。帧序列号由主机产生,且每个数据帧,自动加一,最大数值 为0 x 7 f f 。当帧序列号达到最大数时将自动从0 开始循环。 l s b m s b 图2 - 8 帧号域f r a m 数据 数据字段( d a t af i e l d ,简写为d a t a ) 中的数据长度为o 1 0 2 3 字节, 在不同的传输类型中,数据域的长度各不相同。但是,必须为整数各字节 的数据。数据字段的结构如图2 - 9 所示。 电子科技大学工学硕士学位论文 m s bl s b m s bl s b 正匝正五丑五匦五丑习臣习 图2 - 9 数据字段 4 、循环冗余校验( c r c ) 字段 循环冗余校验域( c y c l i cr e d u n d a n c yc h e c k s ,简称为c r c ) ,简称为 校验域。标识字段p i d 可以通过其反码叠加来校验。这里的c r c 则是用 来对令牌包和数据包中非p i d 的字段进行校验的一种方法。对于令牌包, u s b 采用5 位的c r c 校验法,简写为c r c 5 。而对于数据包,则采用1 6 位的c r c 检验法,简写为c r c l 6 1 5 1 “。 c r c 校验的一般做法是,发送数据的一方,对所要检验的数据进行 一些运算,把结果作为c r c 本身的值,填入到c r c 字段中,然后发送数 据。当接收方接到数据后,也进行类似的运算,把运算的值与c r c 域的 值进行比较,如果一致,表明数据传输中没有出现错误。在很多u s b 接 口芯片中,c r c 检验都是由硬件来完成的。 2 4 2 包的类型 根据p i d 类型,u s b l 1 规范支持四类不同类型的数据包7 】 8 :令牌 包、数据包、握手包和特殊包。 l 、令牌包( t o k e np a k e t ) 根据标识域p i d 的不同,令牌包( t o k e np a c k e t ) 又可细分为输入包 i n 、输出包o u t 、设置包s e t u p 和帧起始包s o f 。而i n 、o u t 和s e t u p 这3 种包的结构是一样的,如图2 一l o 所示。 8位8位7位4位5 位 j s y n c f p i d ia d d r e n d pl c r c 5 l 图2 1 0i n 、o u t 和s e t u p 包的数据格式 输入包i n 、输出包o u t 和设置包s e t u p 都包含同步域s y n c 、标 识域p i d 、地址域a d d r 、端点域e n d p 和校验域c r c 5 。其中循环冗余 校验c r c 5 是对地址域a d d r 和端点域e n d p 总共1 1 位数进行校验。 帧起始包s o f 的结构与i n 、o u t 、和s e t u p 包有所不同,如图2 1 1 所示。其中增加了1 1 位的帧起始域f r a m ,用于代表帧号。丽不包括7 位的设备地址( a d d r ) 和4 位的端点号( e n d p ) 。c r c 5 则是对f r a m 的1 1 位数据的校验。 电子科技人学t 学硕士学位论文 图2 1 1 帧起始包s o f 数据格式 2 、数据包( d a t ap a c k e t ) 根据p i d 的不同,数据包( d a t ap a c k e t ) 分为d a t a 0 和d a t a l 两 种包。两种数据包的数据格式都是一样的,用法也相同。当u s b 发送数 据包的时候,如果一次发送的数据长度大于相应端点的容量的时候,就需 要把该数据分成好几个包,分批发送。如果第一个数据包被确定为d a t a 0 , 那么第二个发送的数据包就应该是d a t a l 如此交替下去。而数据的接 收方在接收数据时检查其类型是否是d a t a 0 、d a t a l 交替的,这是保证 数据交换正确的机制之一。这两种数据包的结构如图2 。1 2 所示。 8 位8 位0 1 0 2 3 字节1 6 位 幽2 1 2 数据包d a t a 0 、d a t a l 数据格式 由图2 1 2 可知,数据包都由同步域s y n c 、标识域p i d 、数据域d a t a 和校验域c r c l 6 组成。其中数据域o 1 0 2 3 字节的长度,内容就是u s b 上发送的有效数据。这里,循环冗余校验采用了1 6 位的c r c l 6 ,主要就 是针对d a t a 域的数据进行校验。需要注意的是,数据域d a t a 中的数据 必须是整数个字节的。 3 、握手包( h a n d s h a k ep a c k e t ) 握手包( h a n d s h a k ep a c k e t ) 是结构最为简单的包【5 】f 引,其数据格式如 图2 - 1 3 所示。握手包仅由同步字段s y n c 和标识字段p i d 组成,用于报 告数据的传输状态,比如数据是否成功接收、是否准备好接收或发送数据, 以及是否出现错误等等。根据p i d 的不同,握手包可分为三种类型,即确 认包a c k 、无效包n a k 和出错包s t a l l 。 8位8位 二亟二工二亘二 图2 - 13 握手包数据格式 2 5 u s b 的数据传输类型及事务 2 5 1 数据传输与事务的关系 u s b 的传输【5 】【7 】1 8 】,是u s b 面向用户的、最高级的数据结构。u s b 电子科技火学t 学硕十学位论文 定义了4 种数据传输的类型,即控制传输、中断传输、批量传输和同步传 输。u s b 运用这4 种传输方式就可以完成各种类型的数据传输。比如不可 间断的音频数据传输,就可用同步传输方式来传输;f a t 文件等大容量的 数据传输等就可以用批量传输的方式进行;而像鼠标、键盘等这种没有数 据发送速度的要求,数据量又小的设备采用的是中断传输方式。每一种传 输方式都是面向不同的数据类型的,都有自身的一些特点。 在对应某种传输方式的个传输中,包括一个或多个事务( 每个事务 包括一个、两个或多个包) 。一个事务是一个单个的通信,它必须是无中 断的完成,即没有其他通信可以插入到一个事务中去,每个事务包括识别、 错误检测、状态和控制信息。 事务( t r a n s a c t i o n ) 和传输( t r a n s f e r ) 的关系是理解u s b 数据传输 的核心。从概念上来说,事务是小单位,而传输则是意义更为广泛的大单 位。传输是由事务组成的,而事务按照其特点分为3 种类型:输入( i n ) 事务、输出( o u t ) 事务和设置( s e t u p ) 事务。也就是说,任何一种传 输都是由这3 种事务所组成的,不同的只是这3 种事务的组合和搭配情况。 下面分别分析各种传输方式及事务。 2 5 2 控制传输 控制传输( c o n t r o lt r a n s f e r ) 是最为复杂的传输类型,也是最为重要 的传输类型,是u s b 枚举阶段最主要的数据交换方式。当u s b 设各初次 连接到主机之后,就通过控制传输来交换信息、配置设备地址和读取设备 的描述符。这样,设备才能够识别该设备,这个设备采用的其余3 种可能 的传输方式才能得以使用。 控制传输的核心是s e t u p 事务,u s b 定义了较为复杂的控制传输 结构,将其分为3 个大的步骤:l 、初始设置步骤;2 、可选数据步骤;3 、 状态信息步骤。这3 个步骤是按顺序依次进行的,其中可选数据步骤中可 包含一笔或多笔事务事务处理过程。 1 、初始设置步骤 在初始设置步骤里,包含三个阶段:l 、令牌包阶段:u s b 主机首先 向某个u s b 设备的控制端点发送设置令牌包( s e t u p ) :2 、数据包阶段: 主机发送装有8 个字节命令信息的数据包( d a t a 0 ) ,并且有确定的结构, 将这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 i n d e x 和w l e n g t h 。通过这些命令信息,主机就能够通知设备提供哪些数 据,以此来进行配置;握手包阶段:设备接收到数据包后必须接收数据并

温馨提示

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

评论

0/150

提交评论