輸入輸出傳送方式與_第1頁(yè)
輸入輸出傳送方式與_第2頁(yè)
輸入輸出傳送方式與_第3頁(yè)
輸入輸出傳送方式與_第4頁(yè)
輸入輸出傳送方式與_第5頁(yè)
已閱讀5頁(yè),還剩89頁(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)介

輸入輸出傳送方式與1第1頁(yè),共104頁(yè),2023年,2月20日,星期二第六章輸入輸出方式和DMA6.1I/O接口概述6.2無(wú)條件傳送方式6.3查詢傳送方式6.4中斷傳送方式6.5DMA的傳送方式6.6可編程DMA控制器8237A2第2頁(yè),共104頁(yè),2023年,2月20日,星期二I/O端口的編址方式輸入輸出的傳送方式:

無(wú)條件、查詢、中斷、DMADMA的基本概念DMA工作過(guò)程DMA的三種傳輸方式 8237DMA控制器主要內(nèi)容3第3頁(yè),共104頁(yè),2023年,2月20日,星期二重點(diǎn)內(nèi)容掌握I/O接口的基本概念掌握I/O接口的地址譯碼掌握幾種傳送方式的特點(diǎn)了解DMA控制器的工作原理4第4頁(yè),共104頁(yè),2023年,2月20日,星期二6.1I/O接口概述一、I/O接口與I/O設(shè)備5第5頁(yè),共104頁(yè),2023年,2月20日,星期二

二、定義I/O接口是位于系統(tǒng)與外設(shè)之間、用來(lái)協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路。PC機(jī)系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路

不同I/O設(shè)備對(duì)應(yīng)I/O接口不同。I/O接口受CPU控制,I/O設(shè)備受I/O接口控制。為增加通用性,I/O接口電路通常均具有可編程功能。微機(jī)系統(tǒng)的應(yīng)用與外設(shè)接口的設(shè)計(jì)、選用和連接。6第6頁(yè),共104頁(yè),2023年,2月20日,星期二三、I/O接口的主要功能速度匹配(Buffer)信號(hào)電平和驅(qū)動(dòng)能力(電平轉(zhuǎn)換器、驅(qū)動(dòng)器)

信號(hào)形式匹配(A/D、D/A)

信息格式(字節(jié)流、塊、數(shù)據(jù)包、幀)

時(shí)序匹配(定時(shí)關(guān)系)總線隔離(三態(tài)門)7第7頁(yè),共104頁(yè),2023年,2月20日,星期二6.1.1接口電路的內(nèi)部結(jié)構(gòu)1、接口硬件數(shù)據(jù)線控制線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器(or三態(tài)門)數(shù)據(jù)輸出寄存器(鎖存器)狀態(tài)寄存器(or三態(tài)門)命令寄存器譯碼電路控制邏輯接外設(shè)接主機(jī)8第8頁(yè),共104頁(yè),2023年,2月20日,星期二

接口功能CPU與外設(shè)主要有數(shù)據(jù)、狀態(tài)和控制信息需要相互交換,于是從應(yīng)用角度看內(nèi)部:⑴數(shù)據(jù)寄存器(端口地址)保存外設(shè)給CPU和CPU發(fā)往外設(shè)的數(shù)據(jù)⑵狀態(tài)寄存器(端口地址)保存外設(shè)或接口電路的狀態(tài)⑶控制寄存器(端口地址)保存CPU給外設(shè)或接口電路的命令

(4)接口電路可含有多個(gè)端口地址9第9頁(yè),共104頁(yè),2023年,2月20日,星期二CPU側(cè)引腳信號(hào):地址信號(hào):選擇I/O接口中的不同寄存器;數(shù)據(jù)信號(hào):命令或數(shù)據(jù)寫入到相應(yīng)寄存器,或者從相關(guān)寄存器讀取數(shù)據(jù)或狀態(tài);控制信號(hào):控制命令的執(zhí)行、時(shí)序、信號(hào)同步和片選;狀態(tài)信號(hào):接口的部分工作狀態(tài)信號(hào)。外設(shè)側(cè)引腳信號(hào):數(shù)據(jù)信號(hào):接口緩沖寄存器與外設(shè)間的數(shù)據(jù)交換;10第10頁(yè),共104頁(yè),2023年,2月20日,星期二狀態(tài)信號(hào):外設(shè)工作狀態(tài)送給接口的狀態(tài)寄存器;控制信號(hào):接口的內(nèi)部控制邏輯控制外設(shè)工作的控制信號(hào)和同步信號(hào)。內(nèi)部控制邏輯:根據(jù)控制寄存器、狀態(tài)寄存器、總線控制信號(hào)及外設(shè)狀態(tài)信號(hào)控制I/O接口的工作。11第11頁(yè),共104頁(yè),2023年,2月20日,星期二常見接口插槽PS2鼠標(biāo)PS2鍵盤千兆網(wǎng)10/100M網(wǎng)卡USB并行口MIDI/游戲接口顯示器接口13941394a麥克風(fēng)/音箱/線入接口串行口12第12頁(yè),共104頁(yè),2023年,2月20日,星期二2、接口軟件(設(shè)備驅(qū)動(dòng)程序)

初始化程序:設(shè)置接口工作方式及初始條件。

傳送方式處理程序:CPU針對(duì)不同的I/O設(shè)備采用不同的處理方式。如設(shè)置中斷向量等。

主控程序:完成接口任務(wù)的程序。

程序終止與退出程序:對(duì)接口電路硬件保護(hù)及操作系統(tǒng)中數(shù)據(jù)恢復(fù)。

輔助程序:提供人-機(jī)對(duì)話手段。13第13頁(yè),共104頁(yè),2023年,2月20日,星期二3、接口電路芯片的分類

接口電路通常采用中大規(guī)模、超大規(guī)模集成電路接口芯片:通用接口芯片支持通用的數(shù)據(jù)輸入輸出和控制的接口芯片如:并行接口芯片、串行接口芯片等。面向外設(shè)的專用接口芯片針對(duì)某種外設(shè)設(shè)計(jì)接口如:顯示接口電路、磁盤驅(qū)動(dòng)接口電路等。

