新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ADSP-TS201S的二維DMA數(shù)據(jù)傳輸

基于ADSP-TS201S的二維DMA數(shù)據(jù)傳輸

作者: 時(shí)間:2012-03-08 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

本文引用地址:http://m.butianyuan.cn/article/149491.htm


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

a.jpg


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

b.jpg


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


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