嵌入式課件第講嵌入式系統(tǒng)DMA控制頁_第1頁
嵌入式課件第講嵌入式系統(tǒng)DMA控制頁_第2頁
嵌入式課件第講嵌入式系統(tǒng)DMA控制頁_第3頁
嵌入式課件第講嵌入式系統(tǒng)DMA控制頁_第4頁
嵌入式課件第講嵌入式系統(tǒng)DMA控制頁_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第7章 中斷、DMA和時間管理l本章主要介紹以下內(nèi)容:l嵌入式中斷控制器l嵌入式DMA控制器l嵌入式時鐘電源管理器l嵌入式實時時鐘l嵌入式脈寬調(diào)制定時器27.2 嵌入式系統(tǒng)嵌入式系統(tǒng)DMA控制控制l在嵌入式系統(tǒng)I/O操作中,中斷方式(包括查詢方式)是廣泛使用的操作方式。其特點(diǎn)是需要通過CPU執(zhí)行ISR來控制整個數(shù)據(jù)的傳送,輸入輸出都要以CPU的寄存器為中轉(zhuǎn)站。以中斷方式數(shù)據(jù)傳輸為例,每一次響應(yīng)中斷,CPU都要保護(hù)主程序斷點(diǎn)的工作現(xiàn)場,而后執(zhí)行ISR。數(shù)據(jù)傳輸操作完畢后,還要恢復(fù)斷點(diǎn)處的工作現(xiàn)場。因此在某些高頻度I/O操作的嵌入式應(yīng)用場合,執(zhí)行中斷方式的輸入輸出會導(dǎo)致系統(tǒng)頻繁切換工作現(xiàn)場,CP

2、U運(yùn)行效率不高。 3DMA方式特點(diǎn)方式特點(diǎn)lDMA方式是高速I/O接口方式,其特點(diǎn)有兩個:一是它可以不通過CPU直接完成輸入輸出設(shè)備與存儲器間的數(shù)據(jù)交換,在數(shù)據(jù)傳送期間不會影響CPU的其它工作;二是CPU帶寬可以與總線帶寬一樣,延時僅依賴于硬件,能提高系統(tǒng)中數(shù)據(jù)的傳輸速率。顯然利用這種方式不但數(shù)據(jù)傳送速度快,而且CPU具有了同時進(jìn)行多種實時操作的能力,增強(qiáng)了系統(tǒng)的實時性。 4DMAC控制控制DMA傳輸傳輸l在DMA傳輸方式下,外設(shè)通過DMA控制器(DMAC)向CPU提出接管總線控制權(quán)的總線使用請求。CPU在當(dāng)前總線周期結(jié)束后,響應(yīng)DMA請求,把總線控制權(quán)交給DMA控制器。于是在DMAC的控制下

3、,外設(shè)和存儲器挪用CPU的一個總線周期,直接進(jìn)行數(shù)據(jù)交換,而無需CPU進(jìn)行數(shù)據(jù)傳輸控制干預(yù)。DMA傳輸結(jié)束后,再將總線使用權(quán)交換給CPU。532位嵌入式處理器都具有位嵌入式處理器都具有DMA功能功能l在高速大數(shù)據(jù)量傳輸場合,DMA方式由于系統(tǒng)開銷少,傳輸效率,比中斷方式優(yōu)越。因此,現(xiàn)代通用計算機(jī)都具備DMA傳輸功能。例如,PC機(jī)的芯片組中包含有8237A芯片,它是DMA控制器,可以控制4個DMA通道。l然而,嵌入式系統(tǒng)并非都擁有DMA功能。8位嵌入式處理器一般不具備DMA數(shù)據(jù)傳輸功能。16位和32位嵌入式處理器一般都具有DMA功能。例如:ARM、68K、PowerPC和MIPS處理器。 6幾款

4、主流嵌入式處理器的幾款主流嵌入式處理器的DMA控制器簡表控制器簡表 DMA控制器屬性80186S3C44B0XS3C2410XPXA255PXA270BF533MPC850DMA通道數(shù)44416321216數(shù)據(jù)線寬88/16/328/16/328/16/328/16/32161/8/16/32控制寄存器/每通道5/通道7/通道9/通道4/通道4/通道7嵌入式嵌入式DMA控制器內(nèi)建在芯片內(nèi)部控制器內(nèi)建在芯片內(nèi)部lDMA控制包括DMA通道初始化、DMA數(shù)據(jù)傳輸、DMA結(jié)束時的中斷服務(wù)例程處理。對于通用計算機(jī)而言,DMA控制邏輯由CPU和DMA控制接口邏輯芯片共同組成。嵌入式系統(tǒng)的DMA控制器內(nèi)建在