面向微機(jī)系統(tǒng)的專用接口芯片與CPU和系統(tǒng)配套使用,以增強(qiáng)其總體功能如:8259A、8237、8253、8251、8255等。14第14頁(yè),共104頁(yè),2023年,2月20日,星期二4、可編程接口許多接口電路具有多種功能和工作方式,可以通過(guò)編程的方式設(shè)定。接口電路需要與系統(tǒng)物理連接,及編寫接口軟件。接口軟件:1、初始化程序段:設(shè)定芯片工作方式等2、數(shù)據(jù)交換程序段:管理、控制、驅(qū)動(dòng)外設(shè),負(fù)責(zé)外設(shè)和系統(tǒng)間信息交換。15第15頁(yè),共104頁(yè),2023年,2月20日,星期二6.1.3I/O端口的編址接口電路占用的I/O端口的編址可分為兩種方式I/O端口單獨(dú)編址I/O地址空間獨(dú)立于存儲(chǔ)地址空間如INTER系列80X86I/O端口與存儲(chǔ)器統(tǒng)一編址它們共享一個(gè)地址空間如MCS-51系列單片機(jī)16第16頁(yè),共104頁(yè),2023年,2月20日,星期二一、I/O端口單獨(dú)編址優(yōu)點(diǎn):I/O端口的地址空間獨(dú)立控制和地址譯碼電路相對(duì)簡(jiǎn)單專門的I/O指令使程序清晰易讀缺點(diǎn):I/O指令沒(méi)有存儲(chǔ)器指令豐富內(nèi)存空間I/O空間FFFFF0FFFF注:80x86采用I/O端口獨(dú)立編址::::17第17頁(yè),共104頁(yè),2023年,2月20日,星期二二、I/O端口與存儲(chǔ)器統(tǒng)一編址優(yōu)點(diǎn):不需要設(shè)計(jì)專門的I/O指令I(lǐng)/O數(shù)據(jù)存取與存儲(chǔ)器數(shù)據(jù)存取同樣缺點(diǎn):I/O端口占用存儲(chǔ)器地址空間程序易讀性差(不易分清訪內(nèi)存、訪問(wèn)外設(shè))內(nèi)存部分I/O部分存儲(chǔ)器空間00000FFFFF18第18頁(yè),共104頁(yè),2023年,2月20日,星期二6.1.48088/8086的I/O端口I/O指令(直接尋址、尋址范圍:00H~FFH)INAL,PORT;端口(Port),即I/O端口地址OUTPORT,ALINAX,PORT;

;OUTPORT,AXI/O指令(間接尋址、尋址范圍:0000H~FFFFH)INAL,DXOUTDX,AL;INAX,DX,DX寄存器的值就是

端口號(hào)(64K個(gè)端口);OUTDX,AX;功能演示功能演示19第19頁(yè),共104頁(yè),2023年,2月20日,星期二INAL,PORT;OUTPORTALMOVDX,PORT;MOVEDX,PORTINAX,DX;OUTDXAX輸出一個(gè)字:〔(DX)、(DX)+1〕←(AX)或〔(PORT)、(PORT)+1〕←(AX)輸入一個(gè)字:〔(DX)+1、(DX)〕→(AX)或〔(PORT)、(PORT)+1〕→(AX)數(shù)據(jù)交換方式20第20頁(yè),共104頁(yè),2023年,2月20日,星期二6.1.5I/O地址的譯碼I/O地址的譯碼方法與存儲(chǔ)器地址的譯碼方法一樣,但有它的特點(diǎn):部分譯碼時(shí),通常是中間地址線不連接部分譯碼也有最低地址線不連接的情況每個(gè)接口電路通常只占用幾個(gè)I/O地址,這時(shí)可以利用基本邏輯門電路進(jìn)行地址譯碼除采用譯碼器、門電路進(jìn)行譯碼外,I/O地址譯碼還經(jīng)常采用可編程邏輯器件PLD為了給系統(tǒng)一定的選擇余地,有些接口電路利用比較器、開關(guān)或跨接器等進(jìn)行多組I/O地址的譯碼給幾個(gè)譯碼實(shí)例21第21頁(yè),共104頁(yè),2023年,2月20日,星期二IBMPC/AT主機(jī)板的I/O譯碼電路接口芯片內(nèi)部譯碼A0~A4:DMA控制器1中斷控制器1定時(shí)計(jì)數(shù)器并行接口電路DMA頁(yè)面寄存器中斷控制器2DMA控制器2協(xié)處理器A5A6A7A8A9ALS138譯碼器HLDAMASTERABCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y722第22頁(yè),共104頁(yè),2023年,2月20日,星期二IBMPC/XT主機(jī)板的I/O譯碼電路Y0Y1Y2Y3Y4Y5Y6Y7A5A6A7A8A9AENIOWAB

CG2BG2AG174LS138DMACS(8237)INTRCS(8259)T/CCS(8253)PPICS(8255)WRTDMAPG(寫DMA頁(yè)面寄存器)WRTNMIREG(寫NMI屏蔽寄存器)23第23頁(yè),共104頁(yè),2023年,2月20日,星期二邏輯門電路進(jìn)行I/O地址譯碼A9A8A7A6A5A2A4A3AENA1A074LS033E7H24第24頁(yè),共104頁(yè),2023年,2月20日,星期二6.1.6數(shù)據(jù)傳送方式程序控制下的數(shù)據(jù)傳送——通過(guò)CPU執(zhí)行程序中的I/O指令來(lái)完成傳送,又分為:無(wú)條件傳送、查詢傳送、中斷傳送直接存儲(chǔ)器存?。―MA)——傳送請(qǐng)求由外設(shè)向DMA控制器(DMAC)提出,后者向CPU申請(qǐng)總線,最后DMAC利用系統(tǒng)總線來(lái)完成外設(shè)和存儲(chǔ)器間的數(shù)據(jù)傳送I/O處理機(jī)——CPU委托專門的I/O處理機(jī)來(lái)管理外設(shè),完成傳送和相應(yīng)的數(shù)據(jù)處理25第25頁(yè),共104頁(yè),2023年,2月20日,星期二

I/O的傳送方式

