USB2.0协议中文详解-

上传人:索**** 文档编号:144184695 上传时间:2020-09-06 格式:PPT 页数:129 大小:5.10MB
返回 下载 相关 举报
USB2.0协议中文详解-_第1页
第1页 / 共129页
USB2.0协议中文详解-_第2页
第2页 / 共129页
USB2.0协议中文详解-_第3页
第3页 / 共129页
亲,该文档总共129页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《USB2.0协议中文详解-》由会员分享,可在线阅读,更多相关《USB2.0协议中文详解-(129页珍藏版)》请在金锄头文库上搜索。

1、USB2.0协议详解,Daxiang_20111031,1,序,USB发展历史 传统的串口、并口通讯方式逐渐不能满足现有系统或者设备的数据传输速率需求。 以Intel为首的七家公司于1994年推出了USB(Universal Serial Bus,通用串行总线协议)概念,并在随后的几年内不断的对USB协议进行改进,成功推行USB 1.1; 2004年底,正式推出了USB 2.0协议。接口与USB1.1兼容; 2007秋季,正式推出了USB 3.0协议。,2,序,USB 1.1与USB 2.0之间的差别,3,USB2.0 协议,USB 体系简介 USB 数据流模型 USB 物理规范 USB 电气

2、规范 USB 协议层规范 USB 设备架构; USB 主机:硬件和软件 USB HUB 规范,4,USB 体系简介,USB 是一种支持热插拔的高速串行传输总线,使用差分信号来传输数据,最高速度可达 480Mb/S。 USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,USB2.0设备最多可以获得500mA的电流; USB2.0 被设计成为向下兼容的模式,当有全速 (USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。 一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB以

3、及USB功能设备。,5,USB 体系简介,USB 体系包括“主机”、“设备”以及“物理连接”三个部分。 主机是一个提供USB接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG设备。一个USB 系统中仅有一个USB主机; 设备包括 USB功能设备和 USB HUB,最多支持 127个设备; 物理连接即指的是USB 的传输线。 在USB 2.0系统中,要求使用屏蔽的双绞线。 USB 体系采用分层的星型拓扑来连接所有USB设备,6,USB 体系简介,以 HOST-ROOT HUB为起点,最多支持 7 层(Tier),也就是说任何一个USB 系统中最多可以允许 5个 USB HU

4、B 级联。一个复合设备(Compound Device)将同时占据两层或更多的层。 ROOT HUB 是一个特殊的 USB HUB,它集成在主机控制器里,不占用地址。 “复合设备(Compound Device)”可以占用多个地址。所谓复合设备其实就是把多个功能设备通过内置的 USB HUB 组合而成的设备,比如带录音话筒的 USB 摄像头等。 一个 USB HOST 最多可以同时支持 128 个地址,地址 0 作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个 USB HOST 最多可以同时支持 127 个地址,如果一个设备只占用一个地址,那么可最多支持 127个

5、USB 设备(含USB HUB)。,7,USB 体系简介,8,USB 体系简介,USB 采用轮询的广播机制传输数据 所有的传输都由主机发起,任何时刻整个USB体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据包; USB 采用“令牌包”-“数据包”-“握手包”的传输机制 在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。 握手包表示了传输的成功与否。 数据包:USB 总线上数据传输的最小单位,包括 SYNC、数据及 EOP 三个部分。其中数据的格式针对不同的包有不同的格式。但都以 8 位的

6、 PID 开始。PID 指定了数据包的类型(共 16种)。令牌包即指 PID 为 IN/OUT/SETUP的包。 端点(Endpoint):是 USB 设备中的可以进行数据收发的最小单元,支持单向或者双向的数据传输。设备支持端点的数量是有限制的,除默认端点外低速设备最多支持 2 组端点(2 个输入,2 个输出),高速和全速设备最多支持 15 组端点。,9,10,包 包的基本格式,USB 体系简介,11,令牌(token)包,USB 体系简介,12,数据包,握手包,USB 体系简介,USB 体系简介,管道(Pipe) 管道是主机和设备端点之间数据传输的模型,共有两种类型的管道; 无格式的流管道(

7、Stream Pipe) 有格式的信息管道Message Pipe)。 任何USB设备一旦上电就存在一个信息管道,即默认的控制管道,USB 主机通过该管道来获取设备的描述、配置、状态,并对设备进行配置。 USB 设备连接到 HOST 时,HOST必须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述、进行配置等操作方可正常使用。USB 设备的即插即用特性即依赖于此。,13,USB 体系简介,USB 体系四种传输类型的 控制传输: 主要用于在设备连接时对设备进行枚举以及其他因设备而异的特定操作。 中断传输: 用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等

8、。 批量传输: 用于对延迟要求宽松,游戏手柄等大量数据的可靠传输,如U盘等。 同步传输: 用于对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。 不同的传输类型在物理上并没有太大的区别,只是在传输机制、主机安排传输任务、可占用USB 带宽的限制以及最大包长度有一定的差异。,14,USB 体系简介,USB 设备通过管道和HOST 通信,在默认控制管道上接受并处理以下三种类型的请求: 标准请求: 一共有11 个标准请求,如得到设备描述、设置地址、得到配置描述等。所有USB 设备均应支持这些请求。HOST 通过标准请求来识别和配置设备。 类(class)请求: USB 还定义了若干个子类,如

