第06章 輸入與輸出中斷_第1頁(yè)
第06章 輸入與輸出中斷_第2頁(yè)
第06章 輸入與輸出中斷_第3頁(yè)
第06章 輸入與輸出中斷_第4頁(yè)
第06章 輸入與輸出中斷_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

6.1輸入輸出接口概述

6.2CPU與外設(shè)數(shù)據(jù)傳送的方式

6.3中斷技術(shù)

6.48086/8088的中斷系統(tǒng)和中斷處理

第6章輸入輸出與中斷

6.1輸入輸出接口概述計(jì)算機(jī)在應(yīng)用中,必然同各種各樣的外設(shè)打交道.外設(shè)與計(jì)算機(jī)的連接不能像存儲(chǔ)器那樣直接掛到總線(DB、AB、CB)上,而必須通過各自的專用接口電路(接口芯片)與主機(jī)連接.一、CPU與外設(shè)間的連接為什么需要I/O接口(電路)?微機(jī)的外部設(shè)備多種多樣工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度方面彼此差別很大它們不能與CPU直接相連必須經(jīng)過中間電路再與系統(tǒng)相連這部分電路被稱為I/O接口電路多種外設(shè)什么是I/O接口(電路)?I/O接口是位于系統(tǒng)與外設(shè)間、用來(lái)協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路PC機(jī)系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路CPU接口電路

I/O設(shè)備二、接口電路的基本結(jié)構(gòu)控制總線CB地址總線ABI/O接口電路數(shù)據(jù)控制狀態(tài)數(shù)據(jù)總線DBCPU外設(shè)控制寄存器狀態(tài)寄存器數(shù)據(jù)寄存器⑴數(shù)據(jù)寄存器輸入數(shù)據(jù)寄存器:保存外設(shè)給CPU的數(shù)據(jù)輸出數(shù)據(jù)寄存器:保存CPU給外設(shè)的數(shù)據(jù)⑵狀態(tài)寄存器保存外設(shè)或接口電路的狀態(tài)⑶控制寄存器保存CPU給外設(shè)或接口電路的命令接口電路的信息可分為3類:數(shù)據(jù)信息;狀態(tài)信息;控制信息。(一)數(shù)據(jù)信息

數(shù)據(jù)信息包括:1)數(shù)字量2)模擬量3)開關(guān)量:(二)狀態(tài)信息反映外設(shè)當(dāng)前所處工作狀態(tài)的信息,以作為CPU與外設(shè)間可靠交換數(shù)據(jù)的條件。(三)控制信息用于控制外設(shè)的啟動(dòng)或停止。(1)3種信息應(yīng)通過不同的端口分別傳送。如數(shù)據(jù)輸入/輸出寄存器(緩沖器)、狀態(tài)寄存器與命令控制寄存器各占一個(gè)端口,每個(gè)端口都有自己的端口地址(2)外設(shè)的狀態(tài)作為一種輸入數(shù)據(jù),而CPU的控制命令,是作為一種輸出數(shù)據(jù),從而可通過數(shù)據(jù)總線來(lái)分別傳送。(3)端口地址由CPU地址總線的低8位或低16位地址信息來(lái)確定,CPU根據(jù)I/O指令提供的端口地址來(lái)尋址端口,然后同外設(shè)交換信息。不同外設(shè)具有的端口數(shù)各不相同,計(jì)算機(jī)中為每一個(gè)端口都賦予一個(gè)惟一編號(hào)——稱為端口地址8088/8086CPU的I/O編址方式地址線上的地址信號(hào)用來(lái)區(qū)分:時(shí)為I/O地址I/O操作只使用20根地址線中的16根:A15~A0可尋址的I/O端口數(shù)為64K(65536)個(gè)I/O地址范圍為0~FFFFH內(nèi)存空間I/O空間FFFFF0FFFF80x86采用I/O端口獨(dú)立編址一、程序傳送CPU與外設(shè)之間的數(shù)據(jù)傳送,通常采用以下3種I/O傳送方式程序傳送中斷傳送DMA傳送CPU與外設(shè)間的數(shù)據(jù)交換在程序控制(即IN或OUT指令控制)下進(jìn)行(一)無(wú)條件傳送(又稱同步傳送)適用于總是處于準(zhǔn)備好狀態(tài)的外設(shè)以下外設(shè)可采用無(wú)條件傳送方式:開關(guān)發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等)繼電器步進(jìn)電機(jī)優(yōu)點(diǎn):軟件及接口硬件簡(jiǎn)單缺點(diǎn):只適用于簡(jiǎn)單外設(shè),適應(yīng)范圍較窄輸入輸出(無(wú)條件程序傳送)原理圖輸入緩沖與輸出鎖存RD當(dāng)CPU執(zhí)行IN指令時(shí),外設(shè)的數(shù)據(jù)是已準(zhǔn)備好的,否則就會(huì)讀錯(cuò)。

