微型計(jì)算機(jī)課件05_第1頁(yè)
微型計(jì)算機(jī)課件05_第2頁(yè)
微型計(jì)算機(jī)課件05_第3頁(yè)
微型計(jì)算機(jī)課件05_第4頁(yè)
微型計(jì)算機(jī)課件05_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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)介

第5章微型機(jī)和外設(shè)的數(shù)據(jù)傳輸?shù)?章微型計(jì)算機(jī)和外設(shè)的數(shù)據(jù)傳輸教學(xué)重點(diǎn)

I/O接口電路的典型結(jié)構(gòu)無(wú)條件傳送方式查詢傳送方式

中斷工作過(guò)程存儲(chǔ)器都是用來(lái)保存信息的,功能單一,傳送方式單一(一次必定是傳送1個(gè)字節(jié)或者1個(gè)字),品種很有限(只有只讀類型和可讀/可寫類型),存取速度基本上和CPU的工作速度匹配。微機(jī)的外部設(shè)備多種多樣工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度方面彼此差別很大它們不能與CPU直接相連必須經(jīng)過(guò)中間電路再與系統(tǒng)相連這部分電路被稱為I/O接口電路,通過(guò)接口電路對(duì)輸入/輸出過(guò)程起一個(gè)緩沖和聯(lián)絡(luò)的作用。注:接口電路完成相應(yīng)的信號(hào)轉(zhuǎn)換、速度匹配、數(shù)據(jù)緩沖等功能多種外設(shè)5.1為什么要用接口電路5.2接口電路的概述什么是接口技術(shù)?連接計(jì)算機(jī)系統(tǒng)中的各種功能部件,構(gòu)成一個(gè)完整的、實(shí)用的計(jì)算機(jī)系統(tǒng),這是接口技術(shù)的廣義定義。依次定義,實(shí)現(xiàn)處理器到系統(tǒng)總線連接的總線驅(qū)動(dòng)器、數(shù)據(jù)收發(fā)器、時(shí)鐘電路等稱為處理器借口。此外,還有RAM接口、ROM接口、外部設(shè)備接口等等。更為流行的觀點(diǎn)認(rèn)為接口技術(shù)是把由處理器、RAM、ROM等組成的基本系統(tǒng)與外部設(shè)備連接起來(lái),從而實(shí)現(xiàn)計(jì)算機(jī)與外部世界通訊的一門技術(shù),即僅指I/O設(shè)備接口技術(shù)。什么是I/O接口(電路)?I/O接口是位于系統(tǒng)與外設(shè)間、用來(lái)協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路PC機(jī)系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路CPU接口電路

I/O設(shè)備5.2接口電路的概述(續(xù))什么是微機(jī)接口技術(shù)?處理微機(jī)系統(tǒng)與外設(shè)間聯(lián)系的技術(shù)注意其軟硬結(jié)合的特點(diǎn)根據(jù)應(yīng)用系統(tǒng)的需要,使用和構(gòu)造相應(yīng)的接口電路,編制配套的接口程序,支持和連接有關(guān)的設(shè)備5.2接口電路的概述(續(xù))5.2接口功能⑴尋址能力:對(duì)送來(lái)的片選信號(hào)進(jìn)行識(shí)別。⑵輸入/輸出功能:根據(jù)讀/寫信號(hào)決定當(dāng)前進(jìn)行的是輸入操作還是輸出操作。⑶數(shù)據(jù)轉(zhuǎn)換功能:并行數(shù)據(jù)向串行數(shù)據(jù)的轉(zhuǎn)換或串行數(shù)據(jù)向并行數(shù)據(jù)的轉(zhuǎn)換。⑷聯(lián)絡(luò)功能:就緒信號(hào),忙信號(hào)等。⑸中斷管理:發(fā)出中斯請(qǐng)求信號(hào)、接收中斷響應(yīng)信號(hào)、發(fā)送中斷類型碼的功能。并具有優(yōu)先級(jí)管理功能。⑹復(fù)位:接收復(fù)位信號(hào),從而使接口本身以及所連的外設(shè)進(jìn)行重新啟動(dòng)。⑺可編程:用軟件來(lái)決定其工作方式,用軟件來(lái)設(shè)置有關(guān)的控制信號(hào)。⑻錯(cuò)誤檢測(cè):一類是傳輸錯(cuò)誤。另一類是覆蓋錯(cuò)誤。注:一些接口還可根據(jù)具體情況設(shè)置其它的檢測(cè)信息。5.3I/O接口與系統(tǒng)的連接

