h5123微機接口技術(shù)_第1頁
h5123微機接口技術(shù)_第2頁
h5123微機接口技術(shù)_第3頁
h5123微機接口技術(shù)_第4頁
h5123微機接口技術(shù)_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第五章第五章 微機接口技術(shù)微機接口技術(shù) 本章要求: 1. 掌握接口的概念、功能及一般設(shè)計方法。 2. 掌握三種I/O控制方式傳輸數(shù)據(jù)的工作過程。 3. 掌握中斷、中斷向量、中斷向量表、中斷類型碼等概念,MPU對中斷的響應(yīng)過程。 3. 了解可編程中斷控制器8259A的內(nèi)部結(jié)構(gòu)和功能,掌握其初始化命令字ICW1ICW4和工作命令字OCW1OCW3的設(shè)置方法,并對常用的一些工作方式會應(yīng)用。 4. 掌握直接存儲器存?。―MA)方式的工作原理及相關(guān)概念;了解DMAC8237A的工作方式、編程及應(yīng)用。2 I/O設(shè)備是計算機系統(tǒng)的重要組成部分。MPU與外部設(shè)備交換信息是計算機系統(tǒng)中十分重要、十分頻繁的操作

2、。 程序 原始數(shù)據(jù) 計算結(jié)果 現(xiàn)場信息 控制信號 輸入設(shè)備 輸出設(shè)備(鍵盤、鼠標(biāo)、 (CRT、打印機、D/A等)A/D、開關(guān)量) 計算機3 MPU 微型計算機 存儲器(ROM、RAM) I/O接口電路 局部總線 電源 外部設(shè)備 軟件為何需要為何需要I/O接口?接口? 工作速度差異較大。 通過接口連接來協(xié)調(diào)各部分工作,實現(xiàn)數(shù)據(jù)傳送同步。 4 I/O接口的功能:接口的功能: 地址譯碼,進行設(shè)備選擇; 數(shù)據(jù)緩沖,協(xié)調(diào)速度; 信息轉(zhuǎn)換(A/D、D/A、并 串); 提供命令或狀態(tài)信息; 定時和控制。5地址譯碼:地址譯碼:例如例如3:8譯碼器(譯碼器(74LS138)I/O空間:空間:I/O設(shè)備地址設(shè)備地

3、址 2種方式:種方式: 與內(nèi)存統(tǒng)一編址(與內(nèi)存統(tǒng)一編址(無無專門的專門的I/O指令)指令) 獨立編址(獨立編址(有有專門的專門的I/O指令)指令)80X86 MPU采用采用I/O獨立編址:獨立編址: AB150 :訪問:訪問216= 64KB 6輸入輸入/輸出指令(輸出指令(236節(jié))節(jié)) 一輸入指令一輸入指令 格式:IN DEST,SRC DEST為AL、AX或EAX; SRC是端口地址, 可以直接給出直接給出8位端口地址位端口地址(0-255), 或由由DX寄存器以間接形式寄存器以間接形式給出。 功能:根據(jù)源操作數(shù)SRC給出的端口地址,將操作數(shù)從指定端口傳送到目的操作數(shù)DEST處。 7 例

4、2.73 IN AL,10H IN AX,20H IN EAX,30H MOV DX,300H IN AL,DX IN AX,DX IN EAX,DX8 二輸出指令二輸出指令 格式:OUT DEST,SRC 功能:將源操作數(shù)SRC送到目的操作數(shù)DEST所指定的端口。 其中源操作數(shù)SRC為AL,AX或EAX,目的操作數(shù)可以8位端口地址方式直接給出或以DX寄存器間接方式給出。 例:OUT 60H,AL OUT DX,AL 9 使用輸入、輸出指令應(yīng)注意:使用輸入、輸出指令應(yīng)注意: 直接尋址直接尋址方式端口地址為8位,共有0255個端口地址; 間接尋址間接尋址方式,只能用DX作為地址寄存器,尋址范圍為

5、64K字節(jié); 每個I/O地址對應(yīng)的端口的數(shù)據(jù)長度為8位,傳送8位數(shù)據(jù)占用一個端口地址,傳送16位數(shù)據(jù)占用2個端口地址,傳送32位數(shù)據(jù)占用4個端口地址。 105 51 I/O1 I/O控制控制 輸入數(shù)據(jù)的過程:輸入數(shù)據(jù)的過程: 外設(shè)把數(shù)據(jù)送入I/O接口的數(shù)據(jù)輸入緩存器; 微處理器執(zhí)行輸入指令, I/O地址通過地址總線尋址該輸入緩存器,將其中的數(shù)據(jù)送到系統(tǒng)數(shù)據(jù)總線上; 微處理器從系統(tǒng)數(shù)據(jù)總數(shù)上讀取數(shù)據(jù),存入相應(yīng)寄存器中。 11輸出數(shù)據(jù)的過程:輸出數(shù)據(jù)的過程: 微處理器執(zhí)行輸出指令, 把接口的地址放在系統(tǒng)地址總線上,選擇某一接口的數(shù)據(jù)緩存器; 把需輸出的數(shù)據(jù)放在系統(tǒng)數(shù)據(jù)總線上,并送入已尋址的接口的相

6、應(yīng)數(shù)據(jù)緩存器中; 外設(shè)確認數(shù)據(jù)有效后,從該數(shù)據(jù)緩存器讀取數(shù)據(jù)。12如何知道外設(shè)準備就緒如何知道外設(shè)準備就緒 ? 四種四種I/O控制方式:控制方式: 程序查詢方式; 中斷驅(qū)動方式; 直接存儲器存取方式(DMA); 專用I/O處理器方式。MPU 與I/O間還有一種最簡單的無條件傳送方式。 13 5.1.2 程序查詢程序查詢 方法:方法:MPU主動、反復(fù)查詢I/O設(shè)備的狀態(tài),了解設(shè)備是否準備好,是否需要服務(wù),如果需要服務(wù)則轉(zhuǎn)入相應(yīng)的設(shè)備服務(wù)程序;如果外設(shè)未準備好,不需要服務(wù),MPU則繼續(xù)查詢,或者先做一段時間其它事后再接著查詢。 特點特點:I/O操作由MPU啟動。 接口電路包括:數(shù)據(jù)端口數(shù)據(jù)端口、狀

7、態(tài)端口狀態(tài)端口。14 1. 查詢式數(shù)據(jù)輸入過程查詢式數(shù)據(jù)輸入過程 :15 2. 查詢式數(shù)據(jù)輸出過程查詢式數(shù)據(jù)輸出過程 16 3. 當(dāng)系統(tǒng)中有多個I/O設(shè)備時,MPU對所有外設(shè)采取循環(huán)查詢方式。各各I/O設(shè)備狀態(tài)標(biāo)志位處理:設(shè)備狀態(tài)標(biāo)志位處理: 每個設(shè)備一個狀態(tài)端口,分別查詢; 各狀態(tài)標(biāo)志集中,統(tǒng)一一個專用狀態(tài)端口; 在狀態(tài)端口前加一個優(yōu)先權(quán)編碼器。 程序查詢的特點程序查詢的特點 :MPU主動,接口電路和查詢軟件比較簡單 ,但MPU 效率低。適用于實時性要求不高、或微機操作比較單一、不繁忙的情況。175 52 2 中斷控制中斷控制 521 基本中斷控制方式基本中斷控制方式 中斷的概念:中斷的概念

8、:當(dāng)I/O設(shè)備需要MPU服務(wù)時通過其接口發(fā)出中斷請求信號,MPU在收到中斷請求后,中斷正在執(zhí)行的程序,保護斷點,轉(zhuǎn)去為相應(yīng)外設(shè)服務(wù),執(zhí)行一個相應(yīng)的中斷服務(wù)子程序;中斷服務(wù)結(jié)束,恢復(fù)斷點,返回原來被中斷的程序繼續(xù)執(zhí)行。 特點:特點: I/O設(shè)備與MPU并行工作,MPU處于被動工作方式。 節(jié)省MPU時間,提高效率,實時響應(yīng)。適用于數(shù)據(jù)采集、處理和控制系統(tǒng)。 但需中斷邏輯電路支持,硬件較復(fù)雜。1852 中斷控制19 522 中斷判決與控制中斷判決與控制 當(dāng)系統(tǒng)有多個中斷源時,存在: 幾個中斷源同時提出中斷請求; 一個未處理完又有新的中斷請求提出。 中斷源的識別與判優(yōu)(軟硬件結(jié)合):中斷源的識別與判優(yōu)

9、(軟硬件結(jié)合): 20中斷源的識別與判優(yōu)(軟硬件結(jié)合):中斷源的識別與判優(yōu)(軟硬件結(jié)合): 一些微處理器芯片上已按一定優(yōu)先級算法 (例如固定優(yōu)先級算法)設(shè)計好了相應(yīng)的并行判決中斷控制器,用戶只需根據(jù)中斷的優(yōu)先級情況對應(yīng)地與各有關(guān)中斷請求線相連即可。 當(dāng)中斷源超過MPU所提供的中斷輸入線數(shù)目時,一方面要判別出多個中斷源的優(yōu)先級別,另一方面要根據(jù)選中的中斷源引導(dǎo)程序進入相應(yīng)的中斷處理程序。通常有程序查詢式和中斷向量式兩種解決方法。 21 1. 程序查詢式程序查詢式(軟件):(軟件):需一個中斷請求鎖存器 ,對鎖存器查詢的次序決定了中斷源的優(yōu)先級別 。 特點:特點:硬件簡單,通過軟件即可改變優(yōu)先級。

10、但中斷源多時,響應(yīng)速度慢。22 2中斷向量式中斷向量式(硬件): 方法:方法: 菊花鏈優(yōu)先級判決; 并行優(yōu)先級判決 。 特點:特點:由中斷源的中斷向量轉(zhuǎn)入服務(wù)程序,響應(yīng)快,但硬件開銷大。2324 523 80X86實模式中斷實模式中斷 1中斷向量表:中斷向量表: 物理地址00000003FFH處、表長1KB字節(jié)的一塊區(qū)域; 每個表項占4個字節(jié),存放一個中斷向量個字節(jié),存放一個中斷向量(中斷服務(wù)程序的入口地址); 可存儲256個中斷向量個中斷向量,中斷類型號中斷類型號0255(8位)。 每個中斷向量的前兩個字節(jié)為中斷服務(wù)程序的入口偏移地址,后兩個字節(jié)裝入的是入口段地址。25 ( P197 表5.

11、1 、 表5.2)26 2Pentium的中斷類型的中斷類型 Pentium的中斷向量表的長度也保持為1KB字節(jié),包含256種類型的中斷和異常??煞譃?種類型: (1)外部硬件中斷(可屏蔽中斷):INTR腳,受IF位控制; (2)不可屏蔽中斷:NMI引腳,不受IF位控制,類型碼2; (3)軟件中斷:中斷類型碼n(INT0、INT3等); (4)內(nèi)部中斷和異常:執(zhí)行一條指令過程中,出現(xiàn)錯誤等不正常條件而引發(fā)的,由內(nèi)部硬件自動測試,類型碼固定。 27 MPU內(nèi)部中斷機構(gòu)判優(yōu)規(guī)則(優(yōu)先級):內(nèi)部中斷機構(gòu)判優(yōu)規(guī)則(優(yōu)先級): 高 內(nèi)部中斷和異常; 軟件中斷INT; 非屏蔽中斷NMI; 可屏蔽中斷INT

12、R; 低 單步中斷。 28實方式中斷操作:實方式中斷操作: 獲取中斷類型取得類型碼的途徑獲取中斷類型取得類型碼的途徑(三種): 第一種是固定的。例如不可屏蔽中斷其中斷類型碼固定為2,除數(shù)為0中斷類型碼固定為0,根據(jù)MPU內(nèi)部執(zhí)行機構(gòu)檢測到的故障現(xiàn)象或滿足中斷產(chǎn)生的條件時,自動指定中斷類型碼。 第二種是指令給出的。如軟件中斷指令I(lǐng)NT n中的n即為中斷類型號。INT3和INTO指令也分別指定中斷類型號3和4。 第三種是外部提供的,這是指外部硬件中斷(可屏蔽中斷INTR)。在處理器接收到有效的INTR信號后,若IF位=1,則產(chǎn)生一個中斷響應(yīng)總線周期,從外部的中斷控制器讀取對應(yīng)此中斷請求的中斷類型碼

13、。 29 MPU響應(yīng)中斷過程響應(yīng)中斷過程(MPU自動進行自動進行): 標(biāo)志寄存器(E)FLAGES內(nèi)容壓入堆棧。 清除中斷標(biāo)志(IF)與陷井標(biāo)志 (TF),禁止INTR引腳和陷井或單步操作。 將代碼段寄存器 (CS)內(nèi)容壓入堆棧。 將指令指針 (IP)內(nèi)容壓入堆棧。 取出中斷向量內(nèi)容置入IP與CS中,從而下一條指令就是向量尋址的中斷服務(wù)程序中的指令。 中斷返回:中斷返回:執(zhí)行IRET指令 IP出棧; CS出棧; (E)FLAGES出棧。30 保護方式中斷操作:保護方式中斷操作: 保護方式使用中斷描述符表中斷描述符表 (IDT),中斷描述符表不同于實方式下的中斷向量表,表中存放256個中斷描述符

14、,每個描述符為8字節(jié),中斷描述符表長為2568(2K)字節(jié),中斷描述符表在內(nèi)存中存放的起始內(nèi)存位置,由中斷描述符表地址寄存器(IDTR) 指定。 以中斷類型碼乘以8作為訪問IDT的偏移量,取出指定的表項。IDT中每一項為中斷門、陷阱門或任務(wù)門描述符,其內(nèi)容為段選擇符、32位偏移地址以及段屬性包含P位(存在)和DPL位描述中斷的特權(quán)級等。31保護方式中斷尋址32 保護方式下當(dāng)處理器決定響應(yīng)本次中斷/異常請求時,執(zhí)行以下序列操作: 若中斷處理的MPU控制權(quán)轉(zhuǎn)換涉及到特權(quán)級改變的話,則當(dāng)前的SS和ESP這兩個寄存器的內(nèi)容要壓入(系統(tǒng))堆棧予以保存。 標(biāo)志寄存器EFLAGS的內(nèi)容也壓入此堆棧。 TF和

15、IF標(biāo)志被清除(有些情況IF不清除)。 當(dāng)前的代碼段寄存器CS和指令指針EIP的內(nèi)容壓入堆棧。 如果中斷發(fā)生伴隨有錯誤碼,則錯誤碼也被壓入堆棧。 保護方式中斷與實方式中斷的返回方式相似,均使用IRET或IRETD指令從中斷服務(wù)程序返回。 335 53 8259A3 8259A可編程中斷控制器可編程中斷控制器 Intel公司、專用管理中斷、可編程芯片。 內(nèi)部包括:中斷源識別中斷源識別、中斷源優(yōu)先級裁中斷源優(yōu)先級裁決決和中斷屏蔽中斷屏蔽等功能電路, 可編程設(shè)定: 中斷請求方式; 中斷嵌套方式; 中斷結(jié)束方式; 中斷優(yōu)先級等。 可多片級聯(lián)可多片級聯(lián)構(gòu)成8級64級優(yōu)先中斷管理系統(tǒng)。 34 531 82

16、59A基本功能基本功能 Intel 8259A是可編程的中斷控制器。主要功能: 1.具有8級優(yōu)先權(quán)管理,通過級連可擴展至64級優(yōu)先權(quán)管理系統(tǒng)。 2.每一級中斷源都允許產(chǎn)生中斷也可以被屏蔽。 3. 在中斷響應(yīng)周期,8259A可以向微處理器提供被其選中的中斷源的中斷類型碼,根據(jù)中斷類型碼可以轉(zhuǎn)至該中斷源的中斷服務(wù)程序。 4. 可通過編程來設(shè)定8259A的幾種工作方式。 。35 532 結(jié)構(gòu)及引腳結(jié)構(gòu)及引腳 1. 引腳 3653 8259A可編程中斷控制器可編程中斷控制器 2. 寄存器及控制電路各部分功能37 533 8259A管理中斷過程管理中斷過程 1當(dāng)某中斷源申請中斷服務(wù),通過引腳 IR0IR

17、7之一向8259A發(fā)出中斷請求,中斷請求寄存器IRR的相應(yīng)位置位。 2若中斷屏蔽寄存器IMR的相應(yīng)位未被屏蔽,則該中斷源的中斷請求被送到優(yōu)先權(quán)裁決電路,通過INT引腳向微處理器送出中斷請求信號。 (如果同時有多個中斷源申請中斷,8259接受當(dāng)前優(yōu)先級最高的中斷源的中斷請求; 如果允許中斷嵌套,8259接受比當(dāng)前正在服務(wù)的優(yōu)先級高的中斷源的中斷請求;)。 38 3在微處理器開中斷狀態(tài)下,則在當(dāng)前指令執(zhí)行結(jié)束,發(fā)起兩個中斷響應(yīng)周期,用兩個INTA信號作為中斷響應(yīng)信號。 4第一個脈沖信號使IRR鎖存功能失效,暫不接收IR0IR7線上的中斷請求。將選中的優(yōu)先權(quán)最高的ISR位置位,對應(yīng)的IRR位復(fù)位。

18、5第二個脈沖信號使8259A經(jīng)數(shù)據(jù)總線向微處理器輸送一個8位的中斷類型碼,并有效IRR鎖存功能,允許接收IR0IR7線上的中斷請求。 39 6微處理器將該中斷類型碼乘以4,獲得其在中斷向量表中的地址指針,取出中斷服務(wù)程序的入口地址(包括段地址和段內(nèi)偏移量) 并轉(zhuǎn)去執(zhí)行。 7若8259A工作在自動結(jié)束中斷AEOI模式,在第二個INTA脈沖結(jié)束時,使中斷源在ISR中的相應(yīng)位復(fù)位;若8259A工作在一般或者特殊結(jié)束中斷,直至中斷服務(wù)程序結(jié)束,微處理器向8259A發(fā)出一般或者特殊EOI命令,才使ISR中的相應(yīng)位復(fù)位。405.3.4 8259A的命令的命令初始化編程初始化編程(ICW1ICW4): 由微

19、處理器向8259A送34個字節(jié)個字節(jié)的初始化命令字 ICW(Initialization Command Word)。 開機,必須先送初始化命令字,設(shè)定基本工作方式; 初始化操作,開機只作一次開機只作一次。工作方式編程工作方式編程(OCW1OCW3): 415.3.4 8259A的命令的命令工作方式編程工作方式編程(OCW1OCW3): 由微處理器向8259A送三個字節(jié)三個字節(jié)的操作命令字OCW(Operation Command Word)。 規(guī)定規(guī)定8259A的工作方式的工作方式,例如: 設(shè)置中斷屏蔽; 結(jié)束中斷服務(wù); 改變優(yōu)先權(quán)循環(huán); 讀取中斷狀態(tài)等。 操作命令字可在8259A初始化以后

20、的任何時初始化以后的任何時間間寫入,用以對中斷處理過程實現(xiàn)動態(tài)控制對中斷處理過程實現(xiàn)動態(tài)控制。 4253 8259A可編程中斷控制器可編程中斷控制器 1寫初始化命令字寫初始化命令字ICW14 MPU向8259A(地址地址A0=0)寫入一個命令字,當(dāng)其其D4=1,則 被 解 釋 為 初 始 化 命 令 字1(ICW1)。 8259A初始化開始,即對8259A進行復(fù)位: 由低到高邊沿觸發(fā); 清零中斷屏蔽寄存器; 優(yōu)先級IR0最高,IR7最低; 清除特殊屏蔽模式,設(shè)置狀態(tài)讀為IRR等。 4353 8259A可編程中斷控制器可編程中斷控制器 (1)初始化命令字ICW1 (A0=0,標(biāo)志:D4=1) (

21、2)初始化命令字ICW2 (A0=1)44 (3)初始化命令字ICW3 (A0=1) 定義8259A的級聯(lián)方式。 53 8259A可編程中斷控制器可編程中斷控制器45 (4)初始化命令字ICW4(A0=1) 定義了若干中斷管理方式。 53 8259A可編程中斷控制器可編程中斷控制器46 例如,在PC/XT機中,單片8259A,不需要寫ICW3,ICW1是通過20H端口寫入的;ICW2和ICW4是通過21H端口寫入的,先寫ICW2,緊接著寫ICW4,8259A內(nèi)部自動將這兩個命令字分別寫至不同的寄存器中。例5.1 8259A的初始化程序如下: MOV AL,13H ;ICW1,單片, OUT 2

22、0H,AL ;邊沿觸發(fā),后跟ICW4 MOV AL,8 ;ICW2,送中斷向量地址 OUT 21H,AL MOV AL,0DH ;ICW4,8086模式, OUT 21H,AL ; 一般EOI,緩沖方式,全嵌套 MOV AL,0FFH ;OCW1,屏蔽所有中斷 OUT 21H,AL 47 2寫8259A的操作命令字OCW1OCW3 初始化編程之后,8259A已可以按默認的工作方式接受中斷請求輸入。在8259A工作期間可使用操作命令字重新設(shè)置其工作方式、屏蔽某些中斷源或讀狀態(tài)信息 。 ( 1)操作命令字OCW1(A0=1) 該命令字用來設(shè)置或清除對中斷源的屏蔽。動態(tài)改變中斷的優(yōu)先級 。 圖5.1

23、8 操作命令字OCW148 ( 2)操作命令字OCW2 (A0=0,標(biāo)志 : D4D3=00 ) 該命令字用來設(shè)置優(yōu)先級是否進行循環(huán)、循環(huán)的方式及中斷結(jié)束的方式。 R、SL、EOI三位的不同組合決定了七種不同的工作方式,其中三種工作方式中要用到OCW2的最低三位即L2、L1、L0,這3位二進制編碼決定了8個中斷源的某一個被特殊EOI信號復(fù)位,或規(guī)定某一個的優(yōu)先權(quán)最低。49 中斷優(yōu)先級循環(huán)控制位中斷優(yōu)先級循環(huán)控制位R。R=1起動優(yōu)先級循環(huán),R=0停止優(yōu)先級循環(huán)方式。 L2L1L0有效標(biāo)志位有效標(biāo)志位SL。SL=1,則L2L1L0選擇有效;若SL=0,則無效。 指定中斷源編碼指定中斷源編碼L2L1

24、L0。用于指定系統(tǒng)中最低優(yōu)先級中斷源的編碼,或者指定某個中斷源中斷服務(wù)結(jié)束,即清除其在中斷服務(wù)寄存器中的對應(yīng)位。 中斷結(jié)束命令控制位中斷結(jié)束命令控制位EOI: ICW4的AEOI=1(自動EOI),8259A在第二個中斷響應(yīng)周期將中斷源的相應(yīng)ISRi位復(fù)位。 ICW4的AEOI =0(非自動EOI),IRET前,必須寫一條OCW2命令字,置位EOI,將此中斷源對應(yīng)的ISRi位復(fù)位。50 OCW2命令位編碼功能: 一般EOI命令(001):表示中斷服務(wù)結(jié)束,中斷服務(wù)寄存器中置1的優(yōu)先級最高ISRi位復(fù)位,優(yōu)先級不循環(huán)。 特殊EOI命令(011):表示中斷服務(wù)結(jié)束,由L2L1L0編碼指定的中斷所對

25、應(yīng)的ISRi位復(fù)位,優(yōu)先級不循環(huán)。 設(shè)置優(yōu)先級循環(huán)命令(110):該命令可以改變系統(tǒng)的中斷優(yōu)先級,L2L1L0編碼有效并指定最低優(yōu)先級。 一般EOI優(yōu)先級循環(huán)命令(101):將使ISR寄存器中最高優(yōu)先級的ISRi位復(fù)位,并使其優(yōu)先級變?yōu)樽畹汀TO(shè)置OCW2時先關(guān)中斷(CLI),在該命令之后開中斷 (STI)。 特殊EOI優(yōu)先級循環(huán)命令(111):由L2L1L0指定要復(fù)位的且降為最低優(yōu)先級的ISR位的編碼。 51 ( 2)操作命令字OCW3 (A0=0,標(biāo)志 : D4D3=01) 該命令可以用來設(shè)置查詢方式、特殊屏蔽方式,以及用來讀8259的中斷請求寄存器IRR、中斷服務(wù)寄存器ISR、中斷屏蔽寄存

