《80X86微機(jī)原理與接口技術(shù)》課件第8章_第1頁
《80X86微機(jī)原理與接口技術(shù)》課件第8章_第2頁
《80X86微機(jī)原理與接口技術(shù)》課件第8章_第3頁
《80X86微機(jī)原理與接口技術(shù)》課件第8章_第4頁
《80X86微機(jī)原理與接口技術(shù)》課件第8章_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章接口技術(shù)8.1接口技術(shù)概述

8.2I/O指令的兩種尋址方式

8.3I/O端口的兩種尋址方式

8.4端口地址譯碼技術(shù)

8.5CPU與I/O設(shè)備間的數(shù)據(jù)傳送8.1接口技術(shù)概述

1.I/O接口電路的功能

I/O接口電路是為解決I/O設(shè)備與CPU之間存在的工作原理、運行速度、信息格式不同等諸多矛盾而設(shè)置的,I/O設(shè)備的多樣性導(dǎo)致了I/O接口電路的多樣性。為了便于使用,借助LSI技術(shù)的發(fā)展,I/O接口電路已制成盡可能通用的I/O接口芯片,這些芯片的每一種型號都有自己的應(yīng)用領(lǐng)域,它們共有的一些功能如下:(1)數(shù)據(jù)轉(zhuǎn)換:I/O設(shè)備提供的自身狀態(tài)信號和它所需的控制信號通常與微機(jī)總線信號不兼容,接口芯片的數(shù)據(jù)轉(zhuǎn)換功能就是讓它們兼容,做到邏輯關(guān)系匹配、時序配合默契、高低電平一致。

(2)數(shù)據(jù)緩沖:轉(zhuǎn)換后能匹配的數(shù)據(jù),并不能立即傳送,因為主機(jī)和外設(shè)的速度不一致,盲目傳送會丟失數(shù)據(jù)。為此接口芯片中都設(shè)置有暫存數(shù)據(jù)的鎖存器或寄存器,稱為“數(shù)據(jù)端口”,此外還有“控制端口”和“狀態(tài)端口”??刂贫丝谟糜贑PU對I/O接口芯片寫入控制命令字,規(guī)定I/O接口芯片的具體工作方式和應(yīng)用環(huán)境;狀態(tài)端口用于I/O接口芯片向CPU報告自身的運行狀態(tài),如“空”、“滿”、“忙”、“閑”等等。(3)接收并執(zhí)行CPU的命令:I/O接口芯片應(yīng)當(dāng)能夠通過“控制端口”接收CPU的命令并將其分解成若干控制信號,指揮I/O設(shè)備各邏輯部件統(tǒng)一協(xié)調(diào)工作。

(4)I/O設(shè)備選擇:每一個I/O接口芯片都必須要有片選信號輸入端,供CPU選擇。具體選擇方法允許片選端接入地址譯碼器輸出,這樣微機(jī)系統(tǒng)能帶許多I/O設(shè)備,而在同一時間里CPU只會與一個I/O接口芯片交換數(shù)據(jù)。

(5)數(shù)據(jù)位數(shù)變換:并行傳送數(shù)據(jù)可同時傳送8、16、32、64位,串行傳送數(shù)據(jù)只能一位一位傳送,接口芯片應(yīng)具有“并行→串行”或“串行→并行”能力,以適應(yīng)不同數(shù)據(jù)處理設(shè)備的需要。(6)中斷管理:I/O接口芯片能夠處理中斷事務(wù),能提出中斷申請、完成優(yōu)先權(quán)排隊、提供中斷向量等。

