已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第 九 章 中斷系統(tǒng)與 8259A 中斷控制器,.1 中斷的基本概念,復(fù)習(xí)CPU與外設(shè)信息交換的控制方式種類 以查詢方式輸入為例,當(dāng)外設(shè)數(shù)據(jù)未準(zhǔn)備好時, CPU需要不斷查詢外設(shè)是否準(zhǔn)備好的狀態(tài),效率低,1.中斷方式示意 (以輸入中斷為例),中斷基本概念,2. 什么是中斷?,CPU暫停執(zhí)行現(xiàn)行程序,轉(zhuǎn)而處理隨機(jī)事件,處理完畢后再返回被中斷的程序,這一全過程稱為中斷。,3. 中斷源 能夠引發(fā)CPU中斷的信息源,(1)外部中斷源(硬件中斷源) I/O設(shè)備 如鍵盤、顯示器、打印機(jī) 數(shù)據(jù)通道 如磁帶、磁盤 時鐘 如8254 0#,由此引發(fā)的中斷 故障源 如掉電、存貯器奇偶校驗(yàn)錯 (2)內(nèi)部中斷源(軟件中斷源) 執(zhí)行INT軟件中斷指令 如執(zhí)行指令I(lǐng)NT 21H CPU指令執(zhí)行產(chǎn)生的異常 如被0除、單步執(zhí)行,中斷基本概念,選通信號,4. 具有中斷請求功能的輸入接口示意圖,輸 入 設(shè) 備,鎖 存 器 (8),三態(tài) 緩沖 器 (8),CPU 數(shù)據(jù)線,R D Q,+5 V,中斷請求 觸發(fā)器,Q D,中斷允許觸發(fā)器,數(shù)據(jù)線D0位,地址譯碼器,INTR,地址總線,IOW,IOR,控制口選中,數(shù)據(jù)口選中,中斷基本概念,5. 中斷系統(tǒng) 為實(shí)現(xiàn)中斷而采取的硬件和軟件的確集合。,6.中斷系統(tǒng)應(yīng)具備的基本功能,對于硬件中斷,接口電路應(yīng)具備屏蔽和開放的功能,這種功能由程序員通過軟件去控制。,能實(shí)現(xiàn)中斷判優(yōu)(中斷排隊(duì)),當(dāng)有多個中斷源提出請求時,應(yīng)能優(yōu)先響應(yīng)高級別的中斷源。,中斷基本概念,能夠?qū)崿F(xiàn)中斷嵌套,即高級別的中斷源能夠中斷低級別的中斷服務(wù)程序。,響應(yīng)中斷后,能自動轉(zhuǎn)入中斷處理,處理完畢能自動返回?cái)帱c(diǎn)。,設(shè)“B” 級別高于“A”,中斷基本概念,1. 開中斷指令 STI 功能:使F寄存器中I標(biāo)志置1,CPU處于開中斷狀態(tài)。,2. 關(guān)中斷指令 CLI 功能:使F寄存器中I標(biāo)志置0,CPU處于關(guān)中斷狀態(tài)。,3. 軟件中斷指令 INT n n為中斷類型碼,n為0255之間有定義的無符號整數(shù)。 功能:無條件轉(zhuǎn)向n型中斷服務(wù)子程序。,.2 80X86的中斷指令,INT n 指令的執(zhí)行過程CPU響應(yīng)軟件中斷的過程, F寄存器棧(保存INT n 之前的F狀態(tài)) 使F中的T標(biāo)志置0禁止單步操作 I標(biāo)志置0CPU處于關(guān)中斷狀態(tài), 斷口地址棧 先:斷口基地址(CS) 棧,后:斷口偏移地址(IP)棧, CPU從4n 4n+3單元取出n型服務(wù)程序入口地址 IP:CS,從而轉(zhuǎn)入n型中斷服務(wù)程序。,80X86中斷指令,4. 中斷返回指令 IRET,功能:依次從棧頂彈出6個元素 IP,CS,F 如果棧頂是INT n 的斷口地址,則執(zhí)行 IRET后,返回?cái)帱c(diǎn),否則不能。,執(zhí)行INT n 棧頂示意圖,執(zhí)行IRET 示意圖,sp ,IRET 是中斷服務(wù)子程序的出口指令,80X86中斷指令,.3 中斷向量,什么是中斷向量? 中斷向量是實(shí)模式下,中斷服務(wù)子程序的 入口地址,它由2部分組成: 服務(wù)程序所在代碼段的段基址 2 個字節(jié) 服務(wù)程序入口的偏移地址 2 個字節(jié),2. 中斷向量表,每個中斷都指定了一個類型碼,也稱為中斷號。 每一種中斷對應(yīng)有一個中斷服務(wù)程序(Interrupt Service Program ISP ),中斷類型碼通過一個地址指針表與中斷服務(wù)程序的入口地址相聯(lián)系: 實(shí)模式下: 該表稱為中斷向量表; 保護(hù)模式下:該表稱為中斷描述符表。,3. 中斷向量表的設(shè)置 CPU規(guī)定:在實(shí)模式下,中斷向量表需設(shè)置在系統(tǒng)的RAM最低端的1K單元 (00000H 003FFH),中斷向量,4. 中斷向量表的表地址與中斷類型的關(guān)系,如:“21H”型中斷向量:存放在84H 87H單元中 問:9CH型中斷向量存放在何處?,解: 9CH 4=1001110000=270H 9CH型中斷向量存于 270H 273H單元中,中斷向量,5. 中斷向量的引導(dǎo)作用,CPU響應(yīng)軟件中斷的過程,中斷向量,6. 中斷向量表的初始化,由BIOS設(shè)計(jì)的中斷服務(wù)程序(如INT 16H , INT 10H) 其中斷向量在加電時由BIOS負(fù)責(zé)寫入中斷向量表。,由DOS設(shè)計(jì)的中斷服務(wù)程序(如 INT 21H)其中斷向量是在啟動DOS時,由DOS負(fù)責(zé)寫入中斷向量表。,用戶程序開發(fā)的中斷服務(wù)程序,由用戶程序?qū)懭肫渲袛嘞蛄俊?中斷向量,問題:用戶如何向中斷向量表中寫入中斷向量?,中斷向量,方法一、用戶自己編寫程序填寫中斷向量 CLI PUSH DS MOV AX, 0000H MOV DS, AX MOV BX, 4*n MOV AX, OFFSET SERVICE MOV BX, AX MOV AX, SEG SERVICE MOV BX+2, AX POP DS STI,中斷向量,方法二、 DOS設(shè)計(jì)2個子程序,專門用于中斷向量的讀出、寫入, INT 21H 的35H子功能 功能:讀出n型中斷向量 入口:AL=中斷類型碼 出口:ES:BX=n型中斷向量, INT 21H 的25H子功能 功能:寫入n型中斷向量 入口:DS=中斷服務(wù)程序所在代碼段的段基址 DX=中斷服務(wù)程序入口的偏移地址 AL=中斷類型碼 出口:無,中斷向量,例:把用戶程序中以“TIMER”命名的中斷服務(wù)子程序 的入口地址 4 1CH 4 1CH+3單元,中斷向量,.4 系統(tǒng)中斷的分類,系統(tǒng)中斷的分類,1. CPU中斷,CPU中斷是指:CPU執(zhí)行某些操作而引發(fā)的中斷,這類中斷使用了0、1、3、4、6、7中斷號。,(1) 除法錯中斷 0型中斷,(2) 單步中斷 1型中斷,(3) 斷點(diǎn)中斷 3型中斷,(4) 溢出中斷 4型中斷,系統(tǒng)中斷的分類,2. 軟件中斷,執(zhí)行有定義的INT n指令而引發(fā)的中斷,稱為軟件中斷。,軟件中斷使用05H,10HFFH中的若干個中斷號。又分為:,(1) BIOS中斷 BIOS中斷,占用了05H、10H1FH中斷號,用戶程序執(zhí) 行相關(guān)的軟中斷指令可以調(diào)用相應(yīng)的中斷服務(wù)程序。,INT 05H 屏幕打印; INT 10H 屏幕顯示 I/O; INT 11H 設(shè)備配置檢測;,系統(tǒng)中斷的分類,INT 12H 測試內(nèi)存容量; INT 13H 磁盤I/O; INT 14H 串行通信 I/O; INT 15H BIOS擴(kuò)展功能; INT 16H 鍵盤I/O; INT 17H 打印機(jī)I/O; INT 18H 啟動PC機(jī)ROM BASIC(AT機(jī))無; INT 19H 重新裝入引導(dǎo)程序; INT 1AH 實(shí)時時鐘管理。,中斷號1DH,1EH,1FH,41H,46H也被BIOS占用了。但是,與這些中斷號對應(yīng)的并不是中斷服務(wù)程序。,系統(tǒng)中斷的分類,(2) DOS中斷 DOS中斷,又分為DOS專用中斷,DOS保留中斷,用戶可調(diào)用的 DOS中斷以及保留給用戶開發(fā)的中斷。,DOS專用中斷, 22H型中斷, 23H型中斷, 24H型中斷, 28H3FH型中斷,系統(tǒng)中斷的分類,用戶可調(diào)用的DOS中斷, 20H型中斷, 21H型中斷, 25H型中斷, 26H型中斷, 27H型中斷,用戶可開發(fā)的DOS中斷,DOS保留的中斷,系統(tǒng)中斷的分類,外部硬件中斷是由CPU以外的中斷請求而引發(fā)的。如果有多個中斷請求,怎樣連接至CPU呢?,8259A,.5 8259A中斷控制器,1. 8259A的內(nèi)部結(jié)構(gòu),讀/寫 邏輯,級連/緩沖 比較器,SP/EN,A0,控制邏輯,中斷 服務(wù) 寄存器 (ISR),優(yōu)先權(quán) 電路,中斷 請求 寄存器 (IRR),中斷屏蔽寄存器(IMR),內(nèi)部總線,CS,(1)中斷請求寄存器 ( IRR),寄存引腳IR0IR7的中斷請求信號,IRRi位置1,表明IRi引腳上有了中斷請求信號,8259A內(nèi)部結(jié)構(gòu),2. 中斷屏蔽寄存器 (IMR),寄存程序員寫入的中斷屏蔽字,屏蔽字某位=1(IMRi位=1),則與該位對應(yīng)的中斷請求信號(IRRi位)就不能送到中斷優(yōu)先權(quán)電路。,讀/寫 邏輯,級連/緩沖 比較器,SP/EN,A0,控制邏輯,中斷 服務(wù) 寄存器 (ISR),優(yōu)先權(quán) 電路,中斷 請求 寄存器 (IRR),中斷屏蔽寄存器(IMR),內(nèi)部總線,CS,8259A內(nèi)部結(jié)構(gòu),如: MOV AL , 11111100B OUT 屏蔽寄存器口地址,AL ;屏蔽IRR7 IRR2的請求開放IRR1,IRR0,如: IN AL,屏蔽寄存器口地址 AND AL,11110111B OUT 屏蔽寄存器口地址,AL ;開放IRR3的請求 ;對其它位的請求不改變屏蔽/開放的狀態(tài),8259A內(nèi)部結(jié)構(gòu),讀/寫 邏輯,級連/緩沖 比較器,SP/EN,A0,控制邏輯,中斷 服務(wù) 寄存器 (ISR),優(yōu)先權(quán) 電路,中斷 請求 寄存器 (IRR),中斷屏蔽寄存器(IMR),內(nèi)部總線,CS,3. 優(yōu)先權(quán)電路 (排隊(duì)電路),8259A內(nèi)部結(jié)構(gòu),比較CPU正為之服務(wù)的中斷源和剛進(jìn)入優(yōu)先權(quán)電路的中斷源,哪一個級別更高。,通過判優(yōu)選中其中級別最高的中斷源,然后通過控制電路,從INT端向CPU提中斷請求。,作用: 比較同時送達(dá)優(yōu)先權(quán)電路的中斷請求,哪一個 級別最高。,8259A內(nèi)部結(jié)構(gòu),讀/寫 邏輯,級連/緩沖 比較器,SP/EN,A0,控制邏輯,INT,INTA,中斷 服務(wù) 寄存器 (ISR),優(yōu)先權(quán) 電路,中斷 請求 寄存器 (IRR),中斷屏蔽寄存器(IMR),內(nèi)部總線,CS,4. 中斷控制電路,8259A內(nèi)部結(jié)構(gòu),作用: 寄存一組初始化命令字和操作命令字,通過譯碼產(chǎn) 生內(nèi)部控制信號 當(dāng)判優(yōu)電路選中一個中斷源時向CPU提中斷請求 (INT),8259A內(nèi)部結(jié)構(gòu),讀/寫 邏輯,級連/緩沖 比較器,SP/EN,A0,控制邏輯,INT,INTA,中斷 服務(wù) 寄存器 (ISR),優(yōu)先權(quán) 電路,中斷 請求 寄存器 (IRR),中斷屏蔽寄存器(IMR),內(nèi)部總線,CS,5. 中斷服務(wù)寄存器 (ISR),8259A內(nèi)部結(jié)構(gòu),ISR: 8位寄存器,ISRi位與IRRi位一一對應(yīng),作用: 記錄CPU正為之服務(wù)的是哪一個中斷源,怎樣記錄?,反之,如果ISR0位由1 0,表明IR0的中斷服務(wù)程序執(zhí)行完了,所以ISR的每一位都是響應(yīng)中斷源的中斷服務(wù)標(biāo)志位。,8259A內(nèi)部結(jié)構(gòu),6. 數(shù)據(jù)總線緩沖器,作用:完成與CPU數(shù)據(jù)線配接,接收初始化命令字,操作命令字,當(dāng)收到第二個中斷響應(yīng)脈沖時,通過他們 向CPU送出被選中的中斷源的中斷類型碼n,在這之后CPU從4n+04n+3單元取出n型中斷向量, 從而轉(zhuǎn)入n型服務(wù)程序。,8259A內(nèi)部結(jié)構(gòu),7. 讀/寫控制模塊 功能:接收片選信號CS 、端口選擇信號A0和讀寫控制信 號RD、WR。 一片8259A在系統(tǒng)中占用兩個口地址,用末位地址線A0選擇端口,其它地址線通過譯碼產(chǎn)生8259A的片選信號。,8. 級連/緩沖比較器,一位8259A可以管理8級中斷,二片8259A“級連”可管理15級中斷,級連/緩沖比較器是為完成多片8259A級連設(shè)置的模塊。,8259A內(nèi)部結(jié)構(gòu),8259A的管腳,2. 8259A的中斷過程CPU響應(yīng)硬件中斷的過程,首先由中斷請求寄存器寄存加到引腳IR0IR7上的中 斷請求。,在中斷屏蔽寄存器的管理下,沒有被屏蔽的中斷請求被 送到優(yōu)先權(quán)電路判優(yōu)。, 經(jīng)過優(yōu)先權(quán)電路的判別,選中當(dāng)前級別最高的中斷源,然 后從引腳INT向CPU發(fā)出中斷請求信號。,CPU滿足一定條件后,向8259A發(fā)出2個中斷響應(yīng)信號(負(fù)脈沖)。, 在實(shí)模式下,CPU從4n4n3單元取出該中斷源 的中斷向量IP、CS,從而引導(dǎo)CPU執(zhí)行該中斷源的 中斷服務(wù)程序。,3. 8259A的中斷管理方式,中斷觸發(fā)方式,邊沿觸發(fā) IRi出現(xiàn)上升沿表示有中斷請求 電平觸發(fā) IRi出現(xiàn)高電平表示有中斷請求,屏蔽中斷源的方式,常規(guī)屏蔽方式 MR屏蔽字決定了允許或禁止某位IRi所對應(yīng)的中斷:IMi=1 禁止, IMi=0 允許。 特殊屏蔽方式: 提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的特殊手段。 原理:假定當(dāng)前正在處理IR6,先進(jìn)入特殊屏蔽方式,然后設(shè)置IM6=1。這時,除IR6外的所有中斷請求均能得到響應(yīng)。 特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。,中斷優(yōu)先級管理方式 兩類優(yōu)先級控制方式:固定優(yōu)先級和循環(huán)優(yōu)先級 固定優(yōu)先級方式 所有中斷請求IRi的中斷優(yōu)先級固定不變 加電后8259A的默認(rèn)方式,默認(rèn)優(yōu)先級順序從高到低為IR0IR7,循環(huán)優(yōu)先級方式 .中斷源輪流處于最高優(yōu)先級,即自動中斷優(yōu)先級循環(huán) .某中斷請求IRi被處理后,其優(yōu)先級別自動降為最低,原來比它低一級的中斷上升為最高級,中斷嵌套方式 在中斷處理過程中允許被更高優(yōu)先級的事件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式: 普通全嵌套方式(默認(rèn)方式) 一中斷正被處理時,只有更高優(yōu)先級的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。 特殊全嵌套方式 一中斷正被處理時,允許同級或更高優(yōu)先級的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。,中斷結(jié)束處理方式,當(dāng)某一IRi中斷被服務(wù)時,ISR中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,則必須清零該ISRi位。使ISRi=0是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實(shí)現(xiàn)的。 三種EOI命令 自動EOI(AEOI)(自動EOI方式) 非指定EOI(NSEOI)(正常EOI方式) 指定EOI(SEOI)(特殊EOI方式),AEOI:在第2個INTA#結(jié)束時,由8259A使ISRi自動復(fù)位; 因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式 SEOI:由CPU發(fā)出一條SEOI命令,該EOI命令中指出了所要復(fù)位的ISR的位號。 用于特殊屏蔽方式 NSEOI:由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級最高的那一位復(fù)位。 用于普通全嵌套方式,4. 8259A的編程,8259A的控制命令分為 初始化命令字ICW ICW1ICW4 向8259A寫入ICW的過程稱為初始化編程 操作命令字OCW OCW1OCW3 向8259A寫入OCW的過程稱為操作方式編程,初始化命令字ICW(Initialization Command Word)通常是系統(tǒng)開機(jī)時,由 初始化程序填寫,且在整個系統(tǒng)工作過程中保持不變。初始化命令字必須按順 序填寫。,(1) ICW1,1 初始化命令字,1需要ICW4 0不需要ICW4,1單片8259A 0級連,86系統(tǒng)不用(通常為0),1電平觸發(fā)方式 0邊沿觸發(fā)方式,86系統(tǒng)不用(通常為0),A0 D7 D6 D5 D4 D3 D2 D1 D0,0,1 LTIM ADI SNGL ICW4,8259A的編程,1 T7 T6 T5 T4 T3 ,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,ICW2 設(shè)置中斷類型碼,注: T7T3 中斷向量類型碼高位, 由編程決定 低三位 自動設(shè)置為 IR0 IR7 的類型編碼(000 111),8259A傳送的中斷類型碼,8259A的編程,1 S7 S6 S5 S4 S3 S2 S1 S0,1IR輸入帶有一個 從控制器 0IR輸入不帶一個 從控制器,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,1 0 0 0 0 0 ID2 ID1 ID0,從控制器ID,編碼000111分別對應(yīng)該從片的INT往主片的IR0IR7哪個端子輸入。,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(3) ICW3 (主控制器),ICW3 (從控制器),8259A的編程,186 / 88模式 080 / 85模式,1自動EOI 0非自動EOI,0 X 非緩沖方式 1 0 緩沖方式/從控制器 1 1 緩沖方式/主控制器,1特殊完全嵌套方式 0非特殊完全嵌套方式,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(4) ICW4,0 0 0 SFNM BUF M / S AEOI PM,8259A的編程,8259A初始化編程流程圖,8259A的編程,由CPU向8259A送三個字節(jié)的操作命令字OCW(Operation Command Word), 用以規(guī)定8259A的工作方式,如: 中斷屏蔽 結(jié)束中斷 優(yōu)線權(quán)旋轉(zhuǎn) 中斷狀態(tài) 等。 操作命令字是在應(yīng)用程序中設(shè)置的,設(shè)置時,順序上沒有嚴(yán)格的要求。,2 操作命令字,8259A的編程,(1)OCW1,OCW1是中斷屏蔽命令字,命令格式如圖。 命令字中的M7M0對應(yīng)IMR的各位。Mi=1表示該中斷被屏蔽,Mi=0表示該中斷開放。,中斷結(jié)束命令字,命令格式如圖。 R、SL、EOI的不同組合決定了8259A的幾種工作方式。 L2L0 這幾位確定當(dāng)SL=1時指定的特殊結(jié)束或特殊循環(huán)時的中斷優(yōu)先級。最常用的常規(guī)EOI命令字為20H。,(2)OCW2,用于控制8259A的運(yùn)行方式。命令格式如圖。,(3)OCW3,8259A編程舉例,按以下要求初始化8259A: 端口地址為20H和21H; 中斷為上升沿觸發(fā);單片8259A;不寫ICW4; 與IR0-IR3對應(yīng)的中斷向量碼為08H-0BH; IR4-IR7不使用。 根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下: ICW1 = 00010010 = 12H ICW2 = 08H 中斷向量碼 OCW1 = 11110000 = 0F0H 中斷屏蔽字,初始化程序如下: INIT8259A: MOV DX,20H ;A0=0,寫ICW1 MOV AL,12H ;上升沿觸發(fā),單片,不寫ICW4 OUT DX,AL MOV DX,21H ;A0=1,寫ICW2,OCW1 MOV AL,08H ;ICW2 OUT DX,AL MOV AL,0F0H ;OCW1:屏蔽IR4-IR7 OUT DX,AL,5. 286以上微機(jī)的8259A中斷管理方式,系統(tǒng)加電后由BIOS對8259A初始化編程,設(shè)定中斷管理方式 :, 中斷屏蔽方式采用常規(guī)屏蔽方式 即應(yīng)用時,向8259A中斷屏蔽寄存器寫入適當(dāng)屏蔽字即可 屏蔽/開放某一級中斷。, 中斷源為固定優(yōu)先級 即IR0中斷請求級別最高,IR7中斷請求級別最低。,采用常規(guī)中斷結(jié)束方式 即在中斷服務(wù)子程序結(jié)束之前向8259送中斷結(jié)束命令。,6286以上的微機(jī),對8259A的編程,對8259A編程分二步進(jìn)行:,對8259A進(jìn)行初始化編程 系統(tǒng)加電后,由BIOS完成 對8259A進(jìn)行應(yīng)用編程 編寫中斷程序時完成,有2項(xiàng)內(nèi)容:,每一個硬件中斷服務(wù)程序結(jié)束前必須向8259A送中斷 命令字,通知8259A本次中斷結(jié)束,否則8259A不能響 應(yīng)同一中斷源的下次中斷。,需要時,向8259A中斷屏蔽寄存器寫入屏蔽字。,8259A收到中斷結(jié)束命令后,把ISR中的置1位清0!,1. 概述,硬件中斷分類:可屏蔽中斷,非屏蔽中斷 CPU有2個接收中斷請求信號的引腳。,可屏蔽中斷: 輸入到INTR引腳的中斷請求信號, 引發(fā)的中斷。,非屏蔽中斷: 輸入到NMI引腳的中斷請求信號, 引發(fā)的中斷。,.6 PC/AT 可屏蔽中斷,有可屏蔽中斷請求,沒有DMA請求,沒有非屏蔽中 斷請求,響應(yīng)非屏蔽中斷的條件 有非屏蔽中斷請求,沒有DMA請求 一條指令執(zhí)行完,響應(yīng)可屏蔽中斷的條件,CPU一條指令執(zhí)行完畢,硬件中斷的級別 DMA請求級別高于非屏蔽中斷高于可屏蔽中斷。,CPU處于開中斷狀態(tài)(I標(biāo)=1),2. 可屏蔽中斷的硬件結(jié)構(gòu),可屏蔽中斷硬件結(jié)構(gòu)(1),可屏蔽中斷硬件結(jié)構(gòu)(2),使用2片8259級連,管理15級中斷,中斷源與中斷類型,硬件可屏蔽中斷的中斷級別,系統(tǒng)分配的8259口地址,中斷結(jié)束命令, 命令字=20H,接入從8259的中斷源,其服務(wù)程序結(jié)束應(yīng)分別向 主、從8259各送一個中斷結(jié)束命令字 。, 中斷的引發(fā)方式不同, CPU獲取中斷類型碼的方式不同, CPU響應(yīng)的條件不同,中斷處理程序的結(jié)束方式不同,3硬件中斷和軟件中斷的區(qū)別,4. 硬件可屏蔽中斷例, 中斷源: 系統(tǒng)8254 0#計(jì)數(shù)器,每55ms有一次中斷請求, 中斷類型: 8型,(1)日時鐘中斷,CPU轉(zhuǎn)入8型中斷后,完成下列工作 開中斷,保護(hù)現(xiàn)場(DS壓棧) 40H DS,對“日時鐘計(jì)數(shù)器”加1 測算軟驅(qū)馬達(dá)關(guān)閉時間, 向主8259送中斷結(jié)束命令 恢復(fù)現(xiàn)場,IRET, 執(zhí)行INT 1CH, 日時鐘中斷處理流程:, 什么是“日時鐘計(jì)數(shù)器”,BIOS系統(tǒng)規(guī)定:40H:6CH40H:6FH這4個單元 (共32位)為日時鐘計(jì)數(shù)器,每55ms加1次,計(jì)數(shù) 到:001800B0H,為24小時,其計(jì)數(shù)值供系統(tǒng)軟件使用。,系統(tǒng)啟動時CPU執(zhí)行BIOS中的一段程序,讀取CMOS實(shí) 時時鐘電路的時間值計(jì)數(shù)值40:6CH40:6FH做 為日時鐘計(jì)數(shù)器的計(jì)數(shù)初值。,關(guān)于1CH服務(wù)程序 8#服務(wù)程序,每隔55ms在DS=40H的前提下,調(diào)用一次1CH服務(wù)程序,之后又返回8型!,所以1CH中斷是日時鐘的外擴(kuò)中斷,用戶可開發(fā)新的1CH中斷(完成每55ms一次的定時操作)取代原來的中斷服務(wù)子程序。,(2)用戶中斷, 中斷源: 系統(tǒng)總線插槽B4端引入的用戶設(shè)計(jì)的硬件中斷請求信號,用戶中斷請求的途徑,用戶 中斷 請求,用戶中斷請求從ISA總線B4端子(IRQ9)引入,經(jīng)過主8259,從8259二級中斷管理,最后由主8259向CPU提中斷。,只有從8259IMR1置0,主8259IMR2置0,其中斷請求方能送到CPU。,實(shí)現(xiàn)用戶中斷必須對主、從8259應(yīng)用編程,保證中斷申請由8259中斷控制器提向CPU,IN AL,0A1H AND AL,11111101B OUT 0A1H,AL ;開放用戶中斷 IN AL,21H AND AL,11111011B OUT 21H,AL ;開放從8259中斷,BIOS為“71H型”設(shè)計(jì)的服務(wù)程序如下: PUSH AX MOV AL,20H OUT 0A0H,AL POP AX INT 0AH,用戶中斷的中斷類型 CPU響應(yīng)用戶中斷后,自動轉(zhuǎn)向“71H型”服務(wù)程序,用戶中斷服務(wù)程序結(jié)束 若用戶中斷定義為0AH型, 服務(wù)程序結(jié)束前只向主8259送結(jié)束命令, 若用戶中斷定義為71H 服務(wù)程序結(jié)束前,向主從8259各送一中斷結(jié)束命令,用戶定義的中斷服務(wù)程序有兩個設(shè)計(jì)方法:, 定義用戶中斷服務(wù)程序?yàn)椤?1H型” 中斷程序的準(zhǔn)備工作:置換71H型中斷向量,即把用戶 中斷的中斷向量471H 471 H+3單元, 定義用戶中斷服務(wù)程序?yàn)椤?AH型” 中斷程序的準(zhǔn)備工作:置換0AH型中斷向量,即把 用戶中斷的中斷向量40AH 40AH+3單元,(3) 鍵盤中斷,中斷源 : 主板鍵盤接口電路 中斷類型: 9 鍵盤中斷全過程:,鍵盤接口分2部分: 一部分裝在鍵盤盒內(nèi)鍵盤電路 另一部分裝在主機(jī)板鍵盤接口電路,2 部分之間通過5芯電 源連接。,鍵盤電路以單片機(jī)為核心,加電后固化在單片機(jī) 內(nèi)部的鍵盤掃描程序,不斷掃描每一個按健,一旦有鍵閉合,就把閉合鍵的掃描碼(位置碼) 鍵盤接口電路。,鍵盤接口電路:, 把串行掃描碼通過移位寄存器轉(zhuǎn)換成并行掃描碼口地址為60H的端口寄存器,串并轉(zhuǎn)換完畢,向主8259接中斷請求, CPU響應(yīng)后,轉(zhuǎn)9型服務(wù)程序, 鍵盤中斷處理流程,開中斷,保護(hù)現(xiàn)場(DS壓棧),40H DS,從60H口地址寄存器取并行掃描碼分析,處理轉(zhuǎn) 換成2字節(jié)鍵代碼存入鍵盤緩沖區(qū),向8259發(fā)中斷結(jié)束命令,恢復(fù)現(xiàn)場 IRET,鍵盤緩沖區(qū),BIOS規(guī)定:系統(tǒng)RAM 40:1EH 40:3DH為鍵盤緩沖區(qū)共32個單元,實(shí)際使用30個單元,存放15個鍵的鍵代碼。鍵盤緩沖區(qū)是以“先進(jìn)先出”的規(guī)則存取。,由9型服務(wù)程序?qū)懭腈I代碼,用戶用INT 16H訪問鍵盤緩沖區(qū),鍵盤緩沖區(qū)是9型硬中斷和INT 16H軟中斷之間交換信息的緩沖區(qū) 。,.7 實(shí)模式下的定時中斷程序設(shè)計(jì),應(yīng)用背景 在許多應(yīng)用中,需要每隔一定時間完成一次預(yù)定的操作定時操作。如定時數(shù)據(jù)采集、定時顯示、定時鍵盤掃描等,而采用定時中斷技術(shù)實(shí)現(xiàn)這種操作具有實(shí)時性好、占用CPU資源較少的特點(diǎn)。,一、定時中斷程序的設(shè)計(jì)方法 1.定時中斷源的選擇 系統(tǒng)8254 0#計(jì)數(shù)器, 外擴(kuò)8254作為定時中斷源,2.確定中斷服務(wù)程序的類型 中斷類型由定時中斷源接入8259A的中斷引腳IRx有關(guān)。 如果中斷源是外擴(kuò)定時器,由從8259A的IR1引腳引入,則服務(wù)程序應(yīng)定義為0AH或71H型。 如果中斷源是系統(tǒng)8254的0#計(jì)數(shù)器,并且定時周期是55ms的整數(shù)倍,則定義用戶服務(wù)程序?yàn)?CH型,取代系統(tǒng)的1CH型服務(wù)程序。 如果中斷源是系統(tǒng)8254的0計(jì)數(shù)器,但定時周期55ms的整數(shù)倍,則應(yīng)重新對8254 0計(jì)數(shù)器進(jìn)行初始化。,定時周期不等于55ms整數(shù)倍的處理框圖,3.置換中斷向量 服務(wù)程序的類型確定之后,應(yīng)置換相應(yīng)的中斷 向量(使用INT21H的25H和35H子功能)。 4.開放8259A中斷,從系統(tǒng)硬件中斷的結(jié)構(gòu)圖可知: 用戶中斷要經(jīng)過從8259A、主8259A兩級中斷控制器的管理,為了使用戶中斷請求送到CPU,應(yīng)將從8259A的IMR的D1位置0,主8259A的IMR的D2位置0,從而打通用戶中斷請求的通道。,一般說,各種型號的主機(jī)板對日時鐘中斷都是開放 的,用戶不必再采取措施。,5 .避免“DOS重入”,“DOS 重入”示意圖,: : : INT21H,現(xiàn)行程序,21H型服務(wù)程序 : : IRET,有中斷請求,: : INT 21H,DOS不允許重入,6中斷服務(wù)程序的執(zhí)行時間 必須遠(yuǎn)遠(yuǎn)小于定時中斷的時間間隔,7. 中斷結(jié)束向8259A發(fā)中斷結(jié)束命令,定時中斷周期T1,服務(wù)程序執(zhí)行時間,IRX,T2 T1,T2,二.定時中斷程序結(jié)構(gòu),之一,主程序,關(guān)中斷 *中斷源初始化 置換中斷向量 其他準(zhǔn)備工作 開中斷,等待中斷,* 恢復(fù)系統(tǒng)資源 恢復(fù)中斷向量 返回DOS,服務(wù)程序,保護(hù)現(xiàn)場,定時時間到?,執(zhí)行定時操作,向8259A送結(jié)束命令 恢復(fù)現(xiàn)場 IRET,Y,N,避免DOS 重入,特點(diǎn):服務(wù)程序 直接進(jìn)行定時操作,* 表示視具體情況而定,程序結(jié)束前,之二,主程序,關(guān)中斷 * 中斷源初始化 置換中斷向量 其他準(zhǔn)備工作 開中斷,* 恢復(fù)系統(tǒng)資源 恢復(fù)中斷向量 返回DOS,保護(hù)現(xiàn)場,定時時間到?,設(shè)置“時間到”標(biāo)志,向8259A送結(jié)束命令 恢復(fù)現(xiàn)場 IRET,Y,N,“時間到”標(biāo)志可利用數(shù)據(jù)段某單元或某個空閑寄存器,特點(diǎn):服務(wù)程序不直接進(jìn)行定時操作,而是建立“時間到”標(biāo)志。由主程序判斷時間到標(biāo)志再進(jìn)行定時操作。,* 表示視具體情況而定,其它操作,有無“時間到”標(biāo)志?,執(zhí)行定時操作,Y,程序是否需要結(jié)束?,N,Y,服務(wù)程序,N,三定時中斷程序舉例,【例9.8.1】1CH型中斷的應(yīng)用 假設(shè)微機(jī)系統(tǒng)外擴(kuò)了共陰級數(shù)碼管電路(見下頁),要求使用系統(tǒng)定時源并采用中斷方式每隔一秒完成一次8字左移,循環(huán)往復(fù),直到主機(jī)鍵盤按下任意鍵時停止。,a,b,c,d,e,f,g,h,共陰級數(shù)碼管結(jié)構(gòu),h,a,b,c,d,e,f,g,h,8位鎖存器(位選),(200H選中),D0,D1,D2,D3,D4,D5,D6,D7,D0-D7,8位鎖存器(段選),(201H選中),D0,D7,D6,D5,D4,D3,D2,D1,a,b,c,d,e,f,g,h,CS,CS,(反相輸出),COM,COM,COM,COM,COM,COM,數(shù)碼管顯示原理 使用段選碼和位選碼進(jìn)行控制。 段選碼:顯示什么字符。6個數(shù)碼管的同名段共享連接,即D0-a;D1-b;D6-g;D7-h 。顯示字符“8”的段選碼是7FH。 位選碼:選擇被點(diǎn)亮的LED(僅D5-D0有效)。 點(diǎn)亮右邊第1個LED,位選碼為00100000B 點(diǎn)亮右邊第2個LED,位選碼為00010000B : : 點(diǎn)亮左邊第1個LED,位選碼為00000001B,設(shè)計(jì)思路 主要解決四個問題: (1)字符“8”的顯示控制問題,包括段選碼和位選碼; (2)定時時間間隔1秒鐘如何實(shí)現(xiàn); (3)每隔一秒鐘“8”如何左移一位顯示; (4)顯示過程如何結(jié)束,MOV DX,201H MOV AL,7FH ;“8”段碼 OUT DX, AL MOV DX,200H MOV AL,Origin ;位碼 OUT DX, AL,SHR Origin,1 :,SCAN:MOV AL,1 INT 16H JZ SCAN 結(jié)束準(zhǔn)備,定時程序由主程序和1CH型中斷程序組成,主程序,圖9-18 【例9.8.1】程序框圖,關(guān)中斷 轉(zhuǎn)移系統(tǒng)的1CH型中斷向量 寫入用戶的1CH型中斷向量 第6位數(shù)碼管顯示“8”字符 開中斷,有鍵入?,N,恢復(fù)系統(tǒng)的1CH型中斷向量 返回DOS,Y,SCAN:MOV AH,1 INT 16H JZ SCAN,CALL RESET MOV AH,4CH INT 21H,1CH型中斷服務(wù)程序,保護(hù)現(xiàn)場 重新定義用戶數(shù)據(jù)段 中斷計(jì)數(shù),滿18次?,18中斷計(jì)數(shù)單元 ”8”字左移一位,Y,N,恢復(fù)現(xiàn)場 中斷返回,【程序清單】 ;FILENAME:891.ASM .486 DATA SEGMENT USE16 ;數(shù)據(jù)段定義 OLD1C DD ? ICOUNT DB 18 ;中斷計(jì)數(shù)初值 ORIGIN DB 20H ;數(shù)碼管位選初值 DATA ENDS CODE SEGMENT USE16 ;代碼段 ASSUME CS:CODE,DS:DATA START: MOV AX, DATA ;DS段賦值 MOV DS, AX CLI ;關(guān)中斷 CALL READ1C CALL WRITE1C MOV DX,201H MOV AL,7FH OUT DX, AL ;輸出“8”的字型碼 MOV DX,200H MOV AL,ORIGIN OUT DX, AL ;定位顯示 STI ;開中斷,SCAN: MOV AH,1 INT 16H ;有鍵入? JZ SCAN ;否,轉(zhuǎn)移 CALL RESET MOV AH,4CH ;返回DOS INT 21H ;-以下為中斷服務(wù)程序 - SERVICE PROC PUSHA ;保護(hù)現(xiàn)場 PUSH DS MOV AX,DATA ;注意:重新給DS賦值。 MOV DS, AX DEC ICOUNT ;中斷計(jì)數(shù) JNZ EXIT ;不滿18次轉(zhuǎn)移 MOV ICOUNT,18 ;滿18次,重新賦計(jì)數(shù)初值,SHR ORIGIN,1 JNC NEXT ;沒有顯示到最左端,轉(zhuǎn)移 MOV ORIGIN, 20H ;已顯示到最左端,重新賦初值 NEXT: MOV AL,ORIGIN MOV DX,200H OUT DX, AL ;“8”字左移一位 EXIT: POP DS POPA ;注意:不需給8259A送中斷結(jié)束命令。 IRET ;返回系統(tǒng)8型中斷服務(wù)程序 SERVICE ENDP ;- READ1C PRO
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024門禁工程合同
- 2024閘門采購合同模板大全
- 2024榨菜種植與農(nóng)業(yè)電商人才培訓(xùn)合作合同3篇
- 2025年度文化旅游代理股權(quán)轉(zhuǎn)讓及項(xiàng)目運(yùn)營合同4篇
- 2025年度智能社區(qū)視頻監(jiān)控系統(tǒng)工程承包協(xié)議4篇
- 2025年度應(yīng)急物流承運(yùn)商合作協(xié)議范本4篇
- 2024音樂制作合同:錄音工作室合同范本版B版
- 2025年度桉樹苗木線上線下融合發(fā)展合同3篇
- 2025年度知識產(chǎn)權(quán)運(yùn)營丨合伙人共同運(yùn)營專利技術(shù)的合同4篇
- 2024舞臺建設(shè)施工合同協(xié)議書
- 2024版智慧電力解決方案(智能電網(wǎng)解決方案)
- 公司SWOT分析表模板
- 小學(xué)預(yù)防流行性感冒應(yīng)急預(yù)案
- 肺癌術(shù)后出血的觀察及護(hù)理
- 聲紋識別簡介
- 生物醫(yī)藥大數(shù)據(jù)分析平臺建設(shè)-第1篇
- 基于Android的天氣預(yù)報系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 沖鋒舟駕駛培訓(xùn)課件
- 美術(shù)家協(xié)會會員申請表
- 聚合收款服務(wù)流程
- 中石化浙江石油分公司中石化溫州靈昆油庫及配套工程項(xiàng)目環(huán)境影響報告書
評論
0/150
提交評論