王成峰,王 鑫,邵志飛,魯冬亮
(93305 部隊(duì),沈陽(yáng) 110031)
雷達(dá)的縮寫Radar,來(lái)源于“Radio Detection and Ranging”,使用電掃描的相控陣?yán)走_(dá)可以使用相位來(lái)控制雷達(dá)波束的方向,主要用于確定目標(biāo)的性質(zhì),測(cè)量目標(biāo)的位置和運(yùn)動(dòng)參數(shù),搜索目標(biāo)。 由許多小天線單元組成的陣列是相控陣?yán)走_(dá)天線,改變每個(gè)單元的相位可以產(chǎn)生不同的波束方向,每個(gè)單元有一個(gè)可控移相器。 一般來(lái)說(shuō),有源和無(wú)源兩種為相控陣?yán)走_(dá),在無(wú)源相控陣?yán)走_(dá)中,發(fā)射器和接收器是共享的,數(shù)量有限。
Xilinx 的ISE 是本主題的FPGA 開(kāi)發(fā)軟件,主要包括以下幾個(gè)FPGA 開(kāi)發(fā)過(guò)程步驟[1],第一步是設(shè)計(jì)輸入和準(zhǔn)備。 第二步是設(shè)計(jì)環(huán)節(jié),包括設(shè)計(jì)處理、功能仿真和時(shí)序仿真。 第三步是器件編程和測(cè)試具體流程如圖1 所示。 展示方案通常采用自頂向下的方式搭建系統(tǒng)框架,選擇需要的設(shè)備,設(shè)計(jì)輸入包括波形輸入、原理圖輸入和硬件描述語(yǔ)言輸入。 設(shè)計(jì)人員在輸入原理圖方面具有廣泛的電路知識(shí),并且能夠從系統(tǒng)的元件庫(kù)中調(diào)用元件來(lái)繪制原理圖。 但是,需要重新輸入原理圖,因?yàn)镻LD 器件不同。 波形輸入方法通常包括功能測(cè)試向量和輸入模擬,使用文本硬件描述語(yǔ)言編寫代碼,編程語(yǔ)言與過(guò)程無(wú)關(guān),比較常用的是Verilog HDL和VHDL,易于轉(zhuǎn)換,效率高,且具有強(qiáng)大的邏輯描述和模擬功能。 在本課題使用Verilog HDL 輸入,在編譯之前功能仿真是驗(yàn)證設(shè)計(jì)的邏輯功能,適用于無(wú)延遲的特征檢測(cè)。
圖1 FPGA 開(kāi)發(fā)流程結(jié)構(gòu)
利用和差三通道波束回波數(shù)據(jù)的DBF 處理器輸出,對(duì)信號(hào)處理器目標(biāo)進(jìn)行檢測(cè),并對(duì)不同的信號(hào)模式進(jìn)行信號(hào)處理[2]。 通過(guò)高速 SRIO 將處理后的數(shù)據(jù)FPGA 發(fā)送給DSP,將處理結(jié)果發(fā)送給主控模塊。 調(diào)整相應(yīng)接收機(jī)的速度跟蹤環(huán)的接收門閘脈沖、本振頻率、發(fā)射頻率等,將相應(yīng)的控制信息反饋給接收機(jī)。 在FPGA 上實(shí)現(xiàn)本研究的一部分,通過(guò)3 個(gè)MGT 通道(Tile1,TileO,Tile2)DBF 處理器將回波數(shù)據(jù)發(fā)送給信號(hào)處理器,通過(guò)高電平處理后的數(shù)據(jù)發(fā)送給DSP -speed SRIO 進(jìn)行處理,選擇相應(yīng)的處理模塊進(jìn)行處理,由其判斷回波信號(hào)數(shù)據(jù)的類型。 通過(guò)MGT 模塊接口DBF 處理器向信號(hào)處理器發(fā)送回波信號(hào)數(shù)據(jù),傳輸協(xié)議使用32 位數(shù)據(jù)幀。 幀結(jié)構(gòu)包含數(shù)據(jù)、幀頭和檢查,防止數(shù)據(jù)傳輸錯(cuò)誤,保證數(shù)據(jù)傳輸可靠,幀頭采用幀類型顯示、同步信息等校驗(yàn)。
FPGA 在HPRF-PD 模式下,主要實(shí)現(xiàn)窄帶和波束回波信號(hào)FFT 處理、寬帶和波束回波信號(hào)匹配濾波等相關(guān)部分[3]。
1.3.1 用于HPRF-PD 寬帶和光束信號(hào)匹配濾波的FPGA 設(shè)計(jì)
寬帶和波束信號(hào)的匹配濾波主要用于實(shí)現(xiàn)FPGA,在距離搜索通道中,32 位浮點(diǎn)數(shù)在匹配濾波的結(jié)果轉(zhuǎn)換,然后發(fā)送給DSP 進(jìn)行處理。 按時(shí)間相反順序排列的輸入信號(hào)可以表示為匹配濾波器,幅度在短時(shí)間內(nèi)變化不大,由于HPRF-PD 信號(hào)的脈寬很短,設(shè)計(jì)時(shí)可以簡(jiǎn)化匹配濾波器的系數(shù),均視為單元1。 數(shù)據(jù)模塊、時(shí)鐘模塊和匹配濾波器模塊等在程序中均有包含,可以看出,300 MHz 為程序的主處理時(shí)鐘,通過(guò)硬件板上200 MHz 晶振的Clocking Wizard IP 核差分輸入產(chǎn)生,同時(shí)輸出復(fù)位信號(hào)。 從解幀模塊接收到的波束回波信號(hào)和HPRF-PD 寬帶是數(shù)據(jù)模塊中的數(shù)據(jù),匹配濾波器系數(shù)和信號(hào)數(shù)據(jù)的時(shí)域卷積是匹配濾波,即相乘、移位、累加的過(guò)程,如式1 所示。
該設(shè)計(jì)中1 為所有匹配濾波器系數(shù),避免數(shù)據(jù)與濾波器系數(shù)相乘。 回波數(shù)據(jù)的I,Q 通道在實(shí)現(xiàn)過(guò)程中,采用RAM 存儲(chǔ)器、減法器和累加器的組合設(shè)計(jì)。如果輸入數(shù)據(jù)的個(gè)數(shù)不大于濾波器系數(shù)的個(gè)數(shù),將每次累加的結(jié)果存儲(chǔ)在內(nèi)存中,通過(guò)累加器對(duì)輸入信號(hào)數(shù)據(jù)進(jìn)行累加,以方便后續(xù)的減法運(yùn)算。 同時(shí),0 為減法器的負(fù)端置,累加器的輸出結(jié)果接到減法器的負(fù)端。如果輸入數(shù)據(jù)的數(shù)量開(kāi)始超過(guò)過(guò)濾器的長(zhǎng)度,必須減去最初輸入的舊數(shù)據(jù),每次添加新的輸入數(shù)據(jù)。 RAM的輸出端from ram 按順序讀取第一個(gè)存儲(chǔ)的數(shù)據(jù),匹配濾波處理的結(jié)果是減法器減法的輸出,通過(guò)調(diào)用FPGA 的IP 核來(lái)實(shí)現(xiàn)程序中的減法器、累加器和RAM存儲(chǔ)器。
1.3.2 HPRF-PD 寬帶和波束信號(hào)的距離跟蹤的FPGA 設(shè)計(jì)
在FPGA 上實(shí)現(xiàn)的HPRF-PD 模式距離跟蹤通道,主要包括速度門窄帶濾波以及前門和后門門控,FPGA編程框架主要包括CIC 濾波器提取、門控和多普勒校正以及兩個(gè)一級(jí)半帶濾波器濾波[4]。 HPRF-PD 寬帶和波束信號(hào)的距離跟蹤的FPGA 設(shè)計(jì)如圖2 所示,該設(shè)計(jì)需要對(duì)40 MHz 為采樣率、30 MHz 為帶寬的寬帶信號(hào)進(jìn)行數(shù)字濾波和抽取,最終獲取窄帶數(shù)據(jù)。 I/Q 是通道窄帶濾波器組必須滿足的頻率響應(yīng)特性。 在本研究中,總抽取率為Dc=1 600,因?yàn)镮 和Q 窄帶濾波器輸出的基帶回波數(shù)據(jù)f=40 MHz 和數(shù)據(jù)速率fouf=25 kHz。設(shè)計(jì)CIC 濾波器時(shí),歸一化旁瓣電平優(yōu)于-60 dB,提取后混入有效帶寬±8 kHz 的帶外抑制優(yōu)于-100 dB,需要確保有效帶寬是好的。 寬±8 kHz 內(nèi)的通帶抖動(dòng)優(yōu)于1 dB,5 級(jí)級(jí)聯(lián)CIC 濾波器可以滿足設(shè)計(jì)需求,由上可知,首先生成一個(gè)長(zhǎng)度為400 的序列,抽取因子選擇為D1=400,1 個(gè)序列的5 級(jí)卷積就是5 級(jí)CIC 濾波器的脈沖響應(yīng),1 級(jí)CIC 濾波器的脈沖響應(yīng),首先將多普勒f(shuō)和包含該信息的寬帶回波信號(hào)數(shù)據(jù)乘以多普勒補(bǔ)償因子,然后將補(bǔ)償后的數(shù)據(jù)送到CIC 抽取濾波器。 調(diào)用FPGA 的CIC 編譯器IP 核完成CIC 過(guò)濾和抽取。 400為抽取率設(shè)置,5 為級(jí)聯(lián)數(shù)設(shè)置,梳狀濾波器延遲因子設(shè)置為1。
圖2 HPRF-PD 寬帶和波束信號(hào)的距離跟蹤的FPGA 設(shè)計(jì)結(jié)構(gòu)
波束通道脈沖壓縮模塊在乒乓結(jié)構(gòu)的內(nèi)存中接收到的波束回波信號(hào)數(shù)據(jù)存儲(chǔ),利用FIR 濾波器完成脈沖壓縮過(guò)程并將結(jié)果發(fā)送給MTD 模塊[5]。 在乒乓RAM 內(nèi)存中為防止數(shù)據(jù)丟失,接收到I 和O 數(shù)據(jù)存儲(chǔ)。通過(guò)輸入數(shù)據(jù)選擇單元和RAM B,輸入數(shù)據(jù)的同時(shí)分配給RAM A,在第一個(gè)數(shù)據(jù)緩存周期中,在RAM A 中輸入數(shù)據(jù)存儲(chǔ)。 在第二個(gè)數(shù)據(jù)緩存周期中,在RAM B中輸入數(shù)據(jù)存儲(chǔ),同時(shí)由輸入數(shù)據(jù)選擇單元切換RAM A 中存儲(chǔ)的數(shù)據(jù),送到后續(xù)處理模塊進(jìn)行處理。 在第三個(gè)緩沖周期,將輸入數(shù)據(jù)放入RAM A,再次切換輸入數(shù)據(jù)選擇單元,同時(shí)切換輸出數(shù)據(jù)選擇單元,讀取RAM B 中存儲(chǔ)的數(shù)據(jù),這個(gè)循環(huán)確保輸入和輸出數(shù)據(jù)是連續(xù)的。 如果使用乒乓操作從一個(gè)RAM 中讀取數(shù)據(jù),可以將數(shù)據(jù)存儲(chǔ)在另一個(gè)RAM 中。 特別適合流水線處理,因?yàn)檩斎牒洼敵鰯?shù)據(jù)流在模塊的兩端都是不間斷的。 在FPGA 處理中,將數(shù)據(jù)輸入RAM 時(shí),需要產(chǎn)生一個(gè)與數(shù)據(jù)一一對(duì)應(yīng)的地址總線信號(hào)。 FPGA 讀/寫控制模塊需要RAM A 和RAM B 的讀寫控制,以及輸入信號(hào)線、兩組地址線、輸出數(shù)據(jù)總線,分別進(jìn)行操作。乒乓RAM 的輸入部分包含復(fù)位信號(hào)rst、輸入數(shù)據(jù)din、時(shí)鐘信號(hào)clk,需要一個(gè)信號(hào)來(lái)控制RAM B 和AMA 之間的切換,控制部分主要是兩個(gè)RAM 的讀寫切換信號(hào),控制兩個(gè)RAM 的寫入和讀取使能。 根據(jù)1 位控制信號(hào)的高低,與地址信號(hào)類似,兩個(gè)RAM 的doutl,輸出部分主要是輸出dout0,1 取2 后的輸出dout。 0 為用于切換RAM 的控制信號(hào)設(shè)置時(shí),在RAM0 中輸入數(shù)據(jù)存儲(chǔ),并輸出存儲(chǔ)在RAM1 中的數(shù)據(jù)。 如果為1,則輸入數(shù)據(jù)存儲(chǔ)在RAM1 中,RAM0 中的數(shù)據(jù)為:輸出。 每次數(shù)據(jù)存儲(chǔ)完成時(shí),該控制信號(hào)加1。
在HPRF-PD 模式距離搜索信道中,匹配濾波的結(jié)果是寬帶噪聲和信號(hào)的加入,虛部代表紅線,實(shí)部代表藍(lán)線[6]。 通過(guò)調(diào)試接口導(dǎo)出FPGA 處理的數(shù)據(jù),將其另存為*. txt 文件。 使用MATLAB 對(duì)數(shù)據(jù)進(jìn)行分析,并與MATLAB 中實(shí)現(xiàn)的匹配濾波的結(jié)果進(jìn)行比較。 可以看到,FPGA 處理和MATLAB 處理得到的結(jié)果是一致的,在橫軸為21 時(shí)得到最大值。 CPI1 和CPI2 在HPRF-PD 模式速度搜索通道中,具有相同的脈沖重復(fù)周期,而CPI3 和CPI4 具有相同的脈沖重復(fù)周期。 經(jīng)FFT 處理后,數(shù)據(jù)傳送到 DSP 進(jìn)行進(jìn)一步處理。
在SRIO 程序中,表示FPGA 與DSP 的連接已經(jīng)成功建立為將FPGA 端的Port_initialized 顯示信號(hào)設(shè)置。此時(shí),FPGA 作為從設(shè)備,發(fā)出DSP 請(qǐng)求。 一旦建立連接,FPGA 存儲(chǔ)空間就會(huì)對(duì)DSP 完全開(kāi)放。 DSP 可以通過(guò)啟動(dòng)NWRITE 指令向FPGA 存儲(chǔ)空間寫入數(shù)據(jù)。以編程方式將RAM 寫入起始地址設(shè)置為0x00120000。而從寫入的數(shù)據(jù)0x12345678,每次加1。 同樣,DSP 可以使用 NREAD 命令讀取FPGA 的RAM(地址設(shè)置為0x00560000)。 可以根據(jù)需要設(shè)置讀寫地址,可以設(shè)置多個(gè)RAM 進(jìn)行讀寫。 地址線的高位用于選通需要操作的RAM,地址線的低位用于讀寫特定的RAM。 在調(diào)試程序時(shí),可以看到FPGA 接收端數(shù)據(jù)和DSP 發(fā)送的數(shù) 據(jù) 每 32 位(4 字 節(jié)) 進(jìn) 行 一 次 反 轉(zhuǎn)。 比 如0x1234567812345679 變成0x7856341279563412,接收到的數(shù)據(jù)需要轉(zhuǎn)置。 硬件開(kāi)啟并下載程序時(shí),FPGA 端的端口初始化信號(hào)和鏈路初始化信號(hào)可以正常上拉,DSP 也檢測(cè)到端口0 上的FPGA。