<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

8259A芯片是一種什么類型的芯片?從硬件看中斷之8259A

冬至子 ? 來源:TrustZone ? 作者:Hcoco ? 2023-08-04 17:17 ? 次閱讀

1、中斷控制器8259A

在中斷控制過程中,中斷源的識別和優先權的確定可以用硬件排隊電路等實現, Intel 8259A可編程中斷控制器就是為完成這些任務而設計的一種器件 。(之前看中斷總會看到這個控制器,現在總算知道踏實干什么的了)

它不是I/O接口,而是一種中斷管理芯片,統稱PIC(Programmable Interrupt Controller)。

8259A可編程中斷控制器用來管理8級優先中斷,并可將多個8259A級聯起來,構成64級中斷優先級管理系統,而無需外加電路;

它具有多種工作方式,CPU可以通過編程設定或改變它的工作方式;

CPU響應中斷時,8259A能自動提供中斷入口地址,而使CPU轉向相應的中斷處理程序。

中斷入口地址可以由用戶設定,且入口地址可以選定在任何存儲單元。

8259A的主要功能為:

  • ① 具有8級優先權控制,通過芯片級聯可擴展至64級優先權控制。
  • ② 每一級中斷均可通過編程屏蔽或允許。
  • ③ 在中斷響應周期可提供相應的中斷類型號。
  • ④ 有多種工作方式,可通過編程選擇。
  • ⑤ 可與CPU直接連接,不需外加硬件電路。

1 8259A的內部結構

8259A采用NMOS工藝,只需要單一的+5V電源,它的內部電路為靜態電路,因此不需要時鐘輸入,其內部結構如圖12所示。

image.png
8259A內部結構

1.數據總線緩沖器

數據總線緩沖器是三態、雙向、8位的緩沖器,D7~D0用于和CPU的數據總線連接, CPU通過數據總線緩沖器向8259A傳送命令碼,或從8259A讀取狀態字。

在中斷響應時, 8259A通過數據總線緩沖器向CPU提供CALL指令的操作碼和調用子程序入口地址的低8位和高8位,以及中斷類型碼。

2.中斷請求寄存器(IRR)

中斷請求寄存器用來寄存所有IR輸入線輸入的中斷請求信號,即保存正在請求服務的中斷級。有一個請求輸入線就有一個觸發器來保存相應的狀態,共有IR0~IR7 8條輸入線,連接8個I/O設備的中斷請求信號。

當IR0~IR7中的某一條請求線上升為高電平時,IRR中的相應位置“1”。

3.優先權電路

優先權電路的主要作用是確定中斷請求寄存器IRR中各位的優先級,并確定能否向CPU申請中斷。當IRR中有中斷請求觸發器置位時,優先權電路就選出其中的未被屏蔽的最高優先級,并對該優先級編碼;然后再按照一定的優先級方式同中斷服務寄存器(ISR)中的最高優先級相比較,以便確定最終有無向CPU申請中斷的資格。若可以申請中斷,則CPU響應中斷請求;發來第一個INTA脈沖時,將級別最高者放入中斷服務寄存器(ISR)中的相應位置。

4.中斷服務寄存器(ISR)

中斷服務寄存器(ISR)的主要作用是保存當前被CPU服務的中斷級,也就是記錄正在被處理的中斷請求。當某一級中斷被CPU響應,并執行它的中斷服務程序時,中斷服務寄存器ISR中的相應位置“1”,并一直保持該狀態(非自動結束中斷方式),直到CPU發出結束中斷命令EOI為止。

在中斷嵌套情況下,ISR中會有多個位被置“1”。在CPU響應中斷,發出第一個INTA時,最高優先級的狀態在ISR中相應位置“1”,同時該位的編碼寫入中斷向量寄存器的低3位(高5位由初始化編程時寫入),以備在第二個INTA到來時送出對應的中斷類型號。

image.png
8259A內部結構

5.中斷屏蔽寄存器(IMR)

中斷屏蔽寄存器的主要作用是對各中斷源的中斷請求信號(IR0~IR7)實現開關控制。這個寄存器中保存對輸入請求線上的屏蔽信息,這些信息是由CPU送給8259A的操作命令OCW1來設定的。當某位為“1”時,表示禁止相應的中斷請求進入優先權電路。

