新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ADSP-TS201S的二維DMA數據傳輸

        基于ADSP-TS201S的二維DMA數據傳輸

        作者: 時間:2012-03-08 來源:網絡 收藏

        摘要:針對高速信號處理系統中數據總線傳輸的瓶頸問題,采用方式進行外設高速緩存到DSP內核的數據塊實時傳輸。對控制和狀態寄存器組進行編程控制,結合FPGA與DSP鏈路接口設計,將存儲區的數據塊作為一個數據陣列進行傳輸,使DSP在中斷中獲得數據。試驗結果證明,DMA傳輸方式可解決高速外設數據塊的連續傳輸和處理問題,保證整個系統并行信號處理流水線的順序執行,是一種解決數據總線傳輸瓶頸問題的實用方法。目前該技術已成功應用于某水聲測量系統中。
        關鍵詞:ADSP-TS201;二維DMA;LVDS;鏈路口

        0 引言
        隨著數字濾波技術在水聲信號處理中的廣泛應用,在降低系統硬件復雜度的同時,對數字信號處理的實時性也提出了更高要求。數字濾波器處理后的大量數據需要實時高效地傳輸給DSP內核,以便進行相應的數字信號處理;為了提高工作效率,信號處理系統通常會采用流水線操作。另外為了不打斷系統的運行流水線,不僅要滿足實時高速傳輸的要求,還需具備DSP內核并行處理的排列順序要求。
        DMA(Direct Memory Access)是在處理器內核不干預情況下的后臺高速數據傳送機制,不占用DSP內核的處理時間,特別是二維DMA方式,能夠將數據塊按要求順序傳輸。本文以(以下簡稱TS201)為例,針對二維DMA方式進行探討。

        本文引用地址:http://www.104case.com/article/149491.htm


        1 TS201的DMA傳輸
        1.1 DMA簡介與分析
        TS201內核工作頻率高達600 MHz,是一款性能極高的靜態超標量處理器,專對復雜信號處理任務和通信結構進行了優化,其Tiger SHA RC靜態超標量結構使DSP每周期能夠同時執行4條指令,24個16位定點運算和6個浮點運算。支持14個DMA通道,可完成片內存儲器、片外存儲器、存儲器映射外設、鏈路口、主機處理器和其他處理器(如FPGA)之間的低開銷高速傳輸。TS201片內的DMA控制器允許將數據傳輸作為一個后臺任務執行,從而將處理器核釋放出來,進行其他數字信號處理操作。在復雜信號處理系統中,特別是需要大量數據傳輸和搬移的操作系統,采用DMA方式可以釋放處理器內核,提高工作效率。
        1.2 TS201的鏈路口DMA
        TS210具有適合多DSP并行處理的突破性體系結構,除了多條獨立的128位寬數據總線外,具有4位寬的4個雙向LVDS(Low Voltage Differ ential Signaling)鏈路口是其組成并行系統的關鍵。鏈路口可以直接由處理器核控制,也可以由DMA控制器控制,每個鏈路口的接收和發送都有指定的DMA通道。通過編程控制可以將鏈路口設置成4位并行或者1位的方式進行傳輸。
        TS201鏈路口通過寫TX緩沖寄存器完成數據的發送,讀取RX緩沖寄存器數據完成數據的接收。只要TX移位寄存器為空,所有寫TX緩沖區的數據都會拷貝到移位寄存器。當RX移位寄存器為空,或者RX緩沖器有多余的空間可以從RX移位寄存器接收完整的4個字的接收數據時,接收方才允許數據輸入。RX緩沖器為空,有4個字的接收已經完成,才會從移位寄存器讀入數據。如果RX緩沖器已滿,會將數據拷貝至RX臨時接收緩沖器內,一直保持到RX緩沖器為空。片上每個鏈路口都與2個DMA通道相連,分別進行數據的發送和接收。2個DMA通道都與內部寄存器、外部寄存器及其他鏈路口緩沖器相連接。鏈路口收發結構見圖1所示。

        a.jpg


        1.3 二維DMA
        TS201可以尋址和傳輸1個二維存儲陣列,二維DMA將存儲區的數據塊作為1個數據陣列進行傳輸,這對制定矩陣操作的DSP算法十分有用。存儲器中的二維存儲塊可以通過鏈路口向外發送,由鏈路口接收的數據塊也可以按照二維存儲陣列的形式保存到存儲器中。接收端存儲器矩陣的大小可以與發送端的不同,只要兩邊所含的總字節數相等即可。二維DMA的優點如下:
        (1)允許任意一個矩陣區域的數據交叉存取,以一種比較直觀的處理順序將數據放入存儲區。例如,將同一個A/D經過不同數字濾波器后的并行數據,以數據塊的形式進行搬移,自動存入各自的高速緩存區或片內存儲區。
        (2)能夠實時高效地完成數據塊存取。DMA控制器和DSP內核同時存取向不同存儲塊的操作均可在一個時鐘周期內完成。例如,當DSP內核對一子存儲塊的數據進行操作時,DMA可以向另一個存儲塊存放數據。在某些條件下,甚至可以同時訪問同一個存儲塊。
        (3)允許有選擇的數據傳輸,即只選擇需要的輸入數據塊而不是全部數據。例如,系統在處理不同通道的數據時,可以在二維DMA傳輸過程中進行數據的實時更改與選擇。
        (4)鏈式二維DMA可以在DSP內核不干預的情況下進行無限制的多次DMA傳輸,并且每次操作的屬性和I/O都可以不同。
        (5)允許在一個激活的二維DMA鏈中插入高優先級的鏈式DMA,能實時實現DMA鏈的更新,繼續二維DMA數據傳輸。
        假設某系統中存在4種并行數據(如并行A/D采集數據)的二維DMA傳輸,通過乒乓緩存的方式進行數據的轉存,其數據塊二維傳輸過程如圖2所示。

        b.jpg


        圖2中的Data0…Data3表示連續產生的4路并行數據,Data00…Data0n表示Data0的n個數據塊。左側表示為原始輸入數據,例如A/D數據經過數字濾波器后的4路并行數據。中間表示為高速緩存區內部的一維排列數據,右邊表示經過二維DMA鏈路口傳輸后的二維數據塊排列。從圖中可以看出,二維DMA傳輸將原來不適合DSP流水線操作的數據,實時高效地傳輸到DSP內部,并將數據塊按照流水線要求順序排列存儲。
        TS201的二維DMA控制和狀態寄存器組,包括DMA控制寄存器、DMA狀態寄存器、清除寄存器和傳輸控制寄存器等。通過對寄存器組編程可以允許相應DMA產生中斷,整塊數據傳輸完畢后,DMA將產生中斷。中斷發生在計數寄存器減至0,而且是最后一個數據單元傳輸后。每個DMA控制塊都有自身的中斷,DMA中斷會鎖存在ILAT寄存器中,并由IMASK寄存器打開。但需要注意的是,DMA中的計數器必須是減到零,向計數器寄存器寫零并不會產生DMA中斷。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大英县| 南安市| 祥云县| 琼海市| 北京市| 栾川县| 阿荣旗| 丰顺县| 榕江县| 同德县| 博乐市| 大同县| 本溪市| 锡林浩特市| 巴楚县| 惠水县| 元谋县| 洪湖市| 曲阜市| 泰安市| 建德市| 和硕县| 通许县| 迁安市| 大渡口区| 茌平县| 铁岭县| 綦江县| 深州市| 上蔡县| 永靖县| 湖州市| 平罗县| 绥棱县| 连州市| 贡嘎县| 西吉县| 马边| 隆林| 汽车| 高雄市|