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

下載本文檔

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

文檔簡介

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

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

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

特點

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

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

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

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

三態(tài)門均處于高阻狀態(tài),使輸入設備的數(shù)據(jù)線與總線側斷開三態(tài)緩沖器輸入設備數(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ù)據(jù)線IOW地址譯碼地址線

300H000D7~D0A15~A0與非例2

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

4765321061H端口

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

4765321061H端口

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

查詢方式輸入假設外設的狀態(tài)端口為21CH,其中D4=1時,表示外設數(shù)據(jù)準備好外設的數(shù)據(jù)端口為218H。實現(xiàn)從外設讀入50H個字節(jié)到內(nèi)存緩沖區(qū)buffer中。21CH端口狀態(tài)端口218H端口數(shù)據(jù)端口地址譯碼數(shù)據(jù)緩沖控制電路輸入外備CPU地址線數(shù)據(jù)線控制線查詢方式輸入接口狀態(tài)端口D4=1表示外設準備好三態(tài)緩沖器輸入設備數(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)端口讀入外設狀態(tài)信息從218H數(shù)據(jù)端口讀入一個字節(jié)數(shù)據(jù)YND4=1,外設準備好否?N50H個數(shù)據(jù)傳送結束?Y編程從外設讀入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

查詢方式輸出假設外設的狀態(tài)端口為21CH,其中D0=0時,表示外設準備好外設的數(shù)據(jù)端口為219H。編程將緩沖區(qū)buffer的80H個字節(jié)輸出到外設。21CH端口狀態(tài)端口219H端口數(shù)據(jù)端口地址譯碼數(shù)據(jù)緩沖控制電路輸出外設CPU地址線數(shù)據(jù)線控制線查詢方式輸出接口狀態(tài)端口D0=0表示外設準備好輸出設備數(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)端口讀入外設狀態(tài)信息將一字節(jié)數(shù)據(jù)送至219H數(shù)據(jù)端口YND0=0,外設準備好否?N80H個數(shù)據(jù)傳送結束?Y編程將緩沖區(qū)buffer的80H個字節(jié)輸出到外設......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.

當外設準備好,向CPU發(fā)出中斷請求

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

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

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

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

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

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

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

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

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

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

實現(xiàn)方法:

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

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

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

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

2.電路結構復雜,硬件開銷較大。

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

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

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

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

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

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

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

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

查詢輸入接口狀態(tài)端口D4=1表示外設準備好三態(tài)緩沖器輸入設備數(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ù)據(jù)線219H數(shù)據(jù)端口地址譯碼地址線

鎖存器

RD

Q

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

將完成某一功能的接口電路集成在一個芯片上,通過對接口芯片編程,設置接口芯片的工作狀態(tài)。特點:1.體積小、功能強、可靠性高2.通常是專門為配合微機系統(tǒng)中的各種適配器設計,不必增加或增加很少的電路,就可直接與總線連接,使用方便。3.應用時,應掌握芯片的工作原理、外部特性、編程方法。接口芯片舉例:并行接口芯片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.用多功能的芯片組

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

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

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

1個8

溫馨提示

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

評論

0/150

提交評論