微型計算機(jī)原理及應(yīng)用 第6章 輸入輸出系統(tǒng)_第1頁
微型計算機(jī)原理及應(yīng)用 第6章 輸入輸出系統(tǒng)_第2頁
微型計算機(jī)原理及應(yīng)用 第6章 輸入輸出系統(tǒng)_第3頁
微型計算機(jī)原理及應(yīng)用 第6章 輸入輸出系統(tǒng)_第4頁
微型計算機(jī)原理及應(yīng)用 第6章 輸入輸出系統(tǒng)_第5頁
已閱讀5頁,還剩190頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章輸入輸*t機(jī)

6.1輸入輸出系統(tǒng)概述

6.2I/O設(shè)備的編址方式

6.3I/O端口數(shù)據(jù)傳送的控制方式

6.4DMA控制器8237

6.5微機(jī)中常用的幾種總線

第6章輸入輸出系統(tǒng)

輸入和輸出設(shè)備是計算機(jī)系統(tǒng)的重要組成部分,計

算機(jī)通過輸入/輸出設(shè)備與外界進(jìn)行數(shù)據(jù)交換。稱為外

部設(shè)備或I/O設(shè)備。

在微型計算機(jī)系統(tǒng)中,被計算機(jī)處理的信息,如程

序、原始數(shù)據(jù)和各種現(xiàn)場采集到的數(shù)據(jù)都需要通過輸入

設(shè)備送入計算機(jī)中進(jìn)行處理,而計算機(jī)處理的結(jié)果又需

要通過輸出設(shè)備輸出顯示。

隨著計算機(jī)系統(tǒng)功能的不斷增強(qiáng),I/O設(shè)備的種類繁多

,常用的輸入輸出設(shè)備有:鍵盤、鼠標(biāo)、磁盤、光盤等

o顯示器、打印機(jī)、調(diào)制解調(diào)器、繪圖儀等。在一些控

制場合,還需要模/數(shù)轉(zhuǎn)換器、數(shù)/模轉(zhuǎn)換器、發(fā)光二極

管、撥碼盤、光電隔離器、開關(guān)等。

由于這些I/O設(shè)備在信息格式、工作速度、驅(qū)動方

式等方面彼此差別很大,如有機(jī)械式,電動式、電子式

和光電式等,傳送的信息也不同,如有數(shù)字量、模擬量

和開關(guān)量等。

所以,CPU與I/O設(shè)備無法直接連接,必須通過接

口電路連接。接口把來自外部設(shè)備的各種信號變換之后

送給CPU,而CPU處理的結(jié)果再經(jīng)接口變換之后送給外

部設(shè)備。

6.1輸入輸出系統(tǒng)概述

6.2I/O設(shè)備的編址方式

6.3I/O端口數(shù)據(jù)傳送的控制方式

6.4DMA控制器8237

6.5微機(jī)中常用的幾種總線

6

I>.加力8

6.1輸入輸出系統(tǒng)概述

6.1.1外部設(shè)備的分類和特征

1.外部設(shè)備的分類

外部設(shè)備或稱外圍設(shè)備(Peripherals),或簡稱外設(shè)

,指的是人們直接或間接與計算機(jī)進(jìn)行信息交換并改變

信息形態(tài)裝置。外部設(shè)備種類繁多,性能各異。

大體上,可將其分為五大類:

?輸入設(shè)備

?輸出設(shè)備

?外存儲器

?數(shù)據(jù)通信設(shè)備

?過程控制設(shè)備

(1)輸入設(shè)備

輸入設(shè)備指的是將數(shù)據(jù)、程序和某些標(biāo)志信息轉(zhuǎn)

換成計算機(jī)所能接收的電信號并輸入計算機(jī)的裝置。

輸入設(shè)備如:鼠標(biāo)、掃描儀、光筆、觸摸

屏、光學(xué)字符識別(OCR)、紙帶輸入機(jī)、卡片輸入機(jī)、

聲音輸入設(shè)備以及其他圖形、圖像輸入設(shè)備等。

(2)輸出設(shè)備

輸出設(shè)備指的是將計算機(jī)處理過的信息轉(zhuǎn)換為人們

所需的數(shù)字、文字、字符、聲音、圖形、圖像等.并在

其信息載體上輸出的裝置。

輸出設(shè)備如:打印機(jī)、印字機(jī)、繪圖儀、顯示器、

紙帶穿孔機(jī)、卡片穿扎機(jī)、聲音輸出設(shè)備等等。

(3)外存儲器

外存儲器如磁盤、磁帶、光盤、磁卡、IC卡、磁鼓

、磁芯等,它們在外部設(shè)備中具有特殊的地位,既有存

儲信息的作用,又有輸入/輸出信息的作用。

例如軟盤、盒式磁帶、磁卡、IC卡等,常被用于保

存信息,也用于方便人們與計算交換信息。

(4)數(shù)據(jù)通信設(shè)備

數(shù)據(jù)通信設(shè)備指的是用于計算機(jī)通信和計算機(jī)網(wǎng)

絡(luò)中的設(shè)備。

如:調(diào)制解調(diào)器(MODEM)、多路復(fù)用器、中繼器

、路由器、網(wǎng)橋、網(wǎng)關(guān)、網(wǎng)絡(luò)適配器、群集控制器、集

線器(HUB)等。

(5)過程控制設(shè)備

過程控制設(shè)備指的是自動控制領(lǐng)域中使用的設(shè)備,

最基本的是模擬量與數(shù)字量相互轉(zhuǎn)換的設(shè)備,即A/D

和D/A轉(zhuǎn)換器、傳感器以及其附屬電路。利用這些設(shè)

備進(jìn)行數(shù)據(jù)采集,輸入計算機(jī)加工處理,然后輸出結(jié)果

驅(qū)動執(zhí)行部件,以實現(xiàn)自動控制。可見這些設(shè)備實際上

也是輸入/輸出設(shè)備,但與單純輸入或輸出的設(shè)備又不

盡相同。