主機(jī)與外設(shè)之間數(shù)據(jù)傳送的控制方式有以下四種:無(wú)條件傳送查詢式傳送中斷方式傳送直接存儲(chǔ)器存取(DMA,DirectMemoryAccess)26第26頁(yè),共104頁(yè),2023年,2月20日,星期二6.2無(wú)條件傳送方式適用于總是處于準(zhǔn)備好狀態(tài)的外設(shè)以下外設(shè)可采用無(wú)條件傳送方式:開關(guān)發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等)繼電器步進(jìn)電機(jī)優(yōu)點(diǎn):軟件及接口硬件簡(jiǎn)單缺點(diǎn):只適用于簡(jiǎn)單外設(shè),適應(yīng)范圍較窄傳送流程接口實(shí)例27第27頁(yè),共104頁(yè),2023年,2月20日,星期二無(wú)條件傳送示意圖28第28頁(yè),共104頁(yè),2023年,2月20日,星期二例:無(wú)條件輸入MOV DX,288HIN AL,DX0288H29第29頁(yè),共104頁(yè),2023年,2月20日,星期二例:無(wú)條件輸入MOV DX,288HIN AL,DX74LS244+5V10Kx8G1G2CSRD:::D7D0K0K730第30頁(yè),共104頁(yè),2023年,2月20日,星期二例:無(wú)條件輸出MOVDX,288HMOVAL,[BX]OUTDX,AL0288H31第31頁(yè),共104頁(yè),2023年,2月20日,星期二例:無(wú)條件輸出MOVDX,288HMOVAL,[BX]OUTDX,AL+5V74LS373300x8LEOECSWR:::D7D032第32頁(yè),共104頁(yè),2023年,2月20日,星期二簡(jiǎn)單的輸入接口舉例接口電路圖如下:83FCH~83FFH譯碼器33第33頁(yè),共104頁(yè),2023年,2月20日,星期二鎖存器:由D觸發(fā)器構(gòu)成通常一個(gè)器件包含8個(gè)D觸發(fā)器常用芯片:(教材圖6.5、圖6.6)74LS27374LS374(具有三態(tài)輸出的鎖存器,內(nèi)部結(jié)構(gòu)見圖6.8)應(yīng)用例子:發(fā)光二極管接口簡(jiǎn)單的輸出接口舉例譯碼器=1=1.........+5VRD0|D7CPQ0Q7...D0~D7A0~A15IOW#74LS273R34第34頁(yè),共104頁(yè),2023年,2月20日,星期二I/O接口綜合應(yīng)用例子根據(jù)開關(guān)狀態(tài)在7段數(shù)碼管上顯示數(shù)字或符號(hào)共陽(yáng)極7段數(shù)碼管結(jié)構(gòu)見教材圖6.10用74LS273作為輸出接口,把數(shù)據(jù)送到7段數(shù)碼管74LS273的地址假設(shè)為F0H用74LS244作為輸入口,讀入開關(guān)K0~K3的狀態(tài)74LS244的地址假設(shè)為F1H當(dāng)開關(guān)的狀態(tài)分別為0000~1111時(shí),在7段數(shù)碼管上對(duì)應(yīng)顯示’0’~’F’(7段碼表見下頁(yè))35第35頁(yè),共104頁(yè),2023年,2月20日,星期二

7段碼.gfedcba形狀符號(hào)7段碼.gfedcba形狀符號(hào)01110001’F’00000111’7’01111001’E’01111101’6’01011110’D’01101101’5’00111001’C’01100110’4’01111100’B’01001111’3’01110111’A’01011011’2’01100111’9’00000110’1’01111111’8’00111111’0’36第36頁(yè),共104頁(yè),2023年,2月20日,星期二O1I1O2I2O3I3O4I4#E1K0~K3+5VGG2AG2BCBA≥174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7

abcdefgDP74068個(gè)反相器74LS273Rx8≥174LS138D0~D7IOW#IOR#Y0Y1F0H=0000000011110000F1H=0000000011110001&≥1A7~A4A15~A8A3A2A1A0D0D1D2D3譯碼電路37第37頁(yè),共104頁(yè),2023年,2月20日,星期二相應(yīng)程序段如下:

……Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71H …… LEA BX,Seg7 ;取7段碼表基地址

MOVAH,0 : MOV DX,0F1H ;開關(guān)接口的地址為F1H K: IN AL,DX ;讀入開關(guān)狀態(tài)

AND AL,0FH ;保留低4位

MOV SI,AX ;作為7段碼表的表內(nèi)位移量

MOV AL,[BX+SI] ;取7段碼

MOV DX,0F0H ;7段數(shù)碼管接口的地址為F0H OUT DX,AL JMP K38第38頁(yè),共104頁(yè),2023年,2月20日,星期二6.3查詢傳送方式適用于外設(shè)并不總是準(zhǔn)備好,而且對(duì)傳送速率、傳送效率要求不高的場(chǎng)合。CPU在與外設(shè)交換數(shù)據(jù)前必須詢問(wèn)外設(shè)狀態(tài)——“你準(zhǔn)備好沒(méi)有?”對(duì)外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息對(duì)接口的要求:需要提供狀態(tài)端口優(yōu)點(diǎn):軟件比較簡(jiǎn)單缺點(diǎn):CPU效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差,速度較慢流程圖39第39頁(yè),共104頁(yè),2023年,2月20日,星期二查詢方式的流程圖超時(shí)?READY?與外設(shè)進(jìn)行數(shù)據(jù)交換超時(shí)錯(cuò)讀入并測(cè)試外設(shè)狀態(tài)YNYN傳送完?防止死循環(huán)復(fù)位計(jì)時(shí)器NY注:多個(gè)外設(shè)時(shí),查詢流程見教材圖6.15P K40第40頁(yè),共104頁(yè),2023年,2月20日,星期二例:用查詢方式進(jìn)行輸出外設(shè)狀態(tài)端口地址為3FBH,第5位(bit5)為狀態(tài)標(biāo)志(=1忙,=0準(zhǔn)備好)外設(shè)數(shù)據(jù)端口地址為3F8H,寫入數(shù)據(jù)會(huì)使?fàn)顟B(tài)標(biāo)志置1;外設(shè)把數(shù)據(jù)讀走后又把它置0。1、畫出硬件電路2、編程41第41頁(yè),共104頁(yè),2023年,2月20日,星期二D5D7-D0A9|A3≥1&A15|A10≥1IOWD7-D03F8H外設(shè)D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0狀態(tài)端口GG2AG2BCBAA2A1A074LS138Y0≥1IORY3OE74LS374CPQQDSSTROBE3FBH1、硬件電路

42第42頁(yè),共104頁(yè),2023年,2月20日,星期二2、編程

MOVDX,3F8HTAB:INAL,DXTESTAL20HJNZTABMOVDX,3FBHLEABX,BUFFERMOVAL,OFFSETPTR[BX]OUTAL,DX43第43頁(yè),共104頁(yè),2023年,2月20日,星期二6.4中斷傳送方式CPU無(wú)需查詢外設(shè)狀態(tài),外設(shè)在需要進(jìn)行數(shù)據(jù)傳送時(shí)才中斷CPU正在進(jìn)行的工作,讓CPU來(lái)為其服務(wù)。即CPU與外設(shè)并行工作,有請(qǐng)求時(shí)才去傳輸數(shù)據(jù),從而大大提高了CPU的利用率。優(yōu)點(diǎn):CPU效率高,實(shí)時(shí)性好,速度快。缺點(diǎn):程序編制較為復(fù)雜。須保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)等。44第44頁(yè),共104頁(yè),2023年,2月20日,星期二中斷傳送方式斷點(diǎn)CPU:主程序中斷服務(wù)程序中斷請(qǐng)求處理外設(shè)事件繼續(xù)執(zhí)行返回?cái)帱c(diǎn)