在CPU執(zhí)行OUT指令時(shí),必須確信所選外設(shè)的鎖存器是空的適用于外設(shè)并不總是準(zhǔn)備好,而且對(duì)傳送速率、傳送效率要求不高的場(chǎng)合。CPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)——“你準(zhǔn)備好沒有?”對(duì)外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息對(duì)接口的要求:需要提供狀態(tài)端口優(yōu)點(diǎn):軟件比較簡(jiǎn)單缺點(diǎn):CPU效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差,速度較慢此條件是:在執(zhí)行輸入(IN指令)或輸出(OUT指令)前,要先查詢接口中狀態(tài)寄存器的狀態(tài)。輸入時(shí),由該狀態(tài)信息指示要輸入的數(shù)據(jù)是否已“準(zhǔn)備就緒”;而輸出時(shí),又由它指示輸出設(shè)備是否“空閑”,由此條件來(lái)決定執(zhí)行輸入或輸出。(二)程序查詢傳送(條件傳送——異步傳送)1.程序查詢輸入入入

查詢輸入部分的程序:

POLL:INAL,STATUSPORT;讀狀態(tài)端口的信息TESTAL,80H;設(shè)“準(zhǔn)備就緒”(READY)信息在D7位JZPOLL;未“準(zhǔn)備就緒”,則循環(huán)再查INAL,DATA_PORT;已“準(zhǔn)備就緒”(READY=1),則讀入數(shù)據(jù)查詢輸出2.程序查詢輸出查詢輸出查詢輸出部分的程序:POLL:INAL,STATUS_PORT;查狀態(tài)端口中的狀態(tài)信息D7TESTAL,80HJNZPOLL;;D7=1即忙線=1,則循環(huán)再查MOVAL,STORE;否則,外設(shè)空閑,由內(nèi)存讀取數(shù)據(jù)OUTDATA_PORT,AL;輸出到DATA地址端口單元

中斷是外設(shè)或其他中斷源中止CPU當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)向?yàn)樵撏庠O(shè)服務(wù)(如完成它與CPU之間傳送一個(gè)數(shù)據(jù))的程序,一旦服務(wù)結(jié)束,又返回原程序繼續(xù)工作。CPU在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請(qǐng)求信號(hào),若有,則暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)去為申請(qǐng)中斷的某個(gè)外設(shè)服務(wù),以完成數(shù)據(jù)傳送。二、中斷傳送CPU無(wú)需循環(huán)查詢外設(shè)狀態(tài),而是外部設(shè)備在需要進(jìn)行數(shù)據(jù)傳送時(shí)才中斷CPU正在進(jìn)行的工作,讓CPU來(lái)為其服務(wù)。大大提高了CPU的利用率。優(yōu)點(diǎn):CPU效率高,實(shí)時(shí)性好,速度快。缺點(diǎn):程序編制較為復(fù)雜。特點(diǎn):前面三種I/O方式都需要CPU作為中介:

外設(shè)CPU內(nèi)存兩個(gè)含義:

1)軟件:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序來(lái)完成的; 2)硬件:I/O接口和存儲(chǔ)器的讀寫控制信號(hào)、地址信號(hào)都是由CPU發(fā)出的(總線由CPU控制)。缺點(diǎn):程序的執(zhí)行速度限定了傳送的最大速度(約為幾十KB/秒)—解決:DMA傳輸DMA傳輸:

外設(shè)

內(nèi)存外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換,CPU不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎?;總線由DMA控制器(DMAC)進(jìn)行控制(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號(hào)均由DMAC提供。優(yōu)點(diǎn):數(shù)據(jù)傳輸由DMA硬件來(lái)控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率(可達(dá)幾MB/秒)DMA的數(shù)據(jù)傳輸形式:

基本的 MEM——I/O

和擴(kuò)充的MEM——MEM I/O——I/O無(wú)條件傳送流程查詢傳送流程DMA傳送流程中斷傳送流程所謂中斷源,即引起中斷的事件或原因,或發(fā)出中斷申請(qǐng)的來(lái)源一、中斷概述(一)中斷與中斷源(1)外部設(shè)備(2)實(shí)時(shí)時(shí)鐘:(3)故障源:(4)為調(diào)試程序設(shè)置的中斷源:中斷源的種類(二)中斷系統(tǒng)及其功能

2.能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)有可能出現(xiàn)兩個(gè)或兩個(gè)以上中斷源同時(shí)提出中斷請(qǐng)求3.高級(jí)中斷源能中斷低級(jí)的中斷

1.設(shè)置中斷請(qǐng)求觸發(fā)器簡(jiǎn)單的中斷過程應(yīng)包括:中斷請(qǐng)求、中斷響應(yīng)、中斷處理和中斷返回等環(huán)節(jié)。(一)中斷源向CPU發(fā)中斷請(qǐng)求信號(hào)的條件每一個(gè)中斷源,要能向CPU發(fā)中斷請(qǐng)求信號(hào),首先應(yīng)能由它的接口電路提出中斷請(qǐng)求,且該請(qǐng)求能保持著,直至CPU接受并響應(yīng)該中斷請(qǐng)求后,才能清除它。為此,要求在每個(gè)中斷源的接口電路中設(shè)置一個(gè)中斷請(qǐng)求觸發(fā)器A,由它產(chǎn)生中斷請(qǐng)求,即QA=12.設(shè)置中斷屏蔽觸發(fā)器1.CPU開放中斷2.CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷1.關(guān)中斷2.保留斷點(diǎn)3.保護(hù)現(xiàn)場(chǎng)4.給出中斷入口(地址),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序5.恢復(fù)現(xiàn)場(chǎng)6.開中斷與返回8086/8088是由中斷源提供中斷類型號(hào),并根據(jù)中斷類型號(hào)在中斷向量表中取得中斷服務(wù)程序的起始地址(三)CPU響應(yīng)中斷及處理過程三、向量中斷向量中斷(VectoredInterrupt),是指通過中斷向量來(lái)找中斷入口地址進(jìn)而轉(zhuǎn)向中斷服務(wù)程序的一種方法;而中斷向量則是用來(lái)提供中斷入口地址的一個(gè)地址指針?biāo)?、中斷?yōu)先權(quán)多個(gè)中斷源,而CPU的可屏蔽中斷請(qǐng)求線往往只有一條。

CPU可以通過軟件查詢技術(shù)或硬件排隊(duì)電路兩種方法來(lái)實(shí)現(xiàn)按中斷優(yōu)先權(quán)對(duì)多個(gè)中斷源的管理也有專門用于協(xié)助CPU按中斷優(yōu)先權(quán)處理多個(gè)中斷源的中斷控制芯片6.48086/8088的中斷系統(tǒng)和中斷處理一、8086/8088的中斷系統(tǒng)

