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 设备或主机可根据格式定义解析获得的
数据含义。其他三种传输类型都没有格式定义。