串行通信和DMA控制接口_第1頁
串行通信和DMA控制接口_第2頁
串行通信和DMA控制接口_第3頁
串行通信和DMA控制接口_第4頁
串行通信和DMA控制接口_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、10 串行通信和DMA控制接口10.1 串行通信的基本概念串行通信指的是數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。這種情況只要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外部設(shè)備之間的遠(yuǎn)距離通信,但串行通信的速度比較慢。串行通信線路有如下3種方式如圖所示:(1) 單工通信:它只允許一個(gè)方向傳輸數(shù)據(jù)。A只作為數(shù)據(jù)發(fā)送器,B只作為數(shù)據(jù)接收器,不能進(jìn)行反方向傳輸。(2) 半雙工通信:它允許兩個(gè)方向傳輸數(shù)據(jù),但不能同時(shí)傳輸,只能交替進(jìn)行,A發(fā)B收或B發(fā)A收。在這種情況下,為了控制線路換向,必須對(duì)兩端設(shè)備進(jìn)行控制,以確定數(shù)據(jù)流向。這種協(xié)調(diào)可以靠增加接口的附加控制線

2、來實(shí)現(xiàn),也可用軟件約定來實(shí)現(xiàn)。(3) 全雙工通信:它允許兩個(gè)方向同時(shí)進(jìn)行數(shù)據(jù)傳輸,A收B發(fā)的同時(shí)可A發(fā)B收,如圖所示。顯然,兩個(gè)傳輸方向的資源必須完全獨(dú)立,A與B都必須有獨(dú)立的接收器和發(fā)送器,從A到B和從B到A的數(shù)據(jù)通路也必須完全分開(至少在邏輯上是分開的)。圖圖8.2110.1.2 串行通信數(shù)據(jù)的收發(fā)方式在串行通信中數(shù)據(jù)的收發(fā)可采用異步和同步兩種基本的工作方式。1. 異步通信方式異步通信所采用的數(shù)據(jù)格式是以一組不定“位數(shù)”數(shù)組組成。第1位稱起始位,它的寬度為1位,低電平;接著傳送一個(gè)字節(jié)(8位)的數(shù)據(jù),以高電平為“1”,低電平為“0”;最后是停止位,寬度可以是1位,1.5位或2位,在兩個(gè)數(shù)據(jù)

3、組之間可有空閑位。異步通信的數(shù)據(jù)格式見圖10.2。每秒傳送數(shù)據(jù)的位數(shù)稱為傳送速率,即波特率(band rate)。波特率一般在300,600,900,1,200,2,400,9,600波特之間。計(jì)算機(jī)之間的異步通信速率一經(jīng)確定后,一般不應(yīng)變動(dòng),但通信的數(shù)據(jù)是可變動(dòng)的,也就是數(shù)據(jù)組之間的空閑位是可變的。2. 同步通信方式在同步通信時(shí)所使用的數(shù)據(jù)格式根據(jù)控制規(guī)程分為面向字符及面向比特的兩種。(1) 面向字符型的數(shù)據(jù)格式:面向字符型的同步通信數(shù)據(jù)格式可采用單同步、雙同步及外同步3種數(shù)據(jù)格式,如下圖所示。圖圖8.24單同步是指在傳送數(shù)據(jù)之前先傳送一個(gè)同步字符“SYNC”,雙同步則先傳送兩個(gè)同步字符“S

