微機(jī)原理第十二章_第1頁(yè)
微機(jī)原理第十二章_第2頁(yè)
微機(jī)原理第十二章_第3頁(yè)
微機(jī)原理第十二章_第4頁(yè)
微機(jī)原理第十二章_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

微機(jī)原理第十二章第一頁(yè),共二十二頁(yè),2022年,8月28日·字節(jié)計(jì)數(shù)器:存放DMA傳輸?shù)淖止?jié)數(shù);

·控制寄存器:存放由CPU設(shè)定的DMA傳輸方式,控制命令等;

·狀態(tài)寄存器:存放DMAC當(dāng)前的狀態(tài),包括有無(wú)DMA請(qǐng)求,是否結(jié)束等。

圖12-1DMAC的內(nèi)部結(jié)構(gòu)與外部連接示意圖第二頁(yè),共二十二頁(yè),2022年,8月28日12.2

Intel8237A概述

8237A的特點(diǎn)

本節(jié)略,內(nèi)容詳見課本。

8237A的引腳

8237A采用40引腳雙列直插封裝(見下頁(yè)圖12-2)。8237A的引腳主要圍繞其二種工作狀態(tài)而設(shè)置,有一些引腳在兩種狀態(tài)下都有用,而有些則是專用的。

1.與DMA周期有關(guān)的引腳:

CLK:時(shí)鐘輸入信號(hào)。

DREQ0~DREQ3,DACK0~DACK3:DMA請(qǐng)求及響應(yīng)信號(hào)。

HRQ,HLDA:保持請(qǐng)求和響應(yīng)信號(hào)。

A7~A0:低8位地址。其中A3~A04位是雙向地址,因?yàn)楫?dāng)CPU對(duì)8237A編程時(shí),這4個(gè)地址引腳又要作為對(duì)片內(nèi)寄存器尋址的輸入地址用。

DB7~DB0:數(shù)據(jù)總線。在DMA周期中,作為高8位地址信號(hào)

(A15~A8)與數(shù)據(jù)信號(hào)(D7~D0)的分時(shí)復(fù)用線。第三頁(yè),共二十二頁(yè),2022年,8月28日

ADSTB:地址選通信號(hào)。。

AEN:地址使能信號(hào)。

MEMR、MEMW:存儲(chǔ)器讀、寫控制,低電平有效,輸出。

IQP、IOW:外設(shè)讀、寫控制。

READY:就緒輸入信號(hào)。

EOP:過程結(jié)束信號(hào)。

圖12-28237A的引腳圖第四頁(yè),共二十二頁(yè),2022年,8月28日2.與CPU讀寫有關(guān)的引腳

CS:片選信號(hào)。

A3~A0:地址線。用來(lái)選擇8237A內(nèi)部有關(guān)寄存器的地址。

DB7~DB0:數(shù)據(jù)線。

IOR、IOW:外設(shè)讀、寫。

RESET:清除信號(hào)。

由上可見,引腳中A3~A0,DB7~DB0以及IOR、IOW是兩種狀態(tài)下都用到的信號(hào),所以它們都是雙向信號(hào)。

8237A的內(nèi)部結(jié)構(gòu)

8237A內(nèi)部結(jié)構(gòu)如圖12-3所示(見下頁(yè))。

8237A的寄存器

1.地址和字?jǐn)?shù)寄存器

8237A的地址和字?jǐn)?shù)寄存器包括基地址寄存器、基本字節(jié)數(shù)寄存器、現(xiàn)行地址寄存器和現(xiàn)剩字節(jié)數(shù)寄存器,每個(gè)通道都必須有這4個(gè)寄存器,所以總數(shù)達(dá)16個(gè)。其中二種基本寄存器只能寫入,而二種現(xiàn)行寄存器只能讀。它們總是占用8個(gè)I/O端口地址,具體地址如表12.1所示(見課本)。第五頁(yè),共二十二頁(yè),2022年,8月28日?qǐng)D12-38237A內(nèi)部結(jié)構(gòu)圖

基地址寄存器是由CPU用程序控制寫入的,表示數(shù)據(jù)塊在內(nèi)存中的起始地址,這個(gè)值一旦寫入,在整個(gè)傳輸進(jìn)行過程中第六頁(yè),共二十二頁(yè),2022年,8月28日

保持不變。

