没有合适的资源?快使用搜索试试~ 我知道了~
首页USB2.0协议中文版.pdf
USB2.0协议中文版.pdf

USB2.0协议中文版.pdfUSB2.0协议中文版.pdfUSB2.0协议中文版.pdf
资源详情
资源评论
资源推荐

USB2.0
规范
USB 体系简介
USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速
度可达 480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式
下, 设备最多可以获得 500mA 的电流。USB2.0 被设计成为向下兼容的模式,当有全速
(USB 1.1) 或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分
离传输来支持它 们。一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的
“设备”决定,该设 备包括主机、HUB 以及 USB 功能设备。
USB 体系包括“主机”、“设备”以及“物理连接”三个部分。其中主机是一个提供
USB 接口及接口管理能力的硬件、软件及固件的复合体,可以是 PC,也可以是 OTG 设
备,一个 USB 系统中仅有一个 USB 主机;设备包括 USB 功能设备和 USB HUB,最多支持
127 个设备;物理连接即指的是 USB 的传输线。在 USB 2.0 系统中,要求使用屏蔽的双绞
线。
一个 USB HOST 最多可以同时支持 128 个地址,地址 0 作为默认地址,只在设备枚举期间临时使
用,而不能被分配给任何一个设备,因此一个 USB HOST 最多可以同时支持 127 个地址,如果一个设
备只占用一个地址,那么可最多支持 127 个 USB 设备。在实际的 USB 体系中,如果要连接 127 个
USB 设备,必须要使用 USB HUB,而 USB HUB 也是需要占用地址的,所以实际可支持的 USB 功能
设备 的数量将小于 127。
USB 体系采用分层的星型拓扑来
连接所有 USB 设备,如右图所示:
以 HOST-ROOT HUB
为 起 点 , 最 多
支 持 7 层
(Tier),也就是说任何一个
USB 系统中最多可以允许 5 个 USB
HUB 级联。一个复合设备(Compound
Device)将同时占据两层或更多的
层。
ROOT HUB 是一个特殊的 USB
HUB,它集成在主机控制器里,不占用地
址。ROOT HUB 不但实现了普通 USB HUB 的功能,还包括其他一些功能,具体在增强型主机控制器
的规范中有详细的介绍。
“复合设备(Compound Device)”可以占用多个地址。所谓复合设备其实就是把多个功能设备
通过内置的 USB HUB 组合而成的设备,比如带录音话筒的 USB 摄像头等。
USB 采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个 USB
体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的
数据 包。
USB 采用“令牌包”-“数据包”-“握手包”的传输机制,在令牌包中指定数据包去

向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/
令牌包作出响应,“握手包”表示了传输的成功与否。
数据包:USB 总线上数据传输的最小单位,包括 SYNC、数据及 EOP 三个部分。其中数据的格式
针对不同的包有不同的格式。但都以 8 位的 PID 开始。PID 指定了数据包的类型(共 16 种)。令牌 包
即指 PID 为 IN/OUT/SETUP 的包。
端点(Endpoint)是 USB 设备中的可以进行数据收发的最小单元,支持单向或者双向的数据传
输。设备支持端点的数量是有限制的,除默认端点外低速设备最多支持 2 组端点(2 输入,2 输出),
高速和全速设备最多支持 15 组端点。
管道(Pipe)是主机和设备端点之间数据传输的模型,共有两种类型的管道:无格式
的流管道(Stream Pipe)和有格式的信息管道(Message Pipe)。任何 USB 设备一旦上电
就存在一个信息管道,即默认的控制管道,USB 主机通过该管道来获取设备的描述、配
置、状态,并对设备进行配置。
USB 设备连接到 HOST 时,HOST 必须通过默认的控制管道对其进行枚举,完成获得
其设备描述、进行地址分配、获得其配置描述、进行配置等操作方可正常使用。USB 设备
的即插即用特性即依赖于此。
枚举是 USB 体系中一个很重要的活动,由一系列标准请求组成(若设备属于某个子类,还包含该
子类定义的特殊请求)。通过枚举 HOST 可以获得设备的基本描述信息,如支持的 USB 版本、PID、
VID、设备分类(Class)、供电方式、最大消耗电流、配置数量、各种类型端点的数量及传输能力
(最大包长度)。HOST 根据 PID 和 VID 加载设备驱动程序,并对设备进行合适的配置。只有经过枚
举的设备才能正常使用。对于总线供电设备,在枚举完成前最多可从总线获取 100mA 的电流。
USB 体系定义了四种类型的传输:1、控制传输,主要用于在设备连接时对设备进行
枚举以及其他因设备而已的特定操作。2、中断传输,用于对延迟要求严格、小量数据的
可靠传输,如键盘、游戏手柄等。3、批量传输,用于对延迟要求宽松,大量数据的可靠
传输,如 U 盘等。4、同步传输,用于对可靠性要求不高的实时数据传输,如摄像头、
USB 音响等。
注意:中断传输并不意味这传输过程中,设备会先中断 HOST,继而通知 HOST 启动传输。中断
传输也是 HOST 发起的传输,采用轮询的方式询问设备是否有数据发送,若有则传输数据,否则 NAK
主机。
不同的传输类型在物理上并没有太大的区别,只是在传输机制、主机安排传输任务、
可占用 USB 带宽的限制以及最大包长度有一定的差异。
USB 设备通过管道和 HOST 通信,在默认控制管道上接受并处理以下三种类型的请
求:
1. 标准请求:一共有 11 个标准请求,如得到设备描述、设置地址、得到配置描述等。 所有 USB 设
备均应支持这些请求。HOST 通过标准请求来识别和配置设备。
2. 类(class)请求:USB 还定义了若干个子类,如 HUB 类、大容量存储器类等。不同的类又定义
了若干类请求,该类设备应该支持这些类请求。设备所属类在设备描述符中得到。
3. 厂商请求:这部分请求并不是 USB 规范定义的,而是设备生产商为了实现一定的 功能而自己
定义的请求。
USB HUB 提供了一种低成本、低复杂度的 USB 接口扩展方法。HUB 的上行 PORT 面