(7)可編程功能:具備硬件電路不變、僅修改驅(qū)動程序就能改變工作方式的功能。任何一個接口芯片都不可能同時具備上述所有功能,不同接口芯片,功能側(cè)重不同。盡管如此,已成定型產(chǎn)品的接口芯片,其復(fù)雜程度和價格一般也不亞于CPU自身。2.接口信號圖8-1CPU與I/O之間的接口(1)數(shù)據(jù)信息:數(shù)據(jù)信息在接口處的表現(xiàn)形式有數(shù)字量、開關(guān)量和模擬量3種。數(shù)字量通常為8位二進(jìn)制數(shù)或ASCII碼字符,通過鍵盤、磁盤讀入或CRT、打印機(jī)輸出。開關(guān)量是用二進(jìn)制數(shù)表示的量,如開關(guān)的合與斷,電燈的亮與滅、電機(jī)的停與轉(zhuǎn)、閥門的開與閉。若CPU能并行輸出8位二進(jìn)制數(shù),就能控制8個這樣的開關(guān)。模擬量通常為緩慢變化的直流量。

(2)控制信息:任何一個接口芯片使用前都必須初始化,控制信息以命令字的形式由CPU發(fā)給I/O接口芯片,再由接口芯片發(fā)給外設(shè),直接控制I/O設(shè)備的工作。(3)狀態(tài)信息:狀態(tài)信息使用8位二進(jìn)制數(shù)表示,由I/O設(shè)備經(jīng)接口芯片傳給CPU。上述3種信息的性質(zhì)不相同,必須分開進(jìn)行傳送。分開的最好方法是各自使用不同的端口。端口地址通常用8位、10位或16位二進(jìn)制數(shù)描述。端口的內(nèi)容為1個字節(jié)。每個端口都是一個能存放8位二進(jìn)制數(shù)的寄存器,與存儲單元一樣。對I/O設(shè)備的操作,歸結(jié)為對接口芯片端口地址的尋址和操作。有了端口地址,CPU的尋址僅僅只對端口而言,不再是籠統(tǒng)地對某個I/O設(shè)備。一個I/O設(shè)備往往有幾個端口,如專用的數(shù)據(jù)端口,至少需要一個傳送8位數(shù)據(jù)??刂贫丝诤蜖顟B(tài)端口卻只需要其中一位或幾位,于是幾個I/O設(shè)備可以共用一個控制口或一個狀態(tài)口。8.2I/O指令的兩種尋址方式8.2.1直接端口尋址端口地址為8位立即數(shù)形式出現(xiàn)的尋址方式為直接端口尋址,這種情況的端口地址范圍為00H~FFH,可尋址256個端口,格式形式稱為長格式,具體如下:8.2.2DX間接端口尋址端口地址用DX表示的尋址方式為DX間接端口尋址位,地址范圍為0000H~FFFFH,可尋址216=65536個端口。格式形式為短格式,具體如下:80286/386/486CPU還新增加指令支持I/O端口與存儲單元之間直接傳送數(shù)據(jù):8.3I/O端口的兩種尋址方式8.3.1存儲器統(tǒng)一編址尋址方式存儲器統(tǒng)一編址的尋址方式是把I/O端口作為存儲器的一個單元來訪問,不設(shè)置專門的I/O指令,凡是存儲單元尋址和操作可使用的指令都適用于I/O端口。這種方式的優(yōu)點是存儲器的訪問指令種類多、功能全、操作靈活、范圍廣,比如能對I/O端口的內(nèi)容直接進(jìn)行算術(shù)邏輯運算、移位、條件轉(zhuǎn)移、比較等等,I/O端口所能用的編址空間也大,有利于一些大系統(tǒng)的通信傳輸、數(shù)字控制。這種方式的缺點是I/O端口占用了內(nèi)存單元地址,使得內(nèi)存容量減小,此外指令長度比專用I/O指令長,執(zhí)行速度也較慢。一般在MCS-51單片機(jī)、PDP-11小型機(jī)、R6502、M6800機(jī)中采用這種方式尋址。以CPU提供20條地址線、設(shè)置I/O端口256個為例,連接圖如圖8-2所示。圖8-2存儲器統(tǒng)一編址8.3.2獨立I/O編址尋址方式在這種方式中,I/O端口單獨編址,不占存儲空間。存儲器操作指令專門用于訪問存儲器,I/O指令專門用于訪問I/O端口,彼此不相干擾。在80X86系列微機(jī)中采用這種方式尋址。這種方式有如下優(yōu)點:I/O指令簡單、速度快,與存儲器操作指令分開使用能夠適應(yīng)各自的操作對象,使I/O操作和存儲器操作在程序中層次清晰、易編易懂;I/O端口不占內(nèi)存,硬件資源各自單獨設(shè)置。缺點是要增加硬件開銷,把I/O端口和存儲器分開。獨立I/O編址時I/O端口可用低8位、低10位或低16位地址總線尋址。圖8-3畫出了CPU地址總線寬度為20位、I/O端口用低8位和低16位尋址的連接情況。圖8-3獨立I/O編址8.4端口地址譯碼技術(shù)8.4.1端口地址的產(chǎn)生端口地址產(chǎn)生于地址譯碼器。地址譯碼器的輸入端除了地址信號外,還必須要有若干條控制信號??刂菩盘柕臈l數(shù)越多,對I/O端口地址的限制和產(chǎn)生就越嚴(yán)格,越能做到合理地對眾多接口芯片分配合適的地址空間。通常對地址譯碼器引入的控制信號有:用 、信號控制I/O端口讀寫;用 信號控制非DMA方式;用 信號控制奇地址選擇。