26、器IMR的當(dāng)前狀態(tài)。 52 在PC機中,OCW命令的端口地址分別為:OCW1為21H;OCW2和OCW3為20H。 檢查中斷屏蔽寄存器檢查中斷屏蔽寄存器程序如下: MOV AL,0 ;OCW1, IMR寫入全0。 OUT 21H,AL IN AL,21H ;讀IMR狀態(tài) OR AL,AL ;IMR=0? JNZ ERR ;若不為全0,則轉(zhuǎn)出錯程序ERR MOV AL,0FFH ;OCW1,IMR寫入全1 OUT 21H,AL IN AL,21H ;讀IMR狀態(tài) ADD AL,1 ;IMR是不是全1 JNZ ERR ;若不是,則轉(zhuǎn)出錯程序ERR ERR:53 讀取讀取ISR寄存器寄存器的程序如下

27、: MOV AL,0BH ;OCW3,讀ISR OUT 20H,AL NOP IN AL,20H ;讀ISR寄存器 MOV AH,AL OR AL,AH ;ISR70是全為0? JZ DONE ;是,不作任何處理 MASK:IN AL,21H ;讀IMR OR AL,AH ;屏蔽掉正在服務(wù)的中斷源 OUT 21H,AL MOV AL,20 ;OCW2,發(fā)中斷結(jié)束命令EOI OUT 20H,AL DONE: 54 535 8259A工作方式工作方式 1中斷級聯(lián)中斷級聯(lián)(一個主8259A,若干個從8259A ) 圖5.21 8259A級聯(lián)系統(tǒng) 55 2中斷嵌套中斷嵌套 包括:全嵌套模式和特殊全嵌套

