![微型計算機(jī)原理與接口技術(shù)第8章可編程控制器8237a_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/fbb4cf4a-7e32-4e75-9f31-6378e86684e0/fbb4cf4a-7e32-4e75-9f31-6378e86684e01.gif)
![微型計算機(jī)原理與接口技術(shù)第8章可編程控制器8237a_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/fbb4cf4a-7e32-4e75-9f31-6378e86684e0/fbb4cf4a-7e32-4e75-9f31-6378e86684e02.gif)
![微型計算機(jī)原理與接口技術(shù)第8章可編程控制器8237a_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/fbb4cf4a-7e32-4e75-9f31-6378e86684e0/fbb4cf4a-7e32-4e75-9f31-6378e86684e03.gif)
![微型計算機(jī)原理與接口技術(shù)第8章可編程控制器8237a_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/fbb4cf4a-7e32-4e75-9f31-6378e86684e0/fbb4cf4a-7e32-4e75-9f31-6378e86684e04.gif)
![微型計算機(jī)原理與接口技術(shù)第8章可編程控制器8237a_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/fbb4cf4a-7e32-4e75-9f31-6378e86684e0/fbb4cf4a-7e32-4e75-9f31-6378e86684e05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第八章 可編程DMA控制器8237A 8.1 概述概述 8.2 8237A的內(nèi)部結(jié)構(gòu)與引腳的內(nèi)部結(jié)構(gòu)與引腳8.3 8237A的工作方式的工作方式8.4 8237A內(nèi)部寄存器功能及格式內(nèi)部寄存器功能及格式8.5 8237A的編程及應(yīng)用的編程及應(yīng)用 8.1 概述 8.1.1 8237A8.1.1 8237A的主要功能的主要功能8.1.2 8237A8.1.2 8237A的工作狀態(tài)的工作狀態(tài)8.1.1 8237A的主要功能 Inte18237A是一種有是一種有40個引腳的高性能可編程個引腳的高性能可編程DMA控制器,采用主頻控制器,采用主頻5MHz的的8237A傳送速度可傳送速度可達(dá)到達(dá)到1.6MB
2、/秒。秒。 8237A的主要的主要功能功能為:為:(1)在一個在一個8237A芯片中有芯片中有4個獨立的個獨立的DMA通道,每通道,每個通道均可獨立地傳送數(shù)據(jù),可控制個通道均可獨立地傳送數(shù)據(jù),可控制4個個I/O外設(shè)進(jìn)外設(shè)進(jìn)行行DMA傳送。傳送。(2)每個通道的每個通道的DMA請求都可以分別允許和禁止。請求都可以分別允許和禁止。每個通道的每個通道的DMA請求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可請求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可以是固定的,也可以是循環(huán)的。以是固定的,也可以是循環(huán)的。8.1 概述(3)每個通道均有每個通道均有64KB的尋址和計數(shù)能力,即一次的尋址和計數(shù)能力,即一次DMA傳送的數(shù)據(jù)最大長度可達(dá)傳送的數(shù)
3、據(jù)最大長度可達(dá)64KB。可以在存儲。可以在存儲器與外設(shè)之間,也可在存儲器的兩個區(qū)域之間傳器與外設(shè)之間,也可在存儲器的兩個區(qū)域之間傳送。送。 (4)8237A有四種有四種DMA傳送方式,分別為單字節(jié)傳傳送方式,分別為單字節(jié)傳送、數(shù)據(jù)塊傳送、請求傳送方式和級連方式。送、數(shù)據(jù)塊傳送、請求傳送方式和級連方式。(5)8237A可以級連,擴(kuò)展更多的通道??梢约夁B,擴(kuò)展更多的通道。8.1.2 8237A的工作狀態(tài) DMA DMA控制器一方面可以控制系統(tǒng)總線,這時,它控制器一方面可以控制系統(tǒng)總線,這時,它是總線主控模塊;另一方面,它又和其它接口一是總線主控模塊;另一方面,它又和其它接口一樣,接受樣,接受CPU
4、CPU對它的讀對它的讀/ /寫操作,這時,它又成了寫操作,這時,它又成了總線從模塊。總線從模塊。 所以,所以,8237A8237A有兩種不同的工作狀態(tài),分別為從有兩種不同的工作狀態(tài),分別為從態(tài)方式和主態(tài)方式。態(tài)方式和主態(tài)方式。8.1.2 8237A的工作狀態(tài)(1)(1)在在DMADMA控制器未取得總線控制權(quán)時必須由控制器未取得總線控制權(quán)時必須由CPUCPU對對DMADMA控制器進(jìn)行編程,以確定通道的選擇、數(shù)據(jù)傳控制器進(jìn)行編程,以確定通道的選擇、數(shù)據(jù)傳送的方式和類型、內(nèi)存單元起始地址、地址是遞送的方式和類型、內(nèi)存單元起始地址、地址是遞增還是遞減及要傳送的總字節(jié)數(shù)等,增還是遞減及要傳送的總字節(jié)數(shù)等
5、,CPUCPU也可以讀也可以讀取取DMADMA控制總線的狀態(tài)。控制總線的狀態(tài)。 這時,這時,CPUCPU處于主控狀態(tài),而處于主控狀態(tài),而DMADMA控制器就和一控制器就和一般的般的I/OI/O芯片一樣,是系統(tǒng)總線的從設(shè)備,這種工芯片一樣,是系統(tǒng)總線的從設(shè)備,這種工作方式稱為作方式稱為從態(tài)方式從態(tài)方式。8.1.2 8237A的工作狀態(tài)(2)(2)當(dāng)當(dāng)DMADMA控制器取得總線控制權(quán)后,系統(tǒng)就完全控制器取得總線控制權(quán)后,系統(tǒng)就完全在它的控制下,使在它的控制下,使I/OI/O設(shè)備和存儲之間或存儲器與設(shè)備和存儲之間或存儲器與存儲器之間進(jìn)行直接的數(shù)據(jù)傳送,這種工作方式存儲器之間進(jìn)行直接的數(shù)據(jù)傳送,這種工
6、作方式稱為稱為主態(tài)方式主態(tài)方式。8.2 8237A8.2 8237A的內(nèi)部結(jié)構(gòu)及引腳的內(nèi)部結(jié)構(gòu)及引腳 8.2.1 8237A8.2.1 8237A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)8.2.2 8237A8.2.2 8237A的引腳的引腳8.2.1 8237A8.2.1 8237A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 8237A 8237A的內(nèi)部結(jié)構(gòu)如圖的內(nèi)部結(jié)構(gòu)如圖8-18-1所示,主要由時序與所示,主要由時序與控制邏輯、優(yōu)先級編碼電路、數(shù)據(jù)和地址緩沖器控制邏輯、優(yōu)先級編碼電路、數(shù)據(jù)和地址緩沖器組、命令控制邏輯和內(nèi)部寄存器等組成。組、命令控制邏輯和內(nèi)部寄存器等組成。時序與控制邏輯優(yōu)先級編碼命令寄存器(8)屏蔽寄存器(4)請
7、求寄存器(4)字?jǐn)?shù)暫存器EOPRESETCSCLKAENADSTBMEMRMEMWIORIOWREADYHRQHLDA03DREQ-03DACK-44讀緩沖器基地址寄存器(164)基字寄存器讀/寫緩沖器當(dāng)前地址寄存器(164)當(dāng)前字計數(shù)器(164)1616寫緩沖器讀緩沖器內(nèi)部數(shù)據(jù)總線方式寄存器(46)狀態(tài)寄存器(8)暫存寄存器(8)地址暫存器A15A8I/O緩沖輸出緩沖A3-A0A7-A4命令控制邏輯D1-D0I/O緩沖DB7-DB0(164)圖圖8-1 8237A8-1 8237A的的內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖 8.2.1 8237A 8.2.1 8237A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)(1)(1)時序與控
8、制邏輯時序與控制邏輯:8237A8237A處于從態(tài)時,這部分處于從態(tài)時,這部分電路用于接收系統(tǒng)送來的時鐘、復(fù)位、片選和讀電路用于接收系統(tǒng)送來的時鐘、復(fù)位、片選和讀寫控制信號,完成相應(yīng)的控制操作;處于主態(tài)時,寫控制信號,完成相應(yīng)的控制操作;處于主態(tài)時,則向系統(tǒng)發(fā)出相應(yīng)的控制信號。則向系統(tǒng)發(fā)出相應(yīng)的控制信號。(2)(2)優(yōu)先級編碼電路優(yōu)先級編碼電路:根據(jù):根據(jù)CPUCPU對對8237A8237A初始化時送初始化時送來的命令,對同時提出來的命令,對同時提出DMADMA請求的多個通道進(jìn)行排請求的多個通道進(jìn)行排隊,決定優(yōu)先級。有兩種方式:固定和循環(huán)。優(yōu)隊,決定優(yōu)先級。有兩種方式:固定和循環(huán)。優(yōu)先級高的通
9、道正在服務(wù)時,其它通道的請求被禁先級高的通道正在服務(wù)時,其它通道的請求被禁止,直到該通道服務(wù)完畢為止。止,直到該通道服務(wù)完畢為止。 8.2.1 8237A 8.2.1 8237A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)(3)(3)數(shù)據(jù)和地址緩沖器組數(shù)據(jù)和地址緩沖器組:有地址線:有地址線A7A7A4A4、A3A3A0A0;DB7DB7DB0DB0在從態(tài)時傳送數(shù)據(jù),在主態(tài)時分時在從態(tài)時傳送數(shù)據(jù),在主態(tài)時分時送出高送出高8 8位地址和雙向的位地址和雙向的8 8位數(shù)據(jù),均有緩沖寄存位數(shù)據(jù),均有緩沖寄存器,可以接管和釋放總線。器,可以接管和釋放總線。(4)(4)命令控制邏輯命令控制邏輯:從態(tài)時,接收:從態(tài)時,接收CPUCP
10、U送來的寄存送來的寄存器選擇信號器選擇信號A3A3A0A0;主態(tài)時,對方式字的最低兩;主態(tài)時,對方式字的最低兩位位D1D0D1D0進(jìn)行譯碼,以確定進(jìn)行譯碼,以確定DMADMA的操作類型。的操作類型。A3A3A0A0與與/IOR/IOR、/IOW/IOW配合可能組成多種操作命令。配合可能組成多種操作命令。 8.2.1 8237A 8.2.1 8237A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)(5)(5)內(nèi)部寄存器內(nèi)部寄存器:有:有4 4個獨立的通道,每個通道有個獨立的通道,每個通道有4 4個個1616位的寄存器,即基地址寄存器、基字節(jié)寄存位的寄存器,即基地址寄存器、基字節(jié)寄存器、當(dāng)前地址寄存器、當(dāng)前字節(jié)寄存器。另外
11、,器、當(dāng)前地址寄存器、當(dāng)前字節(jié)寄存器。另外,還有還有4 4個通道所共用的工作方式寄存器、命令寄存?zhèn)€通道所共用的工作方式寄存器、命令寄存器、狀態(tài)寄存器、請求寄存器、屏蔽寄存器、暫器、狀態(tài)寄存器、請求寄存器、屏蔽寄存器、暫存寄存器。通過對這些寄存器的編程,可設(shè)置工存寄存器。通過對這些寄存器的編程,可設(shè)置工作方式、優(yōu)先級管理方式、實現(xiàn)存儲器之間的傳作方式、優(yōu)先級管理方式、實現(xiàn)存儲器之間的傳送等。送等。8.2.2 8237A8.2.2 8237A的引腳的引腳 8237A 8237A采用雙列采用雙列直插式,有直插式,有4040個引個引腳,其引腳排列如腳,其引腳排列如圖圖8-28-2所示。所示。 IORI
12、OWMEMRNCMEMWREADYHLDAADSTBAENHQRCSCLKRESET2DACK3DACK2DREQ1DREQ3DREQ0DREQGNDA A7A6A5A4AEOP3A2A1A0ACCV0DB1DB2DB3DB4DB0DACK1DACK5DB6DB7DB1 402 398 82 23 37 7A A3 384 375 366 357 348 339 3210 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 21 圖 8-2 8237A 的引腳 8.2.2 8237A8.2.2 8237A的引腳的引腳1.CLK1.CLK:時鐘信號
13、。用來控制內(nèi)部操作和數(shù)據(jù)傳輸:時鐘信號。用來控制內(nèi)部操作和數(shù)據(jù)傳輸速率。速率。8237A8237A的時鐘頻率為的時鐘頻率為4MHz4MHz,8237A-58237A-5為為5MHz5MHz。2./CS2./CS:片選信號。從態(tài)時,:片選信號。從態(tài)時,/CS/CS為低,表示選中為低,表示選中此片,此片,CPUCPU可與可與82378237交換信息。交換信息。3.RESET3.RESET:復(fù)位信號。高有效。復(fù)位時,將屏蔽寄:復(fù)位信號。高有效。復(fù)位時,將屏蔽寄存器置存器置1 1,其它寄存器均清,其它寄存器均清0 0。復(fù)位后,它工作在。復(fù)位后,它工作在空閑周期??臻e周期。8.2.2 8237A8.2.
14、2 8237A的引腳的引腳4.READY4.READY:外設(shè)或存儲器送來的準(zhǔn)備好信號。當(dāng)參:外設(shè)或存儲器送來的準(zhǔn)備好信號。當(dāng)參與傳輸?shù)脑O(shè)備為低速的與傳輸?shù)脑O(shè)備為低速的I/OI/O設(shè)備或存儲器速度較低設(shè)備或存儲器速度較低時,需要延長讀時,需要延長讀/ /寫周期。這時,可使寫周期。這時,可使READYREADY為低為低電平,使在電平,使在DMADMA的傳輸周期中插入等待周期的傳輸周期中插入等待周期T TW W。存。存儲器或外設(shè)準(zhǔn)備好時,儲器或外設(shè)準(zhǔn)備好時,READYREADY變高,表示數(shù)據(jù)緒,變高,表示數(shù)據(jù)緒,不再等待。不再等待。5.ADSTB5.ADSTB:地址選通信號。為高時,通過:地址選通信
15、號。為高時,通過DB7DB7DB0DB0鎖存鎖存DMADMA地址寄存器的高地址寄存器的高8 8位到外部鎖存器。位到外部鎖存器。8.2.2 8237A8.2.2 8237A的引腳的引腳6.AEN6.AEN:地址允許信號。為高時,將地址鎖存器中:地址允許信號。為高時,將地址鎖存器中鎖存的高鎖存的高8 8位地址送到地址總線上,與位地址送到地址總線上,與82378237直接送直接送出的低出的低8 8位地址一起構(gòu)成位地址一起構(gòu)成1616位的內(nèi)存偏移地址。它位的內(nèi)存偏移地址。它還使與還使與CPUCPU相連接的地址鎖存器無效。這樣,保證相連接的地址鎖存器無效。這樣,保證了地址總線上的信息是來自了地址總線上的
16、信息是來自82378237,而不是來自,而不是來自CPUCPU。7./MEMR7./MEMR:存儲器讀信號。主態(tài)時,與:存儲器讀信號。主態(tài)時,與/IOW/IOW配合,配合,將數(shù)據(jù)從主存讀出并送入外設(shè)。也可用于存儲器將數(shù)據(jù)從主存讀出并送入外設(shè)。也可用于存儲器之間的數(shù)據(jù)傳送,把數(shù)據(jù)從源地址區(qū)讀出。從態(tài)之間的數(shù)據(jù)傳送,把數(shù)據(jù)從源地址區(qū)讀出。從態(tài)時,無效。時,無效。8.2.2 8237A8.2.2 8237A的引腳的引腳8./MEMW8./MEMW:存儲器寫信號。主態(tài)時,與:存儲器寫信號。主態(tài)時,與/IOR/IOR配合,配合,將數(shù)據(jù)從外設(shè)寫入內(nèi)存。也可用于存儲器之間的將數(shù)據(jù)從外設(shè)寫入內(nèi)存。也可用于存儲
17、器之間的數(shù)據(jù)傳送,把數(shù)據(jù)寫入目的地址區(qū)。從態(tài)時,無數(shù)據(jù)傳送,把數(shù)據(jù)寫入目的地址區(qū)。從態(tài)時,無效。效。9./IOR9./IOR:外設(shè)讀信號。從態(tài)時,為:外設(shè)讀信號。從態(tài)時,為CPUCPU讀讀82378237內(nèi)部內(nèi)部寄存器的控制信號。主態(tài)時,為外設(shè)的讀信號。寄存器的控制信號。主態(tài)時,為外設(shè)的讀信號。10./IOW10./IOW:外設(shè)寫信號。從態(tài)時,為:外設(shè)寫信號。從態(tài)時,為CPUCPU寫寫82378237內(nèi)內(nèi)部寄存器的控制信號。主態(tài)時,為外設(shè)的寫信號。部寄存器的控制信號。主態(tài)時,為外設(shè)的寫信號。11./EOP11./EOP:傳送結(jié)束信號,字節(jié)計數(shù)器從:傳送結(jié)束信號,字節(jié)計數(shù)器從0 0減為減為FFF
18、FHFFFFH時送出,或由外部輸入時送出,或由外部輸入12.DREQ312.DREQ3DREQ0DREQ0:外設(shè)送來的:外設(shè)送來的DMADMA請求信號請求信號8.2.2 8237A8.2.2 8237A的引腳的引腳13.DACK313.DACK3DACK0DACK0:給外設(shè)的響應(yīng)信號:給外設(shè)的響應(yīng)信號14.HRQ14.HRQ:給:給CPUCPU的總線請求信號的總線請求信號15.HLDA15.HLDA:CPUCPU送來的讓出總線的總線響應(yīng)信號送來的讓出總線的總線響應(yīng)信號16.A316.A3A0A0:雙向低:雙向低4 4位地址線位地址線17.A717.A7A4A4:主態(tài)時輸出的高:主態(tài)時輸出的高4
19、 4位地址線,從態(tài)時位地址線,從態(tài)時浮空浮空18.DB718.DB7DB0DB0:從態(tài)時,與:從態(tài)時,與CPUCPU連接的雙向數(shù)據(jù)線,連接的雙向數(shù)據(jù)線,主態(tài)時,分時送出高主態(tài)時,分時送出高8 8位地址和雙向的位地址和雙向的8 8位數(shù)據(jù)。位數(shù)據(jù)。8.3 8237A8.3 8237A工作方式工作方式8.3.1 8.3.1 單字節(jié)傳送方式單字節(jié)傳送方式8.3.2 8.3.2 塊傳送方式塊傳送方式8.3.3 8.3.3 請求傳送方式請求傳送方式8.3.4 8.3.4 級聯(lián)傳送方式級聯(lián)傳送方式8.3.1 8.3.1 單字節(jié)傳送方式單字節(jié)傳送方式單字節(jié)傳送方式單字節(jié)傳送方式:每進(jìn)行一次每進(jìn)行一次DMADM
20、A操作,只傳送一操作,只傳送一個字節(jié)的數(shù)據(jù)。個字節(jié)的數(shù)據(jù)。 8237A 8237A每完成一個字節(jié)的傳送,計數(shù)器便自動減每完成一個字節(jié)的傳送,計數(shù)器便自動減1 1,地址寄存器的值加,地址寄存器的值加1 1或減或減1 1。接著,。接著,8237A8237A釋放釋放系統(tǒng)總線,把控制權(quán)交還給系統(tǒng)總線,把控制權(quán)交還給CPUCPU。 但是但是8237A8237A在釋放總線后,會立即對在釋放總線后,會立即對DREQDREQ端進(jìn)行端進(jìn)行測試,一旦測試,一旦DREQDREQ有效,則有效,則8237A8237A會立即發(fā)送總線請會立即發(fā)送總線請求,在獲得總線控制權(quán)后,又成為總線主模塊而求,在獲得總線控制權(quán)后,又成為
21、總線主模塊而進(jìn)行進(jìn)行DMADMA傳送。傳送。特點:特點:一次一次DMADMA傳送傳送1 1個字節(jié)的數(shù)據(jù),占用個字節(jié)的數(shù)據(jù),占用1 1個總線個總線周期,然后釋放系統(tǒng)總線。因此,這種方式又被周期,然后釋放系統(tǒng)總線。因此,這種方式又被稱為總線周期竊取方式。稱為總線周期竊取方式。8.3.2 8.3.2 塊傳送方式塊傳送方式塊傳送方式塊傳送方式:一旦開始傳送,就會一個字節(jié)一個一旦開始傳送,就會一個字節(jié)一個字節(jié)的進(jìn)行下去,直到把整個數(shù)據(jù)塊全部傳送完字節(jié)的進(jìn)行下去,直到把整個數(shù)據(jù)塊全部傳送完畢,才交出系統(tǒng)總線控制權(quán)。畢,才交出系統(tǒng)總線控制權(quán)。 特點:特點:數(shù)據(jù)傳輸效率高,數(shù)據(jù)傳輸效率高,DREQDREQ有效
22、電平只要保持有效電平只要保持到到DACKDACK有效,就能傳送完整批數(shù)據(jù),但整個數(shù)據(jù)有效,就能傳送完整批數(shù)據(jù),但整個數(shù)據(jù)塊傳送期間,塊傳送期間,CPUCPU失去總線控制權(quán),因而別的失去總線控制權(quán),因而別的DMADMA請求也被禁止。請求也被禁止。8.3.3 8.3.3 請求傳送方式請求傳送方式請求傳送方式請求傳送方式:這種工作方式每傳送一個字節(jié)后,這種工作方式每傳送一個字節(jié)后,8237A8237A都對都對DREQDREQ端進(jìn)行測試,詢問其是否有效。如端進(jìn)行測試,詢問其是否有效。如果檢測到果檢測到DREQDREQ端變?yōu)闊o效電平,則立刻端變?yōu)闊o效電平,則立刻“掛起掛起”,停止停止DMADMA傳送,但
23、并不釋放系統(tǒng)總線,測試過程仍傳送,但并不釋放系統(tǒng)總線,測試過程仍然進(jìn)行。當(dāng)檢測到然進(jìn)行。當(dāng)檢測到DREQDREQ端變?yōu)橛行щ娖綍r,就在端變?yōu)橛行щ娖綍r,就在原來的基礎(chǔ)上繼續(xù)進(jìn)行傳送。由于請求傳送方式原來的基礎(chǔ)上繼續(xù)進(jìn)行傳送。由于請求傳送方式在傳送完一個字節(jié)的數(shù)據(jù)之后就詢問在傳送完一個字節(jié)的數(shù)據(jù)之后就詢問DREQDREQ信號是信號是否有效,故又稱詢問傳送方式。否有效,故又稱詢問傳送方式。 特點:特點:DREQDREQ信號一直有效時,則連續(xù)傳送數(shù)據(jù),信號一直有效時,則連續(xù)傳送數(shù)據(jù),只有當(dāng)字節(jié)計數(shù)器由只有當(dāng)字節(jié)計數(shù)器由0 0減為減為FFFFHFFFFH,或外部送來有,或外部送來有效的效的/EOP/E
24、OP信號,或信號,或DREQDREQ變?yōu)闊o效時才結(jié)束變?yōu)闊o效時才結(jié)束DMADMA傳送傳送過程。過程。8.3.4 8.3.4 級聯(lián)傳送方式級聯(lián)傳送方式級聯(lián)傳送方式級聯(lián)傳送方式:可可以把一片以把一片8237A(8237A(稱稱為主片為主片) )和幾片和幾片8237A(8237A(稱為從片稱為從片) )進(jìn)行級聯(lián),以便擴(kuò)進(jìn)行級聯(lián),以便擴(kuò)充充DMADMA通道。通道。 圖圖8-38-3所示為二所示為二級級8237A8237A級聯(lián)時的級聯(lián)時的情況。情況。 微處理器 H O LD H LD A H RQ D REQ0 H LD A D A CK08237A D REQ3 D A CK3 8237AH RQH
25、LD AH RQH LD A 8237A主片從片圖圖8-3 8-3 二級二級8237A8237A級聯(lián)級聯(lián)8.4 8237A內(nèi)部寄存器功能及格式 8237A 8237A的內(nèi)部可編程寄存器主要有的內(nèi)部可編程寄存器主要有1010個,如下表個,如下表所示。所示。名名 稱稱位數(shù)位數(shù)數(shù)數(shù) 量量功能功能當(dāng)前地址寄存器當(dāng)前地址寄存器16164(4(每通道一個每通道一個) )保存在保存在DMADMA傳送期間的地址值,可讀寫傳送期間的地址值,可讀寫當(dāng)前字節(jié)計數(shù)寄存當(dāng)前字節(jié)計數(shù)寄存器器16164(4(每通道一個每通道一個) )寄存當(dāng)前字節(jié)數(shù),初始值比實際值少寄存當(dāng)前字節(jié)數(shù),初始值比實際值少1 1,可讀寫可讀寫基地址
26、寄存器基地址寄存器16164(4(每通道一個每通道一個) )寄存當(dāng)前地址寄存器的初始值,只能寄存當(dāng)前地址寄存器的初始值,只能寫寫基字節(jié)數(shù)寄存器基字節(jié)數(shù)寄存器16164(4(每通道一個每通道一個) )保存相應(yīng)通道當(dāng)前字保存相應(yīng)通道當(dāng)前字( (節(jié)節(jié)) )數(shù)的計數(shù)器數(shù)的計數(shù)器的初值的初值工作方式寄存器工作方式寄存器8 84(4(每通道一個每通道一個) )命令寄存器命令寄存器8 81(41(4個通道共用一個個通道共用一個) )寄存寄存CPUCPU發(fā)送的控制命令發(fā)送的控制命令狀態(tài)寄存器狀態(tài)寄存器8 81(41(4個通道共用一個個通道共用一個) )存放存放8237A8237A各通道的現(xiàn)行狀態(tài)各通道的現(xiàn)行狀
27、態(tài)請求寄存器請求寄存器4 44(4(每通道一個每通道一個) )寄存各通道的寄存各通道的DMADMA請求信號請求信號屏蔽寄存器屏蔽寄存器4 44(4(每通道一個每通道一個) )用于選擇允許或禁止各通道的用于選擇允許或禁止各通道的DMADMA請求請求信號信號暫存寄存器暫存寄存器8 84(4(每通道一個每通道一個) )暫存?zhèn)鬏敂?shù)據(jù),僅用于存儲器到存儲暫存?zhèn)鬏敂?shù)據(jù),僅用于存儲器到存儲器的傳輸器的傳輸 8.4 8237A內(nèi)部寄存器功能及格式 8237A 8237A的不同類型的寄存器有不同的控制作用,在的不同類型的寄存器有不同的控制作用,在DMADMA操操作前,必須寫入相應(yīng)的內(nèi)容,即初始化編程,以確定所需
28、作前,必須寫入相應(yīng)的內(nèi)容,即初始化編程,以確定所需要的功能。要的功能。8.4.1 8.4.1 當(dāng)前地址寄存器當(dāng)前地址寄存器8.4.2 8.4.2 當(dāng)前字節(jié)寄存器當(dāng)前字節(jié)寄存器8.4.3 8.4.3 基地址寄存器基地址寄存器8.4.4 8.4.4 基字節(jié)寄存器基字節(jié)寄存器8.4.5 8.4.5 命令寄存器命令寄存器8.4.6 8.4.6 工作寄存器工作寄存器8.4.7 8.4.7 請求寄存器請求寄存器8.4.8 8.4.8 屏蔽寄存器屏蔽寄存器8.4.9 8.4.9 狀態(tài)寄存器狀態(tài)寄存器8.4.10 8.4.10 暫存寄存器暫存寄存器8.4.11 8.4.11 軟件命令軟件命令 8.4.1 當(dāng)前
29、地址寄存器 每個通道均有,每個通道均有,1616位,存放位,存放DMADMA傳送時存儲器的傳送時存儲器的當(dāng)前的地址。每傳送一個數(shù)據(jù),地址自動加當(dāng)前的地址。每傳送一個數(shù)據(jù),地址自動加/ /減減1 1。初始化時,由初始化時,由CPUCPU設(shè)定初值,也可讀入當(dāng)前值。設(shè)定初值,也可讀入當(dāng)前值。 但對但對1616位的地址,要分兩次讀寫。若工作方式位的地址,要分兩次讀寫。若工作方式設(shè)為自動預(yù)置時,則當(dāng)設(shè)為自動預(yù)置時,則當(dāng)DMADMA傳送結(jié)束,產(chǎn)生傳送結(jié)束,產(chǎn)生/EOP/EOP信信號時,自動將基地址寄存器的內(nèi)容送到當(dāng)前地址號時,自動將基地址寄存器的內(nèi)容送到當(dāng)前地址寄存器中。寄存器中。8.4.2 當(dāng)前字節(jié)寄存
30、器 每個通道均有,每個通道均有,1616位。用于存放位。用于存放DMADMA傳送的當(dāng)前傳送的當(dāng)前字節(jié)數(shù)。實際上是比應(yīng)該傳送的字節(jié)數(shù)少字節(jié)數(shù)。實際上是比應(yīng)該傳送的字節(jié)數(shù)少1 1。因為。因為是從是從0 0減為減為FFFFHFFFFH時,才為結(jié)束。時,才為結(jié)束。 CPU CPU對它的讀寫操作也是連續(xù)兩次進(jìn)行。對它的讀寫操作也是連續(xù)兩次進(jìn)行。 若工作方式設(shè)為自動預(yù)置時,則當(dāng)若工作方式設(shè)為自動預(yù)置時,則當(dāng)DMADMA傳送結(jié)束,傳送結(jié)束,產(chǎn)生產(chǎn)生/EOP/EOP信號時,自動將基字節(jié)寄存器的內(nèi)容送信號時,自動將基字節(jié)寄存器的內(nèi)容送到當(dāng)前字節(jié)寄存器中。到當(dāng)前字節(jié)寄存器中。 若為非自動預(yù)置方式,在減為若為非自動
31、預(yù)置方式,在減為FFFFHFFFFH時,即保持時,即保持不變。不變。8.4.3 基地址寄存器 每個通道均有,每個通道均有,1616位。存放存儲器的基地址,位。存放存儲器的基地址,在自動預(yù)置方式時,傳送結(jié)束時,自動送該基地在自動預(yù)置方式時,傳送結(jié)束時,自動送該基地址到當(dāng)前地址寄存器中。址到當(dāng)前地址寄存器中。 此寄存器不能被此寄存器不能被CPUCPU讀出,在傳送時,也不被修讀出,在傳送時,也不被修改。改。 8.4.4 基字節(jié)寄存器 每個通道均有,每個通道均有,1616位。存放要傳送字節(jié)的數(shù)量,位。存放要傳送字節(jié)的數(shù)量,在自動預(yù)置方式時,傳送結(jié)束時,自動送該基字在自動預(yù)置方式時,傳送結(jié)束時,自動送該
32、基字節(jié)到當(dāng)前字節(jié)寄存器中。此寄存器不能被節(jié)到當(dāng)前字節(jié)寄存器中。此寄存器不能被CPUCPU讀出,讀出,在傳送時,也不被修改。在傳送時,也不被修改。 對對1616位寄存器的讀寫,是先低字節(jié)后高字節(jié)。位寄存器的讀寫,是先低字節(jié)后高字節(jié)。片內(nèi)有一個高片內(nèi)有一個高/ /低觸發(fā)器,復(fù)位時清低觸發(fā)器,復(fù)位時清0 0,操作低字,操作低字節(jié),反轉(zhuǎn)為節(jié),反轉(zhuǎn)為1 1,再操作高字節(jié),再反轉(zhuǎn)為,再操作高字節(jié),再反轉(zhuǎn)為0 0。 8.4.5 命令寄存器 8 8位寄存器,用來控制各種操作。位寄存器,用來控制各種操作。D7D6D5D4D3D2D1D0MM傳送0 禁止1 允許DACK有效0 低電平1 高電平DREQ有效1 低電
33、平0 高電平寫選擇0 不擴(kuò)展1 擴(kuò)展D3=1時無效優(yōu)先級0 固定1 循環(huán)時序0 正常1 壓縮D0=1時無效8237操作0 允許1 禁止通道0地址保持不變0 禁止1 允許D0=0時無效 8.4.5 命令寄存器 8 8位寄存器,用來控制各種操作。位寄存器,用來控制各種操作。D7D6D5D4D3D2D1D0D0D0: MMMM的傳送控制,的傳送控制,1 1允許允許0 0禁止。允許時,禁止。允許時,0 0通道的當(dāng)前地址寄存器存放源地址,通道的當(dāng)前地址寄存器存放源地址,1 1通道的當(dāng)前通道的當(dāng)前地址寄存器存放目的地址,地址寄存器存放目的地址,1 1通道的當(dāng)前字節(jié)計數(shù)通道的當(dāng)前字節(jié)計數(shù)器控制傳送的結(jié)束。傳
34、送時,先從源地址讀出一器控制傳送的結(jié)束。傳送時,先從源地址讀出一字節(jié)到暫存器,再從暫存器寫入到目的地址。字節(jié)到暫存器,再從暫存器寫入到目的地址。D1D1:在:在D0=1D0=1允許允許M-MM-M傳送時,控制通道的當(dāng)前地址傳送時,控制通道的當(dāng)前地址寄存器的值是否改變,寄存器的值是否改變,1 1不變,不變,0 0改變。不變時,改變。不變時,即把同一字節(jié)的源數(shù)據(jù)寫入到一片目的地址中。即把同一字節(jié)的源數(shù)據(jù)寫入到一片目的地址中。當(dāng)當(dāng)D0=0D0=0時,此位無效。時,此位無效。 8.4.5 命令寄存器 8 8位寄存器,用來控制各種操作。位寄存器,用來控制各種操作。D7D6D5D4D3D2D1D0D2D2
35、:82378237是否工作的控制位,是否工作的控制位,0 0允許允許1 1禁止。禁止。D5D5、D3D3:與時序有關(guān)的控制位。:與時序有關(guān)的控制位。D4D4:優(yōu)先級的選擇,:優(yōu)先級的選擇,0 0固定固定( (由高到低為由高到低為0123)0123),1 1循環(huán)。循環(huán)。D6D6:DREQDREQ的有效電平選擇位,的有效電平選擇位,0 0高高1 1低。低。D7D7:DACKDACK的有效電平的選擇位,的有效電平的選擇位,0 0低低1 1高。高。8.4.6 工作寄存器又稱方式控制寄存器,每個通道均有,又稱方式控制寄存器,每個通道均有,8 8位。指定位。指定操作類型、傳送方式、是否自動預(yù)置、地址加操作
36、類型、傳送方式、是否自動預(yù)置、地址加/ /減。減。D7D6D5D4D3D2D1D0自動預(yù)置0 禁止1 允許地址0 加11 減100 校驗傳送01 寫傳送10 讀傳送11 非法D7D6=11 無效通道選擇00 001 110 211 3傳送方式00 請求01 單字節(jié)10 數(shù)據(jù)塊11 級連8.4.6 工作寄存器又稱方式控制寄存器,每個通道均有,又稱方式控制寄存器,每個通道均有,8 8位。指定位。指定操作類型、傳送方式、是否自動預(yù)置、地址加操作類型、傳送方式、是否自動預(yù)置、地址加/ /減。減。D7D6D5D4D3D2D1D0D1D0D1D0:通道選擇位,:通道選擇位,0000、0101、1010、1
37、111選擇通道選擇通道0 0、1 1、2 2、3 3。即此命令是給哪一個通道的。即此命令是給哪一個通道的。8.4.6 工作寄存器又稱方式控制寄存器,每個通道均有,又稱方式控制寄存器,每個通道均有,8 8位。指定位。指定操作類型、傳送方式、是否自動預(yù)置、地址加操作類型、傳送方式、是否自動預(yù)置、地址加/ /減。減。D7D6D5D4D3D2D1D0D3D2D3D2:傳送方式選擇位。:傳送方式選擇位。 0000為校驗傳送。實際上不傳送,主要用來對讀為校驗傳送。實際上不傳送,主要用來對讀/ /寫傳送進(jìn)行校驗。由寫傳送進(jìn)行校驗。由82378237產(chǎn)生地址信息,不影響產(chǎn)生地址信息,不影響/EOP/EOP。不
38、發(fā)出存儲器和外設(shè)的讀。不發(fā)出存儲器和外設(shè)的讀/ /寫信號,所以不寫信號,所以不能傳送信息。但能傳送信息。但82378237仍保持對總線的控制權(quán),外仍保持對總線的控制權(quán),外設(shè)可使用這些信號,對外設(shè)內(nèi)部對指定數(shù)據(jù)塊的設(shè)可使用這些信號,對外設(shè)內(nèi)部對指定數(shù)據(jù)塊的每一個字節(jié)進(jìn)行存取,以進(jìn)行校驗。使用這種方每一個字節(jié)進(jìn)行存取,以進(jìn)行校驗。使用這種方式時,應(yīng)禁止式時,應(yīng)禁止MMMM。8.4.6 工作寄存器又稱方式控制寄存器,每個通道均有,又稱方式控制寄存器,每個通道均有,8 8位。指定位。指定操作類型、傳送方式、是否自動預(yù)置、地址加操作類型、傳送方式、是否自動預(yù)置、地址加/ /減。減。D7D6D5D4D3D
39、2D1D0D3D2D3D2:傳送方式選擇位。:傳送方式選擇位。 0101為寫傳送。從外設(shè)讀出為寫傳送。從外設(shè)讀出(/IOR)(/IOR),寫入存儲器,寫入存儲器(/MEMW)(/MEMW)。 1010為讀傳送。從存儲器讀出為讀傳送。從存儲器讀出(/MEMR)(/MEMR),寫入外設(shè),寫入外設(shè)(/IOW)(/IOW)。 1111為非法。為非法。8.4.6 工作寄存器又稱方式控制寄存器,每個通道均有,又稱方式控制寄存器,每個通道均有,8 8位。指定位。指定操作類型、傳送方式、是否自動預(yù)置、地址加操作類型、傳送方式、是否自動預(yù)置、地址加/ /減。減。D7D6D5D4D3D2D1D0D4D4:是否自動
40、預(yù)置選擇位。:是否自動預(yù)置選擇位。1 1允許允許0 0禁止。禁止。自動預(yù)置:收到自動預(yù)置:收到/EOP/EOP信號后,自動將基地址寄存信號后,自動將基地址寄存器內(nèi)容裝入當(dāng)前地址寄存器,基字節(jié)數(shù)寄存器內(nèi)器內(nèi)容裝入當(dāng)前地址寄存器,基字節(jié)數(shù)寄存器內(nèi)容裝入當(dāng)前字節(jié)數(shù)計數(shù)器,在下一次容裝入當(dāng)前字節(jié)數(shù)計數(shù)器,在下一次DMADMA時即可再時即可再次傳送同樣的字節(jié)數(shù)到同樣的地址中。次傳送同樣的字節(jié)數(shù)到同樣的地址中。D5D5:地址增減選擇位,:地址增減選擇位,0 0加加1 1減。減。D7D6D7D6:工作方式選擇位。:工作方式選擇位。0000、0101、1010、1111分別為分別為請求方式、單字節(jié)方式、數(shù)據(jù)塊
41、方式、級連方式。請求方式、單字節(jié)方式、數(shù)據(jù)塊方式、級連方式。8.4.7 請求寄存器 對對M MM M的傳送,必須由軟件來啟動,由的傳送,必須由軟件來啟動,由CPUCPU對請對請求寄存器寫入命令,以啟動相應(yīng)通道的求寄存器寫入命令,以啟動相應(yīng)通道的M MM M請求。請求。M MM M傳送必定是成組傳送的。只能寫入,不能讀傳送必定是成組傳送的。只能寫入,不能讀出。出。D7D6D5D4D3D2D1D00 復(fù)位請求位1 置位請求位通道選擇00 001 110 211 38.4.8 屏蔽寄存器 選擇是否禁止各通道接收選擇是否禁止各通道接收DMADMA請求信號請求信號DREQDREQ,0 0允許允許1 1禁
42、止。復(fù)位時,各通道均禁止禁止。復(fù)位時,各通道均禁止( (置置1)1)。有兩。有兩種屏蔽字,端口不同。種屏蔽字,端口不同。1.1.通道屏蔽字通道屏蔽字D7D6D5D4D3D2D1D00 復(fù)位屏蔽位1 置位屏蔽位通道選擇00 001 110 211 32.2.主屏蔽字主屏蔽字 D0D0D3D3分別為通道分別為通道0-30-3的屏蔽位。的屏蔽位。 8.4.9 狀態(tài)寄存器 一個可由一個可由CPUCPU讀出的讀出的8 8位寄存器,位寄存器,D0D0D3D3表示通表示通道道0-30-3是否傳送結(jié)束,產(chǎn)生了是否傳送結(jié)束,產(chǎn)生了TCTC,1 1為有,為有,0 0為無。為無。 D4 D4D7D7表示通道表示通道
43、0-30-3是否有是否有DMADMA請求,請求,0 0無,無,1 1有。有。D7D6D5D4D3D2D1D0 8.4.10 暫存寄存器 一個一個8 8位的寄存器,在位的寄存器,在M MM M傳送方式時,暫存由傳送方式時,暫存由存儲器中讀出的數(shù)據(jù),再傳送到另一個存儲區(qū)中。存儲器中讀出的數(shù)據(jù),再傳送到另一個存儲區(qū)中。傳送結(jié)束時,保持最后一個數(shù)據(jù),并可由傳送結(jié)束時,保持最后一個數(shù)據(jù),并可由CPUCPU讀出。讀出??捎煽捎蒖ESETRESET清除。清除。 8.4.11 軟件命令 3 3條軟件命令。條軟件命令。1.1.主清除命令,作用同主清除命令,作用同RESETRESET。使控制寄存器、狀。使控制寄存
44、器、狀態(tài)寄存器、各通道的請求寄存器、暫存器、字節(jié)態(tài)寄存器、各通道的請求寄存器、暫存器、字節(jié)指示器均清指示器均清0 0,使屏蔽寄存器各位均置,使屏蔽寄存器各位均置1 1,使,使82378237進(jìn)入空閑期,經(jīng)便進(jìn)行編程。進(jìn)入空閑期,經(jīng)便進(jìn)行編程。2.2.清除字節(jié)指示器命令,即使字節(jié)觸發(fā)器清清除字節(jié)指示器命令,即使字節(jié)觸發(fā)器清0 0,以,以便操作低字節(jié)。便操作低字節(jié)。82378237各通道的地址寄存器、字節(jié)各通道的地址寄存器、字節(jié)數(shù)寄存器均為數(shù)寄存器均為1616位,而位,而82378237的數(shù)據(jù)總線為的數(shù)據(jù)總線為8 8位,需位,需要連續(xù)要連續(xù)2 2次寫入,先低后高。字節(jié)指示器為次寫入,先低后高。字節(jié)
45、指示器為0 0時訪時訪問低字節(jié),隨后,此指示器變?yōu)閱柕妥止?jié),隨后,此指示器變?yōu)? 1,為,為1 1時訪問高時訪問高字節(jié)。字節(jié)。3.3.清除屏蔽寄存器命令,清除清除屏蔽寄存器命令,清除4 4個通道的屏蔽,使個通道的屏蔽,使各通道均能接受各通道均能接受DMADMA的請求。的請求。8.5 8237A的編程及應(yīng)用8.5.1 8237A8.5.1 8237A主要寄存器端口地址分配主要寄存器端口地址分配8.5.2 8237A8.5.2 8237A編程的一般步驟編程的一般步驟8.5.3 8237A8.5.3 8237A的應(yīng)用舉例的應(yīng)用舉例8.5.1 8237A主要寄存器端口地址分配 4 4條地址線,可選擇條
46、地址線,可選擇1616個個寄存器端口。寄存器端口。A3A2A1A0通道號通道號 讀讀寫寫00000當(dāng)前地址當(dāng)前地址當(dāng)前當(dāng)前(基基)地址地址00010當(dāng)前字節(jié)數(shù)當(dāng)前字節(jié)數(shù)當(dāng)前當(dāng)前(基基)字節(jié)數(shù)字節(jié)數(shù)00101當(dāng)前地址當(dāng)前地址當(dāng)前當(dāng)前(基基)地址地址00111當(dāng)前字節(jié)數(shù)當(dāng)前字節(jié)數(shù)當(dāng)前當(dāng)前(基基)字節(jié)數(shù)字節(jié)數(shù)01002當(dāng)前地址當(dāng)前地址當(dāng)前當(dāng)前(基基)地址地址01012字節(jié)數(shù)字節(jié)數(shù)當(dāng)前當(dāng)前(基基)字節(jié)數(shù)字節(jié)數(shù)01103當(dāng)前地址當(dāng)前地址當(dāng)前當(dāng)前(基基)地址地址01113字節(jié)數(shù)字節(jié)數(shù)當(dāng)前當(dāng)前(基基)字節(jié)數(shù)字節(jié)數(shù)1000共用共用狀態(tài)狀態(tài)命令命令8.5.1 8237A主要寄存器端口地址分配 4 4條地址線,可
47、選擇條地址線,可選擇1616個個寄存器端口。寄存器端口。A3A2A1A0通道號通道號讀讀寫寫1001請求請求1010屏蔽一位屏蔽一位1011模式控制模式控制1100清除字節(jié)指示器清除字節(jié)指示器1101暫存暫存主清除主清除1110清除屏蔽寄存器清除屏蔽寄存器1111屏蔽寄存器各位屏蔽寄存器各位8.5.2 8237A編程的一般步驟 8237A 8237A進(jìn)行初始化編程的步驟如下:進(jìn)行初始化編程的步驟如下:(1)(1)輸出主清除命令,使輸出主清除命令,使8237A8237A處于復(fù)位狀態(tài),以處于復(fù)位狀態(tài),以接收新的命令;接收新的命令;(2)(2)寫入工作方式寄存器,以確定寫入工作方式寄存器,以確定82
48、37A8237A工作方式工作方式和傳送類型;和傳送類型;(3)(3)寫入命令寄存器,以控制寫入命令寄存器,以控制8237A8237A的工作;的工作;(4)(4)根據(jù)所選通道,輸入相應(yīng)通道當(dāng)前地址寄存器根據(jù)所選通道,輸入相應(yīng)通道當(dāng)前地址寄存器和基地址寄存器的初始值;和基地址寄存器的初始值;(5)(5)輸入當(dāng)前字節(jié)計數(shù)器和基字節(jié)寄存器的初值;輸入當(dāng)前字節(jié)計數(shù)器和基字節(jié)寄存器的初值;(6)(6)寫入屏蔽寄存器;寫入屏蔽寄存器;(7)(7)寫入請求寄存器,便可由軟件寫入請求寄存器,便可由軟件DMADMA傳送。否則,傳送。否則,經(jīng)過經(jīng)過(1)(1)(6)(6)步編程后,由通道步編程后,由通道DREQDR
49、EQ啟動啟動DMADMA傳送傳送過程。過程。8.5.2 8237A編程的一般步驟【例例8.18.1】利用通道利用通道1 1從外設(shè)輸入從外設(shè)輸入54KB54KB的數(shù)據(jù)傳送的數(shù)據(jù)傳送到到5678H5678H開始的存儲區(qū)中,增量傳送,塊傳送方式,開始的存儲區(qū)中,增量傳送,塊傳送方式,傳送結(jié)束不自動重置。外設(shè)的傳送結(jié)束不自動重置。外設(shè)的DREQDREQ和和DACKDACK均為高均為高電平有效。電平有效。82378237的端口地址為的端口地址為50H5FH50H5FH。分析:分析:D7 D6 D5 D4 D3 D2 D1 D0模式控制字模式控制字10000101屏蔽字屏蔽字00000001命令寄存器命令
50、寄存器101000008.5.2 8237A編程的一般步驟【例例8.18.1】OUTOUT5DH,AL5DH,AL; ;主清命令主清命令MOVMOVAL,78HAL,78H; ;基地址和當(dāng)前地址的低字節(jié)基地址和當(dāng)前地址的低字節(jié)OUTOUT52H,AL52H,AL; ;MOVMOVAL,56HAL,56H; ;基地址和當(dāng)前地址的高字節(jié)基地址和當(dāng)前地址的高字節(jié)OUTOUT52H,AL52H,AL; ;MOVMOVAL,0FFHAL,0FFH; ;基字節(jié)數(shù)和當(dāng)前字節(jié)數(shù)的低字節(jié)基字節(jié)數(shù)和當(dāng)前字節(jié)數(shù)的低字節(jié)OUTOUT53H,AL53H,AL; ;MOVMOVAL,0D7HAL,0D7H; ;基字節(jié)數(shù)和
51、當(dāng)前字節(jié)數(shù)的高字節(jié)基字節(jié)數(shù)和當(dāng)前字節(jié)數(shù)的高字節(jié)OUTOUT53H,AL53H,AL; ;MOVMOVAL,85HAL,85H; ;模式控制字模式控制字OUTOUT5BH,AL5BH,AL; ;MOVMOVAL,01HAL,01H; ;屏蔽控制字屏蔽控制字OUTOUT5AH,AL5AH,AL; ;MOVMOVAL,0A0HAL,0A0H; ;命令字命令字OUTOUT58H,AL58H,AL8.5.2 8237A編程的一般步驟【例例8.28.2】在某一個系統(tǒng)中,用一片在某一個系統(tǒng)中,用一片8237A8237A設(shè)計了設(shè)計了DMADMA傳輸電路,傳輸電路,8237A8237A的基地址為的基地址為00H
52、00H。要求利用它。要求利用它的通道的通道0 0,從外設(shè),從外設(shè)( (如磁盤如磁盤) )輸入一個輸入一個1KB1KB的數(shù)據(jù)塊,的數(shù)據(jù)塊,傳送到內(nèi)存中傳送到內(nèi)存中6000H6000H開始的區(qū)域中,每傳送一個字開始的區(qū)域中,每傳送一個字節(jié),地址增節(jié),地址增1 1,采用數(shù)據(jù)塊連續(xù)傳送方式,禁止自,采用數(shù)據(jù)塊連續(xù)傳送方式,禁止自動預(yù)置,外設(shè)的動預(yù)置,外設(shè)的DMADMA請求信號請求信號DREQDREQ和響應(yīng)信號和響應(yīng)信號DACKDACK均為高電平有效。初始化均為高電平有效。初始化8237A8237A的程序如下:的程序如下:8.5.2 8237A編程的一般步驟【例例8.28.2】DMADMA EQUEQU
53、 00H00H;8237A;8237A的基地址為的基地址為00H00H; ;輸出主清除命令輸出主清除命令OUTOUT DMA+0DH,ALDMA+0DH,AL; ;發(fā)總清除命令發(fā)總清除命令; ;將基地址將基地址6000H6000H寫入通道寫入通道0 0基地址和當(dāng)前地址寄存基地址和當(dāng)前地址寄存器,分兩次進(jìn)行器,分兩次進(jìn)行MOVMOV AX,6000HAX,6000H ; ;基地址和當(dāng)前地址寄存器基地址和當(dāng)前地址寄存器OUTOUT DMA+00H,ALDMA+00H,AL; ;先寫入低先寫入低8 8位地址位地址MOVMOV AL,AHAL,AHOUTOUT DMA+00H,ALDMA+00H,AL
54、; ;后寫入高后寫入高8 8位地址位地址8.5.2 8237A編程的一般步驟【例例8.28.2】; ;把要傳送的總字節(jié)數(shù)把要傳送的總字節(jié)數(shù)1K=400H1K=400H減減1 1后,送到基字計后,送到基字計數(shù)器和當(dāng)前字計數(shù)器數(shù)器和當(dāng)前字計數(shù)器MOVMOV AX,0400HAX,0400H; ;總字節(jié)數(shù)總字節(jié)數(shù)DECDEC AXAX; ;總字節(jié)數(shù)減總字節(jié)數(shù)減1 1OUTOUT DMA+01H,ALDMA+01H,AL; ;先寫入字節(jié)數(shù)的低先寫入字節(jié)數(shù)的低8 8位位MOVMOV AL,AHAL,AHOUTOUT DMA+01H,ALDMA+01H,AL; ;后寫入字節(jié)數(shù)的高后寫入字節(jié)數(shù)的高8 8位位
55、; ;寫入方式字:數(shù)據(jù)塊傳送,地址增量,禁止自動寫入方式字:數(shù)據(jù)塊傳送,地址增量,禁止自動預(yù)置,寫傳送,選擇通道預(yù)置,寫傳送,選擇通道MOVMOV AL,10000100BAL,10000100B ; ;方式字方式字OUTOUT DMA+0BH,ALDMA+0BH,AL; ;寫入方式字寫入方式字8.5.2 8237A編程的一般步驟【例例8.28.2】; ;寫入屏蔽字:通道寫入屏蔽字:通道0 0屏蔽位清屏蔽位清0 0MOVMOV AL,00HAL,00H; ;屏蔽字屏蔽字OUTOUT DMA+0AH,ALDMA+0AH,AL; ;寫入寫入8237A8237A; ;寫入命令字:寫入命令字:DACK
56、DACK和和DREQDREQ為高電平,固定優(yōu)先級,為高電平,固定優(yōu)先級,非存儲器間傳送非存儲器間傳送MOVMOV AL,10000000BAL,10000000B ; ;命令字命令字OUTOUT DMA+08H,ALDMA+08H,AL; ;寫入寫入8237A8237A; ;寫入請求字:通道寫入請求字:通道0 0產(chǎn)生請求產(chǎn)生請求MOVMOV AL,04HAL,04H; ;請求字請求字OUTOUT DMA+09H,ALDMA+09H,AL; ;將請求字寫入將請求字寫入8237A8237A,用軟件啟動用軟件啟動8237A8237A8.5.3 8237A的應(yīng)用舉例 在在PC/XTPC/XT機(jī)中,用一
57、片機(jī)中,用一片8237A-58237A-5構(gòu)成構(gòu)成DMADMA控制電路控制電路形成形成4 4個個DMADMA通道,提供數(shù)據(jù)寬度為通道,提供數(shù)據(jù)寬度為8 8位的位的DMADMA傳輸。傳輸。使用固定優(yōu)先級,所以通道使用固定優(yōu)先級,所以通道0 0的優(yōu)先級最高,通道的優(yōu)先級最高,通道3 3最低。這最低。這4 4個個DMADMA通道的功能分配如下:通道的功能分配如下:通道通道0 0 用于動態(tài)用于動態(tài)RAMRAM的刷新的刷新通道通道1 1 為用戶保留為用戶保留通道通道2 2 用于軟盤用于軟盤DMADMA傳送傳送通道通道3 3 用于硬盤用于硬盤DMADMA傳送傳送8.5.3 8237A的應(yīng)用舉例 在在PC/
58、XTPC/XT機(jī)進(jìn)行軟盤或硬盤機(jī)進(jìn)行軟盤或硬盤DMADMA傳輸時,先要對傳輸時,先要對8237A-58237A-5進(jìn)行編程。進(jìn)行編程。 下面是下面是ROM BIOSROM BIOS中的一段程序,名為中的一段程序,名為DMA_SETUPDMA_SETUP,位于首地址為,位于首地址為FEEC8HFEEC8H的內(nèi)存中。它被的內(nèi)存中。它被讀軟盤、寫軟盤和軟盤校驗程序等調(diào)用,用來向讀軟盤、寫軟盤和軟盤校驗程序等調(diào)用,用來向8237A-58237A-5輸入所要讀寫數(shù)據(jù)的輸入所要讀寫數(shù)據(jù)的2020位首地址和字計數(shù)位首地址和字計數(shù)器初始值。器初始值。8.5.3 8237A的應(yīng)用舉例 調(diào)用前要求的入口參數(shù)是:調(diào)
59、用前要求的入口參數(shù)是: AL=DMA AL=DMA方式字方式字( (讀讀=46H=46H,寫,寫=4AH=4AH,校驗,校驗=42H)=42H)。 DH= DH=要傳送的扇區(qū)個數(shù)。每個扇區(qū)的字節(jié)數(shù)基數(shù)要傳送的扇區(qū)個數(shù)。每個扇區(qū)的字節(jié)數(shù)基數(shù)為為128128,實際由磁盤驅(qū)動器的規(guī)格而定,可能是,實際由磁盤驅(qū)動器的規(guī)格而定,可能是128128,256256,512512或或10241024個,也就是說可能是個,也就是說可能是128128的的1 1,2 2,4 4,8 8倍,表示成倍,表示成2 2的的N N次方,次方,N N分別為分別為0 0、1 1、2 2、3 3。 N N存放在磁盤基值區(qū)存放在磁盤
60、基值區(qū)DISK_BASEDISK_BASE的第的第0303號單元中,號單元中,可由它和可由它和DHDH中的扇區(qū)數(shù)計算出實際要傳送的總字中的扇區(qū)數(shù)計算出實際要傳送的總字節(jié)數(shù)。節(jié)數(shù)。8.5.3 8237A的應(yīng)用舉例ES:BX=ES:BX=所讀寫數(shù)據(jù)的內(nèi)存首地址所讀寫數(shù)據(jù)的內(nèi)存首地址( (段地址:偏移量段地址:偏移量) )DMA_SETUP PROC NEARDMA_SETUP PROC NEARPUSHPUSH CXCX; ;保護(hù)保護(hù)CXCX的值的值CLICLI; ;關(guān)中斷關(guān)中斷OUTOUT DMA+0CH,ALDMA+0CH,AL; ;清除先清除先/ /后觸發(fā)器后觸發(fā)器PUSHPUSH AXAX
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分包工人合同范本
- 上海工程裝修合同范本
- 倉庫電工維修合同范例
- 單元樓租賃合同范本
- 借款經(jīng)濟(jì)合同范例
- 基坑及邊坡監(jiān)測沉降觀測合同范本
- 2025年度建筑工程資料歸檔與歸檔技術(shù)支持承包合同范本
- 個人住宅租房合同范本
- 企業(yè)金基金審計合同范例
- 全款購房定金合同范本
- 天津市河西區(qū)2024-2025學(xué)年四年級(上)期末語文試卷(含答案)
- 2025年空白離婚協(xié)議書
- 校長在行政會上總結(jié)講話結(jié)合新課標(biāo)精神給學(xué)校管理提出3點建議
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標(biāo)準(zhǔn)
- 2025年護(hù)理質(zhì)量與安全管理工作計劃
- 湖南大學(xué) 嵌入式開發(fā)與應(yīng)用(張自紅)教案
- 地下商業(yè)街的規(guī)劃設(shè)計
- 長安大學(xué)《畫法幾何與機(jī)械制圖一》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024-2030年全球及中國低密度聚乙烯(LDPE)行業(yè)需求動態(tài)及未來發(fā)展趨勢預(yù)測報告
- 醫(yī)院物業(yè)管理制度
- 初中數(shù)學(xué)思維訓(xùn)練雙十字相乘法因式分解練習(xí)100道及答案
評論
0/150
提交評論