微型計(jì)算機(jī)原理與接口技術(shù)第9章znn_第1頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章znn_第2頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章znn_第3頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章znn_第4頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章znn_第5頁
已閱讀5頁,還剩101頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第 九九 章章中斷系統(tǒng)與中斷系統(tǒng)與 8259A 中斷控制器中斷控制器 當(dāng)外設(shè)數(shù)據(jù)未準(zhǔn)備好時(shí),當(dāng)外設(shè)數(shù)據(jù)未準(zhǔn)備好時(shí),CPU需要不斷查詢外設(shè)是否準(zhǔn)需要不斷查詢外設(shè)是否準(zhǔn)備好的狀態(tài),效率低備好的狀態(tài),效率低讀取狀態(tài)信息讀取狀態(tài)信息數(shù)據(jù)準(zhǔn)備好?數(shù)據(jù)準(zhǔn)備好?從數(shù)據(jù)口讀數(shù)據(jù)從數(shù)據(jù)口讀數(shù)據(jù)NY1.中斷方式示意中斷方式示意 (以輸入中斷為例以輸入中斷為例)數(shù)據(jù)數(shù)據(jù)中斷請求中斷請求中斷響應(yīng)中斷響應(yīng)數(shù)據(jù)數(shù)據(jù) 斷點(diǎn)斷點(diǎn)現(xiàn)現(xiàn)行行程程序序中中斷斷服服務(wù)務(wù)子子程程序序 現(xiàn)現(xiàn) 行行 程程 序序輸輸入入設(shè)設(shè)備備輸輸入入接接口口啟動(dòng)啟動(dòng)CPU 中斷基本概念中斷基本概念2. 什么是中斷什么是中斷? CPU暫停執(zhí)行現(xiàn)行程序暫停執(zhí)

2、行現(xiàn)行程序,轉(zhuǎn)而處理隨機(jī)事件轉(zhuǎn)而處理隨機(jī)事件,處理完畢后再處理完畢后再返回被中斷的程序返回被中斷的程序,這一全過程稱為中斷。這一全過程稱為中斷。3. 中斷源中斷源 能夠引發(fā)能夠引發(fā)CPU中斷的信息源中斷的信息源 (1)外部中斷源(硬件中斷源)外部中斷源(硬件中斷源) I/O設(shè)備設(shè)備 如鍵盤、顯示器、打印機(jī)如鍵盤、顯示器、打印機(jī) 數(shù)據(jù)通道數(shù)據(jù)通道 如磁帶、磁盤如磁帶、磁盤 時(shí)鐘時(shí)鐘 如如8254 0#,由此引發(fā)的中斷由此引發(fā)的中斷 故障源故障源 如掉電、存貯器奇偶校驗(yàn)錯(cuò)如掉電、存貯器奇偶校驗(yàn)錯(cuò)(2)內(nèi)部中斷源(軟件中斷源)內(nèi)部中斷源(軟件中斷源) 執(zhí)行執(zhí)行INT軟件中斷指令軟件中斷指令 如執(zhí)行指

3、令如執(zhí)行指令I(lǐng)NT 21H CPU指令執(zhí)行產(chǎn)生的異常指令執(zhí)行產(chǎn)生的異常 如被如被0除、單步執(zhí)行除、單步執(zhí)行 中斷基本概念中斷基本概念選通信號(hào)選通信號(hào)4. 具有中斷請求功能的輸入接口示意圖具有中斷請求功能的輸入接口示意圖輸輸入入設(shè)設(shè)備備鎖鎖存存器器(8)三態(tài)三態(tài)緩沖緩沖器器(8)CPU 數(shù)據(jù)線數(shù)據(jù)線R D Q+5 V中斷請求中斷請求觸發(fā)器觸發(fā)器Q D中斷允許觸發(fā)器中斷允許觸發(fā)器數(shù)據(jù)線數(shù)據(jù)線D0位位地址譯碼器地址譯碼器INTR地址總線地址總線IOWIOR控制口選中控制口選中數(shù)據(jù)口選中數(shù)據(jù)口選中狀態(tài)標(biāo)志狀態(tài)標(biāo)志寄存器寄存器 中斷基本概念中斷基本概念5. 中斷系統(tǒng)中斷系統(tǒng) 為實(shí)現(xiàn)中斷而采取的硬件和軟件

4、的確集合。為實(shí)現(xiàn)中斷而采取的硬件和軟件的確集合。 6.中斷系統(tǒng)應(yīng)具備的基本功能中斷系統(tǒng)應(yīng)具備的基本功能 H 對(duì)于硬件中斷對(duì)于硬件中斷,接口電路應(yīng)具備接口電路應(yīng)具備屏蔽屏蔽和和開放開放的功的功能能,這種功能由程序員通過軟件去控制。這種功能由程序員通過軟件去控制。H 能實(shí)現(xiàn)中斷判優(yōu)(中斷排隊(duì)),當(dāng)有多個(gè)中斷源提出請求能實(shí)現(xiàn)中斷判優(yōu)(中斷排隊(duì)),當(dāng)有多個(gè)中斷源提出請求時(shí)時(shí),應(yīng)能優(yōu)先響應(yīng)高級(jí)別的中斷源。應(yīng)能優(yōu)先響應(yīng)高級(jí)別的中斷源。 中斷基本概念中斷基本概念 能夠?qū)崿F(xiàn)中斷嵌套能夠?qū)崿F(xiàn)中斷嵌套,即高級(jí)別的中斷源能夠中斷低級(jí)別的即高級(jí)別的中斷源能夠中斷低級(jí)別的中斷服務(wù)程序。中斷服務(wù)程序。 響應(yīng)中斷后,能自動(dòng)

5、轉(zhuǎn)入中斷處理,處理完畢能自動(dòng)返回響應(yīng)中斷后,能自動(dòng)轉(zhuǎn)入中斷處理,處理完畢能自動(dòng)返回?cái)帱c(diǎn)。斷點(diǎn)?,F(xiàn)現(xiàn)行行程程序序斷點(diǎn)斷點(diǎn)為為B服服務(wù)務(wù)B設(shè)備中斷設(shè)備中斷為為A服服務(wù)務(wù)A設(shè)備中斷設(shè)備中斷斷點(diǎn)斷點(diǎn)為為A服服務(wù)務(wù) 中斷基本概念中斷基本概念1. 開中斷指令開中斷指令 功能:使功能:使F寄存器中寄存器中I標(biāo)志置標(biāo)志置1,CPU處于開中斷狀態(tài)。處于開中斷狀態(tài)。2. 關(guān)中斷指令關(guān)中斷指令 功能:使功能:使F寄存器中寄存器中I標(biāo)志置標(biāo)志置0,CPU處于關(guān)中斷狀態(tài)。處于關(guān)中斷狀態(tài)。 3. 軟件中斷指令軟件中斷指令 n為中斷類型碼為中斷類型碼,n為為0255之間有定義的無符號(hào)整數(shù)。之間有定義的無符號(hào)整數(shù)。 功能:無

6、條件轉(zhuǎn)向功能:無條件轉(zhuǎn)向n型中斷服務(wù)子程序。型中斷服務(wù)子程序。 指令的執(zhí)行過程指令的執(zhí)行過程CPU響應(yīng)軟件中斷的過程響應(yīng)軟件中斷的過程 F寄存器寄存器棧棧(保存保存INT n 之前的之前的F狀態(tài)狀態(tài)) 使使F中的中的T標(biāo)志置標(biāo)志置0禁止單步操作禁止單步操作 I標(biāo)志置標(biāo)志置0CPU處于關(guān)中斷狀態(tài)處于關(guān)中斷狀態(tài) 斷口地址斷口地址棧棧先:斷口基地址先:斷口基地址(CS) 棧,后:斷口偏移地址棧,后:斷口偏移地址(IP)棧棧 CPU從從4n 4n+3單元取出單元取出n型服務(wù)程序入口地址型服務(wù)程序入口地址 IP:CS,從而轉(zhuǎn)入從而轉(zhuǎn)入n型中斷服務(wù)程序。型中斷服務(wù)程序。 80X8680X86中斷指令中斷指