28、模式。 (1)全嵌套模式全嵌套模式:中斷優(yōu)先權(quán)是固定的,IR0優(yōu)先權(quán)最高,IR7優(yōu)先權(quán)最低(除非用優(yōu)先權(quán)自動循環(huán)來改變)。優(yōu)先級高的中斷請求可以嵌套低級的中斷服務(wù)。56 (2)特殊全嵌套特殊全嵌套模式 用于級聯(lián)系統(tǒng)中的主片8259A。當(dāng)從8259A的一個中斷請求被響應(yīng)后,若該從片有更高優(yōu)先級的中斷請求,則會先響應(yīng)級別更高的中斷請求,服務(wù)完成后再返回級別低的中斷服務(wù)繼續(xù)執(zhí)行。 與全嵌套模式的兩點不同: 1)當(dāng)某一個從8259A有中斷請求,MPU響應(yīng)以后,這個從8259A的中斷并沒有被屏蔽,換句話說,這個從8259A中優(yōu)先級高的中斷源的中斷申請仍可以產(chǎn)生(在全嵌套模式中這樣的中斷是被屏蔽的)。 2

29、)由于對主8259A可以指定中斷優(yōu)先級并且循環(huán),不能確定當(dāng)前的最高優(yōu)先級,因此當(dāng)某個中斷源中斷服務(wù)程序結(jié)束之前,必需向主/從8259A發(fā)送特殊EOI(中斷結(jié)束)命令,將指定的中斷服務(wù)寄存器中某位復(fù)位。 57 3中斷結(jié)束中斷結(jié)束方式 中斷結(jié)束 (End Of Interrupter)命令(MPU 8259A)的作用是:使這個中斷源在ISR中的相應(yīng)位復(fù)位。 (1)自動中斷結(jié)束自動中斷結(jié)束模式(AEOI) 在ICW4中設(shè)定這種模式,如果AEOI=1,則在第二個中斷響應(yīng)周期信號的后沿8259A自動地使中斷源在ISR中的相應(yīng)位復(fù)位。這是一種預(yù)置中斷結(jié)束的方式,當(dāng)ISRi=0表示相應(yīng)的中斷源的中斷服務(wù)已完

