第8章輸入輸出接口新_第1頁
第8章輸入輸出接口新_第2頁
第8章輸入輸出接口新_第3頁
第8章輸入輸出接口新_第4頁
第8章輸入輸出接口新_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第一節(jié)接口技術(shù)的基本概念一、接口的概念和功能二、接口電路的典型結(jié)構(gòu)2一、接口的概念和功能1、接口和接口技術(shù)接口指CPU、存儲(chǔ)器、外設(shè)之間通過總線進(jìn)行連接的電路部分,是CPU與外界進(jìn)行信息交換的中轉(zhuǎn)站。接口技術(shù)是研究CPU如何與外部世界進(jìn)行最佳耦合與匹配,實(shí)現(xiàn)雙方高效、可靠地交換信息的一門技術(shù),是軟件、硬件結(jié)合的體現(xiàn),是微機(jī)應(yīng)用的關(guān)鍵。3數(shù)據(jù)總線DB控制總線CB地址總線AB存儲(chǔ)器I/O接口輸入設(shè)備I/O接口輸出設(shè)備CPU微型計(jì)算機(jī)的結(jié)構(gòu)示意圖2、為什么要用接口電路?4從上可以得到:(1)所有的外部信息到CPU都要經(jīng)過各種各樣的接口。(2)接口把外部的輸入信息變成計(jì)算機(jī)能識(shí)別的數(shù)據(jù),由計(jì)算機(jī)來處理。⑶接口把計(jì)算機(jī)輸出的數(shù)據(jù)變成外設(shè)能識(shí)別的信息,實(shí)現(xiàn)對(duì)外設(shè)的控制。5接口電路中的信息:數(shù)據(jù)信息:數(shù)字量、模擬量、開關(guān)量狀態(tài)信息控制信息對(duì)應(yīng)的端口:數(shù)據(jù)口、狀態(tài)口、命令口6外設(shè)是用來實(shí)現(xiàn)人機(jī)交互的一些機(jī)電設(shè)備。外設(shè)處理信息的類型、速度、通信方式與CPU不匹配,不能直接掛在總線上,必須通過接口和系統(tǒng)相連7接口應(yīng)具有的功能

信號(hào)轉(zhuǎn)換功能:

輸入:外設(shè)的數(shù)據(jù)或信息——微機(jī)相容輸出:微機(jī)輸出數(shù)據(jù)或信息——外設(shè)相容

設(shè)備的選擇功能:

只有選中的設(shè)備才能與CPU進(jìn)行數(shù)據(jù)交換或通信;

I/O接口中通常都有地址譯碼和設(shè)備選擇邏輯。

數(shù)據(jù)緩沖功能:

解決CPU高速與外設(shè)低速的矛盾,避免因速度不一致而丟失數(shù)據(jù)。8

接收和執(zhí)行CPU命令的功能:

接口電路對(duì)接收到的命令代碼進(jìn)行識(shí)別和分析,產(chǎn)生若干個(gè)控制信號(hào),傳到I/O設(shè)備,產(chǎn)生相應(yīng)的操作。中斷管理功能:

在接口中設(shè)置中斷控制器,為CPU處理有關(guān)中斷事務(wù)如:中斷請(qǐng)求、中斷優(yōu)先級(jí)排隊(duì)等??删幊棠芰Γ?/p>

增加接口的靈活性和可擴(kuò)充性。9二、接口電路的典型結(jié)構(gòu)從編程角度看,接口內(nèi)部主要包括一個(gè)或多個(gè)

CPU可以進(jìn)行讀/寫操作的寄存器,又稱為I/O端口。各I/O端口由端口地址區(qū)分。數(shù)據(jù)信息狀態(tài)信息控制信息10按存放信息的不同,I/O端口可分為三種類型數(shù)據(jù)端口:用于存放CPU與外設(shè)間傳送的數(shù)據(jù)信息

狀態(tài)端口:用于暫存外設(shè)的狀態(tài)信息控制端口:用于存放CPU對(duì)外設(shè)或接口的控制信息,控制外設(shè)或接口的工作方式。CPU對(duì)外設(shè)輸入/輸出的控制,是通過對(duì)接口電路中各I/O端口的讀/寫操作完成。11第二節(jié)I/O端口的編址和譯碼一、I/O端口的編址方式二、8088的輸入/輸出指令和時(shí)序三、I/O端口的譯碼12一、I/O端口的編址方式1、端口與存儲(chǔ)器分別獨(dú)立編址2、端口與存儲(chǔ)器統(tǒng)一編址13特點(diǎn):端口與存儲(chǔ)器分別獨(dú)立編址

