第五章 中斷與中斷應用

52
著著著著著 著著著著著 © 2004 © 2004 著著著 著著著 著著著 著著著 著著著 著著著 1 第第第 第第第第第第第 Interrupt and Interrupt Applications

Upload: lilka

Post on 13-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

第五章 中斷與中斷應用. Interrupt and Interrupt Applications. 內容大綱. 緒論 中斷與中斷處理 80x86 之中斷 、中斷指令 、中斷旗標位元 硬體中斷 8259A 可程式中斷控制器 8259A 簡介 8259A 之接線 單一 8259A 之接線 、多顆 8259A 之串接電路. 內容大綱 ( 續 ). 8259A 格式設定與作業程式 初始命令字組 (ICWs) 、操作命令字組 (OCWs) 8259A 設定 單一 8259A 設定 、多顆 8259A 串接設定. 緒論. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊11

第五章 中斷與中斷應用 Interrupt and Interrupt Applications

Page 2: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊22

內容大綱 緒論緒論 中斷與中斷處理 中斷與中斷處理 80x8680x86 之中斷 、中斷指令 、中斷旗標位元 之中斷 、中斷指令 、中斷旗標位元 硬體中斷 硬體中斷 8259A8259A 可程式中斷控制器 可程式中斷控制器 8259A8259A 簡介簡介 8259A8259A 之接線之接線

單一單一 8259A8259A 之接線 、多顆之接線 、多顆 8259A8259A 之串接電路之串接電路

Page 3: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊33

內容大綱 (續 )

8259A8259A 格式設定與作業程式格式設定與作業程式 初始命令字組初始命令字組 (ICWs)(ICWs) 、操作命令字組、操作命令字組 (OCWs)(OCWs)

8259A8259A 設定設定 單一單一 8259A8259A 設定 、多顆設定 、多顆 8259A8259A 串接設定串接設定

Page 4: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊44

緒論

本章之主要目的乃是介紹本章之主要目的乃是介紹 80x8680x86 微處理器之中斷型態微處理器之中斷型態 (i(i

nterrupt types)nterrupt types) ,說明微電腦對中斷請求之反應,讓讀,說明微電腦對中斷請求之反應,讓讀

者熟悉如何表示中斷副程式以及中斷指令之應用。者熟悉如何表示中斷副程式以及中斷指令之應用。

Page 5: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊55

內容大綱 (我們在哪裡 ?)

緒論緒論 中斷與中斷處理 中斷與中斷處理 80x8680x86 之中斷 、中斷指令 、中斷旗標位元 之中斷 、中斷指令 、中斷旗標位元 硬體中斷 硬體中斷 8259A8259A 可程式中斷控制器 可程式中斷控制器 8259A8259A 簡介簡介 8259A8259A 之接線之接線

單一單一 8259A8259A 之接線 、多顆之接線 、多顆 8259A8259A 之串接電路之串接電路

Page 6: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊66

中斷與中斷處理 80x86之中斷

◇ ◇ 硬體中斷硬體中斷 : :當一個外來之訊號作用於“不可遮蓋中斷” 當一個外來之訊號作用於“不可遮蓋中斷” ((NMI) NMI)

輸入接腳或“中斷”輸入接腳或“中斷” (INTR)(INTR) 輸入接腳時輸入接腳時 , , CPUCPU 不論不論 正在執行任何程式,皆會暫時中斷先執行中斷服正在執行任何程式,皆會暫時中斷先執行中斷服 務程式。務程式。

與硬體中斷相關之接腳除與硬體中斷相關之接腳除 INTRINTR 與與 NMINMI 二請求接腳二請求接腳 外,尚包含用以確認外,尚包含用以確認 INTRINTR 中斷請求之 中斷請求之

接腳。接腳。

TANI

Page 7: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊77

中斷與中斷處理 (續 )

80x86 之中斷

◇ ◇ 軟體中斷軟體中斷 : :藉由執行藉由執行 INTINT 、、 INTOINTO 、、 INT3INT3 與與 BOUNBOUNDD 等等

指令來進行。指令來進行。

◇ ◇ 程式執行錯誤,程式執行錯誤, CPUCPU 自動執行中斷動作。自動執行中斷動作。

Page 8: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊88

中斷與中斷處理 (續 )

80x86 之中斷

80x86 中斷處理流程

Page 9: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊99

中斷與中斷處理(續 )

80x86 之中斷中斷向量表 :

用以儲存中斷服務程式存放位

置,當中斷訊號發生時,使

CPU 可精確跳至該中斷訊號所