6.控制邏輯

控制邏輯內部包括內部控制電路、中斷控制電路、初始化命令寄存器組和操作命令寄存器組,它根據CPU對8259A編程設定的工作方式產生8259A內部控制信號,并根據中斷請求寄存器(IRR)和優先權電路的判別結果,在適當時候向CPU發生中斷請求信號,并接收CPU發來的中斷響應信號INTA,控制提供中斷類型號。

7.讀/寫邏輯

接收CPU來的控制信號,包括端口控制信號A0和CS、數據方向控制信號RD和WR??刂茖PU送來的初始化命令ICW和操作命令OCW存入8259A內部相應的寄存器,用以規定8259A的工作方式。

8.級聯緩沖/比較器

一片8259A最多可構成八級中斷(IR0~IR7),要想擴展中斷源,必須多片連在一起,即采用級聯方式。級聯緩沖/比較器的功能有兩個,一是提供級聯控制,二是提供緩沖控制。CAS2~CAS0用于提供級聯信號,主片輸入,從片輸出。

對于8088 CPU而言,8259A的工作過程是:

  • ① 某一條或某幾條中斷請求線(IR0~IR7)有中斷申請,變為高電平,使中斷請求寄存器(IRR)的相應位置“1”。
  • ② IMR對IRR屏蔽。未被屏蔽的請求信號經優先權電路判別最高優先級,再經由優先級方式確定沒有更高級優先權的中斷,則8259A的INT端輸出為“1”,向CPU提出中斷請求。
  • ③ CPU響應中斷后發出中斷響應信號。在中斷響應過程中,CPU要發出兩次INTA信號。當8259A收到第一個INTA信號后,ISR中當前被選中的最高優先級對應的那一位置“1”,同時IRR中的相應位被清“0”,表示該位上的中斷請求已被CPU所接受。
  • ④ 8259A收到第二個INTA信號后,驅動數據總線將對應的中斷類型碼輸出。
  • ⑤ 如果是自動結束中斷方式(AEOI),則在第二個INTA脈沖結束時將ISR中置“1”的位復位,否則該位的“1”將一直保持,直到CPU發出EOI命令為止。

2 8259A的引腳功能

