第六章+輸入輸出傳送方式與DMA.ppt_第1頁(yè)
第六章+輸入輸出傳送方式與DMA.ppt_第2頁(yè)
第六章+輸入輸出傳送方式與DMA.ppt_第3頁(yè)
第六章+輸入輸出傳送方式與DMA.ppt_第4頁(yè)
第六章+輸入輸出傳送方式與DMA.ppt_第5頁(yè)
已閱讀5頁(yè),還剩98頁(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,微型計(jì)算機(jī)原理與接口技術(shù),Principles of Microcomputers and Interface Techniques,內(nèi)蒙古大學(xué)理工學(xué)院自動(dòng)化系,2,第六章 輸入輸出方式和DMA,6.1 I/O接口概述 6.2 無(wú)條件傳送方式 6.3 查詢傳送方式 6.4 中斷傳送方式 6.5 DMA的傳送方式 6.6 可編程DMA控制器8237A,3,I/O端口的編址方式 輸入輸出的傳送方式: 無(wú)條件、查詢、中斷、DMA DMA的基本概念 DMA工作過(guò)程 DMA的三種傳輸方式 8237 DMA控制器,主要內(nèi)容,4,重點(diǎn)內(nèi)容,掌握I/O接口的基本概念 掌握I/O接口的地址譯碼 掌握幾種傳送

2、方式的特點(diǎn) 了解DMA控制器的工作原理,5,6.1 I/O接口概述,一、I/O接口與I/O設(shè)備,6,二、定義 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ì)、選用和連接。,7,三、I/O接口的主要功能 速度匹配(Buffer) 信號(hào)電平和驅(qū)動(dòng)能力(電平轉(zhuǎn)換器、驅(qū)動(dòng)器) 信號(hào)形式匹配(A/D、D/A) 信息格式(字節(jié)流、塊、

3、數(shù)據(jù)包、幀) 時(shí)序匹配(定時(shí)關(guān)系) 總線隔離(三態(tài)門),8,6.1.1 接口電路的內(nèi)部結(jié)構(gòu),1、 接口硬件,數(shù)據(jù)線,控制線,狀態(tài)線,DB,CB,AB,數(shù)據(jù)輸入寄存器 (or 三態(tài)門),數(shù)據(jù)輸出寄存器 (鎖存器),狀態(tài)寄存器 (or 三態(tài)門),命令寄存器,譯碼 電路,控制 邏輯,接外設(shè),接主機(jī),9,接口功能,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è)端口地址,10,CPU側(cè)

4、引腳信號(hào):,外設(shè)側(cè)引腳信號(hào):,內(nèi)部控制邏輯:,根據(jù)控制寄存器、狀態(tài)寄存器、總線控制信號(hào)及外設(shè)狀態(tài)信號(hào)控制I/O接口的工作。,11,常見接口插槽,PS2鼠標(biāo),PS2鍵盤,千兆網(wǎng),10/100M網(wǎng)卡,USB,并行口,MIDI/游戲接口,顯示器接口,1394,1394a,麥克風(fēng)/音箱/線入接口,串行口,12,2、 接口軟件(設(shè)備驅(qū)動(dòng)程序),13,3、接口電路芯片的分類,接口電路通常采用中大規(guī)模、超大規(guī)模集成電路接口芯片: 通用接口芯片 支持通用的數(shù)據(jù)I/O和控制的接口芯片 如:并行接口芯片、串行接口芯片等。 面向外設(shè)的專用接口芯片 針對(duì)某種外設(shè)設(shè)計(jì)接口 如:顯示接口電路、磁盤驅(qū)動(dòng)接口電路等。 面向微

5、機(jī)系統(tǒng)的專用接口芯片 與CPU和系統(tǒng)配套使用,以增強(qiáng)其總體功能 如:8259A、8237、8253、8251、8255等。,14,4、可編程接口,許多接口電路具有多種功能和工作方式,可以通過(guò)編程的方式設(shè)定。 接口電路需要與系統(tǒng)物理連接,及編寫接口軟件。 接口軟件: 1、初始化程序段:設(shè)定芯片工作方式等 2、數(shù)據(jù)交換程序段:管理、控制、驅(qū)動(dòng)外設(shè),負(fù)責(zé)外設(shè)和系統(tǒng)間信息交換。,15,6.1.3 I/O端口的編址,接口電路占用的I/O端口的編址可分為兩種方式 I/O端口單獨(dú)編址 I/O地址空間獨(dú)立于存儲(chǔ)地址空間 如INTER系列80X86 I/O端口與存儲(chǔ)器統(tǒng)一編址 它們共享一個(gè)地址空間 如MCS-5