(1)數(shù)據(jù)信息

CPU和外設(shè)交換的基本信息,包括三種形式:數(shù)字量、模擬量、開關(guān)量。(2)

狀態(tài)信息

是外設(shè)通過(guò)接口往CPU傳送的,反映了當(dāng)前外設(shè)的工作狀態(tài)。如:“準(zhǔn)備好”(READY)信號(hào)、“忙”(BUSY)信號(hào)(3)

控制信息

是CPU通過(guò)接口傳送給外設(shè)的相關(guān)控制信息。如:外設(shè)的啟動(dòng)信號(hào)、停止信號(hào)就是常見的控制信息。1.CPU與I/O設(shè)備之間的信號(hào)(三類)5.3I/O接口與系統(tǒng)的連接(續(xù))

⑴數(shù)據(jù)端口、⑵控制端口、⑶狀態(tài)端口CPU和外設(shè)進(jìn)行數(shù)據(jù)傳輸時(shí),各類信息在接口中進(jìn)入不同的寄存器,一般稱這些寄存器為I/O端口,每個(gè)端口有一個(gè)端口地址。用于對(duì)來(lái)自CPU和內(nèi)存的數(shù)據(jù)或者送往CPU和內(nèi)存的數(shù)據(jù)起緩沖作用的,這些端口叫數(shù)據(jù)端口。用來(lái)存放外部設(shè)備或者接口部件本身的狀態(tài),稱為狀態(tài)端口。用來(lái)存放CPU發(fā)出的命令,以便控制接口和設(shè)備的動(dòng)作,這類端口叫控制端口。如下圖2.接口部件的I/O端口注:⑴輸入還是輸出,所用到的地址總是對(duì)端口而言的,不是對(duì)接口部件而言的。⑵為了節(jié)省地址空間,將數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口對(duì)應(yīng)同一個(gè)端口地址。同樣,狀態(tài)端口和控制端口也常用同一個(gè)端口地址。⑶CPU對(duì)外設(shè)的輸入/輸出操作就歸結(jié)為對(duì)接口芯片各端口的讀/寫操作。

