USB设备、接口、端点和端口的概念及地址
概念
定义
地址类型
地址范围
用途
设备
连接到USB总线上的硬件单元,例如鼠标、键盘、存储设备等。
设备地址
1到127
主机通过设备地址与特定的USB设备通信。
接口
设备中用于实现特定功能的逻辑单元。一个设备可以有多个接口。
接口地址
0到255
主机通过设备地址和接口地址与设备中的特定接口通信。
端点
设备中用于数据传输的逻辑单元。每个端点有特定方向(输入或输出)和类型。
端点地址
0x00到0x0F(输出),0x80到0x8F(输入)
主机通过设备地址、接口地址和端点地址与特定的端点通信。
端口
集线器上的物理连接点,用于连接其他USB设备。
端口地址
1到255
主机通过集线器的设备地址和端口地址与特定的端口通信。
通信示例
假设主机需要与一个USB存储设备通信:
设备地址:主机通过设备地址(例如,地址为1)与USB存储设备通信。
接口地址:存储设备可能有一个接口(接口地址为0),用于存储功能。
端点地址:在该接口中,可能有一个批量输入端点(端点地址为0x81)和一个批量输出端点(端点地址为0x02)。
端口地址:如果该存储设备连接在一个USB集线器上,主机还需要通过集线器的设备地址和端口地址来访问该存储设备。
详细说明
设备地址:
范围:1到127。
分配:主机在设备连接后通过枚举过程分配。
用途:唯一标识连接到USB总线上的设备。
接口地址:
范围:0到255。
分配:在设备描述符中定义。
用途:区分设备中的不同功能模块。
端点地址:
范围:0x00到0x0F(输出端点),0x80到0x8F(输入端点)。
分配:在接口描述符中定义。
用途:指定数据传输的方向和类型,用于数据传输。
端口地址:
范围:1到255。
分配:在集线器描述符中定义。
用途:区分集线器上的不同物理连接点。
层次化通信结构
主机 → 设备(通过设备地址)
设备 → 接口(通过接口地址)
接口 → 端点(通过端点地址)
集线器 → 端口(通过端口地址)