+ -

USB 物理结构及设备

欢迎加入字节流官方QQ群:952873936或联系站长进行技术交流。

USB物理体系如图所示,它的根结点为USB主控制器,由USB主控制器实现USB根HUB(根集线器,通过根HUB,可以外接USB设备和USB HUB(集线器)进行USB接口的扩展。
USB物理体系

USB根集线器(ROOT HUB)

PC主机一般含有一个或多个根线器。在主机启动时在它的内部总线上查找这个根集线器。

USB主机控制器一般通过PCI/E枚举发现,主机控制器的PCI/E配置空间被访问并配置合适的值。控制器的寄存器通过IO或内存的方式映射,所有USB主机控制器也像其它物理设备一样占用系统总线进行它的数据传输。

PC机直接与USB主机控制器中的根集线器进行数据通讯枚举,然后根集线器再与连接的USB设备或USB集线器进行数据通讯枚举。

一个USB根集线器即为一个USB总线,如果系统中有两个根集线器,系统会当作2条USB总线来处理。

USB集线器(HUB)

USB集线器是USB众多标准设备中的一种,分类为HubClass标准类。USB集线器必须实现在USB规范中定义的功能,它有必要的描述符描述集线器的功能。

USB集线器必须实现USB规范中其定义的功能,并且其具有必要的描述符用于描述集线器的功能。

集线器主要由一个信号中继器和控制器组成,中继器沿正确的方向进行传递USB信号,控制器理解协议并指示中继器的动作。

集线器控制器自身由集线器通过两个端点控制。USB集线器通过它的标准端点0配置和查询。这个配置管道实现大多数的标准控制事务,然后继续实现各种集线器特定的控制事务。

这些事务包括:ClearHubFeature, ClearPortFeature, GetBusState, GetHubDescriptor, GetHusStatus, GetPortStatus, SetHubDescriptor, SetHubFeature,SetPortFeauture.

集线器有一个状态改变端点,用于将它的下游端口的变化告诉主机。如果下在的任何状态改变,将设置一个端口中变化位:设备连接、端口使能、挂起、过流指示、复位和加电。

主机每255ms查询USB集线器让其报告其各个下游设备的状态,如果什么也没有尽管变,集线器简单返回NAK.

状态的改变包括:设备连接,端口使能,挂起,过流指示,复位,加电和拨出等。

USB设备

USB设备可以插入USB 集线器的任何USB端口。

一些USB设备是USB集线器,这样这个USB集线器就可以连接更多的USB设备了。一个USB集线器具一个向上游(PC机端)连接和多个下游端口(USB设备)。

一个USB集线器最多可以连接127个设备(包括集线器)。

USB设备的数据在主机和设备之间进行交换,USB设备之间不进行直接数据交换。

USB复合设备

USB复合设备其实是一个USB设备提供了多个USB接口(配制描述符),每个接口描述符都是一个独立的功能设备。
USB复合设备是由USB通用父驱动程序(USBCCGP.sys)驱动并再次枚举成个USB子设备。


Windows设备管理器中的USB设备树

如在Windows的设备管理器下,我们可以看到如下的设备树:

设备树

可以看到,系统中有一个USB主机控制器,名叫:Interl(R)USB 3.10可扩展主机控制器,通过查看其硬件可知,这是一个PIC/E设备。
在USB主机控制器下,有一个USB根集线器(Xhci),USB的其它设备都挂接在根集线器下。
USB根集线器下挂接着以下几个设备,分别为:

  • 一块USB固态盘
  • USB鼠标
  • USB无线蓝牙输入设备(用于连接蓝牙键盘或鼠标)
  • USB复合设备,此USB复合设备包括两个接口,第一个接口为一个标准的HID键盘,第二个接口为一个USB标准输入设备。在第二个设备中,又由于报告描述符的原因,系统枚举了3个USB标准输入设备。
微信公众号
字节流公众号  字节流QQ群:952873936
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!