(通信与信息系统专业论文)基于usb的视频数据采集的研究和实现.pdf_第1页
(通信与信息系统专业论文)基于usb的视频数据采集的研究和实现.pdf_第2页
(通信与信息系统专业论文)基于usb的视频数据采集的研究和实现.pdf_第3页
(通信与信息系统专业论文)基于usb的视频数据采集的研究和实现.pdf_第4页
(通信与信息系统专业论文)基于usb的视频数据采集的研究和实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(通信与信息系统专业论文)基于usb的视频数据采集的研究和实现.pdf.pdf 免费下载

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

文档简介

重庆邮电人学硕十论文 摘要 近年来u s b 接口技术已经成为计算机领域发展最快的技术之一。到目前为 止,u s b 已经在p c 机的多种外设上得到了应用,包括扫描仪、数码相机、数码摄象机 音频系统、显示器、输入设备等。同时,u s b 技术不但在p c # 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 0 达到4 8 0 m b s ,本课题涉及的u s b l 1 协议已经能很好的支 持视频数据的实时传输了。现在u s b 总线在数据采集系统中应用的越来越广泛了。 系统的视频采集端采用l i n u x 嵌入式系统,采用上海杰德公司自主研发芯片z 2 2 8 中嵌套的m p e g 4 编码芯片对所采集的视频数据进行编码,编码芯片处理后的数掘通 过u s b 接口与w i d n o w s 端的主机相连,本文在介绍w i n d o w su s b 驱动程序开发特点 的基础上详细介绍了这个u s b 设备驱动程序的开发。 课题的主要任务就是完成一个u s b 数据采集系统设计,涉及的内容比较多,包 括系统驱动程序的设计、应用程序的设计,以及u s b 数据采集系统开发,又先后阐 述了系统设计思想、系统硬件设计、固件设计、以及应用程序设计等。此课题主要 完成的工作就是设备在上位机w i n d o w n s 端的u s b 驱动的设计和开发。最后提出了 利用多端点技术来提高视频数据的传输速率,使视频画面更流畅清晰,这也是以后 工作中需要努力研究的方向。 关键词:u s b 协议,视频数据,系统设计,固件程序,设备驱动 重庆邮电人学硕士论文 摘要 a b s 仃a c t t e c h n i q u eo fu s bb e c o m e so n eo ft h em o s td e v e l o p e dt e c h n i q u e si na r e ao f c o m p u t e rf o rt h i sy e a r s u pt on o w , u s bh a sb e e na p p l i e dt om o s tp e r i p h e r ye q u i p m e n to f p c s ,i n c l u d i n gs c a n n e r s ,c a m e r a s ,p i c k u pc a m e r a s 、s y s t e m so fa u d i o ,d i s p l a y s ,i n p : e q u i p m e n ta n ds oo n a tt h es a m et i m e ,i th a sb e e na p p l i e dt oi n d u s t r ya n dr e s e a c h t h em o s td i f f i c u l t yp a r to fu s bs y s t e md e s i g ni st h ef i r m w a r e ,u s bs u t a i n sp n p ,s o w h e nt h eu s be q u i p m e n ti n s e r ti n t ou s bb u s ,t h eu s bh o s tn e e dt o s e t u pt h eu s b e q u i p m e n ta n dt h ef i r m w a r eo ft h ee q u i p m e n tn e e dt oa c c e s st ot h ev i s i to ft h eh o s t s n w ea c h i e c ep n p u s b a p l l i e dt ov i d e o 丘e q u e n c yc o l l e c t i n gs y s t e mh a si t so w ns u p e r i o r i t y u s bh a sa h i g hs p e e dd a t at r a n s f e re f f i c i e n t ,e s p e c i a l l yf o ru s b 2 0a c h i e v e4 8 0 m b s u s b1 1t h a tt h e t a s kr e f e rt oh a ss u s t a i n e dt h er e a l t i m et r a n s f e ro fv i d e od a t a n o wu s b t e c h n i q u eh a s b e e nw i d e l yu s e di nc o l l e c t i o ns y s t e mo fv i d e od a t a v i d e oa c q u i s i t o nr u n si nl i n u x t h ea c q u i s i t o ns y s t e ma d o p t sm p e g 4 c o d i n gc h i pt o c o l l e c t ev i d e od a t a , a n dt h ec h i pi sn e s t i n gi nz 2 2 8w h a ti sp r o d u c e db ys h a n g h a ij a d e c o m p a n y t h ec o l l e c t e dd a t ai si n p u tt ow i n d o w sb yu s b t h es u b j e c tt e l l su sh o wt o e m p o l d e ru s b d e c i c ed r i v e r t h el e a d i n gt a s ko ft h es u b j e c ti st oi n t r o d u c et h ep r o c e s so ft h ed e s i g na b o u tt h e a c q u i s i t o ns y s t e mt h a tr e l a t et oal o t ,i n c l u d i n gt h ed e s i g no fs y s t e md r i v e r 、d e s i g no f m u l t i t h r e a d i n ga p p l i c a t i o n 、t h ep l a no fs y s t e md e s i g n 、t h ef i r m w a r ed e s i g na n ds oo n a t l a s tw ep u tp o r w a r d st h a tw ec a nm a k et h et r a n s f e rs p e e dm o r ef a s ti fu s i n gm u l t i p o r t ,a n d t h a tw i l lb et h el e a d i n gl a s tw en e e dt oa c h i v ei nf u t u r e k e yw o r d s :u s bp r o t o c o l ,v i d e od a t a , s y s t e md e s i g n ,f i r m w a r ep r o g r a m ,d e v i c ed r i v e 重庆邮电人学硕十论文第一章绪论 1 1 项目背景介绍 第一章绪论 当人们还沉湎于r s - 2 3 2 及打印机并口接口设计时,一种新的接口标准已经迅速 发展成熟,这就是u s b ( u n i v e r s a ls e r i a lb u s ) 。随着u s b 的出现,一场老式的接 口的淘汰运动已经拉开了序幕。矿 u s b 是用来连接外围设备与计算机的的新式接口,每一台新式的p c 都至少有两 个u s b 连接端口。标准的外围设备都已经改用u s b 接口来连接p c 。u s b 的接口与连 接端口不但体积小,而且可以利用集线器( h u b ) 让多个u s b 设备同时连接到一个连接 端口。安装u s b 设备不需要用户自己设置硬件与软件的选项,你可以在计算机运行 时任意连接或是移除设备,操作系统会自动侦测有无u s b 设备的连接。w i n d o w s 操 作系统包含了标准外围设备的u s b 驱动程序,并且提供a p i 函数让用户与设备通信。 一般的u s b 外设都使用一片微控制器作为其核心部件。通过微控制器的强大 的控制和运算功能,开发者很容易实现u s b 设备的智能化。上海杰德公司将其1 6 位微控制器归类为用户定制的集成电路( c s i c ) 。为客户提供m p u 、r a m 、r o m 、s p i 、 s c i 、定时器和u s b 模块。其推出的芯片z 2 2 8 集成含有u s b 模块的1 6 位微控制器, 通过内含的u s b 模块,用户可以很方便的实现u s b 总线上的数据通信。z 2 2 8 是一 款高度集成的低功耗的具有强大多媒体处理能力的s o c 芯片。它的特点是内置 2 6 6 k 肼i z 的a r m 9 2 6 e j 内核。片内集成u s b 控制模块,同时支持便携式u s b 主设备或 u s b 外设相连,可用于与p d a 、读卡器和打印机等设备直接相连,而无需p c 机介 入。 1 2 项目要实现的目标 本项目的目的就是吸收u s b 总线和z 2 2 8 集成芯片的先进技术,设计出视频监控 系统实时数据流的传输。此u s b 系统,采用z 2 2 8 集成摄像头将采集到的编码数据通 过u s b 总线发送到p c ,再由自行编写的驱动程序接收,最终转给w i n d o w s 端应用软 件录制转播及保存。 重庆邮电人学硕+ 论文 第一章绪论 1 3 论文结构 根据项目所要达到的目标,本文主要介绍了u s b 总线协议以及针对本项目从硬 件和软件实现上作了具体描述,做了以下工作: 全文共分六章。 第一章为绪论,阐述了本课题的开发背景和最终要实现的目标。 第二章概述u s b l 1 协议规范。 第三章u s b 视频采集系统硬件的设计和实现过程,包括对外围u s b 电路的设 计,总体硬件框图的搭建。 第四章u s b 视频采集系统软件的设计和实现过程,包括嵌入式l i n u x 下的固件 程序的流程开发以及利用w d m 驱动开发模型对w i n d o w s 端u s b 驱动的开发设计 思想。 第五章系统的调试运行和结论,并对影响u s b 速率传输的各方面因素做了分 析。 第六章总结本文的工作,并提出进一步研究的展望。 2 重庆邮电人学硕士论文 第二章u s b 总线协议概述 第二章u s b 总线协议概述 u s b 总线协议是以i n t e l 为主,并有c o m p a q ,m i c r o s o f t , i b m ,d e c ,n o r t h e r n t e l e c o m 以及r 本n e c 等共七家公司共同制定的串行接口标准,1 9 9 4 年制定了第一 个草案,1 9 9 6 年2 月公布u s b 规范版本1 0 。u s b 可把多达1 2 7 个外设同时连接 到你的系统上,所有的外设通过协议来共享u s b 带宽。1 9 9 2 年2 月发布的u s b 规 范版本已经将1 2 m b p s 的带宽提升到1 2 0 - 2 4 0 m b p s 。u s b 允许外设在主机和其它 外设工作时进行连接、配置、使用及移除,即所谓的即插即用( p l u g & p l a y ) 。同时 u s b 总线的应用可以清除p c 上过多的i o 端口,而以一令串行通道协议,使p c 与外设之间连接容易。 要设计u s b 设备的硬件与软件,需要了解u s b 工作原理以及p c 机的操作系统 如何与u s b 设备通信。除此之外,选择合适的u s b 芯片与工具有助于简化设计工 作。在本章中我们主要介绍u s b 的基本原理,以使读者对u s b 有大致的了解,如 果需要了解更多有关u s b 协议比3 细节,请查阅u s b 总线规范,可以在w w w u s b o r g 下载得到。 2 1 总线拓扑结构 u s b 连接了u s b 设备和u s b 主机,u s b 的物理连接是有层次的星型结构。每 个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部 件,或从集线器到集线器或其功能部件,从图2 1 中可看出u s b 的拓扑结构o ”。 在任何u s b 系统中,只有一个主机。u s b 和主机系统的接口称作主机控制器, 主机控制器可由硬件、固件和软件综合实现。根集线器是由主机系统整合的,用砂 提供更多的连接点 在同一总线上的所有设备,都共享同一个连接到主机计算机的数据路径。不过 在同一时间内,只能有一个设备与主机通信。如果有更大的带宽,也可以新增第二 个路径。只要在主机上安装一个适配卡,来新增一个主机控制器和集线器即可,有 的适配卡还有多个主机控制器。除此之外,还有一种带有多个独立接口的多功能组 合设备,这种设备只有一个总线地址,但是每一个接口在主机上都可以有对应的设 备驱动程序。 重庆邮电人学硕士论文第二章u s b 总线协议概述 2 2u s b 物理层 图2 1 总线的拓扑结构 3 t i e r 4 u s b 的物理接口包括电气特性和机械特性。u s b 传送信号和电源是通过一种 v b u s d + d g n d v b u s d d g n d 图2 2u s b 的电缆 四线的电缆,图2 2 中的两根线是用于发送信号。存在两种数据传输率: ( g u s b 的高速信号的比特率定为1 2 m b p s ; 低速信号传送的模式定为1 5 m b p s ; 低速模式需要更少的e m i 保护。两种模式可在用同一u s b 总线传输的情况下自 动地动念切换。因为过多的低速模式的使用将降低总线的利用率,所以该模式只支 持有限个低带宽的设备( 如鼠标) 。时钟被调制后与差分数据一同被传送出去,时钟 信号被转换成n r z i 码,并填充了比特以保证转换的连续性,每一数据包中附有同 步信号以使得收方可还原出原时钟信号。 电缆中包括v b u s 、g n d 二条线,向设备提供电源。v b u s 使用+ 5 v 电源。u s b 对电缆长度的要求很宽,最长可为几米。通过选择合适的导线长度以匹配指定的i r d r o p 和其它一些特性,如设备能源预算和电缆适应度。为了保证足够的输入电压和 4 重庆邮电大学硕十论文 第二章u s b 总线协议概述 终端阻抗。重要的终端设备应位于电缆的尾部。在每个端口都可检测终端是否连接 或分离,并区分出高速或低速设备。 所有设备都有一个上行的连接。上行连接器和下行连接器是不可简单的互换, 这样就避免了集线器间的非法的循环往复的连接,电缆中有四根导线:一对互相缠 绕的标准规格线,一对符合标准的电源线,连接器有四个方向,具有屏蔽层,以避 免外界干扰,并有易拆装的特性。 2 3u s b 设备 u s b 设备分为诸如集线器、分配器或文本设备等种类。集线器类指的是种提 供u s b 连接点的设备u s b 设备需要提供自检和属性设置的信息,u s b 设备必须在 任何时刻执行与所定义的u s b 设备的状态相一致的动态。 2 3 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 设备、此类信息主要有以 下几类: 标准信息:这类信息是对所有u s b 设备的共同性的定义,包括一些如厂商识 别、设备种类、电源管理等。 类别信息:此类信息给出了不同u s b 的设备类的定义,主要反映其不同点。 u s b 厂商信息:u s b 设备的厂商可自由的提供各种有关信息,其格式不受该 规范制约。此外,每个u s b 设备均提供u s b 的控制和状态信息。 2 3 2 设备描述 主要分为两种设备类:集线器和功能部件。只有集线器可以提供更多的u s b 的 连接点,功能部件为主机提供了具体的功能。 重庆邮电人学硕+ 论文 第二章u s b 总线协议概述 2 3 2 1 集线器 在即插即用的u s b 的结构体系中,集线器是一种重要设备。图2 3 所示是一和: 典型的集线器。从用户的观点出发,集线器极大简化了u s b 的互连复杂性,而且以 很低的价格和高易用性提供了设备的健壮性。 图2 3 典型集线器 集线器串接在集中器上,可让不同性质的设备连接在u s b 上,连接点称作端口。 每个集线器将一个连接点转化成许多的连接点。并且该体系结构支持多个集线器的 连接。 每个集线器的上游端口向主机方向进行连接。每个集线器的下游端口允许连接 另外的集线器或功能部件,集线器可检测每个下游端口的设备的安装或拆卸,并可 对下游端口的设备分配资源,每个下游端口都具有独立的能力,不论高速或低速设 备均可连接。集线器可将低速和高速端口的信号分开。 一个集线器包括两部分:集线控制器( c o n t r o l l e r ) 和集线放大器( r e p e a t e r ) 。 集线放大器是一种在上游端口和下游端口之间的协议控制开关。而且硬件上支持复 位、挂起、唤醒的信号。集线控制器提供了接口寄存器用于与主机之间的通信、集 线器允许主机对其特定状态和控制命令进行设置,并监视和控制其端口。 2 3 2 2 功能部件 功能部件“3 是一种通过总线进行发送接收数据和控制信息的u s b 设备,通过一 根电缆连接在集线器的某个端口上,功能设备一般是相互无关的外设。然而一个物 理单元中可以有多个功能部件和一个内置集线器,并利用一根u s b 电缆,这通常被 称为复合设备,即一个集线器连向主机,并有一个或多个不可拆卸的u s b 设备连在 6 第二章u s b 总线协议概述 其上。每个功能设备都包含设置信息,来描述该设备的性能和所需资源。主机要在 功能部件使用前对其进行设置。设置信息包括u s b 带宽分配,选择设备的设置信息 等。下面列举了一些功能部件: 定位设备:如鼠标或光笔; 输入设备:如键盘; 电信适配器:如i s d n 。 为了进一步叙述,我们给出端点( e n d p o i n t ) 和管道( p i p e ) 的概念。 端点协1 :每一个u s b 设备在主机看来就是一个端点的集合,主机只能通过端点 与设备进行通讯,以使用设备的功能。每个端点实际上就是一个一定大小的数掘缓 冲区,这些端点在设备出厂时就已定义好。在u s b 系统中,每一个端点都有唯一的 地址,这是由设备地址和端点号给出的。每个端点都有一定的特性。其中包括:传 输方式、总线访问频率、带宽、端点号、数据包的最大容量等等。端点必须在设备 配置后才能生效( 端点0 除外) 。端点0 通常为控制端点,用于设备初始化参数等, 端点1 、2 等一般用作数据端点,存放主机与设备间往来的数据。 管道同:一个u s b 设备是驱动程序的一个数据缓冲区与一个外设端点的连接, 它代表了一种在两者之间移动数据的能力。一旦设备被配置,管道就存在了。管道 有两种类型,数据流管道( 其中数据没有u s b 定义的结构) 与消息管道( 其中数据 必须有u s b 定义的结构) 。管道只是一个逻辑上的概念。所有的设备必须支持端点 o 以作为设备的控制管道。通过控制管道可以获取完全描述u s b 设备的信息,包括: 设备类型、电源管理、配置、端点描述等等。只要设备连接到u s b 上并且上电,端 点o 就可以被访问,与之对应的控制管道就存在了。 一个u s b 设备可以分为三个层如图2 4 。最底层是总线接口,用来发送与接收 包。中间层处理总线接口与不同的端点之间的数据流通。一个端点是数据最终的使 用者和提供者,它可以看作数据的源或接收端。最上层就是u s b 设备所提供的功能? 比如鼠标或键盘等。 u s b 设备的功能如下: 管理电源,设备既可以从总线获得电源,也可以有自己的电源; 检测通信,每个设备都会监视总线上的每一个通信中的设备地址; 错误检测,设备与主机一样,会在其发送的数据上加入错误检查位; 响应标准请求,设备必须响应主机在枚举过程中做出的请求; 与主机交换数据,当设备被配置后,它必须响应发送和接收数据请求。 7 重庆邮电人学硕士论文 2 4u s b 主机 物理 设备 且 实际数据流 辱渤参逻辑数据流 图2 4u s b 设备结构层次 u s b 的主机通过主机控制器嫡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 及其连接的设备有着特殊 的责任。主机控制着所有对u s b 的访问,一个外设只有主机允许才有权利访问总线, 主机同时也监测着u s b 结构。 u s b 主机包括三层如图2 5 :设备驱动程序,u s b 系统软件,u s b 主控制器( 主 机的总线接口) 。另外,还有两个软件接口:u s b 驱动( u s b d ) 接口,主机控制驱 动( h c d ) 接口 重庆邮电人学硕十论文第二章u s b 总线协议概述 2 5u s b 数据流 h 实际数据流 h 逻辑数据流 图2 5u s b 主机结构层次 从逻辑上讲,u s b 数据的传输是通过管道进行的。u s b 系统软件通过缺省管 道( 与端点0 相对应) 管理设备,设备驱动程序通过其它的管道管理设备的功能接 口。实际的数据传输过程是这样的:设备驱动程序通过对u s b d 接口的调用发出输 入输出请求( r p , i or e q u e s tp a c k e t ) :u s b 驱动程序接到请求后,调用h c d 接口, 将i r p 转化为u s b 的传输,一个i r p 可以包含一个或多个u s b 传输;然后h c d 将u s b 传输分解为总线操作,由主控制器以包的形式发出。需要注意的是:所有 的数据传输都是由主机丌始的,任何外设都无权开始一个传输。 i r p l7 】是由操作系统定义的,而u s b 传输与总线操作是u s b 规范定义的,为 了进一步说明u s b 传输,我们引出帧f r a m e 的概念。 帧:u s b 总线将l m s 定义为一帧,每帧以一个s o f 包为起始,在这l m s 罩 u s b 进行一系列的总线操作。引入帧的概念主要是为了支持与时间有关的总线操 作。 为了满足不同外设和用户的要求u s b 提供了四种传输方式:控制传输;同步 传输;中断传输:批传输【8 1 。它们在数据格式、传输方向、数据包容量限制、总线 访问限制等方面有着各自不同的特征: 9 机1执g 重庆邮电人学硕士论文 第二章u s b 总线协议概达 控制传输( c o n t r o lt r a n s f e r ) 1 ) 通常用于配置命令状态等情形; 2 ) 其中的设置操作s e t u p 和状态操作s t a t u s 的数据包具有u s b 定义的结构,医 此控制传输只能通过消息管道进行; 3 ) 支持双向传输; 4 ) 对于高速设备允许数据包最大容量为母1 够2 或6 4 字节,对于低速设备只有8 字节一种选择; 5 ) 端点不能指定总线访问的频率和占用总线的时间,u s b 系统软件会做出限 制; 6 ) 具有数据传输保证,在必要时可以重试。 同步传输( i s o c h r o n o u st r a n s f e r ) 1 ) 是一种周期的连续的传输方式通常用于与时间有密切关系的信息的传输; 2 ) 数据没有u s b 定义的结构数据流管道; 3 ) 单向传输,如果一个外设需要双向传输则必须使用另一个端点; 4 ) 只能用于高速设备,数据包的最大容量可以从0 到1 0 2 3 个字节: 5 ) 具有带宽保证并且保持数据传输的速率恒定,每个同步管道每帧传输一个势 据包; 6 ) 没有数据重发机制,要求具有一定的容错性: 7 ) 与中断方式一起占用总线的时间不得超过一帧的9 0 ; 中断传输( i n t e r r u p tt r a n s f e r ) 1 ) 用于非周期的、自然发生的、数据量很小的信息的传输,如键盘鼠标等; 2 ) 数据没有u s b 定义的结构( 数据流管道) ; 3 ) 只有输入这一种传输方式( 即外设到主机) ; 4 ) 对于高速设备,允许数据包最大容量为小于或等于6 4 字节,对于低速设备只 能小于或等于8 字节; 5 ) 具有最大服务周期,保证即在规定时问内保证有一次数据传输; 6 ) 与同步方式一起,占用总线的时间不得超过一帧的9 0 0 , 4 ; 7 ) 具有数据传输保证,在必要时可以重试。 批传输( b u l kt r a n s f e r ) 1 ) 用于大量的、对时间没有要求的数据传输; 2 ) 数据没有u s b 定义的结构( 数据流管道) : 3 ) 单向传输,如果一个外设需要双向传输,则必须使用另一个端点; 4 ) 只能用于高速设备,允许数据包最大容量为8 ,1 6 ,3 2 或6 4 字节: 5 ) 没有带宽的保证,只要有总线空闲,就允许传输数据( 优先级小于控制传输) : 1 0 重庆邮电人学硕十论文第二章u s b 总线协议概述 6 ) 具有数据传输保证,在必要时可以重试,以保证数据的准确性。 2 6u s b 总线协议 这节从字段( f i e l d ) 和包( p a c k e t ) 的定义开始,从底向上地展示u s b 协议。 接着是对不同事务( t r a n s a c t i o n ) 类型的包事务格式的描述。在概述字段和包的定 义之前我们先来说下位定序的概念。数据位被发送到总线的时候,首先最低有效位 ( l s b ) ,跟着是下一个最低有效位,最后是最高有效位( m s b ) 。在以后图表中 的,包以下列形式给出,即包中单个的位和字段从左到右的顺序就是它们通过总线 的顺序。 2 6 1 字段定义 同步字段 所有的包都从同步字段开始的,同步字段是产生最大的边缘转换密度的编码序 列。同步字段作为空闲状态出现在总线上,后面跟着以n r z i 编码的二进制串 “k j k j k j k k ”。通过被定义为8 位长的二进制串,输入电路以本地时钟对齐输入数据。 同步字段是用于同步的机制。同步字段里的最后的2 位是同步字段结束的记号,并且 标志了包标识符( p i d ) 的开始。 包标识符字段 所有u s b 包的同步字段后都紧跟着包标识符。如图2 6 n 示,包标识符由4 位的 包类型字段和其后的4 位的校验字段构成。包标识符指出了包的类型,并由此隐含地 指出了包的格式和包上所用错误检测的类型。包标识符的4 位的校验字段可以保证包 标识符译码的可靠性,这样包的余项也就能被正确地解释。包标识符的校验字段通 过对包类型字段的二进制的求反码产生的。如果4 个p i d 检验位不是它们的各自的包 标识符位的补,则说明存在p i d 错。 l s b )f m s b ) 图2 6p i d 格式 主机和所有功能部件都必须对得到全部p i d 字段实行完整的译码。任何收到的包 标识符,如果含有失败的校验字段,或者经译码得到未定义的值,则该包标识符秽 假定是被损坏的,而且包的余项将被包接收机忽略。如果一个功能部件( f u n c t i o n ) 重庆邮电人学硕士论文 第二章u s b 总线协议概述 收到了包含了它所不支持的事务类型或方向的合法包标识符,则不必应答。例如, 只能输入的端口( i n o n l ye n d p o i n t ) 必须忽略输出标记( t o k e n ) 。表2 1 列出了包 标识符类型,编码及其描述 表2 1p i d 类型 p i d 类型 p i d 名 p i d 3 :0 3描述 标记 输出( o u t )0 0 0 1 b 在主机到功能部件的事务中有地址+ 端口号 ( t o k e n ) 输入( i n ) 1 0 0 1 b 在功能部中i :到主机的事务中有地址+ 端口号 帧开始( s o f ) o 1 0 1 b 帧开始标记和帧号 建立( s e t u p )l 1 0 1 b在主机到功能部件建立一个控制管道的事务中 有地址+ 端口号 数据数据0 ( d a t a o )0 0 1 l b偶数据包p i d ( d a t a ) 数据1 ( d a t a l )1 0 1 1 b 奇数据包p i d 握手确认( a c k )0 0 1 0 b 接收器收剑无措数据包; ( h a n d s h a k e )不确认( n a l ( )i o i o b 接收设备部不能接收数据,或发送设备不能发 送数据; 停i i - ( s t a l l )1 1 1 0 b端口挂起,或一个控制管道请求不被支持。 专用前同步( p r e ) 1 i o o b 总线通信。同步字。打开到他速设备的下行i ( s p e c j a l ) 地址字段 功能部件地址( a d d r ) 字段通过其地址指定功能部件,至于是数据包的发出 地还是目的地,则取决于标记p i d 的值。如图2 7 所示,a d d r 指定了总共1 2 8 个地址。地址字段被用于输入,建立和输出标记。由定义可知,每个a d d r 值都定义 了单一的功能部件。刚一复位( r e s e t ) 和加电( p o w e ru p ) 的时候,功能部件的地 址默认值为零,并且必须由主机在枚举过程( e n u m e r a t i o np r o c e s s ) 中编程。功能部 件地址零被用作为缺省地址,不可被分配作任何别的用途。 1 2 重庆邮电人学硕+ 论文 第二章u s b 总线协议概述 图2 7 地址字段 端口字段 如图2 8 所示,附加的4 位的端口( e n d p ) 字段在功能部件需要一个以上端口时 候允许更灵活的寻址。除了端口地址0 之外,端口个数是由功能部件决定的。端口字 段只对输入,建立和输出标记p i d 有定义。所有的功能部件都必须在端口0 提供一个 控制管道( 缺省控制管道) 。对于低速( l o ws p e e d ) 设备,每个功能部件最多提供3 个 管道:在端1 2 1 0 的控制管道加上2 个附加管道( 或是2 个控制管道,或是1 个控制管道 和1 个中断端口,或是2 个中断端口) 。全速( f u l ls p e e d ) 功能部件可以支持最多可达1 6 个的任何类型的端口。 图2 8 端口字段 帧号字段 帧号字段是一个l l 位的字段,主机每过一帧就将其内容加一。帧号字段达到其 枣 最大值7 f f h 时归零,且它仅每个帧最初时刻在s o f 标记中被发送。 数据字段 数据字段可以在0 至1 j 1 0 2 3 字节之间变动,但必须是整数个字节。图2 9 为多字节 显示格式。每个字节的范围内的数据位移出时都是最低位( l s b ) 在前。 ld 。i d lid :i d :ld 。i d 。ld 。j d 7 l s 奶 同 i _ _ _ _ - _ _ 一 图2 9 数据字段格式 循环冗余校验 循环冗余校验( c r c ) 被用来在标记和数据包中保护所有的非p i d 字段。 2 6 2 包格式 展示标记,数据和握手包的包格式。这些图将以位被挪动到总线上的顺序显示 重庆邮电人学硕士论文第二章u s b 总线协议概述 包内的字段。 标记包 图2 1 0 显示了标记包的字段格式。标记由p i d ,a d d r 和e n d p 构成,其中p i d 指定了包是输入,输出还是建立类型。对于输出和建立事务,地址和端口字段唯一 地确定了接下来将收到数据包的端口。对于输入事务的,这些字段唯一地确定了哪 个端口应该传送数据包。只有主机能发出标记包。输入p i d 定义了从功能部件到主 机的数据事务。输出和建立p i d 定义了从主机到功能部件的数据事务。 8b a g7 嗽s4 t a t s5 喇童 图2 1 0 标记包格式 如上图所示,标记包包括了覆盖地址和端口字段的5 位c r c 。c r c 并不覆盖p i d , 因为它有自己的校验字段。标记和帧开始( s o f ) 包是由3 个字节的包字段数据后面的 包结束( e o p ,e n do f p a c k e t ) 界定的。如果包被译码为合法标记或s o f ,但却没名 在3 个字节之后以e o p 终止,则它被认为是无效的,并被接收器忽略。 帧开始( s o f , s t a r to f f r a m e ) 包 主机以每1 0 0m s 士0 0 0 0 5m s 一次的额定速率发出帧开始( s o f ) 包。如图2 1 1 中所示,s o f 包是由指示包类型的p i d 和其后的1 1 位的帧号字段构成。 图2 1 1 帧开始包 s o f 标记组成了仅有标记的( t o k e n - o n l y ) 事务,它以相对于每帧的开始精确计算 的时间间隔发送s o f 记号和伴随的帧数。包括集线器的所有全速功能部件都可收到 s o f 包。s o f 标记不会使得接收功能部件产生返回包,因此不能保证向任何给定的 功能部件发送的s o f 都能被收到。s o f 包发送2 个时间调配( t i m i n g ) 信息。当功能 部件探n n s o f 的p i d 的时候,它被告知发生s o f 。对帧时间敏感而不需要追踪帧 数( 例如集线器) 的功能部件,仅需对s o f 的p i d 译码;可忽略帧数和其c r c 。如 果功能部件需要追踪帧数,它必须对p i d 和时间戳都进行译码。对总线时间调配信 息的没有特别需要的全速设备可以忽略s o f 包。 数据包 1 4 重庆邮电人学硕十论文第二章u s b 总线协议概述 如图2 1 2 所示,数据包由p i d ,包括至少0 个字节数据的数据区和c r c 构成。有2 种类型的数据包,根据不同的p i d :d a t a 0 和d a t a l 来识别。2 种数据包p i d 是为了 支持数据切换同步而定义的。 8t i l t s0 - 1 0 2 3b y l 聍s1 6b a 左 图2 1 2 数据包格式 数据必须以整数的字节数发出。数据c r c 仅通过对包中的数据字段计算而得 到,而不包括p i d ,它有自己的校验字段。 握手包 如图2 1 3 所示,握手包仅由p i d 构成。握手包用来报告数据事务的状态,还能 表示数据成功接收,命令的接收或拒绝,流控制和停止条件。只有支持流控制的事 务类型才能返回握手信号。握手总是在事务的握手时相( p h a s e ) 中被返回,也可 在数据时相代替数据被返回。握手包由1 个字节的包字段后的e o p 确定界限。如果 包被解读为合法的的握手信号,但没有以1 个字节后面的e o p 终止,则它被认为是 无效的,且被接收机忽略。 8b i t s 田 图2 1 3 握手包 有3 种类型的握手包: 1 ) a c k 表示数据包没有位填充或数据字段上的c r c 错,并且数据p i d 被正确收 到。a c k 在下列的情况下被发放,当时序位匹配且接收器能接受数据的时候,或者 当时序位失配,但发送方和接收器互相之间必须再同步的时候。a c k 握手信号只适用 于数据被传送且期待握手信号的事务中。对于输入事务,a c k 由主机返回,而对于输 出或建立事务则由功能部件返回; 2 ) n a k 表示功能部件不会从主机接受数据( 对于输出事务) ,或者功能部件没 有传输数据到主机( 对于输入事务) 。n a k 仅由功能部件在输入事务的数据时相返 回,或在输出事务的握手时相返回。主机决不能发出n a k 。出于流控制的目的,n a k 用于表示功能部件暂时不能传输,或者接收数据,但是最终还是能够在不需主机二f 涉的情况下而传输或接收数据; 3 ) s t a l l 作为输入标记的回应,或者在输出事务的数据时相之后由功能部件返 回。s t a l l 表示功能部件不能传输,或者接收数据,或者不支持一个控制管道请求 在任何条件下都不允许主机返回s t a l l 。 重庆邮电火学硕十论文 第二章u s b 总线协议概述 2 6 3 总线操作的格式 包事务格式根据端口类型而变化。有4 种端口类型:批处理( b u l k ) ,控制 ( c o n t r 0 1 ) ,中断( i n t e r r u p t ) 和同步( i s o c h r o n o u s ) 。 2 6 3 1 批操作( b u i kt r a s a c t i o n ) 批处理事务类型的特点是以错误检测和重试的方式保证主机和功能部件之间的 数据的无错发送的能力。如图2 1 4 所示,批处理事务是由标记,数据和握手包构成 的三时相的事务。 在某些流控制和挂起条件下,数据时相被握手信号替换,从而产生了没有数据 传输的两时相的事务。 标记 数摄 握手 口圭砚口功甏翻悴 阔 图2 1 4 批操作时务格式 图2 1 5 说明了时序位和数据p i d 在成批读和写中的用法。数据包同步经数据时序 切换位( s e q u e n c et o g g l eb i t ) 和d a t a 0 d a t a lp i d 的使用而达到。 批处理写 二o 田u t ( 0 1 亘o u 殂t 二o 固u t 批处理写 ilir 1 i if 埘1 ,i _ _ o o 一一_ _ _ _ - _ _ i _ - - _ _ _ d a t a 0o a t a io t 撕 批处理读 卫i n 五i nj 臣互 批处理读lc 钟li1 il if n ji - _ _ _ - - l i _ j d i t o d a t a lb a t a m f 1 6 重庆邮电人学硕士论文 第二章u s b 总线协议概述 图2 1 5 批处理读和写 2 6 3 2 控制操作( c o n t r o lt r a n s a c ti o n ) 控制传送最少有2 个事务阶段:建立和状态。控制传送可以有选择性地包括建立 和状态阶段之间的数据阶段。图2 1 6 说明了建立事务的格式。 空阐 标记 数据 攫手 空阕 f - - i 主帆r - 1 功能郝件 图2 1 6 控制操作建立事务 图2 1 7 说明了事务顺序,数据时序位的值和控制读写序列的数据p i d 类型。时序 位显示在括号中。 建立阶段数据阶段 状态箩段 厂 _ 1 ,j ,弋广,l _ 1 t 空制写臣困巳墨区口 团 丑 h t bl,iadata0r 砌lo l 控制謦e 丑 卫 卫e 口e 卫 建立阶段 无慧制窗 图2 1 7 控制读写序列 2 6 3 3 中断操作( i n t e r r u p tt r a n s a c t i o n ) 中断事务可由输入或输出构成。一收到输入标记,功能部件便可返回数据,n a k 或s t a l l 。如果端口没有新的中断信息( 即没有等待事务的中断) 可供返回,功能 1 7 昌 重庆邮电人学硕+ 论文 第二二章u s b 总线协议概述 部件在数据时相里返回n a k 握手。如果中断端口的停止特征被设置了,功能部件将 返回s t a l l 握手。如果中断是等待事务的,功能部件象数据包那样返回中断信息。 作为对数据包接收的反应,主机如果数据无错地被接受则发, h u , a c k 握手,或者如果 数据包损坏则不返回握手。图2 1 8 说明了中断事务格式。 标记 数据 握手 2 6 3 4 同步事务 z 2 1 圭帆口功能酃件 图2 1 8 中断事务格式 阐 如图2 1 9 所示,同步( i s o ) 事务有标记和数据时相,而没有握手时相。主机发 出输入或输出标记,后跟着端口( 输入) 或主机( 输出) 传送数据的数据时相。i s o 事务不支持握手时相或重试能力。 空闻 v l 圭机v l 功绳乱件 图2 1 9 同步事务格式 1 8 空困 重庆邮电大学硕士论文第二章u s b 总线协议概述 2 6 4 数据切换同步和重试 u s b 提供一种机制以保证多事务中数据发送器和接收器之间的数据序列同步。 这种机制提供一种保证发送器和接收器正确地解释事务的握手时相的方法。同步通 过d a t a 0 和d a t a lp i d ,以及分别从属于数据发送器和接收器的切换时序位的使用 而完成。仅在接收器能接受数据并且收到带有正确的数据p i

温馨提示

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

评论

0/150

提交评论