




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園數(shù)學(xué)分類學(xué)習(xí)試題及答案
- 央視智力測試題及答案
- 大學(xué)物理學(xué)習(xí)模式調(diào)整策略試題及答案
- 大學(xué)物理不同平臺學(xué)習(xí)體驗試題及答案
- 施工安全管理流程試題及答案
- 教師教育教學(xué)反思與教學(xué)實踐試題及答案
- 安全事故教訓(xùn)總結(jié)與反思試題及答案
- 攝影專業(yè)考試題及答案
- 淶水幼兒面試題及答案
- 智能交通系統(tǒng)如何促進(jìn)新能源汽車發(fā)展試題及答案
- 土豆從種植后到收獲應(yīng)如何澆水
- QCC品管圈之降低鼻腸管堵管率護(hù)理課件
- 2023年11月2024中咨公司校園公開招聘筆試歷年高頻考點-難、易錯點薈萃附答案帶詳解
- 人工智能在教育中的語文教學(xué)應(yīng)用
- 消防救援-水域救援-冰域救援技術(shù)課件
- 30萬級潔凈車間溫濕度標(biāo)準(zhǔn)
- 質(zhì)量風(fēng)險與機(jī)遇分析評價表完整
- 放射免疫技術(shù)(免疫學(xué)檢驗課件)
- 濱江文化片區(qū)概念規(guī)劃
- 爛尾樓分析完整版
- 大思政研究論文:大中小學(xué)思政課一體化的內(nèi)容要求與推進(jìn)措施
評論
0/150
提交評論