您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>芯片引腳圖>

8259引腳和工作原理介紹

2018年05月28日 08:34 網(wǎng)絡(luò)整理 作者: 用戶評論(0
關(guān)鍵字:中斷(41424)8259A(8273)

  8259A主要功能

 ?、僖黄?259A可以接受并管理8級可屏蔽中斷請求,通過8片8259A級聯(lián)可擴展至63級可屏蔽中斷優(yōu)先控制。

 ?、趯γ恳患壷袛喽伎梢酝ㄟ^程序來屏蔽或允許。

 ?、墼谥袛囗憫?yīng)周期,8259A可為CPU提供相應(yīng)的中斷類型碼。

 ?、芫哂卸喾N工作方式,并可通過編程來加以選擇。

  8259A內(nèi)部結(jié)構(gòu)

8259引腳和工作原理介紹

  8259A引腳圖

8259引腳和工作原理介紹

  8259A與CPU相連的接口引腳:

  Do~D 7:雙向三態(tài)數(shù)據(jù)線,是CPU和8259A進行數(shù)據(jù)、命令狀態(tài)傳送的通道。

  WH:寫控制輸入信號,低電平有效。有效時,表明當(dāng)前正在向8259A寫入命令字。

  RD 讀控制輸入信號,低電平有效。有效時,表明CPU正在向8259A讀數(shù)據(jù)。

  Ao: 片內(nèi)地址選擇信號,用來指出當(dāng)前8259A的哪個端口被訪問。每片8259A有兩端口地址。

  cs 片選輸入信號,低電平有效,通過地址譯碼邏輯電路與地址總線相連。

  INT:與CPU的INTR端相連,由8259A向CPU發(fā)出中斷請求信號。

  INTA:接收來自CPU的中斷響應(yīng)信號。8259A要求中斷響應(yīng)信號由兩個負(fù)脈沖構(gòu)成

  8259A工作方式

  8259A的中斷管理功能很強,單片可以管理8級外部中斷,在多片級聯(lián)方式下最多可以管理64級外部中斷,并且具有中斷優(yōu)先權(quán)判優(yōu)、中斷嵌套、中斷屏蔽和中斷結(jié)束等多種中斷管理方式。

  1.中斷優(yōu)先權(quán)方式

  8259A中斷優(yōu)先權(quán)的管理方式有固定優(yōu)先權(quán)方式和自動循環(huán)優(yōu)先權(quán)方式兩種

  2.中斷嵌套方式

  8259A的中斷嵌套方式分為完全嵌套和特殊完全嵌套兩種。

  3.中斷屏蔽方式

  中斷屏蔽方式是對8259A的外部中斷源IR7~IRO實現(xiàn)屏蔽的一種中斷管理方式,有普通屏蔽方式和特殊屏蔽方式兩種。

  4.中斷結(jié)束方式

  中斷結(jié)束方式分為:自動結(jié)束方式、普通結(jié)束方式和特殊結(jié)束方式

  5.8259A數(shù)據(jù)線與系統(tǒng)數(shù)據(jù)總線的連接有緩沖和非緩沖兩種方式。

  8259A工作原理

  一個外部中斷請求信號通過中斷請求線IRQ,傳輸?shù)絀MR(中斷屏蔽寄存器),IMR根據(jù)所設(shè)定的中斷屏蔽字(OCW1),決定是將其丟棄還是接受。如果可以接受,則8259A將IRR(中斷請求暫存寄存器)中代表此IRQ的位置置1,以表示此IRQ有中斷請求信號,并同時向CPU的INTR(中斷請求)管腳發(fā)送一個信號。但CPU這時可能正在執(zhí)行一條指令,因此CPU不會立即響應(yīng)。而當(dāng)這CPU正忙著執(zhí)行某條指令時,還有可能有其余的IRQ線送來中斷請求,這些請求都會接受IMR的挑選。如果沒有被屏蔽,那么這些請求也會被放到IRR中,也即IRR中代表它們的IRQ的相應(yīng)位會被置1。

  當(dāng)CPU執(zhí)行完一條指令時后,會檢查一下INTR管腳是否有信號。如果發(fā)現(xiàn)有信號,就會轉(zhuǎn)到中斷服務(wù),此時,CPU會立即向8259A芯片的INTA(中斷應(yīng)答)管腳發(fā)送一個信號。當(dāng)芯片收到此信號后,判優(yōu)部件開始工作,它在IRR中,挑選優(yōu)先級最高的中斷,將中斷請求送到ISR(中斷服務(wù)寄存器),也即將ISR中代表此IRQ的位置一,并將IRR中相應(yīng)位置零,表明此中斷正在接受CPU的處理。同時,將它的編號寫入中斷向量寄存器IVR的低三位(IVR正是由ICW2所指定的,不知你是否還記得ICW2的最低三位在指定時都是0,而在這里,它們被利用了?。┻@時,CPU還會送來第二個INTA信號,當(dāng)收到此信號后,芯片將IVR中的內(nèi)容,也就是此中斷的中斷號送上通向CPU的數(shù)據(jù)線。

  這個內(nèi)容看起來仿佛十分復(fù)雜,但如果我們用一個很簡單的比喻來解釋就好理解了。CPU就相當(dāng)于一個公司的老總,而8259A芯片就相當(dāng)于這個老總的秘書?,F(xiàn)在有很多人想見老總,但老總正在打電話,于是交由秘書先行接待。每個想見老總的人都需要把自己的名片交給秘書,秘書首先看看名片,有沒有老總明確表示不愿見到的人,如果沒有就把它放到一個盒子里面。這時老總的電話還沒打完,但不停的有人遞上名片求見老總,秘書就把符合要求的名片全放在盒子里了。老總打完電話了,探出頭來問秘書:有人想見我嗎?這時,秘書就從盒子里挑選一個級別最高的,并把他的名片交給老總。

  這里需要理解的是中斷屏蔽與優(yōu)先級判定并不是一回事,如果被屏蔽了,那么參加判定的機會也都沒了。在默認(rèn)情況下,IRQ0的優(yōu)先級最高,IRQ7最低。當(dāng)然我們可以更改這個設(shè)定,這樣在下面有詳細(xì)描述。

  當(dāng)芯片把中斷號送上通往CPU的數(shù)據(jù)線后,就會檢測ICW4中的EOI是否被置位。如果EOI被置位表示需要自動清除中斷請求信號,則芯片會自動將ISR中的相應(yīng)位清零。如果EOI沒有被置位,則需要中斷處理程序向芯片發(fā)送EOI消息,芯片收到EOI消息后才會將ISR中的相應(yīng)位清零。

  這里的機關(guān)存在于這樣一個地方。優(yōu)先權(quán)判定是存在于8259A芯片中的,假如CPU正在處理IRQ1線來的中斷,這時ISR中IRQ1所對應(yīng)的位是置1的。這時來了一個IRQ2的中斷請求,8259A會將其同ISR中的位進行比較,發(fā)現(xiàn)比它高的IRQ1所對應(yīng)的位被置位,于是8259A會很遺憾的告訴IRQ2:你先在IRR中等等。而如果這時來的是IRQ0,芯片會馬上讓其進入ISR,即將ISR中的IRQ0所對應(yīng)的位置位,并向CPU發(fā)送中斷請求。這時由于IRQ1還在被CPU處理,所以ISR中IRQ1的位也還是被置位的,但由于IRQ0的優(yōu)先級高,所以IRQ0的位也會被置位,并向CPU發(fā)送新的中斷請求。此時ISR中IRQ0與IRQ1的位都是被置位的,這種情況在多重中斷時常常發(fā)生,非常正常。

  如果EOI被設(shè)為自動的,那么ISR中的位總是被清零的(在EOI被置位的情況下,8259A只要向CPU發(fā)送了中斷號就會將ISR中的相應(yīng)位清零),也就是如果有中斷來,芯片就會馬上再向CPU發(fā)出中斷請求,即使CPU正在處理IRQ0的中斷,CPU并不知道誰的優(yōu)先級高,它只會簡單的響應(yīng)8259A送來的中斷,因此,這種情況下低優(yōu)先級的中斷就可能會中斷高優(yōu)先級的中斷服務(wù)程序。所以在PC中,我們總是將EOI位清零,而在中斷服務(wù)程序結(jié)束的時候才發(fā)送EOI消息。

  8259A應(yīng)用實例

  在Intel 80486 CPU系統(tǒng)中,使用2片8259A管理中斷,采用級聯(lián)方式。主片中的8個中斷請求IR7~IRO除IR2擴展從片以外,其他均為系統(tǒng)使用,從片中的8個中斷請求IR7~IR0供用戶使用。

8259引腳和工作原理介紹

非常好我支持^.^

(4) 80%

不好我反對

(1) 20%

( 發(fā)表人:姚遠(yuǎn)香 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?