8086/8088每個(gè)不同的中斷都可以通過給定一個(gè)特定的中斷類型號(hào)(或中斷類型碼)供CPU識(shí)別,來(lái)處理多達(dá)256種類型的中斷。NMIINTR中斷邏輯軟件中斷指令溢出中斷除法錯(cuò)單步中斷非屏蔽中斷請(qǐng)求中斷控制器8259APIC8086/8088CPU內(nèi)部邏輯斷點(diǎn)中斷可屏蔽中斷請(qǐng)求n430121.可屏蔽中斷(一)外部中斷

INTR和NMI引腳上同時(shí)都有中斷請(qǐng)求信號(hào),則CPU將首先響應(yīng)NMI引腳上的中斷請(qǐng)求

NMI的中斷類型號(hào)為22.非屏蔽中斷在IBMPC機(jī)中的非屏蔽中斷源有3種:系統(tǒng)板上RAM的奇偶校驗(yàn)錯(cuò),

擴(kuò)展槽中的I/O通道錯(cuò)浮點(diǎn)運(yùn)算協(xié)處理器8087的中斷請(qǐng)求

CPU響應(yīng)單步中斷后將自動(dòng)把狀態(tài)標(biāo)志壓入堆棧,然后清除TF和IF標(biāo)志位中斷返回時(shí)TF位又被重新恢復(fù)(TF=1),所以CPU在中斷返回以后仍然處于單步工作方式(二)內(nèi)部中斷3.單步中斷——類型1當(dāng)TF被置位(TF1)時(shí),8086/8088處于單步工作方式,即CPU每執(zhí)行完一條指令后就自動(dòng)地產(chǎn)生一個(gè)類型1的內(nèi)部中斷PUSHFPOPAXORAX,0100HPUSHAXPOPFPUSHFPOPAXANDAX,0FEFFHPUSHAXPOPFTF置位TF復(fù)位4.斷點(diǎn)中斷——類型3斷點(diǎn)中斷指令主要用于軟件調(diào)試中,程序員可用它在程序中設(shè)置一個(gè)程序斷點(diǎn)。5.用戶定義的軟件中斷——類型n由用戶定義的雙字節(jié)的中斷指令I(lǐng)NTn,其第1個(gè)字節(jié)為INT的操作碼,第2個(gè)字節(jié)n是它的中斷類型號(hào)1、FLAG壓入堆棧2、清除IF,TF3、保護(hù)斷點(diǎn)CS,IP4、取中斷入口地址轉(zhuǎn)入中斷服務(wù)程序(三)內(nèi)部中斷的特點(diǎn)(1)內(nèi)部中斷由一條INTn指令直接產(chǎn)生,其中斷類型號(hào)n或者包括在指令中,或者已由系統(tǒng)預(yù)先定義。(2)除單步中斷以外,所有內(nèi)部中斷都不能被屏蔽。(3)所有內(nèi)部中斷都沒有中斷響應(yīng)INTA機(jī)器總線周期,這是因?yàn)閮?nèi)部中斷不必通過查詢外部來(lái)獲得中斷類型號(hào)。(4)除了單步中斷以外,所有內(nèi)部中斷的優(yōu)先權(quán)都比外部中斷的優(yōu)先權(quán)高