4、YNC”。接收端檢測(cè)到該同步字符后開始接收數(shù)據(jù)。外同步通信的數(shù)據(jù)格式中沒有同步字符,而是用一條專用控制線來傳送同步字符,使接收方及發(fā)送端實(shí)現(xiàn)同步。當(dāng)每一幀信息結(jié)束時(shí)均用兩個(gè)字節(jié)的循環(huán)控制碼CRC為結(jié)束。(2) 面向比特型的數(shù)據(jù)格式: 根據(jù)同步數(shù)據(jù)鏈路控制規(guī)程(SDLC),面向比特型的數(shù)據(jù)以幀為單位傳輸,每幀由6個(gè)部分組成。第1部分是開始標(biāo)志“7EH”;第2部分是一個(gè)字節(jié)的地址場(chǎng);第3部分是一個(gè)字節(jié)的控制場(chǎng);第4部分是需要傳送的數(shù)據(jù),數(shù)據(jù)都是位(bit)的集合;第5部分是兩個(gè)字節(jié)的循環(huán)控制碼CRC;最后部分又是“7EH”,作為結(jié)束標(biāo)志。面向比特型的數(shù)據(jù)格式如圖所示。圖圖8.25在SDLC規(guī)程中不

5、允許在數(shù)據(jù)段和CRC段中出現(xiàn)6個(gè)“1”,否則會(huì)誤認(rèn)為是結(jié)束標(biāo)志。因此要求在發(fā)送端進(jìn)行檢驗(yàn),當(dāng)連續(xù)出現(xiàn)5個(gè)“1”,則立即插入一個(gè)“0”,到接收端要將這個(gè)插入的“0”去掉,恢復(fù)原來的數(shù)據(jù),保證通信的正常進(jìn)行 。通常,異步通信速率要比同步通信的低。最高同步通信速率可達(dá)到800k位,因此適用于傳送信息量大,要求傳送速率很高的系統(tǒng)中。10.2 可編程串行通信接口芯片8251A8251A是一個(gè)通用串行輸入/輸出接口,可用來將86系列CPU以同步或異步方式與外部設(shè)備進(jìn)行串行通信。它能將并行輸入的8位數(shù)據(jù)變換成逐位輸出的串行信號(hào);也能將串行輸入數(shù)據(jù)變換成并行數(shù)據(jù),一次傳送給處理機(jī)。廣泛應(yīng)用于長(zhǎng)距離通信系統(tǒng)及計(jì)

6、算機(jī)網(wǎng)絡(luò)。 10.2.1 8251A芯片內(nèi)部結(jié)構(gòu)及其功能8251A由發(fā)送器、接收器、數(shù)據(jù)總線緩沖存儲(chǔ)器、讀/寫控制電路及調(diào)制/解調(diào)控制電路等5部分組成,如圖10.4(a)所示。引腳信號(hào)如圖10.4(b)所示。圖圖8.26圖圖8.271. 發(fā)送器8251A的發(fā)送器包括發(fā)送緩沖存儲(chǔ)器,發(fā)送移位寄存器(并串轉(zhuǎn)換)及發(fā)送控制電路3部分,CPU需要發(fā)送的數(shù)據(jù)經(jīng)數(shù)據(jù)發(fā)送緩沖存儲(chǔ)器并行輸入,并鎖存到發(fā)送緩沖存儲(chǔ)器中。如果是采用同步方式,則在發(fā)送數(shù)據(jù)之前,發(fā)送器將自動(dòng)送出一個(gè)(單同步)或兩個(gè)(雙同步)同步字符(Sync)。然后,逐位串行輸出數(shù)據(jù)。如果采用異步方式,則由發(fā)送控制電路在其首尾加上起始位及停止位,然

7、后從起始位開始,經(jīng)移位寄存器從數(shù)據(jù)輸出線TXD逐位串行輸出,其發(fā)送速率由TXC端上收到的發(fā)送時(shí)鐘頻率決定。2. 接收器8251A的接收器包括接收緩沖存儲(chǔ)器,接收移位寄存器(串并轉(zhuǎn)換)及接收控制電路3部分。外部通信數(shù)據(jù)從RXT端,逐位進(jìn)入接收移位寄存器中。如果是同步方式,則要檢測(cè)同步字符,確認(rèn)已經(jīng)達(dá)到同步,接收器才可開始串行接收數(shù)據(jù),待一組數(shù)據(jù)接收完畢,便把移位寄存器中的數(shù)據(jù)并行置入接收緩沖存儲(chǔ)器中;如果是異步方式,則應(yīng)識(shí)別并刪除起始位和停止位。這時(shí)RXDRY線輸出高電平,表示接收器已準(zhǔn)備好數(shù)據(jù),等待向CPU輸出。8251A接收數(shù)據(jù)的速率由RXC端輸入的時(shí)鐘頻率決定。接收緩沖存儲(chǔ)器和接收移位寄存