30、成,這種方式顯然只能用于非中斷嵌套情況下。 58 (2)一般中斷結(jié)束一般中斷結(jié)束方式(一般EOI) 當(dāng)8259A工作在全嵌套模式,則服務(wù)完成的中斷源的優(yōu)先權(quán)最高,可以用一般EOI命令使它ISR的相應(yīng)位復(fù)位。在級聯(lián)系統(tǒng),主8259A 中IR0優(yōu)先權(quán)最高,IR7優(yōu)先權(quán)最低,因此只需將ISR中最高置1位清除;而從8259A 的ISR70中只有一個ISRi=1,可直接清除。一般中斷結(jié)束命令通過寫OCW2設(shè)定為:00100000B(20H)。 例如:在PC/XT中,寫OCW2的口地址為20H。則在中斷服務(wù)程序結(jié)尾執(zhí)行下列指令: 例5.2 發(fā)中斷服務(wù)結(jié)束命令 MOV AL,20H OUT 20H,AL I

31、RET59(3)特殊全嵌套模式時中斷結(jié)束方式(特殊EOI) 當(dāng)某一個從片中斷源要退出中斷服務(wù)前,需分別設(shè)置OCW2送兩個特殊EOI命令,第一個送給從8259A,第二個送給主8259A。 發(fā)送給從8259A的特殊EOI命令,只需由L2L0指定該中斷服務(wù)程序?qū)?yīng)的ISRi=0既可。但在發(fā)送給主8259A特殊EOI命令前,必須用軟件檢查它是否這個從8259A中唯一的中斷源。檢查的方法是讀從片的ISR,判斷它是否為全0,若為全0,則說明這個從8259A中的中斷服務(wù)是唯一的,才能將另一個特殊EOI命令送至主8259A,結(jié)束從片的中斷(對應(yīng)的ISRi=0);否則就不是唯一的,不給主8259A送中斷結(jié)束命令