5、處理器芯片內(nèi)部。l將DMA方式應(yīng)用于嵌入式系統(tǒng)要考慮到與一般微機(jī)系統(tǒng)不同的應(yīng)用特點(diǎn),它對可靠性、成本、體積、功耗等有更嚴(yán)格的要求。因此,在進(jìn)行含有高速數(shù)據(jù)處理的嵌入式開發(fā)時,需要精心地選擇處理器。8l現(xiàn)在學(xué)習(xí)S3C44B0X處理器的DMA控制器。l S3C44B0X的DMA控制器(簡稱DMAC)擁有4個通道,其中有兩個通道稱為ZDMA,另外兩個通道稱為BDMA。 7.2.1 S3C44B0X的的DMA控制器控制器 9lZDMA通道稱為通用DMA l三星公司的數(shù)據(jù)手冊上用這個稱呼l實際上是通用DMA,General DMA,它被連到SSB(三星系統(tǒng)總線,Samsung System Bus)總線

6、上。lBDMA通道稱為橋DMAlBridge DMA,是SSB和SPB(三星外設(shè)總線,Samsung Peripheral Bus)之間的接口層,相當(dāng)于一個橋。lZDMA和BDMA都可以由指令啟動,也可以有內(nèi)部外設(shè)和外部請求引腳來請求啟動。 S3C44B0X的的DMA通道通道 10lZDMA通道用于在存儲器到存儲器、存儲器到I/O存儲器(固定目的存儲位置)、I/O裝置到存儲器之間傳輸數(shù)據(jù)。BDMA通道只能在連到SPB(三星外設(shè)總線)上的I/O外設(shè)(如UART,IIS和SIO)與存儲器之間傳輸數(shù)據(jù)。 ZDMA通道的特點(diǎn)通道的特點(diǎn) 11S3C44B0X的的ZDMA控制器框圖控制器框圖 12lS3C

7、44B0X的ZDMA通道有一個4字的FIFO緩沖來支持4字突發(fā)DMA傳輸,而BDMA不支持突發(fā)DMA傳輸。BDMA不支持4字突發(fā)DMA傳輸?shù)脑蚴撬鼪]有臨時緩存,而且連接在SPB上的外設(shè)速度較慢。因此存儲器之間的傳輸數(shù)據(jù)最好使用ZDMA通道。 ZDMA通道的用途通道的用途13S3C44B0X的的BDMA控制器框圖控制器框圖 14l有四類外部DMA請求/應(yīng)答模式。它們是握手模式、單步模式、連續(xù)模式和手動模式。這些模式都定義了DMA請求和應(yīng)答信號是怎樣和這些模式相互關(guān)聯(lián)的。雖然ZDMA和BDMA都可以支持外部的觸發(fā)操作,但是這些模式只適用于ZDMA,不適用于BDMA。我們介紹其中的握手模式和單步模

8、式。 外部DMA請求/應(yīng)答模式 15l在握手模式下,DMA控制器對一個單獨(dú)的DMA請求產(chǎn)生一個單獨(dú)的DMA應(yīng)答信息。圖7-5示出了DMA操作的握手模式。在這樣的DMA操作期間,讀寫周期不可分割。因此,總線控制器不向其他的總線擁有者分配總線的使用權(quán)。 l由nXDREQ(外部DMA請求引腳)產(chǎn)生的DMA請求表示需要傳輸一個字節(jié)、半個字或一個字。而握手模式需要DMA為每一個數(shù)據(jù)傳輸發(fā)送請求。在激活nXDACK后,nXDREQ信號就可以被釋放了,在此之后nXDACK失活后還可以再次發(fā)送請求。 握手模式16S3C44B0X處理器DMA請求應(yīng)答時序圖17l單步模式是指有兩個DMA應(yīng)答周期分別指示DMA的讀

9、周期和寫周期。因為總線的使用權(quán)可以在讀寫期間轉(zhuǎn)交給其它的總線擁有者,單步模式通常用在測試和調(diào)試的應(yīng)用中。單步模式單步模式18l當(dāng)DMA請求信號變?yōu)榈碗娖胶螅绻淮嬖谄渌邇?yōu)先級的總線請求,總線控制器以降低總線應(yīng)答信號電平的方式,指示為DMA操作分配總線。在第一個DMA應(yīng)答信號的低電壓期間應(yīng)該是一個DMA讀操作周期。在讀操作周期之后,DMA應(yīng)答信號電平將重新升高,指示讀操作周期的結(jié)束。同時,如果此時請求信號仍然是低電壓狀態(tài)的話,就會在DMA應(yīng)答信號上升沿觸發(fā)下一個DMA寫周期。如果當(dāng)應(yīng)答信號升高后,請求信號也在高電平狀態(tài),則下一個寫周期就會被延遲,直到一個新的DMA請求信號被激活。 單步模式