指定之中斷服務程式去執行工作。

Page 10: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1010

中斷與中斷處理 (續 )

軟體中斷指令: BOUND 、 INTO 、 INT 、 INT 3 、 IRET

BOUND :用以比較某暫存器與二個字元之資料。

BOUND AX, DATA ;比較 AX 與 DATA 及 DATD+1 之內容,

;並比較 AX 與 DATA+2 及 DATA+3 之內容

若 AX < [DATA 與 DATA+1] 或 AX > [DATA+2 與 DATA+3] ,

則產生第五型之中斷動作。

Page 11: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1111

中斷與中斷處理 (續 ) 軟體中斷指令: INTO :檢查溢位旗標 (OF) ,若 OF=1 則呼叫存於第四型中斷向

量內之位址所對應之中斷服務程式,若 OF=0 ,則繼續

執行一個指令。

INTn :呼叫儲存於第 n 個中斷向量內之位址所對應之中斷服務

程式,例如 INT 128 乃是呼叫儲存於第 128 個中斷向量內

之位址之對應中斷程式 。

IRET :將 CPU 中斷服務程式拉回至原執行程式之指令。

Page 12: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1212

中斷與中斷處理 (續 )

中斷旗標位元中斷旗標位元旗標暫存器

中斷旗標 IF 以及 trap 旗標 TF 之內容在旗標暫存器之資料被送至堆疊後即被清除 。

IF = 1 : INTR 接腳即可用來請求中斷,反之則 INTR 接腳之中斷

請求功能暫時失效。

TF = 1 :則在每一指令執行完畢後會產生 trap 中斷 ( 第一型 ) ,若

TF = 0 則進行正常之程式執行動作。

Page 13: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1313

中斷與中斷處理 (續 ) 中斷旗標位元中斷旗標位元

TF 設定中斷服務副程式 (TRON)

PUSH AX ;保存暫存器

PUSH BP

MOV BP, SP ;取得 stack pointer之資料

MOV AX, [BP+8] ;TF為第 9位元(圖 5-3)

OR AH,1 ;設定 TF=1

MOV [BP+8], AX;

POP BX

POP AX

IRET

Page 14: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1414

中斷與中斷處理 (續 )

中斷旗標位元中斷旗標位元

清除 TF 中斷服務副程式

PUSH AX

PUSH BP

MOV BP, SP

MOV AX, [SP+8]

AND AH, OFEH ;清除 TF

MOV [BP+8], AX

POP BP

POP AX

IRET

Page 15: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1515

中斷與中斷處理 (續 )

中斷旗標位元中斷旗標位元

以〝 TRON 〞指定第 51H 個中斷向量 ( 可以 INT 81呼叫 )

MOV AX, 0600H

MOV ES, AX

MOV WORD PTR ES : 00051H, OFFSET TRON

MOV WORD PTR ES : 00053H, SEG TRON

Page 16: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1616

內容大綱 (我們在哪裡 ?)

緒論緒論 中斷與中斷處理 中斷與中斷處理 80x8680x86 之中斷 、中斷指令 、中斷旗標位元之中斷 、中斷指令 、中斷旗標位元 硬體中斷硬體中斷 8259A8259A 可程式中斷控制器 可程式中斷控制器 8259A8259A 簡介簡介 8259A8259A 之接線之接線

單一單一 8259A8259A 之接線 、多顆之接線 、多顆 8259A8259A 之串接電路之串接電路

Page 17: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1717

硬體中斷 80X8680X86 有有 NMINMI 與與 INTRINTR 兩個硬體中斷輸入接腳,當兩個硬體中斷輸入接腳,當 NMINMI 致致

能時能時 CPUCPU 會執行第二型中斷動作。會執行第二型中斷動作。 INTRINTR 接腳需以外部解碼電路來選擇中斷向量,實際應用上接腳需以外部解碼電路來選擇中斷向量,實際應用上

應用於第應用於第 20H20H 至至 FFH(32~255)FFH(32~255) 型之中斷向量 。型之中斷向量 。 接腳亦是一與中斷相關之接腳,用於回應接腳亦是一與中斷相關之接腳,用於回應 INTRINTR

接腳之中斷請求。 接腳之中斷請求。 INTA

80286 之中斷接腳

Page 18: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1818

硬體中斷 (續 )

NMINMI

正邊緣觸發正邊緣觸發 (0(0 至至 1)1) 中斷請求接腳,當訊號由中斷請求接腳,當訊號由 00 變成變成11 時,時, NMINMI 需保持高準位直到其請求被需保持高準位直到其請求被 CPUCPU 認可。認可。

