1. 程式人生 > >裝置衝突原理及解決

裝置衝突原理及解決

  也許你有過這樣的經歷,在你的計算機插上某個新的板卡後,某個程式不能運行了,或者是計算機的某個部件不能工作了,甚至於整個機器都不能動彈了。於是,你就開始抱怨,買的這個板卡有問題,或者是相容性不好,其實此類問題並不是新卡的問題,而是它和其他的計算機裝置之間產生的裝置衝突。

  仔細想想,大家就會知道,一個計算機裝置要能正常工作,必須能與主機進行通訊。但插卡裝入計算機後,往往與已有的計算機裝置發生了資源衝突,而不能正常工作。最常見的也是最容易出現的資源衝突就是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控制器通道(可用)

  為什麼IRQ2用於系統的第二個中斷控制器呢?看下圖:

  早期的PC是兩個中斷管理晶片一起構成的中斷管理系統。後來積體電路的整合度提高了,把古老的PC的許多晶片都整合到晶片組裡了,不過保持了向下相容,這個IRQ分配就一直保持到今天。

  2、DMA(Direct Memory Access)直接記憶體存取

  主機與外設之間的資料傳送,一共有兩條途徑:一是用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/Oouput)

  輸入/輸出埠,計算機外設與主機(CPU和記憶體)進行通訊時,是通過介面來進行的,這個介面就叫做埠。每個埠賦予一個埠號稱為地址。每一個埠都包含一組暫存器(資料暫存器、命令暫存器和狀態暫存器)。每一個想和CPU通訊的外設都有不同的I/O地址,在PC機中,I/O地址是16位表示,稱之為16位定址,一共有64K個地址。

  從這個圖中我們可以看到,I/O地址的分配情況。 中斷、DMA通道、I/O地址大部分都有預設值,然而,如果碰巧兩個板卡使用了同樣的資源,就會引起衝突。

  裝置發生衝突的原因

  Windows 98是一個具有即插即用功能的作業系統,也就是說,在Windows 98下計算機的所有IRQ號、DMA通道和I/O埠等系統資源均被Windows 98接管,並由其根據情況進行智慧分配,這就是我們常說的即插即用。

  然而這種即插即用是有條件的:即插即用的BIOS、即插即用的裝置和即插即用的作業系統,三者缺一不可,否則可能會引發裝置衝突。在實際安裝時,由於即插即用裝置品種規格越來越多,新裝置層出不窮,常常不能正確檢測出有關裝置,特別是在安裝裝置較多的情況下,裝置衝突是最容易出現的故障。

  要知道原因首先我們要知道系統中衝突的裝置,做法是在控制面板中雙擊“系統”圖示,檢視裝置管理器中的各裝置。一般有“?”和“!”的裝置要注意了,有問題的裝置就是它們了。解決方法有分兩步做:

  第一步: 先刪去有“?”和“!”的裝置,然後重新啟動,讓計算機自己再認一遍這些裝置。這樣做是因為部分有“?”和“!”的裝置可能是驅動程式安裝有誤,再重灌一遍可解決問題。

  第二步: 如果上面一步還是不能解決問題,現在多半是中斷衝突了,那我們只能手動調整來解決中斷衝突。在“系統/裝置管理器/屬性”中我們可以看到系統資源分配的情況,通過檢視此項就可從中瞭解到哪些系統資源被佔用,哪些系統資源還沒有用,使用者做相應的調整即可。

  排障實戰

  (一)如何防止中斷衝突

  要防止中斷衝突,其實就是要知道什麼裝置容易產生中斷衝突,只要知道了這點,在使用這些裝置時稍微注意一下就可以了。下面我列出一些容易衝突的裝置,希望對讀者有用。

  1.音效卡:一些早期的ISA型音效卡,系統很有可能不認,就需要使用者手動設定(一般為5)。

  2.內建調變解調器和滑鼠:一般滑鼠用COM1,內建調變解調器使用COM2的中斷(一般為3),這時要注意此時COM2上不應有其他裝置。

  3.網絡卡和滑鼠:此問題一般發生在滑鼠在COM1口,使用中斷為3,這時要注意通常網絡卡的預設中斷為3,兩者極有可能發生衝突。

  4.印表機和EPP掃描器:在安裝掃描器驅動程式時應將印表機開啟,因為兩個裝置中串聯,所以為了防止以後掃描器驅動程式設定有誤,一定要將印表機開啟再安裝掃描器驅動程式。

  5.作業系統和BIOS:如果計算機使用了“即插即用”作業系統(例如windows 98),應將BIOS中PNP OS Installed設定為Yes這樣可讓作業系統重新設定中斷;

  6.PS/2滑鼠和BIOS:在使用PS/2滑鼠時應將BIOS中PS/2 Mouse Function Control開啟或設定為Auto,只有這樣BIOS才能將IRQ12分配給PS/2滑鼠用。

  (二)解決衝突的辦法

  由於系統安裝和使用的原因,出現裝置資源衝突在所難免,關鍵在於遇到資源衝突現象後如何冷靜思考,合理解決出現的問題。

  1.發現裝置衝突:當某些外設不能正常運轉(通常在新增外設以後)、或裝置驅動程式安裝不上、系統檢測不到新增硬體的存在、在安裝作業系統時出現宕機等現象以後,在排除硬體本身故障和病毒感染之後,我們都可以大膽懷疑裝置有衝突!

  2.解決裝置衝突

  (1)在控制面板中雙擊“系統”圖示;

  (2)在“系統屬性”對話方塊中選擇“裝置管理”選項卡。在該選項卡中將顯示出所有的計算機硬體裝置(如CDROM、顯示器、鍵盤、滑鼠等),選擇最上面的“計算機”裝置項後單擊“屬性”按鈕;

  (3)在“計算機屬性”對話方塊中使用者可從它的“檢視資源”選項卡中檢視現有系統資源。這些資源包括“中斷請求(IRQ)”、“直接記憶體訪問(DMA)”、“輸入/輸出(I/O)”和“記憶體”等四大類,使用者可分別選擇檢視。如選擇“中斷請求(IRQ)”類系統資源,即可顯示出Win95現在已經分配使用的中斷號,使用者可從中瞭解哪些系統資源被佔用,哪些系統資源保留未用,可以通過手工調整來解決一部分裝置衝突。

  3.防止裝置衝突的技巧

  (1)如果使用內建調變解調器和序列滑鼠,在CMOS中關閉COM2,可以節省出IRQ3,供解調器使用。

  (2)PCI網絡卡和顯示發生衝突時,可以在CMOS中將IRQ10設定成“Disable”,也就是不為顯示分配中斷號,這也是一種解決問題的辦法。

  (2)刪除裝置驅動程式,將外設重新拔插以後,讓系統重新檢測。

  (3)遮蔽掉暫時不需要使用的硬體(禁用某些外部裝置)。在裝置衝突發生後,只要系統不癱瘓,就很容易檢查系統資源狀況,分析衝突原因,可以關閉有關衝突裝置。

  (4)注意裝置的安裝順序。這一點是十分重要的,筆者建議的順序是顯示卡、印表機、音效卡、網絡卡、調變解調器、掃描器。即外設插上一個,安裝其驅動程式。

  (5)瞭解外設的常規使用資源,可以通過控制面板的裝置管理來檢視。比如:音效卡通常用中斷5、NE2000相容網絡卡通常用中斷3、顯示卡用中斷10、序列滑鼠用中斷3或4、內建調變解調器通常用中斷3或4、印表機用中斷7等等。

  (6)當然也可以通過硬體跳線和軟體的方法來修改這些預設的配置,讓其使用不被佔用的資源。

  通過本文的介紹,大家一定對中斷衝突的原因和解決方法有所瞭解,我想大家以後再遇到中斷衝突問題,只要仔細的分析,一定能很好的解決。

(劉惠萱)