8259A是一個28引腳的雙列直插式芯片,其引腳信號可參見圖7-12。

  • ① D7~D0:雙向三態數據總線,8位,用于傳送控制和狀態信息、中斷向量、中斷類型碼等。
  • ② IR7~IR0:中斷請求輸入信號,8級中斷源。一般情況下,IR7的中斷優先級別最低,而IR0的中斷優先級別最高。能夠使IRR的相應位置“1”的IRi的有效狀態有兩種,可用命令來設定。
    • 其一是邊沿觸發,即IR必須由低變高產生一個跳變才能使IRR相應位的觸發器置“1”,提出中斷請求;
    • 其二是電平觸發,即只要IR是一個高電平即可。邊沿觸發具有鎖存中斷源中斷請求信號的能力,只要有一次跳變,IRR就能鎖存中斷請求狀態,而與中斷源無關。而在電平觸發方式中,IRR不能鎖存中斷源的中斷請求狀態,即在中斷響應之前,中斷源必須有能力保持中斷請求信號為高電平,否則將視為自行撤銷中斷請求。
  • ③ RD:讀信號,輸入。當RD=0時,8259A將狀態信息送至數據總線供CPU使用。
  • ④ WR:寫信號,輸入。當WR=0時,8259A接收數據總線上CPU傳來的數據。
  • ⑤ CS:片選信號,輸入,低電平有效。當CS=0時8259A被選中,允許CPU對8259A進行讀/寫操作;CS=1時芯片未被選中。
  • ⑥ A0:地址線,輸入。該信號與CS、RD、WR一起用來選擇8259A的內部寄存器。該信號通常直接連到地址總線的A0,8259A用該信號控制接收CPU的命令字或向CPU發狀態信息。
    • 8259A有4個初始化命令字和3個操作命令字,共需要7個寄存器,但卻只有一條地址線A0,只能有2個端口地址,即一個奇地址和-個偶地址,所以7個寄存器只好公用2個地址,并以讀/寫順序和命令字特征碼加以區別。
  • ⑦ INT:中斷請求信號,輸出。只要8259A的中斷邏輯判定中斷請求信號有效,就在這個引腳上產生一個高電平,可接到CPU的中斷輸入端。
  • ⑧ INTA:中斷響應信號,輸入,是來自于CPU的響應脈沖,8259A根據ISR中的置位情況提供相應的中斷類型碼。8259A在第二個INTA時向CPU提供的中斷類型碼的高5位是用戶在程序中規定的,而低3位則是由8259A自動產生的。
  • ⑨ VCC,GND:電源(+5V)和地。
  • ⑩ CAS0~CAS2:級聯信號,雙向,形成8259A的專用總線,以便構成多片8259A的級聯結構。當8259A是主片時,CAS0~CAS2是輸出線,在CPU響應中斷時,輸出被選中的從片代碼。
    • 當8259A是從片時,CAS0~CAS2是輸入線,在CPU響應中斷時,接收主片送出的被選中的從片代碼,然后在從片內將接收來的代碼與本從片代碼相比較,看是否一致,從而確定CPU響應的是不是本從片的中斷請求。
  • [11] 非SP/非EN:從片編程/允許緩沖器信號,雙向,低電平有效、雙重功能引腳。當工作在緩沖器方式時,它是輸出信號,用做允許緩沖器接收和發送的控制信號(非EN),即啟動8259A至CPU之間的數據總線緩沖器。如圖13所示,8259A通過總線緩沖器8286(或者用74245)與系統數據總線連接,控制8286的傳送方向。當工作在非緩沖器方式時,它是輸入信號,用來指明系統中的8259A究竟是作為主片工作(非SP/非EN=1)的,還是作為從片工作(非SP/非EN=0)的,要由程序命令來設定。緩沖器方式適合于8259A的級聯。

image.png

3 8259A的工作方式

中斷控制器8259A有四種主要的工作方式:

  • 全嵌套、
  • 循環優先級、
  • 特定屏蔽
  • 程序查詢方式;

還有四種從屬的工作方式:

  • 中斷結束方式、
  • 讀狀態、
  • 中斷請求觸發方式
  • 緩沖器方式。

另外,它還被分為兩大工作類型,即

  • 單片工作
  • 多片級聯工作。

1.全嵌套方式

這是一種最普通的工作方式。8259A在初始化工作完成后若未設定其他的工作方式,就自動進入全嵌套方式。這種方式的特點是:

  • ① 中斷請求的優先級固定,其順序是IR0最高,依次降低,IR7最低。
  • ② 中斷服務寄存器(ISR)保存優先權電路確定的優先級狀態,相應位置“1”,并且一直保持這個服務“記錄”狀態,直到CPU發出中斷結束命令為止。
  • ③ 在ISR置位期間,不再響應同級及較低級的中斷請求,而高級的中斷請求如果CPU開放中斷的話仍能夠得到中斷服務。
  • ④ IR7~IR0的中斷請求輸入可分別由中斷屏蔽寄存器(IMR)的相應位(D7~D0)屏蔽與允許,對某一位的屏蔽與允許操作不影響對其他位的中斷請求操作。

全嵌套工作方式由ICW4的D4=0來確定。

2.循環優先級方式

循環優先級方式是8259A 管理優先級相同的設備時所采用的中斷管理方式 ,它包括自動循環優先級方式和特殊循環優先級方式。

  • (1)自動循環各 設備優先級相同,當某一個設備受到服務之后,它的優先級就自動地排到最后。所謂各設備優先級相同,是指它們的地位相同,受服務的機會均等,但是畢竟各中斷源的優先級需要排出一個順序,否則同時有多個中斷源申請中斷時計算機無法處理,于是排出的優先級由高到低的順序為:

image.png

