搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

设备冲突原理及解决

也许你有过这样的经历,在你的计算机插上某个新的板卡后,某个程序不能运行了,或者是计算机的某个部件不能工作了,甚至于整个机器都不能动弹了。于是,你就开始抱怨,买的这个板卡有问题, 或者是兼容性不好,其实此类问题并不是新卡的问题,而是它和其它的计算机设备之间产生的设备冲突。
  仔细想想,大家就会知道,一个计算机设备要能正常工作,必须 能与主机进行通信。但插卡装入计算机后,往往与已有的计算机设备发生了资源冲突,而不能正常工作。最常见的也是最容易出现的资源冲突就是irq、dma和i/o冲突。我们只要从这里入手,解决这方面的问题还是不难的。

  首先,我们应该了解一下irq、dma和i/o的概念。
  1、irq(interrupt request),意为中断请求,每一个设备都有一个irq,用以向cpu发送服务请求,称为中断。一般来说,计算机 有16个中断线与各种需要用中断方式工作的不同外设相连(每个中断线有一个标号也就是中断号),当一条中断线被激活后,cpu就会立即停下当前的工作,装载一定的中断处理子程序(中断服务程序),这个程序执行完成以后,系统回到刚才的断点,继续原来的工作。如果两个设备拥有一个中断号计算机系统中的某些部分就会停止工作其 甚至会导致整个计算机系统崩溃。一般来说,在我们常用的个人pc机中,中断号的分配是这样的(见表一):


       表一中断(interrupt)对应表
       中断号         说明
        0       系统时钟(不可用)
        1        键盘(不可用)
        2   系统的第二个中断请求控制器(irq8-15)
        3        串行口2(可用)
        4        串行口1(可用)
        5    并行口2(可用)(一般用来设置声卡)
        6        软盘(不可用)
        7       并行口1(一般用作打印机)
        8       实时时钟(不可用)
        9           可用
        10           可用
        11         常用于显示卡
        12          ps/2 mouse
        13         数学协处理器
        14         ide1控制器通道
        15       ide2控制器通道(可用)
注:nmi非正常中断(不可屏蔽中断),如校验错。


  2、dma(direct memory address)
  主机与外设之间的数据传送,一共有两条途径:一是用cpu来管 理的数据的传送;二是用专门的芯片完成数据的传送。所谓dma,就是不经cpu,外设同内存之间相互传送数据的通道,在这种方式下, 外设利用dma通道直接将数据写入存储器或将数据从存储器中读出,而不用cpu参与,系统的速度会大大增加。在pc机内部,dma通道是如 何分配的呢?(见表二)


       表二(dma直接内存存取通道对应表)
       dma 0 可用
       dma 1 epc打印口(如果设置的话)
       dma 2 软盘控制器
       dma 3 8位数据传送
       dma 4 级联dma控制器
       dma 5 可用
       dma 6 可用
       dma 7 可用


3、i/o(input/output)
  输入/输出端口,计算机外设与主机(cpu和内存)进行通信时, 是通过接口来进行的,这个接口就叫做端口。每个端口赋与一个端口号称为地址。每一个端口都包含一组寄存器(数据寄存器、命令寄存 器和状态寄存器)。每一个想和cpu通信的外设都有不同的i/o地址,在pc机内部一共有1024个地址。
  中断、dma通道、i/o地址大部分都有缺省值,然而,如果碰巧两 个板卡使用了同样的资源,就会引起冲突。


  其次,我们了解一下设备发生冲突的原因。