32、。60 4中斷優(yōu)先權(quán)循環(huán)中斷優(yōu)先權(quán)循環(huán)(OCW2) (1)自動循環(huán)自動循環(huán):用于若干中斷源具有相等優(yōu)先權(quán)的情況。 當(dāng)某一個中斷源服務(wù)完以后,它的優(yōu)先權(quán)變成最低,這個中斷源如果再次請求需要等待。 例如,在循環(huán)以前,若IR2和IR7同時有中斷請求,而當(dāng)時的優(yōu)先權(quán)排隊為IR0最高,IR7最低(優(yōu)先級高低)。 (2)特殊循環(huán)特殊循環(huán) 如果中斷源的優(yōu)先權(quán)不都相等,需要在某些時候改變優(yōu)先權(quán),可以用OCW2來設(shè)置最低優(yōu)先權(quán)的中斷源,這時其它輸入線中斷源的優(yōu)先權(quán)也就相應(yīng)固定了。 例如當(dāng)前中斷源的優(yōu)先權(quán)排隊為IR0最高,IR7最低。例如設(shè)置IR3為最低優(yōu)先權(quán),則IR4的優(yōu)先權(quán)就變?yōu)樽罡撸▋?yōu)先級高低) 。61 5

33、中斷屏蔽中斷屏蔽 (1)一般屏蔽方式一般屏蔽方式 8259A的8個中斷請求線的每一條都可根據(jù)需要單獨屏蔽,將OCW1寫入中斷屏蔽寄存器,使它的每一位對相應(yīng)的中斷請求線實現(xiàn)屏蔽。 (2)特殊屏蔽方式特殊屏蔽方式 在軟件的控制下動態(tài)地改變系統(tǒng)的優(yōu)先權(quán)結(jié)構(gòu) ,使較長時期內(nèi)得不到服務(wù)的優(yōu)先級較低的中斷源也能得到服務(wù)。 要實現(xiàn)特殊屏蔽方式,先用OCW1寫入屏蔽字使IMR中為“1”位的中斷被屏蔽,然后設(shè)置特殊屏蔽方式(OCW3的ESMM=1,SMM=1),這時使ISR中相應(yīng)位功能無效,而其原狀態(tài)被保存,直到清除特殊屏蔽方式時才恢復(fù)其原狀態(tài)。而在特殊屏蔽期間,IMR中為0的這些位的中斷不管其優(yōu)先權(quán)如何,其中