8、器構(gòu)成接收器的雙緩沖結(jié)構(gòu)。3. 數(shù)據(jù)總線緩沖存儲(chǔ)器數(shù)據(jù)總線緩沖存儲(chǔ)器是CPU與8251A之間信息交換的通道。它包含3個(gè)8位緩沖寄存器,其中兩個(gè)用來存放CPU向8251A讀取的數(shù)據(jù)及狀態(tài),當(dāng)CPU執(zhí)行IN指令時(shí),便從這兩個(gè)寄存器中讀取數(shù)據(jù)字及狀態(tài)字。另一個(gè)緩沖寄存器存放CPU向8251A寫入的數(shù)據(jù)或控制字。當(dāng)CPU執(zhí)行OUT指令時(shí),可向這個(gè)寄存器寫入,由于兩者公用一個(gè)緩沖寄存器,這就要求CPU在向8251A寫入控制字時(shí),該寄存器中無將要發(fā)送的數(shù)據(jù)。為此,該接口電路必需要有一定的措施來防止。4. 讀/寫控制電路讀/寫控制電路用來接收一系列的控制信號(hào),由它們可確定8251A處于什么狀態(tài),并向8251

9、A內(nèi)部各功能部件發(fā)出有關(guān)的控制信號(hào),因此它實(shí)際上是8251A的內(nèi)部控制器。由讀/寫控制電路接收的控制信號(hào)如下:(1) RESET復(fù)位信號(hào)。向8251A輸入,高電平有效。RESET有效,迫使8251A中各寄存器處于復(fù)位狀態(tài),收、發(fā)線路上均處于空閑狀態(tài)。(2) CLK主時(shí)鐘。向8251A輸入。CLK信號(hào)用來產(chǎn)生8251A內(nèi)部的定時(shí)信號(hào)。對(duì)于同步方式,CLK必須大于發(fā)送時(shí)鐘(TXC)和接收時(shí)鐘(RXC)頻率的30倍。對(duì)于異步方式,CLK必須大于發(fā)送和接收時(shí)鐘的4.5倍。8251A還規(guī)定CLK頻率要在0.743.1MHz范圍內(nèi)。(3) CS選片信號(hào)。由CPU輸入,低電平有效。CS有效,表示該8251A

10、芯片被選,通常由8251A的高位端口地址譯碼得到。(4) RD和WR讀和寫控制信號(hào)。由CPU輸入,低電平有效。(5) C/D控制/數(shù)據(jù)信號(hào)。C/D1,表示當(dāng)前通過數(shù)據(jù)總經(jīng)傳送的是控制字或狀態(tài)信息;C/D0,表示當(dāng)前通過數(shù)據(jù)總線傳送的是數(shù)據(jù);均可由一位地址碼來選擇。5. 調(diào)制/解調(diào)控制電路當(dāng)使用8251A實(shí)現(xiàn)遠(yuǎn)距離串行通信時(shí),8251A的數(shù)據(jù)輸出端要經(jīng)過調(diào)制器將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),數(shù)據(jù)接收端收到的是經(jīng)過解調(diào)器轉(zhuǎn)換來的數(shù)字信號(hào),因此8251A要與調(diào)制/解調(diào)器直接相連,它們之間的接口信號(hào)如下:(1) DTR數(shù)據(jù)終端準(zhǔn)備好信號(hào),向調(diào)制/解調(diào)器輸出,低電平有效。DTR有效,表示CPU已準(zhǔn)備好接收數(shù)據(jù)

