第九章-輸入輸出方法及常用的接口電路-2_第1頁(yè)
第九章-輸入輸出方法及常用的接口電路-2_第2頁(yè)
第九章-輸入輸出方法及常用的接口電路-2_第3頁(yè)
第九章-輸入輸出方法及常用的接口電路-2_第4頁(yè)
第九章-輸入輸出方法及常用的接口電路-2_第5頁(yè)
已閱讀5頁(yè),還剩47頁(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)介

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

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

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

特點(diǎn)

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

2.軟硬件十分簡(jiǎn)單。例1

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

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

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

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

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

LEADI,buffer;首地址

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

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

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

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

INCDI;修改指針

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

300H000D7~D0A15~A0與非例2

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

4765321061H端口

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

4765321061H端口

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

MOVDX,6000H;控制脈沖周期

INAL,61H

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

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

DECBX;控制脈沖數(shù)

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

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

查詢方式輸入假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D4=1時(shí),表示外設(shè)數(shù)據(jù)準(zhǔn)備好外設(shè)的數(shù)據(jù)端口為218H。實(shí)現(xiàn)從外設(shè)讀入50H個(gè)字節(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ù)端口讀入一個(gè)字節(jié)數(shù)據(jù)YND4=1,外設(shè)準(zhǔn)備好否?N50H個(gè)數(shù)據(jù)傳送結(jié)束?Y編程從外設(shè)讀入50H個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中......MOVAX,SEGbuffer;取緩沖區(qū)首地址

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

查詢方式輸出假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D0=0時(shí),表示外設(shè)準(zhǔn)備好外設(shè)的數(shù)據(jù)端口為219H。編程將緩沖區(qū)buffer的80H個(gè)字節(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個(gè)數(shù)據(jù)傳送結(jié)束?Y編程將緩沖區(qū)buffer的80H個(gè)字節(jié)輸出到外設(shè)......MOVAX,SEGbuffer;取緩沖區(qū)首地址

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

TESTAL,00000001B;檢測(cè)D0位

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

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

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

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

LOOPnext;輸出下一個(gè)

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

三、中斷傳送方式

實(shí)現(xiàn)方法:

1.

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

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

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

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

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

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

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

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

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

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

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

實(shí)現(xiàn)方法:

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

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

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

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

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

接收接口往DMA控制器發(fā)出DMA請(qǐng)求信號(hào)后,

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

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

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

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

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

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

300H000D7~D0A15~A0與非簡(jiǎn)單的邏輯電路:例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簡(jiǎn)單的邏輯電路:例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簡(jiǎn)單的邏輯電路:STB2.用可編程集成接口芯片

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

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

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

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

2個(gè)8237DMA控制器2個(gè)8259A中斷控制器

1個(gè)8

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論