概念
多個外部
中斷源共享中斷資源,必須解決相應的一些問題,例如CPU晶片上只有一個INTR輸入端,多箇中斷源如何與INTR連線、中斷矢量如何區別、各中斷源的優先權如何判定等。可程式中斷控制器8259A就是為此目的而設計的,它可以接收多個外部中斷源的中斷請求,並進行優先權判斷,選中當前優先權最高的中斷請求,並將此請求送到CPU的INTR端。當CPU回響中斷並進入中斷服務程式的處理過程後,中斷控制器仍負責對外部中斷請求的管理。例如當某個外部中斷請求的優先權高於當前正在處理的中斷的優先權時,中斷控制器會讓它通過送到CPU的INTR端,從而實現中斷嵌套。反之,對其他級別較低的中斷則予以禁止。
可程式中斷控制器8259A可用於管理8級優先權中斷,將9片8259A級聯可構成最多可達64級優先權的中斷管理系統。8259A具有多種工作方式,自動提供中斷服務程式入口地址。
外部引腳和內部結構
8259A的外部引腳信號
8259A採用NMOS工藝製造,使用單一5V電源,是具有28個引腳的雙列直插式晶片,其外部引腳除電源和地以外其他各引腳信號的功能如下:
:雙向數據線,三態,直接與系統數據匯流排相連,實現與CPU的數據交換。在較大系統中,一般通過匯流排驅動器與系統數據匯流排相連。
:外部中斷請求信號輸入端,中斷請求信號可以是電平觸發方式也可以是邊沿觸發,具體由編程決定。8級中斷請求信號輸入引腳,當有多片8259A形成級連時,從片的INT與主片相連。
在8088系統中,數據匯流排為8位,8259A的數據也是8位,所以將地址匯流排的
直接連到8259A的
便可分配給8259A一個奇地址和一個偶地址,從而滿足8259A編程時對連線埠地址的要求。
8259A的內部結構
8259A的內部結構由以下幾部分組成:
(1)數據匯流排緩衝器。是一個8位雙向三態緩衝器,通常與數據匯流排的低8位相連,是8259A與CPU間交換數據的接口,交換的數據有8259A向CPU輸入的數據、狀態信息及CPU向8259A傳送的數據、命令、控制字,都要經過數據匯流排緩衝器。
(2)讀/寫控制電路。用來接收CPU傳送的讀寫命令、片選信號以及連線埠選擇信號,實現CPU對8259A的讀/寫操作。當CPU執行OUT指令時,信號有效。
(3)級聯緩衝器/比較器。一片8259A只能接收8級中斷輸入,超過8級時,可以多片級聯構成主從關係的中斷系統。
(4)中斷請求暫存器IRR。中斷請求暫存器IRR用來存放外部輸入的中斷請求信號。
(5)中斷禁止暫存器IMR。IMR是一個8位暫存器,用來存放對各級中斷請求的禁止信息。
(6)中斷伺服器暫存器ISR。ISR是8位暫存器,與8級中斷相對應,用來記錄正在處理的中斷請求。
(7)優先權盤判別器PR。用來管理和識別各中斷請求信號的優先權別。
(8)控制電路。是8259A的內部控制器,控制8259A晶片的內部工作過程。