没有合适的资源?快使用搜索试试~ 我知道了~
USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度 可达 480Mb/S。 USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下, 设备最多可以获得 500mA 的电流。 USB2.0 被设计成为向下兼容的模式,当有全速( USB 1.1) 或者低速( USB 1.0)设备连接到高速( USB 2.0)主机时,主机可以通过分离传输来支持它 们。一条 USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设 备包括主机、 HUB 以及 USB 功能设备
资源推荐
资源详情
资源评论
USB 2.0 规范初探
By Hevry Email: hevry.jon@hotmail.com
Page 1 of 17
USB 2.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 2.0 规范初探
By Hevry Email: hevry.jon@hotmail.com
Page 2 of 17
系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据
包。
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 体系定义了四种类型的传输,它们是:
控制传输:主要用于在设备连接时对设备进行枚举以及其他因设备而已的特定操作。
中断传输:用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。
批量传输:用于对延迟要求宽松,大量数据的可靠传输,如 U 盘等。
同步传输:用于对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。
注意:中断传输并不意味这传输过程中,设备会先中断
HOST
,继而通知
HOST
启动传输。中断传输
也是
HOST
发起的传输,采用轮询的方式询问设备是否有数据发送,若有则传输数据,否则
NAK
主
机。
不同的传输类型在物理上并没有太大的区别,只是在传输机制、主机安排传输任务、可
占用 USB 带宽的限制以及最大包长度有一定的差异。
USB 设备通过管道和 HOST 通信,在默认控制管道上接受并处理以下三种类型的请求:
1. 标准请求
标准请求标准请求
标准请求:
::
:一共有 11 个标准请求,如得到设备描述、设置地址、得到配置描述等。
所有 USB 设备均应支持这些请求。HOST 通过标准请求来识别和配置设备。
USB 2.0 规范初探
By Hevry Email: hevry.jon@hotmail.com
Page 3 of 17
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 2.0 规范初探
By Hevry Email: hevry.jon@hotmail.com
Page 4 of 17
物理上,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 传输表明请求是否成功完成。
控制传输通过控制管道在应用软件和 Device 的控制端点之间进行,控制传输
过程中传输的数据是有格式定义的,USB 设备或主机可根据格式定义解析获得的
数据含义。其他三种传输类型都没有格式定义。
剩余16页未读,继续阅读
资源评论
松鼠也疯狂
- 粉丝: 1
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 407000001.fasset
- J-20240402998-HTE-HTE-2947110DA-D3_整车运动控制器-电压渐变(缓升缓降)-检测报告-XS-汽车及零部件检测中心.pdf.crdownload
- Excel表格VBA-获取文件夹内所有文件路径.zip
- 文件移动.zip
- 反射源代码,源代码,源代码,源代码
- CAJViewer 9.0_x64-setup.exe
- servant C++语言框架rpc的源码实现 tools C++语言框架IDL工具的源码实现 util C++语言.7z
- 使用pyqt创建一个登录具有动态背景的登陆界面
- 实验名称 调幅波信号的解调
- 实验名称 振幅调制器(利用乘法器)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功