34、斷申請都可獲得響應(yīng)。62 例5.3 特殊中斷屏蔽特殊中斷屏蔽舉例 ;IR3中斷服務(wù)的程序 CLI ;關(guān)中斷 IN AL,21H ;讀IMR屏蔽字 MOV BL,AL ;保存 MOV AL,3FH ;寫OCW1命令字除允許響應(yīng)優(yōu)先級低的中斷外,屏蔽包括IR3 在內(nèi)的 所有其它中斷,設(shè)允許響應(yīng)IR7 IR6 OUT 21H,AL ;設(shè)OCW1端口地址為21H MOV AL,68H ;送特殊屏蔽字OCW3,其中ESMM=1,且SMM=1允許特殊屏蔽模式 OUT 20H,AL ;設(shè)OCW3端口地址為20H STl ;開中斷 ;在特殊屏蔽期間,未屏蔽的優(yōu)先級低的中斷隨時可插入。 CLI ;關(guān)中斷 MOV

35、 AL,48H ;送特殊屏蔽字OCW3,其中ESMM=1,且SMM=0禁止特殊屏蔽模式 OUT 20H,AL MOV AL, BL ;解除對IRi的屏蔽 OUT 21H,AL STI ;開中斷 MOV AL,20H ;一般EOI中斷結(jié)束命令 MOV 20H,AL IRET ;中斷結(jié)束返回63 6中斷緩沖中斷緩沖 8259A在系統(tǒng)中可有兩種連接方式:緩沖和非緩沖方式。 (1)非緩沖方式非緩沖方式(用ICW4中的BUF=0設(shè)置) 當(dāng)系統(tǒng)中只有單片8259A或只有幾片8259A級聯(lián)工作的系統(tǒng)中,可以將8259A直接與數(shù)據(jù)總線相連,稱為非緩沖方式。SP/EN端作為輸入端,單片時接高電平,級聯(lián)時,主片的