7、令4. 中斷返回指令中斷返回指令 功能:依次從棧頂彈出功能:依次從棧頂彈出6個(gè)元素個(gè)元素 IP,CS,F 如果棧頂是如果棧頂是INT n 的斷口地址,則執(zhí)行的斷口地址,則執(zhí)行 IRET后,返回?cái)帱c(diǎn),否則不能。后,返回?cái)帱c(diǎn),否則不能。 執(zhí)行執(zhí)行INT n 棧頂示意圖棧頂示意圖執(zhí)行執(zhí)行IRET 示意圖示意圖sp 斷口偏移地址斷口偏移地址斷口段基址斷口段基址FCSFIPsp 80X8680X86中斷指令中斷指令 中斷向量是實(shí)模式下,中斷服務(wù)子程序的中斷向量是實(shí)模式下,中斷服務(wù)子程序的 入口地址入口地址 它由它由2部分組成部分組成:H H 服務(wù)程序所在代碼段的段基址服務(wù)程序所在代碼段的段基址 2 個(gè)字

8、節(jié)個(gè)字節(jié)H H 服務(wù)程序入口的偏移地址服務(wù)程序入口的偏移地址 2 個(gè)字節(jié)個(gè)字節(jié)每個(gè)中斷都指定了一個(gè)類型每個(gè)中斷都指定了一個(gè)類型碼碼,也稱為中斷號(hào)。,也稱為中斷號(hào)。每一種中斷每一種中斷對(duì)應(yīng)對(duì)應(yīng)有一個(gè)中斷服務(wù)程序有一個(gè)中斷服務(wù)程序(Interrupt Service Program ISP ) 中斷類型碼通過一個(gè)中斷類型碼通過一個(gè)與中斷服務(wù)程序的入口地址相聯(lián)系:與中斷服務(wù)程序的入口地址相聯(lián)系: 下:下: 該表稱為該表稱為;下:該表稱為下:該表稱為。CPU規(guī)定規(guī)定:在實(shí)模式下,中斷在實(shí)模式下,中斷向量表需設(shè)置在系統(tǒng)的向量表需設(shè)置在系統(tǒng)的RAM最低端的最低端的1K單元單元(00000H 003FFH)

9、00000H:00004H:003FCH:0型中斷向量型中斷向量1型中斷向量型中斷向量255型中斷向量型中斷向量n型中斷向量型中斷向量4*n: 中斷向量中斷向量如:如:“21H”型中斷向量:存放在型中斷向量:存放在84H 87H單元中單元中問:問:9CH型中斷向量存放在何處?型中斷向量存放在何處?解:解: 9CH 4=1001110000=270H 9CH型中斷向量存于型中斷向量存于 270H 273H單元中單元中4n+0+2+3+1 n 型服務(wù)程序入口的偏移地址型服務(wù)程序入口的偏移地址 n 型服務(wù)程序入口的段基址型服務(wù)程序入口的段基址n 型中斷型中斷向量向量 中斷向量中斷向量YYXX21H型

10、中斷向量型中斷向量4 21H 用戶程序用戶程序MOV AH,1INT 21HMOV DL,AL NEXT:F寄存器內(nèi)容寄存器內(nèi)容堆棧區(qū)堆棧區(qū)NEXT的有效地址的有效地址NEXT的段基址的段基址XX:YY21H型服務(wù)程序型服務(wù)程序IRETIPCSIPCSFIRET 中斷向量中斷向量H H由由BIOS設(shè)計(jì)的中斷服務(wù)程序設(shè)計(jì)的中斷服務(wù)程序(如如INT 16H , INT 10H)其中斷向量在加電時(shí)由其中斷向量在加電時(shí)由BIOS負(fù)責(zé)寫入中斷向量表。負(fù)責(zé)寫入中斷向量表。H H由由DOS設(shè)計(jì)的中斷服務(wù)程序設(shè)計(jì)的中斷服務(wù)程序(如如 INT 21H)其中斷向量是在其中斷向量是在啟動(dòng)啟動(dòng)DOS時(shí),由時(shí),由DOS

11、負(fù)責(zé)寫入中斷向量表。負(fù)責(zé)寫入中斷向量表。H H用戶程序開發(fā)的中斷服務(wù)程序,由用戶程序?qū)懭肫渲袛嘞蛄?。用戶程序開發(fā)的中斷服務(wù)程序,由用戶程序?qū)懭肫渲袛嘞蛄俊?中斷向量中斷向量XX:YY用戶編寫的用戶編寫的n型型中斷服務(wù)程序中斷服務(wù)程序IRETYYXX中斷向量表中斷向量表4 n? 中斷向量中斷向量CLIPUSH DSMOVAX, 0000HMOVDS, AXMOVBX, 4*nMOVAX, OFFSET SERVICEMOVBX, AXMOVAX, SEG SERVICEMOVBX+2, AXPOP DSSTI 中斷向量中斷向量方方 INT 21H 的的35H子功能子功能 功能:讀出功能:讀出n型

12、中斷向量型中斷向量入口:入口:AL=中斷類型碼中斷類型碼出口:出口:ES:BX=n型中斷向量型中斷向量 INT 21H 的的25H子功能子功能 功能:寫入功能:寫入n型中斷向量型中斷向量入口:入口:DS=中斷服務(wù)程序所在代碼段的段基址中斷服務(wù)程序所在代碼段的段基址 DX=中斷服務(wù)程序入口的偏移地址中斷服務(wù)程序入口的偏移地址 AL=中斷類型碼中斷類型碼出口:無出口:無 中斷向量中斷向量例:把用戶程序中以例:把用戶程序中以“TIMER”命名的中斷服務(wù)子程序命名的中斷服務(wù)子程序的入口地址的入口地址 4 1CH 4 1CH+3單元單元數(shù):數(shù):OLD1C DD ?代:代: MOV AH , 35H MO

13、V AL , 1CH INT 21H MOV WORD PTR OLD1C , BX MOV WORD PTR OLD1C+2 , ES PUSH DS MOV AX , CS MOV DS,AX MOV DX , OFFSET TIMERMOV AH , 25HMOV AL , 1CHINT 21HPOP DS 中斷向量中斷向量CPU中斷中斷硬件中斷硬件中斷(外部中斷外部中斷)軟件中斷軟件中斷PC機(jī)機(jī)256種種中斷中斷可屏蔽中斷可屏蔽中斷非屏蔽中斷非屏蔽中斷BIOS中斷中斷DOS中斷中斷DOS專用中斷專用中斷DOS保留中斷保留中斷用戶可用用戶可用DOS中斷中斷用戶可開發(fā)的中斷用戶可開發(fā)的中斷

14、CPU中斷邏輯中斷邏輯CPU中斷中斷軟件中斷(軟件中斷(INT n指令)指令)非屏蔽中斷請求非屏蔽中斷請求中斷控制系統(tǒng)中斷控制系統(tǒng)NMI可屏蔽中斷請求可屏蔽中斷請求INTR 系統(tǒng)中斷的分類系統(tǒng)中斷的分類 CPU中斷是指中斷是指:CPU執(zhí)行某些操作而引發(fā)的中斷執(zhí)行某些操作而引發(fā)的中斷,這類中斷這類中斷使用了使用了0、1、3、4、6、7中斷號(hào)。中斷號(hào)。 系統(tǒng)中斷的分類系統(tǒng)中斷的分類 執(zhí)行執(zhí)行有定義的有定義的INT n指令而引發(fā)的中斷指令而引發(fā)的中斷,稱為軟件中斷。稱為軟件中斷。 軟件中斷使用軟件中斷使用05H,10HFFH中的若干個(gè)中斷號(hào)。又分為:中的若干個(gè)中斷號(hào)。又分為:(1) BIOS中斷中斷

