第九章-輸入輸出方法及常用的接口電路-2_第1頁
第九章-輸入輸出方法及常用的接口電路-2_第2頁
第九章-輸入輸出方法及常用的接口電路-2_第3頁
第九章-輸入輸出方法及常用的接口電路-2_第4頁
第九章-輸入輸出方法及常用的接口電路-2_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

9.2.2 基本輸入輸出方法CPU與外設(shè)的工作速度不一致,如何使兩者高效、可靠地進行數(shù)據(jù)傳送,是接口技術(shù)討論的問題?;据斎胼敵龇椒ǎ撼绦蚩刂频妮斎?輸出方式;程序中斷輸入/輸出方式;直接存儲器存取(DMA:DirectMemoryAccess)方式;專用I/O處理器方式。概述1.無條件傳送(CPU與外設(shè)同步工作):外部控制過程各種動作時間是固定的,而且是已知的。2.查詢方式(CPU與外設(shè)不同步工作):傳送前,先查詢外設(shè)狀態(tài),準(zhǔn)備好才傳送,否則CPU處于等待狀態(tài)。3.中斷方式: 外設(shè)與CPU處于并行工作,一旦外設(shè)準(zhǔn)備好,外設(shè)向CPU發(fā)中斷申請,條件具備,CPU暫停原程序執(zhí)行,響應(yīng)中斷,外設(shè)與CPU串行工作。4.DMA方式(高速I/O及成組交換數(shù)據(jù)):

CPU不干予,由硬件實現(xiàn)存儲器與外設(shè)之間交換數(shù)據(jù),稱直接存取存儲器。程序控制的輸入/輸出無條件傳送程序數(shù)據(jù)傳送輸入狀態(tài)字?jǐn)?shù)據(jù)傳送YN數(shù)據(jù)準(zhǔn)備好?有條件傳送一、無條件傳送方式(同步傳送方式)實現(xiàn)方法

CPU不查詢外設(shè)工作狀態(tài),與外設(shè)速度的匹配通過在軟件上延時完成,在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送

特點

1.適用于外設(shè)動作時間已知,在CPU與外設(shè)進行數(shù)據(jù)傳送時,外設(shè)保證已準(zhǔn)備好的情況

2.軟硬件十分簡單。例1

無條件輸入接口接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時,

三態(tài)門處于工作狀態(tài),使輸入設(shè)備的數(shù)據(jù)送上總線側(cè),而CPU執(zhí)行其它指令時,

三態(tài)門均處于高阻狀態(tài),使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線無條件輸入編程:

從端口200H讀入100個字節(jié)到內(nèi)存緩沖區(qū)buffer中。......MOVAX,SEGbufferMOVDS,AX;取緩沖區(qū)

LEADI,buffer;首地址

MOVCX,100;傳送個數(shù)

MOVDX,200H;端口地址next: CALLdelay ;延時等待

INAL,DX;讀入數(shù)據(jù)

MOV[DI],AL;送緩沖區(qū)

INCDI;修改指針

LOOPnext.......;延時子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCXRETdelayENDP例2無條件輸出接口PC總線鎖存器輸出設(shè)備數(shù)據(jù)線IOW地址譯碼地址線

300H000D7~D0A15~A0與非例2

無條件輸出:編程控制系統(tǒng)板上揚聲器發(fā)聲。

4765321061H端口

8253與門放大器揚聲器01控制其它外設(shè)揚聲器控制電路圖:發(fā)聲原理:向揚聲器發(fā)送一串脈沖信號,推動揚聲器內(nèi)紙盆振動,發(fā)出聲音脈沖的頻率,控制音高;脈沖的個數(shù),控制音長1.使61H端口的0位輸出0,控制8253輸出1。2.使61H端口的1位按所需頻率交替輸出0和1,產(chǎn)生所需的聲音。編程方法:

4765321061H端口

8253與門放大器揚聲器01控制其它外設(shè)揚聲器控制電路圖:codeSEGMENTASSUMECS:codestart:MOVBX,3000H;控制脈沖個數(shù)

MOVDX,6000H;控制脈沖周期

INAL,61H

;讀入61H端口數(shù)據(jù)

ANDAL,11111100b;D0為0,8253輸出1sound:XORAL,00000010bOUT61H,AL;61H端口的D1交替為0和1MOVCX,DXdelay:LOOPdelay;延時

DECBX;控制脈沖數(shù)

JNZsoundMOVAH,4CHINT21HcodeENDSENDstart發(fā)聲程序:

61H端口8253與門放大器揚聲器01控制其它外設(shè)二、條件傳送方式(查詢傳送方式)實現(xiàn)方法:在與外設(shè)進行傳送數(shù)據(jù)前,CPU先查詢外設(shè)狀態(tài),當(dāng)外設(shè)準(zhǔn)備好后,才執(zhí)行I/O指令,實現(xiàn)數(shù)據(jù)傳送特點:1.CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配2.CPU的工作效率低查詢傳送方式,編程流程:NY從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個數(shù)據(jù)外設(shè)準(zhǔn)備好否?例1

查詢方式輸入假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D4=1時,表示外設(shè)數(shù)據(jù)準(zhǔn)備好外設(shè)的數(shù)據(jù)端口為218H。實現(xiàn)從外設(shè)讀入50H個字節(jié)到內(nèi)存緩沖區(qū)buffer中。21CH端口狀態(tài)端口218H端口數(shù)據(jù)端口地址譯碼數(shù)據(jù)緩沖控制電路輸入外備CPU地址線數(shù)據(jù)線控制線查詢方式輸入接口狀態(tài)端口D4=1表示外設(shè)準(zhǔn)備好三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線218H

數(shù)據(jù)端口地址譯碼地址線

狀態(tài)端口地址譯碼鎖存器IOR

R

Q

D三態(tài)緩沖器+5vD421CH

STBPC總線IORA15~A0D7~D0&&MOVDX,218HINAL,DXMOVDX,21CHask:INAL,DXTESTAL,10hJZask從21CH狀態(tài)端口讀入外設(shè)狀態(tài)信息從218H數(shù)據(jù)端口讀入一個字節(jié)數(shù)據(jù)YND4=1,外設(shè)準(zhǔn)備好否?N50H個數(shù)據(jù)傳送結(jié)束?Y編程從外設(shè)讀入50H個字節(jié)到內(nèi)存緩沖區(qū)buffer中......MOVAX,SEGbuffer;取緩沖區(qū)首地址

MOVDS,AXLEADI,bufferMOVCX,50H;傳送個數(shù)next:MOVDX,21CHask:INAL,DX;從狀態(tài)端口讀入狀態(tài)信息TESTAL,00010000B;檢測D4位JZask;D4=0,繼續(xù)查詢MOVDX,218HINAL,DX;從數(shù)據(jù)端口讀入數(shù)據(jù)MOV[DI],AL;送緩沖區(qū)INCDI;修改緩沖區(qū)指針LOOPnext;傳送下一個......查詢方式輸入程序段:例2

查詢方式輸出假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D0=0時,表示外設(shè)準(zhǔn)備好外設(shè)的數(shù)據(jù)端口為219H。編程將緩沖區(qū)buffer的80H個字節(jié)輸出到外設(shè)。21CH端口狀態(tài)端口219H端口數(shù)據(jù)端口地址譯碼數(shù)據(jù)緩沖控制電路輸出外設(shè)CPU地址線數(shù)據(jù)線控制線查詢方式輸出接口狀態(tài)端口D0=0表示外設(shè)準(zhǔn)備好輸出設(shè)備數(shù)據(jù)線219H數(shù)據(jù)端口地址譯碼地址線

鎖存器

RD

Q

三態(tài)緩沖器+5vACKPC總線IORA15~A0D7~D0IOW狀態(tài)端口地址譯碼D021CH&&MOVDX,219HOUTDX,ALMOVDX,21CHAsk:INAL,DXTESTAL,01hJNZask

STB從21CH狀態(tài)端口讀入外設(shè)狀態(tài)信息將一字節(jié)數(shù)據(jù)送至219H數(shù)據(jù)端口YND0=0,外設(shè)準(zhǔn)備好否?N80H個數(shù)據(jù)傳送結(jié)束?Y編程將緩沖區(qū)buffer的80H個字節(jié)輸出到外設(shè)......MOVAX,SEGbuffer;取緩沖區(qū)首地址

MOVDS,AXLEASI,bufferMOVCX,80H;傳送個數(shù)next:MOVDX,21CHask:INAL,DX;從狀態(tài)端口讀入狀態(tài)信息

TESTAL,00000001B;檢測D0位

JNZask;D0≠0,繼續(xù)查詢

MOVAL,[SI];從緩沖區(qū)取數(shù)

MOVDX,219HOUTDX,AL;從數(shù)據(jù)端口輸出數(shù)據(jù)

INCSI;修改緩沖區(qū)指針

LOOPnext;輸出下一個

......查詢方式輸出程序段:

三、中斷傳送方式

實現(xiàn)方法:

1.

當(dāng)外設(shè)準(zhǔn)備好,向CPU發(fā)出中斷請求

2.CPU在滿足響應(yīng)中斷的條件下,發(fā)出中斷響應(yīng)信號;

3.CPU暫停當(dāng)前的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,完成與外設(shè)的數(shù)據(jù)傳送;