一個接口芯片通常有幾個端口,這些端口的地址編號一般是連續(xù)排序的,既有偶地址又有奇地址。但是在進(jìn)行數(shù)據(jù)傳送的時候,與8086存儲器一樣,字節(jié)也有規(guī)則存放和非規(guī)則存放之分。位于偶地址的I/O端口只能與低8位數(shù)據(jù)總線交換信息;位于奇地址的I/O端口理應(yīng)與高8位數(shù)據(jù)總線交換信息。為此,把8位接口芯片與16位數(shù)據(jù)總線相連時必須添加邏輯轉(zhuǎn)換電路。圖8-4就是用于轉(zhuǎn)換的一個例子。I/O接口芯片的片選信號輸入端接地址譯碼器的輸出,A1A0接CPU的A1A0。按照A1A0的取值可以知道這個I/O接口芯片有4個端口,端口地址為84H~87H。CPU的A0除了作地址線外,還作為邏輯轉(zhuǎn)換門電路的控制輸入端。當(dāng)A0=0(此時I/O端口是偶端口)時,1#8286緩沖器開通,2#8286緩沖器關(guān)斷,I/O端口的8位數(shù)據(jù)線與CPU的低8位數(shù)據(jù)總線連通;當(dāng)A0=1(此時是奇端口)且=0時,1#緩沖器關(guān)斷,2#緩沖器開通,允許CPU通過高8位數(shù)據(jù)總線訪問奇端口。如果把CPU的地址線和I/O接口芯片的地址線接法稍加改變,則可以得到幾個端口地址不同的排序情況,例如要讓所有的端口地址全為偶地址。圖8-5所示電路能實現(xiàn)這種要求。CPU的A0可作為片選信號或讀寫控制信號使用,只有當(dāng)A0=0時才能選中芯片或者才能進(jìn)行讀寫。CPU的A2、A1接I/O接口芯片的A1、A0。設(shè)圖中接于,接口芯片有4個端口,地址分別為88H、8AH、8CH、8EH,全為偶數(shù)。這時I/O接口芯片的數(shù)據(jù)線僅與CPU低8位數(shù)據(jù)總線D0~D7相連。圖8-4端口地址連續(xù)排序圖8-5I/O端口地址全為偶數(shù)8.4.2三態(tài)緩沖和鎖存