基本字節(jié)數(shù)寄存器中寫入的是本次傳輸?shù)臄?shù)據(jù)塊字節(jié)數(shù),這個(gè)數(shù)也不會(huì)隨DMA傳輸?shù)倪M(jìn)行而變化。若欲傳輸N個(gè)字節(jié),寫入到基本字節(jié)數(shù)寄存器的值應(yīng)為N-1,即比實(shí)際要傳輸?shù)淖止?jié)數(shù)少1。

二個(gè)基本寄存器寫入內(nèi)容時(shí),相應(yīng)的現(xiàn)行地址寄存器也寫入同樣的內(nèi)容。在DMA傳送過程中,每傳送一個(gè)字節(jié),這二個(gè)現(xiàn)行寄存器的內(nèi)容就變化一次?,F(xiàn)行地址寄存器的變化方向由編程時(shí)的設(shè)置決定,而現(xiàn)剩字節(jié)數(shù)寄存器則恒作減量計(jì)數(shù)。當(dāng)現(xiàn)剩字?jǐn)?shù)寄存器由0減至FFFFH時(shí),產(chǎn)生計(jì)數(shù)結(jié)束信號(hào)EOP輸出。

2.工作方式寄存器

圖12-4(見下頁(yè))是一個(gè)字節(jié)長(zhǎng)的工作方式寄存器各位含義。4個(gè)方式寄存器只占用一個(gè)I/O端口地址,不管哪個(gè)通道的方式字都用0BH地址寫入,利用方式字的最低兩位D1D0位的編碼來(lái)指定該方式字屬于哪個(gè)通道。第七頁(yè),共二十二頁(yè),2022年,8月28日

圖12-4工作方式寄存器

工作方式寄存器各位含義如下所述:

D7D6:DMA操作方式設(shè)定。共有4種方式,即:

·單字節(jié)方式

·成組傳送方式第八頁(yè),共二十二頁(yè),2022年,8月28日·請(qǐng)求方式

·級(jí)聯(lián)方式:圖12-5是級(jí)聯(lián)的基本方法,如下:

D5:控制地址變化方向。如置“1”,每傳送一個(gè)字節(jié)的數(shù)據(jù),

現(xiàn)行地址寄存器的內(nèi)容減1。反之,D5=0,地址按增量第九頁(yè),共二十二頁(yè),2022年,8月28日方式變化。

D4:自動(dòng)預(yù)置。如置“1”,將該通道設(shè)置成自動(dòng)預(yù)置方式,

即每當(dāng)一次DMA傳輸結(jié)束后,2個(gè)基本寄存器中的預(yù)置

值將自動(dòng)地再次寫入2個(gè)現(xiàn)行寄存器中。

D3D2:數(shù)據(jù)傳送方向。寫傳輸,是指數(shù)據(jù)從I/O設(shè)備寫入到

內(nèi)存中去,讀傳輸正好相反。校驗(yàn)傳輸時(shí)8237A像

DMA讀或DMA寫傳輸一樣產(chǎn)生時(shí)序,產(chǎn)生地址信號(hào),

外設(shè)可以利用這樣的時(shí)序進(jìn)行校驗(yàn)。

D1D0:通道選擇。

3.控制寄存器

寄存器中各位的定義如圖12-6所示(見下頁(yè))。

控制寄存器各位含義如下:

D6、D7:分別控制DREQ和DACK有效的極性。D6控制

DREQ,D7控制DACK,為“0”時(shí)設(shè)定有效電平為

高電平,為“1”時(shí)低電平才是有效的。一旦設(shè)定后4

個(gè)通道的規(guī)定是一樣的。第十頁(yè),共二十二頁(yè),2022年,8月28日

圖12-6控制寄存器

D4:選擇不同的優(yōu)先權(quán)。在固定優(yōu)先權(quán)時(shí),通道0優(yōu)先級(jí)最高

通道3優(yōu)先級(jí)最低。另一種優(yōu)先權(quán)是循環(huán)式,剛被服務(wù)過

的通道其優(yōu)先權(quán)自動(dòng)降為最低,而其余各通道優(yōu)先權(quán)依

次順高一級(jí),從而使各通道DMA被響應(yīng)的可能性相同。第十一頁(yè),共二十二頁(yè),2022年,8月28日D3和D5兩位都與8237A的定時(shí)有關(guān),將在時(shí)序部分討論。

D2:8237A是否工作的控制位。如為“0”,8237A可工作,否則

不工作。

D1:從存儲(chǔ)器到存儲(chǔ)器傳輸時(shí),固定用通道0的地址寄存器存

放源地址,這時(shí)可用D1位控制源地址變化與否。如果為

“1”,源地址在整個(gè)數(shù)據(jù)塊傳送中都有保持不變。這種方

