USB总线的物理结构及设备分类

 

USB物理体系如图所示,它的根结点为USB主控制器,由USB主控制器实现USB根HUB(根集线器,通过根HUB,可以外接USB设备和USB HUB(集线器)进行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配置和查询。这个配置管道实现大多数的标准控制事务,然后继续实现各种集线器特定的控制事务

这些事务包括:ClearHubFeatureClearPortFeature, GetBusState, GetHubDescriptor, GetHusStatus, GetPortStatusSetHubDescriptorSetHubFeature,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主机控制器,名叫:Interl(R)USB 3.10可扩展主机控制器,通过查看其硬件可知,这是一个PIC/E设备。
在USB主机控制器下,有一个USB根集线器(Xhci),USB的其它设备都挂接在根集线器下。
USB根集线器下挂接着以下几个设备,分别为:

  • 一块USB固态盘
  • USB鼠标
  • USB无线蓝牙输入设备(用于连接蓝牙键盘或鼠标)
  • USB复合设备,此USB复合设备包括两个接口,第一个接口为一个标准的HID键盘,第二个接口为一个USB标准输入设备。在第二个设备中,又由于报告描述符的原因,系统枚举了3个USB标准输入设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打个工而已

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值