從根本上說,所有外部設(shè)備都具備輸入/輸出功能

,可以通過后述的輸入/輸出的控制管理方式與整個系

統(tǒng)連接,因此又常常將外部設(shè)備與輸入/輸出(I/O)設(shè)備

混為一談;但是上述3~5類的設(shè)備,自有其特殊的功能

和特性.因此在必要時需與1?2類的設(shè)備區(qū)分開來。

2.外部設(shè)備的特征

外部設(shè)備采用的工藝技術(shù),已經(jīng)歷了三代的演變

過程,即:機(jī)電結(jié)合、電子與機(jī)械結(jié)合以及微處理器與

電子機(jī)械結(jié)合,并逐步走向智能化。

6加川

外部設(shè)備的特征主要有:

?速度

?信號形式

?信息格式及傳輸規(guī)程

由于外設(shè)具有以上特征,所以在速率、信號形式、

時序控制、信息格式各方面都需與整個系統(tǒng)匹配,而

類型不同的外設(shè)在這些方面又各不相同,從而導(dǎo)致整

個輸入/輸出系統(tǒng)的復(fù)雜化。

6

I>.加力8

6.1.2I/O接口的構(gòu)成及功能

I/O接口是處于系統(tǒng)與外設(shè)之間、用來協(xié)助完成數(shù)

據(jù)傳送和傳送控制任務(wù)的一部分電路,如圖6-1所示。

數(shù)據(jù)總線

數(shù)據(jù)接口

狀態(tài)接口

控制接口

控制總線

I/O接口

6

D>.

1.I/O接口的基本構(gòu)成

I/O接口是CPU與外部設(shè)備進(jìn)行信息交換的橋梁,

三者之間的關(guān)系如圖6-1所示。

CPU與外部設(shè)備之間傳送的信息流為:

CPU<--J/O接口<-->外部設(shè)備。

CPU與I/O接口之間傳送的信息主要有:

?命令信息。CPU送至接口,用于控制接口的工作方式;

?狀態(tài)信息。接口送至CPU,供CPU了解接口的工作狀態(tài)。

?數(shù)據(jù)。與外部設(shè)備交換的信息。

I>.

為了實現(xiàn)以上信息的傳送,I/O接口應(yīng)具備信息存

儲和控制功能。

通常由下列幾部分構(gòu)成:

?輸入/輸出數(shù)據(jù)緩沖單元

?讀/寫控制電路

?命令/狀態(tài)單元

6

2.I/O接口的功能

I/O接口的主要功能可概括為以下幾點:

?具有對輸入/輸出數(shù)據(jù)進(jìn)行緩沖、隔離和鎖存緩沖數(shù)

據(jù)的傳送功能,以實現(xiàn)高速CPU與上曼速I/O設(shè)備之間

數(shù)據(jù)傳送時取得同步。

?具有轉(zhuǎn)換數(shù)據(jù)格式的功能。

?具有信號量轉(zhuǎn)換的功能。

?具有定時/計數(shù)功能。

?為CPU和I/O設(shè)備之間提供聯(lián)絡(luò)。

?為I/O端口提供尋址功能。

總之,I/O接口的功能就是完成數(shù)據(jù)、地址和控制

三總線的轉(zhuǎn)換和連接。

6

D>.

3.1/0接口硬件分類

I/O接口的硬件可分為專用接口芯片和通用接口芯

片兩大類。

?專用接口芯片是為某種專門用途或某種專用I/O設(shè)

備而研制的。

?通用接口芯片以用于多種用途為目標(biāo)。

(1)系統(tǒng)板上的I/O芯片。這些芯片大多都是可編程的

大規(guī)模集成電路,完成相應(yīng)的接口操作。

(2)I/O擴(kuò)展槽上的接口控制卡。這些控制卡(適配器)

是由若干個集成電路按一定的邏輯組成的一個部件。

6.1輸入輸出系統(tǒng)概述

6.2I/O設(shè)備的編址方式

6.3I/O端口數(shù)據(jù)傳送的控制方式

6.4DMA控制器8237

6.5微機(jī)中常用的幾種總線

6

D>.

6.2I/O設(shè)備的編址方式

I/O端口是處理器與I/O設(shè)備直接通信的地址。在實

際應(yīng)用中,通常把I/O接口電路中能被CPU直接訪問的

寄存器或某些特定器件稱之為端口(PORT)o

所以CPU通過這些端口發(fā)送命令,讀取狀態(tài)和傳送

數(shù)據(jù),因此,一個接口可有幾個端口,如控制口、狀態(tài)

口、數(shù)據(jù)口等。

為了使CPU能對端口進(jìn)行正確的讀寫操作,要為每

個端口分配一個地址,稱為端口地址,簡稱端口。

既給系統(tǒng)中的每一臺設(shè)備規(guī)定一個或多個地址碼或

設(shè)設(shè)備號,稱為設(shè)備編址。

6.2.1I/O設(shè)備端口的編址

如何實現(xiàn)對這些端口的訪問,即尋址問題。在微

型計算機(jī)系統(tǒng)中,I/O設(shè)備端口的編址有兩種方式:

?一種是I/O端口地址與存儲器單元地址統(tǒng)一編址,

即存儲器映射方式;

?另一種是I/O端口地址和存儲器地址分開獨立編址

,采用不同的編址方式,即I/O映射方式。

加力8

1.I/O端口與存儲器統(tǒng)一編址(存儲器映像I/O)

這種方式把I/O接口中的端口當(dāng)作存儲器單元一樣進(jìn)

行訪問,不設(shè)置專門的I/O指令,I/O端口與存儲器單元

在同一地址空間中進(jìn)行統(tǒng)一編址(即在整個地址空間中

劃分出一小塊連續(xù)的地址分配給I/O設(shè)備端口)。另一

部分是內(nèi)存單元地址,被分配給I/O端口的地址,存儲

器不能再使用。內(nèi)存與I/O映像編址如圖6-2所示。

凡對存儲器可以使用的指令均可用于端口。

內(nèi)存空間

FFFFFH