10、(續(xù))單步模式(續(xù))19lS3C44B0X的DMA傳輸模式有三種:單元傳輸模式、塊傳輸模式和飛速(On-The-Fly)模式。現(xiàn)在分別說明。l單元傳輸模式l對每一個DMA請求響應(yīng)一對DMA讀/寫周期。DMA傳輸模式 20l塊傳輸模式的工作原理如下:l在連續(xù)地執(zhí)行4字節(jié)的DMA讀周期之后再連續(xù)地進(jìn)行4字節(jié)的DMA寫周期。如果使用塊傳輸模式,則傳輸?shù)臄?shù)據(jù)大小應(yīng)該是16字節(jié)的倍數(shù)。換句話說,最小的傳輸尺寸是16個字節(jié),也就是4個字。因為DMA計數(shù)器定義了以字節(jié)作為基本單元計數(shù),按照計數(shù)定義16個字節(jié)DMA傳輸就是4個字節(jié)傳輸。如果傳輸?shù)臄?shù)據(jù)大小或DMA計數(shù)不是16的倍數(shù)(比如16、32、48、64等

11、等),DMA就不能夠傳輸完整的數(shù)據(jù)。假設(shè)要傳輸100字節(jié)(DMA計數(shù)是100),616=96字節(jié)可以被傳輸,剩下的4字節(jié)不能被傳輸。因為DMA操作將在96個字節(jié)傳輸完成之后停止。當(dāng)程序員選用塊傳輸DMA模式時應(yīng)當(dāng)意識到這個特點(diǎn)。 塊傳輸模式21l飛速模式的工作原理如下:飛速模式的工作原理如下: lZDMA具有飛速(On-the-fly)讀寫模式。該模式的最大特性是讀寫周期并行(不可分割),其具體含義是當(dāng)DMA讀/寫數(shù)據(jù)時,一個固定地址外部設(shè)備會根據(jù)DMA的應(yīng)答信號(nXDACK0/1)寫/讀數(shù)據(jù)。然而在非飛速模式下,DMA通道在寫數(shù)據(jù)之前要讀數(shù)據(jù)。l如果外部設(shè)備能夠支持飛速模式,則數(shù)據(jù)傳輸速率

12、將會提高一倍。外部設(shè)備能夠支持飛速模式的標(biāo)志是能夠根據(jù)DMA應(yīng)答信號讀寫數(shù)據(jù)。飛速模式22飛速模式的特點(diǎn)lZDMA獨(dú)有l(wèi)ZDMA與傳統(tǒng)DMA的最大不同點(diǎn)。l借助飛速模式ZDMA可以減少在外部存儲器和外部可尋址的外設(shè)之間DMA操作的周期數(shù)。23lS3C44B0X一共有4個DMA通道,所以有4個通道屬性寄存器。其中ZDCON0和ZDCON1是ZDMA通道的兩個屬性控制器,BDCON0和BDCON1是BDMA的兩個屬性控制器。 7.2.2 S3C44B0X的的DMAC相關(guān)控制寄存器相關(guān)控制寄存器 24S3C44B0X處理器DMA通道屬性控制寄存器一覽表 類別類別寄存器寄存器標(biāo)識符標(biāo)識符地址地址讀寫讀

13、寫屬性屬性描述描述初值初值ZDMAZDCON00 x01E80000R/WZDMA0通道屬性寄存器0 x00ZDCON10 x01E80020R/WZDMA1通道屬性寄存器0 x00BDMABDCON00 x01F80000R/WBDMA0通道屬性寄存器0 x00BDCON10 x01F80020R/WBDMA1通道屬性寄存器0 x0025ZDMA通道屬性寄存器的控制位定義ZDCONn位描述初始值INT7:6保留00STE5:4DMA通道的狀態(tài)(只讀)00:就緒 01:未中止計數(shù)10:中止計數(shù) 11:不可用在DMA的傳輸計數(shù)開始之前,STE處于準(zhǔn)備好狀態(tài)00QDS3:2忽略允許外部DMA請求(

14、nXDREQ)00:允許 Other:禁止00CMD1:0軟件命令00:沒有命令。在寫01,10,11后,CMD位被自動清除,nXDREQ允許01:由軟件啟動DMA操作,軟件啟動功能可以用在連續(xù)模式下。10:停止DMA操作,但nXDREQ仍允許11:取消DMA操作0026l不論是ZDMA通道還是BDMA通道,每個通道都有6個傳輸控制寄存器。每個通道的6個傳輸控制寄存器分別是:初始源地址寄存器,初始目標(biāo)地址寄存器,初始傳輸控制和傳輸字節(jié)/半字/字計數(shù)控制器,當(dāng)前源地址寄存器,當(dāng)前目標(biāo)地址寄存器,當(dāng)前傳輸控制和傳輸字節(jié)/半字/字計數(shù)控制器。DMA通道具有6個傳輸控制寄存器27DMA傳輸控制寄存器的

