DSP原理及應用-TMS320DM6437 課件 第七章:TMS320DM6437增強的直接存儲器訪問EDMA3_第1頁
DSP原理及應用-TMS320DM6437 課件 第七章:TMS320DM6437增強的直接存儲器訪問EDMA3_第2頁
DSP原理及應用-TMS320DM6437 課件 第七章:TMS320DM6437增強的直接存儲器訪問EDMA3_第3頁
DSP原理及應用-TMS320DM6437 課件 第七章:TMS320DM6437增強的直接存儲器訪問EDMA3_第4頁
DSP原理及應用-TMS320DM6437 課件 第七章:TMS320DM6437增強的直接存儲器訪問EDMA3_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

DSP原理及應用

第七章:增強型內存直接訪問控制器EDMA3第七章:增強型內存直接訪問控制器EDMA37.1概述7.2EDMA3控制器7.3EDMA3數據傳輸7.4參數RAM(PaRAM)7.5EDMA3的中斷7.6快速DMA(QDMA)7.7實驗及程序實例7.1EDMA3概述

信號處理中經常涉及大量的數據傳輸。利用DSP的指令可以完成數據的搬移,但這會占用大量的CPU資源。為降低CPU的負荷,通常都在DSP片內設計多通道的直接存儲器訪問(DMA)控制器。DMA控制器是獨立于CPU的設備,一旦正確初始化后,就能獨立于CPU工作,在CPU操作的同時實現片內存儲器、片內外設以及外圍器件間的數據傳輸。DMA傳送時,需要使用系統的地址和數據總線以及一些控制信號線,但這些總線一般都是由CPU控制的,因此為了能夠實現DMA需要由硬件自動實現總線的控制權轉移,為此一般的DMA控制器需要具有以下功能:

(1)可以向CPU發出HOLD號,請求CPU讓出總線,即CPU在這些總線上的引線

處于高阻狀態;(2)CPU讓出總線后,可以接管對總線的控制;(3)可以在總線上進行尋址和讀寫控制;(4)可以決定傳送的數據個數;(5)可以啟動數據的傳送,可以判斷數據傳送是否結束并發出結束信號;(6)可以在結束傳送后自動交出總線控制權,恢復CPU正常工作狀態。

7.1EDMA3概述