CPU在執(zhí)行程序中,被內(nèi)部或外部的事件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)先安排好的中斷服務(wù)程序;服務(wù)結(jié)束后,又返回原來(lái)的斷點(diǎn),繼續(xù)執(zhí)行原來(lái)的程序傳送流程45第45頁(yè),共104頁(yè),2023年,2月20日,星期二中斷傳送流程46第46頁(yè),共104頁(yè),2023年,2月20日,星期二

中斷系統(tǒng)其他功能:支持多中斷源和多種中斷源。支持中斷屏蔽處理。支持中斷嵌套處理。支持中斷優(yōu)先級(jí)修改。支持中斷結(jié)束方式選擇。中斷處理的隱操作:程序狀態(tài)及程序斷點(diǎn)地址的進(jìn)棧及出棧。47第47頁(yè),共104頁(yè),2023年,2月20日,星期二6.4.1中斷傳送與接口中斷傳送是一種效率更高的程序傳送方式進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的中斷請(qǐng)求是外設(shè)隨機(jī)向CPU提出的CPU對(duì)請(qǐng)求的檢測(cè)是有規(guī)律的:一般是在每條指令的最后一個(gè)時(shí)鐘周期采樣中斷請(qǐng)求輸入引腳本書主要論述中斷在輸入和輸出方面的應(yīng)用中斷還有著非常廣泛的應(yīng)用48第48頁(yè),共104頁(yè),2023年,2月20日,星期二6.4.2中斷傳送與接口D0~D7+5V8D鎖存器8位三態(tài)緩沖器三態(tài)緩沖器RQ

譯碼

288H中斷向量號(hào)D0~D7INTRD輸入設(shè)備中斷允許觸發(fā)器A0~A15中斷請(qǐng)求觸發(fā)器IORINTASTB49第49頁(yè),共104頁(yè),2023年,2月20日,星期二6.5DMA傳送方式無(wú)條件傳送、查詢傳送、中斷傳送這幾種方式都是通過(guò)CPU執(zhí)行程序?qū)崿F(xiàn)的,占用了CPU資源,傳送速度慢(實(shí)際上是軟件傳送方式,最大速度約為幾十KB/秒)。為了實(shí)現(xiàn)高速外設(shè)與內(nèi)存之間的數(shù)據(jù)交換,可采用直接存儲(chǔ)器存取方式(DMA)。

DMA傳送方式通常用來(lái)高速傳送大批量的數(shù)據(jù)塊。如:硬盤和軟盤I/O;多處理機(jī)和多程序數(shù)據(jù)塊傳送;在圖像處理中,對(duì)CRT屏幕送數(shù)據(jù);快速數(shù)據(jù)采集;DRAM的刷新操作??焖偻ㄐ磐ǖ繧/O;50第50頁(yè),共104頁(yè),2023年,2月20日,星期二

DMA傳送: 外設(shè)內(nèi)存外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換,CPU不再擔(dān)當(dāng)數(shù)據(jù)傳送的任務(wù),而由DMA控制器控制總線(DMAC)進(jìn)行數(shù)據(jù)傳送。(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號(hào)均由DMAC提供。優(yōu)點(diǎn):數(shù)據(jù)傳輸由DMA硬件來(lái)控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率(可達(dá)幾MB/秒)51第51頁(yè),共104頁(yè),2023年,2月20日,星期二幾個(gè)基本概念總線控制權(quán)、mater、slaveDMAC編程周期:slave DMAC控制總線進(jìn)行數(shù)據(jù)傳輸周期:masterDMA的數(shù)據(jù)傳輸形式:

基本的:MEM——I/O

擴(kuò)充的:MEM——MEM I/O——I/O52第52頁(yè),共104頁(yè),2023年,2月20日,星期二6.5.1DMAC控制數(shù)據(jù)傳送①外設(shè)發(fā)出DMA請(qǐng)求②DMAC向CPU申請(qǐng)總線③CPU完成當(dāng)前總線周期后響應(yīng),并釋放總線控制權(quán)④DMAC得到總線控制權(quán),并發(fā)出DMA響應(yīng)信號(hào)⑤由DMAC發(fā)出各種控制信號(hào),控制外設(shè)與存儲(chǔ)器之間的數(shù)據(jù)傳送⑥數(shù)據(jù)傳送完后,DMAC撤銷HOLD信號(hào)⑦CPU釋放HLDA信號(hào),并重新控制總線①系統(tǒng)總線CPUDMAC存儲(chǔ)器外設(shè)接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACK②③④⑤AENIOWIORMEMWMEMR⑥⑦53第53頁(yè),共104頁(yè),2023年,2月20日,星期二DMAC的工作過(guò)程1)當(dāng)外設(shè)準(zhǔn)備好,可以進(jìn)行DMA傳送時(shí),外設(shè)向DMA控制器發(fā)出“DMA傳送請(qǐng)求”信號(hào)(DRQ);2)DMA控制器收到請(qǐng)求后,向CPU發(fā)出“總線請(qǐng)求”信號(hào)HOLD,表示希望占用總線;3)CPU在完成當(dāng)前總線周期后會(huì)立即對(duì)HOLD信號(hào)進(jìn)行響應(yīng)。響應(yīng)包括兩個(gè)動(dòng)作:一是CPU將數(shù)據(jù)總線、地址總線和相應(yīng)的控制信號(hào)線均置為高阻態(tài),由此放棄對(duì)總線的控制權(quán)。另一方面,CPU向DMA控制器發(fā)出“總線響應(yīng)”信號(hào)(HLDA)。4)DMA控制器收到HLDA信號(hào)后,就開始控制總線,并向外設(shè)發(fā)出DMA響應(yīng)信號(hào)DACK;54第54頁(yè),共104頁(yè),2023年,2月20日,星期二5)DMA控制器送出地址信號(hào)和相應(yīng)的控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送;例如,向I/O接口發(fā)出讀信號(hào),同時(shí)往地址總線上發(fā)出存儲(chǔ)器的地址和存儲(chǔ)器寫信號(hào)和AEN信號(hào),即可從外設(shè)向內(nèi)存?zhèn)魉鸵粋€(gè)字節(jié)。6)DMA控制器自動(dòng)修改地址和字節(jié)計(jì)數(shù)器,并判斷是否需要重復(fù)傳送操作。當(dāng)規(guī)定的數(shù)據(jù)傳送完后,DMA控制器就撤銷發(fā)往CPU的HOLD信號(hào)。CPU檢測(cè)到HOLD失效后,緊接著撤銷HLDA信號(hào),并在下一時(shí)鐘周期重新開始控制總線。