怎么取中斷入口地址?(中斷向量表P218)1、內(nèi)存低地址部分中有中斷入口地址表2、中斷入口地址表(中斷向量表)用4個(gè)字節(jié)存放著中斷向量的值3、中斷向量實(shí)際上即為中斷服務(wù)程序的入口地址,包括CS和IP4、一個(gè)中斷向量占4個(gè)單元低地址的兩個(gè)字節(jié)單元存放中斷服務(wù)程序入口地址的偏移量(IP)-低字節(jié)在前(低地址),高字節(jié)在后(高地址)高地址的兩個(gè)字節(jié)單元存放中斷服務(wù)程序入口地址的段地址(CS)-低字節(jié)在前(低地址),高字節(jié)在后(高地址)。中斷向量在中斷向量表是按中斷類型號(hào)順序存放的,所以每個(gè)中斷向量的地址可由中斷類型號(hào)×4計(jì)算出來(lái)把中斷類型號(hào)N乘以4,得到中斷向量的對(duì)應(yīng)地址4N(該中斷向量所占4個(gè)字節(jié)單元的第一個(gè)字節(jié)單元的地址),然后把由此地址開始的兩個(gè)低字節(jié)單元的內(nèi)容裝入IP寄存器:IP

(4N,4N+1),再把兩個(gè)高字節(jié)單元的內(nèi)容裝入CS寄存器:CS(4N+2,4N+3)

8086/8088可以處理256種中斷,對(duì)每種中斷都指定一個(gè)中斷類型號(hào)(也稱中斷向量號(hào)),每個(gè)中斷類型號(hào)與一個(gè)中斷服務(wù)程序的入口地址相對(duì)應(yīng)。

256個(gè)中斷向量要占256*4=1024個(gè)字節(jié)單元,地址編號(hào)從00000H-003FFH5個(gè)專用中斷(類型0~類型4),它們有固定的定義和處理功能;

27個(gè)保留的中斷(類型5~類型31)。占0000:0014H~0000:007FH,共108個(gè)字節(jié)單元。這個(gè)區(qū)域供系統(tǒng)使用,不允許用戶自行定義。

224個(gè)用戶可定義的中斷(類型32~類型255)。占0000:0080H~0000:03FFH單元;使用時(shí),要由用戶自行填寫相應(yīng)的中斷入口地址。(其中有些中斷類型已經(jīng)有了固定用途,例如,類型21H的中斷已用作MS-Dos的系統(tǒng)功能調(diào)用)。例1:若中斷類型號(hào)為3,則由中斷類型號(hào)取得中斷服務(wù)入口地址的過程如下圖所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址內(nèi)存高地址1E000H+0A00H1EA00H中斷類型號(hào)3×4=000CH中斷服務(wù)程序…....1E(CSH)00(CSL

)0A(IPH

)00(IPL

)…….若中斷類型號(hào)為8,它指出中斷向量表的第9個(gè)入口,則這個(gè)向量的第1字節(jié)的地址為:類型號(hào)8×4=32=00100000B=20H若類型8中,安排的CS=1000H,IP=0200H,則它們形成的服務(wù)程序的入口地址為10200H。例2.中斷類型號(hào)為20H,中斷服務(wù)程序的入口地址存放在0000:0080H開始的4個(gè)單元中。若:(0080H)=10H(0081H)=20H(0082H)=30H(0083H)=40H則:中斷服務(wù)程序的入口地址為例3.中斷類型號(hào)為23(17H),中斷服務(wù)程序的入口地址為:2340:7890H,由于中斷類型號(hào)17H對(duì)應(yīng)的中斷向量存放在0段的0000:005CH(17H×4=5CH)處,所以有:(005CH)=(005DH)=(005EH)=(005FH)=01011100B左移2位:00010111B5CH二、8086/8088的中斷處理過程

(1)~(5)步是CPU的內(nèi)部處理(由硬件自動(dòng)完成)

所有內(nèi)部中斷(除法錯(cuò)、INTn、INT0、單步)以及NMI中斷不需要從數(shù)據(jù)總線上讀取中斷類型碼,而INTR中斷需讀取中斷類型碼,中斷類型碼由發(fā)出INTR信號(hào)的接口提供。中斷的基本過程可分為:中斷請(qǐng)求,中斷響應(yīng),中斷處理和中斷返回。按預(yù)先設(shè)計(jì)安排的中斷優(yōu)先權(quán)來(lái)響應(yīng)中斷在一般情況下,都要待當(dāng)前指令執(zhí)行

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論