為便于數據傳輸,在基本操作的基礎上,DSP芯片的DMA控制器將數據進行了分塊(block)管理,每一塊又可以分為若干幀(frame),每幀由一定長度的數據單元(element)組成。每個DMA通道的數據塊和數據幀大小可以由用戶自行設定。基于這些管理單元,DMA控制器提供了多種傳輸方式,包括元素傳輸、幀傳輸和塊傳輸等。三種傳輸方式的最主要區別在于傳輸數據量的大小:(1)元素傳輸只對一個數據進行讀/寫操作;(2)幀傳輸將搬移一幀內的所有數據;(3)塊傳輸搬移塊內所有幀的數據。7.1EDMA3概述以下是DMA傳輸中的常用術語:●讀傳輸:DMA控制器從源地址讀取一個數據單元。●寫傳輸:DMA控制器將讀出的數據單元寫入目的地址。●單元傳輸:包括數據的讀傳輸與寫什專輸的數據傳輸。●數據傳送單元:單個數據單元從源地址到目的地址傳輸,如果需要每個數據單元可以由同步事件傳輸。●幀:一組數據單元組成一個幀,一幀中的單元可以是間隔存放也可以連續存放的。幀傳輸可以同步傳輸,也可以異步傳輸。●塊傳輸:完成若干幀的傳輸塊的傳輸俞,每塊內的幀數可以通過編程來設置。●陣列:一組連續的數據單元組成一個陣列,在一個陣列中單元的位置連續存放且不能改變。陣列多在二維數據傳輸中使用。塊:多個陣列或者多個幀組成一個塊。●一維傳輸:一組幀組成一個塊。每個塊中的幀個數范圍是1~65536。●二維傳輸:一組陣列組成一個二維塊,其中第一維是一個陣列中連續單元,第二維DMA控制器的工作方式有三種:方式1:存儲器與外部設備之間進行數據交互傳輸;方式2:存儲器與存儲器之間的數據交互傳輸;方式3:外部設備與外部設備之間的數據交互傳輸。7.2EDMA3控制器EDMA3在TMS320DM6437DSP結構中的位置7.2EDMA3控制器7.2.1EDMA3控制器的組成7.2.1.1.EDMA3控制器組成EDMA3控制器包含兩個主要模塊:EDMA3通道控制器(EDMA3_m_CC0)和EDMA3傳輸控制器(EDMA3_m_TCn)。7.2EDMA3控制器7.2.1EDMA3控制器的組成7.2.1.2.EDMA3通道控制器(EDMA3CC)7.2EDMA3控制器7.2.1EDMA3控制器的組成7.2.1.2.EDMA3通道控制器(EDMA3CC),主要模塊如下:?DMA/QDMA通道邏輯:這個模塊包括捕捉外部系統或外設事件用于初始化事件觸發傳輸的邏輯單元,也包含允許配置DMA/QDMA通道(隊列映射,參數RAM條目映射)的寄存器。.還有為不同觸發類型(手動,外部事件,鏈接和自動觸發)使能/禁止事件和檢測事件狀態寄存器。?參數RAM集(PaRAM):為通道和重載參數集提供參數集條目.需要將期望的通道和連接參數集的傳輸內容寫入到參數RAM集中。?事件隊列:它們構成事件監測邏輯和傳輸請求提交邏輯之間的接口。?傳輸請求提交邏輯:這個邏輯基于已提交到事件隊列的觸發事件以及提交相關事件隊列的給傳輸控制器的傳輸請求來處理參數RAM集。?結束檢測:結束檢測模塊檢測EDMA3傳輸控制或者從設備傳輸結束.傳輸結束可以使用鏈接觸發一個新傳輸或者聲明一個中斷.這個邏輯包括使能/禁止中斷(發送給CPU的)中斷處理寄存器,中斷標志或中斷清除寄存器。另外,還有:?區域寄存器:允許DMA資源(DMA通道和中斷)被分配到唯一的區域,該區域被唯一EDMA編程者(適用于異/多核模型)或唯一的任務/進程(適用于單核設備模型)所有擁有。?調試寄存器:調試寄存器提供讀取隊列狀態,通道控制器狀態(帶有CC的邏輯單元被激活)和丟失事件狀態的寄存器以使得調試可視化.7.2EDMA3控制器7.2.1EDMA3控制器的組成7.2.1.3.EDMA3傳輸控制器(EDMA3TC)7.2EDMA3控制器7.2.1EDMA3控制器的組成7.2.1.3.EDMA3傳輸控制器(EDMA3TC),主要模塊如下:?DMA程序寄存器集:DMA程序寄存器集存儲從EDMA3通道控制器(EDMA3CC)接收到的傳輸請求。?DMA源激活寄存器集:DMA源激活寄存器集存儲運行態時讀控制器中當前DMA傳輸請求的內容讀控制器:讀控制器發送讀命令到源地址。?目的FIFO寄存器集:目的FIFO寄存器存儲運行態或掛起態中寫控制器的當前DMA傳輸請求的內容。?寫控制器:寫控制發送寫命令/寫數據到目的地址。?數據FIFO:數據FIFO存儲中間態數據.存儲在數據FIFO中的源外設讀數據和后續通過寫控制器寫入目的外設/從端的數據?完成接口:當一個傳輸完成時,完成接口發送完成代碼到EDMA3CC,完成接口對生成中斷和鏈接事件都有用。7.2EDMA3控制器7.2.1EDMA3控制器的組成7.2.1.4.EDMA3控制器的觸發方式(1)DMA通道有3種觸發方式事件觸發:CPU必須先通過EER使能該事件,當一個觸發事件鎖存到ER寄存器就會啟動相應通道的EDMA3手動觸發:CPU可以通過寫ESR啟動一個EDMA3通道。鏈接觸發:由一個EDMA3通道的傳輸結束來觸啟動另一個EDMA3。(2)QDMA通道有2種觸發方式:自動觸發:PaRAM里設置為觸發字的域被寫入值后,觸發傳輸(通過QCHMAPn寄存器設置PaRAM的哪個域作為觸發域)。鏈接觸發:由一個EDMA3通道的結束來觸發,啟動另一個EDMA3。7.2EDMA3控制器7.2.2EDMA3通道控制器(EDMA3_m_CC0)的工作流程依據事件寄存器配置的觸發方式,在事件觸發之后,優先級編碼器對兩個以上的觸發事件進行優先級編碼,優先級編碼器仲裁后將最高優先級事件傳送給隊列,經過隊列之后這個事件由通道映射提取參數RAM中的參數集,參數集里包含了EDMA3要傳輸的數據的各種數據,例如,數據塊的大小、數據的源地址和目標地址等。這些參數集傳輸給EDMA3傳輸控制器。7.2EDMA3控制器7.2.3EDMA3同步事件表7-1和表7-2是EDMA0和EDMA1的各種類型的同步事件,這些事件產生可以觸發EDMA3進行數據傳輸,EDMA0和EDMA1各有32個同步事件。通道控制器EDMA0的同步事件7.2EDMA3控制器7.2.3EDMA3同步事件通道控制器EDMA1的同步事件7.2EDMA3控制器7.2.4EDMA3的事件與通道的映射關系7.2.4.1.事件與通道的映射關系每個EMDA3控制器支32個同步事件,32個事每件與32個通道之間的映射關系是固定的一一對應關系。事件與通道的映射關系7.2EDMA3控制器7.2.4EDMA3的事件與通道的映射關系7.2.4.2.DMA通道與PaRAM的映射關系event與DMAChannel一一對應,