6、1系列單片機(jī),16,一、I/O端口單獨(dú)編址,優(yōu)點(diǎn): I/O端口的地址空間獨(dú)立 控制和地址譯碼電路相對(duì)簡(jiǎn)單 專門的I/O指令使程序清晰易讀 缺點(diǎn): I/O指令沒有存儲(chǔ)器指令豐富,內(nèi)存 空間,I/O 空間,FFFFF,0,FFFF,注:80 x86采用I/O端口獨(dú)立編址,:,:,: :,17,二、I/O端口與存儲(chǔ)器統(tǒng)一編址,優(yōu)點(diǎn): 不需要設(shè)計(jì)專門的I/O指令 I/O數(shù)據(jù)存取與存儲(chǔ)器數(shù)據(jù)存取同樣 缺點(diǎn): I/O端口占用存儲(chǔ)器地址空間 程序易讀性差(不易分清訪內(nèi)存、訪問(wèn)外設(shè)),內(nèi)存 部分,I/O 部分,存儲(chǔ)器空間,00000,FFFFF,18,6.1.4 8088/8086的I/O端口,I/O指令(直

7、接尋址、尋址范圍:00H FFH ) IN AL,PORT ;端口(Port),即I/O端口地址 OUT PORT,AL IN AX,PORT ; OUT PORT,AX ; I/O指令(間接尋址、尋址范圍:0000HFFFFH )IN AL,DX; OUT DX,AL; IN AX,DX ;DX寄存器的值就是 端口號(hào)(64K個(gè)端口) OUT DX,AX ;,功能演示,功能演示,19,IN AL ,PORT ;OUT PORT AL MOV DX , PORT ;MOV DX ,PORT IN AX ,DX ;OUT DX AX,輸出一個(gè)字:(DX)、(DX)+1 (AX) 或(PORT)、(

8、PORT)+1 (AX) 輸入一個(gè)字: (DX)+1 、 (DX) (AX) 或 (PORT)、(PORT)+1 (AX),數(shù)據(jù)交換方式,20,6.1.5 I/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,IBM PC/AT主

9、機(jī)板的I/O譯碼電路,接口芯片內(nèi)部譯碼,A0A4:,22,IBM PC/XT主機(jī)板的I/O譯碼電路,Y0 Y1 Y2 Y3 Y4 Y5,Y6 Y7,A5 A6 A7,A8 A9 AEN,IOW,A B C,G2B G2A G1,74LS138,DMA CS(8237) INTR CS(8259) T/C CS(8253) PPI CS(8255),WRTDMAPG (寫DMA頁(yè)面寄存器),WRTNMIREG (寫NMI屏蔽寄存器),23,邏輯門電路進(jìn)行I/O地址譯碼,A9 A8 A7 A6 A5 A2 A4 A3 AEN A1 A0,74LS03,3E7H,24,6.1.6 數(shù)據(jù)傳送方式,程序

10、控制下的數(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,I/O的傳送方式,主機(jī)與外設(shè)之間數(shù)據(jù)傳送的控制方式有以下四種: 無(wú)條件傳送 查詢式傳送 中斷方式傳送 直接存儲(chǔ)器存取(DMA, Direct Memory Access),26,6.2 無(wú)條件傳送方式,適用于外設(shè)總是處于準(zhǔn)備好狀態(tài) 以下外設(shè)可采用無(wú)條件傳送方式: 開關(guān)

11、 發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等) 繼電器 步進(jìn)電機(jī) 優(yōu)點(diǎn):軟件及硬件接口簡(jiǎn)單 缺點(diǎn):僅適用于簡(jiǎn)單外設(shè),適應(yīng)范圍較窄,27,無(wú)條件傳送示意圖,28,例:無(wú)條件輸入,MOV DX, 288H INAL, DX,0288H,29,例:無(wú)條件輸入,MOV DX, 288H INAL, DX,74LS244,+5V,10K x 8,G1 G2,CS,RD,: : :,D7,D0,K0,K7,30,例:無(wú)條件輸出,MOV DX, 288H MOV AL, BX OUT DX, AL,0288H,31,例:無(wú)條件輸出,MOV DX, 288H MOV AL, BX OUT DX, AL,+5V

