WIN7切换到winxp系统后usb无法使用的问题分析及解决

简单列一下各种xHCI(也包括真正的xHCI)的基本含义:
简单地讲,OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。
1. OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,还支持其他的一些接口,比如它还支持Apple的火线(Firewire,IEEE 1394)接口。与UHCI相比,OHCI的硬件复杂,硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单。主要用于非x86的USB,如扩展卡、嵌入式开发板的USB主控。
2. UHCI(Universal Host Controller Interface)是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。UHCI的软件驱动的任务重,需要做得比较复杂,但可以使用较便宜、较简单的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
3. EHCI(Enhanced Host Controller Interface)是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。
4. xHCI(eXtensible Host Controller Interface)是最新最火的USB3.0的接口标准,它在速度、节能、虚拟化等方面都比前面3中有了较大的提高。xHCI支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed)。xHCI的目的是为了替换前面3种(UHCI/OHCI/EHCI)。

网吧多系统开机进入win7后重启在进winxp会导致部分usb设备无法使用的问题的分析及解决:

现在越来越多网吧开始采购B85等集成intel原生USB3.0控制器的主板。根据上面的资料:usb3.0采用的是xhci的标准,它兼容usb3.0、usb2.0、usb1.1等各个标准。所以主板厂家的bios中关于xhci的配置一般有以下几项:
Auto: 根据第一次开机时启动的操作系统自动判断xhci接口标准。
Enable: 强制开启xhci接口标准。此时主板上蓝色usb接口支持usb3.0、usb2.0、usb1.1。
Disable:强制关闭xhci接口标准。此时主板上蓝色usb接口不在支持usb3.0, 仅支持usb2.0、usb1.1。

主板厂家默认xhci模式配置一般为auto。这个时候如果第一次冷开机的操作系统支持xhci,则主板的蓝色接口工作于usb3.0,如果操作系统不支持xhci,则主板蓝色接口工作于usb2.0。
这中间有一个bug存在:模式的更改只会存在于冷开机,也就是在机器未开机的情况下第一次开机,而重启是不会触发模式判断的。也就是说第一次开机时启动的系统是支持xhci的,那这个接口就是usb3.0模式的,重启电脑后,这个接口仍然是usb3.0模式,而不会管重启后的系统是否支持usb3.0模式。
wintel又给我们挖了一个大坑:只有采用NT6.x及以后内核的windows系统才支持xhci,即主流的系统只有win7、win2008这些才支持usb3.0。而winxp、win2003是不支持usb3.0的。
所以,如果usb设备(键盘、鼠标)是插在蓝色的usb接口上,而无盘又有win7、xinxp多启动,开机后第一次进了win7,然后又重启进了winxp,这样就会出现找不到插在蓝色接口上的usb设备(键盘、鼠标)的问题。

解决方法:
1、键盘、鼠标避免不插在蓝色usb接口上。(标准的usb3.0接口是蓝色的,不排除部分主板不依据此标准)
2、主板BIOS中设置XHCI的模式为disable,关闭usb3.0的支持来兼容winxp系统。

⚑Tags: