韓連龍,陳安軍,劉傳棟
(中電科儀器儀表有限公司,山東青島,266555)
隨著無線電技術(shù)的飛速發(fā)展,特別是軍用領(lǐng)域?qū)o線電技術(shù)依賴程度的與日俱增,復(fù)雜多變的電磁環(huán)境對信號監(jiān)測接收設(shè)備提出了更高的要求。然而近年來,由于新一代雷達(dá)和無線通信系統(tǒng)均采用了短時突發(fā)傳送技術(shù)、擴(kuò)跳頻技術(shù)等復(fù)雜的射頻技術(shù)來改善系統(tǒng)性能,各種瞬態(tài)信號、跳頻信號以及近噪微弱信號等隨之出現(xiàn)。但是傳統(tǒng)的監(jiān)測接收設(shè)備以及常用于信號監(jiān)測的頻譜分析儀均存在著頻譜掃描速度不夠、分辨率低等缺點,執(zhí)行監(jiān)測任務(wù)時,對這些新制式信號的截獲概率非常低,難以滿足監(jiān)測任務(wù)的要求[1][2]。
在傳統(tǒng)的技術(shù)方案中,獲得一定頻率范圍內(nèi)的頻譜有兩種實現(xiàn)方式:一種是掃描調(diào)諧式分析,另外一種是FFT式分析,但這兩種頻譜掃描方式各有自己的局限性;掃描調(diào)諧式分析基于外差式接收原理[4],由混頻得到所要求的頻點信息,并通過更改本振信號來達(dá)到一個頻段的測量,其掃描過程就是不斷改變本振信號,使得本振信號剛好掃過一個頻段以達(dá)到測量目的;在這種技術(shù)方案中,掃速取決于分辨率濾波器的響應(yīng)速度,并且受限于YIG調(diào)諧振蕩器的掃描速度,其掃描速度可由下式估算:掃速≈0.8*RBW(RBW為分辨率帶寬);由該公式可以看出,在RBW比較小的時候,掃描速度會非常慢,當(dāng)分辨率帶寬為2.3kHz,掃描速度只有4.23kHz/s,遠(yuǎn)遠(yuǎn)無法滿足監(jiān)測接收機(jī)快速、高分辨率掃描的要求[5]。FFT式分析儀中,RBW濾波器具有極快的響應(yīng)時間,當(dāng)FFT分析儀在窄帶情況下比掃頻分析式快,而寬帶分析時要保證同樣的分辨率則FFT總計算量耗時相當(dāng)可觀,同時最大分析帶寬還受模數(shù)轉(zhuǎn)換器采樣速度的限制。鑒于此,F(xiàn)FT分析儀通常只應(yīng)用于有限帶寬的頻譜掃描,一般帶寬范圍在幾十兆左右,無法滿足全頻段監(jiān)測的要求。
綜合上述兩種掃描分析方式各自的特點,本方案設(shè)計了一種新型的高速并行掃描處理方式:多DSP并行處理的FFT步進(jìn)掃描方式+多線程通信軟件架構(gòu),以完成監(jiān)測接收機(jī)高分辨率快速掃描設(shè)計。
基于上述論述,本文重點從掃描處理機(jī)制設(shè)計、步進(jìn)與FFT點數(shù)的協(xié)調(diào)設(shè)計、高效率的多線程通信設(shè)計三個方面對本設(shè)計方案進(jìn)行闡述。
本項目設(shè)計的監(jiān)測接收機(jī)的掃描監(jiān)測采用了多DSP并行FFT處理的步進(jìn)掃描方式,在這種掃描方式中,決定掃描速度的因素主要由本振切換時間、數(shù)據(jù)采樣傳輸時間、FFT譜運算處理時間、PCI總線傳輸時間等幾部分構(gòu)成[3]。
本振切換時間指的是步進(jìn)掃描時,從一個調(diào)諧頻點轉(zhuǎn)變?yōu)榱硪粋€調(diào)諧頻點,本振的鎖定時間,這個時間越小,本振跳變的速度越快。但由于YIG器件的磁滯特性,使得本振鎖定及切換無法做的很快,平均一次切換時間約為10ms,在本項目設(shè)計中,采用了一種新的高速捷變本振設(shè)計技術(shù),使得做一次切換的時間在2ms左右,為了采樣的穩(wěn)定可靠,軟件設(shè)計留出了一定的余量,將切換時間定為3ms。
FFT譜運算時間包括:AD數(shù)據(jù)預(yù)取、加窗、FFT變換、線性到對數(shù)譜轉(zhuǎn)化等多個環(huán)節(jié),在設(shè)計之初,為了衡量這個時間,筆者專門針對設(shè)計中一個DSP的整個FFT譜運算處理時間進(jìn)行了測量。具體值如表1所示。
表1 1個DSP的FFT譜運算處理時間
數(shù)據(jù)采樣傳輸時間是AD采樣的時間和AD采樣數(shù)據(jù)傳輸?shù)桨遢d緩存的時間總和,這個時間在AD速率已經(jīng)確定的情況下,由采樣長度決定,與采樣長度成正比。PCI總線傳輸時間是FFT譜運算之后,數(shù)據(jù)結(jié)果傳輸?shù)街鳈C(jī)內(nèi)存的時間。
本振切換與FFT譜運算對寬頻段、快速、高分辨掃描來說是矛盾的兩個地方,掃描同一個頻段,步進(jìn)大的話,耗費在本振切換的時間就短;但是要達(dá)到同樣的分辨率帶寬的話,每次步進(jìn)的FFT點數(shù)就要多,耗費在FFT譜運算上的時間就長。反之,小步進(jìn),F(xiàn)FT譜運算小,但是步進(jìn)次數(shù)多,步進(jìn)耗費時間長。而解決這個問題,單純的從提高硬件的指標(biāo)上解決的話,事倍功半甚至實現(xiàn)不了,必須得結(jié)合軟件的掃描處理機(jī)制上去設(shè)計達(dá)到要求。本設(shè)計中采用了基于軟件協(xié)調(diào)的并行掃描處理機(jī)制來實現(xiàn)寬頻段、快速、高分辨掃描。整個實現(xiàn)原理如圖1所示。
圖1 基于軟件協(xié)調(diào)的并行掃描處理機(jī)制
步進(jìn)掃描時,本振切換與數(shù)據(jù)采樣傳輸是串行的,數(shù)據(jù)采集必須要等到本振穩(wěn)定后取到的數(shù)據(jù)才是有效的,本振的穩(wěn)定時間在軟件協(xié)調(diào)時定為3ms,即軟件驅(qū)動3ms之后才設(shè)置采樣參數(shù)開始采樣。在這段時間內(nèi),采樣需要始終占用接收通路上的各種硬件資源。采樣完成后進(jìn)行FFT譜運算,DSP處理器對當(dāng)前采樣數(shù)據(jù)幀做FFT運算處理時,本振可以步進(jìn)到下一個頻點并啟動ADC開始下一幀數(shù)據(jù)的采樣,F(xiàn)FT運算處理時間只要小于或等于本振切換時間與數(shù)據(jù)采樣傳輸時間的總和,整個的掃描與處理過程就能正常執(zhí)行。但是進(jìn)行快速高分辨率掃描時,同樣的步進(jìn)下FFT點數(shù)就要增多,前期的實驗數(shù)據(jù)可以看出,16384點的FFT運算比較耗時接近9ms,而本振切換加上數(shù)據(jù)采樣的時間也只有不到4ms的時間,1個DSP顯然無法滿足大步進(jìn)高分辨率的要求[9],為解決此問題,本設(shè)計中采用了軟件調(diào)度多DSP并行處理的方式。當(dāng)?shù)谝粋€DSP在進(jìn)行FFT譜運算時,另一個DSP進(jìn)行下一個步進(jìn)的FFT譜運算。通過軟件對這三個DSP進(jìn)行依次循環(huán)調(diào)度,當(dāng)?shù)谝粋€步進(jìn)的FFT譜運算完成時,正好第四個步進(jìn)采樣即將結(jié)束,等第四個步進(jìn)采樣結(jié)束后,既可用DSP1繼續(xù)進(jìn)行第四個步進(jìn)的FFT譜運算,依次往復(fù)完成整個頻段的掃描。PCI傳輸數(shù)據(jù)到主機(jī)內(nèi)存時,依次將DSP1-DSP3這三個處理器的譜運算結(jié)果傳輸。經(jīng)過FFT譜運算的數(shù)據(jù)在PCI總線上通過DMA進(jìn)行傳輸,速度達(dá)到在60MB/s,已經(jīng)完全可以在FFT譜運算處理間隙,將這些數(shù)據(jù)傳送到主機(jī)內(nèi)存中了。
在本設(shè)計中,綜合考慮處理速度、經(jīng)濟(jì)性和可靠性等多方面因素,使用了3個DSP處理器設(shè)計,通過前面的FFT譜運算處理時間可以看出,在每次步進(jìn)時,設(shè)計所能保證的最大FFT點數(shù)是16384點。在相同步進(jìn)的情況下,F(xiàn)FT點數(shù)決定了頻譜分辨率,當(dāng)用戶設(shè)置的頻譜分辨率比較小時,16384點的FFT運算無法滿足用戶的分辨率設(shè)置,這時程序可以通過減小步進(jìn)帶寬,增加步進(jìn)次數(shù)的方式來達(dá)到用戶的對高分辨率的要求;相反的當(dāng)用戶設(shè)置的頻譜分辨率比較大時,F(xiàn)FT點數(shù)小,F(xiàn)FT運算時間會比較小,程序控制采用大步進(jìn),減小步進(jìn)次數(shù),加快掃描速度[10][11]。在軟件設(shè)計時,步進(jìn)大小、FFT點數(shù)等參數(shù),由用戶設(shè)置的頻譜分辨率大小來耦合產(chǎn)生。程序中設(shè)置了一個步進(jìn)掃描結(jié)構(gòu)體,該結(jié)構(gòu)體定義了譜線間隔,步進(jìn)帶寬和FFT點數(shù)的關(guān)系。本設(shè)計中的步進(jìn)掃描參數(shù)定義如下:
參數(shù)中為了處理的方便,并沒有直接定義頻譜分辨率這一項,但是譜線間隔與分辨率帶寬是一一對應(yīng)的,分辨率帶寬=譜線間隔*窗因子。窗因子根據(jù)FFT運算加的窗不同而不同,本設(shè)計中有三種窗函數(shù)類型:漢寧窗、高斯窗、平頂窗,這三種窗對應(yīng)的窗因子分別是:1.4592(漢寧)、2.5216(高斯)、3.776(平頂)。
在掃描之前,程序先根據(jù)用戶設(shè)計的分辨率帶寬在這個結(jié)構(gòu)體中進(jìn)行查找。找到最接近用戶設(shè)置的譜線間隔,用這個譜線間隔計算出的分辨率帶寬作為用戶設(shè)置分辨率帶寬的儀器自適應(yīng)值。同時掃描步進(jìn)、FFT點數(shù)等也按照該項的設(shè)置進(jìn)行硬件的驅(qū)動,完成整個掃描。以指標(biāo)要求4GHz/s@RBW(漢寧窗)=2.3kHz為例:分辨率帶寬為2.3kHz,進(jìn)行分辨率帶寬自適應(yīng)查找。找到m_StepBWStepData[8]的設(shè)置,m_Step-BWStepData[8]的譜線間隔為1525.87890625,對應(yīng)分辨率帶寬為:1525.87890625*1.4592=2.23kHz。此時步進(jìn)帶寬為20M,完成4G的掃描需要200次步進(jìn),每次步進(jìn)的時間在本設(shè)計中的軟件控制方法下是<4ms的,200次步進(jìn)時間在800ms左右,小于1s的指標(biāo)要求。
由于本監(jiān)測接收機(jī)系統(tǒng)軟件要實現(xiàn)的功能復(fù)雜,各功能模塊需要大量的CPU運算,又依賴于高流量I/O,還有復(fù)雜的人機(jī)交互,如果處理不當(dāng),將嚴(yán)重影響掃描速度[8]。
一些功能可能需要多個線程精密協(xié)作完成,亦可能某個特定急迫功能需要搶在已安排的功能前執(zhí)行,因此多線程間的通信是設(shè)計的一大重點,同時也是保證工業(yè)設(shè)計中的高可靠性與快速響應(yīng)的技術(shù)手段。
本監(jiān)測接收機(jī)設(shè)計擬采用基于Windows多線程通信技術(shù)的軟件設(shè)計架構(gòu),共創(chuàng)建了如下線程:用戶界面線程(主線程)、內(nèi)部控制線程、數(shù)據(jù)處理線程、程控管理線程等,某些功能可能需要上述多個線程之間的精密協(xié)作才能完成,為了實現(xiàn)程序高效率的運行,本節(jié)從線程通信的優(yōu)先級分配入手,進(jìn)行多線程通信設(shè)計[12]。
本監(jiān)測接收機(jī)軟件采用如下5級優(yōu)先級通信方式,具體通信優(yōu)先級的使用規(guī)則設(shè)計見下表2。
表2 監(jiān)測接收機(jī)線程的通信優(yōu)先級
其技術(shù)實現(xiàn)的流程圖如下圖2所示。
圖2 線程通信優(yōu)先級分配流程圖
與傳統(tǒng)系統(tǒng)平臺提供的線程的異步和同步兩種工作方式相比,本方案設(shè)計的多線程的通信規(guī)則不僅增強(qiáng)了系統(tǒng)通信的靈活性,且能夠大大提高CPU的使用效率,進(jìn)而在一定程度上提高監(jiān)測接收機(jī)的掃描速度。
根據(jù)企標(biāo)的檢測標(biāo)準(zhǔn),對本設(shè)計從工程的角度進(jìn)行了掃描速度的測試。測試方法:信號源1頻率2GHz,功率10dBm;信號源2頻率3GHz,功率0dBm。利用檢波器對75MHz中頻信號檢波,示波器測量檢波器輸出[13][14]。在不同的分辨率帶寬下得到的測試結(jié)果見下表3所示。
表3 測試結(jié)果
通過上述的實驗可以看出,采用本方案設(shè)計的監(jiān)測接收機(jī)在RBW(分辨率帶寬)為2.3kHz時,掃描速度達(dá)到了4.13 GHz/s,略高于美國安捷倫公司的“黑鳥”(E3238S信號監(jiān)測設(shè)備)在該RBW下的4GHz/s的掃描速度,完全達(dá)到了設(shè)計要求。
本文針對監(jiān)測接收機(jī)高分辨率快速掃描的需求,設(shè)計了一種基于軟件控制多DSP并行處理的FFT步進(jìn)掃描方案,并將其成功應(yīng)用在某國產(chǎn)監(jiān)測接收機(jī)產(chǎn)品上,并取得了良好的效果。實驗證明,該設(shè)計方法可以在高分辨率的條件下極大提高監(jiān)測接收機(jī)設(shè)備的掃描速度,進(jìn)而提高監(jiān)測接收機(jī)對一些新制式信號的截獲概率。從本論文的快速掃描設(shè)計中,可以看出掃速的提高還是有一定的空間的。本振切換的時間,在步進(jìn)不同時,實際上是有差異的。而在本論文中的軟件控制中,使用了固定的3ms等待時間,后續(xù)可以根據(jù)步進(jìn)的不同,改變此等待時間提高掃描的速度。同時DSP中FFT算法的優(yōu)化,降低FFT譜運算時間,也可以提高掃描速度。