| 作者:國防科技大學(xué) 胡昆明 摘 要:以由ADSP—TSl01型高速數(shù)字處理器和EPM3256型復(fù)雜可編程邏輯器件構(gòu)成的紅外圖像處理系統(tǒng)為例,詳細(xì)介紹系統(tǒng)中DSP的DMA通道的應(yīng)用。 關(guān)鍵詞:紅外圖像處理;ADSP-TSlOl;DMA;CPLD 1 引言 紅外圖像處理系統(tǒng)的數(shù)據(jù)吞吐量大.處理算法復(fù)雜。由高速數(shù)字處理器和復(fù)雜可編程邏輯器件(CPLD)構(gòu)成的紅外圖像處理系統(tǒng)是當(dāng)前紅外圖像處理系統(tǒng)的一種發(fā)展趨勢。將高速處理器從繁重的數(shù)據(jù)傳輸中解脫出來,專注于從事圖像處理,是解決速度瓶頸的重要手段。 直接內(nèi)存存取(DMA)是在CPU無需干預(yù)的情況下自動進(jìn)行數(shù)據(jù)傳輸?shù)姆绞。它對于浮點(diǎn)DSP進(jìn)行實(shí)時(shí)信號處理有著非常重要的作用。一方面.為了發(fā)揮DSP核心運(yùn)算單元的高速運(yùn)算能力.必須首先把程序和數(shù)據(jù)傳輸?shù)紻SP的內(nèi)存中.這通常需要DMA操作來實(shí)現(xiàn);另一方面.DSP系統(tǒng)總要跟外部信號通信,不論是數(shù)據(jù)的輸入還是輸出,都需要DMA來完成。否則會影響DSP核的高速運(yùn)算能力。 ADSP-TSlOl是AD公司推出的新型浮點(diǎn)DSP之一。其內(nèi)部有專門的DMA控制器。還提供了多個(gè)DMA通道.不同的通道對應(yīng)不同的外部口操作。本文首先概括介紹由ADSP一TPSl01和EPM3256型CPLD構(gòu)成的紅外處理系統(tǒng)。然后對系統(tǒng)中的幾種典型DMA操作進(jìn)行詳細(xì)的分析。 2 系統(tǒng)結(jié)構(gòu) 本文介紹的紅外處理系統(tǒng)主要用于320x240像素紅外圖像的處理.對背景中的目標(biāo)進(jìn)行檢測、跟蹤和識別。系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。該系統(tǒng)采用2個(gè)ADSP-TS101作為處理器,2個(gè)的FIFO作為輸入輸出緩存,1個(gè)SDRAM作為外部存儲器,1個(gè):EPM3256型CPLD作為邏輯控制。  在此系統(tǒng)之前的處理是紅外圖像的采集過程。采集到的紅外圖像數(shù)據(jù)經(jīng)過外部連接首先傳輸?shù)捷斎刖彌_FIFO中。當(dāng)某一幀圖像數(shù)據(jù)傳輸完畢,使用TSl01特有的FLYBY傳輸方式將數(shù)據(jù)由輸入緩沖FIFO傳輸?shù)絊DRAM中,然后DSP對圖像數(shù)據(jù)進(jìn)行目標(biāo)檢測等處理。處理結(jié)果先存儲在DSP內(nèi)的RAM中,最后輸入到輸出緩沖FIFO。其中包括FIFO到SDRAM、SDRAM到DSP及DSP間的數(shù)據(jù)傳輸,由于都采用了DMA傳輸,不占用DSP資源,大大提高了系統(tǒng)的處理能力。 3 ADSP—TSl01的DMA描述 ADSP-TSl01是TigerSharc系列DSP的首個(gè)成員,具有極高的運(yùn)算能力。它片內(nèi)的DMA控制器允許將數(shù)據(jù)傳輸作為后臺任務(wù)執(zhí)行,從而將處理器內(nèi)核釋放出來。其內(nèi)部具有14個(gè)DMA通道,如圖2所示,分別對應(yīng)著不同類型的傳輸操作。4個(gè)通道專用于外部存儲器設(shè)備,8個(gè)。DMA通道用于鏈路口,還有2個(gè)通道用于自動。DMA操作。多樣的傳輸手段使得ADSP—TSl01傳輸數(shù)據(jù)非常方便。利用DMA控制器,DSP處理器可以執(zhí)行以下幾種類型的數(shù)據(jù)傳輸: (1)內(nèi)部存儲器到外部存儲器或與存儲器映射的外設(shè)設(shè)備之間的數(shù)據(jù)傳遞; (2)外部存儲器與外部外設(shè)之間的飛躍式數(shù)據(jù)傳輸; (3)外部存儲器到鏈路口I/O的數(shù)據(jù)傳輸; (4)鏈路口I/O到處理器內(nèi)部存儲器的數(shù)據(jù)傳輸: (5)鏈路口I/O到外部存儲器的數(shù)據(jù)傳輸; (6)鏈路口I/O之間的閉環(huán)數(shù)據(jù)傳輸。  TSl01的DMA控制器由專用的控制器核、發(fā)送端TCB寄存器與接收端TCB寄存器等構(gòu)成。DMA傳送的數(shù)據(jù)流具有方向性,即從發(fā)送端(源)到接收端(目的)。若發(fā)送端或接收端是存儲器,則需通過TCB寄存器來描述。TCB寄存器是128 bit寄存器,如圖3所示.包括啟動DMA所必需的信息。例如,1個(gè)傳送TCB包括數(shù)據(jù)源的地址、傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)、地址的增量、控制信息。若啟動DMA操作,需對TCB寄存器進(jìn)行編程。  TCB寄存器由4個(gè)32位寄存器組成:DI寄存器、DX寄存器、DX寄存器和DP寄存器。DI寄存器是32bit索引寄存器,它包含傳送的源地址或者接受的目的地地址,可以指向內(nèi)存、外存或者LINK口。DX寄存器包含了1個(gè)16 bit的計(jì)數(shù)值和1個(gè)16 bit的修正值,分別存儲在DX的前16位(前者)和后16位。如果一個(gè)二維DMA被使能,該寄存器包含的值僅僅代表X方向。例如:如果要傳輸4個(gè)128 bit的字.計(jì)數(shù)值將被設(shè)置為0X10,而修正值與DP寄存器中的操作數(shù)長度相對應(yīng)。如果操作數(shù)長度是長字.那么修正值將會被設(shè)置為0X2。DY寄存器與DX寄存器相對應(yīng),只有啟動二維DMA時(shí)才會用到。DP寄存器包括DMA所有的控制信息,分為控制信息和DMA鏈信息。 4 系統(tǒng)中的典型DMA操作 在本文介紹的紅外圖像系統(tǒng)中,主要使用以下幾種DMA操作:內(nèi)存與外存(內(nèi)存與SDRAM間的數(shù)據(jù)傳輸)、內(nèi)存與LINK口間的數(shù)據(jù)傳輸、外設(shè)與外存的數(shù)據(jù)傳輸(FIFO與SDRAM間的數(shù)據(jù)傳輸)。 4.1 內(nèi)存與外存間的DMA操作 TSl01處理器有4個(gè)專用DMA通道,用于內(nèi)部存儲器與外部存儲器之間的數(shù)據(jù)傳輸。每個(gè)通道有2個(gè)TCB DP寄存器、1個(gè)發(fā)送TCB和1個(gè)接收。TCB.其中發(fā)送端用來驅(qū)動數(shù)據(jù),接收端用來接收數(shù)據(jù)。DP寄存器的TY域指定了要執(zhí)行的DMA傳送的類型。 實(shí)現(xiàn)外部存儲器與內(nèi)部存儲器的數(shù)據(jù)傳輸有2種途徑:一是對4個(gè)DMA通道中的1個(gè)進(jìn)行編程,將數(shù)據(jù)塊從一個(gè)存儲器移人另一個(gè)存儲器。此時(shí).發(fā)送和接收TCB都需要進(jìn)行配置:二是使用2個(gè)AutoDMA通道中的一個(gè),此時(shí),外設(shè)首先對通道的2個(gè)TCB寄存器編程,然后向目標(biāo)AutoDMA數(shù)據(jù)寄存器寫人數(shù)據(jù)。向這個(gè)地址進(jìn)行寫操作,激活相應(yīng)的DMA。 下面以在紅外處理系統(tǒng)中的應(yīng)用為例說明第一種用法。如要將SDRAM內(nèi)地址為0x400000~ Ox4003FF中的1024個(gè)數(shù)用DMA通道0傳送到內(nèi)存地址0xS0000~0x803FF中.可用下面的 編程來實(shí)現(xiàn): 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 內(nèi)存與LINK口間的DM_A操作 TSl01的鏈路口為處理器內(nèi)部或外部的數(shù)據(jù)傳輸提供了快速、獨(dú)立的通信機(jī)制,它為系統(tǒng)中的DSP之間提供了點(diǎn)對點(diǎn)的通信方法。每個(gè)DSP有4個(gè)鏈路口,每個(gè)鏈路口都由8位雙向數(shù)據(jù)線和另外3條控制線構(gòu)成。鏈路口的結(jié)構(gòu)如圖4所示。每個(gè)鏈路口有2個(gè)端口(發(fā)送端和接收端)和2個(gè)緩沖區(qū)。緩沖區(qū)用于打包或解包鏈路口數(shù)據(jù),與內(nèi)部存儲器進(jìn)行數(shù)據(jù)交換。 |