式將使一個(gè)單元的內(nèi)容送到規(guī)定長(zhǎng)度的某一內(nèi)存區(qū)域中去;

如果為“0”,則通道0的地址變化。該位僅在D0位為“1”時(shí)

才有意義,如果D0位為“0”,即不作存儲(chǔ)器之間的數(shù)據(jù)傳

輸時(shí),D1位就沒有意義了。

D0:控制是否從存儲(chǔ)器到存儲(chǔ)器傳輸。若為1,是從存儲(chǔ)器到

存儲(chǔ)器傳輸;否則不是。

存儲(chǔ)器間傳送的操作只能用軟件啟動(dòng),對(duì)請(qǐng)求寄存器(地址為09H)寫入04H,就可以用軟件方法啟動(dòng)通道0。

4.DMA請(qǐng)求寄存器

請(qǐng)求寄存器格式如圖12-8所示(見下頁(yè))。第十二頁(yè),共二十二頁(yè),2022年,8月28日

圖12-8DMA請(qǐng)求寄存器

DMA請(qǐng)求寄存器各位含義如下:

D1D0:選擇通道。

D2:請(qǐng)求標(biāo)志,“D2=1”表示有請(qǐng)求,“D2=0”表示無(wú)請(qǐng)求。

5.屏蔽寄存器

8237A的每個(gè)通道都配備了一個(gè)屏蔽觸發(fā)器,作為屏蔽標(biāo)志位。DMA的屏蔽標(biāo)志位是通過往屏蔽寄存器寫入屏蔽字節(jié)來(lái)設(shè)置的,如圖12-9所示(見下頁(yè))。第十三頁(yè),共二十二頁(yè),2022年,8月28日?qǐng)D12-9屏蔽寄存器

屏蔽觸發(fā)器各位含義如下:

D1D0:選擇通道。

D2:屏蔽位設(shè)置,“=1”設(shè)置屏蔽位,“=0”清除屏蔽位。

此外,8237A還允許使用綜合屏蔽命令來(lái)設(shè)置通道的屏蔽觸發(fā)器,如圖12-10所示(見下頁(yè))。

D3~D0中的某位為1,就使對(duì)應(yīng)的通道設(shè)置屏蔽位。

若直接訪問屏蔽寄存器(使用圖12-9格式),則地址為0AH。若使用綜合屏蔽命令字來(lái)訪問屏蔽寄存器(使用圖12-10格式),則地址為0FH,且一次就可以完成4個(gè)通道的屏第十四頁(yè),共二十二頁(yè),2022年,8月28日蔽。8237A中還可使用清屏蔽寄存器命令來(lái)清除全部4個(gè)通道的屏蔽位,見后面的“清屏蔽寄存器命令”。

圖12-10綜合屏蔽命令字

6.狀態(tài)寄存器

8237A中有一個(gè)可供CPU讀取的狀態(tài)寄存器,其格式如圖12-11所示(見下頁(yè))。第十五頁(yè),共二十二頁(yè),2022年,8月28日

圖12-11狀態(tài)寄存器

7.暫存寄存器

在存儲(chǔ)器到存儲(chǔ)器傳送方式時(shí),暫存寄存器保存從源單元讀出的數(shù)據(jù),再由它寫入目的單元。

12.3

8237A的軟件命令

8237A還設(shè)計(jì)了專用的軟件命令,以實(shí)現(xiàn)對(duì)8237A的編程控制。軟件命令有三條:主清除命令,清除先/后觸發(fā)器命令和清除屏蔽寄存器命令。

1.主清除命令

主清除命令與硬件的RESET信號(hào)具有相同作用。執(zhí)行這條命令后,命令、狀態(tài)、請(qǐng)求、暫存寄存器以及先/后觸發(fā)器都第十六頁(yè),共二十二頁(yè),2022年,8月28日被復(fù)位,屏蔽寄存器被置位。然后,8237A處于空閑周期。

主清除命令的地址是0DH。只須對(duì)該端口執(zhí)行寫操作即可發(fā)出主清除命令,至于寫入的數(shù)據(jù),8237A并不關(guān)心,可隨意設(shè)置。

2.清除先/后觸發(fā)器命令

當(dāng)先/后觸發(fā)器為0時(shí),讀寫低位字節(jié),為1時(shí)則讀寫高位字節(jié)。觸發(fā)器在每次讀寫這組寄存器后都翻轉(zhuǎn)一次。