DMA通道工作過(guò)程55第55頁(yè),共104頁(yè),2023年,2月20日,星期二

DMA的三種傳送方式:連續(xù)傳送(塊傳送)DMAC申請(qǐng)到總線后,將一塊數(shù)據(jù)傳送完后才釋放總線,而不管中間DREQ是否有效。單次傳送(每次傳送一個(gè)字節(jié))每個(gè)DMA周期只傳送一個(gè)字節(jié)就立即釋放總線。按需傳送(猝發(fā)傳送)只要I/O接口的數(shù)據(jù)緩沖可用,就進(jìn)行傳送。

(注:I/O接口需要有一定大小的FIFO緩沖)56第56頁(yè),共104頁(yè),2023年,2月20日,星期二數(shù)據(jù)塊傳送YN允許DMADMA請(qǐng)求?DMAC請(qǐng)求總線CPU響應(yīng),DMAC獲總線控制權(quán)DMA傳送一個(gè)字節(jié)塊結(jié)束?地址增量,計(jì)數(shù)器減量DMAC釋放總線YN57第57頁(yè),共104頁(yè),2023年,2月20日,星期二每次傳送一個(gè)字節(jié)NYN允許DMADMAC請(qǐng)求總線CPU響應(yīng),DMAC獲總線控制權(quán)DMA傳送一個(gè)數(shù)據(jù)塊結(jié)束?釋放總線至少一個(gè)總線周期地址增量,計(jì)數(shù)器減量DMAC釋放總線Y測(cè)試I/O的DREQDMA請(qǐng)求?58第58頁(yè),共104頁(yè),2023年,2月20日,星期二按需傳送NYCPU響應(yīng),DMAC獲總線控制權(quán)DMA傳送一個(gè)字節(jié)塊結(jié)束?測(cè)試I/O的DREQ有效?地址增量,計(jì)數(shù)器減量釋放總線,請(qǐng)求中斷無(wú)效,釋放總線允許DMADMA請(qǐng)求?DMAC請(qǐng)求總線YNYN59第59頁(yè),共104頁(yè),2023年,2月20日,星期二一個(gè)總線周期TDMAC控制總線,共傳送n個(gè)數(shù)據(jù)DMA1DMA2DMAnCPU重新控制總線CPU對(duì)總線控制連續(xù)傳送TDMA共傳送n個(gè)數(shù)據(jù)DMA1DMA2DMAn單次傳送DMA3T按需傳送DMA傳送k個(gè)數(shù)據(jù)DMA傳送n-k個(gè)數(shù)據(jù)FIFO可用FIFO滿FIFO可用FIFO滿圖例:DM方式傳送示意圖:60第60頁(yè),共104頁(yè),2023年,2月20日,星期二6.6可編程DMA控制器8237A8237A是Intel86系列微處理器的配套芯片,可用來(lái)接管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ǔ)器。61第61頁(yè),共104頁(yè),2023年,2月20日,星期二

(3)DMA校驗(yàn):通道不傳送數(shù)據(jù),僅完成校驗(yàn)。任一通道進(jìn)入DMA校驗(yàn)方式時(shí),不產(chǎn)生對(duì)存儲(chǔ)器和I/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ù)傳送的操作。62第62頁(yè),共104頁(yè),2023年,2月20日,星期二6.6.18237A芯片內(nèi)部結(jié)構(gòu)

8237A可編程DMA控制器由數(shù)據(jù)總線緩沖存儲(chǔ)器、讀寫邏輯部件、工作方式寄存器、狀態(tài)寄存器、優(yōu)先選擇邏輯及四個(gè)DMA通道組成,內(nèi)部結(jié)構(gòu)如圖6.25所示。8237A芯片有40條引腳,采用雙列直插式封裝,其引腳信號(hào)功能如圖6.26所示。63第63頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.2564第64頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.2665第65頁(yè),共104頁(yè),2023年,2月20日,星期二1.DMA通道0~通道3

作為8237A芯片的主體是4個(gè)結(jié)構(gòu)完全相同的DMA通道。每個(gè)通道內(nèi)包含兩個(gè)16位寄存器,它們是地址寄存器和終點(diǎn)計(jì)數(shù)寄存器,前者用來(lái)存放進(jìn)行DMA操作的存儲(chǔ)器區(qū)域的首地址的偏移地址值;后者的低14位(D13~D0)用來(lái)存放要求傳送的字節(jié)數(shù)n-1,n為本次DMA操作所需要執(zhí)行的DMA周期數(shù),因此,一個(gè)數(shù)據(jù)塊的最大容量為214=16KB。在任何DMA操作周期內(nèi),這2位不允許修改,但是可在各個(gè)數(shù)據(jù)塊傳送之間進(jìn)行修改。這就是說(shuō),一旦被定義,任何一個(gè)通道的DMA寫、DMA讀或DMA校驗(yàn)操作就一直進(jìn)行到整個(gè)數(shù)據(jù)塊操作完成為止。66第66頁(yè),共104頁(yè),2023年,2月20日,星期二每個(gè)通道各有一條DMA請(qǐng)求線和一條DMA認(rèn)可線。DMA請(qǐng)求線DRQ0~DRQ3,由請(qǐng)求傳送數(shù)據(jù)的外部設(shè)備輸入,高電平有效;DMA認(rèn)可線DACK0~DACK3,由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通過(guò)這個(gè)緩沖存儲(chǔ)器對(duì)8237A進(jìn)行讀/寫操作。當(dāng)8237A處于主控狀態(tài)時(shí),在DMA周期內(nèi),8237A將所選通道的地址寄存器的高8位地址碼(A15~A8)經(jīng)過(guò)這個(gè)緩沖存儲(chǔ)器鎖存到8212鎖存器中,然后該緩沖存儲(chǔ)器將處于浮空狀態(tài)。67第67頁(yè),共104頁(yè),2023年,2月20日,星期二3.讀/寫邏輯部件