端口不占用內(nèi)存空間設(shè)有專門的I/O指令對(duì)端口進(jìn)行讀寫,對(duì)內(nèi)存操作的指令不能用于I/O端口例

Intel的80X86系列、Z80系列I/O空間內(nèi)存空間1、端口與存儲(chǔ)器分別獨(dú)立編址(I/O映射方式)例

MOV[10H],AL對(duì)內(nèi)存操作

IN10H,AL對(duì)端口操作142、端口與存儲(chǔ)器統(tǒng)一編址(存儲(chǔ)器映射方式)特點(diǎn):I/O端口相當(dāng)于內(nèi)存的一部分,

使內(nèi)存容量減小對(duì)I/O端口的讀/寫與對(duì)存儲(chǔ)器的讀/寫相同,所有可對(duì)內(nèi)存操作的指令對(duì)I/O端口均可使用,

指令系統(tǒng)中不專設(shè)I/O指令。例

motorola的M6800系列日立H8S單片機(jī)系列內(nèi)存空間I/O空間15二、8088的輸入/輸出指令和時(shí)序1.

輸入指令I(lǐng)N輸出指令OUT輸入/輸出指令實(shí)現(xiàn)I/O端口與CPU之間的數(shù)據(jù)傳送161.輸入指令I(lǐng)Nport為數(shù)字形式的端口地址,大小為0~255或0~FFH17例(1)INAL,28H

若(28H端口)=10101111B

執(zhí)行后(AL)=(28H端口)=0AFH(2)

INAX,28H

若(28H端口)=10101111B(29H端口)=01010000B

執(zhí)行后(AL)=(28H端口)=0AFH(AH)=(29H端口)=50H(3)

MOVDX,300HINAL,DX

若(300H端口)=69H

執(zhí)行后(AL)=(300H端口)=69H182.輸出指令OUTport為數(shù)字形式的端口地址,大小為0~255或0~FFH19(1)

OUT21H,AL

若(AL)=11001100B

執(zhí)行后(21H端口)=0CCH(2)

MOVDX,21BH

OUTDX,AL

若(AL)=10100110B

執(zhí)行后(21BH端口)=(AL)=0A6H例20(1)累加器AL、AX的專用指令

對(duì)輸入指令I(lǐng)N,目的操作數(shù)只能為AL,或AXINAL,21HINAX,DXINBX,21H

對(duì)輸出指令OUT,源操作數(shù)只能為AL,或AXOUT20H,ALOUTDX,AXOUTDX,CX

輸入/輸出指令(IN、OUT)特點(diǎn):21(2)端口地址可由直接方式或間接方式給出

OUT219H,AL×MOVDX,219HOUTDX,AL例

INAL,218H

×

MOVDX,218HINAL,DX當(dāng)端口號(hào)>FFH,即>255時(shí),

需把端口號(hào)放在DX寄存器中,

DX是一個(gè)16位寄存器,范圍在0~FFFFh之間。當(dāng)端口號(hào)在0~FFH,即0~255時(shí),可在指令中直接指定端口號(hào)例

INAL,21HOUT20H,AL22(3)可進(jìn)行字節(jié)或字傳送

由指令中AL或AX的類型決定(4)注意端口地址與端口內(nèi)容的區(qū)別

INAL,21H不等于(AL)←21HOUTDX,AL不等于(DX)←(AL)INAL,20H;字節(jié)傳送INAX,20H;字傳送INAL,DX;字節(jié)傳送INAX,DX;字傳送OUT20H,AL

;字節(jié)傳送OUT20H,AX

;字傳送OUTDX,AL

;字節(jié)傳送OUTDX,AX

;字傳送23三、I/O端口的譯碼1.

譯碼電路的作用

2.

譯碼電路的構(gòu)成

3.

設(shè)計(jì)譯碼電路的方法

4.

片內(nèi)譯碼和片選譯碼241、譯碼電路的作用將CPU執(zhí)行IN/OUT指令發(fā)出的地址信號(hào),“翻譯”成欲操作端口的選通信號(hào),此信號(hào)常作為接口內(nèi)三態(tài)門或鎖存器的控制信號(hào),接通或斷開接口數(shù)據(jù)線與系統(tǒng)的連接。IN指令時(shí)序A15~A0IORCLKD7~D0T4T1T2T3TwA15~A0CLKIOWD7~D0T4T1T2T3TwOUT指令時(shí)序25該電路在CPU執(zhí)行指令

MOVDX,200HINAL,DX將輸入設(shè)備的數(shù)據(jù)讀入CPU內(nèi)AL中圖中譯碼電路的作用:只當(dāng)A15~A0上出現(xiàn)200H時(shí),(即0000001000000000B)輸出0,其他輸出1。例