11、,它可軟件定義??刂谱种蠨TR位1時(shí),輸出DTR為有效信號(hào)。(2) DSR數(shù)據(jù)裝置準(zhǔn)備好信號(hào)。由調(diào)制/解調(diào)器輸入,低電平有效。DSR有效,表示調(diào)制/解調(diào)器或外部設(shè)備已準(zhǔn)備好發(fā)送數(shù)據(jù),它實(shí)際上是對(duì)DTR的回答信號(hào)。CPU可利用IN指令讀入8251A狀態(tài)寄存器內(nèi)容,檢測(cè)DSR位狀態(tài),當(dāng)DSR1時(shí),表示DSR有效。(3) RTS請(qǐng)求發(fā)送信號(hào)。向調(diào)制/解調(diào)器輸出,低電平有效。RTS有效,表示CPU已準(zhǔn)備好發(fā)送數(shù)據(jù),可由軟件定義。控制字中RTS位1時(shí),輸出RTS有效信號(hào)。(4) CTS清除發(fā)送信號(hào)。由調(diào)制/解調(diào)器輸入,低電平有效。CTS有效,表示調(diào)制/解調(diào)器已作為接收數(shù)據(jù)準(zhǔn)備,只要控制字中TXEN位1,

12、CTS有效時(shí),發(fā)送器才可串行發(fā)送數(shù)據(jù)。它實(shí)際上是對(duì)RTS的回答信號(hào)。如果在數(shù)據(jù)發(fā)送過程中使CTS無效,或TXEN0,發(fā)送器將正在發(fā)送的字符結(jié)束時(shí)停止繼續(xù)發(fā)送。10.2.2 8251A芯片的編程可編程串行通信接口芯片8251A在使用前必須進(jìn)行初始化,以確定它的工作方式,傳送速率,字符格式以及停止位長(zhǎng)度等,可使用的控制字如下: 1. 方式選擇控制字其使用格式如圖10.5所示。B2B1位用來定義8251A的工作方式是同步方式還是異步方式,如果是異步方式還可由B2B1的取值來確定傳送速率。1表示輸入的時(shí)鐘頻率與波特率相同,允許發(fā)送和接收波特率不同,RXC和TXC也可不相同,但是它們的波特率系數(shù)必須相同

13、;16表示時(shí)鐘頻率是波特率的16倍;64表示時(shí)鐘頻率是波特率的64倍。圖圖10.5因此通常稱1,16和64為波特率系數(shù),它們之間存在如下的關(guān)系:發(fā)送/接收時(shí)鐘頻率發(fā)送/接收波特率波特率系數(shù)L2L1位用來定義數(shù)據(jù)字符的長(zhǎng)度可為5,6,7或8位。PEN位用來定義是否帶奇偶校驗(yàn),稱作校驗(yàn)允許位。在PEN1情況下,由EP位定義是采用奇校驗(yàn)還是偶校驗(yàn)。S2S1位用來定義異步方式的停止位長(zhǎng)度(1位、15位或2位)。對(duì)于同步方式,S1位用來定義是外同步(S11)還是內(nèi)同步(S10),S2位用來定義是單同步(S21)還是雙同步(S20)。2. 操作命令控制字其使用格式如圖10.6所示,TXEN位是允許發(fā)送位,

14、TXEN1,發(fā)送器才能通過TXD線向外部串行發(fā)送數(shù)據(jù)。圖圖10.6DTR位是數(shù)據(jù)終端準(zhǔn)備好位。DTR1,表示CPU已準(zhǔn)備好接收數(shù)據(jù),這時(shí)DTR引線端輸出有效。RXE位是允許接收位。RXE1,接收器才能通過RXD線從外部串行接收數(shù)據(jù)。SBRK位是發(fā)送斷缺字符位。SBRK1,通過TXD線一直發(fā)送“0”信號(hào)。正常通信過程中SBRK位應(yīng)保持為“0”。ER位是清除錯(cuò)誤標(biāo)志位。8251A設(shè)置有3個(gè)出錯(cuò)標(biāo)志,分別是奇偶校驗(yàn)標(biāo)志PE,越界錯(cuò)誤標(biāo)志OE和幀校驗(yàn)錯(cuò)標(biāo)志FE。ER1時(shí)將PE,OE和FE標(biāo)志同時(shí)清“0”。RTS位是請(qǐng)求發(fā)送信號(hào)。RTS1,迫使8251A輸出RTS有效,表示CPU已作好發(fā)送數(shù)據(jù)準(zhǔn)備,請(qǐng)求