當(dāng)8237A處于從屬狀態(tài)時(shí),用來(lái)接收由CPU輸入的讀/寫控制信號(hào)和端口地址等信息;當(dāng)8237A處于主控狀態(tài)時(shí),通過(guò)它發(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),雙向、三態(tài),低電平有效。68第68頁(yè),共104頁(yè),2023年,2月20日,星期二當(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)A3~A0——輸入/輸出地址線。當(dāng)8237A處于從屬狀態(tài)時(shí),這是由CPU向8237A輸入的低4位地址碼,用來(lái)尋址8237A中的某個(gè)端口。當(dāng)8237A處于主控狀態(tài)時(shí),這是8237A向存儲(chǔ)器輸出的低4位地址碼。69第69頁(yè),共104頁(yè),2023年,2月20日,星期二(4)CS:選片信號(hào),輸入,低電平有效。當(dāng)8237A處于從屬狀態(tài)時(shí),由高位地址碼(A15~A2)譯碼得到對(duì)8237A的片選信號(hào)。當(dāng)8237A處于主控狀態(tài)時(shí),CS被自動(dòng)禁止,以免8237A正在執(zhí)行DMA傳送期間重新被選。(5)CLK:時(shí)鐘輸入,用來(lái)確定8237A的工作速率。(6)RESET:復(fù)位信號(hào),由外部輸入,高電平有效。RESET有效時(shí),清除所有寄存器的內(nèi)容,控制線浮空,禁止DMA操作,復(fù)位之后,必須重新初始化,8237A才能工作。70第70頁(yè),共104頁(yè),2023年,2月20日,星期二4.控制邏輯部件控制邏輯部件主要用來(lái)向CPU發(fā)出總線請(qǐng)求,得到CPU認(rèn)可進(jìn)入主控狀態(tài)后,由它發(fā)出各種控制信號(hào)。(1)HRQ(holdrequest)——保持請(qǐng)求信號(hào),向CPU輸出,高電平有效。當(dāng)任一通道收到外部設(shè)備的DMA請(qǐng)求時(shí),8237A立即向CPU發(fā)出HRQ,表示要求使用總線。(2)HLDA(holdacknowledge)——保持響應(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操作。71第71頁(yè),共104頁(yè),2023年,2月20日,星期二(3)READY:準(zhǔn)備就緒信號(hào),輸入,高電平有效。

8237A在主控狀態(tài)下進(jìn)行DMA的操作過(guò)程中,若存儲(chǔ)器或外部設(shè)備來(lái)不及完全讀/寫操作,要求延長(zhǎng)讀/寫操作周期時(shí),可使READY線無(wú)效,8237A將在DMA周期中增設(shè)等待周期,直到READY有效為止。(4)MEMR和MEMW:讀/寫存儲(chǔ)器控制信號(hào),三態(tài)輸出,低電平有效。這是8237A處于主控狀態(tài)時(shí),向存儲(chǔ)器輸出的讀/寫控制信號(hào)。當(dāng)MEMR有效時(shí),必然I/OW有效,完成從存儲(chǔ)器向外部設(shè)備的數(shù)據(jù)傳送。反之,MEMW有效時(shí),必然I/OR有效,完成讀外部設(shè)備寫存儲(chǔ)器的數(shù)據(jù)傳送。72第72頁(yè),共104頁(yè),2023年,2月20日,星期二(5)A7~A4——地址輸出線。

8237A處于主控狀態(tài)時(shí),在DMA周期中通過(guò)這4條線輸出的是16條存儲(chǔ)器地址的A7~A4位。(6)TC(terminalcount)——終點(diǎn)計(jì)數(shù)信號(hào),輸出,高電平有效。當(dāng)所選通道的終點(diǎn)計(jì)數(shù)寄存器中的計(jì)數(shù)值為0時(shí),TC輸出有效,表示當(dāng)前正在傳送的是最后一個(gè)數(shù)據(jù)字節(jié),可用來(lái)通知外設(shè)結(jié)束數(shù)據(jù)傳送操作,使DRQi信號(hào)無(wú)效。(7)MARK(modulo128MARK)——模128標(biāo)記,輸出,高電平有效。

MARK有效可用來(lái)通知被選的外部設(shè)備,當(dāng)前是上一次輸出MARK有效后的第128個(gè)DMA周期。73第73頁(yè),共104頁(yè),2023年,2月20日,星期二

MARK總是在距數(shù)據(jù)塊結(jié)束每隔128周期產(chǎn)生。至于第一個(gè)MARK距數(shù)據(jù)塊開始是多少周期,取決于數(shù)據(jù)塊的長(zhǎng)度。如果數(shù)據(jù)塊總字節(jié)數(shù)能被128整除,那么MARK可用來(lái)供外部設(shè)備記錄已傳送的字節(jié)數(shù)。(8)ADSTB——地址選通信號(hào),輸出,高電平有效。

ADSTB有效,表示8237A輸出的存儲(chǔ)器地址的高8位(A15~A8)從雙向數(shù)據(jù)總線(D7~D0)鎖存到8212鎖存器,用作8212STB的選通信號(hào)。(9)AEN——地址允許信號(hào),輸出,高電平有效。

AEN有效,表示在上述傳送地址過(guò)程中,它用作8212的選擇信號(hào)DS2,同時(shí)可用它去封鎖CPU使用低8位數(shù)據(jù)總線和控制總線。74第74頁(yè),共104頁(yè),2023年,2月20日,星期二5.工作方式寄存器及狀態(tài)寄存器工作方式寄存器是一個(gè)8位只可寫寄存器,由CPU對(duì)8237A初始化時(shí)寫入,用來(lái)定義8237A中各通道的工作方式。狀態(tài)寄存器是一個(gè)8位只可讀寄存器,用來(lái)描述當(dāng)前各通道所處的狀態(tài)。(1)工作方式寄存器:其各位的定義如圖6.27所示。75第75頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.2776第76頁(yè),共104頁(yè),2023年,2月20日,星期二低4位中任一位置“1”,表示相應(yīng)通道被啟動(dòng)投入操作。

RP(rotatingpriority)位是優(yōu)先權(quán)旋轉(zhuǎn)位。若RP=0,表示各通道的請(qǐng)求具有固定的優(yōu)先權(quán)級(jí)別,通道0具有最高優(yōu)先級(jí)(6級(jí)),通道3具有最低優(yōu)先級(jí)(3級(jí)),其他通道的優(yōu)先級(jí)類推。若RP=1,表示采用旋轉(zhuǎn)優(yōu)先權(quán)策略,總是使剛剛結(jié)束操作的通道具有最低優(yōu)先級(jí),把最高優(yōu)先級(jí)賦給原來(lái)比它低一級(jí)的中斷。顯然,采用旋轉(zhuǎn)優(yōu)先權(quán)方式,可防止優(yōu)先級(jí)別高的通道長(zhǎng)時(shí)間獨(dú)占DMA傳送數(shù)據(jù),而使連接在各個(gè)通道上的外設(shè)對(duì)于DMA資源具有基本上相同的使用概率。77第77頁(yè),共104頁(yè),2023年,2月20日,星期二

EW(extenedwrite)位是寫擴(kuò)展位。EW=1,表示將寫存儲(chǔ)器信號(hào)MEMW和寫I/O設(shè)備信號(hào)I/OW提前有效,收到該寫信號(hào)的存儲(chǔ)器或外設(shè)應(yīng)提前使READY信號(hào)有效,以免8237A在DMA周期內(nèi)插入不必要的SW等待狀態(tài)。

TCS(TCstop)位是終點(diǎn)計(jì)數(shù)停止位。TCS=1,即終點(diǎn)計(jì)數(shù)TC有效時(shí),該通道便結(jié)束DMA操作,如果要求該通道繼續(xù)傳送別的數(shù)據(jù)塊,必須重新啟動(dòng)。TCS=0,即TC有效時(shí),并不復(fù)位相應(yīng)通道,表示該通道傳送的數(shù)據(jù)還未結(jié)束,可繼續(xù)傳送下一數(shù)據(jù)塊,而不需要重新啟動(dòng)該通道,或者是由外部設(shè)備停止發(fā)出DMA請(qǐng)求來(lái)結(jié)束DMA操作。78第78頁(yè),共104頁(yè),2023年,2月20日,星期二

AL(autoload)位是自動(dòng)裝入位。當(dāng)AL=1時(shí),允許通道2連續(xù)傳送多個(gè)重復(fù)數(shù)據(jù)塊或者傳送相互鏈接的多個(gè)不同數(shù)據(jù)塊。這種情況下,需要使用兩個(gè)通道。系統(tǒng)規(guī)定使用通道2和通道3來(lái)完成。如果是傳送相互鏈接的數(shù)據(jù)塊,初始化時(shí)應(yīng)將第1個(gè)數(shù)據(jù)塊的參數(shù)(存儲(chǔ)器起始地址、終點(diǎn)計(jì)數(shù)值和DMA傳送方式)置入通道2的有關(guān)寄存器中,而將第2個(gè)數(shù)據(jù)塊的參數(shù)置入通道3中,并使通道2的TCS位置“0”,待通道2傳送完第1個(gè)數(shù)據(jù)塊時(shí),并不結(jié)束通道2的操作,而是在修改周期內(nèi),將通道3中存放的參數(shù)傳送給通道2,于是通道2可繼續(xù)傳送第2個(gè)數(shù)據(jù)塊。如果還有第3個(gè)數(shù)據(jù)塊需要繼續(xù)傳送,則應(yīng)將第3個(gè)數(shù)據(jù)塊的參數(shù)置入通道3暫存。這樣,通道2可連續(xù)傳送多個(gè)不同的數(shù)據(jù)塊。79第79頁(yè),共104頁(yè),2023年,2月20日,星期二如果需要通道2傳送的是多個(gè)重復(fù)的數(shù)據(jù)塊,則只要AL=1,將數(shù)據(jù)塊參數(shù)同時(shí)對(duì)通道2和通道3進(jìn)行初始化即可。于是通過(guò)通道2傳送的將是多個(gè)相同的數(shù)據(jù)塊。在上述操作過(guò)程中,通道3實(shí)際上是作為通道2的緩沖存儲(chǔ)器使用,而并不需要啟動(dòng)通道3投入操作。(2)狀態(tài)寄存器:其各位定義如圖6.28所示。80第80頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.2881第81頁(yè),共104頁(yè),2023年,2月20日,星期二

TC3~TC0是各通道的終點(diǎn)計(jì)數(shù)位,用來(lái)標(biāo)志相應(yīng)通道當(dāng)前是否達(dá)到終點(diǎn)計(jì)數(shù)狀態(tài)。當(dāng)某個(gè)通道進(jìn)入數(shù)據(jù)塊的最后一個(gè)DMA周期,即終點(diǎn)計(jì)數(shù)器的計(jì)數(shù)值為0時(shí),相應(yīng)的TCi狀態(tài)位被置“1”,并且一直保持到該通道被復(fù)位或CPU讀完?duì)顟B(tài)寄存器為止。顯然,TC3~TC0中任何一位置“1”時(shí),終止計(jì)數(shù)端TC將輸出有效,待這最后一個(gè)DMA周期結(jié)束。是否要將相應(yīng)通道復(fù)位,則取決于工作方式寄存器中終點(diǎn)計(jì)數(shù)停止位(TCS)是否置“1”。