一個(gè)輸入設(shè)備的簡(jiǎn)單接口電路三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線26執(zhí)行:MOVDX,200H

INAL,DX

三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線IN指令時(shí)序A15~A0IORCLKD7~D0T4T1T2T3Tw000000100000000027輸入設(shè)備接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時(shí),

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

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

200H000D7~D0A15~A0與非PC總線MOVDX,200HINAL,DX28該電路在CPU執(zhí)行指令

MOVDX,300HOUTDX,AL

將CPU內(nèi)AL中的數(shù)據(jù)送至輸出設(shè)備圖中譯碼電路的作用:只當(dāng)A15~A0上出現(xiàn)300H時(shí),(即0000001100000000B)輸出0,其他輸出1。例

一個(gè)輸出設(shè)備的簡(jiǎn)單接口電路PC總線鎖存器輸出設(shè)備數(shù)據(jù)線IOW地址譯碼地址線

300H000D7~D0A15~A0與非29OUT指令時(shí)序執(zhí)行:

MOVDX,300H

OUTDX,AL

A15~A0CLKIOWD7~D0T4T1T2T3TwPC總線鎖存器輸出設(shè)備數(shù)據(jù)線IOW地址譯碼地址線

300H000D7~D0A15~A0與非000001100000000030輸出設(shè)備接口電路,即硬件上保證:只在CPU執(zhí)行從300H端口輸出數(shù)據(jù)時(shí),鎖存器處于觸發(fā)狀態(tài),其輸出隨輸入變化,而CPU執(zhí)行其它指令時(shí),鎖存器均處于鎖存狀態(tài),其輸出不隨輸入變化,PC總線鎖存器輸出設(shè)備數(shù)據(jù)線IOW地址譯碼地址線

300H000D7~D0A15~A0與非MOVDX,300HOUTDX,AL312、譯碼電路的構(gòu)成門電路:與門、非門、或門、與非門、或非門專用譯碼器:

2-4線譯碼器74LS1393-8線譯碼器74LS1384-16線譯碼器74LS154等可編程器件GAL、CPLD、FPGA等323、設(shè)計(jì)譯碼電路的方法據(jù)端口地址確定地址信號(hào)A15~A0的取值,用門電路、譯碼器或兩者組合實(shí)現(xiàn)滿足此取值情況的電路。設(shè)計(jì)譯碼電路時(shí):

1.端口的選通信號(hào)通常為低電平有效

2.除端口的地址信號(hào)參加譯碼外,控制信號(hào)IOW、IOR(IO/M、AEN也可參加譯碼)33譯碼電路A0A1A8A9IORIOWAEN譯碼電路示意圖3474LS138譯碼器功能表74LS1383-8譯碼器AY0BY1CY2Y3G1Y4G2AY5G2BY6Y735例設(shè)計(jì)端口地址為218H的譯碼電路分析

CPU執(zhí)行IN/OUT指令時(shí),發(fā)出端口的地址信號(hào)

MOVDX,218H

INAL,DX

OUTDX,AL對(duì)應(yīng)218H端口的地址信號(hào)為(取A9~A0):

A9A8A7A6A5A4A3A2A1A0(地址信號(hào))

1000011000B218H只要滿足此地址取值的譯碼電路均可36方法一、用門電路實(shí)現(xiàn)218H的地址譯碼數(shù)據(jù)線DBRDWRCS端口譯碼電路0A9A8A7A6A5A4A3A2A1A0AENIORIOWI/O接口PC總線D0~D7D0~D710000110000&譯碼電路部分滿足:只當(dāng)?shù)刂沸盘?hào)A9~A0為:A9A8A7A6A5A4A3A2A1A01000011000即218H時(shí),輸出0,使I/O接口的CS有效否則輸出1

使I/O接口的CS無效37數(shù)據(jù)線DBRDWRCS端口譯碼電路0A9A8A7A6A5A4A3A2A1A0AENIORIOWI/O接口PC總線D0~D7D0~D710000110000&注意譯碼電路中:由于高位地址線A15~A10未參與譯碼,即:地址A15~A0為:××××××1000011000均能輸出0,所以該電路使:一個(gè)端口對(duì)應(yīng)多個(gè)地址

共26=64個(gè)

218,618,

A18,E18等等38當(dāng)端口地址信號(hào)為:A9A8A7A6A5A4A3A2A1A01000011000即218H時(shí),Y0輸出0,使I/O接口的CS有效方法二、用譯碼器、門電路組合實(shí)現(xiàn)218H的地址譯碼74LS1383-8譯碼器218HAY0BY1CY2G1Y3Y4G2AY5Y6G2BY7

