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

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

8259引腳和工作原理介紹

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

  8259A主要功能

  ①一片8259A可以接受并管理8級(jí)可屏蔽中斷請(qǐng)求,通過(guò)8片8259A級(jí)聯(lián)可擴(kuò)展至63級(jí)可屏蔽中斷優(yōu)先控制。

 ?、趯?duì)每一級(jí)中斷都可以通過(guò)程序來(lái)屏蔽或允許。

  ③在中斷響應(yīng)周期,8259A可為CPU提供相應(yīng)的中斷類(lèi)型碼。

  ④具有多種工作方式,并可通過(guò)編程來(lái)加以選擇。

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

8259引腳和工作原理介紹

  8259A引腳圖

8259引腳和工作原理介紹

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

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

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

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

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

  cs 片選輸入信號(hào),低電平有效,通過(guò)地址譯碼邏輯電路與地址總線(xiàn)相連。

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

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

  8259A工作方式

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

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

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

  2.中斷嵌套方式

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

  3.中斷屏蔽方式

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

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

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

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

  8259A工作原理

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

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

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

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

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

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

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

  8259A應(yīng)用實(shí)例

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

8259引腳和工作原理介紹

非常好我支持^.^

(3) 75%

不好我反對(duì)

(1) 25%

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

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

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

      ?