當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于ADSP-TS201S的二維DMA數(shù)據(jù)傳輸

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

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


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


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


    圖2中的Data0…Data3表示連續(xù)產(chǎn)生的4路并行數(shù)據(jù),Data00…Data0n表示Data0的n個數(shù)據(jù)塊。左側表示為原始輸入數(shù)據(jù),例如A/D數(shù)據(jù)經(jīng)過數(shù)字濾波器后的4路并行數(shù)據(jù)。中間表示為高速緩存區(qū)內(nèi)部的一維排列數(shù)據(jù),右邊表示經(jīng)過二維DMA鏈路口傳輸后的二維數(shù)據(jù)塊排列。從圖中可以看出,二維DMA傳輸將原來不適合DSP流水線操作的數(shù)據(jù),實時高效地傳輸?shù)紻SP內(nèi)部,并將數(shù)據(jù)塊按照流水線要求順序排列存儲。
    TS201的二維DMA控制和狀態(tài)寄存器組,包括DMA控制寄存器、DMA狀態(tài)寄存器、清除寄存器和傳輸控制寄存器等。通過對寄存器組編程可以允許相應DMA產(chǎn)生中斷,整塊數(shù)據(jù)傳輸完畢后,DMA將產(chǎn)生中斷。中斷發(fā)生在計數(shù)寄存器減至0,而且是最后一個數(shù)據(jù)單元傳輸后。每個DMA控制塊都有自身的中斷,DMA中斷會鎖存在ILAT寄存器中,并由IMASK寄存器打開。但需要注意的是,DMA中的計數(shù)器必須是減到零,向計數(shù)器寄存器寫零并不會產(chǎn)生DMA中斷。[!--empirenews.page--]
    DMA傳輸控制塊寄存器是一個128位的四字組寄存器,含有DMA塊傳輸所需的控制信息。在DMA發(fā)送時,4個字包含了原數(shù)據(jù)的地址、將要發(fā)送的字數(shù)量、地址增量和控制位。在DMA接收時,4個字包含了目的地址、將要接收的字數(shù)據(jù)數(shù)量、地址增量和控制位,其結構如圖3所示。


    其中,DI寄存器是一個32位的DMA索引寄存器,它包括了將要發(fā)送或者接收的數(shù)據(jù)源地址或者目的地址,既可以指向內(nèi)部寄存器和外部寄存器,也可以指向鏈路口。DX寄存器包含一個16位的汁數(shù)值和一個16位的修改量,計數(shù)值保存在高16位,修改量保存在低16位。如果使能了二維DMA,則該寄存器保存的只是X方向的計數(shù)值和修改量。計數(shù)值和修改量均以32位字為單位。DY寄存器和DX寄存器結合使用,該寄存器保存了Y方向上的16位修改量和16位計數(shù)值。如果只是進行一維的DMA傳輸,就不需要設置該寄存器。DP寄存器包含了DMA傳輸?shù)乃锌刂菩畔ⅰ?2位到31位包含了所有控制信息,0位到21位包含了鏈式信息。
    一般情況下啟動二維DMA的步驟如下:
    (1)保存TCB DI寄存器中的當前地址,啟動一個DMA存儲器周期。
    (2)在該周期內(nèi),將TCB DX增量寄存器中的X修改量與TCB DI寄存器中的當前地址相加。
    (3)TCB DX計數(shù)寄存器內(nèi)容減1,若TCB DX計數(shù)寄存器值為零,則執(zhí)行第4步。
    (4)重新加載TCB DX計數(shù)寄存器值。
    (5)DMA寄存器中Y維增量加到TCB DI寄存器中的當前地址。
    (6)TCB DX計數(shù)寄存器內(nèi)容減1。
    (7)若TCB DX計數(shù)寄存器值等于零,則DMA傳輸結束,在再次設置TCB前,需禁止它。