(b)統(tǒng)一編址示意圖

圖6-2I/O端口與存儲器統(tǒng)一編址示意圖

6

D>.

2.1/0端口獨立編址

所謂I/O端口獨立編址,也稱為I/O隔離編址或I/O指

令尋址方式,即I/O端口地址區(qū)域和存儲器地址區(qū)域,

各自的編址是獨立的,端口地址單獨編址而不占用存儲

空間,訪問I/O端口使用專門的I/O指令,而訪問內(nèi)存則

使用MOV、ADD等指令。大型計算機(jī)通常采用這種方

式,有些微機(jī),例如IBM-PC系列和Z-80系列機(jī)也采用

這種方式。如圖6-3所示。

內(nèi)存空間

OOOOOH

FFFFH

1KB

FFFFFH

(a)獨立編址結(jié)構(gòu)圖

(b)獨立編址示意圖

圖6-3I/O端口獨立編址示意圖

80x86CPU指令系統(tǒng)就采用了這種編址方式,有如下兩

種尋址:

⑴直接尋址

I/O端口使用8位地址A7~A0編碼,即OOH~FFH,

可尋址256個端口。在輸入輸出指令中,I/O端口地址以

8位立即數(shù)方式給出,指令格式為:

OUTnnH,AL;AL一端口

INAL,nnH;AL一端口

⑵間接尋址

I/O端口使用16位地址A15~A0編碼,即OOOOH~FF

FFH,可尋址65536個端口。在輸入輸出指令中,I/O端

口地址以間接方式給出,指令格式為:

MOVDX,nnnnH;端口地址存入DX

OUTDx,AL;AL一端口

INAL,DX;AL一端口

*”1g

6.2.2PC機(jī)中的I/O端口地址分配

對于接口設(shè)計者來說,搞清楚系統(tǒng)I/O端口地址分

配十分重要。因為要把新的I/O設(shè)備加入到系統(tǒng)中去

就要在I/O地址空間中占一席之地。不同的微機(jī)系統(tǒng)對1/

O端口地址的分配是不同的o

例如:獨立編址方式的端口訪問PC系列采用I/O指

令(INPUT/OUTPUT)訪問端口,實現(xiàn)數(shù)據(jù)的I/O傳送。

由于使用專門的I/O指令訪問端口,并且I/O端口地址和

存儲器地址是分開的,故I/O端口地址和存儲器地址可

以重疊,而不會相互餛淆。表6-1列舉了8086/8088的I/O

指令。

I>.

表6-18086/8088的I/O指令

I/O指令功能說明

INAL,PORTAL—(PORT)單字節(jié)訪問

INAX,PORTAH,AL—(PORT+1,PORT)雙字節(jié)訪問

INAL,DXAL—(DX)單字節(jié)訪問

INAX,DXAH,AL—(DX+1,DX)雙字節(jié)訪問

OUTPORT,AL(PORT)—AL單字節(jié)訪問

OUTPORT,AX(PORT+1,PORT)—AH,AL雙字節(jié)訪問

OUTDX,AL(DX)-AL單字節(jié)訪問

OUTDX,AX(DX+1,DX)-AH,AL雙字節(jié)訪問

6

l>.樓4

PC/XT和PC/AT系統(tǒng)提供了Ag~A0這10位地址線作為I/O端口地址,總共1024

個端口。在使用時,有的I/O接口可能僅用到其中的前幾個地址,見表6-2。

表6-2PC/XT.PC/AT機(jī)的I/O空間分配

地址范圍XTI/O設(shè)備地址范圍ATI/O設(shè)備

000―DMA控制器000—DMA控制器1

020?中斷控制器020?中斷控制器1

040~定時器/計數(shù)器8253040~定時器/計數(shù)器

060~并行接口電路060~并行接口電路

080?DMA頁面寄存器080?DMA頁面寄存器

O~OBFNMI屏蔽寄存器O~OBF中斷控制器2

OCO-OFF保留OCO-ODFDMA控制器2

200?游戲接口OEO~OFF協(xié)處理器

210—217擴(kuò)展箱0-8硬盤適配器

220-7保留200?207游戲接口

8-2FF串行通信接口COM2278?并行打印機(jī)接口LPT2

300?實驗板8-2FF串行通信接口

320?硬盤適配器300?實驗板

378?并行打印機(jī)接口LPT360~保留

380?SDLC通信接口378?并行打印機(jī)接口LPT1

0-3AF保留380?SDLC通信接口

3UO-3BF單色顯示/打印機(jī)適配器0-3AFBSC通信接口

0-3CF保留3BO-3BF單色顯示/打印機(jī)適配器

3DO?3DF彩色圖形適配器CGA0-3CF保留

3E0-3E7保留3DO-3DF彩色圖形適配器CGA

0-7軟盤適配器0-7軟盤適配器

8-3FF串行通信適配器8-3FF串行通信接口COM1

1.8088/8086采用I/O端口與累加器之間的傳送

在I/O指令中可采用單字節(jié)地址或雙字節(jié)地址尋址方

式。

若用單字節(jié)地址作為端口地址,則最多可訪問256個

端口。系統(tǒng)主機(jī)板上的I/O端口,采用單字節(jié)地址,并

且是直接尋址方式,其指令格式為:

輸入INAX,PORT(輸入16位數(shù)據(jù))

INAL,PORT(輸入8位)

輸出OUTPORT,AX(輸出16位)

OUTPORT,AL(輸出8位)

注:PORT是一個8位的字節(jié)地址。

*”1g

若用雙字節(jié)地址作為端口地址,則最多可尋址216=6

4K個端口。系統(tǒng)主板上的I/O端口,采用雙字書地址,

并且是用DX寄存器間接尋址方式,端口地址放在寄存

器中。其指令格式為:

輸入MOVDX,xxXXH;建立指針

INAX,DX;16位傳送

或INAL,DX;8位傳送

輸出MOVDX,xxXxH

OUTDX,AX;16位傳送

或OUTAL,DX;8位傳送

