第7章-中斷系統(tǒng)-微型計算機原理(第三版)(共10章)課件_第1頁
第7章-中斷系統(tǒng)-微型計算機原理(第三版)(共10章)課件_第2頁
第7章-中斷系統(tǒng)-微型計算機原理(第三版)(共10章)課件_第3頁
第7章-中斷系統(tǒng)-微型計算機原理(第三版)(共10章)課件_第4頁
第7章-中斷系統(tǒng)-微型計算機原理(第三版)(共10章)課件_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

09一月2023第1頁

7.1中斷的概念

7.2中斷的響應(yīng)和中斷處理

7.38086中斷系統(tǒng)

7.4中斷控制器825909一月2023第1頁7.1中斷的概念7.209一月2023第2頁7.1中斷(Interrupt)的概念CPU在正常執(zhí)行程序時,由于內(nèi)部或外部事件引起CPU暫時中止正在執(zhí)行的程序,而去執(zhí)行服務(wù)程序,完畢后,又返回到暫時被終止的程序繼續(xù)執(zhí)行的過程——中斷。

中斷是指計算機運行過程中,出現(xiàn)某些意外情況需主機干預(yù)時,機器能自動停止正在運行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運行。分類:硬件中斷(HardwareInterrupt)軟件中斷(SoftwareInterrupt)09一月2023第2頁7.1中斷(Interrupt09一月2023第3頁7.1中斷(Interrupt)的概念計算機科學(xué)術(shù)語.指處理機處理程序運行中出現(xiàn)的緊急事件的整個過程.程序運行過程中,系統(tǒng)外部、系統(tǒng)內(nèi)部或者現(xiàn)行程序本身若出現(xiàn)緊急事件,處理機立即中止現(xiàn)行程序的運行,自動轉(zhuǎn)入相應(yīng)的處理程序(中斷服務(wù)程序),待處理完后,再返回原來的程序運行,這整個過程稱為程序中斷;當處理機接受中斷時,只需暫停一個或幾個周期而不執(zhí)行處理程序的中斷,稱為簡單中斷.中斷又可分為屏蔽中斷和非屏蔽中斷兩類.可由程序控制其屏蔽的中斷稱為屏蔽中斷或可屏蔽中斷.屏蔽時,處理機將不接受中斷.反之,不能由程序控制其屏蔽,處理機一定要立即處理的中斷稱為非屏蔽中斷或不可屏蔽中斷.非屏蔽中斷主要用于斷電、電源故障等必須立即處理的情況.處理機響應(yīng)中斷時,不需執(zhí)行查詢程序.由被響應(yīng)中斷源向CPU發(fā)向量地址的中斷稱為向量中斷,反之為非向量中斷.向量中斷可以提高中斷響應(yīng)速度。09一月2023第3頁7.1中斷(Interrupt09一月2023第4頁7.1中斷(Interrupt)的概念中斷過程按照事件發(fā)生的順序,中斷過程包括

[4]

:①中斷源發(fā)出中斷請求;②判斷當前處理機是否允許中斷和該中斷源是否被屏蔽;③優(yōu)先權(quán)排隊;④處理機執(zhí)行完當前指令或當前指令無法執(zhí)行完,則立即停止當前程序,保護斷點地址和處理機當前狀態(tài),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序;⑤執(zhí)行中斷服務(wù)程序;⑥恢復(fù)被保護的狀態(tài),執(zhí)行“中斷返回”指令回到被中斷的程序或轉(zhuǎn)入其他程序。上述過程中前四項操作是由硬件完成的,后兩項是由軟件完成的。09一月2023第4頁7.1中斷(Interrupt09一月2023第5頁7.1中斷(Interrupt)的概念CPU在正常執(zhí)行程序時,由于內(nèi)部或外部事件引起CPU暫時中止正在執(zhí)行的程序,而去執(zhí)行服務(wù)程序,完畢后,又返回到暫時被終止的程序繼續(xù)執(zhí)行的過程——中斷。7.1.1中斷的基本概念

中斷源的概念:通常在計算機系統(tǒng)中有多個外部設(shè)備并行工作,或存在多個事件,它們都可以向CPU發(fā)申請,這些外部設(shè)備或事件就稱為中斷源。

1.中斷概念:當外設(shè)需要服務(wù)或事件發(fā)生時,向主機發(fā)出“請求”信號,CPU暫停當前正在執(zhí)行的程序,而轉(zhuǎn)去為請求服務(wù)的外設(shè)或事件進行服務(wù),待服務(wù)完畢后又自動返回到暫時被終止的程序繼續(xù)執(zhí)行的過程。09一月2023第5頁7.1中斷(Interrupt09一月2023第6頁2.中斷的作用

⑴實現(xiàn)CPU與多臺I/O設(shè)備并行工作。若CPU與設(shè)備串行運行,則CPU效率低下。啟動啟動啟動CPU設(shè)備完成完成

查詢等待(t)查詢等待查詢等待CPU與設(shè)備串行運行示意圖⑵實現(xiàn)實時處理。如壓力過大、溫度過高等情況等。

⑶故障處理。如電源掉電及軟、硬件故障等,提高了計算機系統(tǒng)的可靠性。

09一月2023第6頁2.中斷的作用⑴實09一月2023第7頁⑷實現(xiàn)人機對話。操作人員通過控制臺發(fā)命令,對系統(tǒng)進行隨機干預(yù)。⑸實現(xiàn)多機系統(tǒng)中各主機間的聯(lián)系。實現(xiàn)多機系統(tǒng)中,各個處理機之間的信息交流和任務(wù)切換。3.中斷系統(tǒng)的功能

⑵實現(xiàn)優(yōu)先排隊。響應(yīng)優(yōu)先級最高的中斷請求。⑶實現(xiàn)中斷嵌套。當CPU響應(yīng)某一中斷并進行處理時,若有優(yōu)先級更高的中斷源發(fā)出申請,則響應(yīng)。⑴實現(xiàn)中斷和返回。CPU判斷中斷源,轉(zhuǎn)入相應(yīng)中斷處理程序,處理完畢后返回原斷點,繼續(xù)執(zhí)行。

09一月2023第7頁⑷實現(xiàn)人機對話。操作09一月2023第8頁⑴處理機內(nèi)部中斷:如零作除數(shù),為調(diào)試程序設(shè)置的斷點等。8.1.2中斷源類型

⑶數(shù)據(jù)通道中斷:如磁盤、磁帶等。⑵I/O設(shè)備中斷:如鍵盤、打印機等輸入輸出設(shè)備引起的中斷。⑷實時時鐘中斷:如外部時鐘電路、內(nèi)部定時電路等引起的中斷。⑸故障源:如電源掉電等。磁帶等。⑹軟中斷:在程序中,用命令設(shè)置的中斷。09一月2023第8頁⑴處理機內(nèi)部中斷:如09一月2023第9頁1.軟件查詢方式7.1.3中斷優(yōu)先排隊(優(yōu)先權(quán))

中斷源0INTR

≥1

中斷源1中斷源2中斷源3中斷源4中斷源5中斷源6中斷源7各中斷請求信號“或”操作后作為INTR信號。當有中斷源發(fā)出請求時,INTR=1。CPU響應(yīng)中斷后,進入中斷處理程序,先從左到右逐位檢查狀態(tài),先被查詢到的中斷申請先得到服務(wù)。09一月2023第9頁1.軟件查詢方式7.1.3中斷09一月2023第10頁2.硬件方式——硬件優(yōu)先權(quán)排隊電路⑴多線請求優(yōu)先權(quán)排隊電路。

&

&

&

&

&

&

INTR0

INTR1

INTR2

INTR2’INTR1’

INTR0’

I/O設(shè)

備申請

多線請求優(yōu)先權(quán)排隊電路

⑵多線請求,判優(yōu)響應(yīng)。

Intel8259——可編程中斷控制器,用來接收、屏蔽、判優(yōu)、傳遞中斷請求,功能強大,應(yīng)用方便。

如INTR1’有請求,則INTR2’被封鎖。09一月2023第10頁2.硬件方式——硬件優(yōu)先權(quán)排隊電09一月2023第11頁7.2中斷處理

1.中斷響應(yīng)的條件——三個:

⑴中斷源有中斷請求。

7.2.1中斷響應(yīng)

⑵CPU允許中斷。中斷允許標志IF為1⑶一條指令執(zhí)行完畢。

2.中斷響應(yīng)過程

⑴中斷源的識別。

⑵保存中斷現(xiàn)場和轉(zhuǎn)向中斷服務(wù)程序?,F(xiàn)場——斷點地址、條件碼、屏蔽字、通用寄存器中的內(nèi)容和狀態(tài)位等等。壓入堆棧中保存,由硬件直接控制執(zhí)行,稱為中斷隱指令。

09一月2023第11頁7.2中斷處理1.中斷響09一月2023第12頁7.2.2中斷處理1.中斷的處理過程⑴關(guān)中斷。目的:CPU不響應(yīng)更高級的中斷申請。

⑵保存斷點和現(xiàn)場。即將現(xiàn)行狀態(tài)字和斷點地址相繼壓入堆棧。目的:在中斷處理完后返回主程序時,恢復(fù)原程序運行狀態(tài)。⑶開中斷。目的:允許更高級中斷請求能夠及時得到響應(yīng),實現(xiàn)中斷嵌套。

⑷轉(zhuǎn)入中斷服務(wù)程序。目的:完成的最終目的。

⑸退出中斷。返回到主程序的執(zhí)行。

09一月2023第12頁7.2.2中斷處理1.中斷的09一月2023第13頁2.中斷服務(wù)程序中斷處理過程流程圖關(guān)中斷恢復(fù)現(xiàn)場開中斷開中斷轉(zhuǎn)入中斷服務(wù)程序執(zhí)行中斷服務(wù)程序N取下一條指令YN執(zhí)行一條指令結(jié)束有中斷?Y保存斷點、保護現(xiàn)場關(guān)中斷09一月2023第13頁2.中斷服務(wù)程序中斷處理過09一月2023第14頁3.多重中斷處理多重中斷:在處理某一中斷過程中又發(fā)生了新的中斷,而中斷該服務(wù)程序的執(zhí)行,又轉(zhuǎn)去新的中斷處理。——中斷嵌套。3級中斷服務(wù)主程序主程序kk+11級中斷服務(wù)主程序mm+1n-12n-10n-8n-6n-4n-2nSPm+1(IP)m+1(CS)PSWmSP兩級嵌套的情況:k+1(IP)k+1(CS)PSWkSP09一月2023第14頁3.多重中斷處理多重中斷09一月2023第15頁1.內(nèi)部中斷⑴單步中斷,中斷號為01H。當TF為1時,每執(zhí)行一條指令后立即產(chǎn)生1號中斷。7.38086中斷系統(tǒng)

7.3.18086的中斷分類:內(nèi)部中斷和外部中斷。

⑵斷點中斷,03H。用在程序調(diào)試中設(shè)置斷點。⑶溢出中斷,04H。若OF=1,則執(zhí)行INTO指令,INTO指令經(jīng)常安排在運算指令之后。⑷除數(shù)為0中斷,0H。當除法指令所得商大于機器能表示的最大值,則立即產(chǎn)生0號中斷。

⑸指令中斷,即CPU執(zhí)行INTn指令。09一月2023第15頁1.內(nèi)部中斷⑴09一月2023第16頁2.外部中斷:分為非屏蔽中斷和可屏蔽中斷,分別通過NMI和INTR引入。

⑴非屏蔽中斷:NMI引腳引入。不受IF的影響,用于處理緊迫事件,如掉電、存儲器錯誤或總線極性錯誤等緊急事態(tài)。中斷號2。CPU在執(zhí)行NMI中斷服務(wù)時不允許響應(yīng)INTR引腳上出現(xiàn)的中斷請求。⑵可屏蔽中斷:通過CPU的INTR引腳引入。特點:①請求經(jīng)中斷控制器判優(yōu)后再送往CPU;②CPU可通過對中斷標志位IF置位或復(fù)位來允許或禁止INTR請求;③由中斷控制器向CPU提供中斷類型碼;④可屏蔽中斷允許嵌套。09一月2023第16頁2.外部中斷:分為非屏蔽中斷和可09一月2023第17頁8086中斷系統(tǒng)的各中斷源分類示意圖

中斷邏輯INTn指令非屏蔽中斷NMIINT2INT0除數(shù)為0INT1單步

INT3斷點INT4溢出8259A中斷

控制器INTR

IR0IR1

IR7……優(yōu)先級別:除單步中斷外,所有內(nèi)部中斷的優(yōu)先級最高,其次為不可屏蔽中斷、可屏蔽中斷,單步中斷的優(yōu)先級最低。09一月2023第17頁8086中斷系統(tǒng)的各中斷源分類示09一月2023第18頁7.3.2中斷向量和中斷向量表

除數(shù)為0中斷單步中斷非屏蔽中斷斷點中斷溢出中斷IPLIPHCSLCSH0000H0004H0008H000CH0010H0014H007FH0080H03FCH03FFH類型0類型1類型2類型3類型4類型IFH類型FFH專用中斷系統(tǒng)保留中斷27個用戶使用每個中斷向量占4個字節(jié),256個中斷向量共占1K個單元。

09一月2023第18頁7.3.2中斷向量和中斷向量09一月2023第19頁1.8086硬件中斷的響應(yīng)過程⑴CPU讀取中斷類型碼并存入暫存器;⑵標志寄存器值壓棧保護;⑶IF和TF清零,即禁止單步執(zhí)行中斷服務(wù)程序;⑷保存斷點,即將斷點地址(CS,IP)壓棧保護;⑸根據(jù)中斷類型碼從中斷向量表中取出中斷向量,轉(zhuǎn)入中斷服務(wù)程序執(zhí)行。7.3.38086硬件中斷的響應(yīng)時序

中斷執(zhí)行示意圖如下:09一月2023第19頁1.8086硬件中斷的響應(yīng)過程09一月2023第20頁執(zhí)行下一條指令NTF=1?無內(nèi)部中斷?結(jié)束當前指令?有Y有NMI?N無取中斷類型碼Y有有INTR?IF=1?YN返回斷點①

開中斷執(zhí)行中斷服務(wù)程序關(guān)中斷標志寄存器入棧TEMP=TF(暫存)清除IF、TF標志斷點(CS,IP)入棧取中斷向量進入中斷服務(wù)程序①

關(guān)中斷恢復(fù)現(xiàn)場,恢復(fù)斷點開中斷,返回09一月2023第20頁執(zhí)行下一條指令NTF=1?無內(nèi)部09一月2023第21頁2.8086中斷響應(yīng)總線周期說明:第一個總線周期通知外設(shè)CPU準備響應(yīng)中斷,外設(shè)備好中斷類型碼;第二個總線周期CPU接收中斷類型碼;共用7個總線周期完成。軟件中斷和NMI共用5個總線周期。T1T2T3T4TITITIT1T2T3T4三個空閑狀態(tài)CLKALED0~D7中斷類型碼INTA09一月2023第21頁2.8086中斷響應(yīng)總線周期09一月2023第22頁軟件中斷有如下特點:

1.INTn指令,中斷類型碼是n。7.3.4軟件中斷

3.軟件中斷不受IF的影響。2.不執(zhí)行中斷響應(yīng)總線周期,不讀取中斷類型碼。5.軟件中斷沒有隨機性,中斷指令引起的,事先知道的。4.可進行中斷嵌套,即可以響應(yīng)非屏蔽中斷;也可響應(yīng)屏蔽中斷的高優(yōu)先級請求。09一月2023第22頁軟件中斷有如下特點:09一月2023第23頁7.4中斷控制器8259A

7.4.18259A的引腳信號、編程結(jié)構(gòu)和工作原理

芯片引腳信號CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND28272625242322212019181716151234567891011121314VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A邏輯圖8259AD7~D0CSRDWRA0SP/ENINTCAS0CAS1CAS2INTAVCCGNDIR7~IR0可對8個中斷源實現(xiàn)優(yōu)先級控制

9片對64個中斷源實現(xiàn)優(yōu)先級控制

可編程設(shè)置不同工作方式向x86提供不同中斷類型碼09一月2023第23頁7.4中斷控制器8259A09一月2023第24頁1.8259A的外部引腳信號

VCC和GND是電源和地,接+5V。

D7~D0:8根數(shù)據(jù)引線。D7~D0和數(shù)據(jù)總線的低8位相連,實現(xiàn)和CPU的數(shù)據(jù)交換。CS:片選信號。低電平有效,系統(tǒng)中地址總線經(jīng)過譯碼后與其相連。用于選擇芯片。INT:中斷請求引線,它與CPU的INTR相連,以向CPU發(fā)出中斷請求信號。INTA用來接收來自CPU的中斷應(yīng)答信號。RD:讀允許信號。低電平有效,通知8259A將被訪問的端口的內(nèi)容送往數(shù)據(jù)總線。09一月2023第24頁1.8259A的外部引腳信號V09一月2023第25頁A0:地址線,選擇8259A的端口,8259A有一個偶和一個奇地址,偶地址低,奇地址高。

IR7~IR0:來自I/O設(shè)備的中斷請求信號。

CAS2~CAS0:級連信號,用于指示從片的標識。SP/EN:雙向,若=1時,則8259A為主片,若=0時,8259A為從片。在8086系統(tǒng)中,只用低8位數(shù)據(jù)線進行連接,需用地址線A1與8259A的A0連接,用兩個相鄰的偶地址來作為8259A的端口地址。

09一月2023第25頁A0:地址線,選擇8259A的端09一月2023第26頁2.8259A的結(jié)構(gòu)和工作原理CAS2CAS1CAS0SP/EN8259A芯片內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫邏輯級連緩沖/比較器控制邏輯當前中斷服務(wù)寄存器(ISR)優(yōu)先權(quán)裁決電路(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)…IR0IR1…IR7INTD7~D0RDWRA0CSINTA09一月2023第26頁2.8259A的結(jié)構(gòu)和工作原理C09一月2023第27頁☆中斷請求寄存器IRR:保存IR0~IR7中斷請求信號,某位=1表示對應(yīng)的IRi有中斷請求

☆中斷服務(wù)寄存器ISR:保存所有正在服務(wù)的中斷源,某位=1表示對應(yīng)的IRi中斷正在被服務(wù)

☆中斷屏蔽寄存器IMR:存放中斷屏蔽字,某位=1表示對應(yīng)的IRi輸入被屏蔽

☆中斷優(yōu)先權(quán)判別電路:確定是否向CPU發(fā)出中斷請求。☆級連邏輯:當引入的中斷超過8級時,用多片8259A級聯(lián),構(gòu)成主從關(guān)系。09一月2023第27頁☆中斷請求寄存器IRR:保存IR09一月2023第28頁⑵

工作原理。

8259A對中斷請求的處理過程:

當某IRi有效時,IRR相應(yīng)位置1若有效的IRi未被屏蔽,則向CPU發(fā)出中斷請求檢測到第1個INTA#信號后,ISRi=1,IRRi=0

檢測到第2個INTA#信號后,把ISRi=1中最高優(yōu)先級的中斷類型碼放到DB上若工作在AEOI方式,在第2個INTA#結(jié)束時,使ISRi復(fù)位;否則由CPU發(fā)出EOI命令使ISRi復(fù)位09一月2023第28頁⑵工作原理。8259A對中斷09一月2023第29頁3.8259A的工作方式

⑴設(shè)置優(yōu)先級的方式:有全嵌套、特殊全嵌套、優(yōu)先級自動循環(huán)和優(yōu)先級特殊循環(huán)等4種優(yōu)先級方式?!钊短追绞剑篒R0的級別最高,IR2的級別次之,……,IR7的級別最低。加電后8259A的默認方式,默認優(yōu)先級順序從高到低為IR0~IR7

IR7IR6IR5IR4IR3IR2IR1IR076543210最低級最高級09一月2023第29頁3.8259A的工作方式09一月2023第30頁☆特殊全嵌套方式:用在多片8259A級連的系統(tǒng)中。主片8259A工作在特殊全嵌套方式。對來自同一從片的較高優(yōu)先級請求也會開放。☆優(yōu)先級自動循環(huán)方式:一個中斷源受到中斷服務(wù)以后,它的中斷優(yōu)先級自動降為最低。IR7IR6IR5IR4IR3IR2IR1IR076543210最低級最高級01010000ISRiIR4的服務(wù)結(jié)束以前21076543最高級最低級IR7IR6IR5IR4IR3IR2IR1IR001000000IR4的服務(wù)結(jié)束以后09一月2023第30頁☆特殊全嵌套方式:用在多片82509一月2023第31頁☆普通屏蔽方式:可通過編程設(shè)置操作命令字OCW1(屏蔽寄存器)屏蔽不需要響應(yīng)的中斷。也可以撤消⑵屏蔽中斷源的方式:普通屏蔽和特殊屏蔽方式?!钐厥馄帘畏绞剑寒擟PU正在處理某級中斷時,要求僅對本級進行屏蔽,而允許其它優(yōu)先級高的或低的中斷進入系統(tǒng)?!顑?yōu)先級特殊循環(huán)方式:8個中斷優(yōu)先級自動循環(huán)。通過對8259A的操作命令字OCW2來設(shè)置的。09一月2023第31頁☆普通屏蔽方式:可通過編程設(shè)置操09一月2023第32頁☆中斷自動結(jié)束方式:系統(tǒng)一進入中斷過程,在第二個中斷響應(yīng)信號結(jié)束時,ISR相應(yīng)位清0。因不保留當前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式⑶

結(jié)束中斷處理的方式:當IRi中斷被服務(wù)時,ISRi=1。當服務(wù)結(jié)束后,則必須清零ISRi位。是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實現(xiàn)的。有三種中斷結(jié)束方式:自動EOI(AEOI)——中斷自動結(jié)束方式非指定EOI(NSEOI)——一般中斷結(jié)束方式指定EOI(SEOI)——特殊的中斷結(jié)束方式

09一月2023第32頁☆中斷自動結(jié)束方式:系統(tǒng)一進入中09一月2023第33頁☆一般中斷結(jié)束方式:用于普通全嵌套方式的情況。由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級最高的那一位復(fù)位?!钐厥獾闹袛嘟Y(jié)束方式:用于優(yōu)先級自動循環(huán)或優(yōu)先級特殊循環(huán)方式中。通過對8259A的OCW2來實現(xiàn)。由CPU發(fā)出一條特殊的中斷結(jié)束命令,命令中指出所要復(fù)位的ISR的位號。09一月2023第33頁☆一般中斷結(jié)束方式:用于普通全嵌09一月2023第34頁⑷連接系統(tǒng)總線的方式:緩沖方式和非緩沖方式?!?/p>

緩沖方式:多片8259A通過總線緩沖器和數(shù)據(jù)總線連接,即為緩沖方式。

09一月2023第34頁⑷連接系統(tǒng)總線的方式:緩沖09一月2023第35頁☆非緩沖方式:相對于緩沖方式而言的。當系統(tǒng)中只有一片或很少幾片8259A時,可將8259A的數(shù)據(jù)線直接與系統(tǒng)總線相連。

采用多片8259A級連,可最多支持64個中斷源。只能有一片8259A為主片,其余的均為從屬片;涉及到的8259A引腳包括:CAS0-CAS2、SP/EN、IRi、INT單片8259A可支持8個中斷源;09一月2023第35頁☆非緩沖方式:相對于緩沖方式而言09一月2023第36頁⑸引入中斷請求的方式:有下列三種?!钸呇赜|發(fā)方式:IRi出現(xiàn)上升沿表示有中斷請求

☆電平觸發(fā)方式:IRi出現(xiàn)高電平表示有中斷請求。在第1個INTA#結(jié)束前,IRi必須保持高電平☆中斷查詢方式:CPU通過查詢8259A狀態(tài)來確定是否有中斷申請,并判別是哪個中斷源。09一月2023第36頁⑸引入中斷請求的方式:有下09一月2023第37頁7.4.28259A的初始化命令字和操作命令字

4個初始化命令字和3個操作命令字。

1.8259A的初始化命令字:由初始化程序填寫⑴

ICW1——芯片控制初始化命令字。(A0=0)。ICW1的格式如下:1LTIMADISNGLIC4A0D7D6D5D4D3D2D1D00D7~D5:一般不用。

D4=1:為ICW1的標志位,而不是操作命令OCW2和OCW3。09一月2023第37頁7.4.28259A的初始09一月2023第38頁D3(LTIM):設(shè)置中斷請求信號(IRi引腳)的觸發(fā)方式。LTIM=0:邊沿觸發(fā);LTIM=1:電平觸發(fā)。D2(ADI):在8086/8088系統(tǒng)中不用。D1(SNGL):是否與其他8259A處于級連方式。當只有一片8259A時,使D1=1;有多片8259A時,D1=0。D0(IC4):后面是否設(shè)置ICW4。當IC4=0,不設(shè)置ICW4;若IC4=1,設(shè)置ICW4。在8086/8088系統(tǒng)中要求必須使用ICW4命令字,IC4必須設(shè)置為1。

09一月2023第38頁D3(LTIM):設(shè)置中斷請求09一月2023第39頁⑵ICW2——中斷類型碼初始化命令字:設(shè)置中斷類型碼。寫入8259A的奇地址端口(A0=1)。

T7T6T5T4T3

A0D7D6D5D4D3D2D1D01ICW2的高5位為中斷類型碼的高5位,低3位由引入中斷的引腳序號決定。例如:ICW2的值為40H,則8259A的IR0~IR7對應(yīng)的8個中斷類型碼為:40H,41H,42H,…,47H。09一月2023第39頁⑵ICW2——中斷類型碼初始化09一月2023第40頁⑶

ICW3——主從片標識字初始化命令字:標識主/從片,寫入8259A的奇地址口,跟在ICW2后設(shè)置。IR7IR6IR5IR4IR3IR2IR1IR0A0D7D6D5D4D3D2D1D01主片ICW3的格式如下:從片ICW3的格式如下:IRi=1:表示IRi引腳上連有從片;IRi=0:表示IRi引腳上無從片連接。0

0000ID2ID1ID0

A0D7D6D5D4D3D2D1D01D2~D0:為從片標識符。D2~D0的組合決定哪個中斷請求輸出到INT腳。如從片的INT引腳連在主片的IR5引腳上,則此從片的ICW3中的D2~D0應(yīng)設(shè)置為101B。09一月2023第40頁⑶ICW3——主從片標識字初始09一月2023第41頁⑷ICW4——方式控制初始化命令字:寫入8259A的奇地址口,在ICW1中的第0位(IC4)為1時,才設(shè)置ICW4。主機類型主/從片嵌套方式中斷結(jié)束方式緩沖方式標志000SFNMBUFM/SAEOIPM

A0D7D6D5D4D3D2D1D01D7D6D5:ICW4的標志位,這三位總是為0。D4(SFNM):定義在級連方式下是否采用特殊全嵌套方式。SFNM=0:非特殊全嵌套;SFNM=1:特殊全嵌套。在非級連方式下,D4(SFNM)位無效。09一月2023第41頁⑷ICW4——方式控制初始化命令09一月2023第42頁D3(BUF):是否采用緩沖方式。BUF=0:非緩沖;BUF=1:緩沖D2(M/S):在緩沖方式,規(guī)定本片為主片還是從片。BUF位、M/S位和/信號線之間的關(guān)系:

BUF位

M/S位

SP/EN信號線0非緩沖方式無意義有效,輸入,=1主8259A0非緩沖方式無意義有效,輸入,=0從8259A1緩沖方式1主8259A有效,輸出,=1CPU→8259A1緩沖方式0從8259A有效,輸出,=0CPU←8259AD1(AEOI):中斷結(jié)束方式。AEOI=0:正常結(jié)束方式;AEOI=1:自動結(jié)束方式。09一月2023第42頁D3(BUF):是否采用緩沖方09一月2023第43頁2.8259A的初始化流程是否為級連方式?用ICW1設(shè)置:是否級連、請求信號格式、后面是否用ICW4用ICW2設(shè)置中斷類型碼YESNO設(shè)置ICW3,各位對應(yīng)IR0~IR7的連接情況NO本片為主片?設(shè)置ICW3,高5位為0,低3位為標識碼YES①需要設(shè)置ICW4嗎?YES用ICW4設(shè)置:是否為特殊全嵌套方式;是否為緩沖方式;是否為自動結(jié)束中斷方式;是否為8086/88系統(tǒng)設(shè)置結(jié)束NO①09一月2023第43頁2.8259A的初始化流程是否為09一月2023第44頁例1:當8086/8088系統(tǒng),8259A單級使用,端口地址是80H和81H。要求:需要設(shè)置ICW4,單級、不設(shè)置ICW3、中斷請求為邊沿方式;中斷類型碼為30H~37H;非緩沖方式和一般中斷結(jié)束方式。初始化程序如下:MOV AL,13H;設(shè)置ICW1=00010011BOUT80H,AL;寫入偶地址端口。MOVAL,30H;設(shè)置ICW2=00110000B,OUT81H,AL;寫入奇地址端口。MOVAL,01H;設(shè)置ICW4=00000001B:OUT81H,AL;寫入奇偶地址端口。09一月2023第44頁例1:當8086/8088系統(tǒng),09一月2023第45頁3.8259A的操作命令字:3個,即OCW1~OCW3

Mi=1,屏蔽相應(yīng)的中斷請求(IRi);Mi=0,允許相應(yīng)的中斷請求(IRi)⑴OCW1——中斷屏蔽操作命令字:實現(xiàn)中斷屏蔽功能

M7M6M5M4M3M2M1M0

A0D7D6D5D4D3D2D1D01例如:OCW1=03H(00000011B),則IR1和IR0引腳上的中斷請求被屏蔽,其它引腳上的中斷請求則允許。09一月2023第45頁3.8259A的操作命令字:3個09一月2023第46頁D4D3=00:為OCW2的標志。D7(R):決定系統(tǒng)中斷優(yōu)先級是否按循環(huán)方式設(shè)置。若R=1,優(yōu)先級循環(huán);若R=0,非循環(huán)。D6(SL):決定了OCW2中的L2、L1、L0是否有效,若SL=1,表示由L2、L1、L0設(shè)定的優(yōu)先級有效;D5(EOI):中斷結(jié)束命令。⑵

OCW2——工作方式操作命令字:設(shè)置優(yōu)先級循環(huán)方式和中斷結(jié)束方式

RSLEOI00L2L1L0A0D7D6D5D4D3D2D1D0009一月2023第46頁D4D3=00:為OCW2的標09一月2023第47頁D2、D1、D0(L2、L1、L0)有兩個用途:一是當特殊的中斷結(jié)束命令時,L2、L1、L0指出要清除當前中斷服務(wù)寄存器ISR中的哪一位;二是當OCW2給出特殊的優(yōu)先級循環(huán)方式命令字時,L2、L1、L0指出循環(huán)開始時,哪一個中斷的優(yōu)先級最低(SL=1)。EOIRSL

說明

000001010011100101

110

111結(jié)束優(yōu)先級自動循環(huán)方式無效設(shè)置中斷優(yōu)先級自動循環(huán)方式特殊優(yōu)先級循環(huán)方式,按L2L1L0為最低優(yōu)先級一般EOI命令,清除ISR對應(yīng)位,非循環(huán)方式特殊EOI命令,清除ISR的L2L1L0指定位,自動循環(huán)一般EOI命令,清除ISR對應(yīng)位,自動循環(huán)特殊EOI命令,清除ISR中L2L1L0指定位,自動循環(huán)09一月2023第47頁D2、D1、D0(L2、L09一月2023第48頁D4、D3=01:為OCW3標志,用來和OCW2區(qū)別;D6(ESMM):特殊屏蔽模式允許位。D5(SMM):特殊屏蔽模式位。⑶OCW3——工作方式操作命令字:設(shè)置和撤消特殊屏蔽方式、設(shè)置中斷查詢方式和設(shè)置8259A內(nèi)部寄存器的讀命令。

0

ESMMSMM01PRRRISA0D7D6D5D4D3D2D1D00ESMM

SMM

使SMM位無作用

10恢復(fù)原優(yōu)先級,即復(fù)位特殊屏蔽方式

11設(shè)置特殊屏蔽方式

09一月2023第48頁D4、D3=01:為OCW3標志09一月2023第49頁D7:無用。D2(P):查詢方式位。當CPU往8259A發(fā)出查詢命令后,執(zhí)行一條輸入指令,得到查詢字,表明當前外設(shè)有沒有中斷請求,當前優(yōu)先級最高的中斷請求到底是哪一個中斷源。I----W2W1W0A0D7D6D5D4D3D2D1D001:有設(shè)備中斷請求0:無設(shè)備中斷請求指示當前中斷請求的最高級

例如:當前優(yōu)先級次序為IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4,而在IR2和IR6引腳上又有中斷請求,得到如下的查詢字:1××××110B09一月2023第49頁D7:無用。D2(P09一月2023第50頁系統(tǒng)中只有一片8259A,對初始化全嵌套方式,執(zhí)行一條開中斷指令STI后,遇到IR3請求中斷,允許后,執(zhí)行IR3的中斷服務(wù)程序,IS3被置位。

7.4.38259A的編程【例7.1】關(guān)于中斷全嵌套方式的例子:

在執(zhí)行IR3的服務(wù)中,又有IR2申請中斷,比IR3的優(yōu)先級高,IR3中斷處理程序執(zhí)行了STI指令后,CPU響應(yīng)IR。

IR2中斷處理程序結(jié)束時,執(zhí)行中斷結(jié)束命令,使IS2復(fù)位,再執(zhí)行中斷返回指令,CPU才能返回IR3中斷處理程序。09一月2023第50頁系統(tǒng)中只有一片8259A09一月2023第51頁IR3請求中斷初始化開中斷STI主程序中斷結(jié)束命令關(guān)中斷開中斷中斷返回IR2請求中斷IR3中斷處理程序開中斷開中斷IR2中斷處理程序…關(guān)中斷中斷結(jié)束命令開中斷中斷返回09一月2023第51頁IR3請求中斷初始化開中斷STI09一月2023第52頁【例7.2】8259A單片系統(tǒng),管理8級中斷,邊沿觸發(fā),全嵌套,設(shè)定0級中斷請求對應(yīng)的中斷類型為8,8259的端口地址為20H。

則初始化程序如下:

MOV AL,13H;ICW100010011OUT 20H,ALMOV AL,08H;ICW200001000OUT 21H,ALMOV AL,01H;ICW400000001OUT 21H,AL分析:

ICW1

=00010011,ICW2

=00001000ICW4

=0000000109一月2023第52頁【例7.2】8259A單片系統(tǒng),09一月2023第53頁【例7.3】兩片8259級連,15級中斷,主片偶地址口為20H,從片偶地址口為A0H,邊沿觸發(fā),全嵌套中斷,從片INT端接主片的IR2,主片中斷類型為8~FH,從片為:70H~77H。進行初始化編程。

主片初始化:

MOV AL,11HOUT 20H,AL

MOV AL,08HOUT 21H,AL

MOV AL,04HOUT 21H,ALMOV AL,11HOUT 21H,AL從片初始化:

MOV AL,11HOUT 0A0H,ALMOV AL,70HOUT 0A1H,AL

MOV AL,02HOUT 0A1H,ALMOV AL,11HOUT 0A1H,AL09一月2023第53頁【例7.3】兩片8259級連,109一月2023第54頁【例7.4】某一中斷服務(wù)程序,要讀取8259A的ISR,判斷是否為硬件中斷,若是則發(fā)非特殊中斷結(jié)束命令,結(jié)束中斷。設(shè)8259A的地址為20H、21H。

MOVAL,0BH;發(fā)讀ISR命令(OCW3)OUT20H,ALNOPIN AL,20H;讀ISRMOVAH,AL;保存當前優(yōu)先級OR AL,AH;ISR=0?JNZ HW_INT;不為0則為硬件中斷,轉(zhuǎn)處理

MOV AH,0FFH ;非硬件中斷設(shè)標志JMP S_I_FLAG09一月2023第54頁【例7.4】某一中斷服務(wù)程序,要09一月2023第55頁HW_INT:IN AL,21H;讀IMROR AL,AHOUT 21H,AL;寫OCW1屏蔽當前優(yōu)先級

MOV AL,20H ;發(fā)EOI命令

OUT 20H,ALS_I_FLAG:MOV INTR_FLAG,AH09一月2023第55頁HW_INT:IN AL09一月2023第56頁

7.1中斷的概念

7.2中斷的響應(yīng)和中斷處理

7.38086中斷系統(tǒng)

7.4中斷控制器825909一月2023第1頁7.1中斷的概念7.209一月2023第57頁7.1中斷(Interrupt)的概念CPU在正常執(zhí)行程序時,由于內(nèi)部或外部事件引起CPU暫時中止正在執(zhí)行的程序,而去執(zhí)行服務(wù)程序,完畢后,又返回到暫時被終止的程序繼續(xù)執(zhí)行的過程——中斷。

中斷是指計算機運行過程中,出現(xiàn)某些意外情況需主機干預(yù)時,機器能自動停止正在運行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運行。分類:硬件中斷(HardwareInterrupt)軟件中斷(SoftwareInterrupt)09一月2023第2頁7.1中斷(Interrupt09一月2023第58頁7.1中斷(Interrupt)的概念計算機科學(xué)術(shù)語.指處理機處理程序運行中出現(xiàn)的緊急事件的整個過程.程序運行過程中,系統(tǒng)外部、系統(tǒng)內(nèi)部或者現(xiàn)行程序本身若出現(xiàn)緊急事件,處理機立即中止現(xiàn)行程序的運行,自動轉(zhuǎn)入相應(yīng)的處理程序(中斷服務(wù)程序),待處理完后,再返回原來的程序運行,這整個過程稱為程序中斷;當處理機接受中斷時,只需暫停一個或幾個周期而不執(zhí)行處理程序的中斷,稱為簡單中斷.中斷又可分為屏蔽中斷和非屏蔽中斷兩類.可由程序控制其屏蔽的中斷稱為屏蔽中斷或可屏蔽中斷.屏蔽時,處理機將不接受中斷.反之,不能由程序控制其屏蔽,處理機一定要立即處理的中斷稱為非屏蔽中斷或不可屏蔽中斷.非屏蔽中斷主要用于斷電、電源故障等必須立即處理的情況.處理機響應(yīng)中斷時,不需執(zhí)行查詢程序.由被響應(yīng)中斷源向CPU發(fā)向量地址的中斷稱為向量中斷,反之為非向量中斷.向量中斷可以提高中斷響應(yīng)速度。09一月2023第3頁7.1中斷(Interrupt09一月2023第59頁7.1中斷(Interrupt)的概念中斷過程按照事件發(fā)生的順序,中斷過程包括

[4]

:①中斷源發(fā)出中斷請求;②判斷當前處理機是否允許中斷和該中斷源是否被屏蔽;③優(yōu)先權(quán)排隊;④處理機執(zhí)行完當前指令或當前指令無法執(zhí)行完,則立即停止當前程序,保護斷點地址和處理機當前狀態(tài),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序;⑤執(zhí)行中斷服務(wù)程序;⑥恢復(fù)被保護的狀態(tài),執(zhí)行“中斷返回”指令回到被中斷的程序或轉(zhuǎn)入其他程序。上述過程中前四項操作是由硬件完成的,后兩項是由軟件完成的。09一月2023第4頁7.1中斷(Interrupt09一月2023第60頁7.1中斷(Interrupt)的概念CPU在正常執(zhí)行程序時,由于內(nèi)部或外部事件引起CPU暫時中止正在執(zhí)行的程序,而去執(zhí)行服務(wù)程序,完畢后,又返回到暫時被終止的程序繼續(xù)執(zhí)行的過程——中斷。7.1.1中斷的基本概念

中斷源的概念:通常在計算機系統(tǒng)中有多個外部設(shè)備并行工作,或存在多個事件,它們都可以向CPU發(fā)申請,這些外部設(shè)備或事件就稱為中斷源。

1.中斷概念:當外設(shè)需要服務(wù)或事件發(fā)生時,向主機發(fā)出“請求”信號,CPU暫停當前正在執(zhí)行的程序,而轉(zhuǎn)去為請求服務(wù)的外設(shè)或事件進行服務(wù),待服務(wù)完畢后又自動返回到暫時被終止的程序繼續(xù)執(zhí)行的過程。09一月2023第5頁7.1中斷(Interrupt09一月2023第61頁2.中斷的作用

⑴實現(xiàn)CPU與多臺I/O設(shè)備并行工作。若CPU與設(shè)備串行運行,則CPU效率低下。啟動啟動啟動CPU設(shè)備完成完成

查詢等待(t)查詢等待查詢等待CPU與設(shè)備串行運行示意圖⑵實現(xiàn)實時處理。如壓力過大、溫度過高等情況等。

⑶故障處理。如電源掉電及軟、硬件故障等,提高了計算機系統(tǒng)的可靠性。

09一月2023第6頁2.中斷的作用⑴實09一月2023第62頁⑷實現(xiàn)人機對話。操作人員通過控制臺發(fā)命令,對系統(tǒng)進行隨機干預(yù)。⑸實現(xiàn)多機系統(tǒng)中各主機間的聯(lián)系。實現(xiàn)多機系統(tǒng)中,各個處理機之間的信息交流和任務(wù)切換。3.中斷系統(tǒng)的功能

⑵實現(xiàn)優(yōu)先排隊。響應(yīng)優(yōu)先級最高的中斷請求。⑶實現(xiàn)中斷嵌套。當CPU響應(yīng)某一中斷并進行處理時,若有優(yōu)先級更高的中斷源發(fā)出申請,則響應(yīng)。⑴實現(xiàn)中斷和返回。CPU判斷中斷源,轉(zhuǎn)入相應(yīng)中斷處理程序,處理完畢后返回原斷點,繼續(xù)執(zhí)行。

09一月2023第7頁⑷實現(xiàn)人機對話。操作09一月2023第63頁⑴處理機內(nèi)部中斷:如零作除數(shù),為調(diào)試程序設(shè)置的斷點等。8.1.2中斷源類型

⑶數(shù)據(jù)通道中斷:如磁盤、磁帶等。⑵I/O設(shè)備中斷:如鍵盤、打印機等輸入輸出設(shè)備引起的中斷。⑷實時時鐘中斷:如外部時鐘電路、內(nèi)部定時電路等引起的中斷。⑸故障源:如電源掉電等。磁帶等。⑹軟中斷:在程序中,用命令設(shè)置的中斷。09一月2023第8頁⑴處理機內(nèi)部中斷:如09一月2023第64頁1.軟件查詢方式7.1.3中斷優(yōu)先排隊(優(yōu)先權(quán))

中斷源0INTR

≥1

中斷源1中斷源2中斷源3中斷源4中斷源5中斷源6中斷源7各中斷請求信號“或”操作后作為INTR信號。當有中斷源發(fā)出請求時,INTR=1。CPU響應(yīng)中斷后,進入中斷處理程序,先從左到右逐位檢查狀態(tài),先被查詢到的中斷申請先得到服務(wù)。09一月2023第9頁1.軟件查詢方式7.1.3中斷09一月2023第65頁2.硬件方式——硬件優(yōu)先權(quán)排隊電路⑴多線請求優(yōu)先權(quán)排隊電路。

&

&

&

&

&

&

INTR0

INTR1

INTR2

INTR2’INTR1’

INTR0’

I/O設(shè)

備申請

多線請求優(yōu)先權(quán)排隊電路

⑵多線請求,判優(yōu)響應(yīng)。

Intel8259——可編程中斷控制器,用來接收、屏蔽、判優(yōu)、傳遞中斷請求,功能強大,應(yīng)用方便。

如INTR1’有請求,則INTR2’被封鎖。09一月2023第10頁2.硬件方式——硬件優(yōu)先權(quán)排隊電09一月2023第66頁7.2中斷處理

1.中斷響應(yīng)的條件——三個:

⑴中斷源有中斷請求。

7.2.1中斷響應(yīng)

⑵CPU允許中斷。中斷允許標志IF為1⑶一條指令執(zhí)行完畢。

2.中斷響應(yīng)過程

⑴中斷源的識別。

⑵保存中斷現(xiàn)場和轉(zhuǎn)向中斷服務(wù)程序。現(xiàn)場——斷點地址、條件碼、屏蔽字、通用寄存器中的內(nèi)容和狀態(tài)位等等。壓入堆棧中保存,由硬件直接控制執(zhí)行,稱為中斷隱指令。

09一月2023第11頁7.2中斷處理1.中斷響09一月2023第67頁7.2.2中斷處理1.中斷的處理過程⑴關(guān)中斷。目的:CPU不響應(yīng)更高級的中斷申請。

⑵保存斷點和現(xiàn)場。即將現(xiàn)行狀態(tài)字和斷點地址相繼壓入堆棧。目的:在中斷處理完后返回主程序時,恢復(fù)原程序運行狀態(tài)。⑶開中斷。目的:允許更高級中斷請求能夠及時得到響應(yīng),實現(xiàn)中斷嵌套。

⑷轉(zhuǎn)入中斷服務(wù)程序。目的:完成的最終目的。

⑸退出中斷。返回到主程序的執(zhí)行。

09一月2023第12頁7.2.2中斷處理1.中斷的09一月2023第68頁2.中斷服務(wù)程序中斷處理過程流程圖關(guān)中斷恢復(fù)現(xiàn)場開中斷開中斷轉(zhuǎn)入中斷服務(wù)程序執(zhí)行中斷服務(wù)程序N取下一條指令YN執(zhí)行一條指令結(jié)束有中斷?Y保存斷點、保護現(xiàn)場關(guān)中斷09一月2023第13頁2.中斷服務(wù)程序中斷處理過09一月2023第69頁3.多重中斷處理多重中斷:在處理某一中斷過程中又發(fā)生了新的中斷,而中斷該服務(wù)程序的執(zhí)行,又轉(zhuǎn)去新的中斷處理?!袛嗲短?。3級中斷服務(wù)主程序主程序kk+11級中斷服務(wù)主程序mm+1n-12n-10n-8n-6n-4n-2nSPm+1(IP)m+1(CS)PSWmSP兩級嵌套的情況:k+1(IP)k+1(CS)PSWkSP09一月2023第14頁3.多重中斷處理多重中斷09一月2023第70頁1.內(nèi)部中斷⑴單步中斷,中斷號為01H。當TF為1時,每執(zhí)行一條指令后立即產(chǎn)生1號中斷。7.38086中斷系統(tǒng)

7.3.18086的中斷分類:內(nèi)部中斷和外部中斷。

⑵斷點中斷,03H。用在程序調(diào)試中設(shè)置斷點。⑶溢出中斷,04H。若OF=1,則執(zhí)行INTO指令,INTO指令經(jīng)常安排在運算指令之后。⑷除數(shù)為0中斷,0H。當除法指令所得商大于機器能表示的最大值,則立即產(chǎn)生0號中斷。

⑸指令中斷,即CPU執(zhí)行INTn指令。09一月2023第15頁1.內(nèi)部中斷⑴09一月2023第71頁2.外部中斷:分為非屏蔽中斷和可屏蔽中斷,分別通過NMI和INTR引入。

⑴非屏蔽中斷:NMI引腳引入。不受IF的影響,用于處理緊迫事件,如掉電、存儲器錯誤或總線極性錯誤等緊急事態(tài)。中斷號2。CPU在執(zhí)行NMI中斷服務(wù)時不允許響應(yīng)INTR引腳上出現(xiàn)的中斷請求。⑵可屏蔽中斷:通過CPU的INTR引腳引入。特點:①請求經(jīng)中斷控制器判優(yōu)后再送往CPU;②CPU可通過對中斷標志位IF置位或復(fù)位來允許或禁止INTR請求;③由中斷控制器向CPU提供中斷類型碼;④可屏蔽中斷允許嵌套。09一月2023第16頁2.外部中斷:分為非屏蔽中斷和可09一月2023第72頁8086中斷系統(tǒng)的各中斷源分類示意圖

中斷邏輯INTn指令非屏蔽中斷NMIINT2INT0除數(shù)為0INT1單步

INT3斷點INT4溢出8259A中斷

控制器INTR

IR0IR1

IR7……優(yōu)先級別:除單步中斷外,所有內(nèi)部中斷的優(yōu)先級最高,其次為不可屏蔽中斷、可屏蔽中斷,單步中斷的優(yōu)先級最低。09一月2023第17頁8086中斷系統(tǒng)的各中斷源分類示09一月2023第73頁7.3.2中斷向量和中斷向量表

除數(shù)為0中斷單步中斷非屏蔽中斷斷點中斷溢出中斷IPLIPHCSLCSH0000H0004H0008H000CH0010H0014H007FH0080H03FCH03FFH類型0類型1類型2類型3類型4類型IFH類型FFH專用中斷系統(tǒng)保留中斷27個用戶使用每個中斷向量占4個字節(jié),256個中斷向量共占1K個單元。

09一月2023第18頁7.3.2中斷向量和中斷向量09一月2023第74頁1.8086硬件中斷的響應(yīng)過程⑴CPU讀取中斷類型碼并存入暫存器;⑵標志寄存器值壓棧保護;⑶IF和TF清零,即禁止單步執(zhí)行中斷服務(wù)程序;⑷保存斷點,即將斷點地址(CS,IP)壓棧保護;⑸根據(jù)中斷類型碼從中斷向量表中取出中斷向量,轉(zhuǎn)入中斷服務(wù)程序執(zhí)行。7.3.38086硬件中斷的響應(yīng)時序

中斷執(zhí)行示意圖如下:09一月2023第19頁1.8086硬件中斷的響應(yīng)過程09一月2023第75頁執(zhí)行下一條指令NTF=1?無內(nèi)部中斷?結(jié)束當前指令?有Y有NMI?N無取中斷類型碼Y有有INTR?IF=1?YN返回斷點①

開中斷執(zhí)行中斷服務(wù)程序關(guān)中斷標志寄存器入棧TEMP=TF(暫存)清除IF、TF標志斷點(CS,IP)入棧取中斷向量進入中斷服務(wù)程序①

關(guān)中斷恢復(fù)現(xiàn)場,恢復(fù)斷點開中斷,返回09一月2023第20頁執(zhí)行下一條指令NTF=1?無內(nèi)部09一月2023第76頁2.8086中斷響應(yīng)總線周期說明:第一個總線周期通知外設(shè)CPU準備響應(yīng)中斷,外設(shè)備好中斷類型碼;第二個總線周期CPU接收中斷類型碼;共用7個總線周期完成。軟件中斷和NMI共用5個總線周期。T1T2T3T4TITITIT1T2T3T4三個空閑狀態(tài)CLKALED0~D7中斷類型碼INTA09一月2023第21頁2.8086中斷響應(yīng)總線周期09一月2023第77頁軟件中斷有如下特點:

1.INTn指令,中斷類型碼是n。7.3.4軟件中斷

3.軟件中斷不受IF的影響。2.不執(zhí)行中斷響應(yīng)總線周期,不讀取中斷類型碼。5.軟件中斷沒有隨機性,中斷指令引起的,事先知道的。4.可進行中斷嵌套,即可以響應(yīng)非屏蔽中斷;也可響應(yīng)屏蔽中斷的高優(yōu)先級請求。09一月2023第22頁軟件中斷有如下特點:09一月2023第78頁7.4中斷控制器8259A

7.4.18259A的引腳信號、編程結(jié)構(gòu)和工作原理

芯片引腳信號CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND28272625242322212019181716151234567891011121314VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A邏輯圖8259AD7~D0CSRDWRA0SP/ENINTCAS0CAS1CAS2INTAVCCGNDIR7~IR0可對8個中斷源實現(xiàn)優(yōu)先級控制

9片對64個中斷源實現(xiàn)優(yōu)先級控制

可編程設(shè)置不同工作方式向x86提供不同中斷類型碼09一月2023第23頁7.4中斷控制器8259A09一月2023第79頁1.8259A的外部引腳信號

VCC和GND是電源和地,接+5V。

D7~D0:8根數(shù)據(jù)引線。D7~D0和數(shù)據(jù)總線的低8位相連,實現(xiàn)和CPU的數(shù)據(jù)交換。CS:片選信號。低電平有效,系統(tǒng)中地址總線經(jīng)過譯碼后與其相連。用于選擇芯片。INT:中斷請求引線,它與CPU的INTR相連,以向CPU發(fā)出中斷請求信號。INTA用來接收來自CPU的中斷應(yīng)答信號。RD:讀允許信號。低電平有效,通知8259A將被訪問的端口的內(nèi)容送往數(shù)據(jù)總線。09一月2023第24頁1.8259A的外部引腳信號V09一月2023第80頁A0:地址線,選擇8259A的端口,8259A有一個偶和一個奇地址,偶地址低,奇地址高。

IR7~IR0:來自I/O設(shè)備的中斷請求信號。

CAS2~CAS0:級連信號,用于指示從片的標識。SP/EN:雙向,若=1時,則8259A為主片,若=0時,8259A為從片。在8086系統(tǒng)中,只用低8位數(shù)據(jù)線進行連接,需用地址線A1與8259A的A0連接,用兩個相鄰的偶地址來作為8259A的端口地址。

09一月2023第25頁A0:地址線,選擇8259A的端09一月2023第81頁2.8259A的結(jié)構(gòu)和工作原理CAS2CAS1CAS0SP/EN8259A芯片內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器讀/寫邏輯級連緩沖/比較器控制邏輯當前中斷服務(wù)寄存器(ISR)優(yōu)先權(quán)裁決電路(PR)中斷請求寄存器(IRR)中斷屏蔽寄存器(IMR)…IR0IR1…IR7INTD7~D0RDWRA0CSINTA09一月2023第26頁2.8259A的結(jié)構(gòu)和工作原理C09一月2023第82頁☆中斷請求寄存器IRR:保存IR0~IR7中斷請求信號,某位=1表示對應(yīng)的IRi有中斷請求

☆中斷服務(wù)寄存器ISR:保存所有正在服務(wù)的中斷源,某位=1表示對應(yīng)的IRi中斷正在被服務(wù)

☆中斷屏蔽寄存器IMR:存放中斷屏蔽字,某位=1表示對應(yīng)的IRi輸入被屏蔽

☆中斷優(yōu)先權(quán)判別電路:確定是否向CPU發(fā)出中斷請求?!罴夁B邏輯:當引入的中斷超過8級時,用多片8259A級聯(lián),構(gòu)成主從關(guān)系。09一月2023第27頁☆中斷請求寄存器IRR:保存IR09一月2023第83頁⑵

工作原理。

8259A對中斷請求的處理過程:

當某IRi有效時,IRR相應(yīng)位置1若有效的IRi未被屏蔽,則向CPU發(fā)出中斷請求檢測到第1個INTA#信號后,ISRi=1,IRRi=0

檢測到第2個INTA#信號后,把ISRi=1中最高優(yōu)先級的中斷類型碼放到DB上若工作在AEOI方式,在第2個INTA#結(jié)束時,使ISRi復(fù)位;否則由CPU發(fā)出EOI命令使ISRi復(fù)位09一月2023第28頁⑵工作原理。8259A對中斷09一月2023第84頁3.8259A的工作方式

⑴設(shè)置優(yōu)先級的方式:有全嵌套、特殊全嵌套、優(yōu)先級自動循環(huán)和優(yōu)先級特殊循環(huán)等4種優(yōu)先級方式。☆全嵌套方式:IR0的級別最高,IR2的級別次之,……,IR7的級別最低。加電后8259A的默認方式,默認優(yōu)先級順序從高到低為IR0~IR7

IR7IR6IR5IR4IR3IR2IR1IR076543210最低級最高級09一月2023第29頁3.8259A的工作方式09一月2023第85頁☆特殊全嵌套方式:用在多片8259A級連的系統(tǒng)中。主片8259A工作在特殊全嵌套方式。對來自同一從片的較高優(yōu)先級請求也會開放。☆優(yōu)先級自動循環(huán)方式:一個中斷源受到中斷服務(wù)以后,它的中斷優(yōu)先級自動降為最低。IR7IR6IR5IR4IR3IR2IR1IR076543210最低級最高級01010000ISRiIR4的服務(wù)結(jié)束以前21076543最高級最低級IR7IR6IR5IR4IR3IR2IR1IR001000000IR4的服務(wù)結(jié)束以后09一月2023第30頁☆特殊全嵌套方式:用在多片82509一月2023第86頁☆普通屏蔽方式:可通過編程設(shè)置操作命令字OCW1(屏蔽寄存器)屏蔽不需要響應(yīng)的中斷。也可以撤消⑵屏蔽中斷源的方式:普通屏蔽和特殊屏蔽方式?!钐厥馄帘畏绞剑寒擟PU正在處理某級中斷時,要求僅對本級進行屏蔽,而允許其它優(yōu)先級高的或低的中斷進入系統(tǒng)?!顑?yōu)先級特殊循環(huán)方式:8個中斷優(yōu)先級自動循環(huán)。通過對8259A的操作命令字OCW2來設(shè)置的。09一月2023第31頁☆普通屏蔽方式:可通過編程設(shè)置操09一月2023第87頁☆中斷自動結(jié)束方式:系統(tǒng)一進入中斷過程,在第二個中斷響應(yīng)信號結(jié)束時,ISR相應(yīng)位清0。因不保留當前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式⑶

結(jié)束中斷處理的方式:當IRi中斷被服務(wù)時,ISRi=1。當服務(wù)結(jié)束后,則必須清零ISRi位。是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實現(xiàn)的。有三種中斷結(jié)束方式:自動EOI(AEOI)——中斷自動結(jié)束方式非指定EOI(NSEOI)——一般中斷結(jié)束方式指定EOI(SEOI)——特殊的中斷結(jié)束方式

09一月2023第32頁☆中斷自動結(jié)束方式:系統(tǒng)一進入中09一月2023第88頁☆一般中斷結(jié)束方式:用于普通全嵌套方式的情況。由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級最高的那一位復(fù)位。☆特殊的中斷結(jié)束方式:用于優(yōu)先級自動循環(huán)或優(yōu)先級特殊循環(huán)方式中。通過對8259A的OCW2來實現(xiàn)。由CPU發(fā)出一條特殊的中斷結(jié)束命令,命令中指出所要復(fù)位的ISR的位號。09一月2023第33頁☆一般中斷結(jié)束方式:用于普通全嵌09一月2023第89頁⑷連接系統(tǒng)總線的方式:緩沖方式和非緩沖方式?!?/p>

緩沖方式:多片8259A通過總線緩沖器和數(shù)據(jù)總線連接,即為緩沖方式。

09一月2023第34頁⑷連接系統(tǒng)總線的方式:緩沖09一月2023第90頁☆非緩沖方式:相對于緩沖方式而言的。當系統(tǒng)中只有一片或很少幾片8259A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論