win95是一个具有即插即用功能的操作系统,通常在win95下计算机的所有irq号、dma通道和i/o端口等系统资源均被win95接管,并由 其根据情况进行智能的分配,这就是我们常说的即插即用。然而这种即插即用是有条件的:即插即用的bios、即插即用的设备和即插即用 的操作系统,三者缺一不可,否则可能会引发设备冲突。在实际安装时,由于即插即用设备品种规格越来越多,新设备层出不穷,常常不能正确检测出有关设备,特别是在安装设备较多的情况下,设备冲突是最容易出现的常见故障。


  第三、我在朋友们对有关irq、dma和i/o的概念有了一些了解的基础之上,就自己在实践过程中遇到的设备资源冲突和解决问题的 思路与大家交流一下:
  (一)可能发生冲突的外部设备
  1.网卡和显示卡冲突。笔者安装局域网时就遇到过tp-3500pci 网卡与trident 9750显示卡冲突,导致显示卡不能正常使用(显示模式不能正常设置)的情况。
  2.声卡和打印机冲突导致打印作业不能进行。
  3.com口鼠标与内置调制解调器冲突,导致鼠标在屏幕上僵死或 调制解调器不能进行正常的拨号连接。
  4.网卡与modem冲突,常见ne2000兼容网卡的缺省中断为3,如 果你将内置的调制解调器也设置成中断3,则两种设备只能使用其一。
  5.网卡与鼠标也可能发生冲突。
  6.扫描仪与内置调制解调器。

  (二)解决问题的办法
  在这里笔者强调一点就是,由于系统安装和使用的原因,出现设 备资源冲突在所难免,关键在于遇到资源冲突现象后如何冷静思考, 合理解决出现的问题。
  1、发现设备冲突:当某些外设不能正常运转(通常在新增外设 以后)、或设备驱动程序安装不上、系统检测不到新增硬件的存在、 在安装操作系统时出现死以后等现象以后,在排除硬件本身故障和病 毒感染之后,我们都可以大胆怀疑设备有冲突!
  2、解决设备冲突
  (1)在控制面板中双击“系统”图标;
  (2)在“系统属性”对话框中选择“设备管理”选项卡。在该 选项卡中将显示出所有的计算机硬件设备(如cdrom、显示器、键盘、 鼠标等),选择最上面的“计算机”设备项后单击“属性”按钮;
  (3)在“计算机属性”对话框中用户可从它的“查看资源”选 项卡中查看现有系统资源。这些资源包括“中断请求(irq)"、“直接内存访问(dma)"、“输入/输出(i/o)”和“内存”等四大类,用户 可分别选择查看。如选择“中断请求(irq)"类系统资源,即可显示出 win95现在已经分配使用的中断号,用户可从中了解哪些系统资源被占 用,哪些系统资源保留未用,可以通过手工调整来解决一部分设备冲 突。
  3、防止设备冲突的技巧
  (1)如果使用内置调制解调器和串行鼠标,在cmos中关闭com2, 可以节省出irq3,供解调器使用。
  (2)pci网卡和显示发生冲突时,可以在cmos中将irq10设置成 “disable”,也就是不为显示分配中断号,这也是一种解决问题的办法。
  (3)删除设备驱动程序,将外设重新拔插以后,让系统重新检测。
  (4)屏蔽掉暂时不需要使用的硬件(禁用某些外部设备)。在设备冲突发生后,只要系统不瘫痪,就很容易检查系统资源状况,分析冲突原因,可以关闭有关冲突设备。
  (5)注意设备的安装顺序。这一点是十分重要的,笔者建议的 顺序是显卡、打印机、声卡、网卡、调制解调器、扫描仪。即外设插 上一个,安装其驱动程序。
  (6)了解外设的常规使用资源,可以通过控制面板的设备管理 来查看。比如:声卡通常用中断5、ne2000兼容网卡通常用中断3、显 卡用中断10、串行鼠标用中断3或4、内置调制解调器通常用中断3或 4、打印机用中断7等等。
  (7)当然也可以通过硬件跳线和软件的方法来修改这些缺省的 配置,让其使用不被占用的资源。
  (8)喜新厌旧,放弃windows95或windows97,安装windows98。

()

相关文章:
© 2006   www.java-asp.net