DMA通道與PaRAM的映射也是一一對應的。DMA通道與PaRAM的映射關系7.2EDMA3控制器7.2.4EDMA3的事件與通道的映射關系7.2.4.3.QDMA通道與PaRAM的映射關系QDMA通道不支持事件出發,其觸發方式有兩種,即自動觸發和鏈接觸發。例如,將QDMA通道2映射到PaRAMSet3,這時,以SRC作為觸發字時,QCHMAP2[PAENTRY]=000000011QCHMAP2[TRWORD]=0017.2EDMA3控制器7.2.5事件隊列事件隊列是EMDA3CC的事件檢測邏輯和EDMA3CC的傳輸請求提交之間的接口。TMS320DM6437有兩個傳輸控制器,每個傳輸控制器有32個DMA通道和8個QDMA通道,當配置多個通道進行數據傳輸時,如果多個通道同時被觸發,而傳輸控制器是有限的,此時就不能完成數據傳輸。解決的辦法就是依靠事件隊列,通過對事件的仲裁設定優先級,依據優先級高低設置事件隊列,事件隊列依據優先級向傳輸控制器提交傳輸請求。事件隊列與傳輸控制器7.3EDMA3數據傳輸7.3.1.EDMA3傳輸數據塊定義每一個EDMA3的傳輸數據都可看做是一個三維數據,這個數據的大小由ACNT、BCNT和CCNT來描述。下圖是一個數據塊內ACNT、BCNT和CCNT的定義。數據塊內ACNT、BCNT和CCNT的定義7.3EDMA3數據傳輸7.3.2A-同步傳輸A-同步傳輸每次傳輸一個數據單元(array),當一個數據單元傳輸完畢后根據B索引跳轉到下一個進行傳輸,直到一行傳輸完畢后根據C索引跳轉到下一行。B索引和C索引滿足:SRCBIDX=DSTBIDX=ACNTSRCCIDX=DSTCIDX=ACNT同步事件數=BCNT×CCNT7.3EDMA3數據傳輸7.3.3AB-同步傳輸在AB類同步傳輸中,每個EDMA3同步事件初始化二維數組或一個幀的傳輸。換句話說,每個事件或傳輸請求包攜帶BCNT個數列ACNT個字節的幀的所有信息。需要CCNT個事件服務以完成一個參數RAM集。