這是一個循環套,有一個最低優先權指針,哪一臺設備剛被服務后,它就被賦予最低優先權指針。例如,IR7剛被服務,它就被賦予最低優先權指針,按照循環順序,IR0的優先級就是最高優先級;如果IR4剛被服務,IR4就被賦予最低優先權指針,按照優先級循環順序,IR5的優先級就最高。這樣,當一臺設備提出中斷請求后,在最不利的情況下(此時它的優先級最低),待其他7臺設備被輪流服務一次以后,它變為最高優先級,從而得到系統的服務。但是如果不是在循環優先級方式下(包括自動循環和特殊循環)工作,它可能永遠得不到系統的服務。

自動循環優先級方式由OCW2的R=1、SL=0來確定。

  • (2)特殊循環

特殊循環優先級方式與自動循環優先級方式的不同之處在于:在自動循環優先級方式中,某一設備在被服務之后被確定為最低優先級;而在特殊循環優先級方式中,通過編程來確定某一設備為最低優先級。如IR5被指定為最低優先級,則IR6的優先級最高。特殊循環優先級方式由OCW2的R=1、SL=1來確定,L2L1L0用于指定最低優先級的二進制編碼。

一般來說,在命令控制字中,凡是采用“L2L1L0”的都有“特殊”的含義。

3.特定屏蔽方式

8259A的每個中斷請求輸入信號都可由中斷屏蔽寄存器(IMR)的相應位進行屏蔽, IMR的D0對應IR0,D1對應IR1…… D7對應IR7。相應位為“1”則屏蔽中斷輸入,相應位為“0”則允許中斷輸入。IMR寄存器由操作命令OCW1進行設置。對中斷請求輸入信號的屏蔽方式一般有兩種:正常屏蔽方式和特定屏蔽方式。

在正常屏蔽方式中,每一個屏蔽位對應一個中斷請求輸入信號,屏蔽某一個中斷請求輸入信號對其他請求信號沒有影響,未被屏蔽的中斷請求輸入信號仍然按照設定的優先級順序進行工作,而且保證當某一級中斷請求被響應服務時,同級和低級的中斷請求將被禁止。如果CPU允許中斷,則高級的中斷請求還會被響應,實現中斷嵌套。

特定屏蔽方式也叫特殊的中斷屏蔽方式,當設定了特定屏蔽方式后,IMR中為“1”的位仍要屏蔽相應的中斷請求輸入信號,但所有未被屏蔽的位被全部開放,無論優先級別是低還是高,都可以申請中斷,并且都可能得到CPU的響應并為之服務。也就是說,這種方式拋棄了同級或低級中斷被禁止的原則,任何級別的未被屏蔽的中斷請求都會得到響應,所以,可以有選擇地設定IMR的狀態,開啟需要的中斷輸入。

特定屏蔽方式由OCW3的ESMM和SMM確定,設定時ESMM=1、SMM=1,復位時ESMM=1、SMM=0。

4.程序查詢方式

程序查詢方式不使用中斷,是用軟件尋找中斷源并為之服務的工作方式。在這種方式下,8259A不向CPU發送INT信號(實際上是8259A的INT信號不連到CPU的INTR信號上),或者CPU關閉自己的中斷允許觸發器,使IF=0,禁止中斷輸入。申請中斷的優先級不是由8259A提供的中斷類型碼而是由CPU發出查詢命令得到的。

查詢時,CPU先向8259A發出查詢命令,8259A接到查詢命令后,就把下一個IN指令(對偶地址端口的讀指令)產生的RD脈沖作為中斷響應信號,此時,若有中斷請求信號,則在ISR中相應位置“1”,并把該優先級送至數據總線。在RD期間8259A送至數據總線供CPU讀取查詢的代碼格式為:

image.png

其中,I是中斷請求標志,I=1表示有中斷請求,此時W2W1W0有效,W2W1W0就表示申請服務的最高中斷優先級。I=0表示沒有中斷請求,此時W2W1W0無效。例如讀入的查詢代碼是83H,則表示有中斷請求,申請中斷的優先級輸入是IR3。

在查詢方式下,CPU不需執行中斷響應周期,不必安排中斷向量表,8259A能自動提供最高優先級中斷請求信號的二進制代碼,供CPU查詢。該方式使用方便,可擴充中斷優先級數目,擴充數目超過64級以上(此時不是中斷級聯方式,而是一般的端口連接。在查詢時,只涉及8259A端口地址。顯然,在查詢方式下,能夠擴展的8259A的數目僅限于系統的I/O空間容量)。