1.固定式端口地址譯碼固定式端口地址譯碼的端口地址不能改變,電路一旦確定,地址也隨之而定。目前所用的I/O接口功能卡大都采用固定譯碼。譯碼電路既可以使用門電路組成,也可以使用集成譯碼器。門電路譯碼適合于只需要一個端口地址的場合;集成譯碼器可以提供多個端口地址,且地址既可以連續(xù)排序,又可以全為偶地址或全為奇地址。圖8-6給出了能譯出30AH的讀寫操作口地址譯碼電路,地址信號使用A9~A0,控制信號使用AEN、IOR和IOW。AEN=0時與門才有輸出,允許譯碼器選中芯片,這時為非DMA操作;=1時關(guān)閉與門,譯碼無效,這時為DMA操作。IOR和IOW與片選一起控制“讀”與“寫”。圖8-6門電路譯碼

微機(jī)內(nèi)多用集成譯碼器,常用的有3∶8譯碼器74LS138、8205,4∶16譯碼器74LS154,雙2∶4譯碼器74LS139、74LS155等。IBMPC機(jī)系統(tǒng)上采用了74LS138譯碼器產(chǎn)生端口地址,具體譯碼電路如圖8-7所示。譯碼器輸入端接CPU地址總線高5位A9~A5,其中A7~A5連接輸入CBA,A9A8作控制信號使用。另一控制端G1接控制線AEN,確保只有AEN=0(非DMA操作)時才有G1=1。CPU的10條地址線用于I/O端口地址譯碼,除高5位A9~A5接譯碼器輸入外,低5位A4~A0用于尋址各I/O接口芯片片內(nèi)端口寄存器尋址。譯碼器輸出端分別用作直接存儲控制器DMAC8237A、可編程中斷控制器PIC8259A、定時/計數(shù)器T/C8253、可編程并行接口芯片8255A的片選信號。按圖中接法,各接口芯片的端口地址范圍分別是:圖8-7IBMPC系統(tǒng)I/O地址譯碼電路

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

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

IBMPC機(jī)使用跳接開關(guān)完成異步通信端口COM1和COM2的地址譯碼,典型電路如圖8-8所示。該電路的譯碼過程十分簡單,就是通過撥動線路板上的DIP開關(guān)K,實現(xiàn)跨線連接,在一組地址中選定一個譯碼地址作為片選信號輸出??缇€的方式不同,選中的端口地址也不同。圖中使用了7條地址線作譯碼電路輸入,輸出的片選信號為由此確定,跳接開關(guān)4、8相連時,地址范圍為A9~A3=1111111B,即3F8H~3FFH,選中COM1口,低3位A2~A0用于尋址接口芯片內(nèi)端口寄存器;跳接開關(guān)2、6相連時,地址范圍為2F8H~2FFH,選中COM2口。圖8-8跳接開關(guān)譯碼2)使用比較器加地址開關(guān)譯碼圖8-9是一個使用比較器74LS688和地址開關(guān)DIP組成的可選式譯碼電路。比較器和DIP開關(guān)的共同功能是給74LS138譯碼器提供一個可供選擇的控制信號。74LS688的輸出端P=Q接于,只有P=Q輸出低電平才能開啟74LS138譯碼器。74LS688的比較結(jié)果是:若P0~P7≠Q(mào)0~Q7,則P=Q輸出1,譯碼器關(guān)斷;若P0~P7=Q0~Q7,則P=Q輸出0,譯碼器開通。按圖中接法, 參加譯碼,可產(chǎn)生8個讀/寫端口地址。當(dāng)A9=1?(因Q6=+5?V)時,=0(因Q7=0V)可譯碼,預(yù)置DIP開關(guān)為一個值,得到一組8個相應(yīng)地址。圖8-9使用比較器和地址開關(guān)的可選譯碼電路3)使用異或門加地址開關(guān)譯碼圖8-10是用3片異或門74LS136、1片3∶8譯碼器74LS138、9位DIP開關(guān)組成的譯碼電路。異或門的兩個輸入端,一個接地址線,一個接DIP開關(guān)。所有異或門(共3片×4個異或門=12個異或門,圖中只用了10個)的輸出端連在一起,作74LS138的控制端G1信號使用。要想使譯碼器工作,必須讓G1=1,或每個異或門輸出為1。圖8-10使用異或門的可選譯碼電路8.4.3CPU對外設(shè)的選擇