注:xxxXH為16位的兩字節(jié)地址。

2.80286和80386還支持I/O端口直接與RAM之間的數(shù)

據(jù)傳送

輸入MOVDX,PORT

LESDI,Bufferin

INSB;8位傳送

(INSW);16位傳選

輸出MOVDX,PORT

LDSSI,BufferOut

OUTSB;8位傳送

(OUTSW);16位傳送

注意:這里的輸入與輸出是對RAM而言的。

輸入時,用ES:DI指向目標(biāo)緩沖區(qū)Buffejln;輸出時

,用DS:SI指向原緩沖區(qū)BufferOut。

3.CPU執(zhí)行IN或OUT指令,便會向設(shè)備接口發(fā)出相應(yīng)

的命令信號。利用這些命令信號以及設(shè)備接口中的控制

邏輯,便可實現(xiàn)如下的功能:

?置位或復(fù)位設(shè)備接口的某些控制寄存器,以控制設(shè)備執(zhí)行某些操

作,例如啟動、停止等。

?測試設(shè)備的狀態(tài)。如BUSY(忙卜READY(準(zhǔn)備就緒)等,以便決

定下一步操作。

?完成數(shù)據(jù)傳送。輸入數(shù)據(jù)時,將I/O設(shè)備接口中的數(shù)據(jù)寄存器內(nèi)

容送到CPU內(nèi)部的某一寄存器;輸出教據(jù)時,將CPU內(nèi)部某一寄

存器的內(nèi)容送到設(shè)備接口中的數(shù)據(jù)寄存器。

注意:無論是命令、狀態(tài)還是數(shù)據(jù),實際上都是通過C

PU與設(shè)備接口間的教據(jù)總線傳送的。

4.1/0地址空間的選用原則

只要設(shè)計I/O接口電路,就必然要使用I/O端口地址

o在選定I/O端口都地址時要注意:

?凡是被系統(tǒng)配置所占用了的地址一律不能使用。

?原則上未被占用的地址用戶可以使用,但對計算機(jī)廠家申明保留

的地址,不要使用,否則會發(fā)生I/O端口地址重疊和沖突造成你開發(fā)

的產(chǎn)品與系統(tǒng)不兼容而失去使用價值。

?一般用戶可使用300~31FH地址,這是IBM-PC系列機(jī)留作實驗卡

用的。在用戶可用的I/O地址范圍內(nèi),為了避免與其他的插板發(fā)生地

址沖突,最好采用地址開關(guān)。

6“A

6.2.3I/O端口地址譯碼

CPU為了對I/O端口進(jìn)行讀寫操作,需確定與自己交換

信息的端口(寄存器)。那么,就需要把來自地址總線上的

地址代碼翻譯成為所需要訪問的端口(寄存器地址代碼)的

o這就是端口地址譯碼問題。

1.I/O地址譯碼電路

I/O地址譯碼碼電路不僅僅與地址信號有關(guān),而且與控制信號有關(guān)

o它把地址和控制信號進(jìn)行組合,產(chǎn)生對芯片的選擇信號。由于I/O地

址譯碼除了地址范圍受上述地址分配的限制之外,還要滿足其他一些

條件,所以,在設(shè)計地址譯碼電路時,除了精心選擇地址范圍之外,

還要根據(jù)CPU與I/O端口交換數(shù)據(jù)時的流向(讀/寫),數(shù)據(jù)寬度(8位/16位

),以及是否采用奇偶地址的要求來引入相應(yīng)的控制信號,參加地址譯

碼電路。

地址譯碼電路的輸出信號,通常是低電平有效,高電平無效。

6

I>.樓4

2.I/O地址譯碼方法

I/O端口地址譯碼的方法靈活多樣,可由地址和控制

信號的不同組合來選擇端口地址。一般原則是把地址分

為兩部分:

?一部分是高位地址線與CPU的控制信號組合,經(jīng)譯碼電路產(chǎn)生1/

O接口芯片的片選信號,實現(xiàn)片間尋址;

?另一部分是低位地址線直接連到I/O接口芯片,實現(xiàn)I/O接口芯

片的片內(nèi)尋址,即訪問片內(nèi)的寄存器。

3.I/O端口地址碼電路的幾種形式

I/O端口地址譯碼電路的形式可分為

?固定式端口地址譯碼

?可選式端口地址譯碼

若按譯碼電路采用的元器件來分,則可分為

?門電路譯碼

?譯碼器譯碼

6

D>.

(1)固定式端口地址譯碼。

所謂固定式譯碼是指接口中用到的端口地址不能更

改。目前,接口卡中大部分都采用固定式譯碼。在固定

式譯碼方式中不需要改變接口電路,可以通過接口電路

中的開關(guān)、跳線器使接口卡的I/O端口的地址根據(jù)要求

加以改變。

若僅需一個端口地址時,則采用門電路構(gòu)成譯碼電

路很簡便,如圖6-4所示。其中,圖6-4(a)所示電路可譯

出2F8H讀操作端口地址,圖6-4(b)所示電路能譯出進(jìn)行

讀/寫操作的2E2H端口地址。

46

&

^5&

o

A4

LS32

1c-LS32

LS04“一

1

o

1&

1oLS20>1Y

&AEN(讀)

AEN1£S2O1)

IORY

IOR1o(寫)

IOW

(a)(b)

圖6.4門電路譯碼電路

6加燦■

l>.

(2)可選端口地址譯碼

如果用戶要求端口地址適應(yīng)不同的地址分配場合,或者

為系統(tǒng)以后有擴(kuò)充的余地,可以選用可選端口地址譯碼。在

這種方式下,我們可以選用譯碼芯片進(jìn)行譯碼。圖6.5就是

使用了譯碼芯片74LS138,簡稱3-8譯碼器。

AEN

Ag

八8

IOW

A「AQ接口芯片進(jìn)行內(nèi)部譯碼

圖6-5PC/XT主機(jī)板上的I/O譯碼電路

6加燦■

I>.

若接口電路中需使用多個端口地址時,則采用譯碼器譯碼比