要實(shí)現(xiàn)先/后觸發(fā)器復(fù)位可以使用清除先/后觸發(fā)器命令,該命令是對(duì)0CH地址進(jìn)行一次寫操作即可,而對(duì)于寫入內(nèi)容,同主清除命令一樣,沒有任何要求。

另外,硬件RESET信號(hào)和軟件主清除命令也會(huì)使先/后觸發(fā)器復(fù)位。

3.清屏蔽寄存器命令

清屏蔽寄存器命令的地址為0EH。執(zhí)行這個(gè)命令將清除全部4個(gè)通道的屏蔽寄存器,使它們?cè)试S接收DMA請(qǐng)求。

12.4

8237A的工作時(shí)序第十七頁(yè),共二十二頁(yè),2022年,8月28日8237A有二大類操作周期,即空閑周期和有效(DMA)周期。每個(gè)周期總是由若干個(gè)狀態(tài)周期組成。每個(gè)狀態(tài)周期都占一個(gè)時(shí)鐘周期的時(shí)間,但由于每個(gè)狀態(tài)周期中它們完成的任務(wù)不相同,所以又把它們分別叫做SI、S0、S1、S2、S3、S4和SW七種不同的周期。

正常DMA讀寫操作

圖12-12是8237A在DMA傳送時(shí)的時(shí)序(見下頁(yè))。

S0是個(gè)等待周期,這期間8237A等待CPU讓出總線,得到HLDA的響應(yīng)。

S1狀態(tài)中,8237A輸出地址允許信號(hào)AEN,同時(shí)把高8位地址A15~A8送到DB7~DB0引腳上,并發(fā)出ADSTB地址選通信號(hào)。

S2狀態(tài)中,首先向外設(shè)送出DACK信號(hào)。接著,根據(jù)操作要求,發(fā)出讀信號(hào),對(duì)DMA讀操作,就送出MEMR給存儲(chǔ)器;對(duì)DMA寫操作就送IOR給外設(shè)。

S3狀態(tài)中,8237A發(fā)出寫命令。第十八頁(yè),共二十二頁(yè),2022年,8月28日

S3狀態(tài)的后沿,8237A檢測(cè)READY信號(hào)端狀態(tài)。

S4狀態(tài)中結(jié)束本次一個(gè)字節(jié)數(shù)據(jù)傳送。

圖12-128237A時(shí)序圖

第十九頁(yè),共二十二頁(yè),2022年,8月28日擴(kuò)展寫與壓縮時(shí)序

所謂擴(kuò)展寫是當(dāng)8237A輸出寫信號(hào)時(shí),使其有效的時(shí)間提前。正常在S3才送出的有效寫控制信號(hào),提前到S2就變得有效。這可以使得寫入的設(shè)備有更多的寫入時(shí)間。當(dāng)命令寄存器的D5=1時(shí),就選擇了擴(kuò)展寫方法。

壓縮定時(shí)是當(dāng)命令寄存器D3=1時(shí)采用的定時(shí)方式。在S1~S44個(gè)周期中,S1是為了鎖存高8位地址用的,而S3則是一個(gè)延長(zhǎng)周期,給讀寫以充足的時(shí)間,在追求更高傳輸速度,且器件的讀寫速度又可跟得上的情況下,就可以把S1和S3兩個(gè)周期省去,形成了時(shí)間壓縮一半的時(shí)序。壓縮時(shí)序方式只能用于連續(xù)數(shù)據(jù)塊傳送,即高8位地址不變的數(shù)據(jù)塊。

12.5

8237A的初始化及其在PC機(jī)中的應(yīng)用

8237A的初始化

在進(jìn)行DMA操作之前,必須對(duì)8237A進(jìn)行初始化編程。初始化編程有以下內(nèi)容:

(1)關(guān)閉8237A,以保證對(duì)8237A初始化編程結(jié)束后才響應(yīng)

DMA操作請(qǐng)求。第二十頁(yè),共二十二頁(yè),2022年,8月28日(2)發(fā)送主清除命令,即用軟件方法進(jìn)行復(fù)位。

(3)輸出16位地址值給相應(yīng)通道的地址寄存器。

(4)設(shè)置傳送的字節(jié)數(shù)給基字節(jié)計(jì)數(shù)器和當(dāng)前字節(jié)計(jì)數(shù)器。

(5)輸出工作方式控制字,以確定8237A的工作方式和傳輸

類型。

(6)將屏蔽控制字寫入屏蔽寄存器,去除屏蔽。

(7)啟動(dòng)8237A,并將操作方式控制字寫入控制寄存器,控

溫馨提示

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