向 HOST,下行 PORT 面向设备(HUB 或功能设备)。在下行 PORT 上,HUB 提供了设备
连接检测和设备移除检测的能力,并给各下行 PORT 供电。HUB 可以单独使能各下行
PORT,不同 PORT 可以工作在不同的速度等级(高速/全速/低速)。
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 和全速/低速设备之间进行匹配。HUB 在硬件上支持
Reset、Resume、Suspend。
重生与分发:指的是 HUB Repeater 需要识别从上行(下行)PORT 上接收到的数据,并分发到下
行(上行)PORT。所谓分发主要是指从上行 PORT 接收到的数据包需要向所有使能的高速下行 PORT
发送,即广播。
USB HOST 在 USB 体系中负责设备连接/移除的检测、HOST 和设备之间控制流和数
据 流的管理、传输状态的收集、总线电源的供给。
USB 数据流模型
USB 体系在实现时采用分层的结构,如下图所示:在 HSOT 端,应用软件
(Client
SW)不能直接访问 USB 总线,而
必须通过 USB 系统软件和 USB 主机控制器来访
问 USB 总线,在 USB 总线上和 USB 设备进
行通讯。从逻辑上可以分为功能层、设备
层和总线接口层三个层次。其中功能层完
成功能级的描述、定义和行为;设备层则
完成从功能级到传输级的转换,把一次功
能级的行为转换为一次一次的基本传输;
USB 总线接口层则处理总线上的 Bit 流,完
成数据 传输的物理层实现和总线管理。途
中黑色箭头代表真实的数据流,灰色箭头
代表逻辑上的通讯。
物理上,USB 设备通过分层的星型总线
连接到 HOST,但在逻辑上 HUB 是透明的,
各 USB 设备和 HOST 直接连接,和 HOST 上
的应用软件形成一对一的关系。如右图所
示:各应用软件-功能设备对之间的通讯相互
独立,应用软件通过 USB 设备驱动程序

(USBD)发 起 IRQ 请求,请求数据传输。主机控制器驱动 程序(HCD)接收 IRQ 请求,并解
析成为 USB 传输和传输事务(Transaction),并对 USB 系统中的所有传输事务进行任务排
定(因为可能同时有多个应用软件发起 IRQ 请求)。
主机控制器(Host Controller)执行排定的传输任务,在同一条共享的 USB 总线上进
行数据包的传输。如下图所示。
USB 系统中数据的传输,宏观的
看来是在 HOST 和 USB 功能设备之间
进行;微观的看是在应用软件的 Buffer
和 USB 功能设备的端点之间进行。一
般来说端点都有 Buffer,可以认为
USB 通讯就是应用软件 Buffer 和设备
端点 Buffer 之间的数据交换,交换的
通道称为管道。应用软件通过和设备
之间的数据交换来完成设备的控制和
数据传输。通常需要多个管道来完成数
据交换,因为同一管道只支持一种类
型的数据传输。用在一起来对设备进
行控制的若干管道称为设备的接口,
这就是端点、管道和接口的关系。
一个 USB 设备可以包括若干个端
点,不同
的端点以端点编号和方向区
分。不同端点可以支持不同的传输类
型、访问间隔以及最大数据包大小。除
端点 0 外,所有的端点只支持一个方向
的数据传输。端点 0 是一个特殊的端
点,它支持双向的控制传输。管道和端
点关联,和关联的端点 有相同的属性,
如支持的传输类型、最大包长度、传输
方向等。
四种传输类型
1.控制传输:
控制传输是一种可靠的双向传输,一次控制传输可分为三个阶段。
第一阶段为从
HOST 到 Device 的 SETUP 事务传输,这个阶段指定了此次控制传输的请求类型;第二阶
段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次 IN/OUT 传输
表明请求是否成功完成。
剩余17页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论2