NMINMI 通常用於通常用於 parityparity 以及諸如電源斷路之系統錯誤。以及諸如電源斷路之系統錯誤。

電源斷路偵測電路

Page 19: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊1919

硬體中斷 (續 ) INTRINTR 與與 INTRINTR 中斷請求由外在事件來設定,然後於中斷服務程式中被中斷請求由外在事件來設定,然後於中斷服務程式中被

清除。清除。 當中斷請求被當中斷請求被 CPUCPU 接受後,接受後, INTRINTR 即失能,中斷服務程式末即失能,中斷服務程式末

端之端之 INTRINTR 指令又再使其恢復致能。指令又再使其恢復致能。 8028680286 微處理器今藉由輸出脈波訊號 以回應微處理器今藉由輸出脈波訊號 以回應 INTRINTR

中斷之請求,並由資料匯流排中斷之請求,並由資料匯流排 DD77-D-D00 讀取欲執行中斷向量碼。 讀取欲執行中斷向量碼。

INTA

INTA

Page 20: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2020

硬體中斷 (續 ) INTRINTR 與與 INTA

INTR 與 時序圖

INTA

Page 21: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2121

硬體中斷 (續 )

INTRINTR 與與INTA

中斷向量碼 FFH 輸入電路

Page 22: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2222

硬體中斷 (續 )

INTRINTR 與與INTA

可提供任意中斷向量碼之 應用電路

INTA

Page 23: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2323

緒論緒論 中斷與中斷處理 中斷與中斷處理 80x8680x86 之中斷 、中斷指令 、中斷旗標位元之中斷 、中斷指令 、中斷旗標位元 硬體中斷 硬體中斷 8259A8259A 可程式中斷控制器可程式中斷控制器 8259A8259A 簡介簡介 8259A8259A 之接線之接線

單一單一 8259A8259A 之接線 、多顆之接線 、多顆 8259A8259A 之串接電路之串接電路

內容大綱 (我們在哪裡 ?)

Page 24: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2424

8259A 可程式中斷控制器 8259A 簡介DD77-D-D0 0 (( 雙向資料匯流排雙向資料匯流排 )) ::

IRIR77-IR-IR0 0 中斷請求中斷請求 )) ::

            (( 寫入寫入 )) ::

            (( 讀取讀取 )) ::

INT(INT( 中斷中斷 )) ::

(( 中斷確認中斷確認 )) ::

AA00(( 位址線位址線 )) ::

(( 晶片選取晶片選取 )) ::

(( 被動程式被動程式 // 致能緩衝器致能緩衝器 ))

CASCAS22-CAS-CAS00(( 單接線單接線 ))

8259A 接腳示意圖

WR

RD

INTA

CS

SP/EN

Page 25: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2525

緒論緒論 中斷與中斷處理 中斷與中斷處理 80x8680x86 之中斷 、中斷指令 、中斷旗標位元之中斷 、中斷指令 、中斷旗標位元 硬體中斷 硬體中斷 8259A8259A 可程式中斷控制器 可程式中斷控制器 8259A8259A 簡介簡介 8259A8259A 之接線之接線

單一單一 8259A8259A 之接線 、多顆之接線 、多顆 8259A8259A 之串接電路之串接電路

內容大綱 (我們在哪裡 ?)

Page 26: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2626

8259A之接線 單一單一 8259A8259A 之接線之接線

單一 8259A 與 CPU 接線

Page 27: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2727

8259A之接線(續 )

單一單一 8259A8259A 之接線之接線

多顆 8259A 之串接電路

Page 28: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2828

內容大綱 (我們在哪裡 ?)

8259A8259A 格式設定與作業程式格式設定與作業程式 初始命令字組初始命令字組 (ICWs)(ICWs) 、操作命令字組、操作命令字組 (OCWs)(OCWs)

8259A8259A 設定設定 單一單一 8259A8259A 設定 、多顆設定 、多顆 8259A8259A 串接設定串接設定

Page 29: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊2929

8259A 格式設定與作業程式 初始命令字組初始命令字組 (ICWs(ICWs))

8259A8259A 之規劃需先設定之規劃需先設定 ICWICW11 ,然後,然後ICWICW22

若系統是多數串接的型態,則若系統是多數串接的型態,則需分別設定主動與被動需分別設定主動與被動 8259A8259A 之之 ICICWW33 ,若無串接則不需設定,若無串接則不需設定 ICWICW33

ICWICW44 是否需要設定則由是否需要設定則由 ICWICW11 之之 DD00

位元位元 (IC(IC44)) 之值來決定,若之值來決定,若 ICIC44=1=1 則則需再設定需再設定 ICWICW44

8259A 初始命令設定流程圖

Page 30: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3030

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICW(ICWs)s)

ICWICW11 ::

ICW1 格式

Page 31: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3131

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICWs)(ICWs)

