IRQ冲突硬件无法使用

2016-11-26 06:42:34
网络安全和信息化 2016年2期
关键词:管理器网卡中断

故障现象

在为一台组装计算机安装Windows系统并正常安装硬件驱动后,使用USB无线网卡可以正常上网,在USB接口插入手机,并为手机启用USB模式,无线网卡出现断线现象。通过查看设备管理,发现原来无线网卡和手机出现硬件冲突,在手机插入其他几个USB接口后,无线网卡仍然无法恢复正常。用鼠标右键点击“我的电脑”依次选择“管理→设备管理器”,在界面中发现有硬件出现黄色的“?”。

图1 8259A控制器

故障分析

在本操作中,硬件驱动程序安装正确,但在插入手机后,手机USB模式占用了原有本属于USB无线网卡的中断请求(IRQ)线路、直接存储器(DMA)通道和输入/输出(I/O)端口及内存地址等计算机资源,当将相同的系统资源分配给两个或多个硬件设备时,就会在硬件之间发生资源冲突,造成导致USB无线网卡无法正常上网。

IRQ家族

所谓 IRQ(Interrupt Request)意为中断请求,是硬件设备向CPU发送一个中断请求,以获得CPU的服务响应。在早期使用的计算机中,是由一个中断控制器8259或8259A的芯片来控制操作系统中每个硬件的IRQ值,共有16组IRQ,因芯片本身需“桥接”使用一组IRQ,实际上只有15组IRQ可供硬件使用。这15组IRQ,在BIOS中通常都有自己所对应的硬件设备,每一种类型的硬件设备原则上都会有一个不同的IRQ。正常情况下,CPU是处于不间断的工作状态,而当某一个硬件设备开始或结束收发数据,需要CPU处理数据运算时,便使用其IRQ对CPU送出中断请求讯号,CPU会暂停当前工作,先行处理这个硬件响应,这便是中断请求的作用。根据日常使用要求和使用习惯,很多IRQ均固定使用,只有部分会闲置。

硬件设备的IRQ信号由中断控制器8259或8259A的INT引脚输入到CPU的INT引脚去申请,这是一个8位的二进制数(如图1)。

图2 级联的8259A控制器

图3 设备管理器中的设备IRQ

16个IRQ是用2个8259或8259A通过级联来实现的(如图2)。

通常,CPU会依据IRQ优先级来决定响应,这16组IRQ,IRQ0优先级别最高,IRQ15优先级别最低。其优先级由主控制器和从控制器配合形成,将主控制器上定义为IRQ0-IRQ7,将从控制器上的IRQ0-IRQ7定义为IRQ8-IRQ15。

IRQ的分配

从Windows 95操作系统开始,Windows操作系统开始应用“即插即用”(PNP)技术,计算机所有IRQ、DMA通道和I/O端口等系统资源都被操作系统接管,并由Windows操作系统根据硬件情况进行自动分配。在较早的Windows操作系统或较早的计算机主板上,由于IRQ资源数量有限,因此很多设备往往会共用一个IRQ,由Windows操作系统的智能分配,一般都能正常工作。

在操作系统中,IRQ是由ACPI(高级配置和电源接口)或APIC(高级可编程中断控制器)来控制的。ACPI模式为较早的控制模式,最多只能提 供 16个 IRQ,APIC却 可以提供更多的IRQ,APIC是利用装置扩充组合用来驱动Interrupt控制器,每个CPU都拥有各自的APIC,目前在Intel系列的CPU中均包含了APIC系统,系统中可拥有8个APIC,由它们收集来自各类硬件设备的Interrupt信号,每个APIC有自己专有的IRQ号码。目前主流的单核CPU支持24个以上输入,多核CPU则拥有上百个IRQ。

使用APIC功能,必须选用Windows 2000以后的操作系统并且主板支持APIC模式。

IRQ冲突

PNP技术也存在一定的缺点,即如果不能认出新安装的设备,那么自动分配中断时就会产生冲突,特别是在组装计算机中体现尤为明显,一般为PCI网卡、显卡和ISA设备设备会产生IRQ冲突。正常USB设备不存在IRQ冲突的问题,因为它会单独使用自己的保留中断,因此不会与PCI或ISA设备去抢夺有限的IRQ资源。而当今这个信息时代,新的硬件设备层出不穷,很多设备功能相似,这就导致Windows操作系统不能及时正确检测出新设备,IRQ冲突也就不可避免。

