各組成部分的功能如下:
§(1)中斷請求暫存儲器(IRR)8位。它暫存外部設備提出的中斷請求。
§(2)優先權裁決器。對IRR中有請求的中斷源以及正在服務的中斷源進行判別,以裁決出當前優先權最高的中斷請求。
§(3)中斷在服務暫存器(ISR)8位。與IRR的各位相對應,記錄了當前正在中斷處理的中斷請求。
§(4)中斷禁止暫存器(IMR)。IMR為8位,對應位置1,即可禁止IRR中相應位的中斷請求。
§(5)匯流排緩衝器。與系統的數據匯流排連線,是8位雙向三態緩衝器。對8259A寫入命令字,以及讀取狀態信息都是通過該緩衝器傳送的。
§(6)讀/寫控制邏輯。該邏輯電路接收連線埠地址信號和CPU的讀寫控制信號IOW和IOR產生相應的控制信號,控制命令字的寫入和狀態字的讀取。
§(7)級聯緩衝器和比較器。用來存放和比較系統中從片8259A的標識碼。
§(8)控制邏輯。控制邏輯中有一組暫存器,用來暫存8259A的命令字,實現對多種工作方式的控制。同時還包括有中斷請求和回響的電路,在有中斷請求時向CPU發出中斷請求,同時接收CPU回響中斷時發出的中斷回響信號。
§2.8259A的外部引腳信號
§8259A為28腳雙列直插封裝。
D7~D0雙向數據線。
§RD:輸入,讀命令信號。與控制匯流排相連。
§WR:輸入,寫命令信號。與控制匯流排相連。
§CS:輸入,片選信號。與地址解碼電路相連。
§A0:輸入,地址線。8259A占用相鄰兩個連線埠
§地址,A0與CS配合,A0=1時選中奇地址,
§A0=0時選中偶地址,而且要求偶地址
§低,奇地址高。PC機中主片為20H和21H。
§CAS2~CAS0:級聯線。在主從結構中,主、
§從片8259A的CAS2一CAS0。對應連線。
§SP/EN:雙向信號線。有兩個功能,作為輸入時,主片8259A的此信號線接高電平,從片8259A的此信號線接低電平。做輸出時,如果8259A採用緩衝方式工作,則SP/EN信號作為數據線驅動器的使能信號。§INT:中斷請求信號。輸出,與CPU的intr引腳連線,向CPU發出中斷請求。§INTA:中斷回響信號。輸入,與CPU的中斷回響輸出相連。
§5.2.28259A的工作方式
§1.優先權方式選擇
§(1)全嵌套方式。亦稱固定優先權方式。在8箇中斷請求IR0~IR7中,IR0為最高級,依次為IR1,IR2,…,IR7為最低。在中斷服務過程中禁止同級和優先權低於本級的中斷請求。
§(2)特殊全嵌套方式。它與全嵌套方式基本相同,只是在特殊全嵌套方式下,當某級正在處理中斷時,同時可以回響本級的中斷請求,實現對同級中斷的嵌套。
§(3)優先權自動循環方式。初始化時,優先權次序為IR0、IR7,IR0最高。IR7最低。當某級中斷回響後,則優先權降為最低。例如,IR4回響後的優先權次序變為IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR4。
§(4)優先權特殊循環方式。開始時由編程指定最低優先權的中斷請求,其他同優先權自動循環方式。例如,初始化時指定IR6為最低優先權,則優先權次序為:IR7,IR0…….IR6。
優先權自動循環方式有利於平衡各箇中斷源的回響幾率:對於幾個中斷源地位幾乎相等的情況,默認的優先權總是使得排在前面的中斷源得到回響的幾率較大。但是在自動循環方式中,先回響的中斷源變為最低,則提升了後面的優先權,從而平衡了各箇中斷源的回響幾率。§2.禁止中斷方式選擇
§(1)普通禁止方式。將操作命令字OCW1寫入到片內禁止暫存器IMR中,例如IMR=00001100,則IR2,IR3的中斷請求被禁止。
§(2)特殊禁止方式。在本分式下,當某箇中斷正在被回響時,允許較低級別的中斷源的中斷請求。暫時中斷正在執行的中斷服務程式。
§3.中斷處理結束方式選擇
§當中斷存服務暫存器ISR中某位ISRn為1時,表示相應的中斷請求IRN正在服務中;中斷服務結束時,則應將ISRn清0。
§(1)白動中斷結束方式。8259A在收到CPU的中斷回響後,自動將ISR中的正在處理的ISRn位清0。僅適用單片8259A和中斷無嵌套的情況。
§(2)一般的中斷結束方式。在中斷服務程式返回前,執行一條一般中斷結束命令,將ISR中當前最高的置1位清0。適用全嵌嘗方式。
§(3)特殊中斷結束方式。在中斷結束前,向8259A發出一條特殊中斷結束命令;根據命令字的編碼。將ISR中的指定位清0,以結束中斷。
§4.中斷請求信號觸發方式選擇
§(1)邊沿觸發方式:正跳變信號,表示有中斷請求。出現正跳變信號後,允許高電平保持。
§(2)電平觸發方式:高電平信號表示有中斷請求。該請求電平必須在中斷服務程式中的中斷結束命令執行前予以撤消。
§5.2.38259A的命令字
§命令字包括初始化命令字和操作命令字兩部分。要按規定寫入到8259A的兩個連線埠(1個為偶地址,一個為奇地址)中暫存。
§1.初始化命令字
§初始化命令字共有ICW1~ICW4四個。
§(1)ICW1的格式和定義。
§ICW1必須寫到8259A的偶地址連線埠。
§LTIM:1中斷請求電平觸發、0中斷請求邊沿觸發
§SNGL:1單片、0多片(為了擴大中斷源的數目8259A可以多片級連。)
§(2)ICW2的格式和定義。
§ICW2用來設定中斷類型碼,必須寫到8259A的奇地址連線埠。ICW2用來指定8259A的8箇中斷請求IR0—IR7的中斷類型碼。
§其中T7—T3由程式寫入,最低3位根據正在回響的中斷請求IRn的n值自動填入。
§例如:ICW2為40H,則所對應的中斷類型碼為40H,41H,42H,43H,44H,45H,46H,47H。
§(3)ICW3的格式和定義。
§8259A作為主片和從片的ICW3格式和含義是不同的,ICW3必須寫到8259A的奇地址連線埠。
§8259A作為主片的格式:
主片的IR0~IR7的某個引腳上連線從片8259A,則該位為l,反之為0。
8259A作為從片的格式:
§ID2、ID1、ID0的值取決於本從片的INT輸出端連到主片哪個IR輸入端。如連到IR7,則ID2,ID1,ID0=111。
§從片的CAS7~CAS0接收到主片8259A發來的編碼,將該碼與從片本身的ICW3中的ID2~ID0比較,若相等,則在中斷回響過程中將自己的中斷類型碼傳送到CPU。
(4)ICW4的格式和定義:ICW4必須寫入到8259A的奇地址連線埠
SFNM=:1特殊全嵌套方式,0非特殊全嵌套方式
BUF,M/S=:0X非緩衝方式,10從片緩衝方式,11主片緩衝方式
§
AEOI=:1中斷自動結束方式,0一般中斷結束方式式
µPM=:18088/8086系統,08080/8085系統
§對初始化命令字編程時應注意到:
§(1)初始化命令字必須按規定的奇、偶地址連線埠寫入。
§(2)ICW1~ICW4寫入的順序是固定的,不可顛倒。
§(3)ICW1、ICW2是必須設定的,但ICW3、ICW4根據工作方式的需要設定。
§2.8259A的操作命令字
§8259共有3個操作命令字OCW1—OCW3。
§(1)OCW1的格式和定義。這是一個中斷禁止命令字,OCW1必須寫入到8259A的奇地址連線埠。
§
§OCW1的格式如下:
OCW1中某位為l時,其對應的中斷請求IRn被禁止,對應於各位為0的中斷請求被允許參與優先權的裁決。
§(2)OCW2的格式和定義。OCW2必須寫入到8259A的偶地址連線埠。
§OCW2的格式如下:
R=:1中斷優先權循環,0中斷優先權非循環
SL=:1L2~L0有效,0L2~L0無效
EOI=:1非自動結束中斷,0自動結束中斷
§(3)OCW3的格式和定義。OCW3的功能是設定或撤消特殊禁止方式,設定中斷查詢方式以及設定對8259A內部暫存器讀出的命令。
OCW3必須寫入到8259A的偶地址連線埠。
§OCW3的格式如下:
ESMMSMM方式RRRIS P
11進入特殊禁止方式10在下條指令讀取IRR1查詢命令
10恢復到一般禁止方式11在下條指令讀取ISR0不查詢命令
§OCW3中的P位稱為查詢方式位,P=1時,使8259A設定為中斷查詢工作方式。當發出查詢命令後,下一條輸入指令,CPU就可讀取8259A中ISR暫存器的值。OCW3的PR=l,RIS=0時,則OCW3發出後的下一條輸入指令就可讀取IRR暫存器的值。當RR=1,RIS=1時,則下一條輸人指令就可讀取ISR暫存器的值。
§OCW1~OCW3是在應用程式中設定的,寫的次序沒有嚴格規定