36、接高電平,從片的則接低電平。 (2)緩沖方式緩沖方式(用ICW4中的BUF=1設(shè)置) 在一個大的系統(tǒng)中使用多個8259A級聯(lián)工作時,如果8259A通過總線驅(qū)動器與系統(tǒng)數(shù)據(jù)總線相連,這就是緩沖方式。此時,8259A的SP/EN端作為輸出與總線驅(qū)動器的使能端相連,編程時規(guī)定8259A工作在緩沖方式,則8259A會在輸出狀態(tài)字或中斷類型碼的同時,從SP/EN端輸出一個低電平,該低電平作為總線驅(qū)動器的啟動信號。在緩沖器模式,由于SP/EN線作為輸出使能信號,必須通過初始化編程時規(guī)定此8259A是主片還是從片。 64 7讀中斷狀態(tài)讀中斷狀態(tài) 8259A內(nèi)部的IRR、ISR和IMR三個寄存器的狀態(tài)是可讀的

37、。 讀中斷屏蔽寄存器讀中斷屏蔽寄存器,使用讀命令并且端口地址使8259A的A0為1時,可讀入中斷屏蔽寄存器IMR的狀態(tài)。 讀中斷請求寄存器讀中斷請求寄存器和中斷服務(wù)寄存器中斷服務(wù)寄存器 在讀命令之前,送出OCW3命令000010RRRISB,其中RR=1,RIS=0,用讀命令并且端口地址使8259A的A0為0時,可以讀入中斷請求寄存器IRR的狀態(tài),內(nèi)含未被響應(yīng)的中斷源的中斷請求。 在讀命令之前,送出OCW3命令000010RRRISB,其中RR=1,RIS=1,用讀命令并且端口地址使8259A的A0為0時,可以讀入中斷服務(wù)寄存器ISR的狀態(tài)。內(nèi)含正在接受服務(wù)的中斷源的情況,包括中斷嵌套情況。6