故障排除

确保冲突硬件设备的驱动安装正确。

1.启动APIC模式

进入CMOS模式,选择Advanced CMOS Features,修改APIC Mode为“Enabled”。

2.更换插槽

如果仍出现IRQ冲突,可将冲突的硬件更换其他插槽以避开IRQ冲突,采取这种方法时,需要用户掌握主板CMOS默认状态下的IRQ资源分配情况,然后在此基础上调整板卡的位置,从而避开IRQ冲突。

3.查看冲突设备的IRQ中断号

第一种方法:鼠标右键单击“我的电脑”,选择“设备管理器”,在“查看”菜单栏中,点选“依类型排序资源”,在主界面可以看到“中断请求(IRQ)”,就可以看到IRQ的使用情况了(如图3)。

第二种方法:在操作系统“开始”菜单中,依次展开选择“所有程序→附件→系统工具”或在“运行”对话框中直接输入“msinfo32”。

在“系统属性”的“设备管理器”选项卡上,双击冲突设备,然后在“资源”选项卡上,查看“冲突的设备列表”,确定哪些资源设置与该设备冲突。

4.禁用冲突硬件

如果发生冲突的设备已不再需要,可以将其禁用,以解决硬件冲突问题。如果禁用即插即用设备,那么,其他设备可自动获取这些设备的资源。如果禁用的设备不是即插即用型,那么必须从“设备管理”的硬件列表中删除此设备,然后将它从计算机中取出以释放所占用的资源。在“系统属性”的“设备管理器”选项卡上,双击要禁用的设备。在“资源”选项卡上,如果能发现“手工设置配置”按钮,则表明该设备能够“即插即用”。

5.手动分配IRQ

进入CMOS在PnP/PCI Configurations(即插即用与PCI参数设置)中将“Resources Controlled By”中设置为“Manual”,然后对检测到的硬件的IRQ进行重新分配指定后故障排除。

6.提高冲突硬件的IRQ优先值

在故障仍无法排除时,可以提高冲突硬件的IRQ优先值。运行注册表编辑器regedit32,找到注册表中的HKEY_LOCAL_MACHINESystemCurrentControlSetControlPriorityControl位置。建立一个名为IRQ*Priority(其中“*”是具体的IRQ中断号)的DWORD双字节值,然后把它的值设为5。例如,系统CMOS实时钟的IRQ中断号是9,建立的键名就是IRQ9Priority,重新启动计算机之后,冲突的硬件IRQ的优先值就会提高。

故障解决

笔者遇到的故障问题,手机连接计算机后导致无线网卡中断,刚开始怀疑是驱动的问题,对主板驱动和无线网卡的驱动进行了升级和重新安装,操作系统重启后问题未得到解决。后又怀疑可能是USB接口供电不足造成的故障,在“设备管理器”中“USB Root Hub”的“电源管理”选项卡中,去掉“允许计算机关闭这个设备以节约电源”前的勾选和通过BIOS设置对USB的供电电压进行了调整,问题仍未得到解决。后通过“设备管理器”才发现是IRQ冲突所致,进入CMOS模式,选择Advanced CMOS Features,修改APIC Mode为“Enabled”,保存后重启,进入操作系统后重新安装了无线网卡的驱动,问题得到解决。

猜你喜欢
管理器网卡中断
在DDS 中间件上实现双冗余网卡切换的方法
应急状态启动磁盘管理器
Server 2016网卡组合模式
Windows文件缓冲处理技术概述
数码世界(2018年2期)2018-12-21 21:23:46
跟踪导练(二)(5)
千里移防,卫勤保障不中断
解放军健康(2017年5期)2017-08-01 06:27:44
挑战Killer网卡Realtek网游专用Dragon网卡
高集成度2.5A备份电源管理器简化锂离子电池备份系统
快速导出QQ群消息
电脑迷(2014年2期)2014-04-29 19:21:13
AT89C51与中断有关的寄存器功能表解