2.接口部件的I/O端口(續(xù))第5章:I/O接口的典型結(jié)構(gòu)控制總線CB地址總線ABI/O接口電路數(shù)據(jù)控制狀態(tài)數(shù)據(jù)總線DBCPU外設(shè)控制寄存器狀態(tài)寄存器數(shù)據(jù)寄存器1.接口電路的內(nèi)部結(jié)構(gòu)2.接口電路的外部特性3.接口電路芯片的分類4.接口電路的可編程性CPU與外設(shè)主要有數(shù)據(jù)、狀態(tài)和控制信息需要相互交換,于是從應(yīng)用角度看內(nèi)部:⑴數(shù)據(jù)寄存器輸入數(shù)據(jù)寄存器:保存外設(shè)給CPU的數(shù)據(jù)輸出數(shù)據(jù)寄存器:保存CPU給外設(shè)的數(shù)據(jù)⑵狀態(tài)寄存器保存外設(shè)或接口電路的狀態(tài)⑶控制寄存器保存CPU給外設(shè)或接口電路的命令2.接口部件的I/O端口(續(xù))3.接口與系統(tǒng)的連接接口電路位于CPU與外設(shè)之間,從結(jié)構(gòu)上看,可以把一個(gè)接口分為兩個(gè)部分。⑴用來(lái)和I/O設(shè)備相連;⑵用來(lái)和系統(tǒng)總線相連,這部分接口電路結(jié)構(gòu)類似,連在同一總線上。下圖是一個(gè)典型的I/O接口和外部電路的連接圖:3.接口與系統(tǒng)的連接(續(xù))聯(lián)絡(luò)信號(hào):讀/寫信號(hào),以便決定數(shù)據(jù)傳輸方向。地址譯碼器,片選信號(hào):地址譯碼器除了接收地址信號(hào)外,還用來(lái)區(qū)分I/0地址空間和內(nèi)存地址空間的信號(hào)(M/I0)用于譯碼過(guò)程。注:⑴一個(gè)接口通常有若干個(gè)寄存器可讀/寫,⑵一般用1-2位低位地址結(jié)合讀/寫信號(hào)來(lái)實(shí)現(xiàn)對(duì)接口內(nèi)部寄存器的尋址。4.輸入輸出的尋址方式接口電路占用的I/O端口有兩類編排形式I/O端口單獨(dú)編址I/O地址空間獨(dú)立于存儲(chǔ)地址空間如8086/8088I/O端口與存儲(chǔ)器統(tǒng)一編址它們共享一個(gè)地址空間如M6800I/O端口與存儲(chǔ)器統(tǒng)一編址優(yōu)點(diǎn):不需要專門的I/O指令I(lǐng)/O數(shù)據(jù)存取與存儲(chǔ)器數(shù)據(jù)存取一樣靈活缺點(diǎn):I/O端口要占去部分存儲(chǔ)器地址空間程序不易閱讀(不易分清訪存和訪問(wèn)外設(shè))內(nèi)存部分I/O部分存儲(chǔ)器空間00000FFFFF優(yōu)點(diǎn):I/O端口的地址空間獨(dú)立控制和地址譯碼電路相對(duì)簡(jiǎn)單專門的I/O指令使程序清晰易讀缺點(diǎn):I/O指令沒有存儲(chǔ)器指令豐富內(nèi)存空間I/O空間FFFFF0FFFF80x86采用I/O端口獨(dú)立編址I/O端口單獨(dú)編址8088/8086的輸入輸出指令輸入指令(IN:將外設(shè)數(shù)據(jù)傳送給CPU內(nèi)的AL/AX)INAL,i8 ;字節(jié)輸入INAL,DX ;字節(jié)輸入INAX,i8 ;字輸入INAX,DX ;字輸入輸出指令(OUT:將CPU內(nèi)的AL/AX數(shù)據(jù)傳送給外設(shè))OUTi8,AL ;字節(jié)輸出OUTDX,AL ;字節(jié)輸出OUTi8,AX ;字輸出OUTDX,AX ;字輸出演示演示8088/8086的I/O端口8088只能通過(guò)輸入輸出指令與外設(shè)進(jìn)行數(shù)據(jù)交換;呈現(xiàn)給程序員的外設(shè)是端口(Port),即I/O地址8086用于尋址外設(shè)端口的地址線為16條,端口最多為216=65536(64K)個(gè),端口號(hào)為0000H~FFFFH每個(gè)端口用于傳送一個(gè)字節(jié)的外設(shè)數(shù)據(jù)I/O尋址方式8088/8086的端口有64K個(gè),無(wú)需分段,設(shè)計(jì)有兩種尋址方式直接尋址:只用于尋址00H~FFH前256個(gè)端口,操作數(shù)i8表示端口號(hào)間接尋址:可用于尋址全部64K個(gè)端口,DX寄存器的值就是端口號(hào)對(duì)大于FFH的端口只能采用間接尋址方式數(shù)據(jù)交換方式如果輸入輸出一個(gè)字節(jié),利用AL寄存器如果輸入輸出一個(gè)字,利用AX寄存器輸入一個(gè)字,實(shí)際上是從連續(xù)兩個(gè)端口輸入兩個(gè)字節(jié),分別送AL(對(duì)應(yīng)低地址端口)和AH(對(duì)應(yīng)高地址端口)輸出一個(gè)字,實(shí)際上是將AL(對(duì)應(yīng)低地址端口)和AH(對(duì)應(yīng)高地址端口)兩個(gè)字節(jié)的內(nèi)容輸出給連續(xù)兩個(gè)端口第5章:IN指令實(shí)例(從20H端口輸入一個(gè)字);方法1:直接尋址,字量輸入