38、5 8中斷查詢中斷查詢 當(dāng)系統(tǒng)的中斷源超過64個時,仍可利用8259A對中斷源的管理功能,但應(yīng)使其工作在查詢方式。 方法:方法:程序中關(guān)中斷,設(shè)置并輸出OCW3命令字P=1( A0=0的端口),使8259A工作在查詢方式,再對該端口執(zhí)行一條輸入指令,8259A將該讀操作作為中斷響應(yīng)信號,使優(yōu)先級最高中斷源的ISR的相應(yīng)位置位。讀命令從數(shù)據(jù)總線上讀取一個字節(jié)的中斷查詢字,其內(nèi)容為: A0 D7 D6 D5 D4 D3 D2 D1 D0 0 I W2 W1 W0 I=1表示本片外部設(shè)備有中斷請求表示本片外部設(shè)備有中斷請求,在I=1時,W2W0為中斷請求中優(yōu)先級最高的中斷源的編碼。微處理器對其譯碼后

39、將程序轉(zhuǎn)移到對應(yīng)的中斷服務(wù)程序去執(zhí)行。 I=0表示本片沒有外部設(shè)備請求中斷,則微處理器繼續(xù)執(zhí)行原程序。66 536 8259A在在PC/XT系統(tǒng)中的應(yīng)用系統(tǒng)中的應(yīng)用 67 537 8259A編程應(yīng)用編程應(yīng)用 例5.4 假設(shè)某一32位微機系統(tǒng)中有兩塊8259A級聯(lián),從8259A中INT接主8259A的IR2,主8259A采用全嵌套、緩沖工作方式,從8259A采用用全嵌套、非緩沖工作方式,主8259A的IRR中斷類型碼為08H0FH,從8259A的IRR中斷類型碼為20H27H,均為電平觸發(fā)。試畫出邏輯電路,編寫初始化程序。 解:設(shè)主主8259A的端口地址為的端口地址為08H和和0CH,從從825

40、9A的端口地址為00H和04H,電路如圖5.24所示 。 68 初始化程序設(shè)計如下: CLI ;關(guān)中斷 MOV AL,00011001B ;主 8259A初始化(全嵌套、緩沖工作方式,電平觸發(fā) ) OUT 08H ,AL ;寫入 ICW1 MOV AL,00001000B OUT 0CH ,AL ;寫入 ICW2 MOV AL,00000100B OUT 0CH,AL ;寫入 ICW3 MOV AL,00001101B OUT 0CH,AL ;寫入 ICW4 69 MOV AL,00011001B ;從 8259A 初始化(全嵌套、非緩沖方式,電平觸發(fā) , ) OUT 00H,AL ;寫入 ICW1 MOV AL,00100000B OUT 04H,AL ;寫入 lCW2 MOV AL,00000010B OUT 04H,AL ;寫入 ICW3 MOV AL,00000001B OUT 04H,AL ;寫入 ICW4 STI70 中斷控制方式的設(shè)計與應(yīng)用中斷控制方式的設(shè)計與應(yīng)用 對于外部設(shè)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論