查詢方式是由OCW3的P=1來確定的。

5.中斷結束方式

所謂中斷結束方式是指中斷如何結束的方法,這里的“結束”不是指中斷服務程序的結束。中斷服務程序的結束用IRET指令就可完成,這里的“結束”是指如何和何時使8259A中的ISR中的相應位清0。ISR中某位為“1”,表示CPU正在為之服務;某位為“0”表示CPU已經停止(結束)為之服務。而IRET指令主要是恢復程序的斷點,它并不能使ISR的相應位清0。

8259A的中斷結束方式有兩種:命令中斷結束方式(EOI)和自動中斷結束方式(AEOI)。

  • (1)自動結束

在自動中斷結束(AEOI)方式下,8259A自動地在最后一個INTA中斷響應脈沖的后沿將中斷服務寄存器ISR中的相應位清0。這種方式的過程是:中斷請求,CPU響應,發第一個INTA,ISR相應位置“1”, CPU發第二個INTA,8259A提供中斷類型碼,ISR相應位清0,結束。顯然,ISR的相應置“1”位在CPU中斷響應周期內自生自滅,因此在ISR中不會有兩個或兩個以上的置“1”位。

自動中斷結束方式(AEOI)的應用場合一般是,8259A單片系統,或不需要嵌套的多級中斷系統。AEOI方式只能用于主片8259A,不能用于從片8259A。

自動中斷結束方式由ICW4的AEOI=1確定。

  • (2)命令結束命令中斷結束方式(EOI)是在中斷服務程序返回之前,向8259A發中斷結束命令(EOI),使ISR中的相應位清0。它包括兩種情況:
  • ① 非特殊EOI命令:全嵌套方式下的中斷結束命令稱為非特殊EOI命令,該命令能自動地把當前ISR中的最高優先級的那一位清0。非特殊EOI命令是由OCW2的R=0、SL=0、EOI=1確定的。
  • ② 特殊EOI命令:非全嵌套方式下的中斷結束命令稱為特殊EOI命令。在非全嵌套方式下,由于無法確定最后響應的是哪一級中斷(非全嵌套方式的各中斷源沒有固定的優先級別,因此也就不知道誰高誰低),所以應向8259A發出特殊EOI命令,即指定哪一級中斷返回,使其ISR中的相應位清0。特殊EOI命令是由OCW2的R=0、SL=1、EOI=1確定的,由L2L1L0指定ISR中要復位的相應位的二進制編碼。

6.讀8259A狀態

讀8259A的狀態是指讀8259A內部的IRR、ISR和IMR的內容。

  • ① 讀IRR:先發出OCW3命令(使RR=1, RIS=0,地址A0=0),在下一個RD脈沖到來時可讀出IRR,其中包含尚未被響應的中斷源情況。
  • ② 讀ISR:先發出OCW3命令(使RR=1, RIS=1,地址A0=0),在下一個RD脈沖到來時可讀出ISR,其中包含正在服務的中斷源情況,從中也可看出中斷嵌套情況。
  • ③ 讀IMR:不必先發OCW3,只要讀出奇地址端口(A0=l),即可讀出IMR,其中包含設置的中斷屏蔽情況。

7.中斷請求觸發方式

8259A的中斷請求寄存器IRR中有8個中斷請求觸發器,分別對應8個中斷請求信號的輸入端IR0~IR7。這些觸發器的觸發方式有兩種,即邊沿觸發和電平觸發。

  • (1)邊沿觸發 當輸入端有從低電平到高電平的正跳變時,則產生中斷請求(IRR中相應位的觸發器被觸發置“1”,而不是直接向CPU申請中斷)。此后,即使輸入端仍然保持高電平也不會再產生中斷。也就是說,只有正跳沿才能產生中斷。

邊沿觸發方式由ICW1的LTIM=0確定。

  • (2)電平觸發