ICWICW11 ::

DD00(IC(IC44)) :: ICIC44=1=1 ,表示,表示 ICWICW44 需要設定,反之則需要設定,反之則 ICIC44=0=0 ,表示不需設定,表示不需設定 ICWICW44 。。

DD11(SNGL)(SNGL) ::在在 80x8680x86 系統通常使用二顆系統通常使用二顆 8259A8259A 之串接架構之串接架構 (( 圖圖 5-11)5-11) ,故,故 DD11

=1=1 。。

DD22(ADI)(ADI) ::在在 80x8680x86 系統時設定為系統時設定為 DD22=0=0 。。

DD33(LITM)(LITM) ::此位元用以指定此位元用以指定 8259A8259A 之中斷觸發型態。之中斷觸發型態。

DD44 :: DD44=1=1 ,, DD44=1=1 且且 AA00=0=0 表示此表示此 ICWICW 為為 ICWICW11 。。

DD55 ~D ~D77 ::此三位元全部均為此三位元全部均為 00 。。

AA00 ::此接腳設定為此接腳設定為 00 ,對,對 80×8680×86 系統而言,通常系統而言,通常 =00010001B=11H=00010001B=11H 。。

Page 32: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3232

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICWs)(ICWs)

ICWICW22 ::

ICW2 格式

Page 33: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3333

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICWs)(ICWs)

ICWICW22 ::

DD22~D~D00(A(A1010~A~A88)) ::

在在 80X8680X86 系統此之位元設為系統此之位元設為 00 。。

DD77~D~D33 ( A ( A1515~A~A1111/ T/ T77~T~T33)) ::

ICWICW22 是用以決定是用以決定 8259A8259A 中斷請求之向量碼,圖中斷請求之向量碼,圖 5-25-2 之中斷向之中斷向量碼每個量碼每個 8259A8259A 可決定可決定 88 個中斷向量,故僅需將個中斷向量,故僅需將 IRQIRQ 之中之中斷向量碼寫入斷向量碼寫入 ICWICW22 即可,其餘之向量碼則依序加即可,其餘之向量碼則依序加 11 可。例可。例如,若欲使用如,若欲使用 08H-0FH08H-0FH 之中斷向量,則之中斷向量,則 ICWICW22=00001000H=00001000H ,,若欲使用若欲使用 70H-77H70H-77H 則則 ICWICW22=01110000H=01110000H 。。

Page 34: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3434

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICWs)(ICWs)

ICWICW33 ::

ICW3 格式

D7 ~D0 :

主動 8259A 之位元用以說明具中斷請求訊號 IR7 ~IR0 是否有其他串接之被動 8259A ,若 IR7 ~IR0 中之任一接腳有與被動 8259A 串接,則其值為 1 , D2 ~D0 則描述其串接於主動 8259A 之接腳位元。

例如圖 5-11 之電路,主動 8259A 之 IR2 串接至被動 8259A 。故主動元件之 ICW3=00000100B ,被動元件之 ICW3 亦是 00000100B 。

Page 35: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3535

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICWs)(ICWs)

ICWICW44 ::

ICW4 格式

Page 36: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3636

8259A 格式設定與作業程式(續 )

初始命令字組初始命令字組 (ICWs)(ICWs)

ICWICW44 ::D(μPMD(μPM ,, Microprocessor Mode)Microprocessor Mode) 對對 80×8680×86 系統,此位元設為高電位系統,此位元設為高電位 (D=1)(D=1) 。。

D(AEOID(AEOI ,, Automatic End of Interrupt)Automatic End of Interrupt) :: D=1D=1 ,則表示,則表示 8259A8259A 將自動中將自動中斷結束模式。斷結束模式。 D=0D=0 則表示則表示 8259A8259A 將用正常中斷 結束模式。將用正常中斷 結束模式。

DD22 (M/S , Master/Slave) (M/S , Master/Slave) :: 80X8680X86因採用非緩衝模式因採用非緩衝模式 (nonbuffered mode)(nonbuffered mode) ,故,故 DD22

=0=0 。。

