




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、n 什么是什么是I/O接口(電路)?接口(電路)?nI/O接口是位于系統(tǒng)與外設(shè)間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路,I/O接口就是CPU與外設(shè)的連接部件。nPC機系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是I/O接口電路接口在接口在CPUCPU與外設(shè)之與外設(shè)之間間(I/O接口)接口)nI/O接口的定義 把外設(shè)連接到總線上的一組邏輯電路的總稱。實現(xiàn)外設(shè)與主機之間的信息交換。 nI/O接口要解決的問題n速度匹配(Buffer)n信號電平和驅(qū)動能力(電平轉(zhuǎn)換器、驅(qū)動器) n信號形式匹配(A/D、D/A) n信息格式(字節(jié)流、塊、數(shù)據(jù)包、幀) n時序匹配(定時關(guān)系)n總線隔離(三
2、態(tài)門)nI/O地址譯碼與設(shè)備選擇n把選中的與總線相接,未選中的與總線隔離(高阻態(tài)) n數(shù)據(jù)的緩沖與暫存n緩解接口與CPU工作速度的差異 輸出接口有鎖存環(huán)節(jié) 輸入接口有緩沖環(huán)節(jié)n對外設(shè)進行監(jiān)測、控制與管理,中斷處理n信號電平與類型的轉(zhuǎn)換n形式、格式、電平、功率、碼制等 nI/O接口的功能接口的功能 nI/O端口: I/O信息的三種類型:數(shù)據(jù)、命令、狀態(tài)。 傳送這三類信息的通道分別稱為:數(shù)據(jù)端口(I、O)、命令端口(O)、狀態(tài)端口(I)。n不同外設(shè)具有的端口數(shù)各不相同,計算機中為每一個端口都賦予一個惟一編號稱為端口地址(或端口號)。n端口有兩種編址方式:統(tǒng)一編址和獨立編址。I/O接口的編址方式接口
3、的編址方式I/OI/O接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu) n定義 把外設(shè)接口與內(nèi)存統(tǒng)一進行編址。各占據(jù)統(tǒng)一地址空間的不同部分。n優(yōu)點n指令統(tǒng)一,靈活;n訪問控制信號統(tǒng)一,使用同一組的地址/控制信號。 n缺點n內(nèi)存可用地址空間減小例如: MCS-51單片機0地址空間(共1MB)內(nèi)存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H1. 統(tǒng)一編址統(tǒng)一編址 n定義: 外設(shè)地址空間和內(nèi)存地址空間相互獨立。n優(yōu)點:內(nèi)存地址空間不受I/O編址的影響n缺點:I/O指令功能較弱,使用不同的讀寫控制信號00000H內(nèi)存地址空間內(nèi)存空間(1MB)I/O空間(64KB)FFFFHFFFF
4、FHI/O地址空間0000H2. 獨立編址獨立編址例如例如: 8088/8086 微機系統(tǒng)MCS-51單片機8088/80862016例如:例如:8088/8086系統(tǒng)系統(tǒng) 8 80 08 88 8/ /8 80 08 86 6總總線線A19-A0A15-A0MEMR、MEMWIOR、IOW 、AEN存儲器訪問存儲器訪問I/O訪問訪問D15/D7D0D15/D7D0 n采用I/O獨立編址方式(但地址線與存儲器共用)n地址線上的地址信號用 來區(qū)分:n /0 時為I/O地址/M地址nI/O操作只使用20根地址線中的16/8根:A15/7 A0n可尋址的I/O端口數(shù)為64K(65536)/256個n
5、I/O地址范圍為0FFFFH/0FFHIO/M=1IO/Mn8088/8086 CPU的的I/O編址方式編址方式n 接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu) 簡單接口電路簡單接口電路數(shù)據(jù)線數(shù)據(jù)線控制線控制線狀態(tài)線狀態(tài)線 DB(D0-D7) CB(IOR、IOW) AB(A0-A15)數(shù)據(jù)數(shù)據(jù)輸入輸入寄存器寄存器(or 三態(tài)門三態(tài)門)數(shù)據(jù)數(shù)據(jù)輸出輸出寄存器寄存器(鎖存器鎖存器)狀態(tài)寄存器狀態(tài)寄存器(or 三態(tài)門三態(tài)門)命令命令寄存器寄存器譯碼譯碼電路電路控制控制邏輯邏輯接接外外設(shè)設(shè)接接主主機機接口電路的典型結(jié)構(gòu)接口電路的典型結(jié)構(gòu) 從編程角度看,接口內(nèi)部主要包括一個或多個從編程角度看,接口內(nèi)部主要包括
6、一個或多個CPU可以進可以進行讀行讀/寫操作的寫操作的臨時寄存器臨時寄存器,又稱,又稱I/O端口(端口(Port)。 各各I/O端口由端口地址區(qū)分端口由端口地址區(qū)分(80X86 64K) -編址方式編址方式I/O端口端口1 (狀態(tài)端口狀態(tài)端口)I/O端口端口2 (數(shù)據(jù)端口數(shù)據(jù)端口)I/O端口端口3 (控制端口控制端口)地址地址譯碼譯碼數(shù)據(jù)數(shù)據(jù)緩沖緩沖控制控制電路電路外外設(shè)設(shè)ABDBCBCPU 數(shù)據(jù)端口數(shù)據(jù)端口:用于存放用于存放CPU與外設(shè)間傳送的數(shù)據(jù)信息與外設(shè)間傳送的數(shù)據(jù)信息 狀態(tài)端口:狀態(tài)端口:用于暫存外設(shè)的狀態(tài)信息用于暫存外設(shè)的狀態(tài)信息 控制端口控制端口:用于存放用于存放CPU對外設(shè)或接口
7、的控制信息,對外設(shè)或接口的控制信息, 控制外設(shè)或接口的工作方式控制外設(shè)或接口的工作方式。按存放按存放信息的信息的不同分不同分類類lCPU對外設(shè)輸入/輸出的控制,通過對接口電路中各I/O端口的讀/寫操作完成。l端口 地址編號 n數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出寄存器輸出寄存器(緩沖器緩沖器/鎖存器鎖存器) 暫存輸入暫存輸入/輸出的數(shù)據(jù)。輸出的數(shù)據(jù)。n命令寄存器命令寄存器(鎖存器鎖存器) 存放控制命令,用來設(shè)定接口功能、工作參數(shù)存放控制命令,用來設(shè)定接口功能、工作參數(shù)和工作方式。和工作方式。n狀態(tài)寄存器狀態(tài)寄存器(緩沖器緩沖器) 保存外設(shè)當(dāng)前狀態(tài),以供保存外設(shè)當(dāng)前狀態(tài),以供CPU讀取。讀取。n一個外設(shè)一般占
8、用端口地址情況一個外設(shè)一般占用端口地址情況 數(shù)據(jù)數(shù)據(jù)I/O、命令、狀態(tài)三個寄存器各占一個端口、命令、狀態(tài)三個寄存器各占一個端口地址(共地址(共3個個);有時把命令、狀態(tài)兩個寄存器共占一);有時把命令、狀態(tài)兩個寄存器共占一個端口地址(共個端口地址(共2個個);一些簡單外設(shè)只有數(shù)據(jù)寄存器);一些簡單外設(shè)只有數(shù)據(jù)寄存器一個端口(共一個端口(共1個個)。)。接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu)(續(xù)續(xù))簡單接口電路簡單接口電路(無條件傳輸無條件傳輸)n數(shù)據(jù)數(shù)據(jù)輸入輸入接口接口n必須具有三態(tài)輸出能力,以便與總線掛接n外設(shè)有數(shù)據(jù)保持能力時可用三態(tài)門實現(xiàn)n外設(shè)無數(shù)據(jù)保持能力時用三態(tài)輸出的鎖存器實現(xiàn) n三態(tài)門三
9、態(tài)門:高高電平、電平、低低電平、電平、高高阻阻態(tài)態(tài)n通常一個器件中包含8個三態(tài)門n常用芯片:74LS244n應(yīng)用例子:開關(guān)接口n工作波形圖如下:A0A15IOR譯碼輸出D0D7開關(guān)狀態(tài)開關(guān)狀態(tài)地址有效地址有效簡單數(shù)據(jù)簡單數(shù)據(jù)輸入輸入接口電路接口電路CPU與外設(shè)間的數(shù)據(jù)傳送方與外設(shè)間的數(shù)據(jù)傳送方式式I/O接口電路基礎(chǔ):接口電路基礎(chǔ):三態(tài)緩沖器/鎖存器問題:問題:CPU與外設(shè)的工作速度不一致速度不一致,尤其是當(dāng)外設(shè)由其他CPU或時序電路控制時更加明顯,應(yīng)如何解決效率和可靠性如何解決效率和可靠性。數(shù)據(jù)傳送控制:數(shù)據(jù)傳送控制:使兩者使兩者高效、可靠地高效、可靠地進行數(shù)據(jù)傳送進行數(shù)據(jù)傳送(1) 無條件無
10、條件傳送方式傳送方式(2) 條件條件傳送方式傳送方式 ( 查詢查詢方式方式 )(3) 中斷中斷傳送方式傳送方式(4) DMA傳送方式傳送方式 ( Direct Memory Access ) 存貯器直接存取存貯器直接存取方式方式四四種種傳傳送送方方式式(程序程序方式方式)典型典型無條件無條件傳送方式接口電路(傳送方式接口電路(輸入輸入)該電路在該電路在CPU執(zhí)行指令執(zhí)行指令(當(dāng)外設(shè)開關(guān)準(zhǔn)備好后當(dāng)外設(shè)開關(guān)準(zhǔn)備好后-開關(guān)動作時間固定開關(guān)動作時間固定) MOV DX, 284H IN AL, DX功能功能: 將輸入設(shè)備的數(shù)據(jù)讀入將輸入設(shè)備的數(shù)據(jù)讀入CPU內(nèi)內(nèi)AL中中圖中譯碼電路的作用圖中譯碼電路的作
11、用:只當(dāng)只當(dāng)A15A0上出現(xiàn)上出現(xiàn)284H時,時,(即(即0000 0010 1000 0100B)輸出輸出0,其他輸出,其他輸出1。三三 態(tài)態(tài)緩沖器緩沖器開關(guān)開關(guān)狀態(tài)狀態(tài) DBIOR地址地址譯碼譯碼 AB 284H000D7 D0A15A0與與非非IO總線總線74LS244 E1/E2例例: 開關(guān)開關(guān)典型典型無條件無條件傳送方式接口電路(傳送方式接口電路(輸出輸出)圖中圖中譯碼電路譯碼電路的作用的作用:只當(dāng)只當(dāng)A15A0上出現(xiàn)上出現(xiàn)288H時,時,(即(即0000 0010 1000 1000B)輸出輸出0,其他輸出,其他輸出1。該電路在該電路在CPU執(zhí)行指令執(zhí)行指令(當(dāng)外設(shè)當(dāng)外設(shè)LED指示
12、燈指示燈準(zhǔn)備好后準(zhǔn)備好后實際上一直處于準(zhǔn)備好實際上一直處于準(zhǔn)備好) MOV AL, 81H MOV DX, 288H OUT DX, AL 功能功能: CPU內(nèi)內(nèi)AL中的數(shù)據(jù)中的數(shù)據(jù)81H送至輸出設(shè)備送至輸出設(shè)備IO總線總線鎖存器鎖存器輸出輸出設(shè)備設(shè)備數(shù)據(jù)線數(shù)據(jù)線IOW地址地址譯碼譯碼地址線地址線 288H000D7 D0A15A0與與非非例例:LED指示燈指示燈74LS273無條件無條件傳送方式 (同步同步傳送方式)l實現(xiàn)方法 CPU不查詢外設(shè)工作狀態(tài), 與外設(shè)速度的匹配通過在軟件上延時完成, 在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送l特點 1. 適用于外設(shè)動作時間已知, 前提:CPU
13、與外設(shè)進行數(shù)據(jù)傳送時,外設(shè)保證已準(zhǔn)備好。如開關(guān)、發(fā)光器件開關(guān)、發(fā)光器件( (如發(fā)光二極管、如發(fā)光二極管、7 7段數(shù)碼管、段數(shù)碼管、燈泡等燈泡等) )、繼電器、步進電機、繼電器、步進電機等。 2. 軟硬件十分簡單。(程序程序方式之一方式之一)條件條件傳送方式(查詢查詢傳送方式)l實現(xiàn)方法: 在與外設(shè)進行傳送數(shù)據(jù)前,CPU先先查詢外設(shè)狀態(tài),當(dāng)外設(shè)準(zhǔn)備好后,再再才執(zhí)行I/O指令,實現(xiàn)數(shù)據(jù)傳送。l特點: 1. CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配; 2. CPU的工作效率低,響應(yīng)速度慢; 3. 適用于簡單、慢速的或?qū)崟r性要求不高的外設(shè).(程序程序方式之二方式之二)NY從狀態(tài)端口讀入狀態(tài)信息
14、從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個數(shù)據(jù)從數(shù)據(jù)端口傳送一個數(shù)據(jù)外設(shè)準(zhǔn)備好否?外設(shè)準(zhǔn)備好否?編程流程編程流程查詢查詢方式方式輸入輸入例例假設(shè)外設(shè)的假設(shè)外設(shè)的狀態(tài)端口狀態(tài)端口為為28C H, 其中其中D7=1時,表示外設(shè)數(shù)據(jù)準(zhǔn)備好時,表示外設(shè)數(shù)據(jù)準(zhǔn)備好 外設(shè)的外設(shè)的數(shù)據(jù)端口數(shù)據(jù)端口為為288 H。 實現(xiàn)從外設(shè)讀實現(xiàn)從外設(shè)讀50H個字節(jié)到內(nèi)存緩沖區(qū)個字節(jié)到內(nèi)存緩沖區(qū)buffer中。中。28CH端口端口狀態(tài)狀態(tài)端口端口288H端口端口數(shù)據(jù)數(shù)據(jù)端口端口地址地址譯碼譯碼數(shù)據(jù)數(shù)據(jù)緩沖緩沖控制控制電路電路輸輸入入外外備備CPU地址線地址線數(shù)據(jù)線數(shù)據(jù)線控制線控制線狀態(tài)狀態(tài)信號信號數(shù)據(jù)數(shù)據(jù)信號信號I/O接口接
15、口查詢方式查詢方式輸入輸入接口電路接口電路狀態(tài)端口狀態(tài)端口 D7=1 表示外設(shè)準(zhǔn)備好表示外設(shè)準(zhǔn)備好輸輸入入裝裝置置+5vSTB三三 態(tài)態(tài)緩沖器緩沖器數(shù)數(shù) 據(jù)據(jù) 線線2 8 8H 數(shù)據(jù)數(shù)據(jù)端口端口地址地址譯碼譯碼地址線地址線 狀態(tài)狀態(tài)端口端口地址地址譯碼譯碼鎖鎖存存器器IOR R Q D三三 態(tài)態(tài)緩沖器緩沖器D72 8 CH PC總線總線IORA15A0D7D0&MOV DX, 288HIN AL, DXMOV DX, 28CHIN AL, DXBUSYD0:D7GNDREADYD7 D6 D0READY從從28CH狀態(tài)端口狀態(tài)端口讀入外設(shè)狀態(tài)信息讀入外設(shè)狀態(tài)信息從從288H數(shù)據(jù)端口數(shù)據(jù)
16、端口讀入一個字節(jié)數(shù)據(jù)讀入一個字節(jié)數(shù)據(jù)YND7=1, 外設(shè)準(zhǔn)備好否?外設(shè)準(zhǔn)備好否?N50H個數(shù)據(jù)傳送結(jié)束?個數(shù)據(jù)傳送結(jié)束?Y編程從外設(shè)讀入編程從外設(shè)讀入50H個字節(jié)到內(nèi)存緩沖區(qū)個字節(jié)到內(nèi)存緩沖區(qū)buffer中中流程圖流程圖 STATUS EQU 28CH MOV AX, SEG buffer ;取緩沖區(qū)首地址取緩沖區(qū)首地址 MOV DS, AX LEA DI, buffer MOV CX, 50H ;傳送個數(shù)傳送個數(shù) next: MOV DX, STATUS ask: IN AL, DX ;從狀態(tài)端口讀入狀態(tài)信息從狀態(tài)端口讀入狀態(tài)信息 TEST AL, 1000 0000B ;80H, 檢測檢測
17、D7位位 JZ ask ;D7=0,繼續(xù)查詢繼續(xù)查詢MOV DX, 288H IN AL, DX ;從數(shù)據(jù)端口讀入數(shù)據(jù)從數(shù)據(jù)端口讀入數(shù)據(jù)MOV DI, AL ;送緩沖區(qū)送緩沖區(qū) INC DI ;修改緩沖區(qū)指針修改緩沖區(qū)指針 LOOP next ;傳送下一個傳送下一個.查詢查詢方式方式輸入輸入程序程序片段片段DMA傳輸方式傳輸方式 n前面前面3種種I/O方式共性方式共性: 都需要都需要CPU作為中介:作為中介: 外設(shè)外設(shè) CPU 內(nèi)存內(nèi)存 兩個含義:兩個含義:1)軟件:)軟件:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序來完成的(執(zhí)行程序來完成的(PIO方式);方式
18、);2)硬件:)硬件:I/O接口和存儲器的讀寫控制信號、地址接口和存儲器的讀寫控制信號、地址信號都是由信號都是由CPU發(fā)出的(總線由發(fā)出的(總線由CPU控制)。控制)。n 缺點缺點:程序的執(zhí)行速度限定了傳送的最大速度:程序的執(zhí)行速度限定了傳送的最大速度(約為幾十(約為幾十KB/秒)秒) 解決辦法:解決辦法:DMA傳輸傳輸 外設(shè) 內(nèi)存DMAC DMA 傳送方式(直接存儲器存取方式) 實現(xiàn)方法 1. 由專用接口芯片DMA控制器控制器 (稱DMAC) 控 制傳送過程, 2. 當(dāng)外設(shè)需傳送數(shù)據(jù)時,通過 DMAC向 CPU發(fā)出總線請求HOLD ; 3. CPU發(fā)出總線響應(yīng)信號HLDA,釋放總線; 4.
19、DMAC接管總線,控制外設(shè)、內(nèi)存之間直 接數(shù)據(jù)傳送 DMA 傳送方式過程傳送方式過程CPUDMAC內(nèi)存內(nèi)存外設(shè)外設(shè)總線總線響應(yīng)響應(yīng)總線總線請求請求(i8237)DMAC內(nèi)部包括四個基本寄存器內(nèi)部包括四個基本寄存器地址寄存器:地址寄存器:用于存取下一個要訪問的內(nèi)存單用于存取下一個要訪問的內(nèi)存單元的地址,地址寄存器的內(nèi)容加元的地址,地址寄存器的內(nèi)容加1 1或減或減1 1操作,取操作,取決于決于DMACDMAC的設(shè)計的設(shè)計字節(jié)計數(shù)器:字節(jié)計數(shù)器:用于存放尚未傳送完畢字節(jié)的數(shù)用于存放尚未傳送完畢字節(jié)的數(shù)量,字節(jié)計數(shù)器在量,字節(jié)計數(shù)器在DMADMA過程中自動作減過程中自動作減1 1操作操作控制寄存器:控
20、制寄存器:用于對用于對DMACDMAC操作的控制操作的控制狀態(tài)寄存器:狀態(tài)寄存器:反映反映DMACDMAC當(dāng)前所處的狀態(tài),例如,當(dāng)前所處的狀態(tài),例如,數(shù)據(jù)塊傳輸是否結(jié)束等狀態(tài)信息數(shù)據(jù)塊傳輸是否結(jié)束等狀態(tài)信息HLDA發(fā)存儲器地址發(fā)存儲器地址傳送數(shù)據(jù)傳送數(shù)據(jù)傳送結(jié)束?傳送結(jié)束?DMA結(jié)束結(jié)束修改地址指針修改地址指針圖圖7.17 DMA流程圖流程圖DMA操作方式有哪些?n1. 周期挪用周期挪用 CPU不訪問存儲器時的那些周期,用不訪問存儲器時的那些周期,用來進行來進行DMA操作。操作。n2 .周期擴展周期擴展 使用專門時鐘電路使用專門時鐘電路 需要需要DMA操作時,使操作時,使CPU的時鐘周期的時鐘
21、周期加寬,在加寬的時鐘周期進行加寬,在加寬的時鐘周期進行DMA操作。操作。n3 .CPU停機方式停機方式 最常見方式最常見方式 1. 外設(shè)和內(nèi)存之間,直接進行數(shù)據(jù)傳送, 不通過CPU, 傳送效率高。 適用于在內(nèi)存與高速外設(shè)、適用于在內(nèi)存與高速外設(shè)、 或兩個高速外設(shè)之間進行大批量數(shù)據(jù)或兩個高速外設(shè)之間進行大批量數(shù)據(jù) 傳送傳送。 2. 電路結(jié)構(gòu)復(fù)雜,硬件開銷較大。DMA傳送方式的特點傳送方式的特點*I/O處理器控制方式處理器控制方式(通道方式通道方式)幾種數(shù)據(jù)傳送方式特點?幾種數(shù)據(jù)傳送方式特點?n無條件傳送:無條件傳送:慢速外設(shè)需與CPU保持同步n查詢傳送:查詢傳送: 簡單實用,效率較低,硬件開銷
22、小n中斷傳送:中斷傳送:外設(shè)主動,可與CPU并行工作,但中斷服務(wù)保護現(xiàn)場等需要額外時間開銷,需要硬件開銷進行中斷管理nDMA傳送:傳送:DMAC控制,外設(shè)直接和存儲器進行數(shù)據(jù)傳送,適合大量、快速數(shù)據(jù)傳送,需要硬件開銷6.3 輸入輸出的控制方式輸入輸出的控制方式 n主機與外設(shè)之間數(shù)據(jù)傳送的控制方式主機與外設(shè)之間數(shù)據(jù)傳送的控制方式 有以下有以下四種:四種:n無條件傳送n查詢(條件)方式傳送n中斷方式傳送n直接存儲器存取(DMA, Direct Memory Access)6.3.1 無條件無條件傳送方式傳送方式n適用場合:適用場合:適用于適用于總是處于準(zhǔn)備好狀態(tài)總是處于準(zhǔn)備好狀態(tài)(定時固定或已知)
23、(定時固定或已知)的外設(shè)的外設(shè)n以下以下簡單外設(shè)簡單外設(shè)可采用無條件傳送方式:可采用無條件傳送方式:n開關(guān)n發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等)n繼電器n步進電機n優(yōu)點:優(yōu)點:軟件及接口硬件簡單軟件及接口硬件簡單n缺點:缺點:只適用于簡單外設(shè),適應(yīng)范圍較窄只適用于簡單外設(shè),適應(yīng)范圍較窄6.3.2 查詢查詢(條件條件)方式傳送方式傳送n適用場合:適用場合:適用于外設(shè)并不總是準(zhǔn)備好,而適用于外設(shè)并不總是準(zhǔn)備好,而且對傳送速率、傳送效率要求不高的場合。且對傳送速率、傳送效率要求不高的場合。nCPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)態(tài)“你準(zhǔn)備好沒有?你準(zhǔn)備好沒有
24、?”n對外設(shè)的要求:對外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息應(yīng)提供設(shè)備狀態(tài)信息n對接口的要求:對接口的要求:需要提供狀態(tài)端口需要提供狀態(tài)端口n優(yōu)點:優(yōu)點:軟件比較簡單軟件比較簡單n缺點:缺點:CPU效率低,數(shù)據(jù)傳送的實時性差,效率低,數(shù)據(jù)傳送的實時性差, 速度較慢速度較慢查詢查詢方式的流程圖方式的流程圖超時超時?READY?READY?與外設(shè)進與外設(shè)進行數(shù)據(jù)交換行數(shù)據(jù)交換超時錯超時錯讀入并測試外設(shè)狀態(tài)讀入并測試外設(shè)狀態(tài)YNYN傳送完?傳送完?防止死循環(huán)防止死循環(huán)復(fù)位計時器復(fù)位計時器NY注:多個外設(shè)時,查注:多個外設(shè)時,查詢流程見教材圖詢流程見教材圖6.156.15例如:例如:用查詢方式進行輸出用查詢方
25、式進行輸出 外設(shè)狀態(tài)端口地址外設(shè)狀態(tài)端口地址為為3FBH,第,第5位位(D5)為狀態(tài)標(biāo)志(為狀態(tài)標(biāo)志(=1忙,忙,=0準(zhǔn)備好)準(zhǔn)備好) 外設(shè)數(shù)據(jù)端口地址外設(shè)數(shù)據(jù)端口地址為為3F8H,寫入數(shù),寫入數(shù)據(jù)會使?fàn)顟B(tài)標(biāo)志置據(jù)會使?fàn)顟B(tài)標(biāo)志置1 ;外設(shè)把數(shù)據(jù)讀走;外設(shè)把數(shù)據(jù)讀走后又把它置后又把它置0。 試畫出其電路圖試畫出其電路圖。(電路圖見下頁)。(電路圖見下頁)D5D7-D0A9|A31&A15 |A101IOWD7-D03F8H外外設(shè)設(shè)D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0狀態(tài)端口狀態(tài)端口GG2AG2BCBAA2A1A074LS138Y01IORY3OE7
26、4LS374CPQQDSSTROBE3FBH思考思考: 程序段?程序段?打印機打印機(1忙忙/0閑)閑)n(=1忙,忙,=0準(zhǔn)備好)準(zhǔn)備好)6.3.3 中斷中斷方式傳送方式傳送n概念概念: CPU無需循環(huán)查詢外設(shè)狀態(tài),而是外無需循環(huán)查詢外設(shè)狀態(tài),而是外部設(shè)備在需要進行數(shù)據(jù)傳送時才中斷部設(shè)備在需要進行數(shù)據(jù)傳送時才中斷CPU正正在進行的工作,讓在進行的工作,讓CPU來為其服務(wù)。即來為其服務(wù)。即CPU在沒有外設(shè)請求時可以去做更重要的事情,在沒有外設(shè)請求時可以去做更重要的事情,有請求時才去傳輸數(shù)據(jù),從而大大提高了有請求時才去傳輸數(shù)據(jù),從而大大提高了CPU的利用率。的利用率。n優(yōu)點:優(yōu)點:CPU效率高,
27、實時性好,速度快。效率高,實時性好,速度快。n缺點:缺點:程序編制較為復(fù)雜。程序編制較為復(fù)雜。6.3.4 DMA傳輸傳輸 n前面三種前面三種I/O方式方式共性共性: 都需要都需要CPU作為中介:作為中介: 外設(shè)外設(shè) CPU 內(nèi)存內(nèi)存 兩個含義:兩個含義:1)軟件:)軟件:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序執(zhí)行程序來完成的(來完成的(PIO方式);方式);2)硬件:)硬件:I/O接口和存儲器的讀寫控制信號、地址信號都接口和存儲器的讀寫控制信號、地址信號都是由是由CPU發(fā)出的(總線由發(fā)出的(總線由CPU控制)。控制)。n 缺點缺點:程序的執(zhí)行速度限定了傳送的
28、最大速度:程序的執(zhí)行速度限定了傳送的最大速度(約為幾十(約為幾十KB/秒)秒) 解決辦法:解決辦法:DMA傳輸傳輸 nDMA傳輸傳輸: 外設(shè)外設(shè) 內(nèi)存內(nèi)存n外設(shè)直接與存儲器進行數(shù)據(jù)交換 ,CPU不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎撸籲總線由DMA控制器(DMAC)進行控制(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號均由DMAC提供。n優(yōu)點:優(yōu)點:數(shù)據(jù)傳輸由數(shù)據(jù)傳輸由DMA硬件來控制,數(shù)據(jù)直硬件來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率(可達(dá)幾傳輸速率(可達(dá)幾MB/秒)秒)幾個基本概念幾個基本概念n總線控制權(quán)、總線控制權(quán)、mater、sl
29、avenDMAC編程周期:編程周期:slavenDMAC控制總線進行數(shù)據(jù)傳輸周期:控制總線進行數(shù)據(jù)傳輸周期:masternDMA的數(shù)據(jù)傳輸形式的數(shù)據(jù)傳輸形式:基本的:基本的:MEMI/O擴充的:擴充的:MEMMEM I/O I/OI/O電路的電路的I/O接口接口(含含DMAC)CPUDMADMA傳送原理傳送原理示意圖示意圖 系統(tǒng)總線系統(tǒng)總線CPUDMAC存儲器存儲器外設(shè)接口外設(shè)接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMR 外設(shè)發(fā)出外設(shè)發(fā)出DMADMA請求請求 DMACDMAC向向CPUCPU申請總線申請
30、總線 CPUCPU完成當(dāng)前總線周期后完成當(dāng)前總線周期后響應(yīng),并釋放總線控制權(quán)響應(yīng),并釋放總線控制權(quán) DMACDMAC得到總線控制權(quán),并發(fā)出得到總線控制權(quán),并發(fā)出DMADMA響應(yīng)信號響應(yīng)信號 由由DMACDMAC發(fā)出各種控制信號,控制外設(shè)與存儲器之發(fā)出各種控制信號,控制外設(shè)與存儲器之 間的數(shù)據(jù)傳送間的數(shù)據(jù)傳送 數(shù)據(jù)傳送完后,數(shù)據(jù)傳送完后,DMACDMAC撤銷撤銷HOLDHOLD信號信號 CPUCPU釋放釋放HLDAHLDA信號,并重新控制總線信號,并重新控制總線nDMA控制器的工作過程:控制器的工作過程:1)當(dāng)外設(shè)準(zhǔn)備好,可以進行當(dāng)外設(shè)準(zhǔn)備好,可以進行DMA傳送時,外設(shè)向傳送時,外設(shè)向DMA控制
31、器發(fā)出控制器發(fā)出“DMA傳送請求傳送請求”信號(信號(DRQ);2)DMA控制器收到請求后,向控制器收到請求后,向CPU發(fā)出發(fā)出“總線總線請求請求”信號信號HOLD,表示希望占用總線;,表示希望占用總線;3)CPU在完成當(dāng)前總線周期后會立即對在完成當(dāng)前總線周期后會立即對HOLD信信號進行響應(yīng)。響應(yīng)包括兩個動作:一是號進行響應(yīng)。響應(yīng)包括兩個動作:一是CPU將數(shù)據(jù)將數(shù)據(jù)總線、地址總線和相應(yīng)的控制信號線均置為高阻態(tài)總線、地址總線和相應(yīng)的控制信號線均置為高阻態(tài),由此放棄對總線的控制權(quán)。另一方面,由此放棄對總線的控制權(quán)。另一方面,CPU向向DMA控制器發(fā)出控制器發(fā)出“總線響應(yīng)總線響應(yīng)”信號(信號(HLD
32、A)。)。4)DMA控制器收到控制器收到HLDA信號后,就開始控制總信號后,就開始控制總線,并向外設(shè)發(fā)出線,并向外設(shè)發(fā)出DMA響應(yīng)信號響應(yīng)信號DACK;nDMA控制器的工作過程(續(xù))控制器的工作過程(續(xù))5)DMA控制器送出地址信號和相應(yīng)的控制信號,控制器送出地址信號和相應(yīng)的控制信號,實現(xiàn)實現(xiàn)外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存之間的外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送直接數(shù)據(jù)傳送;例如,例如,向向I/O接口發(fā)出讀信號,同時往地址總線上發(fā)接口發(fā)出讀信號,同時往地址總線上發(fā)出存儲器的地址和存儲器寫信號出存儲器的地址和存儲器寫信號和和AEN信號,即可從信號,即可從外設(shè)向內(nèi)存?zhèn)魉鸵粋€字節(jié)。外設(shè)向內(nèi)存?zhèn)魉鸵粋€字
33、節(jié)。6)DMA控制器自動修改地址和字節(jié)計數(shù)器,并判控制器自動修改地址和字節(jié)計數(shù)器,并判斷是否需要重復(fù)傳送操作。當(dāng)規(guī)定的數(shù)據(jù)傳送完后,斷是否需要重復(fù)傳送操作。當(dāng)規(guī)定的數(shù)據(jù)傳送完后,DMA控制器就控制器就撤銷撤銷發(fā)往發(fā)往CPU的的HOLD信號。信號。CPU檢檢測到測到HOLD失效后,緊接著失效后,緊接著撤銷撤銷HLDA信號,并在下信號,并在下一時鐘周期一時鐘周期重新開始控制總線重新開始控制總線。 總線保持總線保持/ /響應(yīng)時序響應(yīng)時序T1或T4的下降沿12個時鐘2個時鐘懸浮狀態(tài)CLKHOLDHLDA地址及數(shù)據(jù)總線 nDMA的三種傳輸方式的三種傳輸方式:n連續(xù)傳送(塊傳送)nDMAC申請到總線后,將
34、一塊數(shù)據(jù)傳送完后才釋放總線,而不管中間DREQ是否有效。n單次傳送(每次傳送一個字節(jié))n每個DMA周期只傳送一個字節(jié)就立即釋放總線。n按需傳送(猝發(fā)傳送)n只要I/O接口的數(shù)據(jù)緩沖可用,就進行傳送。 (注:I/O接口需要有一定大小的FIFO緩沖)YN允許允許DMADMA請求?請求?DMAC請求總線請求總線CPU響應(yīng)響應(yīng), DMAC獲總線控制權(quán)獲總線控制權(quán)DMA傳送一個字節(jié)傳送一個字節(jié)塊結(jié)束?塊結(jié)束?地址增量,計數(shù)器減量地址增量,計數(shù)器減量DMAC釋放總線釋放總線Yn數(shù)據(jù)塊數(shù)據(jù)塊傳送傳送NNYN允許允許DMADMAC請求總線請求總線CPU響應(yīng)響應(yīng), DMAC獲總線控制權(quán)獲總線控制權(quán)DMA傳送一個
35、數(shù)據(jù)傳送一個數(shù)據(jù)塊結(jié)束?塊結(jié)束?釋放總線至少一個總線周期釋放總線至少一個總線周期地址增量,計數(shù)器減量地址增量,計數(shù)器減量DMAC釋放總線釋放總線Yn每次傳送一個每次傳送一個字節(jié)字節(jié)測試測試I/O的的DREQ DMA請求?請求?NYCPU響應(yīng)響應(yīng), DMAC獲總線控制權(quán)獲總線控制權(quán)DMA傳送一個字節(jié)傳送一個字節(jié)塊結(jié)束?塊結(jié)束?測試測試I/O的的DREQ 有效?有效?地址增量,計數(shù)器減量地址增量,計數(shù)器減量釋放總線,請求中斷釋放總線,請求中斷無效,釋放總線無效,釋放總線允許允許DMADMA請求?請求?DMAC請求總線請求總線n按需按需傳送傳送YNYN一個總線周期一個總線周期TDMAC控制總線,共傳
36、送控制總線,共傳送n個數(shù)據(jù)個數(shù)據(jù)DMA1DMA2DMAnCPU重新控制總線重新控制總線CPU對總線控制對總線控制連續(xù)連續(xù)傳送傳送TDMA共傳送共傳送n個數(shù)據(jù)個數(shù)據(jù)DMA1DMA2DMAn單次單次傳送傳送DMA3T按需按需傳送傳送DMA傳送傳送k個數(shù)據(jù)個數(shù)據(jù)DMA傳送傳送n-k個數(shù)據(jù)個數(shù)據(jù)FIFO可用可用FIFO滿滿FIFO可用可用FIFO滿滿圖例:圖例:DMA傳輸方式示意圖傳輸方式示意圖:6.4 中斷中斷技術(shù)技術(shù)n6.4.1 中斷的基本概念中斷的基本概念n什么是中斷什么是中斷?n與生活場景的比較正在看書正在看書電話鈴響電話鈴響接電話接電話繼續(xù)看書繼續(xù)看書執(zhí)行程序執(zhí)行程序事件發(fā)生事件發(fā)生事件處理
37、事件處理繼續(xù)執(zhí)行程序繼續(xù)執(zhí)行程序中斷處理中斷處理中斷請求及響應(yīng)中斷請求及響應(yīng)實際場景實際場景計算機計算機中斷返回中斷返回中斷的定義中斷的定義 CPU執(zhí)行程序時,由執(zhí)行程序時,由于發(fā)生了某種隨機的于發(fā)生了某種隨機的事件事件(外部外部或或內(nèi)部內(nèi)部),引起,引起CPU暫時中斷正在運行的程序,暫時中斷正在運行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序程序(稱為中斷服務(wù)程序稱為中斷服務(wù)程序或中斷處理程序或中斷處理程序),以處,以處理該事件,該事件處理完理該事件,該事件處理完后又返回被中斷的程序繼后又返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱為續(xù)執(zhí)行,這一過程稱為中中斷斷。INTIRET中中斷斷服
38、服務(wù)務(wù)程程序序主程序主程序發(fā)生事件發(fā)生事件中斷源中斷源n定義定義: 引起引起CPU中斷的事件中斷的事件中斷源中斷源。 例如:例如:n外設(shè)請求輸入輸出數(shù)據(jù),報告故障等n事件掉電、硬件故障、軟件錯誤、非法操作、定時時間到等n中斷源分類中斷源分類:外部中斷、內(nèi)部中斷:外部中斷、內(nèi)部中斷n內(nèi)部中斷:CPU內(nèi)部執(zhí)行程序(INT n等)時自身產(chǎn)生的中斷n外部中斷:CPU以外的設(shè)備、部件產(chǎn)生的中斷n 8086/8088的的外部中斷信號外部中斷信號:INTR、NMInINTR可屏蔽中斷請求,高電平有效,受IF標(biāo)志的控制。 IF=1時,執(zhí)行完當(dāng)前指令后CPU對它作出響應(yīng)。 nNMI非屏蔽中斷請求,上升沿有效,任
39、何時候CPU都要響 應(yīng)此中斷請求信號。計算機中要引入中斷的原因?計算機中要引入中斷的原因?n提高數(shù)據(jù)傳輸率提高數(shù)據(jù)傳輸率;n避免了避免了CPU不斷檢測外設(shè)狀態(tài)的過程,不斷檢測外設(shè)狀態(tài)的過程,提提高高了了CPU的利用率的利用率(并行操作并行操作)。n實現(xiàn)對特殊事件的實時響應(yīng)實現(xiàn)對特殊事件的實時響應(yīng)(實時處理實時處理/故故障處理障處理)。如多任務(wù)系統(tǒng)操作系統(tǒng)中:。如多任務(wù)系統(tǒng)操作系統(tǒng)中: n缺頁中斷n設(shè)備中斷n各類異常n實時時鐘,等中斷過程中斷過程n五個步驟:五個步驟:中斷請求中斷判優(yōu)/排隊 (有時還要進行中斷源識別)中斷響應(yīng)中斷服務(wù)/處理中斷返回請求請求排隊排隊響應(yīng)響應(yīng)服務(wù)服務(wù)/ 處理處理返回返
40、回IRET 硬硬/ 軟軟 INT n 主程序主程序中斷服務(wù)程序中斷服務(wù)程序以下以以下以外部中斷外部中斷為主介紹這五個步驟。為主介紹這五個步驟。1 1)中斷請求)中斷請求n外設(shè)接口(中斷源)發(fā)出中斷請求信號,外設(shè)接口(中斷源)發(fā)出中斷請求信號,送到送到CPU的的INTR或或NMI引腳引腳;n中斷請求信號類型:邊沿請求,電平請求例如,NMI為邊沿請求,INTR為電平請求n中斷請求信號應(yīng)中斷請求信號應(yīng)保持到中斷被處理為止保持到中斷被處理為止 (防止重復(fù)響應(yīng)防止重復(fù)響應(yīng)); CPU響應(yīng)中斷后響應(yīng)中斷后,中斷請求信號應(yīng),中斷請求信號應(yīng)及時撤銷及時撤銷。n在在8086/8088系統(tǒng)中,外設(shè)的中斷要經(jīng)過系統(tǒng)
41、中,外設(shè)的中斷要經(jīng)過8259A可編可編程中斷控制器程中斷控制器(PIC)的的排隊判優(yōu)排隊判優(yōu)后向后向CPU發(fā)出:發(fā)出: (I/O接口) PIC (8259) CPUn12.12.1)中斷源識別)中斷源識別n計算機中的中斷源有很多,計算機中的中斷源有很多,CPU必須識別是必須識別是哪一個設(shè)備產(chǎn)生中斷。哪一個設(shè)備產(chǎn)生中斷。 識別中斷源有兩個方法:識別中斷源有兩個方法:n軟件查詢。將中斷信號從數(shù)據(jù)總線讀入,用程序進行判別,如教材圖6.18和圖6.19。n硬件法(中斷矢量法)。由中斷源提供中斷類型號n,CPU根據(jù)類型確定中斷源。(8086/8088即采用此種方法)2 2)中斷判優(yōu))中斷判優(yōu)n多個中斷源
42、產(chǎn)生中斷,多個中斷源產(chǎn)生中斷,CPU首先為誰服務(wù)?首先為誰服務(wù)?中斷優(yōu)先級排隊問題。中斷優(yōu)先級排隊問題。n中斷優(yōu)先級控制要處理兩種情況:中斷優(yōu)先級控制要處理兩種情況:n對同時產(chǎn)生的中斷:應(yīng)首先處理優(yōu)先級別較高的中斷;若優(yōu)先級別相同,則按先來先服務(wù)的原則FIFO處理;n對非同時產(chǎn)生的中斷:低優(yōu)先級別的中斷處理程序允許被高優(yōu)先級別的中斷源所中斷即允許中斷嵌套。n中斷優(yōu)先級的控制方法中斷優(yōu)先級的控制方法:n硬件判優(yōu)鏈?zhǔn)脚袃?yōu)、并行判優(yōu)(中斷向量法)n軟件判優(yōu)順序查詢中斷請求,先查詢的先服務(wù)(即先查詢的優(yōu)先級別高)n通常將通常將中斷判優(yōu)中斷判優(yōu)與與中斷源識別中斷源識別合并合并在一起進行處理。在一起進行處
43、理。nx86系統(tǒng)中,這項任務(wù)由PIC(8259)和CPU(8086/8088)共同完成。用軟件確定中斷優(yōu)先權(quán)用軟件確定中斷優(yōu)先權(quán)軟件判優(yōu)的特點軟件判優(yōu)的特點 查詢方法的查詢方法的優(yōu)點優(yōu)點是:是: (1) 詢問的次序即是優(yōu)先權(quán)的次序。顯然,詢問的次序即是優(yōu)先權(quán)的次序。顯然,最先詢問的,優(yōu)先權(quán)的級別最高。最先詢問的,優(yōu)先權(quán)的級別最高。 (2) 省硬件。不需要有判斷與確定優(yōu)先權(quán)的省硬件。不需要有判斷與確定優(yōu)先權(quán)的硬件排隊電路。硬件排隊電路。但隨之而來的但隨之而來的缺點缺點是:是: 由詢問轉(zhuǎn)至相應(yīng)的服務(wù)程序入口的時間長,由詢問轉(zhuǎn)至相應(yīng)的服務(wù)程序入口的時間長,尤其是在中斷源較多的情況下。尤其是在中斷源較
44、多的情況下。 硬件優(yōu)先權(quán)排隊電路硬件優(yōu)先權(quán)排隊電路1. 中斷優(yōu)先權(quán)編碼電路中斷優(yōu)先權(quán)編碼電路正在進行中斷處理的外設(shè)的優(yōu)先權(quán)編碼正在進行中斷處理的外設(shè)的優(yōu)先權(quán)編碼8個新中斷源個新中斷源8個中任一個有中斷請求時,通過個中任一個有中斷請求時,通過“或或”門,門,即可有一個中斷請求信號產(chǎn)生即可有一個中斷請求信號產(chǎn)生硬件編碼器和比較器的優(yōu)先權(quán)排隊電路硬件編碼器和比較器的優(yōu)先權(quán)排隊電路 若有若有8個中斷源,當(dāng)任一個有中斷請求時,個中斷源,當(dāng)任一個有中斷請求時,通過通過“或或”門,即可有一個中斷請求信號產(chǎn)生,門,即可有一個中斷請求信號產(chǎn)生,但它能否送至但它能否送至CPU的中斷請求線,還要受比較的中斷請求線,
45、還要受比較器的控制器的控制(若優(yōu)先權(quán)失效信號為低電平,則與門若優(yōu)先權(quán)失效信號為低電平,則與門2關(guān)閉關(guān)閉)。 8條中斷輸入線的任一條,經(jīng)過編碼器可以條中斷輸入線的任一條,經(jīng)過編碼器可以產(chǎn)生三位二進制優(yōu)先權(quán)編碼產(chǎn)生三位二進制優(yōu)先權(quán)編碼A2A1A0,優(yōu)先權(quán),優(yōu)先權(quán)最高的線的編碼為最高的線的編碼為111,優(yōu)先權(quán)最低的線的編,優(yōu)先權(quán)最低的線的編碼為碼為000。而且若有多個輸入線同時輸入,則。而且若有多個輸入線同時輸入,則編碼器只輸出優(yōu)先權(quán)最高的編碼。編碼器只輸出優(yōu)先權(quán)最高的編碼。 正在進行中斷處理的外設(shè)的優(yōu)先權(quán)編碼,正在進行中斷處理的外設(shè)的優(yōu)先權(quán)編碼,通過通過CPU的數(shù)據(jù)總線,送至優(yōu)先權(quán)寄存器,然后的數(shù)
46、據(jù)總線,送至優(yōu)先權(quán)寄存器,然后輸出編碼輸出編碼B2B1B0至比較器,以上過程是由軟件至比較器,以上過程是由軟件實現(xiàn)的。實現(xiàn)的。 比較器比較編碼比較器比較編碼A2A1A0與與B2B1B0的大小,的大小,若若AB,則,則“AB”端輸出低電平,封鎖與門端輸出低電平,封鎖與門1,就就不不向向CPU發(fā)發(fā)出新的出新的中斷申請中斷申請(即當(dāng)即當(dāng)CPU正在處正在處理中斷時,當(dāng)有理中斷時,當(dāng)有同級或低級的中斷源同級或低級的中斷源申請中斷時,申請中斷時,優(yōu)先權(quán)排隊線路就優(yōu)先權(quán)排隊線路就屏蔽屏蔽它們的請求它們的請求);只有當(dāng);只有當(dāng)AB時,比較器輸出端才為高電平,打開與門時,比較器輸出端才為高電平,打開與門1,將中
47、斷請求信號送至將中斷請求信號送至CPU的的INTR輸入端,輸入端,CPU就中斷正在進行的中斷處理程序,轉(zhuǎn)去響應(yīng)就中斷正在進行的中斷處理程序,轉(zhuǎn)去響應(yīng)更高更高級的中斷級的中斷。 若若CPU不在進行中斷處理不在進行中斷處理時時(即在執(zhí)行主程即在執(zhí)行主程序序),則,則優(yōu)先權(quán)失效信號優(yōu)先權(quán)失效信號為為高電平高電平,當(dāng)有任一中,當(dāng)有任一中斷源請求中斷時,都能通過與門斷源請求中斷時,都能通過與門2,發(fā)出,發(fā)出INTR信號。信號。 這樣的優(yōu)先權(quán)電路,如何能做到轉(zhuǎn)入優(yōu)先權(quán)這樣的優(yōu)先權(quán)電路,如何能做到轉(zhuǎn)入優(yōu)先權(quán)最高的外設(shè)的服務(wù)程序的入口呢最高的外設(shè)的服務(wù)程序的入口呢?當(dāng)外設(shè)的個數(shù)當(dāng)外設(shè)的個數(shù)8時,則它們公用一個
48、產(chǎn)生中斷矢量的電路,時,則它們公用一個產(chǎn)生中斷矢量的電路,它有三位由比較器的編碼它有三位由比較器的編碼A2A1A0供給,就能做供給,就能做到不同的編碼轉(zhuǎn)入不同的入口地址。到不同的編碼轉(zhuǎn)入不同的入口地址。 INTAinCPUINTAINTR外設(shè)外設(shè)1 1外設(shè)外設(shè)2 2外設(shè)接口外設(shè)接口1 1菊花鏈菊花鏈邏輯電路邏輯電路外設(shè)接口外設(shè)接口2 2外設(shè)外設(shè)3 3外設(shè)接口外設(shè)接口3 31 1菊花鏈菊花鏈邏輯電路邏輯電路菊花鏈菊花鏈邏輯電路邏輯電路IREQIREQIREQ中斷確認(rèn)中斷確認(rèn)鏈?zhǔn)芥準(zhǔn)脚袃?yōu)電路判優(yōu)電路原理圖(教材圖原理圖(教材圖6.20) INTAinINTAin中斷確認(rèn)中斷確認(rèn)中斷確認(rèn)中斷確認(rèn)中中
49、斷斷控控制制器器2. 雛菊花環(huán)式或稱為鏈?zhǔn)絻?yōu)先權(quán)排隊電路雛菊花環(huán)式或稱為鏈?zhǔn)絻?yōu)先權(quán)排隊電路E菊花鏈菊花鏈邏輯電路邏輯電路INTAinIREQINTR&=1 1INTAoutDB三態(tài)門中中斷斷向向量量碼碼nE外設(shè)接口外設(shè)接口中斷確認(rèn)中斷確認(rèn)菊花鏈菊花鏈邏輯電路邏輯電路3 3)中斷響應(yīng))中斷響應(yīng)n 在每條指令的最后一個時鐘周期,在每條指令的最后一個時鐘周期,CPU檢測檢測INTR或或NMI信號。若以下信號。若以下中斷響應(yīng)中斷響應(yīng)條件條件成立,則成立,則CPU響應(yīng)響應(yīng)中斷:中斷:n當(dāng)前指令執(zhí)行完。n有中斷請求發(fā)出且沒有被屏蔽掉(中斷請求可送到CPU的INTR或NMI)。n對INTR,還應(yīng)滿足
50、以下特殊條件:n當(dāng)前指令是STI和IRET,則下條指令也要執(zhí)行完。n當(dāng)前指令帶有LOCK、REP等指令前綴時,則把它們看成一個整體,要求完整地執(zhí)行完;n對INTR,CPU應(yīng)處于開中斷狀態(tài),即IF=1;n當(dāng)前沒有復(fù)位(RESET)和保持(HOLD)信號。n若NMI和 INTR 同時發(fā)生,則首先響應(yīng)NMI。3 3)中斷響應(yīng)(續(xù))中斷響應(yīng)(續(xù))nCPU中斷響應(yīng)時,要做下述幾項工作:中斷響應(yīng)時,要做下述幾項工作:n對INTR,向中斷源發(fā)出INTA中斷響應(yīng)信號;n自動關(guān)中斷,即IF=TF=0(關(guān)可屏蔽中斷和單步中斷) ;n斷點保護,包括CS、IP和FLAGS。主要是保證中斷結(jié)束后能返回被中斷的程序-PU
51、SH CS/IP/FLAGSn獲得中斷服務(wù)程序首地址(入口)-JMP CS:IP如何得到中斷處理程序的首地址?n固定入口法-MCS-51單片機中n中斷向量法常用, 如: X86中為何關(guān)為何關(guān)單步中斷單步中斷?4 4)中斷處理(中斷服務(wù))中斷處理(中斷服務(wù))n中斷服務(wù)子程序特點中斷服務(wù)子程序特點n為”遠(yuǎn)”過程(類型為FAR 或 far)n要用IRET指令返回 -POP FLAGS/IP/CSn中斷服務(wù)子程序要做的工作中斷服務(wù)子程序要做的工作n保護現(xiàn)場(PUSH regs) n開中斷IF=1(STI) - 允許 中斷嵌套n進行中斷處理 -用戶根據(jù)中斷處理任務(wù)編寫n恢復(fù)現(xiàn)場(POP regs) n中
52、斷返回(IRET) 中斷返回中斷返回 IRET主程序主程序中斷服務(wù)程序中斷服務(wù)程序保護現(xiàn)場保護現(xiàn)場 PUSH開中斷開中斷 STI中斷中斷處理處理恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 POP關(guān)中斷關(guān)中斷 CLI開中斷開中斷 STI現(xiàn)場現(xiàn)場斷點斷點中斷中斷嵌套嵌套5 5)中斷返回)中斷返回n執(zhí)行中斷返回指令執(zhí)行中斷返回指令I(lǐng)RETnIRET指令將使CPU把堆棧內(nèi)保存的斷點信息彈出到IP、CS和FLAGS中,保證被中斷的程序從斷點處能夠繼續(xù)往下執(zhí)行。 -相當(dāng)于POP IP/CS/FLAGS IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG進入中斷服務(wù)程序時
53、中斷返回后6.4.2 8088/8086的中斷系統(tǒng)的中斷系統(tǒng) 8088/8086系統(tǒng)的系統(tǒng)的中斷源中斷源1 內(nèi)部中斷 除法溢出:類型號0,執(zhí)行除法指令時,若發(fā)現(xiàn)除數(shù)為0或商大于目的操作數(shù)所能表達(dá)的范圍時產(chǎn)生。單步中斷:類型號1,TF=1時產(chǎn)生(當(dāng)前指令需執(zhí)行完)。斷點中斷:類型號3,這是一個軟件中斷,即INT 3指令。一般用于程序調(diào)試,在斷點中斷服務(wù)程序中,可顯示有關(guān)寄存器、存儲單元等內(nèi)容,以便程序員分析到斷點為止程序是否正確。溢出中斷:類型號4,這是一個軟件中斷,即INTO指令。 若算術(shù)指令的執(zhí)行結(jié)果發(fā)生舉出(OF=1),則執(zhí)行指令后立即產(chǎn)生一個中斷類型碼為4的中斷。軟件中斷:即INT n指
54、令,類型號n(0-255)。單步中斷單步中斷-1型中斷型中斷 CPU每執(zhí)行完一條指令都會檢查陷阱標(biāo)志每執(zhí)行完一條指令都會檢查陷阱標(biāo)志TF的狀態(tài)。的狀態(tài)。 若若TF=1,則,則CPU就產(chǎn)生中斷類型就產(chǎn)生中斷類型1的中斷,使的中斷,使CPU轉(zhuǎn)向轉(zhuǎn)向單步中斷的處理程序。單步中斷的處理程序。 單步中斷可用于程序的調(diào)試,使單步中斷可用于程序的調(diào)試,使CPU一次執(zhí)行一條指令,一次執(zhí)行一條指令,從而能夠逐條地觀察程序運行情況。從而能夠逐條地觀察程序運行情況。注意注意:(1)所有所有類型的類型的中斷在其處理過程中中斷在其處理過程中,CPU會自動會自動地把狀地把狀態(tài)標(biāo)志壓入堆棧,然后態(tài)標(biāo)志壓入堆棧,然后清除清除
55、TF和和IF。因此,。因此,當(dāng)當(dāng)CPU進入單步中斷進入單步中斷處理程序時,就不再處于單步工作方式,而以正常方式工作。只有處理程序時,就不再處于單步工作方式,而以正常方式工作。只有在單步處理結(jié)束時,從堆棧中彈出原來的標(biāo)志,才使在單步處理結(jié)束時,從堆棧中彈出原來的標(biāo)志,才使CPU又回到單又回到單步方式;步方式; (2)8086/8088指令系統(tǒng)中無設(shè)置或清除指令系統(tǒng)中無設(shè)置或清除TF標(biāo)志指令,標(biāo)志指令,但可通過其他方式對但可通過其他方式對TF置位或復(fù)位。置位或復(fù)位。 PUSHF PHSHF POP AX POPAX OR AX,0100H ;置位置位TF AND AX,0FEFFH;復(fù)位復(fù)位TF
56、PUSH AX PUSH AX POPF POPFODITSZAPC1502467891011FLAGS2 外部中斷外部中斷與中斷有關(guān)的控制線為:與中斷有關(guān)的控制線為:NMI和和INTR、INTAn非屏蔽中斷非屏蔽中斷NMI:類型號2,不可用軟件屏蔽,CPU必須響應(yīng)它。n可屏蔽中斷可屏蔽中斷INTR:類型號n由由PIC(8259)提供提供。IF=1時CPU才能響應(yīng),CPU響應(yīng)信號為INTA。NMIINTR中斷邏輯中斷邏輯軟件中斷指令軟件中斷指令溢出中斷溢出中斷除法錯除法錯單步中斷單步中斷非屏蔽非屏蔽中斷請求中斷請求中斷控中斷控制器制器8259APIC8086/8088 8086/8088 CP
57、UCPU內(nèi)部邏輯內(nèi)部邏輯斷點中斷斷點中斷8086/8088中斷源類型中斷源類型可可屏屏蔽蔽中中斷斷請請求求n43012n 內(nèi)部內(nèi)部/軟件軟件中斷請求中斷請求中斷請求中斷請求排隊排隊屏蔽屏蔽INTA內(nèi)部排隊內(nèi)部排隊中斷開關(guān)中斷開關(guān)外部外部/硬件硬件中斷請求中斷請求DB中斷指令中斷指令 INT n軟件軟件硬件硬件(n=0255)中斷源的識別中斷源的識別n8088/8086系統(tǒng)采用系統(tǒng)采用中斷類型碼中斷類型碼n來識別不同的來識別不同的中斷源。中斷源。每個中斷源每個中斷源都有都有一個與它一個與它相對應(yīng)的相對應(yīng)的中中斷類型碼斷類型碼n 。n溢出、斷點、除法溢出、單步、非屏蔽中斷的類型碼為固定值(4、3、
58、0、1、2)n軟件中斷的類型碼由指令I(lǐng)NT n 給出(n)n可屏蔽中斷的類型碼由PIC(8259)給出(n)nCPU響應(yīng)響應(yīng)INTR中斷中斷時,會產(chǎn)生兩個中斷響應(yīng)總時,會產(chǎn)生兩個中斷響應(yīng)總線周期線周期INTA(教材教材p273 圖圖6.24),要求,要求PIC在在第第2個中斷響應(yīng)總線周期把個中斷響應(yīng)總線周期把中斷類型碼中斷類型碼 n 放放到到數(shù)據(jù)總線上,供數(shù)據(jù)總線上,供CPU讀入。讀入。INTR中斷響應(yīng)INTA周期時序n LOCK為為最大模式下最大模式下的總線封鎖信號。它有效時,的總線封鎖信號。它有效時,CPU鎖定總鎖定總線,不允許其他的總線控制設(shè)備申請使用系統(tǒng)總線。線,不允許其他的總線控制設(shè)
59、備申請使用系統(tǒng)總線。參見參見 p273 圖圖6-24中斷向量表中斷向量表(IVT) n存放各類中斷的存放各類中斷的中斷服務(wù)程序的入口地址中斷服務(wù)程序的入口地址CS:IP(段(段CS和偏移和偏移IP)中斷向量中斷向量 n表的地址位于內(nèi)存的表的地址位于內(nèi)存的00000H003FFH,大小為,大小為1KB,共,共256個中斷向量個中斷向量(中斷向量表中斷向量表)n每個中斷向量占用每個中斷向量占用4 Bytes,低字為段內(nèi)偏移,低字為段內(nèi)偏移IP,高字為段高字為段基址基址CSn根據(jù)中斷類型號根據(jù)中斷類型號n獲得中斷服務(wù)程序入口的方法獲得中斷服務(wù)程序入口的方法: (n為為中斷類型號中斷類型號)n中斷向量
60、在IVT中的存放地址4n (中斷向量地址)中斷向量表的初始化中斷向量表的初始化n初始化初始化將中斷服將中斷服務(wù)程序的入口地址放務(wù)程序的入口地址放入向量表入向量表 例:例:中斷類型碼中斷類型碼n為為48H的中斷處理子程的中斷處理子程序的名字為序的名字為int48h,編寫編寫程序段將該中斷程序段將該中斷處理子程序的入口地處理子程序的入口地址址(中斷向量中斷向量)放入放入中中斷向量表斷向量表。高高8位位低低8位位中斷向量表的初始化中斷向量表的初始化 CLI PUSH DS MOV AX,0; 也可也可XOR AX,AX MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV SI,AX MOV AX,SEG i
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 春節(jié)游客保障活動方案
- 杭州防疫會議活動方案
- 暑期招商活動方案
- 暖冬品茶活動策劃方案
- 機關(guān)幫扶活動方案
- 服務(wù)體驗活動方案
- 某某村全民健身活動方案
- 棗莊作風(fēng)建設(shè)活動方案
- 服務(wù)大練兵活動方案
- 消防標(biāo)識制作方案(3篇)
- xx公司獎金管理制度
- 勞務(wù)服務(wù)購買協(xié)議書范本
- 2025-2030年中國生物醫(yī)學(xué)材料行業(yè)市場深度分析及發(fā)展前景與投資研究報告
- 2025年小學(xué)語文一年級下冊無紙筆測試題(小學(xué)一年級游園樂考無紙化檢測)
- 2025年地理中考時政熱點復(fù)習(xí)課件
- 區(qū)塊鏈技術(shù)在廣告業(yè)的應(yīng)用行業(yè)跨境出海項目商業(yè)計劃書
- 校準(zhǔn)員試題及答案
- 2025-2030年中國臨空經(jīng)濟行業(yè)深度評估及市場研究發(fā)展研究報告
- 2025年市場營銷學(xué)考試題及答案
- 2025-2030中國婚介網(wǎng)站行業(yè)發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025-2030年中國中硼硅玻璃行業(yè)市場深度調(diào)研及競爭格局與投資前景研究報告
評論
0/150
提交評論