15、向調(diào)制/解調(diào)器或外部設(shè)備發(fā)送數(shù)據(jù)。IR位是內(nèi)部復(fù)位信號(hào)。IR1,迫使8251A回到接收方式選擇控制字的狀態(tài)。EH位為跟蹤方式位。EH位只對(duì)同步方式有效,EH1,表示開始搜索同步字符,因此對(duì)于同步方式,一旦允許接收(RXE1),必須同時(shí)使EH1,并且使ER1,清除全部錯(cuò)誤標(biāo)志,才能開始搜索同步字符。從此以后所有寫入的8251A的控制字都是操作命令控制字。只有外部復(fù)位命令RESET1或內(nèi)部復(fù)位命令I(lǐng)R1才能使8251A回到接收方式選擇命令字狀態(tài)。3. 狀態(tài)控制字CPU可在8251A工作過程中利用IN指令讀取當(dāng)前8251A的狀態(tài)控制字,其使用格式如圖10.7所示。圖圖10.7CPU可在任意時(shí)刻用IN

16、指令讀8251A狀態(tài)字,這時(shí)C/D引線端應(yīng)輸入為“1”,在CPU讀狀態(tài)期間,8251A將自動(dòng)禁止改變狀態(tài)位。對(duì)8251A進(jìn)行初始化編程,必須在系統(tǒng)復(fù)位之后,總是先使用方式選擇控制字,并且必須緊跟在復(fù)位命令之后。如果定義8251A工作于異步方式,那么必須緊跟操作命令控制字進(jìn)行定義,然后才可開始傳送數(shù)據(jù)。在數(shù)據(jù)傳送過程中,可使用操作命令字重新定義,或使用狀態(tài)控制字讀取8251A的狀態(tài),待數(shù)據(jù)傳送結(jié)束,必須用操作命令控制字將IR位置“1”,向8251A傳送內(nèi)部復(fù)位命令后,8251A才可重新接收方式選擇命令字、改變工作方式完成其他傳送任務(wù)。如果是采用同步工作方式,那么在方式選擇控制字之后應(yīng)輸出同步字符

17、,在一個(gè)或兩個(gè)同步字符之后再使用操作命令控制字,以后的過程同異步方式。10.2.3 8251A串行接口應(yīng)用舉例采用8251A實(shí)現(xiàn)串行接口通信是在兩臺(tái)微機(jī)中各設(shè)置一個(gè)RS232串行接口。每個(gè)RS232串行接口采用一片8251A芯片,其通信結(jié)構(gòu)流程圖如圖8.32所示??刹捎卯惒交蛲椒绞綄?shí)現(xiàn)單工、雙工或半雙工通信。當(dāng)采用查詢方式,異步傳送,雙方實(shí)現(xiàn)半雙工通信時(shí),初始化程序由兩部分組成。一部分是將一方定義為發(fā)送器,另一部分是將對(duì)方定義為接收器。發(fā)送器CPU每查詢到TXRDY有效,則向8251A并行輸出一個(gè)字節(jié)數(shù)據(jù);接收端CPU每查詢到RXRDY有效,則從8251A并行輸入一個(gè)字節(jié)數(shù)據(jù);一直進(jìn)行到全部

