




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河南大學(xué)計(jì)算機(jī)與信息工程學(xué)院授課人:金勇234nDMA (Direct Memory Access)技術(shù)是一種高速的數(shù)據(jù)傳輸技術(shù)是一種高速的數(shù)據(jù)傳輸方式,允許在外部設(shè)備和存儲(chǔ)器之間、存儲(chǔ)器與存儲(chǔ)器方式,允許在外部設(shè)備和存儲(chǔ)器之間、存儲(chǔ)器與存儲(chǔ)器之間等之間等直接傳輸直接傳輸數(shù)據(jù)。數(shù)據(jù)。nDMA方式方式傳輸特點(diǎn)傳輸特點(diǎn) q中斷方式下,中斷方式下,CPU需要執(zhí)行多條指令,占用一定的時(shí)間;而需要執(zhí)行多條指令,占用一定的時(shí)間;而DMA傳送傳送1個(gè)字節(jié)只占用個(gè)字節(jié)只占用CPU的的1個(gè)總線周期。個(gè)總線周期。 qDMA的響應(yīng)速度比中斷快。的響應(yīng)速度比中斷快。IO設(shè)備發(fā)出中斷請(qǐng)求后,設(shè)備發(fā)出中斷請(qǐng)求后,CPU要
2、執(zhí)要執(zhí)行完當(dāng)前指令后才給予響應(yīng)并且要保護(hù)現(xiàn)場(chǎng),而行完當(dāng)前指令后才給予響應(yīng)并且要保護(hù)現(xiàn)場(chǎng),而DMA請(qǐng)求是在總請(qǐng)求是在總線周期執(zhí)行完后即可響應(yīng)。線周期執(zhí)行完后即可響應(yīng)。 q對(duì)于快速的對(duì)于快速的IO設(shè)備,中斷方式,其傳輸速度已無法滿足要求。設(shè)備,中斷方式,其傳輸速度已無法滿足要求。必須采用必須采用DMA方式來完成快速方式來完成快速IO設(shè)備的數(shù)據(jù)傳送的操作。設(shè)備的數(shù)據(jù)傳送的操作。 5 DMA 傳輸將數(shù)據(jù)從一個(gè)地址空間復(fù)制到另外一個(gè)地址空間。傳輸將數(shù)據(jù)從一個(gè)地址空間復(fù)制到另外一個(gè)地址空間。當(dāng)當(dāng) CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器控制器來實(shí)行和
3、完成。來實(shí)行和完成。 典型的例子就是移動(dòng)一個(gè)外部?jī)?nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)典型的例子就是移動(dòng)一個(gè)外部?jī)?nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)存區(qū)。像這樣的操作并沒有讓處理器工作拖延,反而可以被重新存區(qū)。像這樣的操作并沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。排程去處理其他的工作。DMA 傳輸對(duì)于高效能嵌入式系統(tǒng)算法傳輸對(duì)于高效能嵌入式系統(tǒng)算法和網(wǎng)絡(luò)是很重要的。和網(wǎng)絡(luò)是很重要的。 在實(shí)現(xiàn)在實(shí)現(xiàn)DMA傳輸時(shí),是由傳輸時(shí),是由DMA控制器直接掌管總線,因此,控制器直接掌管總線,因此,存在著一個(gè)總線控制權(quán)轉(zhuǎn)移問題。即存在著一個(gè)總線控制權(quán)轉(zhuǎn)移問題。即DMA傳輸前,傳輸前,CPU要把總線要把總線控制
4、權(quán)交給控制權(quán)交給DMA控制器,而在結(jié)束控制器,而在結(jié)束DMA傳輸后,傳輸后,DMA控制器應(yīng)控制器應(yīng)立即把總線控制權(quán)再交回給立即把總線控制權(quán)再交回給CPU。6nHOLD和和HLDA用于用于DMA方式請(qǐng)求和響應(yīng),方式請(qǐng)求和響應(yīng),DMAC(DMA控制器)是控制器)是DMA傳送的核心電路。傳送的核心電路。 DMA傳送過程傳送過程一般分為如下四個(gè)階段:一般分為如下四個(gè)階段: q請(qǐng)求階段;請(qǐng)求階段;q響應(yīng)階段;響應(yīng)階段;q數(shù)據(jù)傳輸階段;數(shù)據(jù)傳輸階段;q傳輸結(jié)束階段。傳輸結(jié)束階段。71)DMA請(qǐng)求請(qǐng)求CPU對(duì)對(duì)DMA控制器初始化,并向控制器初始化,并向I/O接口發(fā)出接口發(fā)出操作命令,操作命令,I/O接口提出
5、接口提出DMA請(qǐng)求。請(qǐng)求。82)DMA響應(yīng)響應(yīng)DMA控制器對(duì)控制器對(duì)DMA請(qǐng)求判別優(yōu)先級(jí)及屏蔽,向總線請(qǐng)求判別優(yōu)先級(jí)及屏蔽,向總線裁決邏輯提出總線請(qǐng)求。當(dāng)裁決邏輯提出總線請(qǐng)求。當(dāng)CPU執(zhí)行完當(dāng)前總線周期即執(zhí)行完當(dāng)前總線周期即可釋放總線控制權(quán)。此時(shí),總線裁決邏輯輸出總線應(yīng)答,可釋放總線控制權(quán)。此時(shí),總線裁決邏輯輸出總線應(yīng)答,表示表示DMA已經(jīng)響應(yīng),通過已經(jīng)響應(yīng),通過DMA控制器通知控制器通知I/O接口開始接口開始DMA傳輸。傳輸。93)DMA傳輸傳輸DMA控制器獲得總線控制權(quán)后,控制器獲得總線控制權(quán)后,CPU即刻掛起或只執(zhí)行內(nèi)部操作,即刻掛起或只執(zhí)行內(nèi)部操作,由由DMA控制器輸出讀寫命令,直接控
6、制控制器輸出讀寫命令,直接控制RAM與與I/O接口進(jìn)行接口進(jìn)行DMA傳輸。傳輸。 在在DMA控制器的控制下,在存儲(chǔ)器和外部設(shè)備之間直接進(jìn)行數(shù)據(jù)控制器的控制下,在存儲(chǔ)器和外部設(shè)備之間直接進(jìn)行數(shù)據(jù)傳送,在傳送過程中不需要中央處理器的參與。開始時(shí)需提供要傳送傳送,在傳送過程中不需要中央處理器的參與。開始時(shí)需提供要傳送的數(shù)據(jù)的起始位置和數(shù)據(jù)長(zhǎng)度。的數(shù)據(jù)的起始位置和數(shù)據(jù)長(zhǎng)度。104)DMA結(jié)束結(jié)束當(dāng)完成規(guī)定的成批數(shù)據(jù)傳送后,當(dāng)完成規(guī)定的成批數(shù)據(jù)傳送后,DMA控制器即釋放總線控制權(quán),控制器即釋放總線控制權(quán),并向并向I/O接口發(fā)出結(jié)束信號(hào)。當(dāng)接口發(fā)出結(jié)束信號(hào)。當(dāng)I/O接口收到結(jié)束信號(hào)后,一方面停止接口收到結(jié)
7、束信號(hào)后,一方面停止I/O設(shè)備的工作,另一方面向設(shè)備的工作,另一方面向CPU提出中斷請(qǐng)求,并執(zhí)行一段檢查本提出中斷請(qǐng)求,并執(zhí)行一段檢查本次次DMA傳輸操作正確性的代碼。最后,帶著本次操作結(jié)果及狀態(tài)繼續(xù)傳輸操作正確性的代碼。最后,帶著本次操作結(jié)果及狀態(tài)繼續(xù)執(zhí)行原來的程序。執(zhí)行原來的程序。由此可見,由此可見,DMA傳輸方式無需傳輸方式無需CPU直接控制傳輸,也沒有中斷直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場(chǎng)和恢復(fù)現(xiàn)處理方式那樣保留現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過程,通過硬件為場(chǎng)的過程,通過硬件為RAM與與I/O設(shè)備開辟一條直接傳送數(shù)據(jù)設(shè)備開辟一條直接傳送數(shù)據(jù)的通路,使的通路,使CPU的效率大為提高。的效率大
8、為提高。 111)停止)停止CPU訪問內(nèi)存訪問內(nèi)存 當(dāng)外圍設(shè)備要求傳送一批數(shù)據(jù)時(shí),由當(dāng)外圍設(shè)備要求傳送一批數(shù)據(jù)時(shí),由DMA控制器發(fā)一個(gè)控制器發(fā)一個(gè)停止信號(hào)停止信號(hào)給給CPU,要求,要求CPU放棄對(duì)地址總線、數(shù)據(jù)總線和有關(guān)控制總線的使用放棄對(duì)地址總線、數(shù)據(jù)總線和有關(guān)控制總線的使用權(quán)權(quán)DMA控制器獲得總線控制權(quán)以后,開始進(jìn)行數(shù)據(jù)傳送在一批數(shù)控制器獲得總線控制權(quán)以后,開始進(jìn)行數(shù)據(jù)傳送在一批數(shù)據(jù)傳送完畢后,據(jù)傳送完畢后,DMA控制器通知控制器通知CPU可以使用內(nèi)存,并把總線控制權(quán)可以使用內(nèi)存,并把總線控制權(quán)交還給交還給CPU在這種在這種DMA傳送過程中,傳送過程中,CPU基本處于不工作狀態(tài)或者基本處于
9、不工作狀態(tài)或者保持狀態(tài)保持狀態(tài) 優(yōu)點(diǎn)優(yōu)點(diǎn): 控制簡(jiǎn)單,它適用于數(shù)據(jù)控制簡(jiǎn)單,它適用于數(shù)據(jù)傳輸率很高的設(shè)備進(jìn)行成組傳送。傳輸率很高的設(shè)備進(jìn)行成組傳送。 缺點(diǎn)缺點(diǎn): 在在DMA控制器訪內(nèi)階段,控制器訪內(nèi)階段,內(nèi)存的效能沒有充分發(fā)揮,相當(dāng)內(nèi)存的效能沒有充分發(fā)揮,相當(dāng)一部分內(nèi)存工作周期是空閑的。一部分內(nèi)存工作周期是空閑的。這是因?yàn)椋鈬O(shè)備傳送兩個(gè)數(shù)這是因?yàn)?,外圍設(shè)備傳送兩個(gè)數(shù)據(jù)之間的間隔一般總是大于內(nèi)存據(jù)之間的間隔一般總是大于內(nèi)存存儲(chǔ)周期,即使高速存儲(chǔ)周期,即使高速I/O設(shè)備也是設(shè)備也是如此。如此。122)周期挪用:)周期挪用: 當(dāng)當(dāng)I/O設(shè)備沒有設(shè)備沒有DMA請(qǐng)求時(shí),請(qǐng)求時(shí),CPU按程序要求訪問按
10、程序要求訪問內(nèi)存;一旦內(nèi)存;一旦I/O設(shè)備有設(shè)備有DMA請(qǐng)求,則由請(qǐng)求,則由I/O設(shè)備挪用一個(gè)設(shè)備挪用一個(gè)或幾個(gè)內(nèi)存周期?;驇讉€(gè)內(nèi)存周期。13I/O設(shè)備要求設(shè)備要求DMA傳送時(shí)可能遇到兩種情況:傳送時(shí)可能遇到兩種情況: (1)此時(shí)此時(shí)CPU不需要訪內(nèi),如不需要訪內(nèi),如CPU正在執(zhí)行乘法指令。由于乘正在執(zhí)行乘法指令。由于乘法指令執(zhí)行時(shí)間較長(zhǎng),此時(shí)法指令執(zhí)行時(shí)間較長(zhǎng),此時(shí)I/O訪內(nèi)與訪內(nèi)與CPU訪內(nèi)沒有沖突,即訪內(nèi)沒有沖突,即I/O設(shè)設(shè)備挪用一二個(gè)內(nèi)存周期對(duì)備挪用一二個(gè)內(nèi)存周期對(duì)CPU執(zhí)行程序沒有任何影響。執(zhí)行程序沒有任何影響。 (2)I/O設(shè)備要求訪內(nèi)時(shí)設(shè)備要求訪內(nèi)時(shí)CPU也要求訪內(nèi),這就產(chǎn)生了
11、訪內(nèi)沖突,也要求訪內(nèi),這就產(chǎn)生了訪內(nèi)沖突,在這種情況下在這種情況下I/O設(shè)備訪內(nèi)優(yōu)先,因?yàn)樵O(shè)備訪內(nèi)優(yōu)先,因?yàn)镮/O訪內(nèi)有時(shí)間要求,前一個(gè)訪內(nèi)有時(shí)間要求,前一個(gè)I/O數(shù)據(jù)必須在下一個(gè)訪內(nèi)請(qǐng)求到來之前存取完畢。顯然,在這種數(shù)據(jù)必須在下一個(gè)訪內(nèi)請(qǐng)求到來之前存取完畢。顯然,在這種情況下情況下I/O設(shè)備挪用一二個(gè)內(nèi)存周期,意味著設(shè)備挪用一二個(gè)內(nèi)存周期,意味著CPU延緩了對(duì)指令的延緩了對(duì)指令的執(zhí)行,或者更明確地說,在執(zhí)行,或者更明確地說,在CPU執(zhí)行訪內(nèi)指令的過程中插入執(zhí)行訪內(nèi)指令的過程中插入DMA請(qǐng)求,挪用了一二個(gè)內(nèi)存周期。請(qǐng)求,挪用了一二個(gè)內(nèi)存周期。2)周期挪用:)周期挪用: 周期挪用的方法既實(shí)現(xiàn)了周
12、期挪用的方法既實(shí)現(xiàn)了I/O傳送,又傳送,又較好地發(fā)揮了內(nèi)存和較好地發(fā)揮了內(nèi)存和CPU的效率,是一的效率,是一種廣泛采用的方法。但是種廣泛采用的方法。但是I/O設(shè)備每一設(shè)備每一次周期挪用都有申請(qǐng)總線控制權(quán)、建立次周期挪用都有申請(qǐng)總線控制權(quán)、建立線控制權(quán)和歸還總線控制權(quán)的過程,所線控制權(quán)和歸還總線控制權(quán)的過程,所以傳送一個(gè)字對(duì)內(nèi)存來說要占用一個(gè)周以傳送一個(gè)字對(duì)內(nèi)存來說要占用一個(gè)周期,但對(duì)期,但對(duì)DMA控制器來說一般要控制器來說一般要25個(gè)個(gè)內(nèi)存周期內(nèi)存周期(視邏輯線路的延遲而定視邏輯線路的延遲而定)。因。因此,周期挪用的方法適用于此,周期挪用的方法適用于I/O設(shè)備讀設(shè)備讀寫周期大于內(nèi)存存儲(chǔ)周期的情
13、況。寫周期大于內(nèi)存存儲(chǔ)周期的情況。143)DMA與與CPU交替訪內(nèi)交替訪內(nèi) 如果如果CPU的工作周期比內(nèi)存存取周期長(zhǎng)很多,此時(shí)采用交替訪內(nèi)的工作周期比內(nèi)存存取周期長(zhǎng)很多,此時(shí)采用交替訪內(nèi)的方法可以使的方法可以使DMA傳送和傳送和CPU同時(shí)發(fā)揮最高的效率。同時(shí)發(fā)揮最高的效率。 假設(shè)假設(shè)CPU工作周期為工作周期為1.2s,內(nèi)存存取周期小于,內(nèi)存存取周期小于0.6s,那么一個(gè),那么一個(gè)CPU周期可分為周期可分為C1和和C2兩個(gè)分周期,其中兩個(gè)分周期,其中C1供供DMA控制器訪內(nèi),控制器訪內(nèi),C2專供專供CPU訪內(nèi)。訪內(nèi)。153)DMA與與CPU交替訪內(nèi)交替訪內(nèi) 這種方式不需要總線使用權(quán)的申請(qǐng)、建立和
14、歸還過程,總線這種方式不需要總線使用權(quán)的申請(qǐng)、建立和歸還過程,總線使用權(quán)是通過使用權(quán)是通過C1和和C2分時(shí)制分時(shí)制的。的。CPU和和DMA控制器各自有自己控制器各自有自己的訪內(nèi)地址寄存器、數(shù)據(jù)寄存器和讀的訪內(nèi)地址寄存器、數(shù)據(jù)寄存器和讀/寫信號(hào)等控制寄存器。在寫信號(hào)等控制寄存器。在C1周期中,如果周期中,如果DMA控制器有訪內(nèi)請(qǐng)求,可將地址、數(shù)據(jù)等信號(hào)送控制器有訪內(nèi)請(qǐng)求,可將地址、數(shù)據(jù)等信號(hào)送到總線上。在到總線上。在C2周期中,如周期中,如CPU有訪內(nèi)請(qǐng)求,同樣傳送地址、數(shù)有訪內(nèi)請(qǐng)求,同樣傳送地址、數(shù)據(jù)等信號(hào)。事實(shí)上,對(duì)于總線,這是用據(jù)等信號(hào)。事實(shí)上,對(duì)于總線,這是用C1,C2控制的一個(gè)控制的一
15、個(gè)多路轉(zhuǎn)多路轉(zhuǎn)換器換器,這種總線控制權(quán)的轉(zhuǎn)移幾乎不需要什么時(shí)間,所以對(duì),這種總線控制權(quán)的轉(zhuǎn)移幾乎不需要什么時(shí)間,所以對(duì)DMA傳送來講效率是很高的。傳送來講效率是很高的。 這種傳送方式又稱為這種傳送方式又稱為“透明的透明的DMA”方式,其來由是這種方式,其來由是這種DMA傳送對(duì)傳送對(duì)CPU來說,如同透明的玻璃一般,沒有任何感覺或影來說,如同透明的玻璃一般,沒有任何感覺或影響。在透明的響。在透明的DMA方式下工作,方式下工作,CPU既不停止主程序的運(yùn)行,也既不停止主程序的運(yùn)行,也不進(jìn)入等待狀態(tài),是一種高效率的工作方式。當(dāng)然,相應(yīng)的硬件不進(jìn)入等待狀態(tài),是一種高效率的工作方式。當(dāng)然,相應(yīng)的硬件邏輯也就
16、更加復(fù)雜。邏輯也就更加復(fù)雜。 1617 S3C2410 S3C2410芯片的芯片的DMADMA系統(tǒng)擁有系統(tǒng)擁有4 4個(gè)獨(dú)立通道的個(gè)獨(dú)立通道的DMADMA控制控制器器,每個(gè)通道的,每個(gè)通道的DMADMA控制器都可以控制處理芯片內(nèi)部與內(nèi)控制器都可以控制處理芯片內(nèi)部與內(nèi)部之間、芯片內(nèi)部與外部之間、芯片外部與外部之間的數(shù)據(jù)部之間、芯片內(nèi)部與外部之間、芯片外部與外部之間的數(shù)據(jù)傳輸。傳輸。 每一個(gè)每一個(gè)DMADMA通道都可以處理以下通道都可以處理以下4 4種情況的種情況的DMADMA操作操作: n1 1)源設(shè)備和目的設(shè)備都在內(nèi)部系統(tǒng)總線上。)源設(shè)備和目的設(shè)備都在內(nèi)部系統(tǒng)總線上。n2 2)源設(shè)備在內(nèi)部系統(tǒng)總
17、線上,目的設(shè)備在外部總線上。)源設(shè)備在內(nèi)部系統(tǒng)總線上,目的設(shè)備在外部總線上。n3 3)源設(shè)備在外部總線上,目的設(shè)備在內(nèi)部系統(tǒng)總線上。)源設(shè)備在外部總線上,目的設(shè)備在內(nèi)部系統(tǒng)總線上。n4 4)源設(shè)備和目的設(shè)備都在外部總線上。)源設(shè)備和目的設(shè)備都在外部總線上。18請(qǐng)求源請(qǐng)求源0 0請(qǐng)求源請(qǐng)求源1 1請(qǐng)求源請(qǐng)求源2 2請(qǐng)求源請(qǐng)求源3 3請(qǐng)求源請(qǐng)求源4 4通道通道0 0nXDREQ0nXDREQ0UART0UART0SDISDITimerTimerUSBUSB設(shè)備設(shè)備EP1EP1通道通道1 1nXDREQ1nXDREQ1UART1UART1I2SSDII2SSDISPI0SPI0USBUSB設(shè)備設(shè)備E
18、P2EP2通道通道2 2I2SSDOI2SSDOI2SSDII2SSDISDISDITimerTimerUSBUSB設(shè)備設(shè)備EP3EP3通道通道3 3UART2UART2SDISDISPI1SPI1TimerTimerUSBUSB設(shè)備設(shè)備EP4EP4在在H/WH/W請(qǐng)求模式(硬件請(qǐng)求模式)下,請(qǐng)求模式(硬件請(qǐng)求模式)下,S3C2410S3C2410芯片中的芯片中的4 4個(gè)個(gè)DMADMA通道的每一個(gè)通道都可以從通道的每一個(gè)通道都可以從5 5個(gè)個(gè)DMADMA源中選擇一個(gè)源中選擇一個(gè)DMADMA請(qǐng)求源。但請(qǐng)求源。但在在S/WS/W請(qǐng)求模式(軟件請(qǐng)求模式)下,請(qǐng)求模式(軟件請(qǐng)求模式)下,DMADMA請(qǐng)
19、求源就沒有任何意義請(qǐng)求源就沒有任何意義?!咀⒆ⅰ縩XDREQ0和和nXDREQ1表示兩個(gè)外部源(外部設(shè)備),表示兩個(gè)外部源(外部設(shè)備),I2SSDO和和I2SSDI分別表示分別表示IIS 的發(fā)送和接收。的發(fā)送和接收。19qDMADMA請(qǐng)求模式請(qǐng)求模式:表明一個(gè):表明一個(gè)DMADMA操作是由誰(shuí)發(fā)起的。操作是由誰(shuí)發(fā)起的。 S3C2410S3C2410芯片支持芯片支持2 2種種DMADMA請(qǐng)求模式:請(qǐng)求模式:qS/WS/W請(qǐng)求模式請(qǐng)求模式qH/WH/W請(qǐng)求模式請(qǐng)求模式 qDMADMA傳輸模式傳輸模式:描述:描述DMADMA操作觸發(fā)后,數(shù)據(jù)傳輸?shù)耐讲僮饔|發(fā)后,數(shù)據(jù)傳輸?shù)耐?。DMADMA傳輸模式也有
20、傳輸模式也有2 2種:種:q詢問模式(詢問模式(demand modedemand mode)q握手模式(握手模式(handshake modehandshake mode)qDMADMA服務(wù)模式服務(wù)模式:描述了傳輸操作如何結(jié)束。:描述了傳輸操作如何結(jié)束。 q單獨(dú)服務(wù)模式單獨(dú)服務(wù)模式q整體服務(wù)模式整體服務(wù)模式20S3C2410S3C2410芯片的芯片的DMADMA操作可以用包含三個(gè)狀態(tài)的操作可以用包含三個(gè)狀態(tài)的有限狀有限狀態(tài)機(jī)(態(tài)機(jī)(finite state machinefinite state machine,F(xiàn)SMFSM)來表述,具體描述如來表述,具體描述如下:下:q狀態(tài)狀態(tài)1 1(st
21、ate-1state-1):):初始狀態(tài),初始狀態(tài),DMADMA等待等待DMADMA請(qǐng)求。若請(qǐng)求到達(dá)請(qǐng)求。若請(qǐng)求到達(dá),進(jìn)入狀態(tài),進(jìn)入狀態(tài) 2 2。此階段,。此階段,DMAACKDMAACK和和 INTREQINTREQ都為都為 0 0。q狀態(tài)狀態(tài)2 2(state-2state-2):):在此狀態(tài),在此狀態(tài),DMAACKDMAACK變?yōu)樽優(yōu)?1 1, 計(jì)數(shù)器的值(計(jì)數(shù)器的值(CURR_TCCURR_TC)從)從 DCON19:0DCON19:0寄存器加載。寄存器加載。 注意:注意:DMAACKDMAACK仍然為仍然為 1 1,直到它隨后被清,直到它隨后被清 0 0。q狀態(tài)狀態(tài)3 3(state
22、-3state-3):):在此狀態(tài),對(duì)在此狀態(tài),對(duì) DMADMA進(jìn)行原子操作的進(jìn)行原子操作的 subFSMsubFSM(子狀態(tài)機(jī))被初始化。(子狀態(tài)機(jī))被初始化。subFSMsubFSM(子狀態(tài)機(jī))從源地址讀取數(shù)據(jù)(子狀態(tài)機(jī))從源地址讀取數(shù)據(jù)然后將數(shù)據(jù)寫入目的地址。在此操作中,要考慮數(shù)據(jù)大小和傳輸然后將數(shù)據(jù)寫入目的地址。在此操作中,要考慮數(shù)據(jù)大小和傳輸?shù)牡?尺寸尺寸21注意:注意:在單獨(dú)服務(wù)模式下,主狀態(tài)機(jī)的三個(gè)狀態(tài)執(zhí)行完后,在單獨(dú)服務(wù)模式下,主狀態(tài)機(jī)的三個(gè)狀態(tài)執(zhí)行完后,DMA通道就會(huì)通道就會(huì)停止操作,然后等待另一個(gè)停止操作,然后等待另一個(gè)DMA REQ信號(hào)。如果有另一個(gè)信號(hào)。如果有另一個(gè)DM
23、A REQ信號(hào),信號(hào),DMA將重復(fù)這樣的三個(gè)狀態(tài)。因此,每個(gè)基本的將重復(fù)這樣的三個(gè)狀態(tài)。因此,每個(gè)基本的DMA傳傳輸過程中設(shè)置輸過程中設(shè)置 DMA ACK信號(hào)有效或無效。信號(hào)有效或無效。在整體服務(wù)模式中,主狀態(tài)機(jī)一直在狀態(tài)在整體服務(wù)模式中,主狀態(tài)機(jī)一直在狀態(tài) 3 等待,直到計(jì)數(shù)器(等待,直到計(jì)數(shù)器(CURR_TC)值變成)值變成 0 。所以。所以DMA ACK信號(hào)在這個(gè)傳輸過程中有效信號(hào)在這個(gè)傳輸過程中有效,直到計(jì)數(shù)器(,直到計(jì)數(shù)器(CURR_TC)為)為 0,DMA ACK信號(hào)無效。信號(hào)無效。但是不管服務(wù)模式如何,只有計(jì)數(shù)器(但是不管服務(wù)模式如何,只有計(jì)數(shù)器(CURR_TC)變成)變成0,中
24、斷請(qǐng),中斷請(qǐng)求信號(hào)求信號(hào) INT REQ才有效。才有效。一個(gè)基本的一個(gè)基本的DMA傳輸操作是指在傳輸操作是指在DMA操作期間執(zhí)行成對(duì)的讀寫周期。操作期間執(zhí)行成對(duì)的讀寫周期。在所有模式下,在所有模式下,XnXDREQ信號(hào)和信號(hào)和 XnXDACK信號(hào)的啟動(dòng)時(shí)間和延遲時(shí)信號(hào)的啟動(dòng)時(shí)間和延遲時(shí)間是一致的。間是一致的。 如果如果XnXDREQ信號(hào)完成時(shí),恰好遇到一個(gè)新的啟動(dòng)時(shí)間,它將會(huì)被同信號(hào)完成時(shí),恰好遇到一個(gè)新的啟動(dòng)時(shí)間,它將會(huì)被同步步2次后再使次后再使XnXDACK 信號(hào)有效。信號(hào)有效。 在在XnXDACK信號(hào)有效之后,信號(hào)有效之后,DMA請(qǐng)求總線,如果其獲得總線控制權(quán),請(qǐng)求總線,如果其獲得總線控
25、制權(quán),就執(zhí)行就執(zhí)行DMA傳輸操作。在傳輸操作。在DMA傳輸操作完成后,傳輸操作完成后,XnXDACK被設(shè)無效被設(shè)無效。tXRStXADtCADL最小3SCLK讀 寫tCADHtXRSXSCLKXnXDREQXnXDACK詢問模式和握手模式取決于詢問模式和握手模式取決于XnXDREQ信號(hào)和信號(hào)和XnXDACK信號(hào)之間的關(guān)系。信號(hào)之間的關(guān)系。u 在詢問模式下,若在詢問模式下,若XnXDREQ信號(hào)一直有效,前一個(gè)基本的信號(hào)一直有效,前一個(gè)基本的DMA傳輸操作結(jié)束傳輸操作結(jié)束后,下一個(gè)基本的后,下一個(gè)基本的DMA傳輸操作會(huì)立即開始傳輸操作會(huì)立即開始;若若XnXDREQ信號(hào)不是一直有效信號(hào)不是一直有效,
26、那那么需要等待么需要等待XnXDREQ信號(hào)有效后,再在信號(hào)有效后,再在XnXDACK信號(hào)有效后啟動(dòng)一次信號(hào)有效后啟動(dòng)一次DMA基基本傳輸操作。本傳輸操作。u 在握手模式下,一個(gè)基本的在握手模式下,一個(gè)基本的DMA傳輸操作結(jié)束后,傳輸操作結(jié)束后,DMA控制器要判斷控制器要判斷XnXDREQ信號(hào)的狀態(tài)。如果信號(hào)的狀態(tài)。如果 XnXDREQ 無效,無效,DMA控制器在經(jīng)過控制器在經(jīng)過2個(gè)周期后使個(gè)周期后使XnXDACK無效。否則,就需等待,直到無效。否則,就需等待,直到XnXDREQ信號(hào)無效。信號(hào)無效。詢問模式詢問模式/ /握手模式時(shí)序握手模式時(shí)序24UnitUnit傳輸傳輸/Burst/Burst
27、傳輸時(shí)序傳輸時(shí)序 S3C2410芯片的一個(gè)基本芯片的一個(gè)基本DMA傳輸操作中,所傳輸?shù)臄?shù)據(jù)大小有傳輸操作中,所傳輸?shù)臄?shù)據(jù)大小有2種:種:Unit傳輸?shù)膫鬏數(shù)?個(gè)數(shù)據(jù)單位和個(gè)數(shù)據(jù)單位和Burst傳輸?shù)膫鬏數(shù)?個(gè)數(shù)據(jù)單位。個(gè)數(shù)據(jù)單位。Unit傳輸時(shí)傳輸時(shí),一個(gè)基本的,一個(gè)基本的DMA傳輸操作完成一次讀和一次寫。傳輸操作完成一次讀和一次寫。Burst傳輸時(shí)傳輸時(shí),一個(gè)基本,一個(gè)基本DMA傳輸操作完成四次連續(xù)讀和四次連續(xù)寫。傳輸操作完成四次連續(xù)讀和四次連續(xù)寫。25 外部外部 DMA DMA 請(qǐng)求請(qǐng)求/ /應(yīng)答時(shí)序應(yīng)答時(shí)序有三種類型的外部DMA請(qǐng)求/應(yīng)答協(xié)議(單獨(dú)服務(wù)請(qǐng)求,單獨(dú)服務(wù)握手和整體服務(wù)握手模式
28、)。每種模式都定義了像DMA請(qǐng)求和應(yīng)答信號(hào)和這些協(xié)議如何相關(guān)。XSCLKXnXDREQXnXDACK雙同步讀 寫讀 寫詢問模式下單獨(dú)服務(wù)詢問模式下單獨(dú)服務(wù)26握手模式下整體服務(wù)握手模式下整體服務(wù)握手模式下單獨(dú)服務(wù)握手模式下單獨(dú)服務(wù)27 S3C2410S3C2410芯片中有芯片中有4 4個(gè)獨(dú)立的個(gè)獨(dú)立的DMADMA通道,每個(gè)通道,每個(gè)DMADMA通道均通道均有有9 9個(gè)控制寄存器個(gè)控制寄存器( (其中其中6 6個(gè)用于控制個(gè)用于控制DMADMA傳輸,傳輸,3 3個(gè)用于個(gè)用于監(jiān)視監(jiān)視DMADMA控制器的狀態(tài)控制器的狀態(tài)) ),因此,其,因此,其DMADMA控制器共有控制器共有3636個(gè)個(gè)寄存器寄存器
29、 qDMADMA源起始地址寄存器源起始地址寄存器(DISRCn) (DISRCn) qDMADMA源起始控制源起始控制寄存器寄存器(DISRCCn) (DISRCCn) qDMADMA目的起始地址寄存器目的起始地址寄存器(DIDSTn) (DIDSTn) qDMADMA目的起始控制寄存器目的起始控制寄存器(DIDSTCn) (DIDSTCn) qDMADMA控制寄存器控制寄存器(DCONn) (DCONn) qDMADMA屏蔽寄存器屏蔽寄存器(DMASKTRIG) (DMASKTRIG) qDMADMA狀態(tài)寄存器狀態(tài)寄存器(DSTATn) (DSTATn) qDMADMA當(dāng)前源地址寄存器當(dāng)前源
30、地址寄存器(DCSRCn)(DCSRCn)qDMADMA當(dāng)前目的地址寄存器當(dāng)前目的地址寄存器(DCDSTn) (DCDSTn) 281.1.傳輸控制寄存器傳輸控制寄存器用于控制DMA傳輸操作的寄存器有6個(gè),主要用來控制DMA傳輸時(shí)的:源地址起始值目的地址起始值數(shù)據(jù)塊長(zhǎng)度DMA模式等信息。29(1)DMA源起始地址寄存器DMA源起始地址源起始地址寄存器(寄存器(DISRCn)共有)共有4個(gè):個(gè):DISRC0、DISRC1、DISRC2、DISRC3,分別對(duì)應(yīng),分別對(duì)應(yīng)4個(gè)獨(dú)立的個(gè)獨(dú)立的DMA通道。通道。這這4個(gè)寄存器地址分別為個(gè)寄存器地址分別為0 x4B000000、0 x4B000040、0
31、x4B000080、0 x4B0000C0,復(fù)位后的初值為,復(fù)位后的初值為0 x00000000,且都是可讀可寫的,且都是可讀可寫的。引腳名稱引腳名稱位位描述描述初始值初始值S_ADDR30:0DMA傳輸?shù)脑磾?shù)據(jù)起始地址。若傳輸?shù)脑磾?shù)據(jù)起始地址。若CURR_SRC是是0并且并且DMA ACK是是1,這些位的值僅加載到,這些位的值僅加載到CURR_SRC0 x0000000030(2)DMA源起始控制寄存器DMA源起始控制寄存器(DISRCCn)共有4個(gè):DISRCC0、DISRCC1、DISRCC2、DISRCC3,分別對(duì)應(yīng)4個(gè)獨(dú)立的DMA通道。這4個(gè)寄存器地址分別為0 x4B000004、0
32、 x4B000044、0 x4B000084、0 x4B0000C4,復(fù)位后的初值為0 x00000000,且都是可讀可寫的。引腳名稱引腳名稱位位描述描述初始值初始值LOC1位位1用來選擇用來選擇DMA源的位置。源的位置。0=源在系統(tǒng)總線源在系統(tǒng)總線(AHB)上;上;1=源在外設(shè)總線源在外設(shè)總線(APB)上。上。0INC0位位0被用于選擇地址增加。被用于選擇地址增加。0=增加;增加;1=固定。固定。如果為如果為 0,每次傳輸以后,地址增加相應(yīng)的數(shù)據(jù)大小;,每次傳輸以后,地址增加相應(yīng)的數(shù)據(jù)大??;如果為如果為 1,每次傳輸以后,地址保持不變。,每次傳輸以后,地址保持不變。031(3)DMA目的起始
33、地址寄存器DMA目的起始地址寄存器(DIDSTn)共有4個(gè):DIDST0、DIDST1、DIDST2、DIDST3,分別對(duì)應(yīng)4個(gè)獨(dú)立的DMA通道。這4個(gè)寄存器地址分別為0 x4B000008、0 x4B000048、0 x4B000088、0 x4B0000C8,復(fù)位后的初值為0 x00000000,且都是可讀可寫的。引腳名稱引腳名稱位位描述描述初始值初始值D_ADDR30:0用于傳輸?shù)哪康臄?shù)據(jù)基址(開始地址)。如果用于傳輸?shù)哪康臄?shù)據(jù)基址(開始地址)。如果CURR_SRC為為0 且且DMA ACK為為1,該位值將被裝,該位值將被裝載到載到CURR_SRC。032(4)DMA目的起始控制寄存器
34、DMA目的起始控制寄存器(DIDSTCn)共有4個(gè):DIDSTC0、DIDSTC1、DIDSTC2、DIDSTC3,分別對(duì)應(yīng)4個(gè)獨(dú)立的DMA通道。 這4個(gè)寄存器地址分別為0 x4B00000C、0 x4B00004C、0 x4B00008C、0 x4B0000CC,復(fù)位后的初值為0 x00000000,且都是可讀可寫的。33引腳名稱位描述初始值LOC1用于選擇DMA目的的位置。0=DMA目的在系統(tǒng)總線(AHB)上。1=DMA目的在外設(shè)總線(APB)上。0INC0用于選擇目的地址是否增加。0=增加;1=固定。如果該位為0,每次傳輸以后,地址增加1(依據(jù)數(shù)據(jù)寬度);如果該位為1,每次傳輸以后,地址
35、保持不變。0DIDSTn寄存器的格式寄存器的格式34(5)DMA控制寄存器 DMA控制寄存器(DCONn)共有4個(gè):DCON0、DCON1、DCON2、DCON3,分別對(duì)應(yīng)4個(gè)獨(dú)立的DMA通道。 這4個(gè)寄存器地址分別為0 x4B000010、0 x4B000050、0 x4B000090、0 x4B0000D0,復(fù)位后的初值為0 x00000000,且都是可讀可寫的。35引腳名稱引腳名稱位位描述描述初始值初始值DMD_HS31用來選擇用來選擇DMA傳輸模式。傳輸模式。0=選擇請(qǐng)求模式;選擇請(qǐng)求模式;1=選擇握手模式。選擇握手模式。0SYNC30用來選擇用來選擇 DREQ/DACK同步信號(hào)。同步
36、信號(hào)。0= DREQ / DACK與與PCLK (APB時(shí)鐘時(shí)鐘)同步。同步。1= DREQ /DACK與與HCLK (AHB時(shí)鐘時(shí)鐘)同步。同步。0INT29用來使能用來使能/不使能不使能CURR_TC產(chǎn)生產(chǎn)生中斷。中斷。0=不使能;不使能;1=使能。使能。0TSZ28用來選擇基本用來選擇基本DMA傳輸?shù)拇笮?。傳輸?shù)拇笮 ?=執(zhí)行單元傳輸;執(zhí)行單元傳輸;1=執(zhí)行陣發(fā)長(zhǎng)度為執(zhí)行陣發(fā)長(zhǎng)度為4的的DMA傳輸。傳輸。0SERVMODE27用來選擇服務(wù)模式。用來選擇服務(wù)模式。0=單獨(dú)服務(wù)模式;單獨(dú)服務(wù)模式;1=整體服務(wù)模式。整體服務(wù)模式。0HWSRCSEL26:24各各DMA通道請(qǐng)求源選擇位。通道請(qǐng)求
37、源選擇位。通道通道0:000=nXDREQ0; 001=UART0;010=SDI; 011=Timer;100=USB device EP1。通道通道1:000= nXDREQ1;001=UART1;010= I2SSDI; 011= SPI;100=USB device EP2。通道通道2:000= I2SSDO;001= I2SSDI;010= SDI; 011= Timer;100= USB device EP3。通道通道3:000= UART2;001= SDI;010= SPI; 011= Timer;100= USB device EP4。00036SWHW_SEL23用來選擇用
38、來選擇S/W還是還是H/W模式。模式。0=S/W模式;模式;1=H/W模式。模式。0RELOAD22設(shè)定重裝載開關(guān)選項(xiàng)設(shè)定重裝載開關(guān)選項(xiàng)0=當(dāng)前當(dāng)前DMA傳輸完后,終點(diǎn)計(jì)數(shù)器自動(dòng)重載;傳輸完后,終點(diǎn)計(jì)數(shù)器自動(dòng)重載;1=當(dāng)前當(dāng)前DMA傳輸完后,傳輸完后,DMA通道被關(guān)閉。通道被關(guān)閉。0DSZ21:20傳輸數(shù)據(jù)大小單位。傳輸數(shù)據(jù)大小單位。00 =字節(jié);字節(jié);01 =半字;半字;10=字;字; 11 =保留。保留。00TC19:0初始初始DMA傳輸計(jì)數(shù)值。傳輸計(jì)數(shù)值。傳輸?shù)膶?shí)際字節(jié)數(shù)由以下公式計(jì)算:傳輸?shù)膶?shí)際字節(jié)數(shù)由以下公式計(jì)算:DSZ x TSZ x TC。0 x0000037(6)DMA 屏蔽觸發(fā)寄存器 DMA屏蔽觸發(fā)寄存器(DMASKTRIGn)共有4個(gè):DMASKTRIG0、DMASKTRIG1、DMASKTRIG2、DMASKTRIG3,分別對(duì)應(yīng)4個(gè)獨(dú)立的DMA通道。 這4個(gè)寄存器地址分別為0 x4B000020、0 x4B000060、0 x4B0000A0、0 x4B0000E0 復(fù)位后的初值為0 x00000000,且都是可讀可寫的。38引腳名稱引腳名稱位位描述描述初始值初始值STOP2用來停止用來停止DMA操作。操作。0=正常;正常;1=當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織品批發(fā)商客戶關(guān)系管理考核試卷
- 珠寶首飾設(shè)計(jì)與生活美學(xué)融合考核試卷
- 礦用通訊設(shè)備與網(wǎng)絡(luò)技術(shù)考核試卷
- 玻璃制品耐候性能測(cè)試考核試卷
- 娛樂用品生產(chǎn)設(shè)備智能化改造與升級(jí)考核試卷
- 牛只生長(zhǎng)發(fā)育與飼養(yǎng)管理優(yōu)化考核試卷
- 玻璃加工過程中的污染控制考核試卷
- 建筑裝飾工程信息模型(BIM)應(yīng)用考核試卷
- 嶺南師范學(xué)院《工程造價(jià)算量信息化綜合》2023-2024學(xué)年第一學(xué)期期末試卷
- 寧夏醫(yī)科大學(xué)《器官-系統(tǒng)模塊三》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊職業(yè)學(xué)院招聘考試題庫(kù)2024
- 38鉻鉬鋁熱處理工藝
- 醫(yī)院醫(yī)療機(jī)構(gòu)醫(yī)療風(fēng)險(xiǎn)管理工作方案(完整版)
- 京東商城的物流體系分解
- 世界文化遺產(chǎn)萬里長(zhǎng)城課件
- 2024年貴州高速公路集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 急性腦卒中的早期識(shí)別和急診處理
- 財(cái)務(wù)指標(biāo)簡(jiǎn)易操作計(jì)算器-小白版
- 電路 (第四版) 全套教學(xué)課件
- 軟件使用授權(quán)書
- 第四章社會(huì)醫(yī)療保險(xiǎn)基金的測(cè)算
評(píng)論
0/150
提交評(píng)論