新聞中心

        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ò) 收藏

        傳輸控制塊寄存器是一個(gè)128位的四字組寄存器,含有塊傳輸所需的控制信息。在發(fā)送時(shí),4個(gè)字包含了原數(shù)據(jù)的地址、將要發(fā)送的字?jǐn)?shù)量、地址增量和控制位。在DMA接收時(shí),4個(gè)字包含了目的地址、將要接收的字?jǐn)?shù)據(jù)數(shù)量、地址增量和控制位,其結(jié)構(gòu)如圖3所示。

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

        c.jpg


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

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

        d.jpg


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

        e.jpg


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

        f.jpg


        上標(biāo)表示DSP0內(nèi)部存儲(chǔ)區(qū)內(nèi)的偏移地址,每次DMA中斷傳輸4×1 024個(gè)數(shù)據(jù),即每次傳輸4行1 024列大小的數(shù)據(jù),8次DMA中斷即可獲得一個(gè)時(shí)間片內(nèi)的2個(gè)A/D采集數(shù)據(jù)經(jīng)過(guò)4個(gè)FIR濾波器后的全部數(shù)據(jù),而且數(shù)據(jù)塊按照DSP0的流水線順序排列。



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 鹤岗市| 宁强县| 泌阳县| 津南区| 稻城县| 乐陵市| 德昌县| 同德县| 尖扎县| 海安县| 缙云县| 河津市| 崇文区| 葵青区| 陆丰市| 汾阳市| 福海县| 大悟县| 台北市| 应城市| 汉中市| 祁门县| 天峨县| 泊头市| 衢州市| 万山特区| 望城县| 张掖市| 福海县| 永丰县| 惠水县| 澳门| 雷州市| 炎陵县| 奉化市| 随州市| 佛山市| 从化市| 铅山县| 内乡县| 邵武市|