DD33 (BUF, Buffer Mode) (BUF, Buffer Mode) :: DD33=1=1 則則 8259A8259A 作業於在緩衝模式,反之則作業於非作業於在緩衝模式,反之則作業於非緩衝模式。當緩衝模式。當 8259A8259A 作業模式為緩衝模式時,其 接腳為輸入作業模式為緩衝模式時,其 接腳為輸入接腳接腳 ( )( ) ,若,若 8259A8259A 作業於非緩衝模式,則為輸出接腳作業於非緩衝模式,則為輸出接腳 ( )( ) , , 表示表示 8259A8259A為主動元件, 則表示為主動元件, 則表示 8259A8259A為從動元件。為從動元件。

DD44 (SFNM , Special Fully Nested Mode) (SFNM , Special Fully Nested Mode) :: DD44= 1= 1 表示採用特殊全完巢狀模式,表示採用特殊全完巢狀模式,反之,則採用完全巢狀模式。反之,則採用完全巢狀模式。

DD77 ~D ~D55 ::未使用,故全設為未使用,故全設為 00 。。

SP/EN ENSP SP=1

SP=0

Page 37: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3737

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW11 ::

OCW1 格式

Page 38: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3838

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW11 ::

AA00 ::設為設為 11 。。

D D 77 ~D ~D00 (M (M77 ~ M ~ M00)) ::此此 88 個位元乃是用此設定與重置個位元乃是用此設定與重置 8259A8259A

之中斷遮蓋暫存器之中斷遮蓋暫存器 (IMR)(IMR) 之遮蓋位元之遮蓋位元 (IR(IR77~IR~IR00)) ,, MM11 控制控制 II

RR00…….……. ,, MM77 控制控制 IRIR77 ,當,當 MMii=1,i=0……7=1,i=0……7 ,則其對應之中,則其對應之中斷輸入斷輸入 IRIRii為禁能,縱然有來自為禁能,縱然有來自 IRIRii 之中斷請求,之中斷請求, CPUCPU 將不將不予處理。予處理。

Page 39: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊3939

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW22 ::

IR0~IR7 之對應碼A0 D7 D6 D5 D4 D3 D2 D1 D0

A10 A9 A8

OCW 2

R SL EOI 0 0 L2 L1 L00

IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR70 1 0 1 0 1 0 10 0 1 1 0 0 1 10 0 0 0 1 1 1 1

0 0 1

0 0 0

0 1 1

1 1 1

1 0 1

1 1 0

1 0 0

0 1 0

*

*

非特定中斷結束命令

清除自動中斷結束模式下旋轉

特定 中斷結束 命令

在特定中斷結束命令下旋轉

在非特定 中斷結束 命令下旋轉

設定優先順序命令

在自動中斷結束模式下旋轉

無動作

中斷結束

自動旋轉

特定旋轉

* 表示須與 L 2~ L 0一起規劃

Page 40: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4040

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW22 ::

DD22~D~D00(L(L

22~L~L00)) ::此三位元需與此三位元需與 DD77~D~D

55 一起使用,是用以決定中斷請求接腳之序一起使用,是用以決定中斷請求接腳之序號, 號, 8259A8259A 以非特定中斷結束操作時以非特定中斷結束操作時 (OCW(OCW

22=20H)=20H) ,此三位元無作用,若,此三位元無作用,若是吾人欲重設是吾人欲重設 ISRISR 中的某特定位元,則中的某特定位元,則 DD22~D~D

00 用以指定欲重設之用以指定欲重設之 IRIR 之序號,之序號,而而 DD77~D~D

55 需設為需設為 011011 ,例如,例如 OCWOCW22=63H=63H 即表示即表示 ISRISR 中之第中之第 33 位需被重置。位需被重置。

DD44~D~D33 :: 此二位元為 此二位元為 OCWOCW

22 之辨識碼,恆設為之辨識碼,恆設為 00 。。

DD77~D~D55(R/SL/EOI)(R/SL/EOI) ::此三位元用以設定中斷結束模式與旋轉模式,共有此三位元用以設定中斷結束模式與旋轉模式,共有 88種可種可

能組合。如能組合。如 ICWICW44 之之 DD44 字元後定說明所述,完全巢狀模式中之中斷請求優先字元後定說明所述,完全巢狀模式中之中斷請求優先

權以權以 IRIR00為最高,為最高, IRIR

77為最低,有二種方式可改變此優先順序,自動中斷模為最低,有二種方式可改變此優先順序,自動中斷模式旋轉法與特定旋轉法。式旋轉法與特定旋轉法。

Page 41: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4141

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW22 ::自動中斷模式旋轉法自動中斷模式旋轉法 自動中斷模式旋轉法之操作要點乃是將目前正在處理之中斷請求輸入之優自動中斷模式旋轉法之操作要點乃是將目前正在處理之中斷請求輸入之優