UP是修改標(biāo)志位,它是專為通道2連續(xù)傳送多個(gè)數(shù)據(jù)塊而設(shè)置的。UP=1,表示當(dāng)前處于修改周期,即數(shù)據(jù)塊的最后一個(gè)DMA周期,當(dāng)自動(dòng)裝入位AL=1時(shí),表示在修改周期內(nèi)將通道3中暫存的參數(shù)82第82頁(yè),共104頁(yè),2023年,2月20日,星期二置入通道2中,于是通道2可以繼續(xù)傳送下一個(gè)數(shù)據(jù)塊。在通道2傳送下一數(shù)據(jù)塊的第一個(gè)DMA周期內(nèi),又可將新的參數(shù)置入通道3中。修改標(biāo)志只在修改周期內(nèi)有效。83第83頁(yè),共104頁(yè),2023年,2月20日,星期二6.6.28237A芯片的通道操作過(guò)程8237ADMA操作周期時(shí)序圖如圖6.29所示。圖6.2984第84頁(yè),共104頁(yè),2023年,2月20日,星期二8237A處于從屬狀態(tài)時(shí)保持為空閑狀態(tài)S1。當(dāng)任一通道檢測(cè)到一個(gè)DMA請(qǐng)求時(shí),8237A將在下一個(gè)S1狀態(tài)時(shí)向CPU發(fā)出總線請(qǐng)求信號(hào)HRQ,于是8237A進(jìn)入準(zhǔn)備狀態(tài)S0。CPU在當(dāng)前總線周期結(jié)束時(shí),向8237A回送總線認(rèn)可信號(hào)HLDA,將總線控制權(quán)交給8237A,8237A開始進(jìn)入主控狀態(tài)。DMA周期從S1狀態(tài)開始,至少包含4個(gè)狀態(tài)S1~S4,必要時(shí)可在S3和S4之間插入SW。在S1狀態(tài)期間,通過(guò)數(shù)據(jù)總線D7~D0將高8位地址線鎖存到8212鎖存器中,低8位地址直接從A7~A0輸出,形成訪問(wèn)存儲(chǔ)器的16位地址碼,到S3狀態(tài)期間發(fā)出讀存儲(chǔ)器(MEMR)或讀外設(shè)(I/OR)命令可將需要傳送的數(shù)據(jù)讀出,在隨后產(chǎn)生的寫外設(shè)(I/OW)或?qū)懘鎯?chǔ)器(MEMW)命令控制下可完成傳送一85第85頁(yè),共104頁(yè),2023年,2月20日,星期二個(gè)數(shù)據(jù)字節(jié)的功能,需要傳送多少個(gè)字節(jié),就需要執(zhí)行多少個(gè)這樣的DMA周期。待整個(gè)數(shù)據(jù)塊傳送結(jié)束,在最后一個(gè)DMA周期的S4狀態(tài)上升沿,8237A的總線請(qǐng)求HRQ將無(wú)效,CPU將HLDA置成無(wú)效,收回總線控制權(quán),8237A重新回到空閑狀態(tài)S1。