7.4參數RAM(PaRAM)7.4.1PaRAM集EDMA3控制器是基于RAM的結構,EDMA3CC中為DMA或者QDMA通道編程的傳輸內容(源/目的地址,計數,索引等)的RAM參數表被稱為PaRAM。PaRAM表被分解成多個參數RAM集。每個參數集包含8個4字節的參數RAM集條目,這些條目包含典型的DMA傳輸參數,比如說源地址,目的地址,傳輸數量,索引,選項等。

7.4參數RAM(PaRAM)7.4.2參數RAM條目EDMA3通道控制器(EDMA3CC)的參數RAM條目。

7.4參數RAM(PaRAM)7.4.3傳輸示例例1塊傳輸示例使用EDMA3做最基本的傳輸是塊傳輸。在設備操作的時候,經常需要從一個地方到另一個地方或者片內和片外之間內存傳輸一個塊數據。在這個例子中,從外部內存到L2SRAM復制一段數據。4000,0000h地址開始的一個256K字節的數據需要傳輸到內部地址11800000h(L2),

7.4參數RAM(PaRAM)7.4.3傳輸示例傳輸源地址被設置為外部內存所傳數據塊的起始地址,目的地址被設置位L2中數據塊的起始地址。如數據塊小于64K字節,那么參數RAM配置按照圖7-15,同步類型設置為A類同步傳輸及索引清零。如果傳輸數據量大于64K字節,同步類型需要設置成AB類傳輸,BCNT和B-索引需要被設置成適當值。OPT中STATIC位設置成先前的連接。(a)EDMA參數(b)通的選擇項參數(OPT)內容7.5EDMA3的中斷EDMA3中斷源可以分為兩類:?傳輸完成中斷源?錯誤中斷源7.5EDMA3的中斷EDMA3中斷源可以分為兩類:?傳輸完成中斷源?錯誤中斷源7.5EDMA3的中斷7.5.1.1傳輸完成中斷源?

如果最終傳輸中斷(OPT中TCCEN=1和ITCCHEN=0)被使能,中斷在通道m的上一個傳輸請求提交(提前完成)或者完成(正常完成)后發生。?

如果內部傳輸中斷(OPT中TCCEN=0和ITCCHEN=0)被使能,中斷在每次通道m的內部傳輸請求提交或者完成后發生(依賴提前或正常完成)。?

如果最終和中間傳輸完成中斷(OPT中TCCEN=0和ITCCHEN=0)被使能,中斷在通道m的每次傳輸請求提交或者完成后發生(依賴提前或正常完成)。7.5EDMA3的中斷7.5.1.2使能傳輸完成中斷EDMA3CC必須使能中斷,才能確保EDMA3通道控制器聲明一個傳輸完成到外部,另外需要配置參數RAM集中OPT寄存器的TCCEN和ITCCHEN。EDMA3通道控制有中斷使能寄存器(IER),IER中每一位作為主要使能對應的中斷掛起寄存器(IPR)。7.5EDMA3的中斷7.5.1.3清除傳輸完成中斷鎖定在中斷掛起寄存器(IPR)中傳輸完成中斷可以通過對中斷掛起清除寄存器的相應位寫1來清除。舉個例子,對ICR.E0位做寫1操作清除掛起中斷IPR.E0位。7.5EDMA3的中斷7.5.2.1中斷寄存器1.中斷使能寄存器(IER)2.中斷使能清除寄存器(IECR)3.中斷使能設置寄存器(IESR)4.中斷清除寄存器(ICR)7.6快速DMA(QDMA)7.6.1.快速DMA(QDMA)在應用系統中,有時需要與外設(如McBSP)之間進行固定速率的數據傳輸。通常用戶可以利用EDMA來完成這些任務,周期性地實時提供所需要的數據。但是在有些應用中,可能需要由CPU執行的代碼來直接控制一段數據的搬移,此時采用QDMA就非常合適。典型的QDMA操作順如下:QDMASRC=SOME_SRC_ADDRESS;//設置源地址ODMADST=SOMEDSTADDRESS//設置目的地址OD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論