12、,74LS373,300 x 8,LE OE,CS,WR,: : :,D7,D0,32,簡(jiǎn)單的輸入接口舉例,接口電路圖如下:,83FCH 83FFH,譯碼器,33,鎖存器:由D觸發(fā)器構(gòu)成 通常一個(gè)器件包含8個(gè)D觸發(fā)器 常用芯片:(教材圖6.5、圖6.6) 74LS273 74LS374(具有三態(tài)輸出的鎖存器,內(nèi)部結(jié)構(gòu)見圖6.8) 應(yīng)用例子:發(fā)光二極管接口,簡(jiǎn)單的輸出接口舉例,譯 碼 器,=1,=1,. . .,. . .,. . .,+5V,R,D0 D7,CP,Q0,Q7,. . .,D0D7,A0A15,IOW#,74LS273,R,34,I/O接口綜合應(yīng)用例子,根據(jù)開關(guān)狀態(tài)在7段數(shù)碼管上

13、顯示數(shù)字或符號(hào) 共陽(yáng)極7段數(shù)碼管結(jié)構(gòu)見教材圖6.10 用74LS273作為輸出接口,把數(shù)據(jù)送到7段數(shù)碼管 74LS273的地址假設(shè)為F0H 用74LS244作為輸入口,讀入開關(guān)K0K3的狀態(tài) 74LS244的地址假設(shè)為F1H 當(dāng)開關(guān)的狀態(tài)分別為00001111時(shí),在7段數(shù)碼管上對(duì)應(yīng)顯示0F (7段碼表見下頁(yè)),35,36,O1 I1 O2 I2 O3 I3 O4 I4 #E1,K0K3,+5V,G G2A G2B C B A,1,74LS244,D0 Q0 | Q1 D7 Q2 Q3 Q4 CP Q5 Q6 Q7,a b c d e f g DP,7406,8個(gè) 反相器,74LS273,Rx8

14、,1,74LS138,D0D7,IOW#,IOR#,Y0,Y1,F0H = 0000 0000 1111 0000 F1H = 0000 0000 1111 0001,&,1,A7A4,A15A8,A3,A2,A1,A0,D0,D1,D2,D3,譯碼電路,37,相應(yīng)程序段如下: Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB7FH,67H,77H,7CH,39H,5EH,79H,71H LEABX, Seg7;取7段碼表基地址 MOV AH,0 : MOVDX, 0F1H;開關(guān)接口的地址為F1H K:INAL, DX;讀入開關(guān)狀態(tài) ANDAL, 0FH;保留低

15、4位 MOVSI, AX;作為7段碼表的表內(nèi)位移量 MOVAL, BX+SI;取7段碼 MOVDX, 0F0H;7段數(shù)碼管接口的地址為F0H OUTDX, AL JMPK,38,6.3 查詢傳送方式,適用于外設(shè)并不總是準(zhǔn)備好,而且對(duì)傳送速率、傳送效率要求不高的場(chǎng)合。 CPU在與外設(shè)交換數(shù)據(jù)前必須詢問(wèn)外設(shè)狀態(tài):“準(zhǔn)備好沒有?” 對(duì)外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息 對(duì)接口的要求:需要提供狀態(tài)端口 優(yōu)點(diǎn):軟件比較簡(jiǎn)單 缺點(diǎn):CPU效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差, 速度較慢,39,查詢方式的流程圖,超時(shí)?,READY?,與外設(shè)進(jìn) 行數(shù)據(jù)交換,超時(shí)錯(cuò),讀入并測(cè)試外設(shè)狀態(tài),Y,N,Y,N,傳送完?,防止死循環(huán),