15、 BIOS中斷中斷,占用了占用了05H、10H1FH中斷號(hào)中斷號(hào),用戶程序執(zhí)用戶程序執(zhí)行相關(guān)的軟中斷指令可以調(diào)用相應(yīng)的中斷服務(wù)程序。行相關(guān)的軟中斷指令可以調(diào)用相應(yīng)的中斷服務(wù)程序。 INT 05H 屏幕打印屏幕打印;INT 10H 屏幕顯示屏幕顯示 I/O;INT 11H 設(shè)備配置檢測設(shè)備配置檢測; 系統(tǒng)中斷的分類系統(tǒng)中斷的分類INT 12H 測試內(nèi)存容量測試內(nèi)存容量;INT 13H 磁盤磁盤I/O;INT 14H 串行通信串行通信I/O;INT 15H BIOS擴(kuò)展功能擴(kuò)展功能;INT 16H 鍵盤鍵盤I/O;INT 17H 打印機(jī)打印機(jī)I/O;INT 18H 啟動(dòng)啟動(dòng)PC機(jī)機(jī)ROM BASI

16、C(AT機(jī)機(jī))無無;INT 19H 重新裝入引導(dǎo)程序重新裝入引導(dǎo)程序;INT 1AH 實(shí)時(shí)時(shí)鐘管理。實(shí)時(shí)時(shí)鐘管理。 中斷號(hào)中斷號(hào)1DH,1EH,1FH,41H,46H也被也被BIOS占用了。但是,占用了。但是,與這些中斷號(hào)對(duì)應(yīng)的并不是中斷服務(wù)程序。與這些中斷號(hào)對(duì)應(yīng)的并不是中斷服務(wù)程序。 系統(tǒng)中斷的分類系統(tǒng)中斷的分類(2) DOS中斷中斷 DOS中斷中斷,又分為又分為DOS專用中斷專用中斷,DOS保留中斷保留中斷,用戶可調(diào)用的用戶可調(diào)用的DOS中斷以及保留給用戶開發(fā)的中斷。中斷以及保留給用戶開發(fā)的中斷。 DOS專用中斷專用中斷 22H型中斷型中斷 23H型中斷型中斷 24H型中斷型中斷 28H3

17、FH型中斷型中斷 系統(tǒng)中斷的分類系統(tǒng)中斷的分類用戶可調(diào)用的用戶可調(diào)用的DOS中斷中斷 20H型中斷型中斷 21H型中斷型中斷 25H型中斷型中斷 26H型中斷型中斷 27H型中斷型中斷用戶可開發(fā)的用戶可開發(fā)的DOS中斷中斷 DOS保留的中斷保留的中斷 系統(tǒng)中斷的分類系統(tǒng)中斷的分類外部硬件中斷外部硬件中斷是由是由CPU以外的中斷請求而引發(fā)的。如果有多以外的中斷請求而引發(fā)的。如果有多個(gè)中斷請求,怎樣連接至個(gè)中斷請求,怎樣連接至CPU呢?呢?中斷中斷0中斷中斷n中斷請求中斷請求80X86INTR?8259A數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器D0 D7讀讀/寫寫邏輯邏輯級(jí)連級(jí)連/緩沖緩沖比較器比較器CAS1

18、CAS0CAS2SP/ENRDWRA0 控制邏輯控制邏輯INTINTA中斷中斷服務(wù)服務(wù)寄存器寄存器(ISR) 優(yōu)先權(quán)優(yōu)先權(quán)電路電路中斷中斷請求請求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中斷屏蔽寄存器中斷屏蔽寄存器(IMR)內(nèi)部總線內(nèi)部總線CS數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器D0 D7讀讀/寫寫邏輯邏輯級(jí)連級(jí)連/緩沖緩沖比較器比較器CAS1CAS0CAS2SP/ENRDWRA0 控制邏輯控制邏輯中斷中斷服務(wù)服務(wù)寄存器寄存器(ISR) 優(yōu)先權(quán)優(yōu)先權(quán)電路電路中斷中斷請求請求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中斷屏蔽寄存器中斷屏蔽寄存器(

19、IMR)內(nèi)部總線內(nèi)部總線CS寄存引腳寄存引腳IR0IR7的中斷請求信號(hào)的中斷請求信號(hào),IRRi位置位置1,表明,表明IRi引腳上有了中斷請引腳上有了中斷請求信號(hào)求信號(hào) 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)寄存程序員寫入的中斷屏蔽字,屏蔽字某位寄存程序員寫入的中斷屏蔽字,屏蔽字某位=1(IMRi位位=1),則與該位對(duì)應(yīng)的則與該位對(duì)應(yīng)的中斷請求信號(hào)中斷請求信號(hào)(IRRi位位)就不能送到中斷優(yōu)先權(quán)電路。就不能送到中斷優(yōu)先權(quán)電路。數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器D0 D7讀讀/寫寫邏輯邏輯級(jí)連級(jí)連/緩沖緩沖比較器比較器CAS1CAS0CAS2SP/ENRDWRA0 控制邏輯控制邏輯中斷中斷服務(wù)服務(wù)寄存器寄

20、存器(ISR) 優(yōu)先權(quán)優(yōu)先權(quán)電路電路中斷中斷請求請求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中斷屏蔽寄存器中斷屏蔽寄存器(IMR)內(nèi)部總線內(nèi)部總線CS 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)如:如:MOV AL , 11111100B OUT 屏蔽寄存器口地址,屏蔽寄存器口地址,AL ;屏蔽屏蔽IRR7 IRR2的請求開放的請求開放IRR1,IRR0如:如: IN AL,屏蔽寄存器口地址屏蔽寄存器口地址 AND AL,11110111B OUT 屏蔽寄存器口地址,屏蔽寄存器口地址,AL ;開放開放IRR3的請求的請求 ;對(duì)其它位的請求不改變屏蔽對(duì)其它位的請求不改變屏

21、蔽/開放的狀態(tài)開放的狀態(tài) 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)優(yōu)優(yōu)先先權(quán)權(quán)電電路路Q3Q4IR3IR4Q3Q4IMRIRR.數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器D0 D7讀讀/寫寫邏輯邏輯級(jí)連級(jí)連/緩沖緩沖比較器比較器CAS1CAS0CAS2SP/ENRDWRA0 控制邏輯控制邏輯中斷中斷服務(wù)服務(wù)寄存器寄存器(ISR) 優(yōu)先權(quán)優(yōu)先權(quán)電路電路中斷中斷請求請求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中斷屏蔽寄存器中斷屏蔽寄存器(IMR)內(nèi)部總線內(nèi)部總線CS 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)比較比較CPU正為之服務(wù)的中斷源和剛進(jìn)入優(yōu)先權(quán)電路的中正為之服務(wù)的中斷源和剛進(jìn)入優(yōu)先

22、權(quán)電路的中斷源,哪一個(gè)級(jí)別更高。斷源,哪一個(gè)級(jí)別更高。 通過判優(yōu)通過判優(yōu)選中選中其中級(jí)別最高的中斷源,然后通過其中級(jí)別最高的中斷源,然后通過控制電路,從控制電路,從INT端向端向CPU提中斷請求。提中斷請求。 比較同時(shí)送達(dá)優(yōu)先權(quán)電路的中斷請求,哪一個(gè)比較同時(shí)送達(dá)優(yōu)先權(quán)電路的中斷請求,哪一個(gè) 級(jí)別最高。級(jí)別最高。 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器D0 D7讀讀/寫寫邏輯邏輯級(jí)連級(jí)連/緩沖緩沖比較器比較器CAS1CAS0CAS2SP/ENRDWRA0 控制邏輯控制邏輯INTINTA中斷中斷服務(wù)服務(wù)寄存器寄存器(ISR) 優(yōu)先權(quán)優(yōu)先權(quán)電路電路中斷中斷請求請求寄存器寄存