當輸入端為高電平時產生中斷請求(只要為高電平就可以,不需要脈沖跳變)。但需要注意的是,在電平觸發方式下,在發出EOI命令以前,或CPU開放中斷以前,必須去掉中斷請求信號(使其變為低電平),否則將產生第二次中斷。

電平觸發方式由ICW1的LTIM=1確定。

8.緩沖器方式

所謂緩沖器方式就是在8259A和數據總線之間掛接總線驅動器的方式。在緩沖器方式下,SP/EN引腳將使用EN功能,并使之輸出一個有效低電平,開啟緩沖器工作。該方式多用于級聯的大系統中。

緩沖器方式由ICW4的BUF=1確定。

9.特殊的全嵌套方式

該方式適用于多片級聯,且必須將優先級保存在各從片8259A中的大系統。 該方式與普通的全嵌套方式的工作情況基本相同,有兩點區別:

  • ① 當某從片的一個中斷請求被CPU響應后,該從片的中斷仍未被禁止(即沒有被屏蔽),即該從片中的高級中斷仍可提出申請。(全嵌套方式中這樣的中斷是被屏蔽的,因為這種中斷對從片而言后者是高級中斷,可以嵌套,但對主片而言,由于它們來自于同一個從片,故中斷優先級相同,而在全嵌套方式中,同級和低級中斷是被禁止的。)
  • ②在某個中斷源退出中斷服務程序之前,CPU要用軟件檢查它是否是這個從片中的唯一中斷。檢查的辦法是:送一個非特殊的中斷結束命令(EOI)給這個從片,然后讀它的ISR,檢查是否為0,若為0則唯一,即只有這一個中斷在被服務,沒有嵌套;若不為0則不唯一,說明還有其他的中斷在被服務,該中斷是嵌套在其他中斷里的。只有唯一時,才能把另一個非特殊EOI命令送至主片,結束此從片的中斷。否則,如果過早地結束主片的工作記載而從片尚有未處理完的嵌套中斷的話,整個系統的中斷嵌套環境就會混亂。特殊的全嵌套方式由ICW4的SFNM=1確定。

10.多片級聯方式

在級聯系統中,每個從片的中斷請求輸出線INT直接連到主片的某個中斷請求輸入線上,主片的CAS0~CAS2是輸出線,輸出被響應的從片代碼,從片的CAS0~CAS2是輸入線,接收主片發出的從片代碼,以便與自身代碼相比較。級聯方式的要點如下:

  • ① 一個8259A主片至多帶8個從片,可擴展至64級。
  • ② 緩沖方式下,主片和從片的設定由ICW4的M/S位確定,M/S=1是主片,M/S=0是從片。M/S的狀態在BUF=l時有意義。
  • ③ 在非緩沖方式下,主片和從片由SP/EN引腳的SP功能確定,SP=1是主片,SP=0是從片。
  • ④在級聯系統中,主片的三條級聯線相當于從片的片選信號,從片的INT是主片的中斷請求輸入信號。
  • ⑤ 主片和從片需要分別進行初始化操作,可設定為不同的工作方式。

級聯方式由ICW1的SNGL=0確定。

上述的各種工作方式中,全嵌套方式、自動中斷結束方式、中斷請求觸發方式、緩沖器方式、特殊的全嵌套方式、級聯方式 等是由初始化命令字ICW來設定的 ,

而循環優先級方式、特定屏蔽方式、查詢方式、命令中斷結束方式、讀8259A狀態等是由 操作命令字OCW來設定的 。

4 8259A的編程

8259A是一個可編程器件。為了使8259A實現預定的中斷管理功能,并按預定的方式工作,就必須對它進行初始化編程。所謂初始化編程是指系統在上電或復位后對可編程器件進行控制字設定的一段程序。8259A的命令控制字包括兩個部分,即初始化命令字和操作命令字。

初始化命令字一般在系統復位后的初始化編程中設置,用于確定8259A的基本工作方式,設置以后一般保持不變。操作命令是在初始化以后的正常工作中寫入的,它實現對8259A的狀態、中斷方式和過程的動態控制,在工作中可隨時寫入操作命令字以修改某些控制方式。

