8259 工作原理概述


8259 從多箇中斷裝置的 IR0 到 IR7 引腳接收中斷請求。之後,它識別這些已啟用的輸入中優先順序最高的中斷請求。為了將 8259 配置為固定優先順序工作模式,其中 IR0 優先順序最高,IR7 優先順序最低。如果輸入 IR2、IR4 和 IR6 處於啟用狀態,則 IR2 具有比其他啟用請求更高的優先順序中斷請求。有關啟用的中斷請求的詳細資訊儲存在中斷請求暫存器 (IRR) 中。

透過載入中斷遮蔽暫存器 (IMR),可以遮蔽中斷請求。如果中斷請求 IR2 和 IR3 被遮蔽,則 IR4 將在未遮蔽的啟用請求中獲得最高優先順序中斷請求。處理器可能正在處理 IR5 中斷請求。有關當前正在處理的中斷請求的所有資訊都儲存在服務中暫存器(簡稱 ISR)中。

8259 中存在一個優先順序解析單元,它接收來自 IRR、ISR 和 IMR 的輸入請求,並識別優先順序最高的中斷請求。由於 IR4 的優先順序遠高於當前正在處理的 IR5,因此輸出的 INT(中斷請求)被啟用。同時,ISR 的第 4 位由 8259 設定為 1。8259 的 INT 輸出連線到 8085 的 INTR 輸入,如下圖所示。8259 的 INT 輸出不應連線到 8085 的任何其他中斷引腳。

因此,優先順序解析器僅在滿足以下條件時才會決定啟用 INT 輸出,否則不會啟用。

  • IR 輸入被啟用

  • 當 IR 輸入未被遮蔽時

  • 當處理器當前沒有處理具有更高優先順序的中斷請求時。


圖 - 8259 與 8085 處理器介面

8085 執行啟用 INTR 輸入的指令期間。然後,假設 8085 中斷系統已啟用且 8085 的更高優先順序中斷未啟用,則 8085 連續三次發出 INTA* 輸出。響應 INTA* 的啟用,8259 透過 D7-0 引腳向 8085 傳送 3 位元組的 CALL 指令。第一次啟用 INTA* 時,8259 將 CALL 的程式碼 (5CDH) 傳送到 8085 的 D7-0 引腳上。它在 8085 的 IR 暫存器中接收。第二次啟用 INTA* 時,8259 將中斷向量 (IV) 地址的低位位元組傳送到 8085 的 D7-0 引腳上。它在 8085 的 Z 暫存器中接收。第三次啟用 INTA* 時,8259 將 IV 地址的高位位元組傳送到 8085 的 D7-0 引腳上。它在 8085 的 W 暫存器中接收。8259 向 8085 提供的 IV 地址取決於正在處理的 8259 的 IR 輸入。這導致分支到相應的 ISS。完成 ISS 後,控制權返回到主程式。

需要注意的重要一點是,處理器不需要識別 INTR 引腳上中斷的來源。8259 具有從 IR0 到 IR7 中識別中斷來源的機制。它相應地向 8085 傳送帶有相應 ISS 地址的 CALL 指令。因此,消除了輪詢問題,從而縮短了中斷響應時間。其次,可以將 8259 配置為以“旋轉優先順序模式”工作。然後,固定優先順序的缺點也得到了解決。

透過在系統中使用單個 8259,八個中斷裝置可以在 8085 的 INTR 輸入上中斷。當許多裝置需要執行中斷驅動的數傳方案時,使用多個 8259。


圖 - 使用多個 8259。

更新於: 2020-06-29

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.