4.CPU從中斷服務(wù)程序返回,繼續(xù)執(zhí)行被中斷的程序

缺點主要有:為了能接受中斷的請求信號,CPU內(nèi)部要有相應(yīng)的中斷控制電路,外圍設(shè)備要提供中斷請求信號及中斷類型號。利用中斷輸入/輸出,每傳送一次數(shù)據(jù)就要中斷一次CPU。CPU響應(yīng)中斷后,進入中斷處理將程序引導(dǎo)至“中斷服務(wù)程序”入口。在“中斷服務(wù)程序”中一般都要保護現(xiàn)場、恢復(fù)現(xiàn)場,這要安排多條指令,浪費了很多CPU時間。故此種傳送方式一般較適合于傳送少量的輸入/輸出數(shù)據(jù)以及中低速度的外圍設(shè)備。對于大量的輸入/輸出數(shù)據(jù),應(yīng)采用高速的直接存儲器存取方式DMA。中斷服務(wù)程序發(fā)申請中斷服務(wù)程序發(fā)申請中斷方式下CPU執(zhí)行程序流程外設(shè)使用中斷方式時:外設(shè)準(zhǔn)備數(shù)據(jù),CPU執(zhí)行程序,

CPU與外設(shè)并行工作;一旦外設(shè)準(zhǔn)備就緒,外設(shè)向CPU發(fā)中斷申請,CPU暫停原程序執(zhí)行,響應(yīng)中斷,進行數(shù)據(jù)傳輸。此時,CPU與外設(shè)是串行工作。

中斷傳送方式的特點:1.CPU和外設(shè)大部分時間處在并行工作狀態(tài),

只在CPU響應(yīng)外設(shè)的中斷申請后,進入數(shù)據(jù)傳送的過程2.中斷傳送方式提高了CPU的效率(1)當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好,外設(shè)向接口電路發(fā)出選通信號:

將數(shù)據(jù)打入鎖存器;同時將中斷請求觸發(fā)器置“1”,(2)若此時,中斷請求屏蔽觸發(fā)器置“0”,允許本接口發(fā)出中斷,

接口電路向CPU發(fā)出中斷請求信號INTR;(3)CPU在運行程序時不斷訪問INTR,若查到INTR信號, 且CPU內(nèi)部中斷允許標(biāo)志IF=1,則CPU在現(xiàn)行指令執(zhí)行完后, 暫停程序的執(zhí)行,向接口電路發(fā)出中斷響應(yīng)信號INTA。(4)外設(shè)把中斷類型號送上數(shù)據(jù)總線;(5)CPU轉(zhuǎn)入中斷服務(wù)程序,執(zhí)行IN指令,讀入數(shù)據(jù); 清除中斷請求標(biāo)志。當(dāng)中斷處理完后,返回原程序。3.直接存儲器存取方式(DMA)

外圍設(shè)備通過DMAC向CPU申請DMA請求CPU響應(yīng)DMA請求交出總線控制權(quán)從源地址中讀取數(shù)據(jù)將數(shù)據(jù)寫到目標(biāo)地址DMA結(jié)束數(shù)據(jù)傳送結(jié)束否?修改地址指針NYDMA傳送方式(直接存儲器存取方式)

實現(xiàn)方法:

1.由專用接口芯片DMA控制器(稱DMAC)控制傳送過程,2.當(dāng)外設(shè)需傳送數(shù)據(jù)時,通過

DMAC向CPU發(fā)出總線請求;3.CPU發(fā)出總線響應(yīng)信號,釋放總線;4.DMAC接管總線,控制外設(shè)、內(nèi)存之間直接數(shù)據(jù)傳送DMA

傳送方式過程CPUDMAC內(nèi)存外設(shè)總線響應(yīng)總線請求DMA傳送方式的特點

1.外設(shè)和內(nèi)存之間,直接進行數(shù)據(jù)傳送,不通過CPU,傳送效率高。適用于在內(nèi)存與高速外設(shè)、或兩個高速外設(shè)之間進行大批量數(shù)據(jù)傳送。

2.電路結(jié)構(gòu)復(fù)雜,硬件開銷較大。

接收接口往DMA控制器發(fā)出DMA請求信號后,

DMA控制器能向CPU發(fā)出總線請求信號HOLD(高電平)。當(dāng)CPU向DMA發(fā)出響應(yīng)信號HLDA(高電平)以后,

DMA能接管對總線的控制,進入DMA方式。能向地址總線發(fā)出內(nèi)存地址信息,對其進行尋址及修改地址指針。能向存儲器或外設(shè)發(fā)#RD,#WR命令。能決定傳送字節(jié)數(shù),并判斷DMA傳送是否結(jié)束。

