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