2 二維DMA應用
2.1 硬件設計
    水聲信號處理系統(tǒng)的復雜性和連續(xù)性要求信號處理系統(tǒng)具有較高的實時處理能力,所以設計時采用多片TS201來構成并行處理系統(tǒng),以提高系統(tǒng)的數(shù)據(jù)處理能力。各DSP之間僅通過鏈路口無縫連接,片間連線少,降低了PCB布線難度和層數(shù),節(jié)約了制板成本。此外,數(shù)據(jù)傳輸采用鏈路口的二維DMA方式,并不占用DSP內(nèi)核的運算時間,可以提高處理板的實時性能,保證系統(tǒng)流水線操作的順利執(zhí)行。系統(tǒng)硬件結構圖見圖4所示。


    模擬輸入端采用2片18位的高速A/D進行模數(shù)轉換,每一片A/D的數(shù)據(jù)分別經(jīng)過FPGA中的4個FIR濾波器,產(chǎn)生的8路并行數(shù)據(jù)通過鏈路口二維DMA傳送給DSP組,進行相應的數(shù)字信號處理。具體數(shù)據(jù)傳輸框圖見圖5所示。


    其中,①,②,…,⑧表示LVDS鏈路口數(shù)據(jù)傳輸順序;lal表示AD1數(shù)據(jù)經(jīng)過FIRa濾波器后的低1 KB數(shù)據(jù),lah表示AD1數(shù)據(jù)經(jīng)過FIRa濾波器后的高1 KB數(shù)據(jù)。濾波后的A/D數(shù)據(jù)進入乒乓緩存,最后通過鏈路口將數(shù)據(jù)傳輸?shù)紻SP內(nèi)部。這里要求,在下一個數(shù)據(jù)塊采樣結束之前,需要完成上一個數(shù)據(jù)塊的傳輸、濾波、相關及功率譜分析等一系列較為復雜的數(shù)據(jù)處理。由于AD1,AD2是同步采樣的,經(jīng)過數(shù)字濾波器的數(shù)據(jù)通過LVDS鏈路口順序傳輸,為了減少數(shù)據(jù)塊調整和挑選的時間,這里采用鏈路口的二維DMA傳輸方式,可以快捷地將A/D采集的數(shù)據(jù)塊按照流水順序寫入DSP內(nèi)部存儲區(qū)。
2.2 軟件設計
    以圖4中所示的FPGA與DSP0的L3鏈路口的二維DMA數(shù)據(jù)傳輸為例,假設數(shù)據(jù)塊大小設定為1 024點,其鏈路口數(shù)據(jù)排列順序如圖6所示。


    上標表示DSP0內(nèi)部存儲區(qū)內(nèi)的偏移地址,每次DMA中斷傳輸4×1 024個數(shù)據(jù),即每次傳輸4行1 024列大小的數(shù)據(jù),8次DMA中斷即可獲得一個時間片內(nèi)的2個A/D采集數(shù)據(jù)經(jīng)過4個FIR濾波器后的全部數(shù)據(jù),而且數(shù)據(jù)塊按照DSP0的流水線順序排列。[!--empirenews.page--]
    DSP0軟件需要完成L3鏈路口的初始配置和接受中斷函數(shù)的設計,首先進行DSP系統(tǒng)時鐘和UART及FIR濾波器系統(tǒng)的初始設置,然后進行二維DMA寄存器控制和內(nèi)存塊的分配,然后開啟硬件A/D采集,等待二維DMA中斷,進入中斷后獲得最終數(shù)據(jù)。軟件流程見圖7所示。


    二維DMA中斷處理代碼如下:
   
   
    其中的L3r_data為數(shù)據(jù)存儲區(qū)的首地址。

3 結語
    本文介紹了TS201的二維DMA傳輸,結合實例說明了鏈路口二維DMA設置及應用方法,給出軟件設置流程圖及關鍵代碼。實踐證明,二維DMA傳輸能夠保證大量數(shù)據(jù)的可靠傳輸,同時又解決了多處理器之間共用總線所產(chǎn)生的I/O瓶頸問題,增強了多處理器系統(tǒng)的并行處理能力,提高了系統(tǒng)流水線運行效率。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