先權設成最低,接於其後之中斷請求輸入則改成最優先,若欲先權設成最低,接於其後之中斷請求輸入則改成最優先,若欲 8259A8259A 能於每個能於每個中斷請求執行完畢後,自動改變優先順序,則可選擇圖中斷請求執行完畢後,自動改變優先順序,則可選擇圖 5-185-18 中自動旋轉之二種中自動旋轉之二種方法,亦即方法,亦即 R/SE/EOI = 101R/SE/EOI = 101 或或 100100 ,而,而 R/SL/EOI = 000R/SL/EOI = 000 則是解除自動旋轉設定。則是解除自動旋轉設定。

特定中斷模式旋轉法特定中斷模式旋轉法 如圖如圖 5-185-18 所示,有二種特定旋轉模式亦可改變中斷請求之優先順序,分別所示,有二種特定旋轉模式亦可改變中斷請求之優先順序,分別

是以是以 R/SL/EOI = 111R/SL/EOI = 111 與與 110110搭配搭配 LL22~L~L00 指定中斷請求輸入序號設定,在特定旋指定中斷請求輸入序號設定,在特定旋

轉法中,由轉法中,由 LL22~L~L00 所指定之中斷請求輸入其優先權為最低,其後之中斷請求序所指定之中斷請求輸入其優先權為最低,其後之中斷請求序

號則為最高,其餘則依次遞減,例如號則為最高,其餘則依次遞減,例如 OCWOCW22== 1100001111000011 時,則時,則 IRIR33(011)(011) 之優先之優先

權為最低,權為最低, IRIR為最高,依次為為最高,依次為 IRIR55 、、 IRIR66 、、 IRIR77 、、 IRIR00 、、 IRIR11 、、 IRIR22 。 。

Page 42: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4242

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW33 ::

Page 43: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4343

8259A 格式設定與作業程式(續 )

操作命令字組操作命令字組 (OCWs)(OCWs)

OCWOCW33 ::

DD11-D-D00(RR/RIS)(RR/RIS) ::此二位元用以指定讀取此二位元用以指定讀取 IRRIRR 或或 ISRISR 暫存器之資料,暫存器之資料, RR/RIS =10RR/RIS =10 時,時,讀取讀取 IRRIRR 暫存器之資料,暫存器之資料, RR/RIS=11RR/RIS=11 時則讀取時則讀取 ISRISR 暫存器之內容,當暫存器之內容,當 RR/RIS=0xRR/RIS=0x時則無讀取動作。時則無讀取動作。

DD22(P)(P) ::此位元用以設定此位元用以設定 8259A8259A 作業於查詢作業於查詢 (pull)(pull) 或中斷模式,或中斷模式, P=1P=1 表作業於查詢模表作業於查詢模式,式, P=0P=0 則是設定則是設定 8259A8259A 作業於中斷模式,在查詢模式下,作業於中斷模式,在查詢模式下, INTINT 被禁能,亦即被禁能,亦即 ININTT 之中斷請求功能失效,通常之中斷請求功能失效,通常 P=0P=0 以確保以確保 8259A8259A 作業於中斷模式。作業於中斷模式。

DD44~D~D33 ::此二位元未使用,恆設為此二位元未使用,恆設為 DD44DD33=01=01 。。

DD66-D-D55(ESMM/SMM)(ESMM/SMM) ::此二位元用以設定或主置此二位元用以設定或主置 8259A8259A 之特殊遮蓋模式之特殊遮蓋模式 (special mas(special mas

k mode)k mode) ,當,當 ESMM/SMM = 11ESMM/SMM = 11 時,時, 8259A8259A 設定為特殊遮蓋模式,當設定為特殊遮蓋模式,當 ESMM/SMM ESMM/SMM = 10= 10 時,時, 8259A8259A 重置為正常遮蓋模式,重置為正常遮蓋模式, ESMM/SMM= 0×ESMM/SMM= 0× 則無法設定動作產生。 則無法設定動作產生。

Page 44: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4444

內容大綱 (我們在哪裡 ?)

8259A8259A 格式設定與作業程式格式設定與作業程式 初始命令字組初始命令字組 (ICWs)(ICWs) 、操作命令字組、操作命令字組 (OCWs)(OCWs)

8259A8259A 設定設定 單一單一 8259A8259A 設定 、多顆設定 、多顆 8259A8259A 串接設定串接設定

Page 45: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4545