inax,20h;方法2:間接尋址,字量輸入 movdx,20h inax,dx;方法3:直接尋址,字節(jié)量輸入

inal,21h movah,al

inal,20h;方法4:間接尋址,字節(jié)量輸入

movdx,21h

inal,dx movah,al decdx

inal,dx第5章:OUT指令實(shí)例(向300H端口輸出一個(gè)字節(jié));唯一的方法:間接尋址,字節(jié)量輸出 moval,bvar ;bvar是字節(jié)變量 movdx,300h

outdx,al5.4CPU和外設(shè)之間的數(shù)據(jù)傳送方式程序控制下的數(shù)據(jù)傳送——通過(guò)CPU執(zhí)行程序中的I/O指令來(lái)完成傳送,又分為:無(wú)條件傳送、查詢傳送、中斷傳送直接存儲(chǔ)器存?。―MA)——傳送請(qǐng)求由外設(shè)向DMA控制器(DMAC)提出,后者向CPU申請(qǐng)總線,最后DMAC利用系統(tǒng)總線來(lái)完成外設(shè)和存儲(chǔ)器間的數(shù)據(jù)傳送I/O處理機(jī)——CPU委托專門的I/O處理機(jī)來(lái)管理外設(shè),完成傳送和相應(yīng)的數(shù)據(jù)處理第5章:1.無(wú)條件傳送方式及其接口在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時(shí),可以認(rèn)為它們總是處于“就緒”狀態(tài),隨時(shí)可以進(jìn)行數(shù)據(jù)傳送,這就是無(wú)條件傳送,或稱立即傳送、同步傳送適合于簡(jiǎn)單設(shè)備,如LED數(shù)碼管、按鍵或按紐等無(wú)條件傳送的接口和操作均十分簡(jiǎn)單這種傳送有前提:外設(shè)必須隨時(shí)就緒流程第6章:無(wú)條件傳送:輸入示例MOV DX,160HINAL,DX第6章:無(wú)條件傳送:輸入實(shí)例MOV DX,160HINAL,DX74LS244+5V10Kx8G1G2數(shù)據(jù)總線CSRD第6章:無(wú)條件傳送:輸出示例MOVDX,160HMOVAL,[BX]OUTDX,AL第6章:無(wú)條件傳送:輸出實(shí)例MOVDX,160HMOVAL,[BX]OUTDX,AL+5V74LS373300x8LEOE數(shù)據(jù)總線CSWR第6章:無(wú)條件傳送:輸入輸出接口K7K1K0+5VD0~D7A0~A15CLKLS06反相驅(qū)動(dòng)器LS2738D鎖存器LS244三態(tài)緩沖器8000H譯碼+5VLED0LED7……GIOWIORnext: movdx,8000h ;DX指向數(shù)據(jù)端口

inal,dx ;從輸入端口讀開關(guān)狀態(tài) notal ;反相

outdx,al ;送輸出端口顯示 calldelay ;調(diào)子程序延時(shí) jmpnext ;重復(fù)又稱查詢方式,即通過(guò)程序查詢相應(yīng)設(shè)備的狀態(tài),若狀態(tài)不符合,則CPU不能進(jìn)行輸入/輸出操作,需要等待;只有當(dāng)狀態(tài)信號(hào)符合要求時(shí),CPU才能進(jìn)行相應(yīng)的輸入/輸出操作。第5章:2.條件傳送方式一般外設(shè)均可以提供一些反映其狀態(tài)的信號(hào),如對(duì)輸入設(shè)備來(lái)說(shuō),它能夠提供“準(zhǔn)備好”(“READY”)信號(hào),“READY”