23、器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中斷屏蔽寄存器中斷屏蔽寄存器(IMR)內(nèi)部總線內(nèi)部總線CS 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)通過通過INTA接收接收CPU送來的中斷響應(yīng)信號(hào),中斷響應(yīng)信號(hào)送來的中斷響應(yīng)信號(hào),中斷響應(yīng)信號(hào)是是2個(gè)連續(xù)的負(fù)脈沖。個(gè)連續(xù)的負(fù)脈沖。INTA使使8259向向CPU送出被選中的中斷源的中斷類型碼送出被選中的中斷源的中斷類型碼使與被選中的中斷源對(duì)應(yīng)的使與被選中的中斷源對(duì)應(yīng)的ISRi位置位置1,IRRi位置位置0 寄存一組初始化命令字和操作命令字,通過譯碼產(chǎn)寄存一組初始化命令字和操作命令字,通過譯碼產(chǎn) 生內(nèi)部控生內(nèi)部控制信號(hào)制信號(hào)當(dāng)判優(yōu)電路選中一

24、個(gè)中斷源時(shí)向當(dāng)判優(yōu)電路選中一個(gè)中斷源時(shí)向CPU提中斷請求提中斷請求 (INT) 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器D0 D7讀讀/寫寫邏輯邏輯級(jí)連級(jí)連/緩沖緩沖比較器比較器CAS1CAS0CAS2SP/ENRDWRA0 控制邏輯控制邏輯INTINTA中斷中斷服務(wù)服務(wù)寄存器寄存器(ISR) 優(yōu)先權(quán)優(yōu)先權(quán)電路電路中斷中斷請求請求寄存器寄存器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7中斷屏蔽寄存器中斷屏蔽寄存器(IMR)內(nèi)部總線內(nèi)部總線CS 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 8位寄存器,位寄存器,ISRi位與位與IRRi位一一對(duì)應(yīng)位一一對(duì)應(yīng)記錄記錄C

25、PU正為之服務(wù)的是哪一個(gè)中斷源,怎樣記錄?正為之服務(wù)的是哪一個(gè)中斷源,怎樣記錄?反之,反之,如果如果ISR0位由位由1 0,表明,表明IR0的中斷服務(wù)程序執(zhí)行完了的中斷服務(wù)程序執(zhí)行完了所以所以ISR的每一位都是響應(yīng)中斷源的中斷服務(wù)標(biāo)志位。的每一位都是響應(yīng)中斷源的中斷服務(wù)標(biāo)志位。如:通過判優(yōu)電路如:通過判優(yōu)電路IRR0位的請求被選中,位的請求被選中,8259A向向CPU發(fā)中發(fā)中斷請求,通過斷請求,通過INTA收到第一個(gè)中斷響應(yīng)信號(hào)后,收到第一個(gè)中斷響應(yīng)信號(hào)后,ISR0位置位置1,IRR0位置位置0。ISR0位置位置1,表明,表明CPU正在準(zhǔn)備正在準(zhǔn)備(或正在或正在)執(zhí)行執(zhí)行IR0的服務(wù)程序。的服

26、務(wù)程序。 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)完成與完成與CPU數(shù)據(jù)線配接數(shù)據(jù)線配接接收初始化命令字,操作命令字接收初始化命令字,操作命令字當(dāng)收到第二個(gè)中斷響應(yīng)脈沖時(shí),通過他們當(dāng)收到第二個(gè)中斷響應(yīng)脈沖時(shí),通過他們向向CPU送出被選中的中斷源的中斷類型碼送出被選中的中斷源的中斷類型碼n 在這之后在這之后CPU從從4n+04n+3單元取出單元取出n型中斷向量,型中斷向量, 從而從而轉(zhuǎn)入轉(zhuǎn)入n型服務(wù)程序。型服務(wù)程序。 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)接收片選信號(hào)接收片選信號(hào)CS CS 、端口選擇信號(hào)、端口選擇信號(hào)A0A0和讀寫控制信和讀寫控制信 號(hào)號(hào)RDRD、WRWR。 一片一片8259A825

27、9A在系統(tǒng)中占用兩個(gè)口地址在系統(tǒng)中占用兩個(gè)口地址, ,用末位地址線用末位地址線A0A0選選擇端口擇端口, ,其它地址線通過譯碼產(chǎn)生其它地址線通過譯碼產(chǎn)生8259A8259A的片選信號(hào)。的片選信號(hào)。 一位一位8259A可以管理可以管理8級(jí)中斷,二片級(jí)中斷,二片8259A“級(jí)連級(jí)連”可管理可管理15級(jí)中斷,級(jí)連級(jí)中斷,級(jí)連/緩沖比較器是為完成多片緩沖比較器是為完成多片8259A級(jí)連設(shè)置的級(jí)連設(shè)置的模塊。模塊。 8259A8259A內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) :外部中斷請求信號(hào)輸入外部中斷請求信號(hào)輸入 :輸出,提向:輸出,提向CPU的的INTR端端 :輸入,接收:輸入,接收CPU發(fā)來的中斷響應(yīng)發(fā)來的中斷響應(yīng)

28、:輸入:輸入/輸出,數(shù)據(jù)總線輸出,數(shù)據(jù)總線 :片選信號(hào):片選信號(hào) :地址線:地址線A0,用于選擇內(nèi)部端口,用于選擇內(nèi)部端口 :讀:讀/寫控制信號(hào)寫控制信號(hào):用于:用于8259級(jí)聯(lián)級(jí)聯(lián) :用于:用于8259級(jí)聯(lián)級(jí)聯(lián)CS WRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS21 282 273 264 255 246 237 228 219 2010 1911 1812 1713 1614 15管腳信號(hào)管腳信號(hào)首先由中斷請求寄存器寄存加到引腳首先由中斷請求寄存器寄存加到引腳IR0IR7上的中上的中 斷

29、請求。斷請求。 在中斷屏蔽寄存器的管理下在中斷屏蔽寄存器的管理下,沒有被屏蔽的中斷請求被沒有被屏蔽的中斷請求被 送到優(yōu)先權(quán)電路判優(yōu)。送到優(yōu)先權(quán)電路判優(yōu)。 經(jīng)過優(yōu)先權(quán)電路的判別經(jīng)過優(yōu)先權(quán)電路的判別,選中當(dāng)前級(jí)別最高的中斷源選中當(dāng)前級(jí)別最高的中斷源,然然 后從引腳后從引腳INT向向CPU發(fā)出中斷請求信號(hào)。發(fā)出中斷請求信號(hào)。 CPU滿足一定條件后滿足一定條件后,向向8259A發(fā)出發(fā)出2個(gè)中斷響應(yīng)信號(hào)個(gè)中斷響應(yīng)信號(hào)(負(fù)負(fù)脈沖脈沖)。 在實(shí)模式下在實(shí)模式下,CPU從從4n4n3單元取出該中斷源單元取出該中斷源 的中斷向量的中斷向量IP、CS,從而引導(dǎo)從而引導(dǎo)CPU執(zhí)行該中斷源的執(zhí)行該中斷源的 中斷服務(wù)程