8259A 設定 單一單一 8259A8259A 設定設定 設設 8259A8259A 之之 I/OI/O 位址為位址為 0×FFA00×FFA0 與與 0×FFA10×FFA1 ,則,則

8259A8259A 之之 ICWsICWs 與與 OCWsOCWs各暫存器之各暫存器之 I/OI/O 位址為:位址為:

字組暫存器 ICW 1 ICW 2 ICW 3 ICW 4 OCW 1 OCW 2 OCW 3

I/O位址 0×FFA0 0×FFA1 0×FFA1 0×FFA1 0×FFA1 0×FFA0 0×FFA0

Page 46: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4646

8259A 設定 (續 ) 單一單一 8259A8259A 設定設定 規劃程式如下:規劃程式如下:規劃規劃 8259A8259A 時,須先送出初始命令字時,須先送出初始命令字 (ICW1)(ICW1) ,, 8259A ICW18259A ICW1 位址:位址: 0x00FFA00x00FFA0

此處規劃內容此處規劃內容 0X130X13 :單一一顆:單一一顆 8259A8259A ,需要,需要 ICW4ICW4 ,採邊緣觸發模式,採邊緣觸發模式

outportb( 0x00FFA0, 0X13 )outportb( 0x00FFA0, 0X13 ) ;;

規劃規劃 ICW2ICW2 ,, 8259A ICW28259A ICW2 位址:位址: 0x00FFA10x00FFA1 ,此處規劃內容,此處規劃內容 0X090X09 :規劃:規劃 8259A8259A的的

IR0 IR0 為第九型為第九型

outportb( 0x00FFA1, 0X09 )outportb( 0x00FFA1, 0X09 ) ;;

規劃規劃 ICW4ICW4 ,, 8259A ICW48259A ICW4 位址:位址: 0x00FFA10x00FFA1 ,此處規劃內容,此處規劃內容 0X010X01 :非緩衝模式,:非緩衝模式,

完全巢狀模式完全巢狀模式

outportb( 0x00FFA1, 0X01 )outportb( 0x00FFA1, 0X01 ) ;;

Page 47: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4747

8259A 設定 (續 )

單一單一 8259A8259A 設定設定 規劃程式如下規劃程式如下 ((續續 )) ::規劃作業命令字規劃作業命令字 OCW1OCW1 ,, OCW1 OCW1 位址:位址: 0x00FFA10x00FFA1 ,此處規劃內容,此處規劃內容 0X0FF0X0FF ::

禁能禁能

所有中斷請求所有中斷請求

outportb( 0x00FFA1, 0XFF )outportb( 0x00FFA1, 0XFF ) ;;

Page 48: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4848

8259A 設定 (續 ) 多顆多顆 8259A8259A 串接設定串接設定 設圖設圖 5-115-11 之主動之主動 8259A8259A 之之 I/OI/O 位址與圖位址與圖 5-105-10 之之 825825

9A9A 相同,從動相同,從動 8259A8259A 之之 I/OI/O 位址為0位址為0 XFFB0XFFB0 與與 OXFFBOXFFB11 ,從動,從動 8259A8259A 內部各內部各 ICWICW

33 與與 OCWOCW33 之之 I/OI/O 位址為:位址為:

字組暫存器 ICW1 ICW2 ICW3 ICW4 OCW1 OCW2 OCW3

I/O位址 0XFFB0 0XFFB1 0XFFB1 0XFFB1 0XFFB1 0XFFB0 0XFFB0

Page 49: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊4949

8259A 設定 (續 ) 多顆多顆 8259A8259A 串接設定串接設定主動主動 8259A8259A 規劃程式如下:規劃程式如下:規劃規劃 8259A8259A 時,須先送出初始命令字時,須先送出初始命令字 (ICW1)(ICW1) ,, 8259A ICW18259A ICW1 位址:位址: 0x00FFA00x00FFA0

此處規劃內容此處規劃內容 0X110X11 :串接:串接 8259A8259A ,需要,需要 ICW4ICW4 ,採邊緣觸發模式,採邊緣觸發模式

outportb( 0x00FFA0, 0X11 )outportb( 0x00FFA0, 0X11 ) ;;

規劃規劃 ICW2ICW2 ,, 8259A ICW28259A ICW2 位址:位址: 0x00FFA10x00FFA1

此處規劃內容此處規劃內容 0X090X09 :規劃:規劃 8259A8259A 的 的 IR0 IR0 為第九型為第九型

outportb( 0x00FFA1, 0X08 )outportb( 0x00FFA1, 0X08 ) ;;規劃規劃 ICW4ICW4 ,, 8259A ICW38259A ICW3 位址:位址: 0x00FFA10x00FFA1

