Windowst系统USB主机控制器简介
2024-01-29
53
0
通过前文可知,在WinXP下,USBC主机端控制器驱动程序相对于WIN2000是不一样的。至少表现为驱动的名称是不一样的。
WinXP下使用USBPort.sys作为USB端口驱动,其下可适配三种MINI小端口驱动程序,分别为usbehci.sys,usbuhci.sys和usbohci.sys。
在驱动中,USBPort.sys抽象出一USB通用的功能,而各个mini小端口实现了不同控制器的细节功能。USB主机端的usbehci.sys是USB2.0的MINI小端口驱动程序。
USB主机控制器驱动栈
在XP时代,USB主机控制器一般是一个PCI设备(现在新的主板Win10系统是PCIE设备),故USB主机控制器的PDO设备就是由PCI总线驱动程序创建其子设备PDO.而USB主机控制器驱动程序作为创建FDO设备,并除附加其上。
这里以Win10下的USB3.0设备为例
而一个USB主机控制器在内部集成一个根USB集线器。所以USB主机控制器会建一个子的USB集线器PDO,而根集线器的驱动创建其FDO并附加其上。
USB3.0下的USB根集线器驱动是USBhub3.sys,而XP是USBhub.sys.
所以说,USB主机控制器相对于PCI/E总线来说,就是个功能设备。但相对于USB根集线器,其是总线驱动程序。
USB主机控制器的功能
- 一个USB主机控制器就是一条USB总线
- 由于USB根集线器也会被当作一个USB设备,也需要分配设备地址。所以USB主机控制器的一项功能就是管理其总线下的所有USB设备(包括根集线器)
- 一条USB主机控制器下最多包括127个设备(0地址用于新设备的枚举,故作为保留),这127个设备包含了USB根集线器
- USB主机控制器处理大多数针对当前这个主机控制器管理下的总线上的所有usb设备所发出的USB请求(URB)。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936