CPU選擇外部設(shè)備就是對外設(shè)端口地址的尋址。找到了I/O端口,也就是找到了相應(yīng)的外部設(shè)備。不同的微機(jī)系統(tǒng)對I/O端口分配有不同的端口地址。IBMPC機(jī)按照兩種不同的I/O硬件類型把I/O空間分成了兩部分。硬件依照其復(fù)雜程度劃分成的兩類,一類是系統(tǒng)板上的I/O接口芯片,有并行接口、DMAC、T/C、中斷控制器等,是一些可編程集成芯片。表8-1列出了它們占用的256個端口,地址為000H~0FFH。另一類是擴(kuò)展槽上的I/O接口卡,有軟驅(qū)卡、硬驅(qū)卡、打印卡、網(wǎng)卡、串行卡等,是由若干芯片組成的邏輯部件(適配器)。表8-2列出了它們占用的768個端口,地址為100H~3FFH。

端口地址實際使用時,地址范圍并未占滿,往往只用到其中幾個。如PC/AT機(jī)中的DMA頁面寄存器地址范圍為080H~09FH,占32個地址,實際使用8個(通道4用于主從片DMA的級聯(lián)):表8-1PC機(jī)系統(tǒng)板上I/O芯片端口地址范圍表8-2擴(kuò)展槽上的I/O接口卡端口地址范圍8.4.4I/O定時與協(xié)調(diào)無論采用哪種譯碼方式,首先必須注意有效端口地址的產(chǎn)生和CPU讀/寫操作時序上的配合。以邏輯門電路為例,門電路延遲時間不得長于和有效之后,否則芯片未能選中就開始讀/寫,必然引起操作失誤。其次在系統(tǒng)設(shè)計中還必須注意I/O端口的設(shè)置是否合理。凡已被系統(tǒng)占用了的地址就不能為用戶所用;對未被占用的地址,由生產(chǎn)廠家注明“保留”的,一般不要使用,否則會出現(xiàn)端口地址重疊等問題;用戶使用微機(jī)系統(tǒng)專門留給用戶的地址空間,如IBMPC機(jī)中的I/O端口地址300H~31FH;在用戶可用的地址空間內(nèi),為避免用戶與用戶之間的沖突,可加接地址開關(guān),避開其他用戶開發(fā)的插板。8.5CPU與I/O設(shè)備間的數(shù)據(jù)傳送8.5.1程序傳送方式

1.無條件傳送當(dāng)程序依指令序列執(zhí)行到I/O指令時,無條件地在AL/AX和I/O端口之間傳送數(shù)據(jù),如圖8-11(a)所示。這種傳送方式使用極為廣泛,例如I/O接口芯片的初始化編程,I/O設(shè)備的狀態(tài)讀取等,顯然它適合于固定I/O設(shè)備在固定時間內(nèi)的固定操作。在另一些I/O操作中,這種方式根本不能適應(yīng)。例如隨機(jī)輸入輸出的一些數(shù)據(jù),I/O設(shè)備還沒有把數(shù)據(jù)準(zhǔn)備好時,CPU就執(zhí)行IN指令,那就讀入了一些不該讀入的內(nèi)容,從而出現(xiàn)錯誤。為此程序傳送改用查詢方式進(jìn)行。圖8-11程序傳送方式(a)無條件傳送;(b)查詢傳送2.查詢方式