=1表示輸入數(shù)據(jù)已準(zhǔn)備好。輸出設(shè)備則提供“忙”(“BUSY”)信號(hào),“BUSY”=1表示當(dāng)前時(shí)刻不能接收CPU來(lái)的數(shù)據(jù),只有當(dāng)“BUSY”=0時(shí),才表明它可以接受來(lái)自于CPU的輸出數(shù)據(jù)。

第5章:2.條件傳送方式(續(xù))CPU需要先了解(查詢)外設(shè)的工作狀態(tài),然后在外設(shè)可以交換信息的情況下(就緒)實(shí)現(xiàn)數(shù)據(jù)輸入或輸出對(duì)多個(gè)外設(shè)的情況,則CPU按一定順序依次查詢(輪詢)。先查詢的外設(shè)將優(yōu)先進(jìn)行數(shù)據(jù)交換查詢傳送的特點(diǎn)是:工作可靠,適用面寬,但傳送效率低就緒?第5章:條件傳送的兩個(gè)環(huán)節(jié)⑴查詢環(huán)節(jié)尋址狀態(tài)口讀取狀態(tài)寄存器的標(biāo)志位若不就緒就繼續(xù)查詢,直至就緒⑵傳送環(huán)節(jié)尋址數(shù)據(jù)口是輸入,通過(guò)輸入指令從數(shù)據(jù)端口讀入數(shù)據(jù)是輸出,通過(guò)輸出指令向數(shù)據(jù)端口輸出數(shù)據(jù)輸入狀態(tài)就緒?數(shù)據(jù)交換YN流程第5章:查詢輸入接口IOR+5V8D鎖存器8位三態(tài)緩沖器譯碼1位三態(tài)緩沖器RQ

A0~A158000H8001HD0~D7D0D輸入設(shè)備IORSTB

movdx,8000h ;DX指向狀態(tài)端口status:

inal,dx

;讀狀態(tài)端口

testal,01h ;測(cè)試標(biāo)志位D0

jzstatus ;D0=0,未就緒,繼續(xù)查詢 incdx ;D0=1,就緒,DX指向數(shù)據(jù)端口

inal,dx ;從數(shù)據(jù)端口輸入數(shù)據(jù)第5章:查詢輸出接口8D鎖存器譯碼1位三態(tài)緩沖器RQ

A0~A158000H8001HD0~D7D7D+5V輸出設(shè)備ACKIOWIOR

movdx,8000h ;DX指向狀態(tài)端口status: inal,dx ;讀取狀態(tài)端口的狀態(tài)數(shù)據(jù)

testal,80h ;測(cè)試標(biāo)志位D7 jnzstatus ;D7=1,未就緒,繼續(xù)查詢 incdx ;D7=0,就緒,DX指向數(shù)據(jù)端口 moval,buf ;變量buf送AL

outdx,al ;將數(shù)據(jù)輸出給數(shù)據(jù)端口第5章:條件傳送舉例例1.假定接口的數(shù)據(jù)輸入端口地址為0052H,數(shù)據(jù)輸出端口地址為0054H,狀態(tài)端口地址為0056H,并且設(shè)定如果狀態(tài)寄存器中第1位為1,則表示輸入緩沖器中已經(jīng)有1個(gè)字節(jié)準(zhǔn)備好,可以進(jìn)行輸入。此外,還設(shè)定如果狀態(tài)寄存器的第0位為1,則表示輸出緩沖器已經(jīng)騰空,因而CPU可以往終端輸出數(shù)據(jù)。程序:DATA_SEGSEGMENTMESSAGEDB‘BUFFEROVERFLOW’,0DH,0AH