較方便。譯碼器的型號很多。請參閱5.4.4節(jié)內(nèi)容。如圖6?6

所示,就是用4位比較器74LS85家譯碼的。

IOW

IOR

圖6-6四位比較器譯碼電路

I>.

(3)開關(guān)式可選端口地址譯碼

在可選端口地址譯碼中,還可以采用開關(guān)式端口地址譯

碼。這種譯碼方式可以通過開關(guān)使接口卡的I/O端口地址根

據(jù)要求加以改變而無需改動線路,其電路結(jié)構(gòu)形式如下。

①使用比較器+地址開關(guān)

如圖6?7所示,圖中DIP開關(guān)狀志的設(shè)置,就決定了譯碼

電路的輸出,若改變開關(guān)狀態(tài),則就改變了I/O端口地址。

電路中使用了一片8位比較器74LS688,它以兩組8位輸入端

P。?7和Qo?7信號進(jìn)行比較,形成一個輸出端P的信號,其規(guī)則

為:

?當(dāng)P。-7次0-7時,P=l,輸出高電平。

?當(dāng)「()-7=()0-7時,P=0,輸出低電平。

IOR

IOR+5V

GiYoD——?

G^B3——?

G^A,3——?

LS138,D——?

A.3-?

BD——?

C_3——?

___________%3——?

GFoD——?

G^BD——?

而0?

ALS138.D——?

*D——?

BD——?

CD------?

Yi3——?

圖6-7用比較器組成的可選式譯碼電路

I>.

②使用“異或門”+地址開關(guān)

如果用“異或門”代替比較器,則可得到圖6?8所示的譯碼

電路,它由3片“異或門”74LS136,9位DIP開關(guān)和譯碼器74L

S138組成。74LS136芯片內(nèi)部有4個“異或門”,其內(nèi)部邏輯

如圖6-9所示。

在譯碼電路圖6-8中,“異或門”的兩個輸入端,一個接地

址線或控制線,另一個接地址開關(guān)。并且將所有“異或門”的

輸出端連在一起,再接到LS138的控制端Gi上。若要使LS138

譯碼器的Gi控制信號為“1”,則必須使每個“異或門”的輸出

端都為“1”,即應(yīng)滿足下列邏輯式:

G1=AEN?5IOR?IOWAU?09-A10?2-A9?5-A8?9

?A7?12A6e2A5?5A4?9-A3?12=1

I>.

A。A1A2

圖6-8用“異或門”組成的可選式譯碼電路

AEN

圖6-974LS136內(nèi)部邏輯圖6-10可選式譯碼電路

I>.

(3)使用跳接開關(guān)

如果采用跳接開關(guān)代替DIP開關(guān),則可得到如圖6-1

0所示的可選式譯碼電路。改變跳接開關(guān)連接方向,可

有多達(dá)1024種選擇。

4.I/O端口地址譯碼電路的時序

在采用門電路的地址譯碼電路設(shè)計中,一定要注意地址

有效與讀寫操作之間的時序配合。門電路延遲時間不能太長

,否則有可能萩或而已生效之后,I/O端口地址譯碼才有

效,從而導(dǎo)致對別的端口地址進(jìn)行誤讀寫操作。當(dāng)然病

或標(biāo)信號的延遲也不能太長,否則端口地址譯碼過早結(jié)

束,也會導(dǎo)致對別的端口地址進(jìn)行誤讀寫操作,具體時序請

參考系統(tǒng)總線的時序圖。

6.1輸入輸出系統(tǒng)概述

6.2I/O設(shè)備的編址方式

6.3I/O端口數(shù)據(jù)傳送的控制方式

6.4DMA控制器8237

6.5微機(jī)中常用的幾種總線

6加川

6.3I/O端口數(shù)據(jù)傳送的控制方式

CPU與I/O設(shè)備之間數(shù)據(jù)傳送,通常有以下幾種情況:

(1)I/O程序控制方式。該方式進(jìn)一步分為:

?無條件傳送

?查詢傳送

?I/O中斷控制方式

(2)直接存儲器存取(DMA)控制方式。

(3)通道和I/O處理機(jī)控制方式。

以上方式各有不同特點.標(biāo)志著CPU與外設(shè)并行操

作程度的逐步提高和CPU效率的充分發(fā)揮。

6.3.1程序傳送控制方式

I/O程序傳送控制方式中,信息的傳送完全依靠計算

機(jī)在既定時刻執(zhí)行I/O程序來完成,接口只簡單地提供

設(shè)備選擇、數(shù)據(jù)緩沖、狀態(tài)記錄等功能。

實現(xiàn)I/O程序控制的基本方法是,在應(yīng)用程序中安排

一個由輸入/輸出指令及其他指令所組成的程序段。當(dāng)

CPU執(zhí)行該程序段時便控制完成信息的傳送。

I>.

程序控制方式的特點是:

輸入/輸出操作完全在程序控制下進(jìn)行的,用IN和OU

T指令直接訪問I/O端口。在這種方式中,根據(jù)外設(shè)的特點可

采用直接傳送數(shù)據(jù)或查詢方式傳送數(shù)據(jù)。

I/O程序控制方式又分兩類:

?無條件傳送控制方式

?程序查詢控制方式

I>.

1.無條件傳送控制方式

無條件傳送是一種最簡單的輸入/輸出控制方法,一般用

于控制CPU與低速I/O接口之間的信息交換,在無條件傳送

方式下,不需要考慮外部設(shè)備的的狀態(tài),只需由CPU執(zhí)行輸

入或輸出指令便可完成數(shù)據(jù)傳送。

由于這些信號變化緩慢,當(dāng)需要采集這些數(shù)據(jù)時,外部

設(shè)備已經(jīng)把數(shù)據(jù)準(zhǔn)備就緒,無需檢查端口的狀態(tài),就可以立

即采集數(shù)據(jù)(使用這種方式是基于:當(dāng)輸入時,外設(shè)肯定是

“準(zhǔn)備就緒”的;當(dāng)輸出時。外設(shè)肯定是“空閑”的)。符合這