9、HUB 类、大容量存储器类等。不同的类又定义了若干类请求,该类设备应该支持这些类请求。设备所属类在设备描述符中可以得到。 厂商请求: 这部分请求并不是 USB 规范定义的,而是设备生产商为了实现一定的功能而自己定义的请求。,15,USB 体系简介,USB 接口扩展 USB HUB提供了一种低成本、低复杂度的USB 接口扩展方法。HUB的上行PORT 面向 HOST,下行 PORT 面向设备(HUB 或功能设备)。在下行 PORT 上,HUB 提供了设备连接检测和设备移除检测的能力,并给各下行PORT供电。 HUB可以单独使能各下行PORT,不同PORT 可以工作不同的速度等级(高速/全速/低速

10、)。 USB HUB HUB由HUB重发器(HUB Repeater)、转发器(Transaction Translator)以及HUB 控制器(HUB Controller)三部分组成。 HUB Repeater是上行PORT 和下行PORT之间的一个协议控制的开关,它负责高速数据包的重生与分发; HUB 控制器负责和 HOST的通信,HOST通过 HUB 类请求和 HUB 控制器通讯,获得关于 HUB 本身和下行 PORT 的 HUB 描述符,进行HUB和下行PORT 的监控和管理。 转发器提供了从高速和全速/低速通讯的转换能力,通过 HUB 可以在高速 HOST 和全速/低速设备之间进行

11、匹配。 HUB 在硬件上支持 Reset、Resume、Suspend。,16,USB 体系简介,USB HOST 在USB体系中负责设备连接/移除的检测、HOST 和设备之间控制流和数据流的管理、传输状态的收集、总线电源的供给。,17,USB2.0 协议,USB 体系简介 USB 数据流模型 USB 物理规范 USB 电气规范 USB 协议层规范 USB 设备架构; USB 主机:硬件和软件 USB HUB 规范,18,USB 数据流模型,USB 体系在实现时采用分层的结构,19,USB 数据流模型,在 HSOT端,应用软件(Client SW)不能直接访问 USB 总线,而必须通过USB系

12、统软件和USB主机控制器来访问 USB 总线,在 USB总线上和USB 设备进行通讯。 从逻辑上可以分为功能层、设备层和总线接口层三个层次。 功能层完成功能级的描述、定义和行为; 设备级则完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的基本传输; USB 总线接口层则处理总线上的Bit流,完成数据传输的物理层实现和总线管理。途中黑色箭头代表真实的数据流,灰色箭头代表逻辑上的通讯。,20,USB 数据流模型,物理上,USB设备通过分层的星型总线连接到 HOST,但在逻辑上HUB是透明的,各USB 设备和HOST直接连接,和 HOST上的应用软件形成一对一的关系。如下图所示: 各应用

13、软件-功能设备对之间的通讯相互独立,应用软件通过USB设备驱动程序(USBD)发起 IRQ 请求,请求数据传输。 主机控制器驱动程序(HCD)接收 IRQ 请求,并解析成为 USB传输和传输事务(Transaction),并对 USB 系统中的所有传输事务进行任务排定 (因为可能同时有多个应用软件发起 IRQ 请求)。 主机控制器(Host Controller)执行排定的传输任务,在同一条共享的 USB 总线上进行数据包的传输。如右图所示。,21,USB 数据流模型,USB 端点、管道和接口的关系。 USB 系统中数据的传输,宏观的看来是在HOST 和 USB 功能设备之间进行;微观的看是在

14、应用软件的 Buffer 和 USB 功能设备的端点之间进行。一般来说端点都有 Buffer,可以认为USB通讯就是应用软件Buffer和设备端点Buffer之间的数据交换,交换的通道称为管道。 应用软件通过和设备之间的数据交换来完成设备的控制和数据传输。通常需要多个管道来完成数据交换,因为同一管道只支持一种类型的数据传输。 用在一起来对设备进行控制的若干管道称为设备的接口; 一个 USB 设备可以包括若干个端点,不同的端点以端点编号和方向区分。不同端点可以支持不同的传输类型、访问间隔以及最大数据包大小。除端点 0外,所有的端点只支持一个方向的数据传输。端点 0是一个特殊的端点,它支持双向的控

15、制传输。管道和端点关联,和关联的端点有相同的属性,如支持的传输类型、最大包长度、传输方向等。,22,USB 数据流模型,四种传输类型(控制/中断/批量/同步传输) 1. 控制传输: 控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。 第一阶段为从HOST到Device的SETUP事务传输,这个阶段指定了此次控制传输的请求类型; 第二阶段为数据阶段,也有些请求没有数据阶段; 第三阶段为状态阶段,通过一次IN/OUT 传输表明请求是否成功完成。 控制传输通过控制管道在应用软件和 Device 的控制端点之间进行,控制传输过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获

16、得的数据含义。其他三种传输类型都没有格式定义。 控制传输对于最大包长度有固定的要求。对于高速设备该值为 64Byte;对于低速设备该值为 8;全速设备可以是 8或 16或 32或 64。 高速端点的控制传输不能占用超过 20%的微帧,全速和低速的则不能超过 10%的帧。 在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。,23,USB 数据流模型,2. 中断传输: 中断传输是一种轮询的传输方式,是一种单向 的传输,HOST通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。 中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。 对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8 Bytes。 高速中断传输不得占用超过 80%的微帧时间,全速和低速不得超过 90%。 中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是 1255mS,低速端点为 10255mS,高速端点为(2*interval-1)*125uS,其中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号