18、數(shù)據(jù)傳送完畢為止。圖圖8.32發(fā)送端初始化程序與發(fā)送控制程序如下所示:STT:MOVDX,8251A控制端口;MOVAL,7FHOUTDX,ALMOVAL,11HOUTDX,ALMOV DI,發(fā)送數(shù)據(jù)塊首地址MOV CX,發(fā)送數(shù)據(jù)塊字節(jié)數(shù);NEXT:MOVDX,8251A控制端口IN AL,DXAND AL,01HJZ NEXTMOV DX,8251A控制端口;MOV AL,DIOUT DX,AL將將8251A定義為異步方式定義為異步方式;8位數(shù)據(jù),位數(shù)據(jù),1位停止位,偶校驗(yàn)位停止位,偶校驗(yàn);取波特率系數(shù)為取波特率系數(shù)為64,允許發(fā)送,允許發(fā)送設(shè)置發(fā)送指針和計(jì)數(shù)值設(shè)置發(fā)送指針和計(jì)數(shù)值;查詢;查

19、詢TXRDY有效否有效否向向8251A輸出一個(gè)字節(jié)數(shù)據(jù)輸出一個(gè)字節(jié)數(shù)據(jù)INC DILOOP NEXTHLT接收端初始化程序和接收控制程序如下所示:SRR:MOV DX,8251A控制端口MOV AL,7FHOUT DX,AL ;初始化8251AMOV AL,04HOUT DX,ALMOV DL, 接收數(shù)據(jù)塊首地址 ;置接收數(shù)據(jù)塊指針和計(jì)數(shù)值MOV CX,接收數(shù)據(jù)字節(jié)數(shù)COMT:MOV DX,8251A控制端口IN AL,DXROR AL,1;查詢RXRDY有效否ROR AL,1JNC COMTROR AL,1ROR AL,1;查詢是否有奇偶校驗(yàn)錯(cuò)JC ERRMOV DX 8251A數(shù)據(jù)端口IN

20、 AL,DX;輸入一個(gè)字節(jié)到接收數(shù)據(jù)塊MOV DI,ALINC DILOOP COMTHLT10.3 可編程DMA控制器8237ADMA控制器8237A是Intel86系列微處理器的配套芯片,可用來接管CPU對(duì)總線的控制權(quán),在存儲(chǔ)器與高速外設(shè)之間建立直接進(jìn)行數(shù)據(jù)塊傳送的高速通路。8237A必須與一個(gè)8位鎖存器(8212或其他代用芯片)配套使用,才可形成完整的4通道DMA控制器。各通道可分別完成3種不同的操作:(1) DMA讀操作讀存儲(chǔ)器送外設(shè)。(2) DMA寫操作讀外設(shè)寫存儲(chǔ)器。 (3) DMA校驗(yàn)操作通道不進(jìn)行數(shù)據(jù)傳送操作,只是完成校驗(yàn)功能。任一通道進(jìn)入DMA校驗(yàn)方式時(shí),不產(chǎn)生對(duì)存儲(chǔ)器和I/

21、O設(shè)備的讀/寫控制信號(hào),但是仍保持對(duì)系統(tǒng)總線的控制權(quán),并且每一個(gè)DMA周期都將響應(yīng)外部設(shè)備的DMA請(qǐng)求,發(fā)出DACKi信號(hào),外設(shè)可使用這一響應(yīng)信號(hào)對(duì)所得到的數(shù)據(jù)進(jìn)行某種校驗(yàn)操作,因此,DMA校驗(yàn)操作并不是由8237A本身完成的。8237A可處于兩種不同的工作狀態(tài),在8237A未取得總線控制權(quán)以前,CPU處于主控狀態(tài),而8237A處于從屬狀態(tài),一旦8237A取得總線控制權(quán)后,8237A便上升為主控狀態(tài),完全在8237A控制下完成存儲(chǔ)器和外設(shè)之間的數(shù)據(jù)傳送功能,CPU不再參與數(shù)據(jù)傳送的操作。10.3.1 8237A芯片內(nèi)部結(jié)構(gòu)8237A可編程DMA控制器由數(shù)據(jù)總線緩沖存儲(chǔ)器、讀寫邏輯部件、工作方式

