摘要:本文針對目前雷達信號處理的應用需求,結合雷達系統的硬件結構和運算處理特點,提出了一種基于FPGA和多核DSP的信號處理架構。該架構采用FPGA作為高速數據緩沖器,同時以多核DSP為核心組成信號處理系統,并利用FPGA的內部結構設計了信號處理系統的底層拓撲結構。實驗結果表明,基于此架構設計的信號處理系統可以滿足雷達系統對實時性和精度要求,同時可為后續更多算法和更復雜算法的實現提供硬件平臺支撐。同時,該架構也可應用于其他高速數據傳輸、大容量數據存儲等場合,具有重要的工程實踐價值。
關鍵詞:FPGA;多核DSP;雷達信號處理;架構
隨著數字技術的發展,FPGA和DSP相結合的處理架構以其靈活性、高速率、大容量等優點被廣泛應用于雷達信號處理系統中。FPGA以其可編程和可重配置等優點,成為數字信號處理系統中的理想器件。在實際應用中,FPGA對數據傳輸速率要求較高,無法滿足高速實時處理需求。多核DSP具備多核并行運算能力,可以滿足實時信號處理需求。因此,將多核DSP和FPGA相結合的處理架構應用于雷達信號處理系統中,不僅能充分發揮二者的優勢,更能利用FPGA高速數據傳輸和大容量數據存儲的特點滿足系統對實時性和精度的要求。
一、算法分析及硬件平臺選擇
(一)算法分析
地面雷達信號處理算法一般包含:數字下變頻、數字波束形成、脈沖壓縮、動目標檢測、恒虛警檢測、點跡凝聚、方位俯仰測角、目標上報等環節。其中數字下變頻環節可采用多級流水線來實現,在接收通道和發射通道采用不同的FIFO,在每個FIFO上實現脈沖壓縮、恒虛警檢測、動目標檢測、目標上報等處理;脈沖壓縮的過程可以分為三個階段,首先是對原始數據進行離散傅里葉變換,將原始數據分解成若干個頻率的離散數字序列,其次對這些離散數字序列進行快速傅里葉變換,得到一個頻域-時間圖,最后對頻域-時間圖進行FFT運算;恒虛警檢測可以采用卡爾曼濾波的方法,該方法的基本思想是通過測量目標與噪聲的相對運動來估計目標的速度和加速度,從而判斷目標是否存在;目標上報環節則可以采用SINR法來實現。
(二)硬件平臺選擇
為了滿足實時處理的要求,需要一種高可靠性的DSP芯片,考慮到FPGA具有很強的可編程性,因此采用FPGA作為雷達信號處理系統的核心處理器。
FPGA具有豐富的內部資源,其邏輯控制能力強、開發周期短,能實現復雜的邏輯控制功能。目前,FPGA廣泛應用于信號處理領域,如信號采集、濾波、數據存儲、數據處理、圖像顯示等。但是在實際應用中,信號處理的實時性和可靠性要求更高,因此本文選擇了Xilinx公司生產的XC3S400作為FPGA芯片,并對其進行了適當的擴展和優化。XC3S400是Xilinx公司推出的一款高性能FPGA,采用SOPC技術實現了片上系統(System on Chip,SOC),它是一種利用軟件定義的方式在片上提供靈活、可重構的應用軟件的芯片,也是一種采用SOPC技術實現的具有高度可定制性的芯片。與傳統FPGA相比,XC3S400具有以下優勢:1.具有更高的性能:使用SOPC技術可以使FPGA中各種模塊的性能達到最優。2.可實現快速原型開發:Xilinx公司提供了一系列快速原型開發工具,支持各種類型的應用程序開發。3.減少開發時間:使用SOPC技術可以實現FPGA中各個模塊間的互聯,提高設計速度。
二、硬件底層拓撲結構
(一)數據傳輸劃分
1.主從模式
DSP與FPGA之間的通信有兩種模式,一種是串行傳輸,是一種數據一位接一位地順序傳送的方式。在DSP與FPGA的通信中,串行傳輸通常涉及將數據位按照特定的時序和格式,通過單一的通信通道進行傳輸;另一種是并行傳輸,是一種多位數據同時通過多個并行的通信通道進行傳送的方式。在DSP與FPGA的通信中,并行傳輸允許數據在多個數據線上同時傳輸,從而顯著提高數據傳輸的速率。FPGA內部有3個核的DSP,如果需要向FPGA中的特定核傳輸數據,就必須同時將該核的數據發送到多個從機。由于FPGA中所有核的數據都是由一根總線串行傳輸到FPGA內部,在數據量較大時,可以考慮并行傳輸模式。考慮到并行傳輸模式在實際應用中可能存在的問題,如多核同時向A核發送數據導致A核資源緊張等,可以采用主從模式。
主從模式下,從機的數據接收采用并行傳輸模式,從機之間通過總線連接,主從機之間可以雙向通信。由于FPGA中所有核的數據都是由一根總線串行傳輸到FPGA內部,因此在主從機之間可以實現雙向通信。
這里假設DSP的所有核都是并行處理的,若一個核向FPGA發送數據,那么其內部的所有核都會向該核發送數據。為了提高效率,在多核DSP內部可以采用“雙緩沖”方式,即每個核都有兩根數據總線,通過這兩根總線實現從機和從機之間的雙向通信。例如某款DSP具有4個核,每個核用兩根總線進行傳輸,則這4個核在使用時可以將數據分為4個通道進行傳輸。
2.數據流模式
在數據傳輸過程中,需要保證每個運算板DSP間的數據傳輸和各個運算板DSP內核間的數據傳輸是同步的。這意味著每個運算板DSP完成數據處理后,需要將結果數據返回到主機進行下一輪處理。通常情況下,整個運算過程需要的數據量較大,同時運算板DSP之間的數據傳輸量也相當可觀。因此,為了保證運算板DSP內核間的同步,可以采用多核并行模式進行數據傳輸。在多核并行模式下,各個運算板DSP內核間的數據傳輸可以采用流水(Flow)方式進行,具體操作如下:(1)各運算板DSP內核通過訪問各自的內存空間來讀取數據。(2)當數據讀入內存后,各個運算板DSP內核會根據自身的優先級和處理任務選擇訪問各自的內存空間。(3)當數據處理完成后,每個DSP內核在完成其分配的數據處理任務后,會對其在內部存儲器(如RAM或寄存器)中處理完成的數據進行整理。為了確保數據的完整性和準確性,DSP內核會對整理后的數據進行校驗。這可能包括比較校驗和、使用CRC(循環冗余校驗)或其他數據完整性檢查方法。校驗通過后,DSP內核會釋放之前用于存儲和處理這些數據的內存空間,以便為下一輪數據處理任務做準備。(4)當數據處理完成后,DSP內核將處理完成并經過校驗的數據打包成特定的格式,以便主機能夠識別和解析。通過預定的通信接口(如PCI-Express、串行通信接口等),DSP內核將打包好的數據發送到主機。在傳輸過程中,可能會使用數據壓縮、加密等技術以提高傳輸效率或安全性。主機接收到來自DSP內核的數據后,會進行接收確認和數據的完整性驗證。如果數據驗證失敗,主機可能會要求DSP內核重新發送數據或采取其他補救措施。一旦數據驗證通過,主機將根據需要對這些數據進行進一步的處理(如數據分析、可視化等),并將處理結果存儲在適當的存儲介質中(如硬盤、數據庫等)。(5)如果某個運算板DSP內核未完成處理任務,它將等待其他運算板DSP完成相應的任務后再返回。(6)各個運算板DSP內核返回各自的內存空間后,將根據數據量的大小將結果數據返回到主機進行下一輪處理。
(二)乒乓流水傳輸
對于一個系統而言,由于輸入、輸出以及數據量都非常大,因此采用多核并行的數據傳輸模式不太合適。因為這樣不僅會加大通信延遲,還會大大降低通信效率。為了提高處理效率,可以將數據量較小且傳輸速度較快的數據進行并行處理,再通過乒乓方式將這些數據從一個運算板DSP內核傳輸到另外一個運算板DSP內核,最后通過它們之間的并行處理方式,完成整個數據傳輸。對于需要傳輸的數據,可以先將其輸入到一個運算板DSP內核中,然后再從該內核中讀取數據進行處理,這樣可以避免每個運算板DSP內核保存其處理結果。同時,對于一個運算板DSP而言,在不同的時期,其所處的優先級也是不同的。因此,當有數據需要進行處理時,可以從運算板DSP內核中讀取這些數據,并將其輸入到FPGA內部的一個大容量RAM中進行處理。具體地,在采用乒乓方式進行數據傳輸時,首先將一個數據從A運算板DSP內核中讀入到RAM中,然后將其寫入存儲空間。接著,將另外一個數據從B運算板DSP內核中讀取出來,并從RAM中讀取該數據后寫入到存儲空間。最后,根據A、B運算板DSP內核的處理結果進行相應的處理工作,并將處理后的數據存儲到RAM中。
(三)運算板DSP內核間通信與同步
在多核DSP系統中,各處理器之間的通信與同步至關重要,這是確保多核DSP系統在不干擾其他處理器的情況下高效完成工作的基礎。為了提高運算板DSP內核間的通信效率,可以采用一種基于位寬優先級的通信方法,即根據該算法中每一位的寬度來決定其在內存中所對應的位寬,然后在各運算板DSP內核中合理分配位寬,并在相應位置進行數據傳輸。相較于其他方法,這種通信方法具有以下優點:1.該方法不會產生數據競爭;2.避免了數據競爭問題;3.可以根據需求靈活選擇數據傳輸模式;4.可以充分利用硬件資源;5.占用系統資源較少。
在數據傳輸過程中,如果某個運算板DSP內核發生了超時,可以通過中斷的方式將數據發送給其他的運算板DSP內核,以此來達到中斷數據傳輸的目的。對于多核DSP系統來說,為了提高處理效率,需要對各個運算板DSP內核進行核間同步,以實現各個處理器之間的數據共享。通常情況下,可以通過兩種方式實現運算板DSP內核間的同步:1.通過系統時鐘實現多核DSP間的同步;2.通過系統復位實現多核DSP間的同步。本文采用的是第一種方式,即通過系統時鐘實現各個運算板DSP內核間的同步。在多核DSP系統中,系統時鐘頻率是由多個DSP共同決定的,因此它與各個DSP的性能是密切相關的。對于不同的任務來說,系統時鐘頻率是不同的。對于雷達信號處理來說,系統時鐘頻率應該在100MHz以上。
三、DSP的存儲空間和傳輸時間計算時間分析
(一)DSP的存儲空間分析
對于單核DSP而言,由于每個核的存儲器空間有限,當所有核都要執行相同的運算時,必然導致處理器速度降低,甚至不能完成運算。因此需要根據各核所執行的運算來分配存儲器空間。對于DSP而言,不同核之間計算是相互獨立的,因此可以對數據進行區分管理。對于單核DSP而言,如果要保證每個核都有足夠的存儲空間用于并行運算,那么在同一個時鐘周期內需要保證每個核有足夠的存儲器空間用于并行運算。當計算完成后,再將結果從內存中讀取出來。對于多核DSP而言,每個核都有獨立的存儲空間用于并行運算,同時不同核間可以共享存儲器。如果需要從存儲器中讀取數據,可以使用DMA方式。對于共享存儲器的兩個核之間,在同一個時鐘周期內只需要執行一次數據交換。
當使用DMA方式時,如果DMA通道發生故障,將會觸發中斷。由于中斷后的結果在當前核上無法繼續執行,為了保證程序不中斷,可以將中斷線設置在其他核上,使之處于等待狀態。此外,當使用DMA方式時,DMA通道的數據在各核上是不能被讀取的。如果某一核發生故障,那么其他核上的數據就會被刪除。為了在多核系統中保證數據不被刪除,可以將數據放在一個存儲器中,例如將數據放在共享存儲器中,以便當其中一核發生故障時可以進行替換。
(二)傳輸時間分析
因為數據量大,所以在傳輸過程中數據的處理速度會變慢,同時也會產生大量的數據拷貝和文件拷貝,導致傳輸時間過長。傳輸時間主要取決于兩個因素:一是數據量的大小,二是數據的傳輸速率。對于兩個核(1核和2核)之間的通信而言,共享內存越大,數據的傳輸速度就越快。但是在兩個核之間進行數據傳輸時,要進行互斥操作才能實現互斥傳輸,四個核之間進行互斥傳輸的時間約為50ms。如果進行兩個核之間的互斥傳輸,數據的傳輸時間約為1ms。對于多核之間的互斥傳輸,一個核先對另一個核進行操作,然后再對另一個核進行操作。通過軟件編程,可以在DSP中設置一個核為主核,另一個核為從核,這樣一個核完成對另一個核的操作后,再由另外一個核來對其進行操作。通過這種方式,可以實現在兩個線程中對相同的數據進行不同的操作,從而實現多線程并行處理。
(三)計算時間分析
由于DSP是一種通用的嵌入式處理器,具有高速DSP硬件和豐富的軟件資源,因此可在FPGA上快速實現信號處理算法,從而將時間花費在多核之間的交互上。下面是兩個不同DSP之間的交互時間比較:對于單核DSP,當處理器處于工作模式時,每個時鐘周期內需要對數據進行一次操作;而當處理器處于睡眠模式時,只需要對數據進行一次操作。對于多核DSP,每個時鐘周期內需要對數據進行兩次操作。由于使用了互斥方式進行數據傳輸,因此可以看到,在1個時鐘周期內可以完成對數據的一次操作,而當處理器處于睡眠模式時,需要完成兩次操作。從上述分析中可以看出,在多核DSP中進行信號處理時,最快的方法是對數據進行兩次操作,最慢的方法是只對數據進行一次操作。這說明,在使用多核DSP進行信號處理時,最重要的是保證數據傳輸過程中數據沒有被丟失,一旦出現數據丟失,整個信號處理過程就會因此中斷而無法繼續進行。
四、結束語
總而言之,將FPGA和DSP相結合的信號處理架構應用于雷達信號處理系統中,不僅可以充分發揮FPGA的靈活性和可重配置特點,還可以利用DSP的高速率、大容量數據存儲特點來滿足系統對實時性和精度的要求。實驗結果表明,該架構設計的信號處理系統可以很好地完成雷達回波信號的處理,達到了設計要求。在今后的研究中,可以進一步探索將該架構應用于其他高速數據傳輸、大容量數據存儲等場合,以充分發揮二者優勢。本文介紹的架構和設計方法同樣具有重要的工程實踐價值,可以廣泛應用于其他相關領域。
作者單位:董卓 中國船舶集團有限公司第七二三研究所
參考文獻
[1]唐宇.一種并行信號多核DSP的塊數據處理和傳輸方法[J].單片機與嵌入式系統應用,2023,23(06):17-19.
[2]秦令令,陸滿君,陳濤,張文旭.基于多核DSP的雷達信號分選設計與實現[J].制導與引信,2020,41(04):1-6+16.
[3]朱玉軍,鄒紹濤,張紹華,唐亞川.多核DSP通用信號處理模塊設計[J].數字通信世界,2018,(04):128+167.
[4]張培鐘,繆晨,趙陽瑩,何仲陽,吳文.雷達信號處理中大數據量FFT的實現[J].微波學報,2017,33(S1):342-345.
[5]王鵬飛,樊勇,經富貴.基于多核6678的雷達成像信號處理機設計[J].兵器裝備工程學報,2017,38(05):151-154.
董卓(1993.03-),男,漢族,吉林梅河口,碩士研究生,工程師,研究方向:雷達總體設計。