0000110000100&A0A1A2AENA3A4A5A6A7A8A9IORIOWPC總線CSI/O接口D0~D7&RDWR數(shù)據(jù)線DBD0~D7端口譯碼電路39219H21AH21BH21CH21DH21EH21FH218H思考1:1.Y2~Y7譯出的端口地址各是多少?74LS1383-8譯碼器AY0BY1CY2G1Y3Y4G2AY5Y6G2BY7

0110000100&&端口譯碼電路A0A1A2AENA3A4A5A6A7A8A9IORIOWPC總線101010101100110011110000Y7Y6Y5Y4Y3Y2Y1Y040片內(nèi)譯碼:

在芯片內(nèi)部的譯碼電路

用于區(qū)分芯片內(nèi)部不同的端口片選譯碼:在芯片外部的譯碼電路

用于選擇不同的芯片或端口4、片內(nèi)譯碼和片選譯碼41片選譯碼通常譯出的是一個(gè)地址范圍并行接口8255ACS外設(shè)數(shù)據(jù)線A0A1RDWRPC總線IORA0A1IOWA2A3A4A5A6A7A8A9AEN片選譯碼片內(nèi)譯碼端口A端口B端口C端口D串行接口8251

數(shù)/模轉(zhuǎn)換0832模/數(shù)轉(zhuǎn)換0809218~21FH220~227H228~22FH230~237H42通常將低位地址線(1位或幾位)直接連在芯片上,用于片內(nèi)譯碼,而其余的高位地址線用于片選譯碼。并行接口8255ACS外設(shè)數(shù)據(jù)線A0A1RDWRPC總線IORA0A1IOWA2A3A4A5A6A7A8A9AEN片選譯碼片內(nèi)譯碼端口A端口B端口C端口D串行接口8251

數(shù)/模轉(zhuǎn)換0832模/數(shù)轉(zhuǎn)換080943例

分析下圖74LS138各輸出端的譯碼地址

(片選譯碼例)74LS1383-8譯碼器218HAY0BY1CY2G1Y3Y4G2AY5Y6G2BY700010&A3A4A5+5VA6A7A8A9AENIORIOWPC總線&端口譯碼電路441.

先確定與使能控制G1、G2A、G2B相連的各引腳G1連+5V,始終有效

IOR、IOW任一為0G2A、G2B為0,則A9A8A7A6,AEN為010002.

再分析與選擇控制C、B、A相連的各引腳

3.

考慮到A2、A1、A0未參加譯碼,其值任意,即A2A1A0的取值為000~1114.

最后綜合所有地址信號(hào)的取值,得出結(jié)論。A5A4A3

CBA000Y0001Y1010Y2011Y3100Y4101Y5110Y6111Y7分析:45結(jié)論:46200~207h208~20Fh210~217h218~21Fh220~227h228~22Fh230~237h238~24Fh74LS1383-8譯碼器AY0BY1CY2G1Y3Y4G2AY5Y6G2BY7

00010&A3A4A5+5VA6A7A8A9AENIORIOWPC總線&端口譯碼電路47第三節(jié)I/O同步控制方式

CPU與外設(shè)的工作速度不一致,如何使兩者高效、可靠地進(jìn)行數(shù)據(jù)傳送,是本節(jié)討論的問題。有以下幾種傳送方式:一、無條件傳送方式二、條件傳送方式(查詢方式

)三、中斷傳送方式四、

DMA傳送方式(DirectMemoryAccess)48概述1.無條件傳送(CPU與外設(shè)同步工作):外部控制過程各種動(dòng)作時(shí)間是固定的,而且是已知的。(外設(shè)處于確定就緒狀態(tài))2.查詢方式(CPU與外設(shè)不同步工作):傳送前,先查詢外設(shè)狀態(tài),準(zhǔn)備好才傳送,否則CPU處于等待狀態(tài)。493.中斷方式:

外設(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ǔ)器。50一、無條件傳送方式(同步傳送方式)實(shí)現(xiàn)方法

CPU不查詢外設(shè)工作狀態(tài),與外設(shè)速度的匹配通過在軟件上延時(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)單51二、條件傳送方式(查詢傳送方式)實(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通過不斷查詢外設(shè)狀態(tài),實(shí)現(xiàn)與外設(shè)的速度匹配2.CPU的工作效率低52查詢傳送方式,編程流程:NY從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個(gè)數(shù)據(jù)外設(shè)準(zhǔn)備好否?53查詢方式輸入接口狀態(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總線IO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論