USB集线器和其他USB设备一样,都需要在上电时进行配置。在USB协议中,使用默认的端0点。进行上电初期的通信。USB集线器除了配置其自身外,还需要对下行端口连接的其他USB设备进行识别。
USB集线路器HUB的状态
USB集线器以及USB主机驱动程序通过查询集线器的下行端口来确定是否有状态改变。当发现有状态改变后才使用USB集线器类请求获得状态并进行设备的激活。整个过程按照如下步骤执行:
(1)配置软件在时间片结束时查询USB集线器的状态,并返回端口状态转换位图。
(2)如果检测到USB集线器的状态改变,则执行GetHubStatus请求,读取集线器的状态改变情况。
(3)如果检测到USB集线器的端口状态改变,则执行GetPortStatus请求,读取端口特征的 改变情况。
(4)如果确认一个USB功能设备连接到USB端口之后,配置软件通过USB集线器激活该端口,USB设备便可以使用。
USB集线器HUB枚举过程
USB集线器的上电配置过程如下:
USB集线器连接到USB主机的根集线器上。
USB主机读取该设备的标准描述符,获取设备的配置信息。其中包含了USB集线器的属性信息。
USB主机为该USB集线器设备重新分配一个USB地址,进行重新获取设备描述符等枚举。
USB集线器对其下行端口进行上电操作。
USB集线器检测下行端口的状态变化。
对于有总线活动的USB下行端口,读取其状态信息。
激活USB下行端口,对下行端口连接的USB设备进行操作。