DMA過程結(jié)束,能向CPU發(fā)出DMA結(jié)束信號,HOLD變低,將總線控 制權(quán)還給CPU,CPU恢復(fù)正常工作。DMA控制器功能用DMA方式進行輸出過程與輸入過程類似,只是在DMA控制器發(fā)出回答信號后接著發(fā)出的是I/O寫信號和存儲器讀信號,數(shù)據(jù)傳送方向與輸入相反而已。DMA控制器工作原理4.專用I/O處理器方式

對于有大量的、高速的I/O設(shè)備的微機系統(tǒng),前面幾種方法都難以滿足要求,于是,人們又提出并實際上廣泛采用了一種專用I/O處理機(IOP)控制方式,比如8089。這種方式是把原來由CPU完成的各種I/O操作與控制全部交給I/O處理器去完成。I/O處理器能夠直接存取系統(tǒng)主存儲器,能夠中斷CPU或被CPU查詢,并能直接執(zhí)行I/O程序和數(shù)據(jù)預(yù)處理程序。因此,這種方式可以大大提高CPU對具有大量I/O設(shè)備的數(shù)據(jù)吞吐量。接口技術(shù)1.用簡單的邏輯電路2.用可編程集成接口芯片3.用多功能的芯片組1.用簡單的邏輯電路采用簡單的邏輯部件完成接口電路特點:原理清楚,但實際用得少。

例1無條件輸入接口例2無條件輸出接口例3查詢輸入接口例4查詢輸出接口注意:有些控制信號采用的是8088CPU工作于最小模式下的信號有些控制信號采用的是IBMPC/XT總線上的信號例1無條件輸入接口三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線注意:在邏輯門前輸入信號的,表示對信號求反。與鎖存器、三態(tài)門等控制端的意義不同。簡單的邏輯電路:例2無條件輸出接口PC總線鎖存器輸出設(shè)備數(shù)據(jù)線IOW地址譯碼地址線

300H000D7~D0A15~A0與非簡單的邏輯電路:例3

查詢輸入接口狀態(tài)端口D4=1表示外設(shè)準(zhǔn)備好三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線218H

數(shù)據(jù)端口地址譯碼地址線

狀態(tài)端口地址譯碼鎖存器IOR

R

Q

D三態(tài)緩沖器+5vD421CH

STBPC總線IORA15~A0D7~D0&&MOVDX,218HINAL,DXMOVDX,21CHINAL,DX簡單的邏輯電路:例4查詢輸出接口狀態(tài)端口D0=0表示外設(shè)準(zhǔn)備好輸出設(shè)備數(shù)據(jù)線219H數(shù)據(jù)端口地址譯碼地址線

鎖存器

RD

Q

三態(tài)緩沖器+5vACKPC總線IORA15~A0D7~D0IOW狀態(tài)端口地址譯碼D021CH&&MOVDX,219HOUTDX,ALMOVDX,21CHINAL,DX簡單的邏輯電路:STB2.用可編程集成接口芯片

將完成某一功能的接口電路集成在一個芯片上,通過對接口芯片編程,設(shè)置接口芯片的工作狀態(tài)。特點:1.體積小、功能強、可靠性高2.通常是專門為配合微機系統(tǒng)中的各種適配器設(shè)計,不必增加或增加很少的電路,就可直接與總線連接,使用方便。3.應(yīng)用時,應(yīng)掌握芯片的工作原理、外部特性、編程方法。接口芯片舉例:并行接口芯片8255A、8155A、Z80-PIO串行接口芯片8251A、8250、Z80-SIO定時/計數(shù)器8253、8254、Z80-CTC中斷控制器8259ADMA控制器8237A、Z80-DMA鍵盤控制器8279CRT控制器8275、6845硬盤控制器6843

D/A轉(zhuǎn)換器DAC0832A/D轉(zhuǎn)換器ADC0809例用可編程并行接口芯片8255A做打印機的接口。查詢方式接線圖A0A1CS并行接口8255A打印機PC總線A0A1數(shù)據(jù)線IORRDWRIOW片選譯碼PA0~PA7PC0PC4A2~A9數(shù)據(jù)線STROBEBUSYD0~D7D0~D7中斷方式接線圖A0A1CS并行接口8255A打印機PC總線A0A1數(shù)據(jù)線IORRDWRIOW片選譯碼PA0~PA7PC7PC6A2~A9數(shù)據(jù)線STROBEACKD0~D7D0~D7PC3IRQ33.用多功能的芯片組

將完成多個功能的接口電路集成在一個芯片上,通過編程,設(shè)置控制字,改變接口芯片的工作狀態(tài)。例

82206集成外設(shè)控制器,內(nèi)部包含:

2個8237DMA控制器2個8259A中斷控制器

1個8

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論