董 磊,馮 媛
(西安衛(wèi)星測控中心陜西渭南714000)
合成孔徑雷達(dá)作為一種重要的二維高分辨雷達(dá),在測繪、搶險救災(zāi)和軍事偵察方面均發(fā)揮了重大作用。但是其成像處理算法較為復(fù)雜,實時處理對硬件的運算能力要求又很高,一直限制著合成孔徑雷達(dá)實時成像方面的應(yīng)用。
文中以TMS320C6678為核心,設(shè)計了高速運動平臺雷達(dá)信號實時處理板,并結(jié)合改進(jìn)的距離-多普勒[1-3](Range-Doppler,R-D)雷達(dá)成像算法特點,高效分配多核資源,充分發(fā)揮了多核DSP(Digital Signal Processor)強大的計算能力和并行處理能力,實現(xiàn)了雷達(dá)回波信號的實時處理。
為了滿足大數(shù)據(jù)量的并行處理和復(fù)雜算法的實時處理,保證數(shù)據(jù)處理的連續(xù)性,硬件平臺充分利用了FPGA(Field Programmable Gate Array)密集型并行計算實時性高,DSP處理精度高、資源控制和處理復(fù)雜算法靈活的優(yōu)勢,采用乒乓處理方式,硬件采用EP4SGX230+2路TMS320C6678的結(jié)構(gòu),其硬件框圖如圖1所示。
EP4SGX230接收模數(shù)變換后的雷達(dá)中頻回波數(shù)據(jù),經(jīng)DDC變換后將對數(shù)字基帶信號進(jìn)行部分算法處理、邏輯和接口控制、多路處理,解決并行性和實時性的問題,減輕DSP并行處理的負(fù)擔(dān)。TMS320C6678負(fù)責(zé)主要成像算法的處理。
FPAG與DSP間、兩片DSP之間均采用Rapid IO接口互聯(lián),F(xiàn)PGA還負(fù)責(zé)DSP的電源啟動配置。FPGA和 DSP均掛載 2GB的 DDR3、256KB的EEPROM和2GB flash存儲器。
圖1 雷達(dá)信號處理板框圖
為了保證系統(tǒng)穩(wěn)定性,DSP和FPGA電源相互獨立,ADC采用線性電源供電。
要實現(xiàn)合成孔徑雷達(dá)成像精確的空變二維匹配濾波是比較復(fù)雜的。可以在成像質(zhì)量要求、成像模型上進(jìn)行一些近似簡化,實現(xiàn)快速、高效成像。
雷達(dá)在飛行過程中,對回波的采樣和量化,是按照先距離方向,后方位方向的順序進(jìn)行的,信號具有二維結(jié)構(gòu)。而且本文的雷達(dá)平臺飛行速度快,在4 km/s~2 km/s變化,方位向過采樣率在0.9~1.4之間,由于方位分辨率遠(yuǎn)大于距離分辨率,可以通過方位向預(yù)濾波降采樣[2]降低方位向多普勒帶寬滿足方位向1.2倍過采樣率要求,同時保證方位不模糊的同時降低方位向數(shù)據(jù)率,在滿足成像要求的情況下使距離和方位分辨率匹配,同時減少降采樣后的混疊干擾,保住回波的相位信息,這樣比較有利于信號的實時處理。
對于正側(cè)視成像來說,距離-多普勒算法將首先解除距離、方位兩維之間的耦合,進(jìn)行距離走動和距離彎曲校正,解耦后二維處理等價于兩個一維處理[3],這樣在硬件處理時,比較容易引入流水處理和并行處理,也不會在硬件中進(jìn)行大規(guī)模的轉(zhuǎn)置操作,比較有利于實時成像處理。
并且考慮到實際平臺運動狀態(tài)受外界因素影響存在不穩(wěn)定性,可能存在非勻速、小范圍側(cè)擺。運動狀態(tài)變化引起的多普勒中心和多普勒調(diào)頻率變化[3],可以通過對原始數(shù)據(jù)進(jìn)行估計或者慣導(dǎo)數(shù)據(jù)對距離向數(shù)據(jù)進(jìn)行線性相位補償,對方位向數(shù)據(jù)進(jìn)行運動補償,進(jìn)一步解除距離向和方位向的耦合。在通過距離、方位兩個一維的匹配濾波,得到所需場景圖像。
本文采用的硬件成像算法如圖2所示??紤]到硬件處理數(shù)據(jù)流,F(xiàn)PGA并行完成數(shù)字下變頻、距離壓縮、方位預(yù)濾波降采樣,如圖2中虛線所示。DSP完成多普勒中心估計、線性相位補償、運動補償和方位壓縮,同時FPGA還負(fù)責(zé)對外數(shù)據(jù)通信。
圖2 成像算法流程圖
實時處理算法可以分解為數(shù)字下變頻(DDC)模塊、距離脈沖壓縮模塊、方位預(yù)濾波模塊、線性相位補償模塊、運動補償模塊、方位脈沖壓縮模塊和通信模塊。本文主要介紹DSP處理模塊。
信號處理板中,F(xiàn)PGA可以通過IP核與DSP實現(xiàn)Rapid IO 2.1[5]協(xié)議通信。兩路DSP間采用2倍速(2.5 Gbps)連接,F(xiàn)PGA與兩路DSP間之間均采用1倍速(1.25 Gbps)連接。
由于DSP的內(nèi)存映射關(guān)系及相應(yīng)數(shù)據(jù)段已經(jīng)在DSP的CMD配置文件中定義,故可以采用Direct I/O通信方式,將FPGA設(shè)置為主控設(shè)備端,DSP設(shè)置為從屬設(shè)備端,F(xiàn)PGA可以將DSP當(dāng)做隨機存儲器,使用NREAD和NWRITE兩種方法直接對DSP相應(yīng)的地址空間進(jìn)行讀寫[6-7]。同時設(shè)置FPGA和兩路DSP的Device ID,以便互相識別。表1為FPGA讀寫DSP外掛的2GB DDR3中100MB數(shù)據(jù)的性能。
表1 FPGA讀寫DSP DDR3中數(shù)據(jù)的性能
實時處理中,DSP初始化SRIO后,F(xiàn)PGA就可以通過NWRITE發(fā)送數(shù)據(jù),一般FPGA還需要發(fā)送一個DoorBell信息通知DSP,F(xiàn)PGA要發(fā)送數(shù)據(jù)。對于FPGA通過NREAD讀取DSP存儲器數(shù)據(jù),F(xiàn)PGA發(fā)送這個命令后,DSP會自動的將請求的數(shù)據(jù)發(fā)送出去,但也需要DoorBell信息通知FPGA數(shù)據(jù)發(fā)送出去。所以FPGA每次對DSP數(shù)據(jù)的讀寫可以通過DoorBell中斷方式進(jìn)行,通過設(shè)置中斷事件16-19,進(jìn)行相應(yīng)的處理,通過設(shè)置不同的DoorBell信息,通知對方一塊數(shù)據(jù)或一幀圖像數(shù)據(jù)開始發(fā)送或者發(fā)送完成,保證系統(tǒng)數(shù)據(jù)交換的可靠性。
DoorBell中斷配置及中斷服務(wù)程序流程如圖3所示。
圖3 中斷配置及中斷服務(wù)程序流程圖
雷達(dá)成像數(shù)據(jù)量通常都較大,并行處理時,每個核無法同時將DDR3或MSM(共享存儲空間)中的數(shù)據(jù)利用EMDA3搬移到各自L2中,必須通過一定措施實現(xiàn)實現(xiàn)核間通信保證EDMA3任務(wù)分配。
C66X內(nèi)核對訪問相同存儲空間提供了硬件信號量、共享存儲空間和核間中斷三種方法進(jìn)行核間通信[8-9]。文中采用相對比較容易理解的共享存儲空間方法實現(xiàn)核間通信。其基本思想如圖4所示。設(shè)置全局標(biāo)志位Flag,確保每個核對共享存儲空間訪問時,共享資源都是獨占的,保證數(shù)據(jù)的有效性,避免訪問沖突。
對于小數(shù)據(jù)量的計算使用EDMA3直接從DDR3將數(shù)據(jù)搬移到各核L2計算,不需要維護(hù)L2與L1D的cache一致性。對于塊數(shù)據(jù)的計算使用EDMA3從DDR3將數(shù)據(jù)搬移到MSM計算,通過共享存儲空間方式分配多核任務(wù),在每次數(shù)據(jù)搬入后,使L1D cache值無效,每次數(shù)據(jù)搬出前,將L1D cache中最新數(shù)據(jù)寫入MSM中,可以采用TI提供的兩個函數(shù)[10]完成:
圖4 共享存儲空間方法實現(xiàn)核間通信
線性相位校正是依據(jù)非聚焦SAR臨界合成孔徑長度,將一幅圖像數(shù)據(jù)按方位向分成若干塊,估計出每塊的多普勒中心,構(gòu)造相應(yīng)的線性相位校正函數(shù),在按方位向在頻域校正原始數(shù)據(jù),而后變換到時域完成線性相位補償。
為了保證實時性,每個核均預(yù)分配空間L2_swap作為數(shù)據(jù)交換區(qū),在MSM中分配塊空間MSM_Swap。每次運算由Core0將一塊數(shù)據(jù)搬移到MSM_Swap,每個核依次取兩條距離向數(shù)據(jù)至L2_swap進(jìn)行FFT、共軛點乘并累加求平均取相角后存入MSM,每個核將FFT后的數(shù)據(jù)輪流寫入DDR3,待所有分塊數(shù)據(jù)處理完成。Core0將相角轉(zhuǎn)化為多普勒中心,每個核根據(jù)結(jié)果構(gòu)造線性相位校正函數(shù)存儲至L2,依次進(jìn)行線性相位校正,并將數(shù)據(jù)轉(zhuǎn)置存儲到DDR3中,供運動補償使用。線性相位補償流程如圖5所示。
圖5 線性相位補償流程圖
由于平臺運動的不穩(wěn)定性,會使雷達(dá)回波距離向和方位向的耦合,必須進(jìn)行運動補償。運動補償關(guān)鍵是估計平臺在成像時間內(nèi)的運動參數(shù)。本文利用慣導(dǎo)數(shù)據(jù)得到每一點的沿航向速度及其引起的多普勒調(diào)頻率,并通過回波估計多普勒調(diào)頻率,得到視線方向加速度,構(gòu)造相應(yīng)沿航向和視線方向補償函數(shù),在時域進(jìn)行運動補償。其流程如圖6所示。
圖6 運動補償流程圖
硬件實現(xiàn)時,按方位向取合成孔徑相干積累時間十分之一的子塊[1,3],Core0每次將DDR3中線性相位補償后的數(shù)據(jù)取一個子塊到MSM_Swap,按距離向平均分成8塊,8個核分別處理一塊。每個核沿子塊方位分成前后兩個孔徑分別成像,進(jìn)行相關(guān)運算。Core0將相關(guān)結(jié)果累加得到總相關(guān)量,求取偏移量,與初始值相加后估計出多普勒調(diào)頻率。所有子塊調(diào)頻率計算完成,結(jié)合慣導(dǎo)數(shù)據(jù)擬合得到沿航向速度和視線方向加速度,Core0和Core1分別構(gòu)造沿航向和視線方向補償函數(shù)后,8個核按距離向進(jìn)行運動補償。這里采用Double型運算減小對誤差的累加效應(yīng)。
運動補償后,可以認(rèn)為相位誤差已經(jīng)基本消除[3],圖像可以良好聚焦。本文采用頻域方位壓縮,利用估計的多普勒中心和多普勒調(diào)頻率構(gòu)造方位頻域脈壓匹配函數(shù),方位脈沖壓縮后變換到時域,得到圖像數(shù)據(jù),存入DDR3。為了節(jié)約計算資源,將128位-4096位的FFT旋轉(zhuǎn)因子采用固化方式寫入flash,每次初始化后讀入MSM,供后續(xù)計算使用。
雷達(dá)平臺飛行速度從4 km/s~2 km/s變化時,多普勒帶寬的過采樣率逐漸增大,對于觀測2.6 km的場景的飛行時間增長,方位采樣點數(shù)也在增大。FPGA方位預(yù)濾波時,采用不同降采樣率的濾波器保證方位分辨率滿足指標(biāo)。系統(tǒng)連續(xù)出圖需保證相鄰兩幅圖像重疊半個孔徑的數(shù)據(jù),即兩路DSP乒乓處理的數(shù)據(jù)方位上重疊半個孔徑,由FPGA將重疊數(shù)據(jù)緩存,輪流發(fā)給兩路DSP,并且FPGA讀取DSP處理完成數(shù)據(jù)送給上位機進(jìn)行圖像拼接。連續(xù)出圖方案如圖7所示。
圖7 系統(tǒng)連續(xù)出圖方案
將2.6 km×4 km大小場景雷達(dá)回波(雷達(dá)重復(fù)頻率20 000 Hz,距離向采樣點數(shù)1200)仿真數(shù)據(jù)及慣導(dǎo)參數(shù)導(dǎo)入到FPGA外置DDR3存儲,由FPGA按實時采樣流水依次讀取數(shù)據(jù)與DSP聯(lián)合完成成像算法處理。圖8、圖9為兩路DSP乒乓處理后的雷達(dá)成像結(jié)果。
由于FPGA的并行流水處理特點,其算法處理的時間消耗極少,主要時間消耗在DSP上,表2為DSP處理算法消耗的時間。
以平臺最快飛行速度4 km/s計算,平臺飛行2.6 km的一幅圖像場景需要650 ms,由于實時連續(xù)出圖需要,每路DSP處理時間間隔約1 s,而算法總處理時間約為500 ms,滿足實時處理要求。硬件與Matlab處理的結(jié)果對比,幅度無誤差點數(shù)大于91.5%,相位無誤差點數(shù)大于97.2%,相位偏差均在在0.5°以內(nèi),處理精度較高。驗證了硬件平臺和算法的正確性。
圖8 A路DSP處理的雷達(dá)圖像結(jié)果
圖9 B路DSP處理的雷達(dá)圖像結(jié)果
表2 DSP算法模塊時間消耗情況
文中利用R-D算法的基本思想,結(jié)合線性相位校正、運動補償以及多核DSP的算法特點,優(yōu)化處理流程、多核任務(wù)分配和并行處理效率,在TMS320C6678平臺上實現(xiàn)了高速運動平臺高精度實時成像處理實現(xiàn)了實時成像。而且本文所述系統(tǒng)可以應(yīng)用在制導(dǎo)、救災(zāi)地形勘探、軍事偵察等場景,也可應(yīng)用于干涉合成孔徑雷達(dá)實時處理,具有較高的應(yīng)用前景。