30、序。中斷服務(wù)程序。 8259A從引腳從引腳INTA收到第收到第1個(gè)中斷響應(yīng)信號(hào)之后個(gè)中斷響應(yīng)信號(hào)之后,立即立即 使中斷服務(wù)寄存器中與被選中的中斷源對(duì)應(yīng)的那一位使中斷服務(wù)寄存器中與被選中的中斷源對(duì)應(yīng)的那一位 置置1,同時(shí)把中斷請求寄存器中的相應(yīng)位清同時(shí)把中斷請求寄存器中的相應(yīng)位清0。 從引腳從引腳INTA收到第收到第2個(gè)中斷響應(yīng)信號(hào)后個(gè)中斷響應(yīng)信號(hào)后,8259A把選中把選中 的中斷源類型碼的中斷源類型碼n,通過數(shù)據(jù)線送往通過數(shù)據(jù)線送往CPU。 中斷觸發(fā)方式中斷觸發(fā)方式中斷屏蔽方式中斷屏蔽方式中斷優(yōu)先級(jí)管理方式中斷優(yōu)先級(jí)管理方式中斷結(jié)束方式中斷結(jié)束方式總線連接方式總線連接方式邊沿觸發(fā)邊沿觸發(fā)電平觸

31、發(fā)電平觸發(fā)常規(guī)屏蔽方式常規(guī)屏蔽方式特殊屏蔽方式特殊屏蔽方式完全嵌套方式完全嵌套方式特殊嵌套方式特殊嵌套方式優(yōu)先級(jí)循環(huán)方式優(yōu)先級(jí)循環(huán)方式自動(dòng)自動(dòng)EOI方式方式非自動(dòng)非自動(dòng)EOI方式方式緩沖方式緩沖方式非緩沖方式非緩沖方式常規(guī)常規(guī)EOI循環(huán)方式循環(huán)方式自動(dòng)自動(dòng)EOI循環(huán)方式循環(huán)方式特殊特殊EOI循環(huán)方式循環(huán)方式常規(guī)常規(guī)EOI方式方式特殊特殊EOI方式方式8259的編程結(jié)構(gòu)由三組共的編程結(jié)構(gòu)由三組共10個(gè)寄存器構(gòu)成,每個(gè)寄存器均為個(gè)寄存器構(gòu)成,每個(gè)寄存器均為8位。位。 初始化命令字初始化命令字ICW(Initialization Command Word)通常是系統(tǒng)開機(jī)時(shí),由)通常是系統(tǒng)開機(jī)時(shí),由

32、初始化程序填寫,且在整個(gè)系統(tǒng)工作過程中保持不變。初始化命令字必須按順初始化程序填寫,且在整個(gè)系統(tǒng)工作過程中保持不變。初始化命令字必須按順 序填寫。序填寫。 (1) ICW11 初始化命令字初始化命令字1需要需要ICW40不需要不需要ICW41單片單片8259A0級(jí)連級(jí)連86系統(tǒng)不用系統(tǒng)不用(通常為通常為0)1電平觸發(fā)方式電平觸發(fā)方式0邊沿觸發(fā)方式邊沿觸發(fā)方式86系統(tǒng)不用系統(tǒng)不用(通常為通常為0)A0 D7 D6 D5 D4 D3 D2 D1 D0 0 1 LTIM ADI SNGL ICW4 8259A8259A的編程的編程1 T7 T6 T5 T4 T3 A0 D7 D6 D5 D4 D3

33、D2 D1 D01注:注: T7T3 中斷向量類型碼高位,中斷向量類型碼高位, 由編程決定由編程決定 低三位低三位 自動(dòng)設(shè)置為自動(dòng)設(shè)置為 IR0 IR7 的類型編碼的類型編碼(000 111) D7 D6 D5 D4 D3 D2 D1 D0IR7T7 T6 T5 T4 T3 1 1 1IR6T7 T6 T5 T4 T3 1 1 0IR5T7 T6 T5 T4 T3 1 0 1IR4T7 T6 T5 T4 T3 1 0 0IR3T7 T6 T5 T4 T3 0 1 1IR2T7 T6 T5 T4 T3 0 1 0IR1T7 T6 T5 T4 T3 0 0 1IR0T7 T6 T5 T4 T3 0

34、 0 0 8259A8259A的編程的編程 1 S7 S6 S5 S4 S3 S2 S1 S0 1IR輸入帶有一輸入帶有一個(gè)個(gè) 從控制器從控制器 0IR輸入不帶一輸入不帶一個(gè)個(gè) 從控制器從控制器A0 D7 D6 D5 D4 D3 D2 D1 D01 1 0 0 0 0 0 ID2 ID1 ID0從控制器從控制器ID,編碼,編碼000111分別對(duì)應(yīng)該從片的分別對(duì)應(yīng)該從片的INT往主片的往主片的IR0IR7哪個(gè)端哪個(gè)端子輸入。子輸入。A0 D7 D6 D5 D4 D3 D2 D1 D01 8259A8259A的編程的編程 186 / 88模式模式080 / 85模式模式1自動(dòng)自動(dòng)EOI0非自動(dòng)非自

35、動(dòng)EOI 0 X 非緩沖方式非緩沖方式 1 0 緩沖方式緩沖方式/從控制從控制器器 1 1 緩沖方式緩沖方式/主控制主控制器器1特殊完全嵌套方式特殊完全嵌套方式0非特殊完全嵌套方式非特殊完全嵌套方式A0 D7 D6 D5 D4 D3 D2 D1 D010 0 0 SFNM BUF M / S AEOI PMPM 8259A8259A的編程的編程ICW1奇地址奇地址ICW2偶地址偶地址ICW3奇地址奇地址ICW4奇地址奇地址 級(jí)連方式?級(jí)連方式?CPU是是88/X86?準(zhǔn)備接受中斷請求準(zhǔn)備接受中斷請求No(SGNL=1) Yes (SGNL=0) No(ICW4=0) Yes (ICW4=1)

36、8259A8259A的編程的編程 由由CPU向向8259A送三個(gè)字節(jié)的操作命令字送三個(gè)字節(jié)的操作命令字OCW(Operation Command Word),), 用以規(guī)定用以規(guī)定8259A的工作方式,如:的工作方式,如: 中斷屏蔽中斷屏蔽 結(jié)束中斷結(jié)束中斷 優(yōu)線權(quán)旋轉(zhuǎn)優(yōu)線權(quán)旋轉(zhuǎn) 中斷狀態(tài)中斷狀態(tài) 等。等。 2 操作命令字操作命令字 8259A8259A的編程的編程(1)OCW1OCW1是中斷屏蔽命令字,命令格式如圖。是中斷屏蔽命令字,命令格式如圖。命令字中的命令字中的M7M0對(duì)應(yīng)對(duì)應(yīng)IMR的各位。的各位。Mi=1表示該中斷被屏表示該中斷被屏蔽,蔽,Mi=0表示該中斷開放。表示該中斷開放。 1

37、 M7 M6 M5 M4 M3 M2 M1 M0中斷屏蔽中斷屏蔽1置屏蔽置屏蔽0復(fù)位屏蔽復(fù)位屏蔽A0 D7 D6 D5 D4 D3 D2 D1 D01中斷結(jié)束命令字中斷結(jié)束命令字,命令格式如圖。命令格式如圖。 R、SL、EOI的不同組合決定了的不同組合決定了8259A的幾種工作方式。的幾種工作方式。 L2L0 這幾位確定當(dāng)這幾位確定當(dāng)SL=1時(shí)指定的特殊結(jié)束或特殊循環(huán)時(shí)指定的特殊結(jié)束或特殊循環(huán)時(shí)的中斷優(yōu)先級(jí)。最常用的常規(guī)時(shí)的中斷優(yōu)先級(jí)。最常用的常規(guī)EOI命令字為命令字為20H。(2)OCW2 0 R SL EOI 0 0 L2 L1 L00 0 1 常規(guī)常規(guī)EOI命令命令0 1 1 特殊特殊E

