新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ADSP-TSl01的DMA在紅外圖像處理系統中應用

        ADSP-TSl01的DMA在紅外圖像處理系統中應用

        作者: 時間:2006-12-08 來源:網絡 收藏

        摘 要:以由型高速數字器和EPM3256型復雜可編程邏輯器件構成的系統為例,詳細介紹系統中DSP的通道的
        關鍵詞-TSlOl;;CPLD

        1 引言
        統的數據吞吐量大.處理算法復雜。由高速數字處理器和復雜可編程邏輯器件(CPLD)構成的紅外圖像處統是當前紅外圖像處統的一種發展趨勢。將高速處理器從繁重的數據傳輸中解脫出來,專注于從事圖像處理,是解決速度瓶頸的重要手段。

        直接內存存取()是在CPU無需干預的情況下自動進行數據傳輸的方式。它對于浮點DSP進行實時信號處理有著非常重要的作用。一方面.為了發揮DSP核心運算單元的高速運算能力.必須首先把程序和數據傳輸到DSP的內存中.這通常需要DMA操作來實現;另一方面.DSP系統總要跟外部信號通信,不論是數據的輸入還是輸出,都需要DMA來完成。否則會影響DSP核的高速運算能力。

        -TSlOl是AD公司推出的新型浮點DSP之一。其內部有專門的DMA控制器。還提供了多個DMA通道.不同的通道對應不同的外部口操作。本文首先概括介紹由ADSP一TPSl01和EPM3256型CPLD構成的紅外處理系統。然后對系統中的幾種典型DMA操作進行詳細的分析。

        2 系統結構
        本文介紹的紅外處理系統主要用于320x240像素紅外圖像的處理.對背景中的目標進行檢測、跟蹤和識別。系統的硬件結構如圖1所示。該系統采用2個ADSP-TS101作為處理器,2個的FIFO作為輸入輸出緩存,1個SDRAM作為外部存儲器,1個:EPM3256型CPLD作為邏輯控制。

        在此系統之前的處理是紅外圖像的采集過程。采集到的紅外圖像數據經過外部連接首先傳輸到輸入緩沖FIFO中。當某一幀圖像數據傳輸完畢,使用特有的FLYBY傳輸方式將數據由輸入緩沖FIFO傳輸到SDRAM中,然后DSP對圖像數據進行目標檢測等處理。處理結果先存儲在DSP內的RAM中,最后輸入到輸出緩沖FIFO。其中包括FIFO到SDRAM、SDRAM到DSP及DSP間的數據傳輸,由于都采用了DMA傳輸,不占用DSP資源,大大提高了系統的處理能力。

        3 ADSP―的DMA描述
        ADSP-TSl01是TigerSharc系列DSP的首個成員,具有極高的運算能力。它片內的DMA控制器允許將數據傳輸作為后臺任務執行,從而將處理器內核釋放出來。其內部具有14個DMA通道,如圖2所示,分別對應著不同類型的傳輸操作。4個通道專用于外部存儲器設備,8個。DMA通道用于鏈路口,還有2個通道用于自動。DMA操作。多樣的傳輸手段使得ADSP―TSl01傳輸數據非常方便。利用DMA控制器,DSP處理器可以執行以下幾種類型的數據傳輸:

        (1)內部存儲器到外部存儲器或與存儲器映射的外設設備之間的數據傳遞;
        (2)外部存儲器與外部外設之間的飛躍式數據傳輸;
        (3)外部存儲器到鏈路口I/O的數據傳輸;
        (4)鏈路口I/O到處理器內部存儲器的數據傳輸:
        (5)鏈路口I/O到外部存儲器的數據傳輸;
        (6)鏈路口I/O之間的閉環數據傳輸。

        TSl01的DMA控制器由專用的控制器核、發送端TCB寄存器與接收端TCB寄存器等構成。DMA傳送的數據流具有方向性,即從發送端(源)到接收端(目的)。若發送端或接收端是存儲器,則需通過TCB寄存器來描述。TCB寄存器是128 bit寄存器,如圖3所示.包括啟動DMA所必需的信息。例如,1個傳送TCB包括數據源的地址、傳輸的數據字節數、地址的增量、控制信息。若啟動DMA操作,需對TCB寄存器進行編程。

        TCB寄存器由4個32位寄存器組成:DI寄存器、DX寄存器、DX寄存器和DP寄存器。DI寄存器是32 bit索引寄存器,它包含傳送的源地址或者接受的目的地地址,可以指向內存、外存或者LINK口。DX寄存器包含了1個16 bit的計數值和1個16 bit的修正值,分別存儲在DX的前16位(前者)和后16位。如果一個二維DMA被使能,該寄存器包含的值僅僅代表X方向。例如:如果要傳輸4個128 bit的字.計數值將被設置為0X10,而修正值與DP寄存器中的操作數長度相對應。如果操作數長度是長字.那么修正值將會被設置為0X2。DY寄存器與DX寄存器相對應,只有啟動二維DMA時才會用到。DP寄存器包括DMA所有的控制信息,分為控制信息和DMA鏈信息。

        4 系統中的典型DMA操作
        在本文介紹的紅外圖像系統中,主要使用以下幾種DMA操作:內存與外存(內存與SDRAM間的數據傳輸)、內存與LINK口間的數據傳輸、外設與外存的數據傳輸(FIFO與SDRAM間的數據傳輸)。

        4.1 內存與外存間的DMA操作

        TSl01處理器有4個專用DMA通道,用于內部存儲器與外部存儲器之間的數據傳輸。每個通道有2個TCB DP寄存器、1個發送TCB和1個接收。TCB.其中發送端用來驅動數據,接收端用來接收數據。DP寄存器的TY域指定了要執行的DMA傳送的類型。

        實現外部存儲器與內部存儲器的數據傳輸有2種途徑:一是對4個DMA通道中的1個進行編程,將數據塊從一個存儲器移人另一個存儲器。此時.發送和接收TCB都需要進行配置:二是使用2個AutoDMA通道中的一個,此時,外設首先對通道的2個TCB寄存器編程,然后向目標AutoDMA數據寄存器寫人數據。向這個地址進行寫操作,激活相應的DMA。

        下面以在紅外處理系統中的為例說明第一種用法。如要將SDRAM內地址為0x400000~
        Ox4003FF中的1024個數用DMA通道0傳送到內存地址0xS0000~0x803FF中.可用下面的

        編程來實現:
        XR0=0x400000:← DI Register
        XRl=OxO4D00004:← DX Register
        XR2=0x00000000;← DY Register
        XR3=Ox87000000:←DP Register
        DCS0=XR3:0:
        XR8=0x80000; ← DI Rester
        XR9=ox04000004;←DX ReRister
        XRl0=0x0000000;← DY Re西sler
        XRll=ox47000000;← DP Register
        DCD0=XRll:8:

        4.2 內存與LINK口間的DM_A操作

        TSl01的鏈路口為處理器內部或外部的數據傳輸提供了快速、獨立的通信機制,它為系統中的DSP之間提供了點對點的通信方法。每個DSP有4個鏈路口,每個鏈路口都由8位雙向數據線和另外3條控制線構成。鏈路口的結構如圖4所示。每個鏈路口有2個端口(發送端和接收端)和2個緩沖區。緩沖區用于打包或解包鏈路口數據,與內部存儲器進行數據交換。

        TSl01的4個鏈路口均可使用DMA方式發送或接收數據,可以實現鏈路口與內部存儲器、外部存儲器或其他鏈路口之間的雙向數據傳送。處理器為每個鏈路口提供了2個專用的DMA通道,1個用于發送數據,1個用于接收數據。兩個DMA通道均可以與內部或外部存儲器接口。當接收端寄存器空且鏈路DMA通道使能時,鏈路口向發送DMA通道發出DMA請求,鏈路1:3可以繼續向緩存區寫數據。當接收寄存器滿且DMA通道使能時,鏈路口向接收DMA通道發出DMA請求。

        以紅外處理系統中的為例,如圖l所示.DSPO通過LINK口0與DSPl的LINK口1相連。如果將DSP0內存中的數組data_tx中N個數通過鏈路口傳輸到DSPl內存中的數組data_rx中.首先要對DSPl的LINK口l的接收DMA通道進行編程,然后對DSP0的LINK口O的發送DMA通道進行編程。

        DSPl中的程序:
        TCB_temp.DI=data_rx;
        TCB_temp.DX=4 I(N16);
        TCB_temp.DY=O:
        TCB_temp.DP=0x47000000;
        q=_buihin_compose_128((1ong long)TCB_temp.DI │
        (10ng long)TCB_temp.DX32.(10ng ions)
        (TCB_temp.DY│(10ng long)TCB_temp.DP321);
        builtin_sysreg_write(LCTLl.0x000004D2);//設定

        鏈路口的控制寄存器
        builtin_sysreg_write4(DC9,cO;
        DSPO中的程序:
        TCB_temp.DI:data_tx;
        TCB_temp.DX=4 I(N16);
        TCB_temp.DY=0:
        TCB_temp.DP=0x47000000;
        q= builtin_eompose_128((10ng long)TCB_temp.DI │
        (10ng long)TCB_temp.DX32,(1ong 1ong)
        (TCB_temp.DY I(1ong long)TCB_temp.DP32));
        buihin_sysreg_write(LCTL0,0x000004D2);
        /,設定鏈路口的控制寄存器
        builtin_sysreg_write4(DC4,q);

        在以上編程中,將鏈路口時鐘配置成1/3核時鐘。當處理器核工作在300 MHz和鏈路口工作在100 MHz時鏈路口的吞吐率可以達到200 MB。

        4.3 外存與外設間的DMA操作(飛躍傳輸)

        在程序設計中,要實現外部存儲器與其他外部設備之間的數據傳輸,通常都需要通過處理器內核將數據傳輸到處理器內部。在這種情況下.TSl01處理器支持全新的數據傳輸即飛躍傳(上接第60頁)輸方式.此時不必對內部存儲器進行訪問,數據直接在外部存儲器和外部其他設備之間傳輸。在飛躍傳輸方式下。可把TSl01看作獨立的DMA控制器。飛躍傳輸方式與標準的DMA傳輸方式類似,程序設計也基本相同,但是數據寬度必須與外部10設備匹配。而且只能使用DMA通道0。

        5 結束語
        充分利用DSP的DMA功能是解決高速圖像處理器速度瓶頸的重要手段。ADSP一TS101的DMA操作功能強大,形式多樣。它可以在不中斷信號處理器算法處理工作的同時完成圖像數據的傳輸,提高處理系統的性能。本文分析的幾種操作在紅外圖像處理系統中得到具體的實踐,獲得良好的效果。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 扎赉特旗| 海盐县| 屯门区| 平凉市| 宜兰县| 观塘区| 浏阳市| 崇信县| 普陀区| 黄梅县| 六枝特区| 靖远县| 舟山市| 顺昌县| 鹿邑县| 台北市| 柯坪县| 甘孜| 丰台区| 土默特左旗| 恩施市| 宁远县| 大余县| 寿阳县| 班戈县| 师宗县| 九江市| 拜泉县| 三都| 滁州市| 辉南县| 腾冲县| 龙井市| 灵台县| 固镇县| 万盛区| 石家庄市| 沁阳市| 利川市| 亚东县| 湟源县|