些條件的外設(shè)如,繼電器和速度、溫度、壓力、流量等變送

器、機(jī)械開關(guān)、發(fā)光二極管等。

數(shù)據(jù)保持時間相對于CPU的處理時間長得多。因此

,輸入的數(shù)據(jù)就不用加鎖存器而直接用三態(tài)緩沖器與系

統(tǒng)總線連接。實現(xiàn)無條件傳送方式的軟、硬件接口電路

十分簡單。

硬件接口只需提供地址譯碼器、三態(tài)緩沖器(輸入時

用)或鎖存器(輸出時用),軟件程序中只需寫出輸入/輸

出指令。

在圖6-11中,兩個數(shù)據(jù)端口分別支持無條件輸入和

無條件輸出。

17

10KX8

AIII

1R5

oO---------

8000H74LS244

三態(tài)

緩沖器

CLK

74LS06

74LS273X2

8D反相

觸發(fā)器驅(qū)動器

300X8

圖6-11無條件傳送接口

【例6-1】無條件輸入/輸出點亮LED燈

如圖6-11,兩個端口均用A]5=l選中,由于有讀、寫

信號參與尋址,所以輸入口和輸出口的I/O地址可以相

同,這里取8000H為其地址。以下程序不斷掃描8個開

關(guān),當(dāng)開關(guān)閉合時,點亮相應(yīng)的LED;掃描周期為10m

s,通過調(diào)一個子程序DELAY來實現(xiàn),該子程序已被省

略。

NEXT:MOVDX,8000H;DX指向接口

INAL,DX;從輸入口讀開關(guān)狀態(tài)

NOTAL;反相

OUTDX,AL;送輸出口顯示

CALLDELAY;調(diào)子程序延時10MS

DELAY:

MOVSI,1000

DELI:MOVDI,100

DEL2:DECDI

JNZDEL2

DECSI

JNZDELI

RET

NEXT:JMPNEXT;重復(fù)

6

D>.

(3)無條件傳送輸入指令

實現(xiàn)無條件傳送輸入的接口如圖6-12所示。假定輸

入設(shè)備的地址為01H。當(dāng)需要輸入時,CPU執(zhí)行輸入指

令:

INA,01H

首先將地址碼01H通過地址總線輸出到譯碼器,譯

碼器輸出有效信號送至門1;然后CPU發(fā)出輸入輸出請

求及讀命令作為輸入操作的控制信號送到門1,于是門1

輸出有效,打開三態(tài)緩沖器,使地址為01H的外設(shè)送來

的數(shù)據(jù)進(jìn)入數(shù)據(jù)總線,最后,CPU采樣數(shù)據(jù)總線并將數(shù)

據(jù)傳送至累加寄存器A。

I>.

CPU

地址譯碼器

01H

圖6-12無條件傳送輸入接口

6加川

(4)無條件傳送輸出指令。

將圖6?12中的“三態(tài)緩沖器”改為“鎖存器”,CPU發(fā)

出的“讀命令”改為“寫命令”,于是得到圖6-13,便可實

現(xiàn)無條件傳送輸出。假定外設(shè)地址改為02H.則CPU執(zhí)

行輸出指令:

OUT(02H),A

發(fā)送地址碼02H,以及輸入輸出請求和寫命令,這

三個信號由門1組合,產(chǎn)生鎖存器使能信號,將A寄存

器數(shù)據(jù)通過數(shù)據(jù)總線送入鎖存器鎖存,然后送地址為02

H的外設(shè)。

CPU

圖6-13無條件傳送輸出接口

6

D>.

2.程序查詢方式

程序查詢控制方式又叫有條件傳送方式。必須由CP

U執(zhí)行程序以查詢外設(shè)的狀態(tài),在符合條件的情況下才

進(jìn)行輸入/輸出。

在這種方式下,CPU每當(dāng)執(zhí)行I/O操作前,必須執(zhí)行

某些附加的指令以查詢外設(shè)的狀態(tài),這種傳送方式在接

口電路中,除具有數(shù)據(jù)緩沖器或數(shù)據(jù)鎖存器外,還應(yīng)具

有外設(shè)狀態(tài)標(biāo)志位,用來反映外部設(shè)備數(shù)據(jù)的情況。

為實現(xiàn)程序查詢方式,接口電路中除設(shè)備譯碼部件

外,必須至少提供兩個端口:

?數(shù)據(jù)端口。用于鎖存輸入或輸出的數(shù)據(jù)。

?狀態(tài)端口。用于記錄外設(shè)的狀態(tài)以供CPU查詢。如果

只有一臺外設(shè),自然可用單一觸發(fā)器記錄外設(shè)狀態(tài);若有

不只一臺外設(shè),則可使用帶有使能端的狀態(tài)寄存器,用其

中1位或2位記錄一臺外設(shè)的狀態(tài)。

6

D>.

使用有條件傳送方式控制數(shù)據(jù)的輸入/輸出,在軟件

方面,需編制一個查詢程序,且必須是循環(huán)程序,其框

圖如同6.14所示。

圖6-14程序查詢方式執(zhí)行流程圖

(1)查詢輸入接口。

圖6/5為一個查詢輸入接口o

配合該接口工作的相應(yīng)程序段為:

MOVDX,8000H;DX指向狀態(tài)口

STATUS:INAl,DX;讀狀態(tài)口

TESTAL,O1H;測試標(biāo)志位DO

JNZSTATUS;D0=0,繼續(xù)查詢

INCDX;D0=l,就緒,DX改指數(shù)據(jù)口

INAl,DX;數(shù)據(jù)輸入

(2)查詢輸出接口。圖6-16為一個查詢輸出接口。

IOR

圖6-16查詢輸出接口

配合該接口工作的相應(yīng)程序段為:

MOVDX,8000H;DX指向狀態(tài)

STATUS:

INAL,DX;讀狀態(tài)口

TESTAL,80H;測試標(biāo)志位D,