16、復(fù)位計(jì)時(shí)器,N,Y,注:多個(gè)外設(shè)時(shí),查詢流程見教材圖6.15,PK,40,例:用查詢方式進(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,D5,D7-D0,A9 | A3,1,&,A15 | A10,1,IOW,D7-D0,3F8H,外設(shè),D7 D6 D5 D4 D3 D2 D1 D0,BUSY,CP,Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0,狀態(tài)端口,G G2A G2B C B A,A2 A1 A0,74LS138,Y0,1,I

17、OR,Y3,OE,74LS374,CP,Q,Q,D,S,STROBE,3FBH,1、硬件電路,42,2、編程,MOV DX,3F8H TAB:IN AL,DX TEST AL 20H JNZ TAB MOV DX,3FBH LEA BX,BUFFER MOV AL,OFFSET PTRBX OUT AL,DX,43,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)

18、場(chǎng)等。,44,中斷傳送方式,斷點(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,中斷傳送流程,46,中斷系統(tǒng)其他功能:,支持多中斷源和多種中斷源。,支持中斷屏蔽處理。,支持中斷嵌套處理。,支持中斷優(yōu)先級(jí)修改。,支持中斷結(jié)束方式選擇。,中斷處理的隱操作:程序狀態(tài)及程序斷點(diǎn)地址的進(jìn)棧及出棧。,47,6.4.1 中斷傳送與接口,中斷傳送是一種效率更高的程序傳送方式 進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的 中斷請(qǐng)求是外設(shè)隨機(jī)向

19、CPU提出的 CPU對(duì)請(qǐng)求的檢測(cè)是有規(guī)律的:一般是在每條指令的最后一個(gè)時(shí)鐘周期采樣中斷請(qǐng)求輸入引腳 本書主要論述中斷在輸入和輸出方面的應(yīng)用 中斷還有著非常廣泛的應(yīng)用,48,6.4.2 中斷傳送與接口,D0D7,+5V,8D 鎖存器,8位 三態(tài) 緩沖器,R,Q,譯碼,288H,中斷向量號(hào),D0D7,INTR,D,輸入 設(shè)備,中斷允許觸發(fā)器,A0A15,中斷請(qǐng)求觸發(fā)器,49,6.5 DMA傳送方式,無(wú)條件傳送、查詢傳送、中斷傳送這幾種方式都是通過(guò)CPU執(zhí)行程序?qū)崿F(xiàn)的,占用了CPU資源,傳送速度慢(實(shí)際上是軟件傳送方式,最大速度約為幾十KB/秒)。 為了實(shí)現(xiàn)高速外設(shè)與內(nèi)存之間的數(shù)據(jù)交換,可采用直接存

20、儲(chǔ)器存取方式(DMA)。,DMA傳送方式通常用來(lái)高速傳送大批量的數(shù)據(jù)塊。如:,硬盤和軟盤I/O;,多處理機(jī)和多程序數(shù)據(jù)塊傳送; 在圖像處理中,對(duì)CRT屏幕送數(shù)據(jù);,快速數(shù)據(jù)采集; DRAM的刷新操作。,快速通信通道I/O;,50,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,幾個(gè)基本概念,總線控制權(quán)、mater、sl

21、ave DMAC編程周期:slave DMAC控制總線進(jìn)行數(shù)據(jù)傳輸周期:master DMA的數(shù)據(jù)傳輸形式: 基本的:MEMI/O 擴(kuò)充的:MEMMEM I/O I/O,52,6.5.1 DMAC控制數(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),并重新控制總線,53,DMAC的工作過(guò)程 1)當(dāng)外設(shè)準(zhǔn)備好,可以進(jìn)行DMA傳送時(shí),外設(shè)向DMA控制器發(fā)出“DMA傳送請(qǐng)求”

22、信號(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,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)

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

24、IFO緩沖),56,數(shù)據(jù)塊傳送,57,每次傳送一個(gè)字節(jié),58,按需傳送,59,60,6.6 可編程DMA控制器8237A,8237A是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,(3) DMA校驗(yàn):通道不傳送數(shù)據(jù),僅完成校驗(yàn)。任一通道進(jìn)入DMA校驗(yàn)方式時(shí),不產(chǎn)生對(duì)存儲(chǔ)器和I/O設(shè)備的讀/寫控制信號(hào),但是仍保