此處規劃內容此處規劃內容 0X040X04 :: 8259A 8259A 的 的 IR2 IR2 串接 串接 8259A8259A

outportb( 0x00FFA1, 0X04 )outportb( 0x00FFA1, 0X04 ) ;;

  

Page 50: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊5050

8259A 設定 (續 ) 多顆多顆 8259A8259A 串接設定串接設定

主動主動 8259A8259A 規劃程式如下規劃程式如下 (( 續續 )) ::規劃規劃 ICW4ICW4 ,, 8259A ICW48259A ICW4 位址:位址: 0x00FFA10x00FFA1

此處規劃內容此處規劃內容 0X010X01 :非緩衝模式:非緩衝模式

outportb( 0x00FFA1, 0x01 )outportb( 0x00FFA1, 0x01 ) ;;

程式中之程式中之 ICWICW33 主要是將主動元件與從動元件連結之主要是將主動元件與從動元件連結之 IRIR 接接腳明確定義,以致當有來自該腳明確定義,以致當有來自該 IRIR 接腳中斷請求時,主動元件接腳中斷請求時,主動元件透過透過 CASCAS22 ~CAS ~CAS00 接腳將識別碼正確傳至相對應之從動元件。接腳將識別碼正確傳至相對應之從動元件。

  

Page 51: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊5151

8259A 設定 (續 ) 多顆多顆 8259A8259A 串接設定串接設定從動從動 8259A8259A 規劃程式如下:規劃程式如下:規劃規劃 8259A8259A 時,須先送出初始命令字時,須先送出初始命令字 (ICW1)(ICW1) ,, 8259A ICW18259A ICW1 位址:位址: 0x00FFB00x00FFB0

此處規劃內容此處規劃內容 0x110x11 :串接:串接 8259A8259A ,需要,需要 ICW4ICW4 ,採邊緣觸發模式,採邊緣觸發模式

outportb( 0x00FFB0, 0x11 )outportb( 0x00FFB0, 0x11 ) ;;

規劃規劃 ICW2ICW2 ,, 8259A ICW28259A ICW2 位址:位址: 0x00FFB10x00FFB1

此處規劃內容此處規劃內容 0X300X30 :規劃:規劃 8259A8259A 的 的 IR0 IR0 為第為第 4848 型型

outportb( 0x00FFB1, 0x30 )outportb( 0x00FFB1, 0x30 ) ;;

規劃規劃 ICW4ICW4 ,, 8259A ICW38259A ICW3 位址:位址: 0x00FFB10x00FFB1

此處規劃內容此處規劃內容 0x020x02 :規劃從:規劃從 8259A 8259A 接至主 接至主 8259A 8259A 的 的 IR2 IR2 識別碼識別碼

outportb( 0x00FFB1, 0x02 )outportb( 0x00FFB1, 0x02 ) ;;

  

Page 52: 第五章  中斷與中斷應用

著作權所有 著作權所有 © 2004© 2004 王國禎、楊烽正王國禎、楊烽正、余文俊、余文俊5252

8259A 設定 (續 ) 多顆多顆 8259A8259A 串接設定串接設定從動從動 8259A8259A 規劃程式如下規劃程式如下 (( 續續 )) ::規劃規劃 ICW4ICW4 ,, 8259A ICW48259A ICW4 位址:位址: 0x00FFB10x00FFB1

此處規劃內容此處規劃內容 0X010X01 :非緩衝模式:非緩衝模式

outportb( 0x00FFB1, 0X01 )outportb( 0x00FFB1, 0X01 ) ;;

與主動與主動 8259A8259A 之規劃相同,程式中亦有針對之規劃相同,程式中亦有針對 ICWICW33 之規劃,其之規劃,其主要功能乃是指定從動元件之識別碼,使得當主動元件透過主要功能乃是指定從動元件之識別碼,使得當主動元件透過 CSCS22 ~C ~CSS00傳送識別碼時,從動元件得以辨認是為其識別碼。主動元件與從傳送識別碼時,從動元件得以辨認是為其識別碼。主動元件與從動元件動元件 INTINT 接腳連結之接腳連結之 IRIR 接腳之序號即是從動元件之識別碼。若接腳之序號即是從動元件之識別碼。若以圖以圖 5-115-11 之架構為例,則從動元件之之架構為例,則從動元件之 INTINT 接至主動元件之接至主動元件之 IR2IR2 ,,因此從動因此從動 8259A8259A 之識別碼為之識別碼為 010010 。。