




已阅读5页,还剩73页未读, 继续免费阅读
(测试计量技术及仪器专业论文)主动、从动usb接口的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈刚工业大学硕十学位论文 摘要 近年来,通用串行总线( u n i v e r s a ls e r i a lb u s ) 发展非常迅速,具有成本低、速度 快、易于扩展、可热插拔等诸多优点,得到了广泛的应用。u s b 技术规范将u s b 数据传 输双方划分为两种类型:h o s t 和s l a v e ,即主机和从属设备。目前,u s b 主机一般都是 由p c 机担任,而市场上的u s b 产品基本上都是从属设备。在以单片机等微处理器为核 心的嵌入式系统的应用中,尚缺少与u s b 产品的直接接口技术。因此,主动u s b 接口的 嵌入式应用就成了u s b 领域新的研究焦点。利用单片机直接读写u 盘,从而实现便携仪 器或者嵌入式系统的外挂式海量存储,具有广阔的市场前景。在此基础上,人们也希望 带有主动u s b 接口的系统同时兼有通用u s b 设备的功能,在需要的时候依然可以与p c 机通信。本文遵循这种新的设计思想对主动、从动u s b 接口模块进行了开发和实践。 本系统选用华邦公司的w 7 8 e 5 4 b 芯片作为主c p u ,选用c y p r e s s 公司的s l 8 1 1 h s 作为 u s b 主从控制芯片,构建了主动、从动u s b 接口模块。系统硬件具有成本低、功耗小、 速度快等特点。在主动u s b 接口的软件设计上,系统完成了u s b 主机控制器驱动程序、核 心驱动程序以及用户软件的设计,可很好地完成设备的枚举、配置等功能;系统支持m a s s s t o r a g e 类协议,并建立了精简的f a t ( f i l ea l l o c a t i o nt a b l e ) 文件系统,可以完成对u 盘上文件的读、写等操作。在从动u s b 接口的软件设计上,系统完成了设备端的单片机 固件程序的设计,采用v c + + 、d d k 与d r i v e r s t u d i o 相结合的方法开发了p c 主机的设备驱 动程序和用户应用程序,以实现该模块作为设备时与p c 主机的数据传输。 按照论文中提出的方法开发了主动、从动u s b 接口模块。实验证明本系统运行稳定, 代码精简,具有很好的可移植性,可以很方便的移植到其他的单片机、d s p 等嵌入式系 统中。 关键词:主动从动u s b 接口,u 盘,单片机 主动、从动u s b 接口的实现 t h er e a l i z a t i o no fh o s t s l a v eu s bi n t e r f a c e a b s tr a c t u s b ( u n i v e r s a ls e r i a lb u s ) h a sb e e nd e v e l o p i n gr a p i d l yi nr e c e n ty e a r s ,h a v i n gt h e a t t r i b u t e so fl o w - c o s t , r a p i d - s p e e d ,e a s e o f - e x t e n d ,p l u g - a n d p l a y ,s oi ti sa p p l i e d 、i d e l y u s bs p e c i f i c a t i o nc o m p a r t m e n t a l i z e st h ed a t at r a n s f e rs y s t e mt ot w op a r t s :h o s tc o m p 咖 a n dp e r i p h e r a ld e v i c e a tp r e s e n t ,p ca c t sa st h eh o s tc o m p u t e r , t h em a r k e t su s b p r o d u c t s a c ta st h ep e r i p h e r a ld e v i c e b u tt h ee m b e d d e ds y s t e m sw h i c hu s em i c r o c o m p u t e rs u c ha s m c ua st h ec o r el a c kt h ed i r e c ti n t e r f a c e st ou s bp r o d u c t s a sar e s u l t t h eh o s tu s b i n t e r f a c ea p p l i e dt h ee m b e d d e ds y s t e m sb e c o m e st h ef o c u so fu s bf i e l d m c ur e a d sa n d w r i t e sf l a s hm e m o r yd i s kd i r e c t l y ,f u r t h e r m o r et h et e c h n o l o g yc a nb ea p p l i e do ni n s t r u m e n t s t or e a l i z ep o r t a b l ei n s t r u m e n t o nt h eb a s i so ft h eh o s tu s bi n t e r f a c e t h es y s t e mw i mt h e s l a v eu s bi n t e r f a c ew h i c hc a i b eu s e da sp e r i p h e r a ld e v i c ei sm o r ep o p u l a r t h i sp a p e r f o l l o w st h en e wi d e at od e s i g na n dp r a c t i c et h eh o s t s l a v eu s bi u t e r f a c e t h es y s t e ms e l e c t sw i n b o n d sw 7 8 e 5 4 bt oa c ta st h ec p u a n ds e l e c t sc y p r e s s s s l 8 11 h st oa c ta su s bh o s t s l a v ei n t e r f a c ec h i pt ob u i l d u pt h ei n t e r f a c em o d u l e 1 1 1 e h a r d w a r eo ft h es y s t e mp o s s e s s e st h ev i r t u eo fc h e a p n e s s ,s p e e d i n e s s ,e t e f r o mt h ep o i n to f t h eh o s tu s b s o f t w a r e ,t h es y s t e mi n t e g r a t e su s bd r i v e r ,u s bh o s tc o n t r o l l e rd r i v e ra n du s e r s o f t w a r e ,i te n u m e r a t e sa n dc o n f i g u r e sf l a s hm e m o r yd i s kw e l l m o r e o v e r , t h es y s t e mf o l l o w s m a s ss t o r a g ec l a s sp r o t o c o la n de s t a b l i s h e sf a t ( f i l ea l l o c a t i o nt a b l e lf i l es y s t e ms ot h a ti t c a nr e a da n dw r i t ef l a s hm e m o r yd i s k n 嵋s l a v eu s bs o f t w a r ei n c l u d e sd e v i c ee n d s f i r m w a r ea n dp ce n d sd e v i c ed r i v e rw h i c hi se x p l o i t e du s i n gv c + + d d ka n dd r i v e r s m d i o a sw e l la sp ce n d su s e rs o f t w a r et or e a l i z et h em o d u l ea c t i n ga su n i v e r s a ld e v i c et o c o m m u n i c a t ew i t hp c a c c o r d i n g t ot h em e t h o di n t r o d u c e di nt h i sp a p e r ,t h eh o s t s l a v eu s bi n t e r f a c em o d u l ei s e s t a b l i s h e ds u c c e s s f u l l y 1 1 l ce x p e r i m e n t sp r o v e dt h a tt h i ss y s t e mi sr e l i a b l e e x t e n d a b l ea n d c a nb et r a n s p l a n t e dt oo t h e re m b e d d e ds y s t e m k e yw o r d s :h o s t s l a v eu s bi n t e r f a c e ,f l a s hm e m o wd i s k , m c u 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 沈阳工业大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表 示了谢意。 签名:聋鱼日期:塑塑堕! 旦 关于论文使用授权的说明 本人完全了解沈阳工业大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 签名:暂钯 导师签名:羹壁茑 日期:型堑尘壁! 璺 沈阳:【业大学硕士学位论文 1 绪论 1 1 课题来源 本课题是自选课题,课题名称为:主动、从动u s b 接口的实现。 1 2 课题研究目的 通过本课题的研究,完成主动u s b 接口的设计,具体目标是完成单片机对u 盘的读 写;完成从动u s b 接口的设计,实现单片机与p c 机的通信。 1 3 课题研究意义 当今的计算机外部设备,都在追求高速度和高通用性。为了满足用户的需求,以 i n t e l 为首的七家公司于1 9 9 4 年推出了u s b ( u n i v e r s a ls e r i a lb u s ,通用串行总线) 总线协议,专用于低、中速的计算机外设i l l 。近年又推出了u s b 2 0 协议支持高速设备。 目前,u s b 端口己成为了微机主板的标准端口;几乎所有的微机外设,包括键盘、鼠标、 显示器、打印机、数字相机、扫描仪和游戏手柄等等,都通过u s b 与主机相连。可以分 为几大类:存储类,如移动存储,移动硬盘,c d d v d ,读卡器等;有线连接类,如u s b 网卡、d s l 路由器、共享器等;蓝牙及无线类,如蓝牙转换器、无线网卡等;人机界面 类,如键盘、鼠标等;影音图像类,如m p 3 、u s b 音像等;还有如p d a 、m o d e m 、电话等。 目前,u s b 在存储类设备和影音图像类设备中应用尤为广泛,特别是u 盘,价格适中, 使用方便,己逐渐成为替代软驱的新一代移动存储工具,在工业、商务、办公事务上应 用越来越广泛1 2 川。 u s b 是将适用u s b 的外围设备连接到p c 主机的外部总线结构,是通过p c i 总线和 p c 的内部系统数据线连接,实现数据的传送【5 1 。u s b 同时又是一种通信协议,它支持主 系统( h o s t ) 和u s b 的外围设备( d e v i c e ) 之间的数据传送。在u s b 架构的传输协议和 网络协议中,每个u s b 系统有且只有一个h o s t 6 1 。所以现在市面上流行的大部分u s b 设 备是无法脱离p c 机而单独存在的。这个特点决定了在一些相对简单的微控制器系统中 无法直接应用u s b 产品,例如一些工业控制产品,无u s b 接口,无法读取u 盘的数据或 进行写入操作。因此,主动u s b 接口的嵌入式应用就成了u s b 领域新的研究焦点m 。利 用单片机直接读写u 盘,从而实现便携仪器或者嵌入式系统的外挂式海量存储,具有广 主动、从动u s b 接口的实现 阔的市场前景。在此基础上,人们也希望带有主动u s b 接口的系统同时兼有通用u s b 设 备的功能,在需要的时候依然可以与p c 机通信。 如果把主动u s b 接口根据需要稍加改动成为嵌入式u s b 主机,它可以被移植到很多 应用领域:比如移动家电,p d a 与u s b 记忆棒传递数据、m p 3 之问传递歌曲、数码相机 连接打印机【8 】。因此,具有很强的应用背景和市场f i 景。 从动u s b 接口可以实现微控制器与p c 机之间的高速的数据传输。由于u s b 总线的 高速、灵活和易扩展性,在工业场合也受到足够的重视,并已应用于很多数据传输场合, 比如数据采集,视频采集,大型喷印系统等;还被应用于工业控制场合,高实时性要求 的工业设计控制、动态图像实时传输等f 9 】。 从系统硬件构成来讲,本课题所选择的方案是用一款具有主、从两种工作模式的u s b 接口芯片来实现主动、从动u s b 接口的设计。这样,既精简了系统,又为使用提供了方 便。 1 4 国内外研究现状 主动u s b 接口作为u s b 的推广应用,在国内外均处于积极研究和发展的阶段。现今 已有为数不少的半导体公司提供主动u s b 接口芯片,如p h i l i p s ,c y p r e s s ,a t m e l 等, 市场上也逐步出现具有部分功能的嵌入式u s b 主机产品。 将主动u s b 接口应用于消费类产品,如数码相机直接连接打印机国外已经有所发展。 但是一般只能支持某种特定型号的打印机。大多数厂家和u s b 论坛所能提供的产品或例 程多数是基于嵌入式操作系统w i n c e 和l i n u x 的,给出的u s b 器件类也不尽完善1 1 0 1 。 在国内,主动u s b 接口的研究仍然处于起步阶段,仅有很少量u s b 嵌入式主机的产 品问世。中国电子科技集团公司电子4 1 所的向前实现了在嵌入式系统中利用u s b 接口 芯片s l 8 1 1 h s 对u 盘的读、写。但是,他研发的系统只能支持特定型号和容量的u 型。 河北科技大学的智兆华和石家庄西格玛公司的张鹏采用u s b 接口芯片c h 3 7 5 实现了单片 机读、写u 盘。他们在一篇论文中提到当某些u 盘插入时,有时会出现问题:c h 3 7 5 复 位或者单片机复位( 尤其是采用监控电路的单片机系统) :c h 3 7 5 或者单片机突然工作 不正常,失去控制;c h 3 7 5 芯片的工作电流突然增大并且持续如此,时间长了芯片发热 烫手。 沈阳 :业大学硕十学位论文 对于从动u s b 接口的开发,国内外的研究起步都很早,现在技术发展的也比较成熟。 在工业数据传输场合,有的采用带u s b 接口的单片机进行开发,还有的采用微处理器外 加u s b 接口芯片的方法。带u s b 接口的单片机从应用上又可以分成两类,一类是从底层 设计专用于u s b 控制的单片机,比如c y p r e s s 公司的c y 7 c 6 3 5 1 3 ( 低速) 、c y 7 c 6 4 0 1 3 ( 全速) ,但由于价格、开发工具以及单片机性能有限等问题,所以一般不选用。另一 类是增加了u s b 接口的普通单片机,例如i n t e l 公司的8 x 9 3 1 ( 基于8 0 5 1 ) 、8 1 9 3 0 ( 基 于高速、增强的8 0 5 1 ) 、c y p r e s s 公司的e z - - u s b ( 基于8 0 5 1 ) ,选择这类u s b 控制器 的最大好处在于开发者对系统结构和指令集非常熟悉,开发工具简单,但对于简单或低 成本系统,价格高是最大的障碍。一般来说,后者的价格是前者价格的1 0 倍。纯粹的 u s b 接口芯片仅处理u s b 通信,必须有一个外部微处理器来进行协议处理和数据交换。 许多从动u s b 接口设计中采用的典型产品有p h i l i p s 公司的p d i u s b d l l ( 1 2 c 接口) 、 p d i u s b d l 2 ( 并行接口) ,n s 公司的u s b n 9 6 0 3 9 6 0 4 ( 并行接口) ,n e t c h i p 公司的n e t 2 8 8 8 等。u s b 接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改 型设计1 1 3 j 。 1 5 目前存在的问题 在1 4 节提到的有关本课题的国内外研究现状中,一般采用u s b 主、从控制器芯片 仅完成主动u s b 接口的功能;或者采用u s b 接口芯片完成从动u s b 接口的设计。而尚未 查找到用一款u s b 主、从控制器芯片完成主动、从动双重功能的u s b 接口的设计。 此外,在利用主动u s b 接口实现单片机读、写u 盘的方案中,也存在着对u 盘型号、 容量的挑剔或者系统本身工作不稳定的问题。 1 6 本课题研究设想和预期目标 本课题要完成主动、从动u s b 接口的设计。 主动u s b 接口的具体目标是完成单片机对u 盘的读写。预期目标如下:实现u s b 接 口,在系统中直接接入u 盘。构建u s b 协议栈,实现m a s ss t o r a g e 类协议及相关子类 命令,构成特定而独立的u s bh o s t 。从而完成对u 盘的如下操作:检测u 盘的状态( 如 主动、从动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 接口的软件设计。 第七章是本文的结论,主要叙述在做本课题的过程中遇到的问题及解决方法。 沈阳工业大学硕十学位论文 2u s b 协议概述 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 相关规范进行简单的介绍,给出对u s b 技术 的一个总的认识;然后,再分章节分别介绍其与主动、从动u s b 接口编程密切相关的部 分:u s b 数据通信结构、u s b 协议栈框架、u s b 设备类和u s b 主机。 2 1 1u s b 的特点 u s b 不仅已经成为p c 主板上的标准接口,而且成为所有p c 外部设备如键盘、鼠标、 显示器、打印机、数码相机、扫描仪和游戏手柄等与p c 相连的常用标准协议,并迅速 占领了计算机中、低速外设的市场,大有取代r s 一2 3 2 串口和s p p ,e p p 并口之势。u s b 的优点主要包括以下几个方面: ( 1 ) u s b 的易用性:支持热插拔和即插即用,以及操作系统的自动配置。在不关闭 p c 或嵌入式系统的情况下,可以安全地插上和断开u s b 设备,计算机系统可以动态地检 查外设的插拔,并动态地加载程序。 ( 2 ) 总线拓扑结构完备,易于扩展:u s b 分层的星型总线结构,能够支持多达1 2 7 个外设同时连接,具有很灵活的端口扩展性,且易于扩展。 ( 3 ) 硬件结构标准化:u s b 协议规定了两种标准的接插件:a 型和b 型。其中a 型 是下行端口,b 型是上行端口。不同u s b 设备之间的硬件接口的统一,为整个u s b 拓扑 结构的实现奠定了基础,为最终用户的使用提供了便捷。 ( 4 ) 可供选择的速度模式及传输模式:u s b 支持三种类型的传输速率:1 5 m b s 的 低速传输、1 2 m b s 的全速传输和4 8 0 m b s 的高速传输;支持四种传输类型:批量传输、 同步传输、中断传输和控制传输,满足系统设计的不同需求。 ( 5 ) 低功耗:u s b 具备一套独特的电气层机制以保证其低功耗。此外,u s b 协议定 义u s b 设备采取自供电或总线供电方式,或者使用两种供电方式的组合。在总线供电方 主动、从动u s b 接口的实现 式下,u s b 设备无需外接电源,简化了硬件结构。同时还支持节约能源的挂起和唤醒模 式。 ( 6 ) 齐备的设备类:u s b 对多种设备类的技术支持,使其可以满足绝大部分计算机 外设的需求。例如:游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等。 但u s b 接口也还有一些不足,主要是: ( 1 ) 能提供电流的能力还不够大,如果外设的所需电流大于5 0 0 m a 时,设备必须 外接电源。 ( 2 ) 传输距离有限,即便是用h u b 来扩展,最远也不超过3 0 米。 为了扩展u s b 的应用范围,很多公司在u s b 规范上添加了新的功能,例如p o w e r e d u s b 和e x t r e m eu s b ,前者加大了u s b 的供电能力,后者延长了u s b 的传输距离。 2 1 2u s b 系统模型和拓扑结构 最简单的u s b 系统模型组成是以u s b 主机为核心,以外围的u s b 设备为特定功能的 设备模块。即u s b 提供的是主机和设备中间的一种数据通信服务。此外,为了构建更复 杂的u s b 系统,还需要加上u s b 集线器( h u b ) 。集线器是u s b 即插即用技术中关键的 一环,提供了u s b 的连接端1 3 ;u s bh u b 既可以以独立硬件实体的方式存在,也可以嵌 入到任何u s b 设备中,用于级联下一级设备。 u s b 主机包括p c 或嵌入式系统两种类型,每一次u s b 数据通信都必须是由u s b 主机 来发起的( 远程唤醒模式除外) ,主机管理着每个u s b 设备。即使新兴的u s bo n t h e g o 设备,其核心部分仍然是嵌入了u s b 主机的功能。主动u s b 接口的方案主要是基于嵌入 式u s b 主机的u s b 系统模型。 i j s b 的拓扑体系由三种元素组成:主机、h u b 和设备,通过h u b 的级联,构成了层 次化的星形结构。u s b 的拓扑结构如图2 1 所示。 2 1 3u s b 规范简介 u s b 的所有标准主要包括三部分:u s b 基本规范( u s b l 1 、u s b 2 0 标准等) 、u s b 设备类规范和u s bh o s t 控制器规范。 在u s b 基本规范中,规定了u s b 总线的系统结构,物理、机械、电气特性,数据传 输格式,u s bh u b 等u s b 总线的基本内容。其中,u s b l 1 和u s b 2 0 及其补充规范o t g 沈日it :业大学硕士学位论文 在实际产品中应用比较广泛“4 旧。此外,u s b 把常用的计算机外设根据其功能特性分类, 为每类设备制定了设备与主机进行数据传输的标准,用来指导相关的u s b 设备接口设计。 u s bh o s t 控制器规范则规定了u s b 主机硬件接口,有几种不同的工业标准。在设计u s b 协议栈时,必须了解相关的u s b 主机控制器规范。 图2 1u s b 的拓扑结构 f i g 2 1u s bp h y s i c a lb u st o p o l o g y 2 2u s b 数据通信结构 u s b 协议中最为复杂的是底层数据通信结构的内容,其中包括了最基本的数据传输 单元、数据传输类型、数据传输机制及数据交换流程等。本节在充分遵从u s b 协议的基 础上,试图用最为准确的语苦来描述这部分内容。为便于理解,在内容的阐述方式上做 了一些特殊理解,对相对概念做了强调,尤其是对传输和处理事务等易混淆的概念,做 了详细分析。根据实际应用的需求,相关的内容主要是建立在u s b 协议1 1 的基础之上。 2 2 。1 数据通信协议简介 数据通信协议部分是u s b 的核心内容。主要包括:以差模串行信号为载体传送二进 制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。数据包 可以分解为更小的单元域;以包为基础,构成u s b 的三种事务。进而,组合不同的 传输类型,传输各种类型的数据,实现u s b 的各种功能。 包是u s b 最基本的数据单元,每个包,基本包含一个完整的u s b 信息。按照其在整 个u s b 数据传输中的作用不同,包分为三类:令牌包、数据包和握手包。他们之间的区 主动、从动u s b 接口的实现 别是由更小的单元域来划分的。域又分为七类:同步序列域、包标识域、地址域、 端点域、帧号域、数据域和c r c 校验域。 以包为基础,u s b 定义了四种数据的传输类型:控制传输、中断传输、批量传输和 同步传输。每一种类型都由一定的包按照某种特定的格式组成。不同的传输类型的最大 传输速度、占用u s b 总线的带宽、传输数据的总量和应用场合等都是不同的。传输是一 种比较笼统的说法,在实际的数据传输中,往往还需要细分为多个数据交换过程,每一 次的数据交换过程既不能叫做某种传输,也不是包,而是另外一个重要的概念处理 事务。每种传输方式都由多个处理事务来完成,每一笔处理事务由底层包组成。域、包、 处理事务和传输的关系如图2 2 所示。 为了细化u s b 的通信机制,u s b 协议的开发者采用了分层的概念,每一层传输的数 据结构对其他逻辑层是透明的。图2 3 显示了u s b 设备和u s b 主机通信的逻辑结构和每 层的逻辑通道。为了便于理解u s b 协议,将u s b 通信逻辑上分成了三层:信号层、协议 图2 2 域、包、处理事务和传输的关系 f i g 2 2t h er e l a t i o no f f i e l dp a c k e tt r a n s a c t i o na n dt r a n s f e r 层和数据传输层。信号层用来实现在u s b 设备和主机的物理连接之问传输位信息流的信 息。协 义层用来实现u s b 设备和u s b 主机端的系统协议软件之间传输包字节流的信息, 沈阳工业大学硕士学位论文 它们在信号层被编码成n r z i 位信息后传送出去。数据传输层用来实现在u s b 主机端的 客户端驱动程序和设备端的功能接口之间传输有一定意义的信息,这些信息在协议层被 _ _ _ _ _ _ = := = = = := = 图2 3u s b 通信的逻辑结构 f i g 2 3t h el o 鲥c a lc o n f i g u r a t i o no f u s b c o m m u n i c a t i o n 打包成包格式。协议将信号层传输的位信息流称为包,将协议层传输的包信息流称为处 理事务,将数据传输层传输的信息流称为传输。所有的传输最终都以比特流的方式在信 号层上实现通信。 2 2 2 数据传输类型 u s b 的传输,是u s b 面向用户的最高级的数据结构。u s b 定义了四种数据传输类型, 即控制传输、中断传输、批量传输和同步传输,用以完成各种类型的数据传输。 处理事务和传输的关系是本节的核心。传输是由一个或多个处理事务组成的,而处 理事务按照其特点分为三种类型:输入( i n ) 处理事务、输出( o u t ) 处理事务和设置 一9 器 主动、从动u s b 接口的实现 ( s e t u p ) 处理事务。任何一种传输都是由这三种处理事务组成,不同的只是这三种处 理事务的组合和搭配情况。 中断传输由i n 处理事务或o u t 处理事务组成,主要用于如鼠标、键盘等h i d 设备 的数据传输中。中断传输中,“中断”的概念并不等同于p c 系统中硬件设备的中断, u s 8 主机是以周期性的方式对设备进行轮询,以确定设备是否有数据发送。中断传输没 有固定的传输速率,低速、全速和高速设备均支持中断传输,只是对传送的数据包的大 小要求不同。 批量传输由i n 处理事务或o u t 处理事务组成,主要用于大容量数据的传输中,如 硬盘、光盘刻录机及数码相机等。批量传输对传输速率和宽带没有固定的要求,当总线 “忙”时,u s b 会优先考虑其他类型的数据传输,而暂停批量传输。低速设备不支持批 量传输,只有全速和高速设备才支持批量传输。 同步传输由i n 处理事务或o u t 处理事务组成,主要用于音频流恒定传输速率的数 据传输中,如音箱、显示器和摄像头等设备。同步传输讲究的是数据传输速率的恒定, 而对数据的准确性的要求不如批量传输严格。所以,同步传输中没有握手包,不对发送 错误的数据进行重试。需要说明的是,与中断传输和批量传输不同的是,对于全速设备, 同步传输不支持数据包的交替触发机制,只能以d a t a o 发送。而高速设备在一定条件下 支持触发机制,由于情况复杂,不予讨论。低速设备不支持同步传输,只有全速和高速 设备才支持同步传输。 控制传输是最复杂、最重要的传输类型,也是u s b 枚举阶段最主要的数据交换方式。 当u s b 设备初次连接到主机之后,主机通过控制传输来交换信息、设备地址和读取设备 的描述符来识别该设备,并安装相应的驱动程序,在此基础之上其余三种可能的传输方 式才能够使用。进行u s b 系统开发时,首要的任务就是利用控制传输实现设备的枚举过 程,提供各种设备信息。控制传输由i n 处理事务、o u t 处理事务和s e t u p 处理事务组成, 其中核心是s e t u p 处理事务。 2 3u s b 协议栈设备框架 介绍标准的u s b 设备描述符和请求命令的概念,是搭建u s b 协议栈的基础知识,以 及进行u s b 固件和软件设计时首先需要编程实现的部分。 沈刚j :业大学硕士学位论文 2 3 1 标准u s b 描述符 描述符( d e s c r i p t o r ) ,是一个完整的数据结构,用于描述一个u s b 设备的所有属 性。u s b 协议将这些属性信息进行分类,定义了五种标准的描述符,按照等级由高到低 依次为:设备描述符、配置描述符、接口描述符和端点描述符,而字符串描述符是可选 的。每一个描述符都是由一系列的字段组成,每个字段都是一连串的二进制数,表示相 应的意义。 设备描述符给出了u s b 设备的通用信息,包括对设备及所有设备配置起全程作用的 信息。一个u s b 设备只能有一个设备描述符,但可以含有一个或多个配置。特别指出的 是,缺省控制通道的数据包的长度( 即u s b 设备端点0 的长度) 在设备描述符中得以说 明,其它端点是在端点描述符中定义的。 u s b 设备的一个配置可以包含一个或多个接口,且每个接口都可以相互独立地工作。 所有的u s b 设备至少要支持一个配置描述符。如果u s b 设备支持多个配置,则每个配置 都需要相应的配置描述符。配置描述符给出了u s b 设备的属性和能力等配置信息。 接口一般都是由一系列端点所组成的集合体,用于实现某种特定的u s b 数据传输功 能。某些u s b 设备类型,如h i d 设备,是在接口描述符中定义的,而不是在配置描述符 中。接口描述符不可直接用s e td e s c r i p t o r 和g e td e s c r i p t o r 命令来存取,是作为配 置描述符的一部分被返回。接口描述符给出了一个特定接口的属性信息。如果一个结构 包含有备用的描述符,则可以在设备配置后加以改变。 端点描述符用于描述接口所使用的非0 端点的属性,包括输入输出方向、端点号 和包的大小。端点描述符不可直接用s e td e s c r i p t o r 和g e td e s c r i p t o r 命令来存取, 是作为配置描述符的一部分被返回。0 端点无描述符。 字符串描述符是一个可选的描述符,其编号对应于前四种类型描述符中内容为索引 的字段。 2 3 2 标准u s b 设备请求命令 u s b 定义了十一种标准的设备请求命令:g e ts t a t u s ,c l e a rf e a t u r e ,s e tf e a t u r e , s e ta d d r e s s ,g e td e s c r i p t o r ,s e td e s c r i p t o r ,g e tc o n f i g u r a t i o n ,s e tc o n f i g u r a t i o n , g e ti n t e r f a c e ,s e ti n t e r f a c e ,s y n c hf r a m e 。这些u s b 设备请求命令,是通过设定 主动、从动u s b 接口的实现 控制传输的“初始设置步骤”中的一个8 字节的o a t a o 数据包,由主机发送给设备进行 配置的。 2 3 3 通用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 类设备的u f i 命令。本节主要讨论u s b 共同的固件,即枚举配置部分的编程。 在u s b 的枚举过程,设备的状态可以分为连接态、上电态、缺省态、地址态、配置 态和挂起态。这些状态都是一种暂态。 u s b 设备首次连接到主机后,主机将启动一个被称作总线枚举的进程,来枚举并管 理设备状态的改变。编写u s b 主机或者设备端有关枚举阶段程序的具体过程如下: ( 1 ) u s b 设备连接到h u b ,h u b 通过状态改变通道向主机汇报此u s b 设备已连接上。 此时,u s b 设备处于连接态,它所连接的端口可以供应电流,但其他属性被禁止。 ( 2 ) 主机通过命令询问h u b ,了解连接事件的详细情况。 ( 3 ) 一旦确定新设备已连上,主机至少等待l o o m s 以使设备的接入操作完成以及 电源的稳定工作。然后主机发出端口使能及复位命令给该端口。设备处于低电流上电态 和连接态。 ( 4 ) h u b 将端口的复位信号持续l o m s 后,端口己经被激活。此时,u s b 设备处于 缺省态,并且可从端口上汲取小于l o o m a 的电流,设备的所有寄存器及状态已经被复位, 并通过缺省地址0 与主机通信。 ( 5 ) 主机通过缺省地址0 ,读取设备描述符,了解默认通道的一系列信息,确认 u s b 设备的属性。 ( 6 ) 设备配置,主机给设备分配一个唯一的地址,设备转向地址态。 ( 7 ) 主机读取所有设备的配置描述符。 沈阳工业大学硕十学位论文 ( 8 ) 基于得到的设备的配置描述符,主机给该设备重新配鼍一个配置值。此刻, 设备就处于配置态并且配置有关的所有接口和端点。然后,u s b 设备可以从端口得到所 要求的最大电量。从设备的角度来讲,它已经准备就绪了。 2 4u s b 设备类 2 4 1 设备类概述 要完成一个u s b 设备的开发,仅了解u s b 协议是不够的,还需要知道u s b 设备类协 议,u s b 协议与u s b 设备类协议是相互补充的。为了简化u s b 总线的开发流程,u s b - i f 将常用的具有相同或相似功能的设备归为一类,并制定了相关的设备类规范,使得只要 依照统一规范标准,不同的厂商开发的u s b 设备可以使用同样的驱动程序。 u s b 设备类是个庞大的概念,限于篇幅,简单介绍一下一些常见的类型。u s b 设备 分为两大类:标准型的和非标准型的。标准类型的,比如音频设备、通信设备、打印机 设备、h i d 设备和存储设备。而非标准类型的,比如u s b r s 一2 3 2 转换器等。其中存储设 备( m a s ss t o r a g e ) 类,将结合后面的具体开发,重点讲述。 2 4 2m a s ss t o r a g e 设备类和b u l k - 0 n i y 类传输协议 m a s ss t o r a g 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 0 8 。这些不同的数据存储载体接 口构成了m a s ss t o r a g e 类的子类,如表2 1 所示“。 表2 1w a s ss t o r a g e 类的子类 t a b 2 1m a s ss t o r a g e ss u b c l a s s 主动、从动u s b 接口的实现 这些子类的命令都是各子类所特有的,而与u s b 没有任何关系,进行u s b 传输时, 将这些命令打包进行传输。实际的开发过程,可以选用不同的子类命令集来实现系统功 能,并不必完全受限制于表2 1 的关系定义。而真正与m a s ss t o r a g e 传输方式相关的 是其传输协议,即b i n t e r f a c e p r o t o c o l 字段表示的内容,如表2 2 所示。 在本主动u s b 接口设计中支持的传输协议,是b u l k o n l y 传输协议。此协议仅使用 b u l k 端点来实现数据、命令和状态的传输,而没有使用中断和控制端点。其传输流程如 图2 4 所示。c b w 和c s w 是一系列包的集合,简称封包。 表2 2m a s ss t o r a g e 类的传输协议 t a b 2 2m a s ss t o r a g e st r a n s f e rp r o t o c o l 2 4 3m a s ss t o r a g e 的子类命令 表2 1 列出了各种m a s ss t o r a g e 类的子类及其命令协议,严格意义上,支持m a s s s t o r a g e 类的u s b 主机应该全面支持各子类。但是在实际应用中,一方面由于主机系统 资源的限制,另一方面由于实际需求要求有针对性,所以通常选用一些基本的命令即可。 各子类都支持基本的操作命令,所以可以灵活选用各种子类,如u f i ,s c s i 及r b c 等, 具体的命令格式参考相关的命令规范,不再详述,在具体的开发中,会结合项目来介绍 相关的命令“7 1 ”。 2 5u s b 主机 传统意义的u s b 开发,仅仅是对u s b 外设的开发,u s b 核心驱动程序和u s b 主控制器驱 动程序都是由操作系统提供。而为了实现u s b 主机功能,必须设计这两部分驱动程序。u s b 主机协议描述了u s b 系统软件( 核心驱动程序和主控制器驱动程序) 的设计规范。3 。 1 4 沈阳工业大学硕十学位论文 u s b 主机的主要功能有:检测u s b 设备的连接和断开;管理主机和设备间的标准的 控制管道;管理主机和设备间的数据流;收集设备的状态,统计总线的活动;控制和管 理主机控制器和设备间的电气接口。 u s b 主机分为三个层次:u s b 总线接口层、u s b 系统层、u s b 用户层。 图2 4b u l k - o n l y 类的传输流程 f i g 2 4t h et r a n s f e rf l o wo f b u l k - o n l y 2 6 小结 本章首先就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 接口的实现 3 主动、从动u s b 接口的整体设计方案 3 1 主动u s b 接口的实现途径和方案 无u s bh o s t 功能的系统增加u s bh o s t 功能一般有以下几种技术途径。 3 1 1 利用常见接口总线- - u s b 转换器 通过采用u s b 控制芯片,实现传统接口总线与u s b 接口的转换,这仅需要利用微处理 器开发针对所用接口总线的相应驱动程序即可,由u s b 专用控制芯片转换为相应的u s b 接 口的驱动程序,从而驱动相应的嵌入式u s b 设备,实现u s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年党章知识竞赛必考题及答案
- (2025年)黑龙江省牡丹江市全国计算机等级考试网络技术预测试题含答案
- 循环系统护理试题(含答案)
- 护理查对制度试题及标准答案
- 2024年急性精神科科N2-N4护士理论知识考核试题(含答案)
- 2024年山东“安全生产月”知识主题试题附参考答案
- 2024年全国RDPAC资格认证考试题库(附含答案)
- 2025年育婴师三级(高级育婴师)从业资格证考试内容及答案
- 标准基础知识培训课件教学
- 化验室业务培训课件模板
- 医院信息系统廉洁风险防控方案
- 2025年《农产品质量安全法》知识点考试题库资料及答案
- 智人扩散路径重构-洞察及研究
- 三方委托付工程款协议书
- 信通员考试试题及答案
- 四川成都成华区龙潭街道办事处招聘编外聘用制工作人员笔试模拟试题及答案详解1套
- 有限空间安全作业培训试题(含答案)
- 物业应急管理办法
- 设备调剂管理办法
- 蓝天救援队规定管理制度
- 银监会手机租赁管理办法
评论
0/150
提交评论