38、OI命令命令 1 0 1 常規(guī)常規(guī)EOI,按優(yōu)先級(jí)循環(huán)按優(yōu)先級(jí)循環(huán)1 0 0 以自動(dòng)以自動(dòng)EOI方式旋轉(zhuǎn)(設(shè)置)方式旋轉(zhuǎn)(設(shè)置) 自動(dòng)旋轉(zhuǎn)自動(dòng)旋轉(zhuǎn) 0 0 0 取消自動(dòng)取消自動(dòng)EOI時(shí)的優(yōu)先級(jí)循環(huán)時(shí)的優(yōu)先級(jí)循環(huán)1 1 1 特殊特殊EOI,按優(yōu)先級(jí)循環(huán)按優(yōu)先級(jí)循環(huán)1 1 0 置優(yōu)先權(quán)命令置優(yōu)先權(quán)命令0 1 0 無操作無操作0 0 0 0 有有 0 0 1 1 效效 0 1 0 2 的的 0 1 1 3 中中1 0 0 4 斷斷1 0 1 5 請請 1 1 0 6 求求 1 1 1 7 級(jí)級(jí) 別別A0 D7 D6 D5 D4 D3 D2 D1 D00中斷結(jié)束中斷結(jié)束特殊旋轉(zhuǎn)特殊旋轉(zhuǎn)用于控制用于控制

39、8259A的運(yùn)行方式。命令格式如圖。的運(yùn)行方式。命令格式如圖。(3)OCW3 0 0 ESMM SMM 0 1 P RR RIS1 = 查詢命令查詢命令0 = 非查詢命令非查詢命令A(yù)0 D7 D6 D5 D4 D3 D2 D1 D00讀寄存器命令讀寄存器命令0 1 0 10 0 1 1無作用無作用在下一個(gè)在下一個(gè)讀脈沖時(shí)讀脈沖時(shí)讀讀IRR在下一個(gè)在下一個(gè)讀脈沖時(shí)讀脈沖時(shí)讀讀ISR特殊屏蔽方式特殊屏蔽方式0 1 0 10 0 1 1無作用無作用取消取消特殊特殊屏蔽屏蔽設(shè)置設(shè)置特殊特殊屏蔽屏蔽 系統(tǒng)加電后由系統(tǒng)加電后由BIOS對(duì)對(duì)8259A初始化編程,設(shè)定中斷管理方式初始化編程,設(shè)定中斷管理方式

40、: 系統(tǒng)系統(tǒng)8259A,中斷觸發(fā)方式為中斷觸發(fā)方式為邊沿觸發(fā)邊沿觸發(fā),即,即 為中斷為中斷請求。請求。 中斷屏蔽方式采用中斷屏蔽方式采用常規(guī)屏蔽方式常規(guī)屏蔽方式即應(yīng)用時(shí),向即應(yīng)用時(shí),向8259A中斷屏蔽寄存器寫入適當(dāng)屏蔽字即可中斷屏蔽寄存器寫入適當(dāng)屏蔽字即可屏蔽屏蔽/開放某一級(jí)中斷。開放某一級(jí)中斷。 中斷源為中斷源為固定優(yōu)先級(jí)固定優(yōu)先級(jí) 即即IR0IR0中斷請求級(jí)別最高,中斷請求級(jí)別最高,IR7IR7中斷請求級(jí)別最低。中斷請求級(jí)別最低。采用采用常規(guī)中斷結(jié)束方式常規(guī)中斷結(jié)束方式 即在中斷服務(wù)子程序結(jié)束之前向即在中斷服務(wù)子程序結(jié)束之前向82598259送中斷結(jié)束命令。送中斷結(jié)束命令。對(duì)對(duì)82598

41、259A A編程分二步進(jìn)行:編程分二步進(jìn)行:H H對(duì)對(duì)82598259A A進(jìn)行初始化編程進(jìn)行初始化編程 H H對(duì)對(duì)82598259A A進(jìn)行應(yīng)用編程進(jìn)行應(yīng)用編程 每一個(gè)硬件中斷服務(wù)程序結(jié)束前必須向每一個(gè)硬件中斷服務(wù)程序結(jié)束前必須向82598259A A送中斷送中斷 命令字,通知命令字,通知82598259A A本次中斷結(jié)束,否則本次中斷結(jié)束,否則82598259A A不能響不能響 應(yīng)同一中斷源的下次中斷。應(yīng)同一中斷源的下次中斷。 需要時(shí),向需要時(shí),向82598259A A中斷屏蔽寄存器寫入屏蔽字。中斷屏蔽寄存器寫入屏蔽字。 82598259A A收到中斷結(jié)束命令后,把收到中斷結(jié)束命令后,把I

42、SRISR中的置中的置1 1位清位清0 0! :可屏蔽中斷,非屏蔽中斷可屏蔽中斷,非屏蔽中斷 CPU CPU有有2 2個(gè)接收中斷請求信號(hào)的引腳。個(gè)接收中斷請求信號(hào)的引腳。 輸入到輸入到INTRINTR引腳的中斷請求信號(hào),引腳的中斷請求信號(hào), 引發(fā)的中斷。引發(fā)的中斷。 輸入到輸入到NMINMI引腳的中斷請求信號(hào),引腳的中斷請求信號(hào), 引發(fā)的中斷。引發(fā)的中斷。INTRNMI 有可屏蔽中斷請求,沒有有可屏蔽中斷請求,沒有DMADMA請求,沒有非屏蔽中請求,沒有非屏蔽中 斷請求斷請求 有非屏蔽中斷請求,沒有有非屏蔽中斷請求,沒有DMADMA請求請求 一條指令執(zhí)行完一條指令執(zhí)行完 CPUCPU一條指令執(zhí)