25、持對(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,6.6.1 8237A芯片內(nèi)部結(jié)構(gòu),8237A可編程DMA控制器由數(shù)據(jù)總線緩沖存儲(chǔ)器、讀寫邏輯部件、工作方式寄存器、狀態(tài)寄存器、優(yōu)

26、先選擇邏輯及四個(gè)DMA通道組成,內(nèi)部結(jié)構(gòu)如圖6.25所示。8237A芯片有40條引腳,采用雙列直插式封裝,其引腳信號(hào)功能如圖6.26所示。,63,圖6.25,64,圖6.26,65,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位(D13D0)用來(lái)存放要求傳送的字節(jié)數(shù)n-1,n為本次DMA操作所需要執(zhí)行的DMA周期數(shù),因此,一個(gè)數(shù)據(jù)塊的最大容量為214=16KB。 在任何DMA操作周期內(nèi),這2位不允許修改,但是可在各個(gè)數(shù)據(jù)

27、塊傳送之間進(jìn)行修改。這就是說(shuō),一旦被定義,任何一個(gè)通道的DMA寫、DMA讀或DMA校驗(yàn)操作就一直進(jìn)行到整個(gè)數(shù)據(jù)塊操作完成為止。,66,每個(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通過(guò)這個(gè)緩沖存儲(chǔ)器對(duì)8237A進(jìn)行讀/寫操作。當(dāng)8237A處于主控狀態(tài)時(shí),在DMA周期內(nèi),8237

28、A將所選通道的地址寄存器的高8位地址碼(A15A8)經(jīng)過(guò)這個(gè)緩沖存儲(chǔ)器鎖存到8212鎖存器中,然后該緩沖存儲(chǔ)器將處于浮空狀態(tài)。,67,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

29、/OW輸入/輸出寫控制信號(hào),雙向、三態(tài),低電平有效。,68,當(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位地址碼,用來(lái)尋址8237A中的某個(gè)端口。 當(dāng)8237A處于主控狀態(tài)時(shí),這是8237A向存儲(chǔ)器輸出的低4位地址碼。,69,(4) CS:選片信號(hào),輸入,低電平有效。 當(dāng)8237A處于從屬狀態(tài)時(shí),由高位地址碼(A15

30、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,4. 控制邏輯部件 控制邏輯部件主要用來(lái)向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)求

31、時(shí),8237A立即向CPU發(fā)出HRQ,表示要求使用總線。 (2) HLDA(hold 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操作。,71,(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:讀

32、/寫存儲(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,(5) A7A4地址輸出線。 8237A處于主控狀態(tài)時(shí),在DMA周期中通過(guò)這條線輸出的是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é),可用來(lái)通知外設(shè)結(jié)束數(shù)據(jù)傳送操作,使DRQi信號(hào)無(wú)效

33、。 (7) MARK(modulo 128 MARK)模128標(biāo)記,輸出,高電平有效。 MARK有效可用來(lái)通知被選的外部設(shè)備,當(dāng)前是上一次輸出MARK有效后的第128個(gè)DMA周期。,73,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位(A15A8)從雙向數(shù)據(jù)總線(D7D0)鎖存到8212鎖存器,用作8212STB的選通信號(hào)。 (9) AEN地址允

34、許信號(hào),輸出,高電平有效。 AEN有效,表示在上述傳送地址過(guò)程中,它用作8212的選擇信號(hào)DS2,同時(shí)可用它去封鎖CPU使用低8位數(shù)據(jù)總線和控制總線。,74,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,圖6.27,76,低4位中任一位置“1”,表示相應(yīng)通道被啟動(dòng)投入操作。 RP(rotating priority)位是優(yōu)先權(quán)旋轉(zhuǎn)位。若RP=0,表示各通道的請(qǐng)求具有固定

35、的優(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,EW(extened write)位是寫擴(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(T

36、C stop)位是終點(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,AL(auto load)位是自動(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ù)值和DM

37、A傳送方式)置入通道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,如果需要通道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投入操作。

38、 (2) 狀態(tài)寄存器: 其各位定義如圖6.28所示。,80,圖6.28,81,TC3TC0是各通道的終點(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)寄存器為止。顯然,TC3TC0中任何一位置“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è)D

39、MA周期,當(dāng)自動(dòng)裝入位AL=1時(shí),表示在修改周期內(nèi)將通道3中暫存的參數(shù),82,置入通道2中,于是通道2可以繼續(xù)傳送下一個(gè)數(shù)據(jù)塊。在通道2傳送下一數(shù)據(jù)塊的第一個(gè)DMA周期內(nèi),又可將新的參數(shù)置入通道3中。修改標(biāo)志只在修改周期內(nèi)有效。,83,6.6.2 8237A芯片的通道操作過(guò)程,8237ADMA操作周期時(shí)序圖如圖6.29所示。,圖6.29,84,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)交給

40、8237A,8237A開始進(jìn)入主控狀態(tài)。DMA周期從S1狀態(tài)開始,至少包含4個(gè)狀態(tài)S1S4,必要時(shí)可在S3和S4之間插入SW。在S1狀態(tài)期間,通過(guò)數(shù)據(jù)總線D7D0將高位地址線鎖存到8212鎖存器中,低8位地址直接從A7A0輸出,形成訪問(wèn)存儲(chǔ)器的16位地址碼,到S3狀態(tài)期間發(fā)出讀存儲(chǔ)器(MEMR)或讀外設(shè)(I/OR)命令可將需要傳送的數(shù)據(jù)讀出,在隨后產(chǎn)生的寫外設(shè)(I/OW)或?qū)懘鎯?chǔ)器(MEMW)命令控制下可完成傳送一,85,個(gè)數(shù)據(jù)字節(jié)的功能,需要傳送多少個(gè)字節(jié),就需要執(zhí)行多少個(gè)這樣的DMA周期。待整個(gè)數(shù)據(jù)塊傳送結(jié)束,在最后一個(gè)DMA周期的S4狀態(tài)上升沿,8237A的總線請(qǐng)求HRQ將無(wú)效,CPU將

41、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,圖6.30,87,6.6.3 8237A控制器的編程及應(yīng)用,8237A共包含4個(gè)通道,每個(gè)通道占用2個(gè)端口地址,再加上工作方式寄存器和狀態(tài)寄存器合用一個(gè)端口,因此整個(gè)8237A芯片共包含9個(gè)端口地址,可用最低4位

42、地址碼(A3A0)來(lái)對(duì)它們尋址。 高位地址碼(A15A4)經(jīng)譯碼后,可用來(lái)形成8237A的片選信號(hào),使CS有效,與I/OW,I/OR和地址碼A3配合可完成對(duì)有關(guān)寄存器的讀寫操作。 某8086微機(jī)系統(tǒng)中,利用8237A DMA控制器的0通道為某臺(tái)外設(shè)與存儲(chǔ)器之間構(gòu)成直接數(shù)據(jù)傳送通道的系統(tǒng)配置結(jié)構(gòu)如圖6.31所示。,88,圖6.31,89,如果要求從外設(shè)輸入1000H字節(jié)的數(shù)據(jù)到存儲(chǔ)器當(dāng)前數(shù)據(jù)段中,從0300H單元開始的一片連續(xù)地址存放,其初始化程序段如下所示。 ST57:MOV DX,方式寄存器端口 MOV AL,41H OUT DX,AL MOV DX,通道0地址寄存器端口 MOV AX,03

43、00H OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,通道0終點(diǎn)計(jì)數(shù)器端口 MOV AX,1000H OUT DX,AL MOV AL,AH OUT DX,AL,90,待外設(shè)發(fā)出DMA請(qǐng)求,DRQ01,系統(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)行處理或使用。 8237A DMA控制器具有很高的數(shù)據(jù)傳送速率,如果CLK采用5MHz主時(shí)鐘,每4個(gè)時(shí)鐘周期可傳送一個(gè)字節(jié),那么8237A的數(shù)據(jù)傳送速率可達(dá)到1.25M字節(jié)/秒。

44、,91,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ù)總線D7D0上的數(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,圖6.32 :應(yīng)用例子圖示,93,DMA傳送的初始化程序: S

溫馨提示

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