JNZSTATUS;D7=l,未就緒,繼續(xù)查詢

INCDX;D7=0,就緒,DX指數(shù)據(jù)口

MOVAL,BUF;變量BUF送AL

OUTDX,AL;數(shù)據(jù)輸出

6

D>.

3.1/0程序控制方式的評價

特點:CPU主動查詢,執(zhí)行循環(huán)程序等待外設(shè)進(jìn)入規(guī)定

狀態(tài)。

優(yōu)點:簡單,接口硬設(shè)備較少.一般計算機(jī)都很容易實

現(xiàn)這種功能。

缺點:

?CPU與外圍設(shè)備只能串行工作。由于CPU的速度比外

圍設(shè)備速度快得多,在這種方式下CPU的大量時間都處于

循環(huán)等待狀態(tài),無疑大大降低了系統(tǒng)的效率。

?CPU在一段時間內(nèi)只能和一臺外設(shè)交換信息,無法與

其他外設(shè)并行工作。

?不能發(fā)現(xiàn)和處理預(yù)先無法估計的錯誤和異常。

加川

6.3.2.中斷傳送控制方式

程序查詢控制方式的缺點除了占用CPU較多的工作

時間夕卜,還難以滿足實時控制系統(tǒng)對I/O工作的要求。

一旦某個外設(shè)請求CPU為它服務(wù)時,CPU應(yīng)該以最快的

速度響應(yīng)其請求。這就要求系統(tǒng)中的外設(shè),具有主動申

請CPU為其服務(wù)的權(quán)利。

中斷控制方式的特點是:當(dāng)外部設(shè)備需要進(jìn)行輸入/

輸出操作時,向CPU發(fā)出“中斷”請求信號,請求CPU處

理。

6

D>.

6.3.3DMA控制方式

不經(jīng)CPU的干預(yù),而是在專用硬件電路的控制下直

接進(jìn)行數(shù)據(jù)傳送。這種方法稱為直接存儲器存取,簡稱

為DMA。為實現(xiàn)這種工作方式而設(shè)計的專用接口電路

,稱為DMA控制器(DMAC)。例如,Intel公司的825

7、8237,Zilog公司的Z8410,Motorola公司的MC6844

等。

DMA控制方式是由DMA控制器控制存儲器與高速1/

O設(shè)備之間直接進(jìn)行數(shù)據(jù)傳送。DMA傳送控制示意圖如

圖6-17所示。

圖6-17DMA傳送控制示意圖

6

D>.

DMA控制方式的工作過程是:

若I/O設(shè)備與存儲器之間需要傳送一批數(shù)據(jù)時,先由

I/O設(shè)備向DMA控制器發(fā)出請求信號DREQ,再由DMA

控制器向CPU發(fā)送請求占用總線的信號HRQ,CPU響

應(yīng)HRQ后向DMA回送一個響應(yīng)信號HLDA,隨后CPU

讓出總線控制權(quán)給DMA控制器,再由DMA控制器回應(yīng)I

/O設(shè)備應(yīng)答信號DACK。此時可以開始進(jìn)行存儲器與1/

O設(shè)備之間直接數(shù)據(jù)傳送。當(dāng)一批數(shù)據(jù)傳送完畢,DMA

把總線控制權(quán)退還給CPUo

6

D>.

DMA傳送控制方式的特點是:

在數(shù)據(jù)傳送過程中。以內(nèi)存為中心,不需要CPU

的干預(yù),對批量數(shù)據(jù)傳送效率很高,通常用于高速I/O

設(shè)備(如磁盤)與內(nèi)存之間的數(shù)據(jù)傳送。

用DMA方式傳送數(shù)據(jù)時,在存儲器和外部設(shè)備之

間,直接開辟高速的數(shù)據(jù)傳送通路。數(shù)據(jù)傳送過程不要

CPU介入,只用一個總線周期,就能完成存儲器和外部

設(shè)備之間的數(shù)據(jù)傳送。

6加燦■

l>.

DMA主要適用以下幾種場合:

?硬盤和軟盤I/O

?快速通信通道I/O

?多處理機(jī)和多程序數(shù)據(jù)塊傳送

?掃描操作

?快速數(shù)據(jù)采集

?在PC/XT機(jī)中還采用DMA方式進(jìn)行DRAM的刷新操作

6.3.4I/O處理機(jī)方式

隨著計算機(jī)系統(tǒng)的擴(kuò)大、外設(shè)的增多和外設(shè)性能的

提高,CPU對外設(shè)的管理、服務(wù)任務(wù)不斷加重。為了提

高整個系統(tǒng)的工作效率,CPU需要擺脫對I/O設(shè)備的直

接管理和頻繁的I/O操作O

于是,專門用來處理輸入輸出的I/O處理器IOP應(yīng)運(yùn)

而生。如Intel8089就是一種專門配合8086/8088使用的1/

O處理器芯片。

以8089為例,IOP在完成I/O傳送時,擁有以下特性:

?它有自己的指令系統(tǒng)。有些指令專為I/O操作而

設(shè)計,可以完成外設(shè)監(jiān)控、數(shù)據(jù)拆卸裝配、碼制轉(zhuǎn)

換、校驗檢索、出錯處理等項任務(wù)。

?支持DMA傳送。

?8089內(nèi)有兩個DMA通道。

6

D>.

IOP與CPU的關(guān)系是:

CPU在宏觀上指導(dǎo)IOP,IOP在微觀上負(fù)責(zé)輸入/輸出及

數(shù)據(jù)的有關(guān)處理;兩者通過系統(tǒng)存儲區(qū)(公共信箱)來交換

各種信息,包括命令、數(shù)據(jù)、狀態(tài)以及CPU要IOP執(zhí)行程序

的首地址。

圖6?18表示了兩者的聯(lián)絡(luò)情況,當(dāng)CPU將各種參數(shù)放入

公共信箱后,用“通道注意”信號CA通知IOP,這時,IOP從

信箱中獲取參數(shù),并進(jìn)行有關(guān)操作。一旦操作完成,IOP可