43、行完畢一條指令執(zhí)行完畢 DMA DMA請求級(jí)別高于非屏蔽中斷高于可屏蔽中斷。請求級(jí)別高于非屏蔽中斷高于可屏蔽中斷。 CPUCPU處于開中斷狀態(tài)(處于開中斷狀態(tài)(I I標(biāo)標(biāo)=1=1) IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7日時(shí)鐘日時(shí)鐘鍵盤鍵盤IRQ3IRQ3IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6IRQ7IRQ7輔串口輔串口主串口主串口并口并口2 2軟盤軟盤并口并口1 1CSCSA0A0主片片選主片片選地址線地址線A0A0CAS2CAS20 0INTINTINTRINTRS2S20 0D7D7D0D0CPUCPUINTAINTAR

44、DRDWRWRSP/ENSP/ENS2S20 0INTAINTAIORIORIOWIOW主主82598259總線控制器總線控制器+5+5V V從從8259 8259 INTINT從從8259 8259 CAS2CAS20 0從從82598259相應(yīng)引腳相應(yīng)引腳可屏蔽中斷硬件結(jié)構(gòu)可屏蔽中斷硬件結(jié)構(gòu)(1)(1)可屏蔽中斷硬件結(jié)構(gòu)可屏蔽中斷硬件結(jié)構(gòu)(2)(2)硬盤硬盤CSCSA0A0從片片選從片片選地址線地址線A0A0CAS2CAS20 0INTINTD7D7D0D0INTAINTARDRDWRWRSP/ENSP/EN從從82598259主主82598259 IR2IR2主主8259 8259 CA

45、S2CAS20 0主主82598259相應(yīng)引腳相應(yīng)引腳IR1IR1IR3IR3IR5IR5IR7IR7IR0IR0IR2IR2IR4IR4IR6IR6實(shí)時(shí)時(shí)鐘實(shí)時(shí)時(shí)鐘IRQ10IRQ10IRQ9IRQ9IRQ12IRQ12IRQ11IRQ11用戶中斷用戶中斷保留保留保留保留保留保留保留保留協(xié)處理器協(xié)處理器主主8259中斷源中斷源中斷類型中斷類型從從8259中斷源中斷源中斷類型中斷類型IR0日時(shí)鐘日時(shí)鐘08HIR0實(shí)時(shí)時(shí)鐘實(shí)時(shí)時(shí)鐘70HIR1鍵盤鍵盤09HIR1用戶中斷用戶中斷71H改向改向0AHIR2從從8259IR2保留保留72HIR3輔串口輔串口0BHIR3保留保留73HIR4主串口主串口

46、0CHIR4保留保留74HIR5并行口并行口20DHIR5協(xié)處理器協(xié)處理器75HIR6軟盤軟盤0EHIR6硬盤硬盤76HIR7并行口并行口10FHIR7保留保留77H主主8259 中斷源中斷源中斷級(jí)別中斷級(jí)別 從從8259 中斷源中斷源中斷級(jí)別中斷級(jí)別IR0日時(shí)鐘日時(shí)鐘 最高最高 次高次高 高高 最低最低IR0實(shí)時(shí)時(shí)鐘實(shí)時(shí)時(shí)鐘 高高 低低IR1鍵盤鍵盤IR1用戶中斷用戶中斷IR2從從8259IR2保留保留IR3輔串口輔串口IR3保留保留IR4主串口主串口IR4保留保留IR5并行口并行口2IR5協(xié)處理器協(xié)處理器IR6軟盤軟盤IR6硬盤硬盤IR7并行口并行口1IR7保留保留 中斷屏蔽寄存器中斷屏蔽

47、寄存器 口地址口地址接收中斷結(jié)束命令的寄接收中斷結(jié)束命令的寄存器口地址存器口地址主主825921H20H從從8259A1HA0H 命令字命令字=20H 接入主接入主8259 IR0 IR7的中斷源的中斷源 其服務(wù)程序結(jié)束要向主其服務(wù)程序結(jié)束要向主8259送中斷結(jié)束命令字送中斷結(jié)束命令字 MOV AL,20H OUT 20H,AL 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 IRET MOV AL,20H OUT 20H,AL OUT 0A0H,AL 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 IRET接入從接入從82598259的中斷源,其服務(wù)程序結(jié)束應(yīng)分別向的中斷源,其服務(wù)程序結(jié)束應(yīng)分別向 主、從主、從82598259各送一個(gè)中斷結(jié)束命令字各

48、送一個(gè)中斷結(jié)束命令字 。 中斷的引發(fā)方式不同中斷的引發(fā)方式不同 CPUCPU獲取中斷類型碼的方式不同獲取中斷類型碼的方式不同 CPUCPU響應(yīng)的條件不同響應(yīng)的條件不同中斷處理程序的結(jié)束方式不同中斷處理程序的結(jié)束方式不同 中斷源中斷源: : 系統(tǒng)系統(tǒng)8254 0#8254 0#計(jì)數(shù)器,每計(jì)數(shù)器,每5555msms有一次中斷請求有一次中斷請求 中斷類型中斷類型: 8型型 CPU CPU轉(zhuǎn)入轉(zhuǎn)入8 8型中斷后,完成下列工作型中斷后,完成下列工作 開中斷,保護(hù)現(xiàn)場(開中斷,保護(hù)現(xiàn)場(DSDS壓棧)壓棧) 40 40H DSH DS,對(duì)對(duì)“日時(shí)鐘計(jì)數(shù)器日時(shí)鐘計(jì)數(shù)器”加加1 1 測算軟驅(qū)馬達(dá)關(guān)閉時(shí)間測算軟

49、驅(qū)馬達(dá)關(guān)閉時(shí)間IRETIRET1 1CHCH服務(wù)程序服務(wù)程序 向主向主82598259送中斷結(jié)束命令送中斷結(jié)束命令恢復(fù)現(xiàn)場,恢復(fù)現(xiàn)場,IRET IRET 執(zhí)行執(zhí)行INT 1CHINT 1CH 日時(shí)鐘中斷處理流程:日時(shí)鐘中斷處理流程: 什么是什么是“日時(shí)鐘計(jì)數(shù)器日時(shí)鐘計(jì)數(shù)器” ” BIOSBIOS系統(tǒng)規(guī)定:系統(tǒng)規(guī)定:4040H:6CHH:6CH40H:6FH40H:6FH這這4 4個(gè)單元個(gè)單元(共(共3232位)為日時(shí)鐘計(jì)數(shù)器,每位)為日時(shí)鐘計(jì)數(shù)器,每5555msms加加1 1次,計(jì)數(shù)次,計(jì)數(shù) 到到:001800:001800B0HB0H,為為2424小時(shí)小時(shí), ,其計(jì)數(shù)值供系統(tǒng)軟件使用。其計(jì)數(shù)

50、值供系統(tǒng)軟件使用。 系統(tǒng)啟動(dòng)時(shí)系統(tǒng)啟動(dòng)時(shí)CPUCPU執(zhí)行執(zhí)行BIOSBIOS中的一段程序,讀取中的一段程序,讀取CMOSCMOS實(shí)實(shí)時(shí)時(shí)鐘電路的時(shí)間值時(shí)時(shí)鐘電路的時(shí)間值計(jì)數(shù)值計(jì)數(shù)值4040: :6 6CHCH40:6FH40:6FH做做為日時(shí)鐘計(jì)數(shù)器的計(jì)數(shù)初值。為日時(shí)鐘計(jì)數(shù)器的計(jì)數(shù)初值。關(guān)于關(guān)于1 1CHCH服務(wù)程序服務(wù)程序 8# 8#服務(wù)程序,每隔服務(wù)程序,每隔5555msms在在DS=40HDS=40H的前提下,調(diào)用一次的前提下,調(diào)用一次1 1CHCH服務(wù)程序,之后又返回服務(wù)程序,之后又返回8 8型!型! 所以所以1 1CHCH中斷是日時(shí)鐘的外擴(kuò)中斷,用戶可開發(fā)新的中斷是日時(shí)鐘的外擴(kuò)中斷,

51、用戶可開發(fā)新的1 1CHCH中斷(完成每中斷(完成每5555msms一次的定時(shí)操作)取代原來的中斷服一次的定時(shí)操作)取代原來的中斷服務(wù)子程序。務(wù)子程序。 IRETIRET1 1CHCH服務(wù)程序服務(wù)程序 中斷源中斷源: : 系統(tǒng)總線插槽系統(tǒng)總線插槽B4B4端引入的端引入的用戶設(shè)計(jì)用戶設(shè)計(jì)的硬件中斷請求信號(hào)的硬件中斷請求信號(hào)用戶中斷請求的途徑用戶中斷請求的途徑 用戶用戶中斷中斷請求請求80X86INTRIR2IR2 INT INTIMRIMR主主8259 INT INTIR1IR1IMRIMR從從8259用戶中斷請求從用戶中斷請求從ISAISA總線總線B4B4端子(端子(IRQ9IRQ9)引入,經(jīng)

52、過主引入,經(jīng)過主82598259,從,從82598259二級(jí)二級(jí)中斷管理,最后由主中斷管理,最后由主82598259向向CPUCPU提中斷。提中斷。 只有從只有從82598259IMR1IMR1置置0 0,主,主82598259IMR2IMR2置置0 0,其中斷請求方能送到,其中斷請求方能送到CPUCPU。 B4實(shí)現(xiàn)用戶中斷必須對(duì)主、從實(shí)現(xiàn)用戶中斷必須對(duì)主、從82598259應(yīng)用編程應(yīng)用編程, ,保證中斷申請由保證中斷申請由82598259中斷控制器提向中斷控制器提向CPUCPU IN AL,0A1HAND AL,11111101BOUT 0A1H,AL ;開放用戶中斷開放用戶中斷IN AL,

53、21HAND AL,11111011BOUT 21H,AL ;開放從開放從8259中斷中斷 BIOSBIOS為為“71“71H H型型”設(shè)計(jì)的服務(wù)程序如下:設(shè)計(jì)的服務(wù)程序如下: PUSH AXMOV AL,20HOUT 0A0H,ALPOPAXINT0AH待開發(fā)待開發(fā) 用戶服務(wù)程序用戶服務(wù)程序IRETIRET用戶中斷的中斷類型用戶中斷的中斷類型 CPU響應(yīng)用戶中斷后,自動(dòng)轉(zhuǎn)向響應(yīng)用戶中斷后,自動(dòng)轉(zhuǎn)向“”服務(wù)程序服務(wù)程序 用戶中斷服務(wù)程序結(jié)束用戶中斷服務(wù)程序結(jié)束 若用戶中斷定義為若用戶中斷定義為0 0AHAH型,型, 服務(wù)程序結(jié)束前只向主服務(wù)程序結(jié)束前只向主82598259送結(jié)束命令送結(jié)束命令

54、若用戶中斷定義為若用戶中斷定義為71H 服務(wù)程序結(jié)束前,向主從服務(wù)程序結(jié)束前,向主從8259各送一中斷結(jié)束命令各送一中斷結(jié)束命令 用戶定義的中斷服務(wù)程序有兩個(gè)設(shè)計(jì)方法用戶定義的中斷服務(wù)程序有兩個(gè)設(shè)計(jì)方法: 定義用戶中斷服務(wù)程序?yàn)槎x用戶中斷服務(wù)程序?yàn)椤?1H型型” 中斷程序的準(zhǔn)備工作:置換中斷程序的準(zhǔn)備工作:置換71H型中斷向量,即把用戶型中斷向量,即把用戶 中斷的中斷向量中斷的中斷向量471H 471 H+3單元單元 定義用戶中斷服務(wù)程序?yàn)槎x用戶中斷服務(wù)程序?yàn)椤?“0AHAH型型” 中斷程序的準(zhǔn)備工作:置換中斷程序的準(zhǔn)備工作:置換0 0AHAH型中斷向量,即把型中斷向量,即把 用戶中斷的中