DATA_SEGENDSCOM_SEGSEGMENTBUFFERDB82DUP(?)COUNTDB?COM_SEGENDSCODESEGMENTASSEMEDS:DATA_SEG,ES:COM_SEG,CS:CODESTAT:MOVAX,DATA_SEGMOVDS,AXMOVAX,COM_SEG程序(續(xù)):MOVES,AXMOVDI,OFFESTBUFFER

MOVCOUNT,DIMOVCX,81 CLDNEXT_IN:INAL,56H TESTAL,02H JZNEXT_ININAL,52H ORAL,0 JPENO_ERROR JMPERRORNO_ERROR:ANDAL,7FHSTOSB程序(續(xù)):CMPAL,0DHLOOPNENEXT_IN

JNEOVERFLOWMOVAL,0AH STOSBSUBDI,COUNT MOVCOUNT,DI

:OVERFLOW:MOVSI,OFFESTMESSAGEMOVCX,17NEXT_OUT:INAL,56H TESTAL,01H JZNEXT_OUTLODSBOUT54H,ALLOOPNEXT_OUT

:例2假設(shè)從某輸入設(shè)備上輸入一組數(shù)據(jù)送緩沖區(qū),接口電路如圖5-3,若緩沖區(qū)已滿則輸出一組信息“BOFFEROVERFLOW”,然后結(jié)束。設(shè)該設(shè)備的啟動(dòng)地址為0FCH,數(shù)據(jù)端口為0F8H,狀態(tài)端口為FAH。程序如下:DATASEGMENTMESS1DB“BUFFEROVERFLOW”,“$”BUFFDB60DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,OFFSETBUFF;送緩沖區(qū)指針MOV CX,60;送計(jì)數(shù)初值OUT 0FCH,AL;啟動(dòng)設(shè)備WAIT:IN AL,OFAH;查詢狀態(tài),若為0,則等待TEST AL,01H JZ WAIT IN AL,0F8H;輸入數(shù)據(jù) MOV [BX],AL INC BX LOOP WAIT;檢測(cè)緩沖區(qū)是否滿,不滿再輸入 MOV DX,OFFSETMESS1;緩沖區(qū)滿,輸出標(biāo)志字符串MOV AH,09HINT 21HMOV AH,4CHINT 21HCODEENDSENDSTART

第5章:5.4.2中斷傳送方式1.為什么要采用中斷傳送方式

從查詢式的傳輸過(guò)程可以看出,它的優(yōu)點(diǎn)是硬件開銷小,使用起來(lái)比較簡(jiǎn)單。但在此方式下,CPU要不斷地查詢外設(shè)的狀態(tài),當(dāng)外設(shè)未準(zhǔn)備好時(shí),CPU就只能循環(huán)等待,不能執(zhí)行其它程序,這樣就浪費(fèi)了CPU的大量時(shí)間,降低了主機(jī)的利用率。