22、寄存器、狀態(tài)寄存器、優(yōu)先選擇邏輯及四個(gè)DMA通道組成,內(nèi)部結(jié)構(gòu)如圖10.9所示。8237A芯片有40條引腳,采用雙列直插式封裝,其引腳信號(hào)功能如圖10.10所示。圖圖10.9圖圖10.101. DMA通道0通道3作為8237A芯片的主體是4個(gè)結(jié)構(gòu)完全相同的DMA通道。每個(gè)通道內(nèi)包含兩個(gè)16位寄存器,它們是地址寄存器和終點(diǎn)計(jì)數(shù)寄存器,前者用來存放進(jìn)行DMA操作的存儲(chǔ)器區(qū)域的首地址的偏移地址值;后者的低14位(D13D0)用來存放要求傳送的字節(jié)數(shù)n-1,n為本次DMA操作所需要執(zhí)行的DMA周期數(shù),因此,一個(gè)數(shù)據(jù)塊的最大容量為214=16KB。在任何DMA操作周期內(nèi),這2位不允許修改,但是可在各個(gè)數(shù)

23、據(jù)塊傳送之間進(jìn)行修改。這就是說,一旦被定義,任何一個(gè)通道的DMA寫、DMA讀或DMA校驗(yàn)操作就一直進(jìn)行到整個(gè)數(shù)據(jù)塊操作完成為止。每個(gè)通道各有一條DMA請(qǐng)求線和一條DMA認(rèn)可線。DMA請(qǐng)求線DRQ0DRQ3,由請(qǐng)求傳送數(shù)據(jù)的外部設(shè)備輸入,高電平有效;DMA認(rèn)可線DACK0DACK3,由8237A取得總線控制權(quán)后向發(fā)出請(qǐng)求的外部設(shè)備輸出,低電平有效,它實(shí)際上是DRQi的回答信號(hào)。2. 數(shù)據(jù)總線緩沖存儲(chǔ)器這是一個(gè)雙向三態(tài)8位緩沖存儲(chǔ)器,是與系統(tǒng)數(shù)據(jù)總線的接口,當(dāng)8237A處于從屬狀態(tài)時(shí),CPU通過這個(gè)緩沖存儲(chǔ)器對(duì)8237A進(jìn)行讀/寫操作。當(dāng)8237A處于主控狀態(tài)時(shí),在DMA周期內(nèi),8237A將所選通

24、道的地址寄存器的高8位地址碼(A15A8)經(jīng)過這個(gè)緩沖存儲(chǔ)器鎖存到8212鎖存器中,然后該緩沖存儲(chǔ)器將處于浮空狀態(tài)。3. 讀/寫邏輯部件當(dāng)8237A處于從屬狀態(tài)時(shí),用來接收由CPU輸入的讀/寫控制信號(hào)和端口地址等信息;當(dāng)8237A處于主控狀態(tài)時(shí),通過它發(fā)出讀/寫控制信號(hào)和地址信息。(1) I/OR讀信號(hào),雙向三態(tài),低電平有效。當(dāng)8237A處于從屬狀態(tài)時(shí), I/OR為輸入線,是CPU向8237A發(fā)出的讀命令,可讀取8237A中某個(gè)通道內(nèi)某個(gè)寄存器的內(nèi)容。當(dāng)8237A處于主控狀態(tài)時(shí), I/OR為輸出線,是8237A向外部設(shè)備發(fā)出的讀命令,可從外部設(shè)備中讀取數(shù)據(jù)。(2) I/OW輸入/輸出寫控制信號(hào)

25、,雙向、三態(tài),低電平有效。當(dāng)8237A處于從屬狀態(tài)時(shí), I/OW為輸入線,是CPU向8237A發(fā)出的寫命令,可向8237A寫入控制字或通道數(shù)據(jù)。當(dāng)8237A處于主控狀態(tài)時(shí), I/OW為輸出線,是8237A向外部設(shè)備發(fā)出的寫命令,可向外部設(shè)備寫入數(shù)據(jù)。(3) A3A0輸入/輸出地址線。當(dāng)8237A處于從屬狀態(tài)時(shí),這是由CPU向8237A輸入的低4位地址碼,用來尋址8237A中的某個(gè)端口。當(dāng)8237A處于主控狀態(tài)時(shí),這是8237A向存儲(chǔ)器輸出的低4位地址碼。(4) CS選片信號(hào),輸入,低電平有效。當(dāng)8237A處于從屬狀態(tài)時(shí),由高位地址碼(A15A2)譯碼得到對(duì)8237A的片選信號(hào)。當(dāng)8237A處于

