




已阅读5页,还剩64页未读, 继续免费阅读
(测试计量技术及仪器专业论文)基于单片机的嵌入式usb主机研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 u s b 是现今在p c 领域被广泛采用的总线接口技术,在一些嵌入式系统中, 人们也希望有u s b 设备的出现,丽在u s b 的拓扑结构中,居于核心地位的p c 机, u s b 设备无法脱离p c 机而存在。本文针对u s b 设备的应用局限,对u s b 协议架 构及其通信流程做了深入的分析,确定嵌入式u s b 主机必须具备的软硬件条件, 给出设计思路,并在此基础上,以应用最为广泛的u 盘为u s b 设备,借助c y p r e s s 公司的主机控制芯片s l 8 1 1 h s ,在单片机系统中实现了u 盘主机系统,使得u 盘 可以脱离p c 机为单片机系统使用。本文重点进行了如下的工作。 1 分析u s b 协议,确定嵌入式主机的设计方法。 2 介绍u s b 设备类协议以及设计中所涉及的f a t 文件系统,分析了设计 中难点和重点。 3 介绍了主控芯片s l 8 l l h s 的结构及工作原理,并完成了嵌入式u s b 主 机的硬件设计。 4 针对u s b 主机的软件需求,在单片机系统中实现了u s b 协议、u s b 海 量存储类协议以及在p c 领域应用广泛的f a t 文件系统,整个软体从 底层数据传输到高层的应用共分为6 大模块,针对各个模块软件设计 结合流程图做了详细的阐述,并给出了相应的实验验证。 5 使用m i c r o s o f t 公司的n e t 平台语言c # 设计了u 盘的数据管理系 统,对单片机系统中以文件形式存储于u 盘上的数据进行数据库管 理。 实验系统运行证明本系统代码精简,具有很好的可移植性,可以很方便的 移植到其它的单片机系统和d s p 等系统中。 关键词:u s b 主机主控芯片单片机c 语言 :至三兰銮:三:罂圭耋竺鎏兰 a b s t r a c t u s bh a sb e e ne x t e n s i v e i ya d o p t e da sab u si n t e r f a c et e c h n o l o g yi np c s t o d a y p e o p l eh o p et ou s eu s b d e v i c e si ns o m ee m b e d d e ds y s t e m s ,b u tt h ek e r n e lo fu s b t o p o l o g yi sp ca n du s bd e v i c e sc a n n o tu s ew i t h o u tp c i no r d e rt oo v e r c o m et h e l i m i t a t i o n ,t h i sa r t i c l ea n a l y z e dt h es t r u c t u r eo fu s bp r o t o c o la n di t sc o m m u n i c a t i o n p r o c e s s ;d e c i d e dt h es o f t w a r ea n dh a r d w a r ec o n d i t i o n st h a ta ne m b e d d e du s b h o s t m u s tp o s s e s s ;a n dg a v et h ed e s i g no u t l i n e a tl a s t ,d e s i g n e da ne m b e d d e dud i s k e o n t f o l s y s t e mb ym e a n so fs l 8 1 lh st h a t p r o d u c e db yc y p r e s sc o r p o r a t i o ni n s i n g l e c h i pc o m p u t e rs y s t c m t h em a i n w o r ko ft h i sp a p e ri sd e s c r i b e da sf o l l o w s : 1 a n a l y z e d t h eu s b p r o t o c o la n d d e c i d e st h ed e s i g nm e t h o d s 2 i n t r o d u c e dt h eu s bm a s ss t o r a g ep r o t o c o la n dt h ef a ta n dp o i n t so u tt h e e n l p h a s e sa n dt h ed i f f i c u l t i e si nt h i sd e s i g n 3 m a i n l yi n t r o d u c e dt h es t r u c t u r ea n dp r i n c i p i eo fs l 8 1l h s ,a n dc o m p l e t e d t h eh a r d w a r ed e s i g no fu s bh o s ts y s t e mb a s e do n s i n 9 1 e - c h i pc o m p u t e f 4 a c c o r d i n gt ot h en e e d0 fu s b h o s tt os o r w a r e ,r e a l i z e dt h eu s b p r o t o c o l , u s bm a s ss t o r a g ep r o t o c o la n dt h ef a tt h a ti se x t e n s i v e l yu s e di np c t o d a y t h es o f t w a r ei sd i v i d e di n l os i xm o d u l e sf r o mt h et r a n s m i s s i o no ft h el o w e r l a y e rt o t h e a p p l i c a t i o no fh i g h e rl a y e r ,a n d t h i s p a p e rd e s c r i b e de v e r y m o d u l eb yt h ef l o w c h a r ta n dg a v et h ee x p e r i m e n t 5 d e s i g n e d au d i s kd a t am a a g e m e n ts y s t e mw i t hc s h a r p t h i ss y s t e mc a n m a n a g et h ed a t aw h i c hs t o r e si nu d i s ki nf i l e s t h ee x p e r i m e n t s y s t e mp r o v e d t h a tt h i se m b e d d e dh o s tc o n t r o l s y s t e m i s r e l i a b l e ,e x t e n d a b l ea n dc a nb et r a n s p l a n t e dt oo t h e rs i n g l e - c h i pc o m p u t e rs y s t e mo r d s p s y s t e m k e y w o r d s :u s bh o s t ;h o s tc o n t r o l l e rc h i p ;s i n g l ec h i pc o m p u t e r ;cl a n g u a g e l l 第一章绪论 第一章绪论 1 1 u s b 技术的起源和发展州3 1 随着电脑应用的拓展与应用,计算机的外围设备越来越多,出现了各种各样 的外设接口:并行口、串行口、键盘接口、鼠标口、游戏手柄接口、音频输入输 出口、视频输出口、网络接口等。由于各种外围设备的不断增加,计算机所提供 的可用于连接外设的资源日渐捉襟见肘,常常由于不能提供更多的接口,而导致 各种i o 的冲突,加之各种中低速外设缺少一个双向、低价、即插即用的统一的 总线,限制了外围设备的研制与开发。因此,如何简化外设扩充方法使之方便易 行,便成为各个计算机厂家面临的重大研究课题。u s b 的规范是i b m ,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 总线规范草案最早提出于 1 9 9 4 年底,几经修改,推出了版本号为0 7 的正式版本,于1 9 9 6 年又推出u s b l 1 。 在u s b l 1 版本中定义了两种速度的u s b 传输模式,低速( l o ws p e e d ) 模式的数据 传输速度为1 5 帖s ;全速( f u l ls p e e d ) 模式使得u s b 的传输速度峰值达到了 1 2 m b s 。2 0 0 0 年底,u s b 组织又推出了新版本的规范一u s b 2 o ,这个版本将u s b 总线的传输速度提高到了4 8 0 s 的水平。 由于u s b 具有高速度、低成本、低功耗、即插即用以及使用与维护都很方 便等优点,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 在存储类设备和影音图像类设 备中应用尤为广泛,特别是优盘和s m a r tc a r d 读卡器,价格适中,使用方便, 已逐渐成为替代软驱的新一代移动存储工具,在工业、商务、办公事务上应用越 来越广泛。在工业场合u s b 也受到足够的重视,并己应用于很多数据传输场合, 比如数据采集,视频采集,大型喷印系统等。 1 广东工业大学工学硕士学位论文 1 2 课题的研究意义 可以说,从u s b 问世,到协议规范2 o 版本,u s b 在不断自我完善,并走向 成熟。从普通计算机用户,计算机工程师,到硬件芯片生产厂商,都已经完全认 可了u s b 。厂商对于u s b 的硬件和软件支持的也越来越完备,现在开发一个u s b 外 设产品,所需要投入的成本和时间大大降低了,几年前是没有办法做到这一点的。 但是,随着u s b 应用领域的逐渐扩大,人们对于u s b 的期望也越来越高,希望u s b 能应用在各种计算机领域中,尤其是在移动数据领域中,希望能通过p d a 等移动 设备直接和u s b 外设通信,使得u s b 能应用在没有p c 的领域中,但这正是u s b 的一 个致命的弱点,u s b 的拓扑结构中居于核心地位的是h o s t ( 也称为主机) ,任何一 次u s b 的数据传输都必须由主机来发起和控制,所有的u s b 外设都只能和主机建立 连接,任何两个外设之间或是两个主机之间无法直接通信”1 。而目前,大量的扮 演主机角色的是p c 。因此,我们目前所买到和使用的u s b 移动设备,都是u s b 的外 设( d e v ic e ) ,比如u s b 的移动硬盘、u s b 接口的数码相机等等。所有这些设备都 只能与p c 进行文件和数据交换。没有了p c ,这些设备就“失灵”了。因此,“如 何将u s b 应用到嵌入式领域? 如何实现u s b 点对点的通信( 如图l 一1 所示) “”? ” 等问题,形成了新的需求,嵌入式的u s b 主机成了新的研究的兴奋点。 图1 1嵌入式u s b 主控的应用前景 f i g 1 - lt h ep r o s p e c to fe m b e d d e du s bh o s t 本设计所要实现的嵌入式u s b 主机,目的就是要使嵌入式系统和移动存储设 备能够在脱离p c 的情况下进行数据交换。 1 3 国内外研究现状5 m 1 目前在嵌入式的u s b 主机方面所做的研究和设计大都是采用m c u f m p u ) + u s b 主控接口芯片的模式,而且已经有产品问世。 作为u s b 的延伸,u s b 主控接口芯片只有少数的公司提供,现在比较成熟 的有c y p r e s s 公司的s l 8 1 1 h s 和p h i l i p s 公司的i s p “6 l 。s l 8 1 1 h s 是c y p r e s s 公司2 0 0 2 年的新产品,支持u s b l 1 协议,由于其技术比较成熟,市场的供给充 足,因而目前应用较为广泛;i s p l l 6 1 是p h i l i p 公司推出的世界上第一块集主 从控制器于一体的1 6 位芯片,一般用于d s p 及一些嵌入式系统中,它的应用方 向是一些手持数码设备。基于这两个主控芯片,国内外的嵌入式产品厂家展开了 广泛的研究,希望能够在嵌入式产品的世界中有u s b 产品的参与。 在嵌入式的u s b 主控技术诞生之初,工程师所做的工作是如何将u s b 产品应 用到嵌入式系统中,对数据的速度并没有做过多的要求,而且在中央控制芯片的 选择上大都采用资源丰富的芯片来充当中央控制芯片,随着技术的发展,工程师 们开始专注于系统的性能方面的研究,而且一直以来倍受宠爱的m c s 一5 l 系列单 片机也开始在u s b 主控技术中出现。目前,在嵌入式系统中u s b 的数据传输速度 已经达到了几百k b s ,但是这仍然没有完全发挥u s b 在传输速度上的优势,所以 在技术上,尤其是软件的编制上还有待改进。 现有的u s b 主控厂家和u s b 论坛所提供的d e m o 大都依靠嵌入式操作系统 w i n c e 和l i n u x 等,鉴于单片机所占有的广阔的市场空间,基于单片机嵌入式u s b 主机控制器的研究具有一定的领先性和前瞻性。现在一些大学和公司已经开始了 有关这方面的研究,从事这方面研究工作的有清华大学、浙江大学等等,还有一 些便携式设备的生产厂家。在一些单片机的系统中,例如在数据采集领域中,某 些场合例如温度、压力过高或者测试地点需要移动等情况下,不适合p c 机存在, 而大量的采集的数据需要存储,利用u s b 移动类存储设备就可以很方便的解决这 个问题。典型的产品有飞机黑匣子、汽车黑匣子( 数据记录仪) 、测厚仪、探伤 仪、手持式数据采集器等等。 嵌入式u s b 主机控制器技术还未成熟,还有待主控生产厂家继续开发出更好 的主机控制芯片,嵌入式工程师开发出更优秀、更有效率的软体。 广东工业大学工学硕士学位论文 1 。4 课题研究的难点 在单片机系统中开发u s b ,不同于p c 系统,其难点分析如下: u s b 技术一开始是基于p c 机发展起来的,p c 机中都内嵌了u s b 主机控制器, 而且主机控制器的驱动不需要设备开发的技术人员关心,他们只关心自己所做的 设备的相关驱动。而在嵌入式计算机中开发u s b ,首先需要实现u s b 主机控制器 的硬件设计及其驱动。 在p c 上实现u s b 时p c 具有丰富的可用资源,其中包括高达5 1 2 m b 字节的存 储器2 0 6 0 g b 的硬盘以及2 g h z 或速度更快的微处理器。此外,五年多来 w i n d o w s m a co s 以及u n i x 等操作系统一直支持u s b ,世界上有成千上万的工程师 在设计基于p c 的u s b 应用程序和设备驱动程序。而在嵌入式计算机中开发u s b , 由于其资源有限,通常只具有不超过6 4 k 的存储器,所以要求软件系统必须精简 有效率,这也是难点所在。 在单片机系统中的u s b 主机控制器( 主控芯片为c y p r e s s 公司的s l 8 l l h s ) 开 发难度比开发一个u s b 设备要大得多,工作量也要大得多。另外,它需要开发者 很熟悉操作系统下的驱动管理机制和u s b 协议中关于主机控制器驱动的部分。这 也是许多嵌入式计算机中开发u s b 的难点所在。 由于在嵌入式中开发u s b 相对是一项较新的技术,只有为数不多的工程师具 有这方面的工作经验,可以参考的资料也相对有限,这样开发工作只能慢慢摸索, 不断的改进才能真正发挥u s b 产品的高速的数据传输的优点。 1 5 课题的主要工作 本次课题主要是针对在单片机系统中无法应用u s b 产品的缺陷而做的相关的 研究与设计,主要的工作如下: ( 1 ) 析u s b 协议以及u s b 海量存储类协议和f a t 文件系统,确定在嵌入式系统 中实现u s b 主机所需要的软硬件条件。 ( 2 ) 用m c s 一5 l 系列单片机作为中央处理芯片,c y p r e s s 公司的s l 8 l l h s 作为主 机控制芯片,完成u s b 主视控制器的软硬传的设计工作。在本设计中主要 针对u s b 移动类存储设备( u 盘) ,实现与p c 机类似的u s b 主控功能,包 4 第一章绪论 括建立文件和目录,写入文件、删除文件等功能。 ( 3 ) 利用高级编程语言c # 编制控制软件,使得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 主机控制功能的关键技术。 2 1 u s b 系统结构模型”们 u s b 以u s b 主机为核心,以外围的u s b 设备为功能,组成了系统模型,也就 是说,u s b 提供的是主机和设备中间的一种数据通信业务,系统的模型如下: 图2 一l 简单的u s b 系统结构模型 f i g 2 - ls i m p l es t r u c t u r em o d e lo f u s b s y s t e m 2 2 u s 8 系统的软硬件组成及其分析 u s b 由基本硬件和基本软件元素构成,其中基本硬件包括:u s b 主机控制器根集 线器;u s b 集线器和u s b 设备。基本软件包括:用户软件、u s b 设备驱动程序、u s b 核心驱动程序( u s b d ) 和u s b 主机控制器驱动程序。图2 2 所示的就是包含在u s b 系 统中的硬件和软件元素以及他们之间的联系。由图可知,u s b 系统的软硬件资源可以 分为3 个层次,即功能层、设备层、和接口层。接口层涉及的是具体的物理层,其主 要实现物理信号和数据包的交互;设备层主要是提供u s b 基本的协议栈,执行通用 的u s b 的各种操作和请求命令;功能层提供每个u s b 设备所需的特定功能,主机端 的这个功能由用户软件和设备类驱动程序提供。 下面分别说明u s b 系统的基本的硬件元素和软件元素: 第二章u s b 协议的介绍 主机系统u s b 设备 用户软件和u s b 设备驱动程序 功能单元 l j s b 功能层 tt u 系统软件 ( u s b 核心和丰u s b 逻辑设备 u s b 设备层 控制器驱动程 序) u s b 主控制器根 h u b u 鹞总线接口 u s b 接【 层 - 实际数据流_逻辑数据流 图2 2u s b 系统组成 f i g 2 - 2t h ec o m p o s i t i o no fu s bs y s t e m 2 2 1 硬件组成元素及其分析 ( 1 ) u s b 主机控制器u s b 的所有通信都是在主机端产生的,具体是由软件控 制来实现。主机硬件组成了u s b 的主机控制器,它初始化u s b 系统上的事务处理, 根集线器为u s b 设备提供了连接点( 或端口) 。目前已经开发出了两个u s b 主机控 制器方案:开放主机控制器( o h o ) 和通用主机控制器( u h c ) 。0 h c 是由康柏、微软 和国家半导体公司联合制定的,而u h c 是由i n t e l 公司定义的。这两种主机控制 器执行同样的基本工作,只是在具体实现方式上有轻微的差异。u s b 主机控制器 由控制器和根集线器两部分组成,下面将分别给予介绍: 主机控制器主机控制器负责产生事务处理,这些事务处理已经由主机软件安排 好。主机控制器驱动程序( h c d ) 软件在内存中建立一个数据结构的连接列表。这 些数据结构定义了那些安排好的将要被执行的基本事务处理。这些数据结构被称 为传输描述符,它包含了主机控制器产生事务处理所需要的全部信息,这些信息 包括: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 ) 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 设备u s b 设备包含一些设备描述符,它们指出了一个给定设备的属性 和特征。这些设备描述符向主机软件提供了一系列u s b 设备的特征和能力,用于 配置设备和定位u s b 客户软件的驱动程序。u s b 设备驱动程序也可以用设备描述 符来确定需要的附加信息,这些信息用于保证以正确的形式对设备进行访问。这 项机制被称为设备构架,软件必须理解这个机制,因为软件用它来正确地配置和 访问设备。u s b 设备分为高速设备和低速设备。高速设备可以看到u s b 七广播的 8 第二章u s b 协议的介绍 所有事务处理。这些设备接收并发送串行数据,最高传输速率为1 2 m b p s 。低速 设备不仅在吞吐量上有限制( 1 5 m b p s ) ,而且在功能支持上也有相应的限制。在 全速事务处理的过程中,低速集线器端口保持非活动状态,它可以防止全速总线 的通信通过低速数据线传送。前导包指出接下来的事务处理将以低速广播。集线 器在检测到一个前导包后,将激活低速端口,允许低速设备看到低速总线活动。 2 2 2 软件组成元素及其分析 ( 1 ) 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 事务发送给u s b 主控制芯片,并最终将串行数据 发送到电缆上。 ( 2 ) 用户软件和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 3 u s b 系统的通信协议分析”们 在本设计中,整个的软件编制是以数据在主机和设备之间的传输为基础,下 面将介绍u s b 协议中最为复杂的底层数据通信结构的内容。 2 3 1 数据传输的基本单元 “包”,是u s b 最基本的数据单元,每个包,基本上包含了一个完整的u s b 信 息。按照包在整个u s b 数据传输中的作用不| 司,包可以分为3 类:令牌包、数据 包和握手包,分别介绍如下: 9 广东工业大学工学硕士学位论文 ( 1 ) 令牌包:根据标识域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 3 所示: 8 位8 位7 位4 位5 位 图2 3i n 、o u t 和s e t u p 的数据格式 f j g 2 3d a t as e q u e n c eo fi n 、0 u t a n ds e t u p p a c k e t 输入包i n 、输出包0 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 。 ( 2 ) 数据包:根据p i d 的不同,数据包分为d a t a o 和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 4 所示: 8 位8 位o 1 0 2 3 字节1 6 位 图2 4 数据包d a t a 0 、d a t a l 数据格式 f i g 。2 4d a t as e q u e n c e0 f d a t a o 、d a t a lp a c k e t 由上图可知,数据包都由同步域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 。 ( 3 ) 握手包:握手包是结构最为简单的包,其数据格式如图2 5 所示: 8 位8 位 i! 二竺i! ! !i 图2 5 握手包数据格式 f i g 2 - 5d a t as e q u e n c eo fh a n d s h a k i n gp a c k e t 由图可知,握手包由同步域s y n c 和标识域p i d 两个域组成,用于报告数据 的传输状态。根据p i d 的不同,握手包可分为3 种类型,即确认包a c k 、无效包 第二章u s b 协议的介绍 n a k 和停止包s t a l l 。 确认包a c k :用于表示数据包被成功接收; 无效包n a k :在接到主机发来的o u t 命令后,设备无法接收数据;或者接到 主机的i n 命令,但是设备没有数据发送给主机: 错误包s t 从l :设备无法发送数据或者设备无法接收数据。 2 3 2u s b 的数据传输类型 以包为基础,u s b 定义了4 种数据的传输类型:控制传输、中断传输、批量 传输和同步传输。在本设计中主要用到批量传输和控制传输两种传输类型。 同步传输:占用大量u s b 带宽,有严格的时间间隔,又被称为实时流传输, 用于音频流等需要恒定传输速率的数据传输中,同步传输中没有握手包,总 线只优先保证其占用带宽,而不对发送的错误的数据进行重试。 中断传输:用于少量的、分散的、不可预知的数据传输,例如数据控制指令、 设备状态查询和确认命令,可用于键盘、鼠标等h i d 设备的数据传输中,由 i n 事务或o u t 事务组成。 批量传输:用于大数据量传送和接收精确度较高的数据,且没有对带宽和时 间间隔的要求,比如硬盘驱动器接口、光盘刻录机接口及数码相机等。 控制传输:主要用于把主机把命令传给设备以及把状态返回给主机。任何一 个u s b 设备都必须支持一个与控制类型相对应的端点o 。控制传输的核心是 s e t u p 事务,u s b 定义了较为复杂的控制传输结构,将其分为3 个步骤:初 始设置步骤、可选数据步骤、状态信息步骤。在本设计中,首要的任务便是 利用控制传输实现设备的枚举过程,提供设备信息。 2 4u s b 的枚举过程3 6 1 要主机识别一个u s b 设备必须经过枚举的过程,主机使用总线枚举来识别 和管理必要的设备状态变化。总线的枚举过程如下: 1 ) 设备连接。u s b 设备接入u s b 总线。 2 1 设备上电。u s b 设备可以使用u s b 总线供电,也可以使用外部电源供电。 广东工业大学工学硕士学位论文 3 ) 主机检测到设备,发出复位。设备连接到总线后,主机通过检测设备在 总线上的上拉电阻检测到有新设备连接,并确定该设备是全速设备还是 低速设备,然后向该端口发送一个复位信号。 4 ) 设备默认状态。设备要从总线上接收到一个复位信号后,才可以对总线 的处理操作做出响应。设备接收到复位信号后,就使用默认地址( 0 0 h ) 对其进行寻址。 5 ) 地址分配。当主机接收到有设备对默认地址( 0 0 h ) 相对应的时候,就对 设备分配一个空闲的地址,以后设备就只对该地址进行响应。 6 ) 读取u s b 设备描述符。主机读取u s b 设备描述符,确认u s b 设备的属 性。 7 ) 设备配置。主枫依照读取的u s b 设备描述符来进行配置,如果设备所需 的u s b 资源得以满足,就发送配置命令给u s b 设备,表示配置完毕。 8 1 挂起。为了节省电源,当总线保持空闲状态超过3 m s 以后,设备驱动程 序就会进入挂起状态。在挂起状态时,设备的消耗电流不超过5 0 0 a 。 当被挂起时,u s b 设备保留了包括其地址和配置信息在内的所有内部状 态。 完成以上8 个步骤后,u s b 设备即可使用。在枚举的过程中,设备不一定 要求进入挂起状态。 2 5u s b 主机协议分析 传统意义的u s b 开发,仅仅是对u s b 外设的开发,u s b 核心驱动程序和u s b 主机控制器的驱动程序都由w i n d o w s 等操作系统提供,有关这些驱动程序的细节 相对用户来说都是透明的。而实现u s b 主机功能,就必须设计这两部分驱动程序。 u s b 主机协议描述了u s b 系统软件( 核心驱动程序和主控制器驱动程序) 的设计 规范。 2 5 1u s b 主机系统的功能 按照u s b 的规定以及u s b 系统的组成的需要,u s b 主机完成的主要功能包括 第二章u s b 协议的介绍 以下几个方面: 检测u s b 外设的接入和移出; 管理h o s t 和外设之间进行的u s b 标准流量控制 枚举外设; 管理h o s t 和外设之间的数据流; 搜集系统状态和性能的统计信息; h o s t 与外设之间的电气接口,包括供电。 2 5 2u s b 主机系统的结构 u s b 主机结构如图所示,可以分层3 个层次: u s b 总线接口层; u s b 系统层 u s b 用户层。 u s b 总线接口层( u s bb u si n t e r f a c e ) 主要是指以主机控制器为核心的硬件 部分,包括串行口引擎( s e r i a l i n t e r f a c ee n g i n e ) 及其之间的电气连接。而 这个主机控制器中也集成了u s b 根h u b ,以此提供了u s b 设备的连接点。 u s b 系统层( u s bs y s t e m ) 是由操作系统提供的u s b 软件,用于控制主机控制 器来管理主机和设备之间的数据传输。系统层包括了3 部分的软件,即u s b 主控制 器驱动程序、u s b 核心驱动程序和主机软件。 u s b 用户层( u s bu s e r ) 也是基于软件层次的u s b 主机的组成部分,包括u s b 设备启动程序( 实现设备类协议) 和用户软件。 图2 6u s b 主机系统结构 f j g 2 - 6t h e s t r u c t u r eo fu s bh o s ts y s t e m 2 5 3 u s 8 核心驱动程序 u s b 核心驱动程序( u s bd r iv e r 即u s b d ) 是整个u s b 主机的中心所在。u s b d 具有一系列的机制来检测和管理u s b 系统的所有活动,并向上接收l j s b 设备驱动程 序和用户程序的各种请求命令和数据,向下把处理好的各种数据发送给h c d ,并 最终与设备进行通信。图2 7 的虚线框内就是u s b 核心驱动程序。 第二章u s b 协议的介绍 图2 7u s b 核心驱动程序的结构 f i g ,2 - 7t h es t r u c t u r eo fu s bk e r n e ld r i v e r 2 5 4 主控制器驱动程序 u s b 主控制器驱动程序( h o s tc o n t r o l l e rd r i v e r ,简写为h c d ) 是u s b 软件协 议栈最底层一部分。h c d 实质上是对u s b 主机控制器硬件和数据传输的一种抽象。 h c d 向上仅对u s b 核心驱动程序服务,h c d 提供了一个软件接口,即h c d i ( h c d i n t e r f a c e ) ,使得各种u s b 主机控制器的硬件特性被软件化,并受核心驱动程序 的调用和管理。h c d 向下则直接管理和检测主控制器硬件的各种行为。下面从软 件的角度来说明h c d i 应该满足的要求: 通过软件抽象主机控制器硬件的特性; 通过软件抽象主机控制器上的数据传输过程: 通过软件抽象主机控制器资源的分配和管理; 通过h u b 的类协议来抽象根h u b 的功能和行为。 2 5 5u s b 主机协议框架 简单来说,u s b 系统包括两部分:u s b 主机和u s b 外设。u s b 系统的通信是由 广东工业大学工学礤士学位论文 u s b 主机来控制的。u s b 主机不单纯指硬件,而是嵌入式或p c 系统的软件和硬件的 集合。这与以太网中的主机概念有所不同。以太网中的主机是一台负责控制网络 通信,为网络终端提供服务的计算机。因此,u s b 主机是一个全新的概念。简蕈 的u s b 主机的软件流程图如下图2 8 所示。 图2 8u s b 主机的软件流程图 f i g 2 - 8t h es o f t w a r ef 1 0 w c h a no fu s bh o s t 2 6 总结 在本章中主要介绍了u s b 协议中所涉及的软硬件的规范,并针对设计中所涉 及的主机部分的协议做了重点的介绍,为嵌入式u s b 主机的软硬件设计提供r 理 论依据。 , 第三章u s b 海量存储协议与文件系统 第三章u s b 海量存储类协议与文件系统 u s b 组织定义了海量存储设备类( m a s ss t o r a g e c l a s s ) 的规范,这个类规范包 括四个独立的子类规范,即: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 “i n t e r r u p t ( c b i ) t r a n s p o r t ;u s bm a s ss t o r a g ec l a s sb u l k o n l yt r 孤s p o r t ;u s bm a s ss t o r a g ec l a s s a t ac o m m a n db l o c k ;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 l k 端点传送数据命令状态,c b i 传输规范则使用 c o n t r o l b u l l 【i n t e f m p t 三种类型的端点进行数据,命令状态传送。后两个子规范 则定义了存储介质的操作命令。a t a 命令规范用于硬盘,u f i 命令规范是针对 u s b 移动存储。u s b 移动存储结构如图3 一l 所示。 主机u s b h o s t 大容量存储设备u s b p e r i l ) h e r a l 图3 1u s b 移动存储结构 f i g 3 一lt h es t r u c t u r eo fu s b m o v a b i e s t o r a g e 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 l 6 文件系统,这样,就可以直接在 w i n d o w s 的浏览器中通过可移动磁盘来交换数据了,w i n d o w s 负责对f a t l 6 文 件系统的管理,u s b 设备不需要干预f a t l 6 文件系统操作的具体细节。 在本设计中,需要以嵌入式的u s b 主机取代p c 机的主机功能,因而在对 广东工业大学工学硕士学位论文 u s b 海量存储设备进行访问的时候就必须遵循u s b 海量存储协议和n 玎1 6 ( 在 本设计中采用f a l t l 6 文件系统) 。 下面分别对两种协议进行阐述。 3 1u s bm a s ss t o r a g e 协议分析1 2 1 u s b 设备被分成以下几类:显示器、通讯设备、音频设备、人机输入、海量 存储。特定类( c 肠s s ) 的设备又可划分成子类( s “6 c ,口舳) ,划分子类后,软件就可 以搜索总线并选择所有它可以支持的设备。每个设备可以有一个或多个配置,配 置用于定义设备的功能。如果某个设备有几种不同的功能,则每个功能都需要一 个配置。配置( c o 形谴“r 口打d 甩) 是接口( f 拧押,归c p ) 的集合。接口指定了设备中的哪 些硬件与u s b 交换数据。每一个与u s b 交换数据的硬件就叫做一个端点 ( p 九如o f h f ) 。因此,接口是端点的集合。u s b 的设备类别定义( 潞暑d p v f c ec f 口s s d e , h f r f o ”s ) 定义特定类或子类中的设备需要提供的缺省配置、接口和端点。描 述符( 幽j c r f p f d ,) 描述设备、配置、接口或端点的一般信息,下图3 2 为u s b 描 述符的层次结构。 图3 2u s b 描述狩的层次结构 f i g 3 2h i e r a r c h ys t r u c t u r eo fu s bd e s c r i p t o r s u s bh o s t 通过描述符获取设备的有关信息,根据这些信息,建立起通信, 在这些描述符中,规定了设备所使用的协议、端点情况等。因此,正确地提供描 述符,是u s b 设备正常工作的先决条件。 u s b 海量存储设备包括g e n e r a lm a s ss t o r a g es u b c l a s s 、c d r o m 、t a p e 、 第三章u s b 海量存储协议与文件系统 s o l i ds t a t e 。m a s ss t o r a g ec l a s s 只需要支持一个接口,即数据接口,选择缺省配 置时此接口即被激活。数据接口允许与设备之间进行数据传输,它提供三个端点: b u l ki n p u t 端点、b u l ko u t p u t 端点和中断端点。 通用海量存储设备是随机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家能源东营市2025秋招笔试模拟题及答案
- 青海地区中石油2025秋招面试半结构化模拟题及答案财务与审计岗
- 国家能源张家界市2025秋招网申填写模板含开放题范文
- 德阳市中石化2025秋招写作申论万能模板直接套用
- 营口市中石化2025秋招笔试行测专练题库及答案
- 赣州市中石化2025秋招面试半结构化模拟题及答案电气仪控技术岗
- 中国移动昭通市2025秋招市场与服务类专业追问清单及参考回答
- 盘锦市中石油2025秋招笔试模拟题含答案数智化与信息工程岗
- 国家能源西藏地区2025秋招面试专业追问及参考综合管理岗位
- 国家能源延边自治州2025秋招交通运输类面试追问及参考回答
- GB/T 18266.2-2025体育场所等级的划分第2部分:健身房
- 第4节 跨学科实践:电路创新设计展示-教科版九年级《物理》上册教学课件
- DGTJ08-2310-2019 外墙外保温系统修复技术标准
- 光电美容培训课件
- 子痫及子痫前期病例分析
- 2025至2030年中国智慧场馆行业市场运营态势及投资前景研判报告
- 2025年热塑性硫化橡胶市场前景分析
- 竣工结算审计服务投标方案(技术方案)
- 公路施工质量培训课件
- 2024北森图形推理题
- 基础护理8章试题及答案
评论
0/150
提交评论