USB协议的一些概念
1 USB Host与USB Device
1.1 USB Host
在任何的USB系统中只有一个主机。主机系统的 USB 接口被称为主机控制器。根集线器集成在主机系统内以提供一个或多个连接
点。USB Host 通过 Host Controller 与 USB device 交互。Host 主要负责:
-
检测 USB 设备拔插
-
管理 Host 和 Device 之间的控制流、数据流
-
收集 USB 总线状态和活动数据信息
-
为连入 USB 总线的设备供电
1.2 USB Device
USB device 可以分为 USB hub 和 USB function。USB HUB 提供了一种低成本、低复杂度的 USB 接口扩展方法。USB function可以认为是USB键盘鼠标、存储设备等。
一个 USB HOST 最多可以同时支持 128 个地址,地址 0 作为默认地址,只在设备枚举
期间临时使用,而不能被分配给任何一个设备。在实际的 USB
体系中,如果要连接 127 个 USB 设备,必须要使用 USB HUB,而 USB HUB 也是需要占用
地址的,所以实际可支持的 USB 功能设备的数量将小于 127。
2 设备端点
端点的概念是从整个USB系统出发,对物理设备的一个逻辑抽象。可以看成每个USB设备是一个USB逻辑设备,设备端点是Host和Device之间通讯的逻辑端点,是USB设备中进行数据收发的最小单元。一个USB逻辑设备中可以包含多个设备端点。
每个USB设备在接入系统后,都会被分配一个唯一的地址。通过设备地址、端点号、数据传输方向可以唯一寻址到一个设备端点。
2.1 0号端点
每个 USB 设备必须要有一个端点 0,其作用为对设备枚举和对设备进行一些基本的控
制功能,端点 0 也被称为控制端点。并且它与其他的端点还有一个不同之处在于端点 0 的数
据传输方向是双向的,即端点 0 既可以给主机发送数据,也可以接收主机发送过来的数据,
而其它端点均为单向。
2.2 非0号端点
除了控制端点以外,每个 USB 设备允许有一个或多个非 0 端点。低速设备最多只有两
个非 0 端点。高速和全速设备最多支持 15 组端点。除了端点 0,其余的端点在设备配置之
前不能与主机通信,只有向主机报告这些端点的特性并被确认后才能被激活。
因此在USB枚举过程中,使用的是0号端点进行通信,在USB枚举完成后才可以使用非0号端点进行通信。
3 USB的传输模式
USB 系统中的数据传输,宏观看是在 HOST 和 USB 功能设备之间进行。微观看是在应
用软件的 Buffer 和 USB 功能设备的端点之间进行。
USB 控制传输分为以下四种:
-
批量传输:批量传输一般用于批量的和非实时的数据传输,通俗的来说就是用于数据量
大但对时间要求又不高的场合的一种传输方式,类似用于 USB 打印机和 USB 扫描仪等。 -
中断传输:中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据
量小、数据不连续的但实时性高的场合的一种传输方式,类似用于 USB 鼠标和 USB 键盘等。 -
等时传输:等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量
大的场合,其对传输延时十分敏感,类似用于 USB 摄像设备,USB 语音设备等。 -
控制传输:控制传输是一种特殊的传输方式,且传输过程相对以上三种而言更复杂一些,但也十分重要。当 USB 设备初次连接主机时,用控制传输传送控制命令等对设备进行配置。同时设备接入主机时,需要通过控制传输去获取 USB 设备的描述符以及对设备进行识别,在设备的枚举过程中都是使用控制传输进行数据交换。
传输的流程在后续根据枚举的过程再展开分析。

浙公网安备 33010602011771号