26、主控狀態(tài)時(shí),CS被自動(dòng)禁止,以免8237A正在執(zhí)行DMA傳送期間重新被選。(5) CLK時(shí)鐘輸入,用來確定8237A的工作速率。(6) RESET復(fù)位信號(hào),由外部輸入,高電平有效。RESET有效時(shí),清除所有寄存器的內(nèi)容,控制線浮空,禁止DMA操作,復(fù)位之后,必須重新初始化,8237A才能工作。4. 控制邏輯部件控制邏輯部件主要用來向CPU發(fā)出總線請(qǐng)求,得到CPU認(rèn)可進(jìn)入主控狀態(tài)后,由它發(fā)出各種控制信號(hào)。(1) HRQ(hold request)保持請(qǐng)求信號(hào),向CPU輸出,高電平有效。當(dāng)任一通道收到外部設(shè)備的DMA請(qǐng)求時(shí),8237A立即向CPU發(fā)出HRQ,表示要求使用總線。(2) HLDA(ho

27、ld acknowledge)保持響應(yīng)信號(hào),由CPU輸入,高電平有效。CPU收到HRQ信號(hào),待當(dāng)前總線周期執(zhí)行完,向8237A回送HLDA信號(hào),表示將總線控制權(quán)交給8237A,此后,8237A進(jìn)入主控狀態(tài),可開始DMA操作。(3) READY準(zhǔn)備就緒信號(hào),輸入,高電平有效。8237A在主控狀態(tài)下進(jìn)行DMA的操作過程中,若存儲(chǔ)器或外部設(shè)備來不及完全讀/寫操作,要求延長(zhǎng)讀/寫操作周期時(shí),可使READY線無效,8237A將在DMA周期中增設(shè)等待周期,直到READY有效為止。(4) MEMR和MEMW讀/寫存儲(chǔ)器控制信號(hào),三態(tài)輸出,低電平有效。這是8237A處于主控狀態(tài)時(shí),向存儲(chǔ)器輸出的讀/寫控制信號(hào)

28、。當(dāng)MEMR有效時(shí),必然I/OW有效,完成從存儲(chǔ)器向外部設(shè)備的數(shù)據(jù)傳送。反之,MEMW有效時(shí),必然I/OR有效,完成讀外部設(shè)備寫存儲(chǔ)器的數(shù)據(jù)傳送。(5) A7A4地址輸出線。8237A處于主控狀態(tài)時(shí),在DMA周期中通過這條線輸出的是16條存儲(chǔ)器地址的A7A4位。(6) TC(terminal count)終點(diǎn)計(jì)數(shù)信號(hào),輸出,高電平有效。當(dāng)所選通道的終點(diǎn)計(jì)數(shù)寄存器中的計(jì)數(shù)值為0時(shí),TC輸出有效,表示當(dāng)前正在傳送的是最后一個(gè)數(shù)據(jù)字節(jié),可用來通知外設(shè)結(jié)束數(shù)據(jù)傳送操作,使DRQi信號(hào)無效。(7) MARK(modulo 128 MARK)模128標(biāo)記,輸出,高電平有效。MARK有效可用來通知被選的外部設(shè)備,當(dāng)前是上一次輸出MARK有效后的第128個(gè)DMA周期。MARK總是在距數(shù)據(jù)塊結(jié)束每隔128周期產(chǎn)生。至于第一個(gè)MARK距數(shù)據(jù)塊開始是多少周期

溫馨提示

  • 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)論