在公共信箱中設(shè)立狀態(tài)標(biāo)志,等待CPU來查詢,也可向CPU

發(fā)中斷請求信號,通知它采取下一步行動。

圖6T8IOP與CPU的信息交換

6.1輸入輸出系統(tǒng)概述

6.2I/O設(shè)備的編址方式

6.3I/O端口數(shù)據(jù)傳送的控制方式

6.4DMA控制器8237

6.5微機(jī)中常用的幾種總線

6

D>.

6.4DMA控制器8237

DMA傳送主要用于需要高速大批量數(shù)據(jù)傳送的系統(tǒng)中,

以提高數(shù)據(jù)的吞吐量。如磁盤存取、圖像處理、高速數(shù)據(jù)采

集系統(tǒng)、同步通信中的收發(fā)信號等方面應(yīng)用甚廣。

采用DMA傳送方式是讓存儲器(高速器件)與高速外設(shè)(磁

盤)直接交換數(shù)據(jù),不需CPU干預(yù),減少了中間環(huán)節(jié)。并且

內(nèi)存地址的修改,傳送完畢的結(jié)束報告都由硬件完成,因此

大大提高了傳輸速度。所以通常是采用DMA控制器(DMA

C)來取代CPU,負(fù)責(zé)DMA傳送的全過程控制。

目前DMA控制器芯片類型很多,如Z-80DMA、Intel825

7、8237o

6.4.1DMA系統(tǒng)概述

1.DMA系統(tǒng)組成

為了實現(xiàn)DMA傳送,一般除了DMA控制器以外,還

需要其他配套芯片組成一個DMA傳輸系統(tǒng)。

在PC機(jī)系列中,采用Intel8237A為DMA控制器。另

外,還配備了DMA頁面寄存器及總線裁決邏輯,構(gòu)成

一個完整的DMA系統(tǒng),可支持4個通道(單片)或7個通道

(兩片)的DMA傳輸。其系統(tǒng)邏輯框圖如圖6-19所示。

圖6-19DMA控制器結(jié)構(gòu)框圖

I>.

2.DMA控制器在系統(tǒng)中的地位

DMA控制器與其他外圍接口控制器不同,它具有接管和

控制微機(jī)系統(tǒng)總線(包括數(shù)據(jù)、地址和控制線)的功能,即取

代CPU而成為系統(tǒng)的主控者。但在它取得總線控制權(quán)之前,

又和其他I/O接口芯片一樣,受CPU的控制。

因此,DMA控制器在系統(tǒng)中有兩種工作狀態(tài):

?主動態(tài)

?被動態(tài)

并處在兩種不同的地位:

?主控器

?受控器

6

I>.加力8

3.DMA傳送過程

為了說明DMAC如何獲得總線控制權(quán)和進(jìn)行DMA傳送

的過程。我們先來介紹DMAC的兩類(組)聯(lián)絡(luò)信號;它和1/

O設(shè)備之間,有I/O設(shè)備發(fā)向DMAC的請求信號DREQ和DM

A發(fā)向I/O設(shè)備的應(yīng)答信號DACK;它和處理器之間,有DM

AC向CPU發(fā)出的總線請求信號HRQ和CPU發(fā)回的總線應(yīng)答

信號HLDA。

當(dāng)DMAC收到一個從外設(shè)發(fā)來的DREQ請求信號請求DM

A傳送時,DMA控制器經(jīng)判優(yōu)及屏蔽處理后向總線仲裁器送

出總線請求HRQ信號要求占用總線。經(jīng)總線仲裁器裁決后

,CPU在認(rèn)為可能的情況下,完成總線周期后進(jìn)入總線保持

狀態(tài)。使CPU對總線的控制失效(地址、數(shù)據(jù)、讀、寫控制

線呈高阻浮空),并且發(fā)HLDA總線應(yīng)答信號通知DMAC

I>.

CPU已交出系統(tǒng)總線控制權(quán)。此時DMAC就由被動

態(tài)進(jìn)入主動工作態(tài),成為系統(tǒng)的主控者。然后由它向1/

O設(shè)備發(fā)應(yīng)答信號DACK和讀寫信號響存儲器發(fā)地址信

號和讀寫信號,開始DMA傳送。傳送結(jié)束,DMAC向1/

O設(shè)備輸出計數(shù)終止信號EOTo

DMA傳送期間,HRQ信號一直保持有效,同時HL

DA信號也一直保持有效,直到DMA傳送結(jié)束,HRQ撤

消,HLDA隨之失效,這時系統(tǒng)總線控制權(quán)又回到處理

器CPU。DMA工作時序如圖6-20所示。

造鯽中一~~:-------------------------

READY―??------------------------------

HOLD——II------------

HLDAI

DMA。觸----------1____________

地止*X

數(shù)據(jù)有諸XX

的舲------------------------------------

圖6-20DMA工作時序

6

D>.

6.4.28237內(nèi)部結(jié)構(gòu)及引腳

8237ADMA控制器有四個獨立的通道,每個通道

均有64KB尋址與計數(shù)能力。并且還可以用級聯(lián)方式來

擴(kuò)充更多的通道。它允許在外部設(shè)備與系統(tǒng)存儲器以及

系統(tǒng)存儲器之間直接變換信息,其數(shù)據(jù)傳送率可達(dá)L5M

B/so它提供了多種控制方式和操作模式,大大增強(qiáng)了

系統(tǒng)的性能,8237A是一個高性能通用可編程的DMAC

O

l>.樓4

1.8237A的弓|腳

8237ADMA控制器是一個40個引腳的巡列直插式

140

組件。如圖6?21所示。IORAA7

IOWAe

MEMR--------As

MEMW--------A

NC-<——EOP

READYv-----A3

HLDA■<—A2

ADSTB-<-----Ai

AEN8237-?-----Ao

HRQVcc

CSv-----DBo

CLK-----DBi

RESETV'DB2

DACK2-----DB3

■DB4

DACK3

--------DACKo

DREQ3

--------DACKi

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論