15、初值與屬性l24個DMA傳輸控制寄存器的初值全部為0 x0。l其中的12個初始控制寄存器的讀寫屬性是可讀可寫,另外12個當(dāng)前控制寄存器是只讀屬性。28l現(xiàn)在給出一個在S3C44B0X處理器開發(fā)板上實現(xiàn)的DMA傳輸范例程序。lCOS-II操作系統(tǒng)支持下運(yùn)行l(wèi)采用中斷結(jié)束方式。7.2.3 DMA應(yīng)用程序舉例應(yīng)用程序舉例 29Cache無效地址l當(dāng)S3C44B0X處理器處于DMA傳輸時,內(nèi)存讀寫不受CPU控制,此時CPU無法維護(hù)Cache的一致性,所以需要將目的地址空間設(shè)為Cache無效地址。l在S3C44B0X中最小的Cache無效地址為4KB(稱為塊),所以不需要低12位地址,為此執(zhí)行目標(biāo)地址右

16、移12位。Cache無效目的地址空間確定之后,該存儲區(qū)的數(shù)據(jù)不被Cache映射,從而滿足了Cache數(shù)據(jù)的一致性。30兩個Cache無效區(qū)lS3C44B0X的Cache無效區(qū)可以有兩個,分別是Cache無效區(qū)0和Cache無效區(qū)1。這兩個無效區(qū)的起始地址和結(jié)束地址分別由NCACHBE0和NCACHBE1寄存器加以控制。l本范例程序使用NCACHBE0寄存器控制目標(biāo)數(shù)據(jù)塊的Cache無效區(qū)起始地址和結(jié)束地址。l主體函數(shù)dma_copy的最前面幾行完成該Cache無效區(qū)的設(shè)定。31l參看程序清單7-8,教材第239頁l注意:l在ARM300-S實驗平臺有兩種DMA實驗代碼 ,它們的功能一樣,都是完

17、成內(nèi)存數(shù)據(jù)塊的拷貝傳送。但是DMA結(jié)束方式不同:一種是中斷結(jié)束方式,另外一種是查詢結(jié)束方式。DMA應(yīng)用程序的范例代碼詳解32S3C44B0處理器處理器DMA程序注釋程序注釋-1lMain函數(shù)清單33S3C44B0處理器處理器DMA程序注釋程序注釋-2ldma_copy函數(shù)清單34S3C44B0處理器處理器DMA程序注釋程序注釋-3/中斷處理函數(shù)void handler(void)char d21;int i;LCD_printf(n);for(i=0; i=strlen(des); i+=20)strcpy(d, des+i, 20);d20=0;LCD_printf(%s n,d);free

18、(des);35S3C44B0處理器處理器DMA程序注釋程序注釋-4lCache無效訪問區(qū)控制寄存器36S3C44B0處理器處理器DMA程序注釋程序注釋-5lZDISRC0控制寄存器功能與位定義37S3C44B0處理器處理器DMA程序注釋程序注釋-6lZDIDES0控制寄存器功能與位定義38S3C44B0處理器處理器DMA程序注釋程序注釋-7l填入ZDICNT0的數(shù)值:1010 0101 1100 20個0l填入ZDICNT0bit20的數(shù)值=1 ;enable DMA39S3C44B0處理器處理器DMA程序注釋程序注釋-8l將0 x05=0b00000101寫入ZDCON040課堂演示課堂演示l使用ARM300-S實驗平臺演示DMA實驗程序l用DMA完成內(nèi)存數(shù)據(jù)塊(96個字符)的拷貝傳送l閱讀源代碼l觀看實驗效果l1,查詢結(jié)束方式l2,中斷結(jié)束方式41第第14講重點(diǎn)講重點(diǎn)l嵌

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論