55、斷向量用戶中斷的中斷向量440 0AH AH 4 40AH+30AH+3單元單元 IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7日時(shí)鐘日時(shí)鐘鍵盤鍵盤IRQ3IRQ3IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6IRQ7IRQ7輔串口輔串口主串口主串口并口并口2 2軟盤軟盤并口并口1 1CSCSA0A0主片片選主片片選地址線地址線A0A0CAS2CAS20 0INTINTINTRINTRS2S20 0D7D7D0D0CPUCPUINTAINTARDRDWRWRSP/ENSP/ENS2S20 0INTAINTAIORIORIOWIOW主主8259

56、8259總線控制器總線控制器+5+5V V從從8259 8259 INTINT從從8259 8259 CAS2CAS20 0從從82598259相應(yīng)引腳相應(yīng)引腳中斷源中斷源 : 主板鍵盤接口電路主板鍵盤接口電路中斷類型:中斷類型: 9 9 鍵盤中斷全過程:鍵盤中斷全過程: 主板主板鍵盤接口電路鍵盤接口電路鍵盤中斷鍵盤中斷IR1 IR1 主主82598259A AINTRINTRDB7DB70 0CPUCPU并行掃描碼并行掃描碼鍵盤電路鍵盤電路串行掃描碼串行掃描碼 鍵盤接口分鍵盤接口分2 2部分:部分: 一部分裝在鍵盤盒內(nèi)一部分裝在鍵盤盒內(nèi)鍵盤電路鍵盤電路 另一部分裝在主機(jī)板另一部分裝在主機(jī)板鍵

57、盤接口電路,鍵盤接口電路,2 2 部分之間通過部分之間通過5 5芯電芯電 源連接。源連接。 主板主板鍵盤接口電路鍵盤接口電路鍵盤中斷鍵盤中斷IR1 IR1 主主82598259A AINTRINTRDB7DB70 0CPUCPU并行掃描碼并行掃描碼鍵盤電路鍵盤電路串行掃描碼串行掃描碼鍵盤電路以單片機(jī)為核心,加電后固化在單片機(jī)鍵盤電路以單片機(jī)為核心,加電后固化在單片機(jī) 內(nèi)部的鍵盤掃內(nèi)部的鍵盤掃描程序,不斷掃描每一個(gè)按健,一旦有鍵閉合,就把閉合鍵的掃描描程序,不斷掃描每一個(gè)按健,一旦有鍵閉合,就把閉合鍵的掃描碼(位置碼)碼(位置碼) 鍵盤接口電路。鍵盤接口電路。 鍵盤接口電路:鍵盤接口電路: 把串

58、行掃描碼通過移位寄存器轉(zhuǎn)換成并行掃描碼把串行掃描碼通過移位寄存器轉(zhuǎn)換成并行掃描碼口地址為口地址為6060H H的端的端口寄存器口寄存器 主板主板鍵盤接口電路鍵盤接口電路鍵盤中斷鍵盤中斷IR1 IR1 主主82598259A AINTRINTRDB7DB70 0CPUCPU并行掃描碼并行掃描碼鍵盤電路鍵盤電路串行掃描碼串行掃描碼串并轉(zhuǎn)換完畢,向主串并轉(zhuǎn)換完畢,向主82598259接中斷請求接中斷請求 CPUCPU響應(yīng)后,轉(zhuǎn)響應(yīng)后,轉(zhuǎn)9 9型服務(wù)程序型服務(wù)程序 鍵盤中斷處理流程鍵盤中斷處理流程 H H開中斷,保護(hù)現(xiàn)場(開中斷,保護(hù)現(xiàn)場(DSDS壓棧)壓棧) H H4040H DS H DS H H

59、從從6060H H口地址寄存器取并行掃描碼分析,處理轉(zhuǎn)口地址寄存器取并行掃描碼分析,處理轉(zhuǎn) 換成換成2 2字節(jié)鍵代碼存入鍵盤緩沖區(qū)字節(jié)鍵代碼存入鍵盤緩沖區(qū) H H向向82598259發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令 H H恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 IRET IRET 鍵盤緩沖區(qū)鍵盤緩沖區(qū) BIOS BIOS規(guī)定:系統(tǒng)規(guī)定:系統(tǒng)RAM 40:1EH RAM 40:1EH 40:3DH 40:3DH為鍵盤緩沖區(qū)共為鍵盤緩沖區(qū)共3232個(gè)單元,實(shí)際使用個(gè)單元,實(shí)際使用3030個(gè)單元,存放個(gè)單元,存放1515個(gè)鍵的鍵代碼。鍵盤緩個(gè)鍵的鍵代碼。鍵盤緩沖區(qū)是以沖區(qū)是以“先進(jìn)先出先進(jìn)先出”的規(guī)則存取。的規(guī)則存取。 由由

60、9 9型服務(wù)程序?qū)懭腈I代碼,用戶用型服務(wù)程序?qū)懭腈I代碼,用戶用INT 16HINT 16H訪問鍵盤緩訪問鍵盤緩沖區(qū),沖區(qū),鍵盤緩沖區(qū)鍵盤緩沖區(qū)是是9 9型硬中斷和型硬中斷和INT 16HINT 16H軟中斷之間交換軟中斷之間交換信息的緩沖區(qū)信息的緩沖區(qū) 。由鍵盤中斷處理由鍵盤中斷處理程序?qū)懭腈I代碼程序?qū)懭腈I代碼鍵盤緩沖區(qū)鍵盤緩沖區(qū)40:140:1E E40:3D40:3D由由INT 16HINT 16H讀取鍵代碼讀取鍵代碼 應(yīng)用背景應(yīng)用背景 在許多應(yīng)用中,在許多應(yīng)用中,需要每隔一定時(shí)間完成一次預(yù)定的操作需要每隔一定時(shí)間完成一次預(yù)定的操作定時(shí)操作定時(shí)操作。如定時(shí)數(shù)據(jù)采集、定時(shí)顯示、定時(shí)鍵盤掃描。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論