8259A內部有7個寄存器,分為兩組:初始化命令寄存器組和操作命令寄存器組。初始化命令寄存器組包括4個寄存器:ICW1~ICW4對應的寄存器。操作命令寄存器組包括3個寄存器:OCW1~OCW3對應的寄存器。

由于8259A只有一條地址線A0,所以它只能有兩個端口地址;而8259A有7個命令字,每個命令字要寫入相應的寄存器。為此,采取以下幾點措施:第一,以端口地址區分;第二,把命令字中的某些位作為特征碼來區分;第三,以命令字的寫入順序來區分。

在PC/XT中,8259A的兩個端口地址分別為20H和21H。下面具體討論8259A的命令字。

1.初始化命令字

初始化命令字有4個:ICW1~ICW4。8259A在進入正常工作之前,必須將系統中的每一個8259A進行初始化設置,以此建立8259A的基本工作條件。

寫入的初始化命令字一般為2~4個(在某些條件下,4個初始化命令字并非必須全部寫入),最多為4個,然而,ICW1使用偶地址,而ICW2、ICW3、ICW4 都使用奇地址。為了相互區別,初始化命令字的寫入必須有一個固定的順序,其順序如圖14所示。

image.png
8259A的ICW寫入順序

系統上電或復位以后,對8259A第一件要做的工作就是按圖7-14的順序寫入初始化命令字。

初始化命令字格式如圖7-15所示。初始化命令字ICW1的主要功能是:確定級聯方式,觸發方式。寫入ICW1后,8259A內部自動復位,其復位功能為:

  • ① 初始化命令字順序邏輯重新置位,準備接收ICW2~ICW4。
  • ② 清除IMR和ISR。
  • ③ IRR狀態可讀。
  • ④ 優先級排隊,IR0最高,IR7最低。
  • ⑤ 特殊屏蔽方式復位。
  • ⑥ 設定中斷請求信號由低變高的邊沿觸發有效。
  • ⑦ 自動EOI循環方式復位。

初始化命令字ICW2的主要功能是:

  • 確定中斷向量,
  • 中斷類型碼。

初始化命令字ICW3的主要功能是:確定主片/從片的級聯狀態,即確定主片的連接位和從片的編碼。

初始化命令字ICW4的主要功能是:選擇CPU系統,確定中斷結束方式,規定是主片還是從片,選擇是否采用緩沖方式。

初始化命令字一定要在系統復位后首先寫入8259A,寫入時要嚴格按照圖15的順序,不允許顛倒。

image.png

寫完初始化命令字后,8259A已經建立了基本的工作環境,可以接受中斷請求,也可以寫入操作命令字OCW來改變某些中斷管理方式。

操作命令字可以隨時寫入、修改,但初始化命令字一經寫入一般不再改動。

如果在寫入初始化命令字后不寫入操作命令字,則8259A便處于全嵌套工作方式,即中斷優先級為IR0最高,IR7最低,禁止同級及低級中斷,高級中斷可嵌套處理。

2.操作命令字

在初始化命令字寫入8259A之后,8259A就準備接收中斷請求輸入信號了。

在8259A工作期間,CPU可以隨時通過操作命令字使8259A完成各種不同的工作方式。8259A有三種操作命令字:OCW1、OCW

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 緩沖器
    +關注

    關注

    6

    文章

    1773

    瀏覽量

    45009
  • 比較器
    +關注

    關注

    14

    文章

    1547

    瀏覽量

    106605
  • 8259A
    +關注

    關注

    0

    文章

    6

    瀏覽量

    8252
  • 中斷控制器
    +關注

    關注

    0

    文章

    59

    瀏覽量

    9390
  • NMOS管
    +關注

    關注

    2

    文章

    115

    瀏覽量

    5289