1)查詢式輸入查詢式輸入所使用的接口電路、輸入狀態(tài)和輸入數(shù)據(jù)如圖8-12所示。當(dāng)輸入設(shè)備的數(shù)據(jù)已準(zhǔn)備好后,該設(shè)備將向接口電路發(fā)出一個選通信號,一方面將數(shù)據(jù)存入鎖存器,另一方面使D觸發(fā)器Q端置“1”,如果CS、IO/M、RD的控制命令能將狀態(tài)口選通,則Q端“1”信號經(jīng)緩沖器使READY輸出1。READY與數(shù)據(jù)總線的D2相連,因此可用IN指令將狀態(tài)信息讀至AL,再用測試指令檢查D2位。編程查詢輸入的步驟如下:首先CPU用輸入指令從狀態(tài)口輸入狀態(tài)字;其次測試D2狀態(tài)位為“0”還是為“1”,如果為0就重讀狀態(tài),如果為1就讓CPU用輸入指令從數(shù)據(jù)口讀入數(shù)據(jù)。由此編成查詢程序為:圖8-12查詢式輸入接口2)查詢式輸出查詢式輸出所使用的接口電路、輸出狀態(tài)和輸出數(shù)據(jù)格式如圖8-13所示。在輸出數(shù)據(jù)時,查詢輸出同樣也分3步:CPU用輸入指令從狀態(tài)口輸入狀態(tài)字;測試狀態(tài)位為“0”還是為“1”,CPU檢查輸出設(shè)備是否空閑;只有當(dāng)輸出設(shè)備空閑時,CPU才用輸出指令從數(shù)據(jù)口送出數(shù)據(jù)。數(shù)據(jù)輸出完成后,輸出裝置將發(fā)出一個響應(yīng)ACK信號,使D觸發(fā)器復(fù)位,BUSY=0。CPU執(zhí)行一條INAL,STATS-PORT指令,讀取輸出設(shè)備狀態(tài)寄存器內(nèi)容,若選通 有效,則BUSY=0,將送至數(shù)據(jù)總線D0位,讀入AL后進(jìn)行測試,若AL的D0位不為0,則重讀狀態(tài)。否則CPU得知輸出設(shè)備空閑,于是使用OUT指令從數(shù)據(jù)口傳送數(shù)據(jù),并選通數(shù)據(jù)寄存器,使D觸發(fā)器置“1”,告知輸出設(shè)備來取數(shù)。圖8-13查詢式輸出接口查詢程序為:8.5.2中斷傳送方式查詢傳送數(shù)據(jù)過程要求CPU不停地查詢I/O設(shè)備狀態(tài),如果輸入設(shè)備沒有準(zhǔn)備好或輸出設(shè)備正在忙,那么CPU必然要等待。尤其是許多涉及到機(jī)械動作的I/O設(shè)備,如鍵盤、打印機(jī)等,輸入輸出數(shù)據(jù)的速度很慢,這期間CPU原本可以執(zhí)行大量的指令。為了提高CPU的使用效率,可以使用中斷傳送方式傳送數(shù)據(jù)。使用中斷傳送數(shù)據(jù)所用的I/O接口原理電路如圖8-14所示。輸入設(shè)備首先發(fā)出選通信號,把要輸入的數(shù)據(jù)放入鎖存器,并使D觸發(fā)器置“1”,發(fā)出中斷申請。CPU采樣到中斷申請并且中斷正處于開放狀態(tài)時,在現(xiàn)行指令執(zhí)行完,發(fā)出中斷響應(yīng)INTA信號。接口電路收到響應(yīng)信號后,把中斷向量置于數(shù)據(jù)總線,CPU將轉(zhuǎn)入中斷服務(wù)程序,從鎖存器讀出數(shù)據(jù),并清除中斷允許標(biāo)志。服務(wù)程序執(zhí)行完,CPU返回主程序,輸入設(shè)備做好輸入下一個數(shù)據(jù)的準(zhǔn)備。圖8-14中斷傳送方式接口8.5.3DMA傳送方式