8237A在每一個(gè)DMA周期的S4狀態(tài)查詢DRQi如果同時(shí)有多個(gè)DRQi有效,8237A將為優(yōu)先級(jí)最高的通道服務(wù),而且允許高級(jí)的請(qǐng)求打斷低級(jí)的請(qǐng)求而被優(yōu)先服務(wù)。只要較低優(yōu)先級(jí)的通道能保持它的請(qǐng)求有效,待較高優(yōu)先級(jí)的通道傳送結(jié)束,控制將自動(dòng)轉(zhuǎn)到較低優(yōu)先級(jí)的通道去服務(wù)。8237A的整個(gè)操作流程可用圖6.30來(lái)描述。86第86頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.3087第87頁(yè),共104頁(yè),2023年,2月20日,星期二6.6.38237A控制器的編程及應(yīng)用8237A共包含4個(gè)通道,每個(gè)通道占用2個(gè)端口地址,再加上工作方式寄存器和狀態(tài)寄存器合用一個(gè)端口,因此整個(gè)8237A芯片共包含9個(gè)端口地址,可用最低4位地址碼(A3~A0)來(lái)對(duì)它們尋址。高位地址碼(A15~A4)經(jīng)譯碼后,可用來(lái)形成8237A的片選信號(hào),使CS有效,與I/OW,I/OR和地址碼A3配合可完成對(duì)有關(guān)寄存器的讀寫操作。某8086微機(jī)系統(tǒng)中,利用8237ADMA控制器的0通道為某臺(tái)外設(shè)與存儲(chǔ)器之間構(gòu)成直接數(shù)據(jù)傳送通道的系統(tǒng)配置結(jié)構(gòu)如圖6.31所示。88第88頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.3189第89頁(yè),共104頁(yè),2023年,2月20日,星期二如果要求從外設(shè)輸入1000H字節(jié)的數(shù)據(jù)到存儲(chǔ)器當(dāng)前數(shù)據(jù)段中,從0300H單元開始的一片連續(xù)地址存放,其初始化程序段如下所示。ST57:MOVDX,方式寄存器端口MOVAL,41HOUTDX,ALMOVDX,通道0地址寄存器端口MOVAX,0300HOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,通道0終點(diǎn)計(jì)數(shù)器端口MOVAX,1000HOUTDX,ALMOVAL,AHOUTDX,AL90第90頁(yè),共104頁(yè),2023年,2月20日,星期二待外設(shè)發(fā)出DMA請(qǐng)求,DRQ0=1,系統(tǒng)將在8237A控制下完成數(shù)據(jù)傳送功能。在此期間,CPU處于保持狀態(tài),可進(jìn)行不使用總線的內(nèi)部操作。如果利用8237A的終點(diǎn)計(jì)數(shù)信號(hào)TC向CPU發(fā)中斷請(qǐng)求,那么CPU響應(yīng)中斷后,可對(duì)這批數(shù)據(jù)進(jìn)行處理或使用。8237ADMA控制器具有很高的數(shù)據(jù)傳送速率,如果CLK采用5MHz主時(shí)鐘,每4個(gè)時(shí)鐘周期可傳送一個(gè)字節(jié),那么8237A的數(shù)據(jù)傳送速率可達(dá)到1.25M字節(jié)/秒。91第91頁(yè),共104頁(yè),2023年,2月20日,星期二8237的CH1實(shí)現(xiàn)DMA數(shù)據(jù)傳送

PC/XT機(jī)主系統(tǒng)板內(nèi)的8237DMA的通道l,實(shí)現(xiàn)DMA方式傳送數(shù)據(jù)。將存儲(chǔ)在存儲(chǔ)器緩沖區(qū)的數(shù)據(jù),傳送到I/O設(shè)備中。I/O設(shè)備是74LS374鎖存器,鎖存器的輸入接到系統(tǒng)板I/O通道的數(shù)據(jù)線上,觸發(fā)脈沖CLK是由DACK1和IOW通過(guò)或門74LS32綜合產(chǎn)生的。當(dāng)74LS374的CLK負(fù)跳變時(shí),將數(shù)據(jù)總線D7~D0上的數(shù)據(jù)鎖存入74LS374。74LS374的輸出通過(guò)反相器74LS04驅(qū)動(dòng)后,接到LED顯示器上。當(dāng)DREQ1為高電平時(shí),請(qǐng)求DMA服務(wù)。8237進(jìn)入DMA服務(wù)時(shí),發(fā)出DACK1低電平信號(hào)。在DMA讀周期,8237發(fā)出16位地址信息,頁(yè)面寄存器送出高4位地址,選通存儲(chǔ)器單元。8237又發(fā)出MEMR低電平信號(hào)。將被訪問(wèn)的存儲(chǔ)器單元的內(nèi)容,送上數(shù)據(jù)總線并鎖存入74LS374。當(dāng)為低電平時(shí),將鎖存在74LS374的數(shù)據(jù)送到LED顯示器上顯示。應(yīng)用的例子如圖6.32所示。92第92頁(yè),共104頁(yè),2023年,2月20日,星期二圖6.32:應(yīng)用例子圖示

溫馨提示

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