已阅读5页,还剩72页未读, 继续免费阅读
(环境工程专业论文)基于dsp的usb20高速数据传输应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨下程大学硕十学位论文 摘要 u s b 技术以其高速、可靠、通用性强等一系列特点在过去的十多年时间 里发展迅猛,应用的领域也越来越广泛,近几年己扩展到了嵌入式领域。论 文的研究内容是运用u s b 技术建立d s p 处理器阵列间高速的串行通讯链路, 阐述了利用p h i l i p s 公司的高速u s b 控制器芯片i s p l 7 6 1 和t i 公司的d s p 芯 片t m s 3 2 0 v c 5 4 1 6 相搭配构成u s b 主机和设备硬件系统,并在其基础上进 行软件开发的设计方案和具体实现方法。论文具体安排如下: 首先,分析了u s b 2 0 规范,包括u s b 系统的结构、u s b 通信的基本概 念和传输方式等内容。 然后,介绍了系统硬件的设计与实现,包括u s b 控制器芯片的选型、硬 件设计方案和各部分的具体实现方法。 最后,详述了系统软件的设计与实现。分别讲解了u s b 主机和设备软件 系统的结构和实现的功能,并介绍了使用c c s 、b u s h o u n d 和w i n d r i v e r ,对 主机和设备软件进行调试的方法和测试结果分析。 关键词:u s b 2 0 ;u s b 2 0 主机;u s b 2 0 设备;d s p ;i s p l 7 6 1 哈尔滨丁程大学硕士学何论文 暑宣昌;i 暑置;i ;宣;宣宣i ;i 宣i 宣i i 昌;i i 一- - i ii ;宣;i i 暑i i 毒昌昌宣昌置宣;宣i ;i i ;昌 a bs t r a c t t h eu s bt e c h n o l o g yh a se n j o y e dar a p i dd e v e l o p m e n t 、析t l li t so u t s t a n d i n g f e a t u r e ss u c ha sh i g h s p e e d ,r e l i a b i l i t ya n du n i v e r s a l i t yi nt h el a s td e c a d e ,a n dh a s b e e na p p l i e di nm o r ea n dm o r ea r e a s ,e v e ni nt h ee m b e d d e da r e ai nr e c e n ty e a r s t h ep a p e ri st oe s t a b l i s hh i g h s p e e ds e r i a lc o m m u n i c a t i o nl i n kb e t w e e nt h ed s p p r o c e s s o ra r r a y su s i n gu s bt e c h n o l o g y i ti n t r o d u c e st h ed e v e l o p i n gm e t h o da n d t h em a t e r i a la c t u a l i z a t i o nm e a n so ft h eu s bh o s ta n dd e v i c eh a r d w a r es y s t e m , w h i c hi sc o m p o s e dw i t l lp h i l i p s i s p l 7 6 1a n dt i st m s 3 2 0 v c 5 4 1 6 a n ds o f t w a r e s y s t e m f i r s t l y , t h eu s b 2 0s p e c i f i c a t i o ni sa n a l y s e di nt h i sp a p e r , i n c l u d i n gt h e s t r u c t u r eo fu s bs y s t e m ,b a s i cc o n c e p to fu s bc o m m u n i c a t i o na n dt r a n s m i s s i o n m e t h o d sa n ds oo n s e c o n d l y , t h ea c t u a l i z a t i o nm e a n so ft h eh a r d w a r es y s t e mi si n t r o d u c e d , i n c l u d i n gt h ec h o o s i n go ft h eu s bc o n t r o l l e rc h i p ,t h eh a r d w a r es c h e m ea n d a c t u a l i z em e t h o do fe v e r ys e g m e n t f i n a l l y , t h ea c t u a l i z a t i o nm e a n so ft h es o f t w a r es y s t e mi se x p l a i n e d t h e p a p e rs h o w st h es t r u c t u r ea n df u n c t i o no fu s bh o s ta n dd e v i c es o f t w a r es y s t e m , a n di n t r o d u c e st h ed e b u g g i n gm e t h o d sa n dt h ea n a l y s i so ft e s tr e s u l t so fs o f t w a r e u s i n gc c s ,b u s h o u n da n dw i n d r i v e r k e yw o r d s :u s b 2 0 :u s b 2 0h o s t ;u s b 2 0d e v i c e ;d s p ;i s p l 7 6 1 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献等的引用已在文中指出,并与参考文献相对应。除文中 已经注明引用的内容外,本论文不包含任何其他个人或集 体已经公开发表的作品成果。对本文的研究做出重要贡献 的个人和集体,均已在文中以明确方式标明。本人完全意 识到本声明的法律结果由本人承担。 作者( 签字) :避 日期:功吁年月肟日 哈尔滨丁程大学硕十学位论文 第1 章绪论 1 1 论文的研究背景及立题意义 随着人们对实时信号处理要求的不断提高和大规模集成电路技术的迅速 发展,数字信号处理技术也发生着日新月异的变革。数字信号处理器( d s p ) 技术已经取得了飞速的发展,随着d s p 芯片逐年增多和芯片价格的降低,多 个d s p 芯片并行处理的实用化研究,成为近年来d s p 研究热点之一。 基于d s p 阵列的并行信号处理平台上,通常使用多通道缓冲串口实现各 个d s p 之间的数据传输。我们在实际的研究中发现,如果用8 片t i 公司的 t m s 3 2 0 v c 5 4 1 6d s p 搭建一个流水线结构将2 5 6 点的复数f f t 运算分成8 级处理,一片d s p 的处理时间仅为1 4 i t s ,但2 5 6 点中间结果的复数通过多通 道缓冲串口传输时间为5 1 2 p s ,完成一次f f t 运算的总时间为近4 5 0 s :而 一片t m s 3 2 0 v c 5 4 1 6d s p 处理2 5 6 点的复数f f t 时间仅为1 0 2 斗s 。由此可以 看出影响并行处理平台效率的一个关键因素就在于d s p 的片间传输速度,应 用t i 公司d s p 芯片进行并行处理的瓶颈也在于此。并行处理的速度除了受 并行处理的任务分配,d s p 芯片的运算速度,信号处理并行算法等因素的影 响之外,各d s p 之间的数据传输速度也是一个决定性的因素。当然,我们可 以使用主频更高、片间传输速度更快的d s p 芯片,如t i 公司6 4 系列d s p 主频可达7 2 0 m ,a d 公司s h a r c 系列的片间传输速度可达4 0 m b s ,但同 时整个硬件平台的成本和复杂度也会随之大大提高。u s b 2 0 技术有着硬件结 构简单、低成本等特点,并且其高速数据传输的理论极限速度可达4 8 0 m b i f f s , 所以我们尝试将u s b 2 0 高速数据传输作为一种新的方式引入到d s p 的片间 通信,在增加少量成本的前提下提高d s p 的片间传输速度。 此外,基于消息传递机制的分布式存储的松耦合系统作为实现并行信号 处理机的多处理机系统的一种,以其扩展能力强,支持处理结点数量多、可 构成各种拓扑结构等等的特点,在大规模并行处理系统中得到了广泛的应用。 连接各个处理结点的互连网络的性能在很大程度上决定了此处理机系统的性 能,根据u s b 2 0 规范,一个u s b 主机最多可以连接1 2 7 个u s b 设备,而 且u s b 高速数据传输的最大距离可达5 m ,将u s b 传输应用于松耦合系统中 哈尔滨t 程大学硕士学位论文 实现点对点通信,是具有一定的研究价值和工程应用实际意义的: 1 2u s b 技术概述 1 2 1u s b 标准与规范 u s b ( u n i v e r s a ls e r i a lb u s ) 是1 9 9 5 年提出的一种通用串行外部总线, 由i n t e l 、l u c e n t 、c a m p a q 等七家计算机与通信公司组成的联盟加以定义与推 广。19 9 6 年,u s b - i f ( u n i v e r s a ls e r i a lb u si m p l e m e n t e r sf o r u m s ) 发布了u s b1 0 规范,1 9 9 8 年发布了u s b l 1 规范。u s b l 1 规范支持全速( f u l l s p e e d :1 2 m b i t s ) 与低速( l o ws p e e d :1 5 m b i t s ) 的通信。2 0 0 0 年,发布了 u s b 2 0 规范,除兼容u s b l 1 外,新增的主要规范内容包括:对高速 ( h i g h s p e e d :4 8 0 m b i t s ) 通信的支持,支持高清晰数字会议系统设备、高速 高密度存储设备、宽带a d s l 等。2 0 0 1 年,u s bo t g ( o n t h eg o ) 作为u s b 2 0 标准的补充规范也被推出【1 1 。 1 2 2u 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 接口的数码相机等。这些设备都只能在计算机上使用, 只能通过计算机来进行相互的文件和数据交换。这是因为u s b 的拓扑结构中 居于核心地位的是h o s t ( 也称为主机) ,任何一次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 主机控制器芯片比较成熟的公司有c y p r e s s 和p h i l i p s 公司, 国内外的嵌入式产品厂家也都在展开广泛的研究。嵌入式u s b 主从机的应 用主要集中在移动数据采集存储领域,如工控设备的数据采集、个人数字娱 乐设备等。而高速的嵌入式u s b 主机的研究在国内外尚处于起步阶段,成熟 技术相对较少,相关的资料也比较少,在d s p 领域基本没有成型的产品。 1 3 论文的研究内容 论文的主要工作是应用p h i l i p s 公司的u s b 2 0 高速主柳设备控制器芯片 i s p l 7 6 1 ,以t i 公司的聊s 3 2 0 v c 5 4 1 6d s p 为控制核心,在没有操作系统的 支持下,开发符合u s b 2 0 规范、拥有u s b 主机和设备功能的软硬件系统。 论文主要完成以下几部分工作: ( 1 ) 深入研究和理解u s b 2 0 规范的相关内容; ( 2 ) 设计和实现u s b 主机和设备硬件系统,包括原理图设计和电路板的 设计、焊接与调试等; ( 3 ) 编写符合u s b 2 0 规范的u s b 主机和设备的底层软件; ( 4 ) 使用c c s 、b u s h o u n d 和w i n d r i v e r 对系统软件进行调试和测试,并 对测试结果进行分析。 3 哈尔滨t 程大学硕士学何论文 第2 章u s b 2 0 规范概述 2 1u s b 2 0 的结构体系 2 1 1u s b 基本架构 一般地,u s b 系统的基本架构可以分为三个主要的部分: ( 1 ) u s b 主机( 包括根集线器) ( 2 ) u s b 集线器 ( 3 ) u s b 设备 u s b 主机负责激活u s b 系统上的处理动作,简而言之,就是整个u s b 系统的大脑。目前,为了提供统一的u s b 2 0h c d ( h o s tc o n t r o l l e rd r i v e ) 软件接口,i n t e l 公司针对u s b 2 0 主机控制器推出了e h c i ( e n h a n c e dh o s t c o n t r o l l e ri n t e r f a c e ,增强式主机控制器接口) 规范。在u s b 系统中,根集线 器提供u s b 连接端口给所有u s b 设备或u s b 集线器使用。主机对根集线器 下命令,然后再由根集线器传到正确的设备地址。u s b 集线器的功能主要是 提供另外的u s b 连接端口供用户串接设备,整个u s b 连接的方式像金字塔 的结构p 1 。 2 1 2u s b 的总线结构 从物理总线来看,一个u s b 系统采取了星型拓扑结构。一个典型的u s b 系统的物理总线拓扑结构如图2 1 所示。 但在逻辑结构上,主机是直接与各个逻辑设备进行点对点通信的,就好 像它们是直接被连到主机上一样。这个逻辑关系如图2 2 所示。集线器也是 逻辑设备。虽然u s b 系统中的工作都是从逻辑角度来看待的,但主机必须对 物理结构有所了解。例如,在处理集线器被移去的情况时,当一个集线器被 移除,通过它与主机相连的设备也应一起被移除,这是由物理结构决定的。 4 哈尔滨工程大学硕士学位论文 图2 1u s b 物理总线拓扑 图2 2 u s b 逻辑总线拓扑 2 1 3u s b 主机 u s b 主机是u s b 总线的核心部分,它负责管理整个u s b 总线上的所有 信息。负责以下操作: 哈尔滨t 程大学硕十学何论文 ( 1 ) 检测u s b 设备的插入和拔出: ( 2 ) 管理主机与u s b 设备之间的控制流; ( 3 ) 管理主机与u s b 设备之间的数据流; ( 4 ) 收集状态和行为统计信息; ( 5 ) 为连接的u s b 设备提供电源【4 】。 主机包括u s b 总线接口和u s b 主机端软件两部分,结构如图2 3 所示。 i s b 主机端软件厂 客户端驱动 嚣 u s b 驱动( u s b d ) 嚣 主机控制器驱动( n c d ) 嚣 u s b 总线接口 图2 3u s b 主机结构 2 1 3 1u s b 总线接口 u s b 总线接口,即u s b 主机控制器( h c :h o s tc o n t r o l l e r ) ,提供了u s b 主机与u s b 设备之间的物理接口。 u s b 主机控制器提供的功能主要包括以下几个方面: ( 1 ) 状态处理。作为主机的一部分,主机控制器报告并管理它的状态。 ( 2 ) 串行器解串器。对于从主机输出的数据,主机控制器将协议及数据 信息从原始形式转换为字位流。而对于接收的数据进行反向操作。 ( 3 ) 帧( 微帧) 的产生:u s b 把时间分成片,这个时间片在全速设备中 被称为帧( f r a m e ) ,在高速设备中被称为微帧( m i c r of r a r f l e ) 。帧与微帧是 由主机控制器发送s o f ( s t a r to ff r a l l l e ) 令牌包建立的,它是( 微) 帧周期 的首个传输,表示一帧的开始,u s b 总线上的设备也以此来和主机同步。 ( 4 ) 数据处理。主机控制器负责接收来自上层软件的数据并发送到u s b 总线上的设备接口处,以及通过u s b 总线从设备的接口处接收数据发送到上 6 哈尔滨丁程大学硕士学何论文 层软件。 ( 5 ) 协议引擎。主机控制器管理u s b 传输协议接口,对传输数据添加 去除传输协议相关的信息。 ( 6 ) 传输差错处理。处理超时、数据错误、协议错误等。 ( 7 ) 根集线器。提供了标准的将多个u s b 设备连到主机控制器的功能p 1 。 2 1 3 2u s b 主机端软件 u s b 主机端软件由u s b 主机控制器驱动程序( h c d :h o s tc o n t r o l l e r d r i v e r ) 、u s b 驱动软件( u s b d :u s bd r i v e r ) 和客户端驱动程序组成。其中, h c d 和u s b d 称为u s b 协议栈,共同处理u s b 协议相关的操作。 主机控制器驱动( h c d ) h c d 主要完成对主机控制器硬件的驱动,为上层软件提供了主机控制器 的抽象以及数据在总线上传输的抽象。 u s b 驱动( u s b d ) u s b d 是u s b 主机端软件的核心,它负责管理所有的h c d 和所有的设 备。它的功能包括配置设备、资源管理和数据传输管理。 客户端驱动 客户端驱动程序需要通过u s b 协议栈与具体的设备通信,而不是直接通 过i o 端口或地址总线去访问设型q 。客户端驱动程序负责对特定的u s b 设 备进行管理,如我们使用的u s b 接口的d s p 仿真器的驱动程序。 2 1 4u s b 集线器 从根本上讲,u s b 集线器( h u b ) 是u s b 总线拓扑结构的必然产物。总 的来说,u s b 规范为集线器定义了如下几个功能: ( 1 ) 连接功能; ( 2 ) 电源管理: ( 3 ) 总线的错误检测和恢复功能; ( 4 ) 对高速、全速和低速设备的支持功能; ( 5 ) 对设备的插拔管理; ( 6 ) 集线器的挂起和恢复功能。 7 哈尔滨下程大学硕十学位论文 主机和设备之间的所有的数据通信通过集线器转发,每个集线器都有一 个上游端口( 到主机) 和多个下游端口( 到设备) 。 集线器通过设备连接、断开时的电气信号来判断设备的插拔动作,并通 过d + 和d 一信号电平来判断设备类型。集线器的下游端1 3 的d + 和d 一线上 各有一个1 5 k d 的下拉电阻,全速设备的d + 线上有1 5 k q 的上拉电阻,低 速设备的d 一线上有1 5 k d 的上拉电阻,高速设备插上时首先会是以全速工 作的。由于集线器下游端口的下拉电阻和设备的上游端口的上拉电阻的不同 配置,从而导致了不同的编码状态,u s b 系统对设备的速度检测就是根据此 完成的。 当设备插上以后,集线器给设备的上游端口供电,如果d + 为高电平,d 一为低电平,表示插上的是全速设备;如果d + 为低电平,d 一为高电平,表 示插上的是低速设备:高速设备首先以全速设备的方式连接到u s b 2 0 集线 器的下游端口上,在高速设备连接到集线器端口以后,根据硬件信号协议, 集线器进一步判断是否为高速设备,同时发送相关的硬件信号,u s b 设备也 可判断集线器端口是否支持高速数据传输p 1 。 2 1 5u s b 设备 u s b 设备是u s b 系统的重要组成部分。一个典型的u s b 设备必须具有 以下特点: ( 1 ) 必须具有相关规范定义的描述符。主机通过对设备的各种描述符的 解释分析,来选择设备的配置和驱动。 ( 2 ) 必须支持规范定义的命令。根据主机的控制命令来完成自己的配置, 设备本身没有配置功能。 2 1 5 1 设备的描述符 u s b 2 0 规范为u s b 设备定义了一套描述设备功能和属性的有固定结构 的描述符,包括标准的描述符,即设备描述符、配置描述符、接口描述符、 端点描述符和字符串描述符,还有非标准的描述符,如类描述符等。标准的 描述符的结构如图2 4 所示。 每个设备只能有一个设备描述符,一个设备可以有多个配置描述符,即 8 哈尔滨工程大学硕+ 学位论文 一个设备可以有多种配置。设备的每一个配置可以包含一个或多个接口描述 符,即u s b 设备可以支持多种功能( 接口) ,接口的特性通过接口描述符提 供。为了和u s b 主机进行数据传输,设备的每个接口又可以包含一个或多个 端点,每个端点有自己的端点描述符,描述端点的类型、传输包的方向和大 小等。u s b 设备通过各种描述符来反映自己的设备特性。u s b 设备的描述符 是由特定格式排列的一组数据结构组成。u s b 主机通过描述符可使对u s b 设备的配置变得简明。用这种方法,描述符用一个关系数据库就可描绘成一 个个单独的数据结构。 图2 4u s b 描述符结构关系图 2 1 5 2 设备请求 为了更好的协调u s b 主机与设备之间的数据通信,u s b 规范定义了一 套命令请求,用于完成主机对总线上所有u s b 设备的统一控制,称为u s b 设备请求。所有的u s b 设备都需要对主机发给自己的控制请求做出响应,一 般来说,请求都是通过设备的默认控制管道传输到设备的,有的时候也可以 通过其它管道。设备请求分为三类:标准请求、类请求和厂商专有请求。 9 哈尔滨t 程大学硕士学位论文 u s b 2 0 规范定义了1 1 个标准设备请求,分别为c l e a rf e a t u r e 、 g e t _ c o n f i g u r a t i o n ,g e t _ d e s c r i p t o r ,g e t i n t e r f a c e ,g e t s t a t u s ,s e t a d d r e s s , s e t _ c o n f i g u r a t i o n 、s e t _ d e s c r i p t o r 、s e t i n t e r f a c e 、s e t f e a t u r e 和s y n c hf r a m e , 规范要求所有的设备都必须支持这些请求( 个别请求除外,如s e td e s c r i p t o r 和s y n c h _ f r a m e ) 。 集线器支持两类设备请求:u s b 标准设备请求( 不包括s y n c hf r a m e ) 和集线器类请求,其中集线器类请求用来访问集线器特定的信息s 】。 u s b 设备请求是一个8 字节的数据包,各种请求具有相同的数据结构格 式,共分为5 个字段,如表2 1 所示。 表2 1u s b 设备请求数据结构 偏移量 o1246 字段名称 b m r e q u e s t b y t e b r e q u e s t w v a l u ew l n d e x w l e n g t h 大小1 字节l 字节2 字节2 字节2 字节 各字段代表的意义为: b m r e q u e s t b y t e :请求类型,其中d 7 位用于选择数据传输方向是主 机到设备或设备到主机,d 6 , - - d 5 位表示请求类型是标准请求、类请求或厂商 请求,d 4 , - - d 0 位表明该请求的接收端是设备、接口或是端点。 b r e q u e s t :标准请求代码,u s b 为1 1 个标准请求分别定义了唯一的 编号。 w v a l u e :请求信息,每一种请求都可以自定义该字段的内容,用于向 设备传输请求指定的一个参数。 w l n d e x :对于普通u s b 设备来说,用于指定到端点或接口的请求; 对于集线器来说,用于指定到某个端e l 的请求。 w l e n g t h :传输的数据大小。当主机向设备发送数据时,该字段中的 值是实际的数据大小;当主机从设备接收数据时,该字段中的值是设备能够 发送的最大数据包大小例。 i o 哈尔滨丁程大学硕士学位论文 - l ;j 宣;昌;i 葺i 暑宣i 宣暑暑昌暑;i i j 置薯昌宣宣暑暑宣昌宣昌昌宣宣昌昌宣;宣 2 2u s b 2 0 的数据流模型 2 2 1 端点 端点( e n d p o i n t ) 是u s b 设备唯一可识别的部分,是主机与设备间通信 流的结束点。每个u s b 逻辑设备都由一个独立的端点集组成。在设备连接到 u s b 系统时,主机为每个逻辑设备分配唯一的逻辑地址。设备的每个端点均 具有唯一的标志符,即端点号。每个端点都有由设备决定的数据流方向。设 备地址、端点号与方向的组合唯一指定一个端点。每个端点都单一的连接、 支持一个方向的数据流输入( 从设备到主机) 或输出( 从主机到设备) 。 端点的特性决定了它与客户软件进行的传送服务类型。一个端点有以下 特性: ( 1 ) 总线访问频率延时要求; ( 2 ) 带宽要求; ( 3 ) 端点号; ( 4 ) 差错处理行为的要求: ( 5 ) 端点能发送或接收的最大包的大小: ( 6 ) 端点的数据传输类型: ( 7 ) 端点与主机之间的数据传输方向。 在配置之前,端点( 除了端点号是0 的端点) 都处于未知的状态,因此 端点在配置前不能被主机访问。所有u s b 设备都需要实现用端点0 作为输入 与输出的默认控制管道,u s b 系统使用这个默认的控制管道对逻辑设备进行 初始化与一般的操作( 包括配置) 。通过默认的控制管道可以访问设备的配置 信息。端点0 在设备连接、上电与收到总线复位信号时就可以访问。功能设 备也有其实现要求的额外的端点,但要在设备被配置后才能使用0 1 。 2 2 2 管道 u s b 管道( p i p e ) 是设备端点与主机软件之间的联系。管道可以通过存 储器的缓冲区在主机软件与设备端点之间传输数据。有两种互斥的管道通信 模式: 流 哈尔滨丁程大学硕士学位论文 管道中传输的数据无u s b 定义的结构。数据从流管道的一端输入从另一 端输出,通信流总保持单向。 消息 在管道中传输的数据有某些u s b 定义的结构。消息管道以与流管道不同 的方式与端点相互作用。首先,主机向u s b 设备发出一个请求;然后是方向 正确的数据传输:最后是一个状态阶段。为了适应这种请求数据状态的方式, 消息管道给通信流强加了一个特定的结构,允许命令被可靠的识别。消息管 道允许双向的信息流,但大多数的通信流是单向的。特别地,默认控制管道 也是一个消息管道。每个消息管道在一个时间段内,只能为一个请求服务, 多个客户软件可以通过默认控制管道发出它们的请求,但这些请求以先进先 出的顺序发送到设备。设备可以在数据传送阶段和状态阶段控制信息流,这 取决于设备与主机交互的能力。 2 2 3 包 包( p a c k e t ) 是u s b 通信的最基本的数据单元,所有的数据都是经过打 包后在总线上传输的。每一个包,基本上包含了一个完整的u s b 信息。每个 u s b 包都是由不同的字段组成,为了满足不同类型的数据需求,u s b 总线支 持不同的数据包结构。按照包在整个u s b 数据传输中的作用不同,可以分为 3 类:令牌包、数据包和握手包。 令牌包 在u s b 系统中,只有u s b 主机才能发出令牌包。令牌包定义了数据传 输的类型,包含7 种令牌包:i n 、o u t 、s e t u p 、s o f 、p r e 、s p l i t 和p i n g , 其中p r e 、s p l i t 和p i n g 属于专用令牌。 数据包 下面针对数据包详细介绍一下包的结构。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 t i 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 ) 。 ( 1 ) 同步字段。任何类型的u s b 2 0 包都必须以同步字段开始。同步字段 用于数据包位同步,由3 2 个数据位组成,目的是使u s b 设备与总线的包传 1 2 哈尔滨t 程大学硕+ 学位论文 -2_ 一- - 输率同步。 表2 2u s b 的包标识符类型 p i d 类型名称 编码( 3 :0 )描述 输出( o u t )0 0 0 l b 从主机到设备的数据传输 令牌 输入( i n ) 1 0 0 l b 从设备到主机的数据传输 ( t ) k e n ) 帧起始( s o f )o l o l b 帧的开始 设置( s e t u p )1 1 0 1 b 从主机到设备,标识开始控制传输 数据0 ( d a t a 0 )0 0 1 1 b 数据包0 数据 数据1 ( d a t a i ) 1 0 1 1 b 数据包1 ( d a t a ) 数据2 ( d a t a 2 ) 0 1 1 1 b 高速实时传输时的数据包p i d m d a 队1 l l l b s p l i t 及高速实时传输时的p i 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 ) 停止( s t a l l ) l l l 0 b 设备不能发送、接收数据或不支持 控制管道的请求 无响应( n y t e ) o l l 0 b 高速传输时的无响应应答 前同步( p l 迮) 1 1 0 0 b 标识开始低速通信 专用 出错应答( e r r ) o l l o b s p l i t 传输时出错应答 ( s p e c i a l ) 高速s p l i t 传输令牌分离令牌( s p l i t ) 1 0 0 0 b p r n g0 1 0 0 b 高速批量控制传输时 流量控制令牌 ( 2 ) p i d 字段。在u s b 规范中,根据p i d 的不同,u s b 包有着不同的类 型,且分别表示具有特定的意义。p i d 是u s b 包必要的组成部分,任何一个 u s b 包的第二个字节都必须为该包的p i d 。p i d 的长度为一个字节。主机和 所有功能设备都必须对所有接收到的p i d 场进行完全译码。如果功能设备接 收到一个有效的p i d ,但它不支持这种处理类型或方向,那么功能设备不能 哈尔滨t 程大学硕十学位论文 对它做出响应。p i d 被分成4 个编码组:令牌、数据、握手和特殊令牌。首 先发送的两个p i d 位( p i d 1 :0 】) 用于指示属于哪个编码组。这就解决了p i d 编码的分配问题。 标识符类型如表2 2 所示。 ( 3 ) 数据字段。在u s b 包中,数据字段用来携带主机与设备之间要传递 的信息,其内容和长度根据包的不同而不同。数据字段可以包含设备地址、 端点号、帧序列号、数据等。 ( 4 ) 循环冗余校验字段。用来对包中的数据信息进行错误保护,它是以包 中数据字段的存在而存在。p i d 字段不在校验范围。 ( 5 ) e o p 字段。包的结尾信号。u s b 2 0 规范中用8 位来表示”习。 握手包 握手包用于报告数据处理的状态,以反映数据接收是否成功、指定端点 是否被停止、是否能响应命令等情况。握手包有5 种类型:a c k 、n a k 、s t a l l 、 n y t e 和e r r ,其中e r r 属于专用握手包。针对论文内容,主要介绍a c k 、 n a k 、s t a l l 包。各个握手包的作用如表2 2 中所示。 2 2 4 事务 事务( t r a n s a c t i o n ) 处理是u s b 总线上数据传输的基本单位,u s b 主机 与设备之间的一次通信可能要用到1 个或者多个事务。事务处理由3 个阶段 组成:令牌阶段、数据阶段和握手阶段。事务又分为玳事务、o u t 事务、 s e t u p 事务、p i n g 事务、s o f 事务、s p l i t 事务和p r e 事务。针对论文内 容,主要介绍i n 、o u t 、s e t u p 和s o f 这4 个事务。 i n 事务 i n 事务用于完成u s b 设备到主机的数据传输。正常情况下,u s b 设备 将向主机发出数据包。u s b 设备不能成功地响应主机发出的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 握手包。对主机而言,正常时应 接收来自u s b 设备的数据,并以a c k 握手。但当主机暂不能接收数据或检 测到数据包已损坏,则会丢弃数据包,不做任何响应。 1 4 哈尔滨丁程大学硕十学位论文 i f o u t 事务 o u t 事务用于完成主机到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 握手。 s e t u p 事务 s e t u p 事务是一种特殊的事务,它用于定义主机到u s b 设备的数据传 输。由于它的数据格式较为特殊,只用于在u s b 控制传输的初始设置阶段。 当u s b 设备接收到的s e t u p 令牌包有误,u s b 设备则忽略该信息包,且不 做任何响应。一旦u s b 设备接收了s e t u p 令牌包,则一定要接收后面的数 据包并向主机返回a c k 包握手。与i n 、o u t 事务不同的是,u s b 设备不能 对s e t u p 事务处理返回n a k 或者s t a l l 等握手包。 s o f 事务 s o f 事务表示u s b ( 微) 帧的开始,它仅包含主机发出的s o f 令牌包, 用于u s b 设备的通信同步,而不需设备返回任何握手。对全、低速传输而言, 帧的长度为l m s ,即每l m s 产生一次s o f 令牌包。对高速传输而言,微帧长 度为1 2 5 t l s ,s o f 令牌包每7 个微帧产生一次3 1 。 2 3u s b 2 0 的传输类型 u s b 数据传输由总线上的一个或多个事务处理组成,u s b 规范定义了四 种数据传输类型:控制传输( c o n t r o lt r a n s f e r ) 、批量传输( b u mt r a n s f e r ) 、 中断传输( i n t e r r u p tt r a n s f e r ) 和同步传输( s y n c h r o n o u st r a n s f e r ) ,如表2 3 。 表2 3u s b 四种传输类型的比较 传输类型端点类型传输方向所传输数据的特点 控制传输控制端点i n 或o u t少量、无传输时间要求、传输有保证 批量传输批量端点i n 或o u t大量、无传输时间和速度要求 中断传输中断端点n 、j 或o u t大量、速度恒定、周期性 同步传输同步端点i n 或o u t少量或中量、周期性 1 5 哈尔滨丁程大学硕十学位论文 2 3 1 控制传输 控制传输作为最重要同时也是最为复杂的传输类型,是所有u s b 设备 都必须支持的传输类型。待u s b 设备连接到主机上之后,主机借助控制传输 来与设备交换信息、配置设各、读取设备描述符等。u s b 定义了全速控制端 点支持的最大数据包长度是8 、1 6 、3 2 或6 4 字节,高速端点的最大值是6 4 字节。 馅控罂婴坚厂鲻搠巡l 1 她 鞴誓 s e t u p ( 0 ) 1 o u t o ) o u t ( o 囤圃 一d a t a od a t a ld a t a f ld a t a f l i i d a t a i 鞴雪圈回回囤 o u t o ) 图2 5 控制传输格式 控制传输由初始设置、可选数据和状态信息三个阶段组成。传输格式如 图2 5 所示。其中,初始设置阶段中,主机向指定的u s b 设备发送s e t u p 令牌包。可选数据阶段中,主机则发送具有u s b 定义格式的数据包。在最后 的状态握手阶段,u s b 设备则接收主机发送给它的令牌包和数据包,并向主 机返回a c k 握手包。一旦s e t u p 令牌包出错,u s b 设备就会忽略该信息包, 也不会返回任何信息。而当设备接收了来自主机的s e t u p 包时,就一定要接 收后面的数据包,同时必须向主机返回a c k 握手包。 ( 1 ) 初始设置阶段 s e t u p 事务的初始设置阶段( 即令牌阶段) 只是发送一个s e t u p 令牌 包。 s e t u p 的数据阶段只是发送d a t a 0 ,它用于告诉设备来自主机的控制 请求,这些请求包括用以完成u s b 设备配置操作的1 1 种u s b 标准设备请求, 以及用以进行该设备专用操作的设备类或供应商自定义控制请求。d a t a 0 1 6 竺竺蚕等| i 霉| i 一事 哈尔滨t 程大学硕士学位论文 包的长度是固定的,为8 字节。 当u s b 设备不能完成控制请求时,在握手阶段将返回s t a l l 握手包, 即对初始设置阶段后的所有i n o u t 事务处理都返回s t a l l 握手包。而该错 误状态会在其接收到新的s e t u p 令牌包时自动恢复。但如果出现某种错误而 导致u s b 设备不能使用缺省控制管道与主机进行通信时,该设备必须通过被 复位才能清除错误状态。 令牌阶段 数据阶段 握手阶段 空闲 匿圈主机发出 设备发出 图2 6 控制传输的可选数据阶段 ( 2 ) 可选数据阶段 当有数据传输时,该数据阶段将包括1 个或者多个i n o u t 事务。这些 事务的作用就是传输u s b 定义格式的数据,数据的传输方向和长度也都在令 牌阶段确定。不同的请求,其数据传输的方向和长度亦不同。 由于在初始设置阶段已经包含了一个d a t a o 数据包,因此,在数据阶 段,其数据包都是以d a t a l 开始,与d a t a 0 交替触发。如图2 6 所示,i n 事务与o u t 事务相比,要更为复杂。对i n 事务而言,当设备尚未处理完上 一个事务时,若主机向设备发送一个i n 事务令牌,则设备将会返回n a k , 总线空闲,而主机将不断重试该事务:当相应的设备端点被禁止,则设备将 返回s t a l l 包,总线空闲;否则设备就会按照总线的要求发送数据。 在握手阶段,o u t 事务比i n 事务复杂。对o u t 事务而言,当设备接收 数据无误,但设备正处于“繁忙 时,主机将不断重发,而设备将返回n a k 包,总线空闲;如果设备端点被禁止,则设备返回s t a l l 包;如果发送的数 1 7 哈尔滨工程大学硕十学位论文 据无误,且被设备成功接收,设备将返回a c k 包,并通知主机可发送新的 数据。 此外,如果控制i n o u t 传输的数据量大于控制端点所支持的最大数据 包长度,则u s b 主机将会把该传输分成多个i n o u t 事务。除最后一次传输 外,其它所有i n o u t 事务数据包中数据阶段的长度都等于该控制端点的最 大数据包长度,最后一个i n o u t 事务将剩余的数据传完。当待传数据为端 点最大数据包长度的整数倍时,其最后一个数据包将为一个长度为0 的数据 包。 ( 3 ) 状态阶段 状态报告方向总是从功能设备到主机。表2 4 总结了响应类型。主机的 读操作对应于o u t 事务,在握手阶段返回状态信息;写操作对应于玳事务, 在数据阶段返回状态信息,如图2 7 所示。 表2 4 状态阶段的响应 状态响应写操作读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年两癌筛查是非试题及答案
- 2025年标准通信类安全员c类试题及答案
- 光伏电站运行与维护中级专业1X理论习题含答案
- XX车型核心卖点与销售策略
- 感染科医院感染预防控制流程大纲
- 患者入院压疮评估
- 护士考试题及答案填空题
- 2025年语言指南考试题及答案
- 湖北成人高考试题及答案
- 2025船舶轮机管理试题及答案
- 《教育心理学》教材
- 心理矫正测试试题及答案
- 人合伙承包工程协议
- 有机生产模式有机硒大米
- 物业环境主管年终总结
- 39.猜心-小游戏课件
- 花样跳绳知到智慧树章节测试课后答案2024年秋深圳信息职业技术学院
- “双减”背景下的初中化学作业分层设计
- 2025年四川省宜宾五粮液集团招聘笔试参考题库含答案解析
- 《社会化网格治理研究的国内外文献综述》5700字
- 有色金属行业智能化有色金属冶炼与加工方案
评论
0/150
提交评论