收藏 人收藏

    評論

    相關推薦

    干貨!從硬件看中斷之APIC

    前面我們學習了8259A,但8259A 只適合單 CPU 的情況,為了充分挖掘 SMP 體系結構的并行性,能夠把中斷傳遞給系統中的每個 CPU 至關重要。
    的頭像 發表于 08-08 17:28 ?3859次閱讀
    干貨!從<b class='flag-5'>硬件</b><b class='flag-5'>看中斷</b>之APIC

    基于CAN總線的電力抄表系統設計

    基于CAN總線的電力抄表系統設計介紹了一種基于CAN總線的電力抄表方案,設計了系統的軟硬件,并詳細地闡述了其工作原理。該系統利用AT89C52微處理器與多片8259A中斷控制器配合,實
    發表于 12-15 14:46

    proteus7.8中8259仿真問題

    建立8259A仿真實例,根據論壇幫助,添加了文字DLL,但現在中斷沒有響應,軟件中斷可以響應,硬件中斷就是不響應。附件有我的例子,希望高手幫
    發表于 10-25 21:13

    求答

    8086CPU系統中,采用8259A進行中斷管理。設8259A工作在全嵌套方式,發送EIO命令結束
    發表于 08-26 14:25

    求助?。?!protues的8259仿真問題

    ,DATAMOV DS,AX;8259A初始化MOV DX,IOY1+00HMOV AL,13H;初始化8259A的ICW1OUT DX,ALMOV DX,IOY1+02HMOVAL,08H;送中斷
    發表于 05-30 21:48

    請教大家8259中斷的問題,就是多個中斷的時候為什么8259不響應?8086+8259 有附上文件

    本帖最后由 a123a567l 于 2015-11-14 14:56 編輯 我是個初學者我用EMU8086編了個程序 就是用8259做的
    發表于 11-14 13:29

    中斷系統擴展設計

    為PC/AT系統(ISA總線)設計中斷擴展卡,用8259A芯片將可屏蔽中斷擴展至22個,擴展的825
    發表于 01-13 16:35

    8251A編程字的相關資料分享

    、8259A編程字(1)ICW1:設置請求的觸發方式和芯片數目(2)ICW2:設置中斷類型號(3)ICW3:用于8259A的級聯方式...
    發表于 12-22 07:51

    8259A在51單片機中的應用

    8259A在MCS一51中的應用進行了分析,給出了電路和相應的程序,并對應用中容易遇到的問題給出了解決方案。
    發表于 11-07 15:20 ?57次下載

    8259引腳圖引腳功能

    8259引腳圖引腳功能 8259一種中斷控制芯片,在單片機系統中一般用來擴展單片機的中斷,p
    發表于 01-11 00:04 ?7898次閱讀
    <b class='flag-5'>8259</b>引腳圖引腳功能

    8086上8259應用案例

    8259A的IR2端(INT2端)輸入一個中斷請求信號(由開關提供),74LS273接8個指示燈,要求第一次中斷LED0亮,第二次中斷LED1亮,以此重復,直到10次計數到為止。
    發表于 12-31 14:36 ?64次下載

    8259a的5種工作方式詳細介紹

    8259A是專門為了對8085A和8086/8088進行中斷控制而設計的芯片.本文主要介紹了8259A主要功能及8259a的5種工作方式。
    的頭像 發表于 05-23 14:12 ?2.1w次閱讀
    <b class='flag-5'>8259a</b>的5種工作方式詳細介紹

    8259a初始化的步驟及代碼介紹

    本文首先介紹了8259a工作初始化的步驟及程序,其次介紹了通過OCW對8259A進行操作方法,最后介紹了8259A初始化編程。
    的頭像 發表于 05-23 14:24 ?2.9w次閱讀
    <b class='flag-5'>8259a</b>初始化的步驟及代碼介紹

    8259引腳和工作原理介紹

    本文首先介紹了8259A主要功能及內部結構,其次介紹了8259A引腳圖及工作原理和工作方式,最后介紹了8259A的應用實例。
    發表于 05-28 08:34 ?1.8w次閱讀
    <b class='flag-5'>8259</b>引腳和工作原理介紹

    8259A中斷控制芯片的引腳圖和主要功能的資料概述

      8259A一種中斷控制芯片,在單片機系統中一般用來擴展單片機的中斷,pc機中也有這個芯片,
    的頭像 發表于 09-08 11:43 ?1.3w次閱讀
    <b class='flag-5'>8259A</b><b class='flag-5'>中斷</b>控制<b class='flag-5'>芯片</b>的引腳圖和主要功能的資料概述
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>