1.為什么要采用中斷傳送方式(續(xù))為了解決這個(gè)矛盾,我們提出了中斷傳送方式:即當(dāng)CPU進(jìn)行主程序操作時(shí),外設(shè)的數(shù)據(jù)已存入輸入端口的數(shù)據(jù)寄存器;或端口的數(shù)據(jù)輸出寄存器已空,由外設(shè)通過(guò)接口電路向CPU發(fā)出中斷請(qǐng)求信號(hào),CPU在滿足一定的條件下,暫停執(zhí)行當(dāng)前正在執(zhí)行的主程序,轉(zhuǎn)入執(zhí)行相應(yīng)能夠進(jìn)行輸入/輸出操作的子程序,待輸入/輸出操作執(zhí)行完畢之后CPU即返回繼續(xù)執(zhí)行原來(lái)被中斷的主程序。這樣CPU就避免了把大量時(shí)間耗費(fèi)在等待、查詢狀態(tài)信號(hào)的操作上,使其工作效率得以大大地提高。第5章:5.4.2中斷傳送方式斷點(diǎn)主程序中斷服務(wù)程序中斷請(qǐng)求對(duì)外設(shè)進(jìn)行處理繼續(xù)執(zhí)行返回?cái)帱c(diǎn)CPU在執(zhí)行程序中,被內(nèi)部或外部的事件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)先安排好的中斷服務(wù)程序;服務(wù)結(jié)束后,又返回原來(lái)的斷點(diǎn),繼續(xù)執(zhí)行原來(lái)的程序流程第5章:2.中斷傳送與接口中斷傳送是一種效率更高的程序傳送方式進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的中斷請(qǐng)求是外設(shè)隨機(jī)向CPU提出的CPU對(duì)請(qǐng)求的檢測(cè)是有規(guī)律的:一般是在每條指令的最后一個(gè)時(shí)鐘周期采樣中斷請(qǐng)求輸入引腳本書主要論述中斷在輸入和輸出方面的應(yīng)用中斷還有著非常廣泛的應(yīng)用第5章:3.中斷輸入接口電路數(shù)據(jù)輸入的過(guò)程:當(dāng)外設(shè)發(fā)STB→數(shù)據(jù)入鎖存器,中斷請(qǐng)求觸發(fā)器置1→若沒有屏蔽則產(chǎn)生INTR→CPU滿足條件(允許中斷;指令執(zhí)行完)發(fā)INTA→(進(jìn)入中斷服務(wù)子程序)讀數(shù)據(jù),發(fā)RD,和地址→清中斷請(qǐng)求觸發(fā)器,數(shù)據(jù)送D0~D7。(輸出過(guò)程請(qǐng)自己思考)第5章:4.中斷優(yōu)先級(jí)問(wèn)題的提出:當(dāng)系統(tǒng)中有多個(gè)設(shè)備提出中斷請(qǐng)求時(shí),就有一個(gè)該響應(yīng)誰(shuí)的問(wèn)題,也就是一個(gè)優(yōu)先級(jí)的問(wèn)題,解決優(yōu)先級(jí)的問(wèn)題一般可有三種方法:軟件查詢法、簡(jiǎn)單硬件方法及專用硬件方法。下面分別介紹:①軟件查詢法只需有簡(jiǎn)單的硬件電路,如將A、B、C三臺(tái)設(shè)備的中斷請(qǐng)求信號(hào)“或”后作為系統(tǒng)INTR,這時(shí),A、B、C三臺(tái)設(shè)備中只要至少有一臺(tái)設(shè)備提出中斷請(qǐng)求,都可以向CPU發(fā)中斷請(qǐng)求。進(jìn)入中斷服務(wù)子程序后,再用軟件查詢的方式分別對(duì)不同的設(shè)備的服務(wù),查詢程序的設(shè)計(jì)思想同查詢式,查詢的前后順序就給出了設(shè)備的優(yōu)先級(jí),框圖如圖所示。以鏈?zhǔn)街袛鄡?yōu)先權(quán)排隊(duì)電路為例,基本設(shè)計(jì)思想:將所有的設(shè)備連成一條鏈,靠近CPU的設(shè)備優(yōu)先級(jí)最高,越遠(yuǎn)的設(shè)備優(yōu)先級(jí)別越低,則發(fā)出中斷響應(yīng)信號(hào),若級(jí)別高的設(shè)備發(fā)出了中斷請(qǐng)求,在它接到中斷響應(yīng)信號(hào)的同時(shí),封鎖其后的較低級(jí)設(shè)備使得它們的中斷請(qǐng)求不能響應(yīng),只有等它的中斷服務(wù)結(jié)束以后才開放,允許為低級(jí)的設(shè)備服務(wù)。如圖所示。②簡(jiǎn)單硬件方法有了中斷控制器以后,CPU的INTR和引腳不再與接口直接相連,而是與中斷控制器相連,外設(shè)的中斷請(qǐng)求信號(hào)通過(guò)IR0~I(xiàn)R7進(jìn)入中斷控制器,經(jīng)優(yōu)先級(jí)管理邏輯確認(rèn)為級(jí)別最高的那個(gè)請(qǐng)求的類型號(hào)會(huì)經(jīng)過(guò)中斷類型寄存器在當(dāng)前中斷服務(wù)寄存器的某位上置1,并向CPU發(fā)INTR請(qǐng)求,CPU發(fā)出INTA信號(hào)后,中斷控制器將中斷類型碼送出。在整個(gè)過(guò)程中,優(yōu)先級(jí)較低的中斷請(qǐng)求都受到阻塞,直到較高級(jí)的中斷服務(wù)完畢之后,當(dāng)前服務(wù)寄存器的對(duì)應(yīng)位清0,較低級(jí)的中斷請(qǐng)求才有可能被響應(yīng)。如圖所示。③專用硬件方式采用可編程的中斷控制器芯片,如Intel8259A。第5章:5.4.3DMA傳送方式希望克服程序控制傳送的不足:外設(shè)→CPU→存儲(chǔ)器外設(shè)←CPU←存儲(chǔ)器直接存儲(chǔ)器存取DMA:外設(shè)→存儲(chǔ)器外設(shè)←存儲(chǔ)器CPU釋放總線,由DMA控制器管理1.DMA傳送方式的提出利用中斷進(jìn)行信息傳送,可以大大提高CPU的利用率,但是其傳送過(guò)程必須由CPU進(jìn)行監(jiān)控。每次中斷,CPU都必須進(jìn)行斷點(diǎn)及現(xiàn)場(chǎng)信息的保護(hù)和恢復(fù)操作,這些都是一些額外的操作,會(huì)占用一定的CPU時(shí)間。如果需要在內(nèi)存的不同區(qū)域之間,或者在內(nèi)存與外設(shè)端口之間進(jìn)行大量信息快速傳送的話,用查詢或中斷方式均不能滿足速度上的要求,這時(shí)應(yīng)采用直接數(shù)據(jù)通道傳送,即DMA數(shù)據(jù)傳送方式。DMA(DirectMemoryAccess)意為直接數(shù)據(jù)傳送,它是在內(nèi)存的不同區(qū)域之間,或者在內(nèi)存與外設(shè)端口之間直接進(jìn)行數(shù)據(jù)傳送,而不經(jīng)過(guò)CPU中轉(zhuǎn)的一種數(shù)據(jù)傳送方式,可以大大提高信息的傳送速度。1.DMA傳送方式的提出(續(xù))第5章:2.DMA傳送的工作過(guò)程①外設(shè)準(zhǔn)備就緒時(shí),向DMA控制器發(fā)DMA請(qǐng)求,DMA控制器接到此信號(hào)后,向CPU發(fā)DMA請(qǐng)求;②CPU接到HOLD請(qǐng)求后,如果條件允許(一個(gè)總線操作結(jié)束),則發(fā)出HLDA信號(hào)作為響應(yīng),同時(shí),放棄對(duì)總線的控制;③DMA控制器取得總線控制權(quán)后,往地址總線發(fā)送地址信號(hào),每傳送1個(gè)字節(jié),就會(huì)自動(dòng)修改地址寄存器的內(nèi)容,以指向下一個(gè)要傳送的字節(jié);④每傳送一個(gè)字節(jié),字節(jié)計(jì)數(shù)器的值減1,當(dāng)減到0時(shí),DMA過(guò)程結(jié)束;⑤DMA控制器向CPU發(fā)結(jié)束信號(hào),將總線控制權(quán)交回CPU。DMA傳送控制方式,解決了在內(nèi)存的不同區(qū)域之間,或者內(nèi)存與外設(shè)之間大量數(shù)據(jù)的快速傳送問(wèn)題,代價(jià)是需要增加專門的硬件控制電路,稱為DM

溫馨提示

  • 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)論