(计算机应用技术专业论文)基于嵌入式linux的usb主机控制器驱动开发.pdf_第1页
(计算机应用技术专业论文)基于嵌入式linux的usb主机控制器驱动开发.pdf_第2页
(计算机应用技术专业论文)基于嵌入式linux的usb主机控制器驱动开发.pdf_第3页
(计算机应用技术专业论文)基于嵌入式linux的usb主机控制器驱动开发.pdf_第4页
(计算机应用技术专业论文)基于嵌入式linux的usb主机控制器驱动开发.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

江苏大学硕士研究生毕业论文 摘要 u s b 技术因其高速传输、即插即用、易于扩展、支持热拔插、占用资源少 的特点而在嵌入式系统中得到了广泛的应用,真正体现了数据交换的可移动性和 便捷性。然而,嵌入式系统通常不具备u s b 主机的功能,嵌入式u s b 设备间的 数据交换要以p c 机为中心,无法实现设备间点对点的数据交换。所以,对嵌入 式u s b 主机系统的研究具有实用的价值和意义。本文主要研究嵌入式u s b 主机 控制器驱动的开发。 本文的研究基于北京亿旗公司的e a x 4 0 0 嵌入式开发平台和嵌入式l i n u x 系统,并以u s b 主机控制器i s p l1 6 1 a 1 为开发对象。 首先,实现了硬件平台的嵌入式l i n u x 软件平台的构建,即实现b o o t l o a d e r 的移植、l i n u x 内核的移植和根文件系统的构建。 然后,在分析u s b 通信原理、o h c i 规范和u s b 子系统的基础上,根据u s b 主机控制器i s p i1 6 1 a 1 的特性和功能,设计并实现u s b 主机控制器驱动程序的 开发,其中主要实现了u s b 协议中的控制传输和同步传输。 最后,通过实现基于u s b 摄像头的视频采集系统,对嵌入式u s b 主机控制 器驱动进行了测试分析。 测试结果表明,所设计的i s p l l 6 1 a 1 主机控制器驱动能够较好的完成u s b 摄像头所采集的视频数据的传输,实现了对u s b 协议中的同步传输和控制传输 的支持,达到了预期的目的。 关键词:u s b ,嵌入式系统,i s p l1 6 1 a 1 ,u s b 主机控制器驱动 江苏大学硕士研究生毕业论文 a b s t r a c t t h et e c h n o l o g yo fu s bi sw i d e l ya p p l i e di ne m b e d e ds y s t e md u et oi t sh i g h s p e e do ft r a n s f e r , e x t e n s i b i l i t y , l o wr e s o u r ec o n s u m p t i o n ,s u p p o r tf o rp l u g - a n d - p l a y a sw e l la sh o tp l u g g i n g ,w h i c ht r u l ye m b o d yt h er e m o v a b i l i t ya n dc o n v e n i e n c eo fd a t a e x c h a n g e h o w e v e r , e m b e d e ds y s t e m su s u a l l yd o n ts u p p o r tt h ef u n c t i o no fau s b h o s t ,t h u st h ed a t ee x c h a n g eb e t w e e ne m b e d e du s b d e v i c e sn e e dt ob ep cc e n t r e da n d t h ep o i n t t o - p o i n td a t ae x c h a n g eb e t w e e nd e v i c e sc a n tb ea c h i e v e d a tt h i sp o i n t ,t h e r e s e a r c ho ne m b e d e du s bh o s t s y s t e m i so f p r a c t i c a l v a l u ea n dg r e a t s i g n i f i c a n c e t h i sp a p e rw o r k so v e rt h ed e v e l o p m e n to fd r i v e ro fe m b e d e du s b h o s t c o t r o i l e r t h i sp a p e rt a k e su s bh o s tc o n t r o l l e ri s p1161a 1a si t so b j e c to fr e s e a r c h ,w h i c h i sb a s e do nt h ee x a 一4 0 0e m b e d e dd e v e l o p m e n tp l a t f o r mo fb e i j i n ge f l a gc o r p o r a t i o n a n de m b e d d e dl i n u xs y s t e m f i r s t l y , t h e e m b e d d e dl i n u x p l a t f o r m b a s e do nt h eh a r d w a r eh a sb e e n c o n s t r u c t e d ,n a m e l y , t h ep o r t i n go f b o o tl o a d e r , l i n u xk e r n e la n dr o o tf i l es y s t e m a f t e r a n a l y z i n g u s bc o m m u n i c a t i o np r i n c i p l e ,o h c i s p e c i f i c a t i o n a n dl i n u xu s b s u b s y s t e m ,a i m e da ti s o c h r o n o u st r a n s f e ra n dc o n t r o lt r a n s f e ri nt h eu s bp r o t o c o l ,t h e d r i v e rf o re m b e d e du s bh o s tc o n t r o l l e ri sd e s i g n e da n di m p l e m e n t e d , s e c o n d l y , w h i c h i sb a s e do nt h ep e n e t r a t i o no fi s p116 1a 1 ,i n c l u d i n gm a i n l y i n i t i a l i z a t i o nm o d u l ei n t e r u p tm o d u l e ,r o o th u bm o d u l ea n ds oo n f i n a l l y , t h et e s to fu s b h o s td r i v e ri sc o m p l e t e db yt h ei m p l e m e n t a t i o no fv i d e o c a p t u r es y s t e mb a s e do nu s b c a m e r a w i t ht h i sr e s u l to ft h et e s t ,ac o n c l u s i o nc a nb es a f e l ym a d et h a tt h ee x p e c t a n t o b j e c t i v e i sw e l la c h i e v e d ,n a m e l y , t h es u c c e s s f u lr e a l i z a t i o no ft r a n s f e ro fv i d e o c a p t u r e db yu s bc a m e r aw i t ht h eh o s tc o n t r o l l e r d r i v e rf o ri s p 1161a 1a n d i s o c h r o n o u st r a n s f e ra sw e l la sc o n t r o lt r a n s f e ri nt h eu s bp r o t o c 0 1 k e yw o r d s :u s b ,e m b e d d e ds y s t e m ,i s p 1161 ,u s bh o s tc o n r o l l e rd r i v e r i l 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文 的规定,同意学校保留并向国家有关部门或机构送交论文的 复印件和电子版,允许论文被查阅和借阅。本人授权江苏大 学可以将本学位论文的全部内容或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和 汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密。 学位论文作者签名:关蓼 叩年易月l f 日 指导教师签名:三佩 q 年 f。 6 月( f 日 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指 导下,独立进行研究工作所取得的成果。除文中已注明引用 的内容以外,本论文不包含任何其他个人或集体己经发表或 撰写过的作品成果。对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到本声明的 法律结果由本人承担。 学位论文作者签名: 关勇 日期:二口7 年月1 1 日 江苏大学硕士研究生毕业论文 第一章绪论 1 1 课题研究的背景和意义 随着计算机技术的飞速发展,以应用为中心,以芯片技术、计算机和总线通 讯技术为基础的嵌入式系统【l 】变的越来越智能化和数字化。嵌入式系统产品正在 不断渗透到各个领域,如:数控机床、工业机器人、移动计算机设备、网络设备、 安全系统等。嵌入式技术已经成为计算机应用领域的一个新的增长点。 嵌入式系统主要由嵌入式处理器、相关硬件、嵌入式操作系统及应用软件组 成。嵌入式处理器具有低功耗、体积小、集成度高等特点。嵌入式处理器有a r m 、 p o w e r p c 、m 6 8 k 等,其中a r m 处理器已经占据了3 2 位r i s c 芯片【2 1 3 4 的市场 份额,a r m 处理器及技术的应用几乎渗入到包括工业控制、无线通讯、娱乐电 子产品等各个领域,并会在将来取得更加广泛的应用。嵌入式操作系统则有 l i n u x 、w i n c e 3 1 、v x w o r k s l 4 1 等。随着嵌入式系统深入到社会生活的方方面面, 众多的嵌入式设备与外部的连接要求更简洁、更方便、更具有智能化。 传统的外部设备通过r s 2 3 2 、r s 4 8 5 、并行接口、i s a 接口、p c i 接口和p s 2 接口等专用接口来实现与计算机的通讯,这些接口存在接口规范不统一、接口体 积庞大、非共享接口、不支持热拔插的缺点,而u s b 技术很好地解决了这些问 题【5 1 。u s b 是一种计算机和外部设备进行通信连接的新型接口,于1 9 9 4 年11 月, 由c o m p a q 、d i g i t a le q u i p m e n t 、i b m 、i n t e l ,m i c r o s o f t 、n e c 和n o r t h e r nt e l e c o m 7 家公司共同提出。u s b 出现的目的是取代现有计算机接口,简化计算机与外部 设备的连接过程,使计算机的扩展更加方便。目前,u s b 以接口体积小、支持 热拔插、即插即用、兼容性好、节省系统资源和成本低等优点得到广泛的应用1 6 1 。 目前,各种计算机外部设备都在逐渐改用u s b 接口。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 江苏大学硕士研究生毕业论文 主机功能,充分体现了数据交互的移动性和便捷性 7 1 。嵌入式l i n u x 系统具有多 任务、高效、稳定、开放源码等特征,在嵌入式领域的应用越来越广泛【8 1 ,因此 研究嵌入式l i n u x 下的u s b 主机驱动程序的设计具有重要意义。 1 2 国内外研究现状 目前广泛使用的u s b 规范有u s b l 1e 9 1 规范、u s b 2 0 【l o 】规范和u s b 2 0 规范 的补充规范u s bo t g l l 。u s b l 1 规范支持1 5 m b p s 和1 2 m b p s 两种传输速率, u s b 2 0 向下兼容u s b i 1 ,传输速率可达4 8 0 m b p s 。 随着技术的发展,v s i t a 、高清、d x l 0 正在逐渐普及,4 8 0 m b p s 的传输速度 对于现在的应用环境来说已经不足以满足人们的要求,英特尔公司和业界领先的 公司一起携手组建u s b3 0 推广组,并在2 0 0 8 年1 1 月1 7 日的u s b 开发者会议 上,发布了u s b 接口3 0 官方版本。u s b 3 0 标准其速度比目前普遍使用的u s b2 0 快上1 0 倍,每秒高达5 g b 。英特尔发布所谓的e x t e n s i b l eh o s tc o n t r o l l e ri n t e r f a c e ( 扩展主控制器介面,x h c i ) 规格修改草案0 9 ,以支持其u s b3 0 架构。该规格 草案提出一套标准化方法,供u s b3 0 硬件与u s b3 0 专用软件连结。u s b 的各 种协议标准都是由国外提出的,国内目前对u s b 系统的研究主要在实际应用方面。 国内外对嵌入式u s b 主机系统正处于积极研究和发展的阶段,目前国外一 些半导体公司都推出了面向嵌入式系统的u s b 主机控制器芯片,现在比较成熟 的有c y p r e s s 公司的s l 8 1 l h s 和p h i l i p s 公司的i s p l l 6 1 ,符合u s b l 1 规范,支 持u s b 四种传输类型;p h i l i p s 公司2 0 0 4 年推出了i s p l 7 6 0 ,它是业界第一款符 合u s b 2 0 规范、且支持高速传输的u s b 主机控制器。 随着消费类电子产品的迅速发展,移动设备功能的日益强大使得人们对产品 的要求越来越高。如何顺应用户需求,将嵌入式u s b 主机应用于消费类电子产 品成为当今消费类嵌入式产品的一个热点。目前市场上基于u s b 的外设已经囊 括几乎所有的主流数字产品,大多数厂家提供的产品或例程大多是基于嵌入式操 作系统w i n c e 和l i n u x 等,给出的u s b 器件类也不尽完善。在国内嵌入式u s b 主机系统的研究仍然处于起步阶段,仅有很少的u s b 嵌入式主机的产品问世。 1 3 论文的研究内容和章节安排 本论文主要针对嵌入式系统下的u s b 主机控制器驱动程序做相关的研究与 2 江苏大学硕士研究生毕业论文 设计,具体的工作如下: 1 通过建立交叉编译环境、移植系统启动引导程序b o o t l l o a d e r 、移植和配 置l i n u x 内核、构建根文件系统几个部分,实现硬件平台上的嵌入式l i n u x 软件 平台的构建。 2 在研究u s b 通信原理和o h c i 规范的基础上,对l i n u xu s b 子系统进行 分析,然后根据i s p l1 6 1 a i 的功能和特性,设计并实现u s b 主机控制器驱动程 序。 3 通过实现基于u s b 摄像头的视频采集系统,完成u s b 主机控制器驱动 程序的测试,其中主要完成对u s b 主机控制器初始化、根h u b 枚举、控制传输 功能和同步传输功能的测试。 论文的章节安排如下: 第一章:绪论。阐述课题的背景和意义、发展现状等,并介绍了论文的内容 和组织结构。 第二章:u s b 关键技术。详细介绍了u s b 技术,其中主要包括u s b 通信原 理、o h c i 规范、l i n u x 下的u s b 子系统等内容。 第三章:嵌入式l i n u x 开发平台的构建。简要介绍e a x 4 0 0 嵌入式开发系 统并实现系统软件平台的构建。 第四章:i s p l l 6 1 a 1 主机控制器驱动的开发。本章在研究u s b 协议、o h c i 的基础上和l i n u x 下u s b 子系统的基础上,设计并实现u s b 主机控制器驱动程 序。 第五章:视频采集的实现。研究v 4 l 技术实现视频采集应用程序,并利用 j p e g 静态图像压缩技术实现u s b 摄像头采集的视频图像的压缩。完成u s b 主 机控制器驱动程序的测试。 第六章:总结与展望。 江苏大学硕士研究生毕业论文 第二章u s b 关键技术 本章根据u s b 协议对u s b 关键技术进行了描述,其中主要描述了u s b 通 信原理、o h c i 规范和l i n u xu s b 子系统。 2 。lu s b 拓扑结构 2 1 薹物理拓扑 u s b 的物理拓扑为分层的星型结构,由3 部分组成:u s b 主枫、u s b 集线 器和u s b 设备f 12 1 。如图2 1 所示,u s b 主机是该拓扑结构的起点,u s b 集线器 是其中心,每一层都是集线器和功能设备之间点到点的连接,其层次最多为7 层, 逶过这种分层的星型总线拓害 结构,u s b 系统最多可以支持1 2 7 个u s b 设备的 连接。 2 1 2 逻辑拓扑 图2 1u s b 总线的物理拓扑结构 u s b 逻辑设备是u s b 系统软绺对u s b 设备的抽象,虽然u s b 设备是以分 层的星型总线拓扑结构来连接,但从逻辑上看,u s b 主机可以与分层的u s b 设 备直接通信,好像与设备直接相连样,如图2 2 所示。 4 江苏大学硕士研究生毕业论文 图2 - 2u s b 总线的逻辑拓扑 2 2u s b 系统的分层结构 整个u s b 系统可以分为功能层、u s b 设备层和u s b 总线接口层。图2 3 对 u s b 系统的分层结构进行了描述【1 3 】。 e = = = 司 - _ 一 数据流 图2 3u s b 系统的分层结构 1 功能层 功能层主要负责实现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 系 统软件对u s b 设各的抽象,它被著做是一个端点蛉集合。 3 u s b 总线接朋层 u s b 总线接口层实现了主机和u s b 设备问数据的实际传输,它由主机方的 u s b 主控制器( 包括根集线器) 和设备方的u s b 总线接口两部分组成。u s b 总 线接口使用n r z i 编码( 反向非归零编码) 来传输数据,u s b 主控制器和u s b 集线器对数据进行接受或发送,并自动对其解码或编码。 2 2u s b 通信原理 u s b 通信逻辑上分成三层:信号层、协议层和数据传输层。 1 信号层:用来实现在u s b 设备和主枫斡物理连接之间传输缀信息流的信 息,该层的信息流称为包。 2 协议层:用来实现在u s b 设备和u s b 主机端的协议软件之间传输包字 节流的信息,该层传输的包信息称为事务处理。 3 数据传输层:用来实现在u s b 主机端的客户端驱动程序和设备端的功能 接口之间传输有一定意义的信息,这些信息在协议层被打包成包格式,该层传输 的信息流称为传输。 2 2 2 传输的基本单元 包( p a c k e t ) 是u s b 系统中信息传输的基本单元。所有数据都是经过打包后在 总线上传输的f 1 4 】【1 5 1 。 1 包的组成 由同步( s v n c ) 字段、包糠识( p i d ) 字段、地址字段( a d d r ) 、端点字段( e n d p ) 、 帧号字段、数据字段、循环冗余校验( c r c ) 字段和包结尾( e o p ) 字段8 个部分组 成。 同步字段( s v n c ) 6 江苏大学硕士研究生毕业论文 所有的包都从同步字段开始的,同步字段提供同步时刻识别的编码序列。在 空闲状态时,同步字段以n r z i 编码的二进制串“k j k j k j k k ”出现在总线上。输 入电路利用同步字段使输入数据与本地时钟同步。同步字段的最后的2 位是同步 字段结束的记号,并标志着包标识符的开始。 包标识符( p i d ) 包标识字段紧跟在同步字段之后,并指明该信息包的类型、格式和所采用的 差错控制机制,它由4 位类型字段和4 位校验字段组成。校验字段是类型字段的 二进制补码,用于保证包标识符的传输可靠性。 包标识符分为令牌、数据、握手和专用四种类型。表2 1 列出了包标识符类 型、编码及其描述。 表2 1 包标识符类型 p i d 类型 p l d 名 p i d 3 :0 】 描述 输出( o u t ) 0 0 0 l b 从主机剑功能 垃备的数据传输 输a ( i n ) 1 0 0 1 b 从功能部作到主机的数据传输 令牌 ( t o k e n )帧开始( s o f ) 0 1 0 1 b帧开始标记和帧号 建青( s e t u p ) 1 1 0 1 b 从主机到功能设备,表示要进行控制 传输 数据 数据0 ( d a t a 0 ) 0 0 l l b 偶数据包p i d ( d a t a ) 数据i ( d a t a l ) 1 0 1 1 b 奇数据包p l d 确认( a c k ) 0 0 1 0 b 接收器收剑尤错数据包; 握手 不确认( n a k ) 1 0 1 0 b 接收器无法接收数据,或发射器不能 ( h a n d s h a k e ) 发送数据; 停i _ = ( s t a l l ) l l l 0 b 端口挂起,或一个控制管道请求不被 支持。 专用 前同步( p r e ) 1 1 0 0 b 上机发送的前同步字。打开到低速设 ( s p e c i a l ) 备的下行总线通信。 地址字段( a d d r ) 地址字段存放的是设备在主机上的地址,具有唯一性,设备和地址是一一对 应的,并且由主机分配地址。地址字段的长度为7 位,共有1 2 8 个地址值。地址 0 作为缺省地址,不能分配给u s b 设备,因此,只有1 2 7 个可分配的地址值。 端点字段( e n d p ) 7 江苏火学硕士研究生毕业论文 端点字段用于指定u s b 设备中的一个端点,它的长度为4 位。全速高速设 备最多w 含有1 6 个端点,低速设备只能含有3 个端点,其中端点0 是所有u s b 设备必须的。 帧号字段 帧号字段是一个l l 位的字段,主机每过一帧就将其内容加l ,帧号字段达 到最大值7 f f h 时归零。它在每帧的s o f 包中发送。 数据字段 数据字段包含主机和u s b 设备之问需要传输的数据,最大长度为1 0 2 4 字节, 实际的数据字段长度由传输类型和程序的需要决定。 循环冗余校验字段( c r c ) c r c 字段是用来对包中的数据信息进行错误保护的,它是以包中数据字段 的存在而存在的,c r c 字段在数据的位填充之前出发送端产生,同样地在填充 位被去除之后,c r c 在接收端中褥到译码。c r c 字段主要在如下两霉睾情况下使 用: ( 1 ) 令牌包:在令牌包中,一般采用5 位循环冗余校验c r c 。 ( 2 ) 数据包:在数据包中,一般采用1 6 位循环冗余校验c r c 。 包结尾字段( e o p ) 包的发送方在包的结尾发出包结尾信号。u s b 主机和u s b 设备根据e o p 判 断数据包的结束。除蘸导包( 即p i d 为 ; f 同步p r e 时的数据包) 外的其他所有 u s b 数据包都必须具有e o p ,以用来指示数据包的结束。 2 包的类型 根据p i d 类型,u s b 规范支持四种不同类型的包:令牌包、数据包、握手 包和专用包。 令牌包 在u s b 系统中,只有主机才能发出令牌包。令牌雹定义了数据传输的类型, 是事务处理的第一个阶段。u s b 包含四种令牌包:输入令牌包( i n ) 、输出令牌 包( o u t ) 、用于控制传输的设置令牌包( s e t u p ) s 1 起始令牌包( s o f ) 。 数据包 数据包由p i d 字段、包含0 个或多个数据字节的数据字段以及c r c 字段组 8 江苏大学硕士研究生毕业论文 成。数据包有2 种类型的p i d :d a t a 0 和d a t a l 。数据c r c 仅与包的数据字 段相关。 当u s b 发送数据包的时候,如果一次发送的数据长度大于相应端点容量的 时候,就需要把该数据分成好几个包,分批发送。如果第一个数据包被定为 d a t a 0 ,那么第二个发送的数据包就应该是d a t a l 如此交替下去。而数据 的接收方在接收数据时检查其类型是否是d a t a 0 、d a t a l 交替的,这是保证数 据交换正确的机制之一。 握手包 握手包用于报告数据处理的状态,它仅由一个p i d 字段构成。握手包用于报 告事务处理的状态,以反映数据接收成功与否、指定端点是否被停止、是否能响 应命令等情况。握手包可分为3 中类型:确认包a c k 、无效包n a k 和停止包 s t a l l 。这三种包的具体含义如下: ( 1 ) a c k 包 表示接收的数据包在数据段没有位填充或c r c 错误,数据p i d 也被正确接 收。a c k 握手包只使用于数据传送完成且期待握手信号的事务中,对于i n 事务, a c k 由主机返回,而且对于o u t 或s e t u p 事务则由功能部件返回。 ( 2 ) n a k 包 表示功能设备不能从主机接收数据,或者功能设备没有数据发送到主机。功 能设备只有在i n 处理的数据阶段或者o u t 处理的握手阶段返回n a k 。主机不 会发送n a k 握手。n a k 用于实现流控制,它能指出功能设备暂时不能发送或者 接收数据,但最终可以发送或者接收数据且无需主机干涉。 ( 3 ) s t a l l 包 表示u s b 设备没有能力发送或接收数据,或u s b 设备不支持某个控制请求。 s t a l l 包只能由u s b 设备在i n 事务的数据阶段或在o u t 事务的握手阶段返回。 前导包( 专用包,p r e a m b l e - - p a c k e t ) 主机在开始低速事务之前必须先发送一个前导包,它提醒u s b 集线器系统 要传输的下一个包是一个低速包。 2 2 3 事务处理 u s b 事务处理是u s b 主机和u s b 设备之间数据通信的基础,由一系列的包 9 江苏大学硕士研究生毕业论文 组成,如s e t u p 包、a c k 包等。一个完整的u s b 事务处理包含三个阶段,各 个阶段的功能如下: 令牌阶段:所有的u s b 事务处理必须包含的阶段,表示事务处理的开始, 定义了本次传输的类型。 数据阶段:其中包含了本次传输的数据。其数据大小取决于端点和传输类 型,最大数据量为1 0 2 4 字节。 握手阶段:用于报告事务处理的状态,以表明传输是否成功。 事务处理分为输入( i n ) 事务处理、输出( 0 u t ) 事务处理和设置( s e t u p ) 事务 处理。 1 输入( ) 事务处理 i n 事务处理用于完成u s b 设备到主机的数据传输。传输成功的情况下,玳 事务包括令牌、数据和握手3 个阶段,其实现过程如下: ( 1 ) u s b 主机向指定的u s b 设备发送i n 令牌包。 ( 2 ) u s b 设备正确接收到i n 令牌包,向主机发送数据包。 ( 3 ) u s b 主机正确接收到数据包后,向u s b 设备返回a c k 握手包。 当设备不能成功地响应主机发出的i n 令牌包时,u s b 设备的响应有:当收 到的i n 令牌包己损坏,则u s b 设备不应答;如u s b 设备暂时不能向主机发送 数据,则返回n a k 握手包;当u s b 设备的这个i n 端点被停止了,则向主机返 回s t a l l 握手包。当主机暂不能接收数据或检测到数据包已损坏,则会丢弃数 据包,不做任何响应。 2 输出( o u t ) 事务处理 o u t 事务处理用于完成主机到u s b 设备的数据传输。传输成功的情况下, o u t 事务处理包括令牌、数据和握手3 个阶段,其实现过程如下: ( 1 ) u s b 主机向指定的u s b 设备发送o u t 令牌包。 ( 2 ) u s b 设备正确接收到o u t 令牌包,然后u s b 主机发送数据包。 ( 3 ) 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 0 江苏大学硕士研究生毕业论文 3 设置( s e t u p ) 事务处理 s e t u p 事务处理是一种特殊的u s b 事务处理,它只在u s b 控制传输阶段 使用。正确传输的情况下,s e t u p 事务处理包括令牌、数据和握手3 个阶段, 其实现过程如下: ( 1 ) u s b 主机向指定的u s b 设备发送s e t u p 令牌包。 ( 2 ) u s b 设备正确接收到s e t u p 令牌包,然后u s b 主机丌始发送数据包。 ( 3 ) u s b 设备正确接收数据包后,向u s b 主机返回a c k 握手包。 当u s b 设备接收到的s e t u p 令牌包有误,u s b 设备则忽略该信息包,且 不做任何响应。一旦u s b 设备接收了s e t u p 令牌包,则一定要接收后面的数据 包并向主机返回a c k 握手包。 2 2 4 数据传输 针对设备对系统资源需求的不同,u s b 定义了四种不同的数据传输方式: 控制传输、批量传输、中断传输和同步传输。 1 控制传输 控制传输适用于传输少量的、对传输时间和传输速率均无要求、具有数据传 输保证,主要有读取设备配置信息及设备状态、设置设备地址,设置设备属性、 发送控制命令等功能。 控制传输至少有2 个事务阶段:建3 f f _ ( s e t u p ) 阶段与状态( s t a t u s ) 阶段, 建立和状态阶段之间包含一个可选的数据阶段。 在建立阶段里,s e t u p 事务用于将信息发送到功能设备的控制端点。如图 2 - 4 所示,s e t u p 事务的数据阶段使用d a t a 0 。接收s e t u p 的功能设备必须接 收s e t u p 数据并用a c k 响应,如果数据被损坏,则丢弃数据且不返回握手。 控制传输数据阶段( 如果存在) 由一个或多个烈或者o u t 事务组成。数据阶段 里的事务必须有相同的方向。状态阶段是以上一阶段的数据流方向的改变来描 述,并且总是使用d a t a l 。图2 5 所示为控制传输的数据发送顺序。 江苏太学硕士研究生毕业论文 令牌 数据 瘦答 空闲 空闲 圜主机 功能部件 图2 - 4 控制傍输s e t u p 事务处理。 建立阶段 控制写i , s e t u p ( o ) i d a t a 0 控制读匡亟圃 d 焱t a 9 建立阶段 璐譬蒯 制传输错 状态阶段 白a d a 张ld a t a 0d a 张彭ld a 羊a l 口圃 巫口匝圃匝亟妇 d a 零ad a 下a 0 d a t a 彰ld a 羊al 状态阶段 l ( 1 ) l d a t a l 图2 - 5 控制传输的数据发送顺序 当控制端口在控制传输的数据和状态阶段中发送s t a l l 握手的时候,必须 对以后所有对此端瑟访闯返网s t a l l 握手,直到荐次收到s e t u pp i d 为止。端 网收到建立p i d 之后,不应返回s t a l l 握手。 2 同步传输 同步传输适用于传输大量的、速率恒定的、置对服务周期有要求的数据,一 般用于传送与时间相关的信息。露步传输仅适用于全速高速设备。 如图2 - 6 所示,同步传输的事务处理只有令牌时相和数据时相。主机发出输 入或输蕊令牌后,u s b 设备( 输入) 或u s b 主机( 输出) 传送数据的数据时相。 同步传输的事务处理中,设备或主机应该只发送d a t a o 。 1 2 江苏大学硕士研究生毕业论文 令牌 数据 空闲 空闲 囡主机 功能部件 图2 - 6 同步传输事务处理 3 批量传输 批量传输适用于传输大量的、且对传输时问和传输速率均无要求的数据,采 用差错控制和重传机制来确保传输的正确性。批量传输仅使用于全速高速设备。 批处理事务处理一般包含令牌、数据和握手三个阶段。在某些情况下,数据 阶段被握手阶段替换,从而产生了没有数据传输的两个阶段的批量事务。 当主机准备好接收批处理数据时,它发出一个i n 令牌包。如果u s b 设备在 接收到该令牌包时,发现其已经损坏,则不作任何应答,否则u s b 设备向主机 返回数据包、n a k 或s t a l l 握手包。n a k 表示功能部件暂时不能返回数据, 而s t a l l 表示端口永久地被停止,需要u s b 系统软件干涉。如果主机收到有效 的数据包,则它向u s b 设备返回a c k 握手包。如果主机收到数据包时主机检测 到错误,则会丢弃该数据包,并不做任何应答。 当主机与某个设备进行多次批量传输时,令牌包中的标识符是在d a t a 0 和 d a t a l 之间交替变化的。如图2 7 描述了成批发送和接收传输时令牌包标识符 的变化情况。通过使用d a t a 0 d a t a l 的令牌标志符,达到数据同步的目的。 批量o u t 传输 亟互至口 d a t a 0 批量i n 传输 ! 圃 d a t a 0 臣亟刃 d a t a l 口巫口 d a t a 叵亟回 d a t a 0 l i n ( 0 1 ) l r - - - - - - - - - - - - - - - - - ,一 d a t a 0 1 图2 7 批量传输数据包的发送顺序 4 中断传输 中断传输适用于传输少量或中量的、且对服务周期有要求的数据。中断传输 使用差错控制和重试机制来确保传输的正确性。 江苏大学硕士研究生毕业论文 如图2 8 所示,中断事务处理包括i n 传输和o u t 传输,可具有令牌、数据 和握手三个阶段。当u s b 主机接收中断时,它将向特定u s b 设备发出i n 令牌 包,而u s b 设备将向u s b 主机返回数据包、n a k 或s t a l l 握手包,当u s b 设备接收到的i n 令牌包有误时,它将丢弃数据包,并不作任何相应。当主机接 收中断时,它将向特定u s b 设备发出o u t 令牌包和数据包,而u s b 设备将向 u s b 主机返回数据包、n a k 或s t a l l 握手包,当u s b 设备接收到的o u t 令 牌包或数据包有误时,它将不作任何应答,并丢弃数据包。 令牌 数据 握手 2 3u s b 主机 匿t n 习e o u , ! , i i l l 心i 厩 尸7 a o 单宴娴粜 世 | 匿7 燃习 、篙耄币年申 数据 出错 fl- 士 园主机口功能部件 图2 - 8 中断传榆事务处理 闲 在任何u s b 系统中,只有一个主机。u s b 主机在整个数据传输的过程中占 据主导地位,u s b 系统的数据和命令的传输都由u s b 主机来启动。u s b 主机内 部含有u s b 主机控制器,负责完成主机和u s b 设备之间的物理数据传输。 2 3 1u s b 主机功能 u s b 主机完成的主要功能如下: 1 检测u s b 设备的连接和断开 2 管理主机和u s b 设备间的控制通信流 1 4 江苏大学硕士研究生毕业论文 3 管理主机和u s b 设备问的数据通信流 4 收集总线状态和总线活动信息 5 控制主控制器和u s b 设备间的电气接口 2 3 2u s b 主机端的软件结构 根据u s b 协议,u s b 主机端软件分为3 层,从上向下分别为客户端驱动程 序( c l i e n t d r i v e r ) 、u s b 驱动( u s bd r i v e r ,简称u s b d ) 和主机控制器驱动程序 ( h o s tc o n t r o l l e rd r i v e r ,简称h c d ) 三层【1 6 1 。u s b d 和h c d 两部分组成u s b 系 统软件( u s bs y s t e ms o f t w a r e ) 。 1 客户端驱动程序( c l i e n t d r i v e r ) 完成对不同设备类的设备的功能驱动。应用程序通过文件系统提供的接口 函数和客户端驱动程序进行交互。为了和设备j 下常通信,客户端驱动程序通过 i o 请求包( i r p ) 向u s b d 层发出数据接收或发送的请求,i o 请求包的性质与 w i n d o w sn t 中的i r p 相似。此外,u s b 的数据传输机制对客户端驱动程序是透 明的。客户端驱动程序所看到的仅仅是具体的设备类,不管设备采用何种方式传 输数据。另外i r p 是u s b 协议定义的抽象概念,其结构需根据协议的具体设计 而定。 2 u s b d ( u s bd r i v e r ) 主要负责处理客户端驱动程序提供的i o 请求,它通过i r p 知道此设备的属 性和本次数据通信的要求,将此i r p 转换成u s b 所能辨识的一系列事务处理, 交给h c d 层或直接交给主机控制器处理。u s b d 还负责新设备的配置、被拔掉 的设备的资源释放和对客户端驱动程序的维护等操作。 3 h c d ( h o s tc o n t r o l l e rd r i v e r ) 主要功能是与主机控制器合作完成u s b 各种事务处理。它根据一定的规则 调度所有将被广播发送到u s b 上的事务处理。调度方法是首先将数据按传输类 型组成不同的链表,每种链表包括来自不同设备驱动程序的同一种类型的数据, 然后定义不同类型传输在一帧中所占带宽的比例,交给主机控制器处理,控制器 根据规则从链表上摘下数据块,根据大小为它创建一个或多个事务处理,完成与 设备的数据传输。当事务处理完成时,h c d 将结果交给u s b d 层,此外,它还 完成对主机控制器和根集线器的配置和驱动等操作。 江苏大学硕士研究生毕业论文 2 4o h c i 规范 o h c i l l 7 1 是一种u s b 主机控制器的设计规范,它从寄存器级对主机控制器进 行描述。本课题研究的u s b 主机控制器i s p l l 6 1 a 1 和o h c i 规范是兼容的。下 面对o h c i 规范进行研究。 o h c i 规范规定了两种主机控制器与主机控制器驱动程序问的通讯接口,即 控制器操作寄存器和控制器通信区h c c a 。o h c i 同时规定驱动程序使用e d 和 t d 的结构实现对控制器传输数据包的访问。其中,e d 描述了相关端点的地址、 数据传输方向以及最大数据包长度等信息,不同传输类型的e d 采用单向链表的 方式连接在一起;t d 对u s b 设备端口传输的数据包进行描述,每个e d 下都连 接了一个与该e d 相关的t d 链。 2 4 1o h c i 中的e d 链表实现机制 o h c i 协议为e d 提供了3 个链表:批量传输链表、控制传输链表和周期性 传输链表,这3 类链表由主机控制器和控制器驱动程序共同维护。批量传输和控 制传输的e d 链表的头指针存储在主机控制器的操作寄存器中,周期性传输链表 的头指针存储在h c c a 中。o h c i 通过h c c a i n t e m p t t a b l e 提供中断链表的入1 :3 , 中断传输的链表包含3 2 个入口地址,它提供了反向二叉树结构,其中的每个节 点都可以容纳e d 链表。控制器在一毫秒内处理完成从一个叶子到根节点的所有 e d 的当前t d 的处理过程。下一毫秒处理下一个叶子所指一串节点的e d 链表, 3 2 毫秒为一个周期,o h c i 没有特定的e d 头指针管理同步传输。由于中断传输 的最后一个e d 支持的数据传输速率为1 次毫秒,与同步传输的速率相同,故同 步传输的e d 被简单的连接到最后一个中断传输e d 后面。 2 4 2o h c i 控制器对链表的处理 o h c i 控制器负责对链表上的数据进行处理。 对于中断和同步传输,o h c i 控制器从当前毫秒帧的中断e d 头指针开始, 对所有连接在其上的数据进行处理。 对于控制和批量传输,o h c i

温馨提示

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

评论

0/150

提交评论