六DMA控制器和定時(shí)計(jì)數(shù)器_第1頁
六DMA控制器和定時(shí)計(jì)數(shù)器_第2頁
六DMA控制器和定時(shí)計(jì)數(shù)器_第3頁
六DMA控制器和定時(shí)計(jì)數(shù)器_第4頁
六DMA控制器和定時(shí)計(jì)數(shù)器_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE22第一講:第六章DMA控制器和定時(shí)/計(jì)數(shù)器回顧:微型計(jì)算機(jī)與外部設(shè)備之間的數(shù)據(jù)傳送控制方式本講重點(diǎn):DMA的基本概念,DMA控制器芯片8237的性能概述,內(nèi)、外部結(jié)構(gòu),工作周期,工作方式,通道的優(yōu)先級(jí)及數(shù)據(jù)傳輸速率。講授內(nèi)容:6.1DMA控制器Intel8237一、DMA概述我們已經(jīng)介紹了微機(jī)系統(tǒng)中各種常用的數(shù)據(jù)輸入輸出方法,有程控法(包括無條件及條件傳送方式)和中斷法,這些方法適用于CPU與慢速及中速外設(shè)之間的數(shù)據(jù)交換。但當(dāng)高速外設(shè)要與系統(tǒng)內(nèi)存或者要在系統(tǒng)內(nèi)存的不同區(qū)域之間,進(jìn)行大量數(shù)據(jù)的快速傳送時(shí),就在一定程度上限制了數(shù)據(jù)傳送的速率。以Intel8088CPU為例,CPU從內(nèi)存(或外設(shè))讀數(shù)據(jù)到累加器,然后再寫到外設(shè)端口(或內(nèi)存)中,若包括修改內(nèi)存地址,判斷數(shù)據(jù)塊是否傳送完,Intel8088CPU(時(shí)鐘接近5MHz)傳送一個(gè)字節(jié)約需要幾十微秒的時(shí)間,由此可大致估計(jì)出用程控及中斷的方式來進(jìn)行數(shù)據(jù)傳送,其數(shù)據(jù)傳送速率大約為每秒幾十KB字節(jié).為了提高數(shù)據(jù)傳送的速率,人們提出了直接存儲(chǔ)器存取(DMA)的數(shù)據(jù)傳送控制方式,即在一定時(shí)間段內(nèi),由DMA控制器取代CPU,獲得總線控制權(quán),來實(shí)現(xiàn)內(nèi)存與外設(shè)或者內(nèi)存的不同區(qū)域之間大量數(shù)據(jù)的快速傳送。圖6-1DMAC的工作電路典型的DMAC的工作電路如圖6-1。DMA數(shù)據(jù)傳送的工作過程大致如下圖6-1DMAC的工作電路外設(shè)向DMAC發(fā)出DMA傳送請(qǐng)求。DMAC通過連接到CPU的HOLD信號(hào)向CPU提出DMA請(qǐng)求.CPU在完成當(dāng)前總線操作后會(huì)立即對(duì)DMA請(qǐng)求做出響應(yīng)。CPU的響應(yīng)包括兩個(gè)方面:一方面,CPU將控制總線、數(shù)據(jù)總線和地址總線浮空,即放棄對(duì)這些總線的控制權(quán);另一方面,CPU將有效的HLDA信號(hào)加到DMAC上,用此來通知DMAC,CPU已經(jīng)放棄了總線的控制權(quán).待CPU將總線浮空,即放棄了總線控制權(quán)后,由DMAC接管系統(tǒng)總線的控制權(quán),并向外設(shè)送出DMA的應(yīng)答信號(hào)。由DMAC送出地址信號(hào)和控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存或內(nèi)存不同區(qū)域之間大量數(shù)據(jù)的快速傳送。DMAC將規(guī)定的數(shù)據(jù)字節(jié)傳送完之后,通過向CPU發(fā)HOLD信號(hào),撤消對(duì)CPU的DMA請(qǐng)求。CPU收到此信號(hào),一方面使HLDA無效,另一方面又重新開始控制總線,實(shí)現(xiàn)正常取指令、分析指令、執(zhí)行指令的操作.需要注意的是,在內(nèi)存與外設(shè)之間進(jìn)行DMA傳送期間,DMAC控制器只是輸出地址及控制信號(hào),而數(shù)據(jù)傳送是直接在內(nèi)存和外設(shè)端口之間進(jìn)行的,并不經(jīng)過DMAC;對(duì)于內(nèi)存不同區(qū)域之間的DMA傳送,則應(yīng)先用一個(gè)DMA存儲(chǔ)器讀周期將數(shù)據(jù)從內(nèi)存的源區(qū)域讀出,存入到DMAC的內(nèi)部數(shù)據(jù)暫存器中,再利用一個(gè)DMA存儲(chǔ)器寫周期將該數(shù)據(jù)寫到內(nèi)存的目的區(qū)域中去.二、DMA控制器芯片Intel8237的性能概述Intel8237是8086/8088微機(jī)系統(tǒng)中常用的DMAC芯片,有如下性能:含有4個(gè)相互獨(dú)立的通道,每個(gè)通道有獨(dú)立的地址寄存器和字節(jié)數(shù)寄存器,而控制寄存器、狀態(tài)寄存器為四個(gè)通道所共用。2.每個(gè)通道的DMA請(qǐng)求可以分別被允許/禁止。3.每個(gè)通道的DMA請(qǐng)求有不同的優(yōu)先權(quán),可以可以通過程序設(shè)置為固定的或者是旋轉(zhuǎn)的方式。4.通道中地址寄圖6—圖6—38237的內(nèi)部結(jié)構(gòu)組成8237有4種工作方式,分別為:?jiǎn)巫止?jié)傳送、數(shù)據(jù)塊傳送、請(qǐng)求傳送、級(jí)連方式。允許用輸入信號(hào)來結(jié)束DMA傳送或重新初始化。7。8237可以級(jí)連以增加通道數(shù).三、8237的內(nèi)部組成與結(jié)構(gòu)8237的方框圖如圖6—3所示,主要包含以下幾個(gè)部分:1.四個(gè)獨(dú)立的DMA通道每個(gè)通道都有一個(gè)16位的基地址寄存器,一個(gè)16位的基字節(jié)數(shù)計(jì)數(shù)器,一個(gè)16位的當(dāng)前地址寄存器和一個(gè)16位的當(dāng)前字節(jié)數(shù)計(jì)數(shù)器及一個(gè)8位的方式寄存器,方式寄存器接收并保存來自于CPU的方式控制字,使本通道能夠工作于不同的方式下;2.定時(shí)及控制邏輯電路對(duì)在DMA請(qǐng)求服務(wù)之前,CPU編程對(duì)給定的命令字和方式控制字進(jìn)行譯碼,以確定DMA的工作方式,并控制產(chǎn)生所需要的定時(shí)信號(hào);3。優(yōu)先級(jí)編碼邏輯對(duì)通道進(jìn)行優(yōu)先級(jí)編碼,確定在同時(shí)接收到不同通道的DMA請(qǐng)求時(shí),能夠確定相應(yīng)的先后次序。通道的優(yōu)先級(jí)可以通過編程確定為是固定的或者是旋轉(zhuǎn)的。4.共用寄存器除了每個(gè)通道中的寄存器之外,整個(gè)芯片還有一些共用的的寄存器:包括1個(gè)16位的地址暫存寄存器,1個(gè)16位的字節(jié)數(shù)暫存寄存器,1個(gè)8位的狀態(tài)寄存器,1個(gè)8位的命令寄存器,1個(gè)8位的暫存寄存器,1個(gè)4位的屏蔽寄存器和1個(gè)4位的請(qǐng)求寄存器等,我們將對(duì)這些寄存器的功能與作用,作較為詳細(xì)的介紹。8237內(nèi)部寄存器的類型和數(shù)量如表6—1所示,其中,凡數(shù)量為4個(gè)的寄存器,則每個(gè)通道一個(gè),凡數(shù)量只有一個(gè)的,則為各通道所公用。表6-18237的內(nèi)部寄存器寄存器名長(zhǎng)度(Bit)數(shù)量寄存器名長(zhǎng)度(Bit)數(shù)量基地址寄存器基字節(jié)數(shù)寄存器當(dāng)前地址寄存器當(dāng)前字節(jié)數(shù)寄存器地址暫存寄存器字節(jié)數(shù)暫存寄存器161616161616444411狀態(tài)寄存器命令寄存器暫存寄存器方式寄存器屏蔽寄存器請(qǐng)求寄存器8886441114115.8237的數(shù)據(jù)引線,地址引線都有三態(tài)緩沖器,因而可以接也可以釋放總線。四、8237的工作周期在設(shè)計(jì)8237時(shí),規(guī)定它具有兩種主要的工作周期(或工作狀態(tài)),即空閑周期和有效周期,每一個(gè)周期又是由若干時(shí)鐘周期所組成的。1.空閑周期(ladecycle)當(dāng)8237的任一通道都無DMA請(qǐng)求時(shí),則其處于空閑周期或稱為SI狀態(tài),空閑周期由一系列的時(shí)鐘周期組成,在空閑周期中的每一個(gè)時(shí)鐘周期,8237只做兩項(xiàng)工作:采樣各通道的DREQ請(qǐng)求輸入線,只要無DMA請(qǐng)求,則其始終停留在SI狀態(tài);由CPU對(duì)8237進(jìn)行讀/寫操作,即采樣片選信號(hào),只要信號(hào)變?yōu)橛行У牡碗娖?則表明CPU要對(duì)8237進(jìn)行讀/寫操作,當(dāng)8237采樣為低電平而DREQ也為低,即外部設(shè)備沒有向8237發(fā)DMA請(qǐng)求的情況下,則進(jìn)入CPU對(duì)8237的編程操作狀態(tài),CPU可以向8237的內(nèi)部寄存器進(jìn)行寫操作,以決定或者改變8237的工作方式,或者對(duì)8237內(nèi)部的相關(guān)寄存器進(jìn)行讀操作,以了解8237的工作狀態(tài)。CPU對(duì)8237進(jìn)行讀/寫操作時(shí),由地址信號(hào)A3~A0來選擇8237內(nèi)部的不同寄存器(組),由讀/寫控制信號(hào)及來控制讀/寫操作.由于8237內(nèi)部的地址寄存器和字節(jié)數(shù)計(jì)數(shù)器都是16位的,而數(shù)據(jù)線是8位的,所以在8237的內(nèi)部,有一個(gè)高/低字節(jié)觸發(fā)器,稱為字節(jié)指針寄存器,由它來控制8位信息是寫入16位寄存器的高8位還是低8位,該觸發(fā)器的狀態(tài)交替變化,當(dāng)其狀態(tài)為0時(shí),進(jìn)行低字節(jié)的讀/寫操作;而當(dāng)其狀態(tài)為1時(shí),則進(jìn)行低字節(jié)的讀/寫操作。2。有效周期(ActiveCycle)當(dāng)處于空閑狀態(tài)的8237的某一通道接收到外設(shè)提出的DMA請(qǐng)求DREQ時(shí),它立即向CPU輸出HRQ有效信號(hào),在未收到CPU回答時(shí),8237仍處于編程狀態(tài),又稱初始狀態(tài),記為S0狀態(tài)。經(jīng)過若干個(gè)S0狀態(tài)后,當(dāng)8237收到來自于CPU的HLDA應(yīng)答信號(hào)后,則進(jìn)入工作周期,或稱為有效周期,或者說8237由S0狀態(tài)進(jìn)入了S1狀態(tài)。S0狀態(tài)是DMA服務(wù)的第一個(gè)狀態(tài),在這個(gè)狀態(tài)下,8237已接收了外設(shè)的請(qǐng)求,向CPU發(fā)出了DMA請(qǐng)求信號(hào)HRQ,但尚未收到CPU對(duì)DMA請(qǐng)求的應(yīng)答信號(hào)HLDA;而S1狀態(tài)則是實(shí)際的DMA傳送工作狀態(tài),當(dāng)8237接收到CPU發(fā)來的HLDA應(yīng)答信號(hào)時(shí),就可以由S0狀態(tài)轉(zhuǎn)入S1狀態(tài),開始DMA傳送。在內(nèi)存與外設(shè)之間進(jìn)行DMA傳送時(shí),通常一個(gè)S1周期由4個(gè)時(shí)鐘周期組成,即S1、S2、S3、S4,但當(dāng)外設(shè)速度較慢時(shí),可以插入SW等待周期;而在內(nèi)存的不同區(qū)域之間進(jìn)行DMA傳送時(shí),由于需要依次完成從存儲(chǔ)器讀和向存儲(chǔ)器寫的操作,所以完成每一次傳送需要8個(gè)時(shí)鐘周期,在前四個(gè)周期S11、S12、S13、S14完成從存儲(chǔ)器源區(qū)域的讀操作,后四個(gè)時(shí)鐘周期S21、S22、S23、S24完成向存儲(chǔ)器目的區(qū)域的寫操作。五、8237的外部結(jié)構(gòu)8237是具有40個(gè)引腳的雙列直插式集成電路芯片,其引腳如圖6-4所示:CLK:時(shí)鐘信號(hào)輸入引腳,對(duì)于標(biāo)準(zhǔn)的8237,其輸入時(shí)鐘頻率為3MHz,對(duì)于8237-2,其輸入時(shí)鐘頻率可達(dá)5MHz.2.:芯片選擇信號(hào),輸入引腳。3。RESET:復(fù)位信號(hào),輸入引腳,用來清除8237中的命令、狀態(tài)請(qǐng)求和臨時(shí)寄存器,且使字節(jié)指針觸發(fā)器復(fù)位并置位屏蔽觸發(fā)器的所有位(即使所有通道工作在屏蔽狀態(tài)),在復(fù)位之后,8237工作于空閑周期SI。4.READY:外設(shè)向8237提供的高電平有效的“準(zhǔn)備好”信號(hào)輸入引腳,若8237在S3狀態(tài)以后的時(shí)鐘下降沿檢測(cè)到READY為低電平,則說明外設(shè)還未準(zhǔn)備好下一次DMA操作,需要插入SW狀態(tài),直到READY引腳出現(xiàn)高電平為止。5.DREQ0~DREQ3:DMA請(qǐng)求信號(hào)輸入引腳,對(duì)應(yīng)于四個(gè)獨(dú)立的通道,DREQ的有效電平可以通過編程來加以確定,優(yōu)先級(jí)可以固定,也可以旋轉(zhuǎn)。6.DACK0~DACK3:對(duì)相應(yīng)通道DREQ請(qǐng)求輸入信號(hào)的應(yīng)答信號(hào)輸出引腳。7.HRQ:8237向CPU提出DMA請(qǐng)求的輸出信號(hào)引腳,高電平有效。8.HLDA:CPU對(duì)HRQ請(qǐng)求信號(hào)的應(yīng)答信號(hào)輸入引腳,高電平有效。9.DB0~DB7:8條雙向三態(tài)數(shù)據(jù)總線引腳.在CPU控制系統(tǒng)總線時(shí),可以通過DB0~DB7對(duì)8237編程或讀出8237的內(nèi)部狀態(tài)寄存器的內(nèi)容;在DMA操作期間,由DB0~DB7輸出高8位地址信號(hào)A8~A15,并利用ADSTB信號(hào)鎖存該地址信號(hào)。在進(jìn)行內(nèi)存不同區(qū)域之間的DMA傳送時(shí),除了送出A8~A15地址信號(hào)外,還分時(shí)輸入從存儲(chǔ)器源區(qū)域讀出的數(shù)據(jù),送入8237的暫存寄存器中,等到存儲(chǔ)器寫周期時(shí),再將這些數(shù)據(jù)通過這8個(gè)引腳,由8237的暫存寄存器送到系統(tǒng)數(shù)據(jù)總線上,然后寫入到規(guī)定的存儲(chǔ)單元中去。10。A3~A0:4條雙向三態(tài)的低位地址信號(hào)引腳。在空閑周期,接收來自于CPU的四位地址信號(hào),用以尋址8237內(nèi)部的不同的寄存器(組);在DMA傳送時(shí),輸出要訪問的存儲(chǔ)單元或者I/O端口地址的低4位。11。A7~A4:4條三態(tài)地址信號(hào)輸出引腳。在DMA傳送時(shí),輸出要訪問的存儲(chǔ)單元或者I/O端口地址的中4位。12.:低電平有效的雙向三態(tài)信號(hào)引腳.在空閑周期,它是一條輸入控制信號(hào),CPU利用這個(gè)信號(hào)讀?。?37內(nèi)部狀態(tài)寄存器的內(nèi)容;而在DMA傳送時(shí),它是讀端口控制信號(hào)輸出引腳,與相配合,使數(shù)據(jù)由外設(shè)傳送到內(nèi)存。13.:低電平有效的雙向三態(tài)信號(hào)引腳,其功能與相對(duì)應(yīng).14.:低電平有效的雙向三態(tài)信號(hào)引腳,用于DMA傳送,控制存儲(chǔ)器的讀操作。15.:低電平有效的雙向三態(tài)信號(hào)引腳,用于DMA傳送,控制存儲(chǔ)器的寫操作。16.AEN:高電平有效的輸出信號(hào)引腳,由它把鎖存在外部鎖存器中的高8位地址送入系統(tǒng)的地址總線,同時(shí)禁止其它系統(tǒng)驅(qū)動(dòng)器使用系統(tǒng)總線。17。ADSTB:高電平有效的輸出信號(hào)引腳,此信號(hào)把DB7~DB0上輸出的高8位地址信號(hào)鎖存到外部鎖存器中。18。:雙向,當(dāng)字節(jié)數(shù)計(jì)數(shù)器減為0時(shí),在上輸出一個(gè)有效的低電平脈沖,表明DMA傳送已經(jīng)結(jié)束;也可接收外部的信號(hào),強(qiáng)行結(jié)束8237的DMA操作或者重新進(jìn)行8237的初始化.當(dāng)不使用端時(shí),應(yīng)通過數(shù)千Ω的電阻接到高電平上,以免由它輸入干擾信號(hào).19。+5V、GND及N/C引腳六、8237的工作方式8237的各個(gè)通道在進(jìn)行DMA傳送時(shí),有四種工作方式1。單字節(jié)傳送方式每次DMA操作僅傳送一個(gè)字節(jié)的數(shù)據(jù),完成一個(gè)字節(jié)的數(shù)據(jù)傳送后,8237將當(dāng)前地址寄存器的內(nèi)容加1(或減1),并將當(dāng)前字節(jié)數(shù)寄存器的內(nèi)容減1,每傳送完這一個(gè)字節(jié),DMAC就將總線控制權(quán)交回CPU。2。數(shù)據(jù)塊傳送在這種傳送方式下,DMAC一旦獲得總線控制權(quán),便開始連續(xù)傳送數(shù)據(jù)。每傳送一個(gè)字節(jié),自動(dòng)修改當(dāng)前地址及當(dāng)前字節(jié)數(shù)寄存器的內(nèi)容,直到將所有規(guī)定的字節(jié)全部傳送完,或收到外部信號(hào),DMAC才結(jié)束傳送,將總線控制權(quán)交給CPU,一次所傳送數(shù)據(jù)塊的最大長(zhǎng)度可達(dá)64KB,數(shù)據(jù)塊傳送結(jié)束后可自動(dòng)初始化。顯然,在這種方式下,CPU可能會(huì)很長(zhǎng)時(shí)間不能獲得總線的控制權(quán)。這在有些場(chǎng)合是不利的,例如,PC機(jī)就不能用這種方式,因?yàn)樵趬K傳送時(shí),8088不能占用總線,無法實(shí)現(xiàn)對(duì)DRAM的刷新操作。3.請(qǐng)求傳送只要DREQ有效,DMA傳送就一直進(jìn)行,直到連續(xù)傳送到字節(jié)計(jì)數(shù)器為0或外部輸入使變低或DREQ變?yōu)闊o效時(shí)為止.4。級(jí)聯(lián)方式利用這種方式可以把多個(gè)8237連接在一起,以便擴(kuò)充系統(tǒng)的DMA通道數(shù)。下一級(jí)的HRQ接到上一級(jí)的某一通道的DREQ上,而上一級(jí)的響應(yīng)信號(hào)DACK圖6-58237級(jí)聯(lián)方式工作框圖圖6-58237級(jí)聯(lián)方式工作框圖在級(jí)聯(lián)方式下,當(dāng)?shù)诙?jí)8237的請(qǐng)求得到響應(yīng)時(shí),第一級(jí)8237僅應(yīng)輸出HRQ信號(hào)而不能輸出地址及控制信號(hào),因?yàn)?第二級(jí)的8237才是真正的主控制器,而第一級(jí)的8237僅應(yīng)起到傳遞DREQ請(qǐng)求信號(hào)及DACK應(yīng)答信號(hào)的作用。七、8237的DMA傳輸類型DMA所支持的DMA傳送,可以在I/O接口到存儲(chǔ)器;存儲(chǔ)器到I/O接口及內(nèi)存的不同區(qū)域之間進(jìn)行,它們具有不同的特點(diǎn),所需要的控制信號(hào)也不相同1。I/O接口到存儲(chǔ)器的傳送。當(dāng)進(jìn)行由I/O接口到存儲(chǔ)器的數(shù)據(jù)傳送時(shí),來自I/O接口的數(shù)據(jù)利用DMAC送出的控制信號(hào),將數(shù)據(jù)輸送到系統(tǒng)數(shù)據(jù)總線D0~D7上,同時(shí),DMAC送出存儲(chǔ)器單元地址及控制信號(hào),將存在于D0~D7上的數(shù)據(jù)寫入所選中的存儲(chǔ)單元中。這樣就完成了由I/O接口到存儲(chǔ)器一個(gè)字節(jié)的傳送.同時(shí)DMAC修改內(nèi)部地址及字節(jié)數(shù)寄存器的內(nèi)容.存儲(chǔ)器到I/O接口與前一種情況類似,在進(jìn)行這種傳送時(shí),DMAC送出存儲(chǔ)器地址及控制信號(hào),將選中的存儲(chǔ)單元的內(nèi)容讀出放在數(shù)據(jù)總線D0~D7上,接著,DMAC送出控制信號(hào),將數(shù)據(jù)寫到規(guī)定的(預(yù)選中)端口中去,而后MDAC自動(dòng)修改內(nèi)部的地址及字節(jié)數(shù)寄存器的內(nèi)容。存儲(chǔ)器到存儲(chǔ)器8237具有存儲(chǔ)器到存儲(chǔ)器的傳送功能,利用8237編程命令寄存器,可以選擇通道0和通道1兩個(gè)通道實(shí)現(xiàn)由存儲(chǔ)器到存儲(chǔ)器的傳送.在進(jìn)行傳送時(shí)。采用數(shù)據(jù)塊傳送方式,由通道0送出內(nèi)存源區(qū)域的地址和控制信號(hào),將選中內(nèi)存單元的的數(shù)據(jù)讀到8237的暫存寄存器中,通道0修改地址及字節(jié)數(shù)寄存器的值;接著由通道1輸出內(nèi)存目的區(qū)域的地址及控制信號(hào),將存放在暫存寄存器中的數(shù)據(jù),通過系統(tǒng)數(shù)據(jù)總線,寫入到內(nèi)存的目的區(qū)域中去,爾后通道1修改地址和字節(jié)數(shù)寄存器的內(nèi)容,通道1的字節(jié)計(jì)數(shù)器減到零或外部輸入時(shí)可結(jié)束一次DMA傳輸過程.八、8237各個(gè)通道的優(yōu)先級(jí)及傳輸速率1。優(yōu)先級(jí)8237有兩種優(yōu)先級(jí)方案可供編程選擇:(1).固定優(yōu)先級(jí)規(guī)定各通道的優(yōu)先級(jí)是固定的,即通道0的優(yōu)先級(jí)最高,依次降低,通道3的優(yōu)先級(jí)最低。(2)。循環(huán)優(yōu)先級(jí)規(guī)定剛被服務(wù)通道的優(yōu)先級(jí)最低,依次循環(huán)。這就可以保證4個(gè)通道的優(yōu)先級(jí)是動(dòng)態(tài)變化的,若3個(gè)通道已經(jīng)被服務(wù)則剩下的通道一定是優(yōu)先級(jí)最高的。2.傳送速率在一般情況下,8237進(jìn)行一次DMA傳送需要4個(gè)時(shí)鐘周期(不包括插入的等待周期SW)。例如,PC機(jī)的時(shí)鐘周期約210ns,則一次DMA傳送需要210ns4+2l0ns=1050ns。多加一個(gè)210ns是考慮到人為插入一個(gè)SW的緣故。另外,8237為了提高傳送速率,可以在壓縮定時(shí)狀態(tài)下工作。在壓縮定時(shí)狀態(tài)下,每個(gè)DMA總線周期僅用2個(gè)時(shí)鐘周期就可以實(shí)現(xiàn),從而可以大幅度地提高數(shù)據(jù)的傳送速率。習(xí)題與思考:什么叫DMA傳送方式?試說明DMA方式傳送數(shù)據(jù)的主要步驟。2。試比較DMA傳輸、查詢式傳輸及中斷方式傳輸之間的優(yōu)缺點(diǎn)和適用場(chǎng)合?3.DMA控制器芯片Intel8237有哪幾種工作方式?各有什么特點(diǎn)?4.Intel8237支持哪幾種DMA傳輸類型?第二講:6.1DMA控制器Intel8237回顧:DMA的基本概念,DMA控制器芯片8237的性能概述,內(nèi)、外部結(jié)構(gòu),工作周期,工作方式,通道的優(yōu)先級(jí)及數(shù)據(jù)傳輸速率。本講重點(diǎn):DMA控制器芯片8237的內(nèi)部寄存器,端口地址,編程與應(yīng)用。講授內(nèi)容:九、8237的內(nèi)部寄存器組8237有4個(gè)獨(dú)立的DMA通道,有許多內(nèi)部寄存器。前面表6—1已經(jīng)給出了這些寄存器的名稱、長(zhǎng)度和數(shù)量,我們來詳細(xì)介紹各個(gè)寄存器的功能和作用.1.基地址寄存器用以存放16位地址,只可寫入而不能讀出。在編程時(shí),它與當(dāng)前地址寄存器被同時(shí)寫入某一起始地址,可用作內(nèi)存區(qū)域的首地址或末地址。在8237進(jìn)行DMA數(shù)據(jù)傳送的工作過程中,其內(nèi)容不發(fā)生變化,只是在自動(dòng)預(yù)置時(shí),其內(nèi)容可被重新寫到當(dāng)前地址寄存器中去.2.基字節(jié)數(shù)寄存器用以存放相應(yīng)通道需要傳送數(shù)據(jù)的字節(jié)數(shù),只可寫入而不能讀出.在編程時(shí)它與當(dāng)前字節(jié)數(shù)寄存器被同時(shí)寫入要傳送數(shù)據(jù)的字節(jié)數(shù)。在8237進(jìn)行DMA數(shù)據(jù)傳送的工作過程中,其內(nèi)容保持不變,只是在自動(dòng)預(yù)置時(shí),其內(nèi)容可以被重新寫到當(dāng)前字節(jié)數(shù)寄存器中去。3。當(dāng)前地址寄存器存放DMA傳送期間的地址值。每次傳送后自動(dòng)加l或減l。CPU可以對(duì)其進(jìn)行讀寫操作。在選擇自動(dòng)預(yù)置時(shí),每當(dāng)字節(jié)計(jì)數(shù)值減為0或外部有效后,就會(huì)自動(dòng)將基地址寄存器的內(nèi)容寫入當(dāng)前地址寄存器中,恢復(fù)其初始值。4。當(dāng)前字節(jié)數(shù)寄存器存放當(dāng)前的字節(jié)數(shù)。每傳送一個(gè)字節(jié),該寄存器的內(nèi)容減1。當(dāng)計(jì)數(shù)值減為0或接收到來自外部的信號(hào)時(shí),會(huì)自動(dòng)將基字節(jié)數(shù)寄存器的內(nèi)容寫入該寄存器,恢復(fù)其初始計(jì)數(shù)值,即為自動(dòng)預(yù)置。5.地址暫存寄存器和字節(jié)數(shù)暫存寄存器這兩個(gè)16位的寄存器和CPU不直接發(fā)生關(guān)系,我們也不必要對(duì)其進(jìn)行讀/寫操作,因而對(duì)如何使用8237沒有影響.6.方式寄存器每個(gè)通道有一個(gè)8位的方式寄存器,但是它們占用同一個(gè)端口地址,用來存放方式字,依靠方式控制字本身的特征位來區(qū)分寫入不同的通道,用來規(guī)定通道的工作方式,各位的作用如下:DD7D6D5D4D1D3D2D000通道000請(qǐng)求傳輸方式01通道101單字節(jié)傳輸方式通道選擇10通道210塊傳輸方式方式選擇11通道311級(jí)聯(lián)傳輸方式00校驗(yàn)傳輸傳輸類型選擇01寫傳輸10讀傳輸11無意義自動(dòng)預(yù)置功能選擇,0—禁止;1-允許。地址增/減1選擇,0—增1;1—減1。圖6—68237的方式寄存器自動(dòng)預(yù)置就是當(dāng)某一通道按要求將數(shù)據(jù)傳送完后,又能自動(dòng)預(yù)置初始地址和傳送的字節(jié)數(shù),而后重復(fù)進(jìn)行前面已進(jìn)行過的過程.校驗(yàn)傳送就是實(shí)際并不進(jìn)行傳送,只產(chǎn)生地址并響應(yīng)信號(hào),不產(chǎn)生讀寫控制信號(hào),用以校驗(yàn)8237的功能是否正常.7.命令寄存器8237的命令寄存器存放編程的命令字,命令字各位的功能如圖6-7所示,DD7D6D5D4D1D3D2D00DACK低電平有效0禁止存儲(chǔ)器到存儲(chǔ)器傳輸1DACK高電平有效1允許存儲(chǔ)器到存儲(chǔ)器傳輸0DREQ高電平有效0禁止通道0地址保持1DREQ低電平有效1允許通道0地址保持。D0=0時(shí)無意義0不擴(kuò)展寫入0啟動(dòng)8237工作1擴(kuò)展寫入1停止8237的工作0固定優(yōu)先權(quán)0正常時(shí)序1旋轉(zhuǎn)優(yōu)先權(quán)1壓縮時(shí)序圖6—78237的命令寄存器其中:D0位用以規(guī)定是否允許采用存儲(chǔ)器到存儲(chǔ)器的傳送方式.若允許這樣做,則利用通道0和通道1來實(shí)現(xiàn)。D1位用以規(guī)定通道0的地址是否保持不變。如前所述,在存儲(chǔ)器到存儲(chǔ)器傳送中,源地址由通道0提供,讀出數(shù)據(jù)到暫存寄存器,而后,由通道l送出目的地址,將數(shù)據(jù)寫入目的區(qū)域;若命令字中D1=0,則在整個(gè)數(shù)據(jù)塊傳送中(塊長(zhǎng)由通道1決定)保持內(nèi)存源區(qū)域地址不變,因此,就會(huì)把同一個(gè)數(shù)據(jù)寫入到整個(gè)目的存儲(chǔ)器區(qū)域中。D2位是允許或禁止8237芯片工作的控制位。D3位用于選擇總線周期中寫信號(hào)的定時(shí)。例如,PC機(jī)中動(dòng)態(tài)存儲(chǔ)器寫是由寫信號(hào)的上升沿啟動(dòng)的。若在DMA周期中寫信號(hào)來得太早,可能造成錯(cuò)誤,所以PC機(jī)選擇D3=0。命令字的其他位容易理解,不再說明。D5位用于選擇是否擴(kuò)展寫信號(hào).在D3=0(正常時(shí)序)時(shí),如果外設(shè)速度較慢,有些外設(shè)是用8237A送出的和信號(hào)的下降沿來產(chǎn)生的READY信號(hào)的。為提高傳送速度,能夠使READY信號(hào)早些到來,須將和信號(hào)加寬,以使它們提前到來。因此,可以通過令D5=1使和信號(hào)擴(kuò)展2個(gè)時(shí)鐘周期提前到來。8.請(qǐng)求寄存器用于在軟件控制下產(chǎn)生一個(gè)DMA請(qǐng)求,就如同外部DREQ請(qǐng)求一樣。圖6-8所示,為請(qǐng)求字的格式,D0D1的不同編碼用來表示向不同通道發(fā)出DMA請(qǐng)求.在軟件編程時(shí),這些請(qǐng)求是不可屏蔽的,利用命令字即可實(shí)現(xiàn)使8237按照命令字的D0D1所指的通道,完成D2所規(guī)定的操作,這種軟件請(qǐng)求只用于通道工作在數(shù)據(jù)塊傳送方式之下。DD7D6D5D4D1D3D2D000通道0無用01通道1通道選擇10通道211通道30-復(fù)位請(qǐng)求位;1-置位請(qǐng)求位。圖6—88237請(qǐng)求寄存器9.屏蔽寄存器8237的屏蔽字有兩種形式:①單個(gè)通道屏蔽字。這種屏蔽字的格式如圖6-9所示。利用這個(gè)屏蔽字,每次只能選擇一個(gè)通道。其中D0D1的編碼指示所選的通道,D2=l表示禁止該通道接收DREQ請(qǐng)求,當(dāng)D2=0時(shí)允許DREQ請(qǐng)求.②四通道屏蔽字??梢岳眠@個(gè)屏蔽字同時(shí)對(duì)8237的4個(gè)通道的屏蔽字進(jìn)行操作,故又稱為主屏蔽字.該屏蔽字的格式如圖6—10所示。它與單通道屏蔽字占用不同的I/O接口地址,以此加以區(qū)分.DD7D6D5D4D1D3D2D000通道0無用01通道1通道選擇10通道211通道30—清除屏蔽位;1—置屏蔽位。圖6-98237的單通道屏蔽寄存器DD7D6D5D4D1D3D2D00清通道0屏蔽位無用1置通道0屏蔽位0清通道1屏蔽位1置通道1屏蔽位0清通道2屏蔽位1置通道2屏蔽位0清通道3屏蔽位1置通道3屏蔽位圖6—108237四通道屏蔽寄存器DD7D6D5D4D1D3D2D0D7=1通道3請(qǐng)求D0=1通道0已終止計(jì)數(shù)D6=1通道2請(qǐng)求D1=1通道1已終止計(jì)數(shù)D5=1通道1請(qǐng)求D2=1通道2已終止計(jì)數(shù)D4=1通道0請(qǐng)求D3=1通道3已終止計(jì)數(shù)圖6—118237的狀態(tài)寄存器10。狀態(tài)寄存器狀態(tài)寄存器存放各通道的狀態(tài),CPU讀出其內(nèi)容后,可得知8237的工作狀況。主要有:哪個(gè)通道計(jì)數(shù)已達(dá)到計(jì)數(shù)終點(diǎn)-—對(duì)應(yīng)位為1;哪個(gè)通道的DMA請(qǐng)求尚未處理-—對(duì)應(yīng)位為1。狀態(tài)寄存器的格式如圖6-11所示。11.暫存寄存器用于存儲(chǔ)器到存儲(chǔ)器傳送過程中對(duì)數(shù)據(jù)的暫時(shí)存放。12.字節(jié)指針觸發(fā)器這是一個(gè)特殊的觸發(fā)器,用于對(duì)前述各16位寄存器的尋址.由于前述各16位寄存器的讀或?qū)懕仨毞謨纱芜M(jìn)行,先低字節(jié)后高字節(jié)。為此,要利用字節(jié)指針觸發(fā)器,當(dāng)此觸發(fā)器狀態(tài)為0時(shí),進(jìn)行低字節(jié)操作。一旦低字節(jié)讀/寫操作完成后,字節(jié)指針觸發(fā)器會(huì)自動(dòng)置l,再操作一次又會(huì)清零。利用這種機(jī)制,就可以進(jìn)行雙字節(jié)讀寫操作,這樣16位寄存器可以僅占用一個(gè)外設(shè)端口地址,高、低字節(jié)共用。十、8237的編程及應(yīng)用1。8237的尋址及連接82374個(gè)通道中的寄存器及其它各種寄存器的尋址編碼如表6—2和表6-3所示。從表6—2中可以看到,各通道的寄存器通過和地址線A3~A0規(guī)定不同的地址,高低字節(jié)再由字節(jié)指針觸發(fā)器來決定.其中有的寄存器是可讀可寫的,而有的寄存器是只寫的。從表6-3可以看出,利用和A3~A0規(guī)定寄存器的地址,再利用或控制對(duì)其進(jìn)行讀或?qū)懖僮?。需要注意的?方式寄存器每通道一個(gè),但僅分配一個(gè)端口地址,靠方式控制字的D1和D0位來區(qū)分不同通道。2。8237在系統(tǒng)中的典型連接我們注意到8237只能輸出A0~A1516位地址信號(hào),這對(duì)于一般8位CPU構(gòu)成的系統(tǒng)來說是比較方便的,因?yàn)榇蠖鄶?shù)8位機(jī)的尋址范圍就是64KB。而在8086/88系統(tǒng)中,系統(tǒng)的尋址范圍是1MB,地址線有20條,即A0~A19。為了能夠在8086/88系統(tǒng)中使用8237來實(shí)現(xiàn)DMA,需要用硬件提供一組4位的頁寄存器.通道0、1、2、3各有一個(gè)4位的頁寄存器.在進(jìn)行DMA傳送之前,這些頁寄存器可利用I/O地址來裝入和讀出。當(dāng)進(jìn)行DMA傳送時(shí),DMAC將A0~A15放在系統(tǒng)總線上,同時(shí)頁寄存器把A16~A19也放在系統(tǒng)總線上,形成A0~A19這20位地址信號(hào)實(shí)現(xiàn)DMA傳送。其地址產(chǎn)生如圖6-12所示。圖6-13是8237在PC機(jī)中的連接簡(jiǎn)圖.利用74LS138譯碼器產(chǎn)生8237的,8237的接口地址可定為000H~00FH(注:在譯碼時(shí)XA4未用)。8237利用頁寄存器74LS670、三態(tài)鎖存器74LS373和三態(tài)門741S244形成系統(tǒng)總線的地址信號(hào)A0~A19。8237的、、、接到74LS245上,表6-28237各通道寄存器的尋址通道寄存器操作A3A2A1A0字節(jié)指針觸發(fā)器D0~D70基和當(dāng)前地址寫01000000A0~A71A8~A15當(dāng)前地址讀00100000A0~A71A8~A15基和當(dāng)前字節(jié)數(shù)寫01000010W0~W71W8~W15當(dāng)前字節(jié)數(shù)讀00100010W0~W71W8~W151基和當(dāng)前地址寫01000100A0~A71A8~A15當(dāng)前地址讀00101000A0~A71A8~A15基和當(dāng)前字節(jié)數(shù)寫01000110W0~W71W8~W15當(dāng)前字節(jié)數(shù)讀00100110W0~W71W8~W150基和當(dāng)前地址寫01001000A0~A71A8~A15當(dāng)前地址讀00100100A0~A71A8~A15基和當(dāng)前字節(jié)數(shù)寫01001010W0~W71W8~W15當(dāng)前字節(jié)數(shù)讀00101010W0~W71W8~W150基和當(dāng)前地址寫01001100A0~A71A8~A15當(dāng)前地址讀00101100A0~A71A8~A15基和當(dāng)前字節(jié)數(shù)寫01001110W0~W71W8~W15當(dāng)前字節(jié)數(shù)讀00101110W0~W71W8~W15當(dāng)芯片8237空閑時(shí),CPU可對(duì)其編程,加控制信號(hào)到8237。而在DMA工作周期,8237的控制信號(hào)又會(huì)形成系統(tǒng)總線的控制信號(hào)。同樣,數(shù)據(jù)線XD0~XD7也是通過雙向三態(tài)門74LS245與系統(tǒng)數(shù)據(jù)總線相連接。從前面的敘述中我們已經(jīng)看到,當(dāng)8237不工作時(shí),即處于空閑狀態(tài)時(shí),它是以接口的形式出現(xiàn)的。此時(shí),CPU經(jīng)系統(tǒng)總線對(duì)它初始化,讀出它的狀態(tài)等并對(duì)它進(jìn)行控制.這時(shí),8237并不對(duì)系統(tǒng)總線進(jìn)行控制。當(dāng)8237進(jìn)行DMA傳送時(shí),系統(tǒng)總線是由8237來控制的.這時(shí),8237應(yīng)送出各種系統(tǒng)總線所需要的信號(hào)。上述情況會(huì)大大增加8237連接上的復(fù)雜程度。最重要的問題是,不管在8237的空閑周期還是在其工作周期,連接上一定要保證各總線信號(hào)不會(huì)發(fā)生競(jìng)爭(zhēng).表6-3A3A2A1A0功能0100001讀狀態(tài)寄存器0100010寫狀態(tài)寄存器0100101非法0100110寫請(qǐng)求寄存器0101001非法0101010寫單通道屏蔽寄存器0101101非法0101110寫方式寄存器0110001非法0110010字節(jié)指針觸發(fā)器清00110101讀暫存寄存器0110110總清0111001非法0111010清屏蔽寄存器0111101非法0111110寫4通道屏蔽寄存器選擇頁寄存器選擇頁寄存器DACK3選擇頁寄存器DACK2選擇頁寄存器DACK1選擇頁寄存器A19~A16DACK0A19~A16A15~A08237DMAC圖6—12利用頁寄存器產(chǎn)生存儲(chǔ)器地址3.8237的初始化在對(duì)8237初始化之前,通常必須對(duì)8237進(jìn)行復(fù)位操作,利用系統(tǒng)總線上的RESET信號(hào)或用表6-3所示的軟件命令對(duì)A3A2AlA0為1101的地址進(jìn)行寫操作,均可使8237復(fù)位.復(fù)位后,8237內(nèi)部的屏蔽寄存器被置位而其它所有寄存器被圖6-1圖6-13PC機(jī)中8237的連接初始化流程如圖6—14所示.在圖6-14中只畫出8237一個(gè)通道的初始化過程。對(duì)于其他通道可順序進(jìn)行下去.下面我們抽出PC機(jī)中BIOS對(duì)8237初始化部分加以說明:為了對(duì)DMAC8237初始化,首先進(jìn)行總清。總清時(shí)只地址低字節(jié)總清地址低字節(jié)總清地址高字節(jié)字?jǐn)?shù)低字節(jié)字?jǐn)?shù)高字節(jié)方式字命令字屏蔽字其他通道參數(shù)圖6-168237的初始化流程對(duì)DMAC(8237)的4個(gè)通道的基地址寄存器與當(dāng)前地址寄存器、基字節(jié)數(shù)寄存器及當(dāng)前字節(jié)數(shù)寄存器先寫入FFFFH,再讀出比較,看讀寫操作是否正確。若正確,再寫入0000H,同樣讀出校驗(yàn),若仍正確則認(rèn)為DMAC工作正常,就開始對(duì)其初始化。若比較時(shí)發(fā)現(xiàn)有錯(cuò),則執(zhí)行停機(jī)指令。由于每個(gè)通道的上述4個(gè)寄存器占用兩個(gè)地址(見表6-2),故將循環(huán)計(jì)數(shù)器CX的內(nèi)容置為8.程序?qū)MAC(8237)的通道0初始化.在PC機(jī)中,通道0用于產(chǎn)生對(duì)動(dòng)態(tài)存儲(chǔ)器的刷新控制。利用可編程定時(shí)器8253每隔15。0857μs向DMAC提出1次請(qǐng)求.DMAC響應(yīng)后向CPU提出DMA請(qǐng)求。獲得總線控制權(quán)后,使CPU進(jìn)入總線放棄狀態(tài).在此DMA期間,DMAC送出刷新行地址,并利用DACK0控制產(chǎn)生各刷新控制信號(hào),對(duì)DRAM一行進(jìn)行刷新。一行刷新結(jié)束,HRQ變?yōu)闊o效,退出DMA.此處給出通道0初始化程序如下:?OUTDMA+0DH,AL?;總清8237?MOVDS,BX?MOVES,BX;初始化DS和ES?MOVAL,0FFH?OUTDMA+1,AL?OUTDMA+1,AL;通道0的傳送字節(jié)數(shù)為64K字節(jié),先寫低位,后寫高位?MOVDL,0BH;使DX=000BH(方式字地址)?MOVAL,58H?OUTDX,AL;寫方式字,單字節(jié)傳送方式,每次傳送行地址?MOVAL,0;爾后地址自動(dòng)加1,允許自動(dòng)預(yù)置?OUTDMA+8,AL;寫入命令字 OUTDMA+10,AL;寫入屏蔽字(單通道屏蔽字)另外,值得注意的是,在初始化通道0時(shí),未初始化地址。因?yàn)榈刂芳拇嫫鲀H用于送出DRAM的行地址,總清后它們初始值為0,而后根據(jù)方式字地址遞增,實(shí)現(xiàn)每次刷新一行。再就是PC機(jī)中DMA方式不是通過CPU(8088)的HOLD實(shí)現(xiàn)的,而是利用等待方式來實(shí)現(xiàn)的。這時(shí)CPU處于等待操作狀態(tài),把系統(tǒng)總線交給DMAC來控制。為了進(jìn)一步理解DMAC的工作,我們?cè)僖裕?37從存儲(chǔ)器把數(shù)據(jù)傳送到接口為例,說明其初始化及工作過程。圖6-15DMAC8237傳送數(shù)據(jù)到接口的電路框圖DMAC8237的硬件連接可參見圖6—13.接口地址及連接簡(jiǎn)圖如圖6-15所示。圖中接口請(qǐng)求傳送數(shù)據(jù)的信號(hào)經(jīng)觸發(fā)器74LS74的Q端形成,由三態(tài)門輸出作為DMA請(qǐng)求信號(hào).當(dāng)DMAC響應(yīng)接口請(qǐng)求時(shí),送出存儲(chǔ)器地址和信號(hào),使選中存儲(chǔ)單元的數(shù)據(jù)出現(xiàn)在系統(tǒng)數(shù)據(jù)總線D0~D7上。圖6-15DMAC8237傳送數(shù)據(jù)到接口的電路框圖同時(shí),DMAC送出控制信號(hào),將存儲(chǔ)單元的數(shù)據(jù)鎖存在三態(tài)鎖存器74LS374中.在開始傳送前,應(yīng)當(dāng)送出接口有效信號(hào)。當(dāng)然,該信號(hào)在系統(tǒng)工作中也可以一直有效。在接口請(qǐng)求DMA傳送時(shí),由圖6—15的邏輯電路產(chǎn)生控制信號(hào),使CPU暫停執(zhí)行指令,同時(shí)將總線形成電路的輸出置高阻。DMA初始化程序如下:INITADM:OUTDMA+13,AL ?;總清??MOVAL,40H??OUTDMA+2,AL???;送地址低字節(jié)到通道1 MOVAL,74H??OUTDMA+2,AL?;送地址高字節(jié)到通道1,7440H為通道基地址 ?MOVAL,80H??OUTPAG,AL???;送頁地址1000B? MOVAL,64H??OUTDMA+3,AL ??;送傳送字節(jié)數(shù)低字節(jié)到通道1? MOVAL,0;0064H表示100個(gè)字節(jié) ?OUTDMA+3,AL ??;送傳送字節(jié)數(shù)高字節(jié)到通道1 ?MOVAL,59H? ;通道1方式字:讀操作,單字節(jié)傳送 OUTDMA+11,AL? ;地址遞增,自動(dòng)預(yù)置??MOVAL,0 ??;命令字:允許工作,固定優(yōu)先級(jí) ?OUTDMA+8,AL ??;DACK有效 ?OUTDMA+15,AL?;寫入四通道屏蔽寄存器,規(guī)定允許4個(gè)通道均可請(qǐng)求DMA傳送.程序中,將取數(shù)的存儲(chǔ)單元的首地址87440H分別寫到頁寄存器(外加的三態(tài)輸出寄存器)和DMAC通道1的高低字節(jié)寄存器中。這里每次傳送一個(gè)字節(jié),每傳送100個(gè)字節(jié)循環(huán)。為避免影響其它通道,開始也可以不用總清命令,可以換成只清字節(jié)指針觸發(fā)器的命令,即:? MOVAL,0??OUTDMA+12,AL應(yīng)當(dāng)指出,DMA方式傳送數(shù)據(jù)具有最高的傳送速度,但連接DMAC是比較復(fù)雜的。在實(shí)際工程應(yīng)用中,除非必須使用DMAC,否則就不使用它,而采用查詢或中斷方式進(jìn)行數(shù)據(jù)傳送。習(xí)題與思考:Intel8237占幾個(gè)端口地址?這些端口在讀/寫時(shí)操作過程中的作用是什么?試說明由Intel8237控制,把內(nèi)存中的一個(gè)數(shù)據(jù)塊向接口傳送的過程。某8086系統(tǒng)中使用8237完成從存儲(chǔ)器到存儲(chǔ)器的數(shù)據(jù)傳送,已知源數(shù)據(jù)塊首地址的偏移地址值為1000H,目標(biāo)數(shù)據(jù)塊首地址的偏移地址值為1050H,數(shù)據(jù)塊長(zhǎng)度為100字節(jié)。試編寫初始化程序,并畫出硬件連接圖。4.某8086系統(tǒng)中使用8237完成從存儲(chǔ)器到外設(shè)端口的數(shù)據(jù)傳送任務(wù),若已知通道0的地址寄存器、字節(jié)計(jì)數(shù)器、方式寄存器端口地址分別為EEE0H,EEE1H和EEE8H,要求通過通道0將存儲(chǔ)器中偏移地址為1000H~10FFH的內(nèi)容傳送到顯示器輸出,試編寫初始化程序。第三講:6.2定時(shí)與計(jì)數(shù)回顧:可編程芯片的概念,端口的概念.本講重點(diǎn):定時(shí)與計(jì)數(shù)的基本概念及其意義,定時(shí)/計(jì)數(shù)器芯片Intel8253的性能概述,內(nèi)、外部結(jié)構(gòu)及其與CPU的連接.講授內(nèi)容:6。2定時(shí)與計(jì)數(shù)1。定時(shí)與計(jì)數(shù)在微機(jī)系統(tǒng)或智能化儀器儀表的工作過程中,經(jīng)常需要使系統(tǒng)處于定時(shí)工作狀態(tài),或者對(duì)外部過程進(jìn)行計(jì)數(shù).定時(shí)或計(jì)數(shù)的工作實(shí)質(zhì)均體現(xiàn)為對(duì)脈沖信號(hào)的計(jì)數(shù),如果計(jì)數(shù)的對(duì)象是標(biāo)準(zhǔn)的內(nèi)部時(shí)鐘信號(hào),由于其周期恒定,故計(jì)數(shù)值就恒定地對(duì)應(yīng)于一定的時(shí)間,這一過程即為定時(shí),如果計(jì)數(shù)的對(duì)象是與外部過程相對(duì)應(yīng)的脈沖信號(hào)(周期可以不相等),則此時(shí)即為計(jì)數(shù)。2.定時(shí)與計(jì)數(shù)的實(shí)現(xiàn)方法(1).硬件法專門設(shè)計(jì)一套電路用以實(shí)現(xiàn)定時(shí)與計(jì)數(shù),特點(diǎn)是需要花費(fèi)一定硬設(shè)備,而且當(dāng)電路制成之后,定時(shí)值及計(jì)數(shù)范圍不能改變。(2)。軟件法利用一段延時(shí)子程序來實(shí)現(xiàn)定時(shí)操作,特點(diǎn),無需太多的硬設(shè)備,控制比較方便,但在定時(shí)期間,CPU不能從事其它工作,降低了機(jī)器的利用率。(3).軟、硬件結(jié)合法即設(shè)計(jì)一種專門的具有可編程特性的芯片,來控制定時(shí)和計(jì)數(shù)的操作,而這些芯片,具有中斷控制能力,定時(shí)、計(jì)數(shù)到時(shí)能產(chǎn)生中斷請(qǐng)求信號(hào),因而定時(shí)期間不影響CPU的正常工作.6。3定時(shí)/計(jì)數(shù)器芯片Intel8253Intel8253是8086/8088微機(jī)系統(tǒng)常用的定時(shí)/計(jì)數(shù)器芯片,它具有定時(shí)與計(jì)數(shù)兩大功能,同類型的定時(shí)/計(jì)數(shù)器芯片還有Intel8254等.一、8253的一般性能概述1.每個(gè)8253芯片有3個(gè)獨(dú)立的16位計(jì)數(shù)器通道2.每個(gè)計(jì)數(shù)器通道都可以按照二進(jìn)制或二—十進(jìn)制計(jì)數(shù)3。每個(gè)計(jì)數(shù)器的計(jì)數(shù)速率可以高達(dá)2MHz4.每個(gè)通道有6種工作方式,可以由程序設(shè)定和改變5.所有的輸入、輸出電平都與TTL兼容§6.3.28253內(nèi)部結(jié)構(gòu)8253的內(nèi)部結(jié)構(gòu)如圖6—16(P160)所示,它主要包括以下幾個(gè)主要部分:圖6—168253的內(nèi)部結(jié)構(gòu)1.數(shù)據(jù)總線緩沖器8253內(nèi)部實(shí)現(xiàn)與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器,用以傳送CPU向8253的控制信息、數(shù)據(jù)信息以及CPU從8253讀取的狀態(tài)信息,包括某一方面時(shí)刻的實(shí)時(shí)計(jì)數(shù)值。2.讀/寫控制邏輯控制8253的片選及對(duì)內(nèi)部相關(guān)寄存器的讀/寫操作,它接收CPU發(fā)來的地址信號(hào)以實(shí)現(xiàn)片選、內(nèi)部通道選擇以及對(duì)讀/寫操作進(jìn)行控制.3.控制字寄存器在8253的初始化編程時(shí),由CPU寫入控制字,以決定通道的工作方式,此寄存器只能寫入,不能讀出。4.計(jì)數(shù)通道0#、1#、2#:這是三個(gè)獨(dú)立的,結(jié)構(gòu)相同的計(jì)數(shù)器/定時(shí)器通道,每一個(gè)通道包含一個(gè)16位的計(jì)數(shù)寄存器,用以存放計(jì)數(shù)初始值,和一個(gè)16位的減法計(jì)數(shù)器和一個(gè)16位的鎖存器,鎖存器在計(jì)數(shù)器工作的過程中,跟隨計(jì)數(shù)值的變化,在接收到CPU發(fā)來的讀計(jì)數(shù)值命令時(shí),用以鎖存計(jì)數(shù)值,供CPU讀取,讀取完畢之后,輸出鎖存器又跟隨減1計(jì)數(shù)器變化。另外,計(jì)數(shù)器的值為0的狀態(tài),還反映在狀態(tài)鎖存器中,可供讀取.二、8253的外部引腳8253芯片是具有24個(gè)引腳的雙列直插式集成電路芯片,其引腳分布如圖6-17所示。8253芯片的24個(gè)引腳分為兩組,一組面向CPU,另一組面向外部設(shè)備,各個(gè)引腳及其所傳送信號(hào)的情況,介紹如下:1.D7~D0:雙向、三態(tài)數(shù)據(jù)線引腳,用以與系統(tǒng)的數(shù)據(jù)線連接,傳送控制、數(shù)據(jù)及狀態(tài)信息。、、、2。:來自于CPU的讀控制信號(hào)輸入引腳,低電平有效。3.:來自于CPU的寫控制信號(hào)輸入引腳,低電平有效。4.:芯片選擇信號(hào)輸入引腳,低電平有效。圖6-178253的引腳5。A1、A0:地址信號(hào)輸入引腳,一般接CPU地址總線的A1、A0位,用以選擇8253芯片的通道及控制字寄存器.、的狀態(tài)與8253端口地址的對(duì)應(yīng)關(guān)系如表6-4所示(P161)表6—4。000#通道011#通道102#通道11控制端口6.VCC及GND:+5V電源及接地引腳7.CLKi:i=0,1,2,第i個(gè)通道的計(jì)數(shù)脈沖輸入引腳,8253規(guī)定,加在CLK引腳的輸入時(shí)鐘信號(hào)的頻率不得高于2.6MHZ,即時(shí)鐘周期不能小于380ns。8.GATEi:i=0,1,2,第i個(gè)通道的門控信號(hào)輸入引腳,門控信號(hào)的作用與通道的工作方式有關(guān)。9.OUTi:i=0,1,2,第i個(gè)通道的定時(shí)/計(jì)數(shù)到信號(hào)輸出引腳,輸出信號(hào)的形式由通道的工作方式確定,此輸出信號(hào)可用于觸發(fā)其它電路工作,或作為向CPU發(fā)出的中斷請(qǐng)求信號(hào)。三、8253的控制字8253有一個(gè)8位的控制字寄存器,其格式如下:圖6-188253的控制字其中:D0:數(shù)制選擇控制.為1時(shí),表明采用BCD碼進(jìn)行定時(shí)/計(jì)數(shù);否則,采用二進(jìn)制進(jìn)行定時(shí)/計(jì)數(shù)。D3~D1:工作方式選擇控制。000,0;001,1;X10,2;X11,3;100,4;101,5;D5、D4:讀寫格式。00,計(jì)數(shù)鎖存命令;01,讀/寫高8位命令;10,讀/寫低8位命令;11,先讀/寫低8位,再讀寫高8位命令。D7、D6:通道選擇控制。000通道;01,1通道;10,2通道;11,非法1.8253的初始化編程要使用8253,必須首先進(jìn)行初始化編程,初始化編程包括設(shè)置通道控制字和送通道計(jì)數(shù)初值兩個(gè)方面,控制字寫入8253的控制字寄存器,而初始值則寫入相應(yīng)通道的計(jì)數(shù)寄存器中。初始化編程包括如下步驟:(1).寫入通道控制字,規(guī)定通道的工作方式(2).寫入計(jì)數(shù)值,若規(guī)定只寫低8位,則高8位自動(dòng)置0,若規(guī)定只寫高8位,則低8位自動(dòng)置0.若為16位計(jì)數(shù)值則分兩次寫入,先寫低8位,后寫高8位。D0:用于確定計(jì)數(shù)數(shù)制,0,二進(jìn)制;1,BCD碼例1:設(shè)8253的端口地址為:04H~07H,要使計(jì)數(shù)器1工作在方式0,僅用8位二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為128,進(jìn)行初始化編程??刂谱譃?01010000B=50H初始化程序:MOVAL,50HOUT07H,ALMOVAL,80HOUT05H,AL例2:設(shè)8253的端口地址為:F8H~FBH,若用通道0工作在方式1,按二――十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為5080H,進(jìn)行初始化編程??刂谱譃?00110011B=33H初始化程序:MOVAL,33HOUT0FBH,ALMOVAL,80HOUT0F8H,ALMOVAL,50HOUT0F8H,AL例3:設(shè)8253的端口地址為:04H~07H,若用通道2工作在方式2,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為02F0H,進(jìn)行初始化編程。(P164例3)控制字為:10110100B=0B4H初始化程序:MOVAL,0B4HOUT07H,ALMOVAL,0F0HOUT06H,ALMOVAL,02HOUT06H,AL2.讀取8253通道中的計(jì)數(shù)值8253可用控制命令來讀取相應(yīng)通道的計(jì)數(shù)值,由于計(jì)數(shù)值是16位的,而讀取的瞬時(shí)值,要分兩次讀取,所以在讀取計(jì)數(shù)值之前,要用鎖存命令,將相應(yīng)通道的計(jì)數(shù)值鎖存在鎖存器中,然后分兩次讀入,先讀低字節(jié),后讀高字節(jié)。當(dāng)控制字中,D5、D4=00時(shí),控制字的作用是將相應(yīng)通道的計(jì)數(shù)值鎖存的命令,鎖存計(jì)數(shù)值在讀取完成之后,自動(dòng)解鎖。如要讀通道1的16位計(jì)數(shù)器,編程如下:地址F8H~FBH。MOV?AL,40H;OUT?0FBH,AL;鎖存計(jì)數(shù)值IN AL,0F9HMOV?CL,AL;低八位IN?AL,0F9H;MOV?CH,AL;高八位四、8253在系統(tǒng)中的典型連接8253在系統(tǒng)中的連接如圖6-25所示.圖6-25Intel8253在系統(tǒng)中的連接習(xí)題與思考:試說明定時(shí)和計(jì)數(shù)在實(shí)際系統(tǒng)中的應(yīng)用?這兩者之間有和聯(lián)系和差別?定時(shí)和計(jì)數(shù)有哪幾種實(shí)現(xiàn)方法?各有什么特點(diǎn)?試說明定時(shí)/計(jì)數(shù)器芯片Intel8253的內(nèi)部結(jié)構(gòu)。定時(shí)/計(jì)數(shù)器芯片Intel8253占用幾個(gè)端口地址?各個(gè)端口分別對(duì)應(yīng)什么?第四講:6。3定時(shí)/計(jì)數(shù)器芯片Intel8253回顧:定時(shí)/計(jì)數(shù)器芯片Intel8253的性能概述,內(nèi)、外部結(jié)構(gòu),端口尋址及控制字的格式及初始化編程。本講重點(diǎn):Intel8253的工作方式,編程設(shè)置及應(yīng)用。講授內(nèi)容:六、8253的工作方式8253共有6種工作方式,各方式下的工作狀態(tài)是不同的,輸出的波形也不同,其中比較靈活的是門控信號(hào)的作用。由此組成了8253豐富的工作方式、波形,下面我們逐個(gè)介紹:1.幾條基本原則(1)。控制字寫入計(jì)數(shù)器時(shí),所有的控制邏輯電路立即復(fù)位,輸出端OUT進(jìn)入初始狀態(tài)。初始狀態(tài)對(duì)不同的模式來說不一定相同。(2).計(jì)數(shù)初始值寫入之后,要經(jīng)過一個(gè)時(shí)鐘周期上升沿和一個(gè)下降沿,計(jì)數(shù)執(zhí)行部件才可以開始進(jìn)行計(jì)數(shù)操作,因?yàn)榈谝粋€(gè)下降沿將計(jì)數(shù)寄存器的內(nèi)容送減1計(jì)數(shù)器。(3).通常,在每個(gè)時(shí)鐘脈沖CLK的上升沿,采樣門控信號(hào)GATE.不同的工作方式下,門控信號(hào)的觸發(fā)方式是有具體規(guī)定的,即或者是電平觸發(fā),或者是邊沿觸發(fā),在有的模式中,兩種觸發(fā)方式都是允許的.其中0、2、3、4是電平觸發(fā)方式,1、2、3、5是上升沿觸發(fā).(4).在時(shí)鐘脈沖的下降沿,計(jì)數(shù)器作減1計(jì)數(shù),0是計(jì)數(shù)器所能容納的最大初始值。二進(jìn)制相當(dāng)于216,用BCD碼計(jì)數(shù)時(shí),相當(dāng)于1042.方式0—計(jì)數(shù)結(jié)束產(chǎn)生中斷方式0的波形如圖6—19所示,當(dāng)控制字寫入控制字寄存器后,輸出OUT就變低,當(dāng)計(jì)數(shù)值寫入計(jì)數(shù)器后開始計(jì)數(shù),在整個(gè)計(jì)數(shù)過程中,OUT保持為低,當(dāng)計(jì)數(shù)到0后,OUT變高;GATE的高低電平控制計(jì)數(shù)過程是否進(jìn)行。圖6—19方式0波形從波形圖中不難看出,工作方式0有如下特點(diǎn):=1\*GB3①計(jì)數(shù)器只計(jì)一遍,當(dāng)計(jì)數(shù)到0時(shí),不重新開始計(jì)數(shù)保持為高,直到輸入一新的計(jì)數(shù)值,OUT才變低,開始新的計(jì)數(shù);=2\*GB3②計(jì)數(shù)值是在寫計(jì)數(shù)值命令后經(jīng)過一個(gè)輸入脈沖,才裝入計(jì)數(shù)器的,下一個(gè)脈沖開始計(jì)數(shù),因此,如果設(shè)置計(jì)數(shù)器初值為N,則輸出OUT在N+1個(gè)脈沖后才能變高;=3\*GB3③在計(jì)數(shù)過程中,可由GATE信號(hào)控制暫停.當(dāng)GATE=0時(shí),暫停計(jì)數(shù);當(dāng)GATE=1時(shí),繼續(xù)計(jì)數(shù);=4\*GB3④在計(jì)數(shù)過程中可以改變計(jì)數(shù)值,且這種改變是立即有效的,分成兩種情況:若是8位計(jì)數(shù),則寫入新值后的下一個(gè)脈沖按新值計(jì)數(shù);若是16位計(jì)數(shù),則在寫入第一個(gè)字節(jié)后,停止計(jì)數(shù),寫入第二個(gè)字節(jié)后的下一個(gè)脈沖按新值計(jì)數(shù)。3.方式1—可編程的硬件觸發(fā)單拍脈沖方式1的波形如圖6-20所示,CPU向8253寫入控制字后OUT變高,并保持,寫入計(jì)數(shù)值后并不立即計(jì)數(shù),只有當(dāng)外界GATE信號(hào)啟動(dòng)后(一個(gè)正脈沖)的下一個(gè)脈沖才開始計(jì)數(shù),OUT變低,計(jì)數(shù)到0后,OUT才變高,此時(shí)再來一個(gè)GATE正脈沖,計(jì)數(shù)器又開始重新計(jì)數(shù),輸出OUT再次變低,…,因此輸出為一單拍負(fù)脈沖。圖6-20方式1波形從波形圖不難看出:方式1有下列特點(diǎn):①輸出OUT業(yè)寬度為計(jì)數(shù)初值的單脈沖;②輸出受門控信號(hào)GATE的控制,分三種情況:計(jì)數(shù)到0后,再來GATE脈沖,則重新開始計(jì)數(shù),OUT變低;在計(jì)數(shù)過程中來GATE脈沖,則從下一CLK脈沖開始重新計(jì)數(shù),OUT保持為低;改變計(jì)數(shù)值后,只有當(dāng)GATE脈沖啟動(dòng)后,才按新值計(jì)數(shù),否則原計(jì)數(shù)過程不受影響,仍繼續(xù)進(jìn)行,即新值的改變是從下一個(gè)GATE開始的。③計(jì)數(shù)值是多次有效的,每來一個(gè)GATE脈沖,就自動(dòng)裝入計(jì)數(shù)值開始從頭計(jì)數(shù),因此在初始化時(shí),計(jì)數(shù)值寫入一次即可.方式2—速率發(fā)生器方式2的波形如圖6—21所示,在這種方式下,CPU輸出控制字后,輸出OUT就變高,寫入計(jì)數(shù)值后的下一個(gè)CLK脈沖開始計(jì)數(shù),計(jì)數(shù)到1后,輸出OUT變低,經(jīng)過一個(gè)CLK以后,OUT恢復(fù)為高,計(jì)數(shù)器重新開始計(jì)數(shù),…,因此在這種方式下,只需寫入一次計(jì)數(shù)值,就能連續(xù)工作,輸出連續(xù)相同間隔的負(fù)脈沖(前提:GATE保持為高),即周期性地輸出,方式2下,8253有下列使用特點(diǎn):①通道可以連續(xù)工作;②GATE可以控制計(jì)數(shù)過程,當(dāng)GATE為低時(shí)暫停計(jì)數(shù),恢復(fù)為高后重新從初值;(注意:該方式與方式0不同,方式0是繼續(xù)計(jì)數(shù))③重新設(shè)置新的計(jì)數(shù)值即在計(jì)數(shù)過程中改變計(jì)數(shù)值,則新的計(jì)數(shù)值是下次有效的,同方式1。圖6—21方式2波形5。方式3—方波速率發(fā)生器方式3的波形如圖6—22所示,這種方式下的輸出與方式2都是周期性的,不同的是周期不同,CPU寫入控制字后,輸出OUT變高,寫入計(jì)數(shù)值后開始計(jì)數(shù),不同的是減2計(jì)數(shù),當(dāng)計(jì)數(shù)到一半計(jì)數(shù)值時(shí),輸出變低,重新裝入計(jì)數(shù)值進(jìn)行減2計(jì)數(shù),當(dāng)計(jì)數(shù)到0時(shí),輸出變高,裝入計(jì)數(shù)值進(jìn)行減2計(jì)數(shù),循環(huán)不止。計(jì)數(shù)值為偶數(shù)計(jì)數(shù)值為奇數(shù)圖6—22方式3時(shí)計(jì)數(shù)器的工作波形方式3下,8253有下列使用特點(diǎn):①通道可以連續(xù)工作;②關(guān)于計(jì)數(shù)值的奇偶,若為偶數(shù),則輸出標(biāo)準(zhǔn)方波,高低電平各為N/2個(gè);若為奇數(shù),則在裝入計(jì)數(shù)值后的下一個(gè)CLK使其裝入,然后減1計(jì)數(shù),(N+1)/2,OUT改變狀態(tài),再減至0,OUT又改變狀態(tài),重新裝入計(jì)數(shù)值循環(huán)此過程,因此,在這種情況下,輸出有(N+1)/2個(gè)CLK個(gè)高電平,(N-1)/2個(gè)CLK個(gè)低電平;③GATE信號(hào)能使計(jì)數(shù)過程重新開始,當(dāng)GATE=0時(shí),停止計(jì)數(shù),當(dāng)GATE變高后,計(jì)數(shù)器重新裝入初值開始計(jì)數(shù),尤其是當(dāng)GATE=0時(shí),若OUT此時(shí)為低,則立即變高,其它動(dòng)作同上;=4\*GB3④在計(jì)數(shù)期間改變計(jì)數(shù)值不影響現(xiàn)行的計(jì)數(shù)過程,一般情況下,新的計(jì)數(shù)值是在現(xiàn)行半周結(jié)束后才裝入計(jì)數(shù)器。但若中間遇到有GATE脈沖,則在此脈沖后即裝入新值開始計(jì)數(shù)。6.方式4—軟件觸發(fā)的選通信號(hào)發(fā)生器方式4的波形如圖6-23所示,在這種方式下,也是當(dāng)CPU寫入控制字后,OUT立即變高,寫入計(jì)數(shù)值開始計(jì)數(shù),當(dāng)計(jì)數(shù)到0后,OUT變低,經(jīng)過一個(gè)CLK脈沖后,OUT變高,這種計(jì)數(shù)是一次性的(與方式0有相似之處),只有當(dāng)寫入新的計(jì)數(shù)值后才開始下一次計(jì)數(shù)。圖6—23方式4波形方式4下,8253有下列使用特點(diǎn):①當(dāng)計(jì)數(shù)值為N時(shí),則間隔N+1個(gè)CLK脈沖輸出一個(gè)負(fù)脈沖(計(jì)數(shù)一次有效);②GATE=0時(shí),禁止計(jì)數(shù),GATE=1時(shí),恢復(fù)繼續(xù)計(jì)數(shù);③在計(jì)數(shù)過程中重新裝入新的計(jì)數(shù)值,則該值是立即有效的(若為16位計(jì)數(shù)值,則裝入第一個(gè)字節(jié)時(shí)停止計(jì)數(shù),裝入第二個(gè)字節(jié)后開始按新值計(jì)數(shù))。7。方式5—硬件觸發(fā)的選通信號(hào)發(fā)生器方式5的波形如圖6-24所示,在這種方式下,當(dāng)控制字寫入后,OUT立刻變高,寫入計(jì)數(shù)值后并不立即開始計(jì)數(shù),而是由GATE的上升沿觸發(fā)啟動(dòng)計(jì)數(shù)的,當(dāng)計(jì)數(shù)到0時(shí),輸出變低,經(jīng)過一個(gè)CLK之后,輸出恢復(fù)為高,計(jì)數(shù)停止,若再有GATE脈沖來,則重新裝入計(jì)數(shù)值開始計(jì)數(shù),上述過程重復(fù)。方式5下,8253有下列使用特點(diǎn):①在這種方式下,若設(shè)置的計(jì)數(shù)值是N,則在GATE脈沖后,經(jīng)過(N+1)個(gè)CLK才一個(gè)負(fù)脈沖;②若在計(jì)數(shù)過程中又來一個(gè)GATE脈沖,則重新裝入初值開始計(jì)數(shù),輸出不變,即計(jì)數(shù)值多次有效;③若在計(jì)數(shù)過程中修改計(jì)數(shù)值,則該計(jì)數(shù)值在下一個(gè)GATE脈沖后裝入開始按此值計(jì)數(shù)。圖6-24方式5波形盡管8253有6種工作模式,但是從輸出端來看,仍不外乎為計(jì)數(shù)和定時(shí)兩種工作方式。作為計(jì)數(shù)器時(shí),8253在GATE的控制下,進(jìn)行減1計(jì)數(shù),減到終值時(shí),輸出一個(gè)信號(hào)。作為定時(shí)器工作時(shí),8253在門控信號(hào)GATE控制下,進(jìn)行減1計(jì)數(shù)。減到終值時(shí),又自動(dòng)裝入初始值,重新作減1計(jì)數(shù),于是輸出端會(huì)不斷地產(chǎn)生時(shí)鐘周期整數(shù)倍的定時(shí)時(shí)間間隔。8.8253的工作方式小結(jié)下面,我們對(duì)8253的6種工作模式的特點(diǎn),作一番比較和總結(jié)。(1).方式2、4、5的輸出波形是相同的,都是寬度為一個(gè)CLK

溫馨提示

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