DMA是“直接存儲器存取”的英文縮寫,含義為I/O接口電路與存儲器之間不經(jīng)過CPU而直接傳送數(shù)據(jù)。程序傳送方式適合于少量數(shù)據(jù)在I/O接口與CPU內(nèi)部AL/AX之間傳送,中斷方式也離不開I/O指令。如果要在I/O設(shè)備與內(nèi)存之間大批量交換數(shù)據(jù),例如磁盤和內(nèi)存之間的數(shù)據(jù)傳送,則上面介紹的兩種傳送方式都不能滿足要求。程序傳送中的無條件傳送容易出錯;查詢傳送要求CPU花大量時間查詢;中斷傳送時每傳送一個數(shù)據(jù),都要求保護(hù)斷點,傳送一個字節(jié)約需100?μs時間。傳送過慢的一個重要原因是中間多了一個環(huán)節(jié)——CPU。要想快速在I/O設(shè)備與存儲器之間傳送數(shù)據(jù),顯然應(yīng)該去掉CPU這一環(huán)節(jié),如圖8-15所示。隨著微電子集成技術(shù)的飛速發(fā)展,DMA傳送已不僅僅限于I/O接口和存儲器之間的數(shù)據(jù)交換了,它已經(jīng)可以在存儲器與存儲器之間、I/O與I/O之間交換數(shù)據(jù)了。圖8-15I/O接口與存儲器之間傳送數(shù)據(jù)(a)程序方式和中斷方式;(b)DMA方式

采用DMA方式的好處是數(shù)據(jù)傳送如果不經(jīng)過CPU,則速度上限僅取決于存儲器的工作速度;缺點是整個微機(jī)系統(tǒng)失去了控制器,各邏輯電路失去了指揮和管理,無法正常工作。為了解決這個問題,必須設(shè)計一個DMA控制器(簡寫成DMAC)。在DMA方式時,CPU讓出對三組總線的控制權(quán),由DMAC對微機(jī)系統(tǒng)進(jìn)行臨時管理。DMA結(jié)束,由DMAC發(fā)出結(jié)束信號,CPU重新控制三組總線。非DMA方式就是微機(jī)的正常工作方式。

1.DMAC的功能整個DMA過程都用硬件電路來實現(xiàn),為此,DMAC必須具有如下功能:在非DMA方式時,不干擾CPU的工作,與三組總線高阻態(tài)連接;能夠向CPU發(fā)出HOLD信號,該信號為要求進(jìn)入DMA方式的申請信號;能夠接收CPU發(fā)出的HLDA信號,該信號為CPU同樣進(jìn)入DMA方式的響應(yīng)信號;在接到HLDA信號后,能夠接管對三組總線的控制,發(fā)出地址信息,對存儲器尋址,修改地址指針,便于成組傳送,發(fā)出控制信息,實現(xiàn)讀(I/O→存儲器)、寫(存儲器→I/O)和決定傳送的字節(jié)數(shù);判斷DMA傳送是否結(jié)束,若結(jié)束,則發(fā)出結(jié)束信號,使CPU恢復(fù)正常。

2.DMAC的原理圖8-16給出了能實現(xiàn)以上5個功能,以輸入設(shè)備數(shù)據(jù)送存儲器為例的DMAC原理圖。圖8-17給出了DMA的工作流程及波形。DMAC的控制過程為:I/O設(shè)備把數(shù)據(jù)準(zhǔn)備好,隨后發(fā)出一個選通脈沖將DMA觸發(fā)器置“1”,它既是控制/狀態(tài)口的“準(zhǔn)備就緒”信號,又是向DMAC發(fā)出的DMA請求信號。DMAC在觸發(fā)器作用下向CPU發(fā)出HOLD信號。CPU收到HOLD信號后在當(dāng)前指令周期結(jié)束后予以響應(yīng),發(fā)出HLDA信號。DMAC接

溫馨提示

  • 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

提交評論