呂天志,彭華仁,王鋒
(中電科思儀科技股份有限公司,山東青島,266555)
在無線電監(jiān)測中,頻率掃描是按指定頻率表進行信號的掃描監(jiān)測和射頻參數(shù)測量,掃描過程如圖1 所示。頻率表可任意定義每個掃描頻道的頻率、帶寬、測量時間、衰減器狀態(tài)等參數(shù),并檢查每個頻道是否存在信號。如果檢測到信號超過預定義的電平門限,接收機將在對應的頻率處駐留一段預設的時間,從而允許進行信號的解調(diào)和處理,解調(diào)信號可以通過揚聲器或耳機進行監(jiān)聽。如果沒有檢測出信號,則立即切換到下一個頻率點。在進行信道占用度測量時,需要在盡可能短時間內(nèi)測量盡可能多的頻道,以提高信道占用度測量的準確度。同時,監(jiān)測接收機的掃描速度越快,捕捉到短時、突發(fā)信號的概率也就越大。
圖1 監(jiān)測接收機頻率掃描示意圖
監(jiān)測接收機中基于CPU 控制的頻率掃描處理框圖如圖2 所示,主要由CPU、變頻接收模塊、中頻采集模塊及FPGA 信號處理模塊構(gòu)成。其中,CPU 完成人機交互、硬件控制、數(shù)據(jù)運算等功能,變頻接收模塊完成無線電信號的變頻、濾波等,將輸入信號變頻為頻率較低的中頻信號,中頻采集模塊完成中頻信號的模數(shù)轉(zhuǎn)換,F(xiàn)PGA 完成數(shù)字信號的抽取濾波、FFT 等運算處理。頻率掃描的基本工作流程為,CPU 首先根據(jù)用戶設定的掃描頻率、帶寬、衰減器狀態(tài)等參數(shù)控制變頻接收、中頻采集等硬件平臺,然后讀取電平、頻譜等測量結(jié)果,根據(jù)設定門限決定是否在此頻道駐留測量,否則切換到下一個頻道進行繼續(xù)測量。整個掃描過程是以CPU 為核心串行操作,每個頻道的掃描時間=CPU 設置參數(shù)時間+采集處理時間+數(shù)據(jù)傳輸時間+CPU 運算處理時間。每個頻率掃描時間最短為數(shù)個ms 量級,掃描速度普遍在200 通道/以下,這對短時突發(fā)信號監(jiān)測、提高信道占用度測量的準確度是非常不利的。
圖2 基于CPU 控制的頻率掃描處理框圖
為此,本文設計了基于FPGA 的高速頻率掃描流程,原理框圖如圖2 所示,由FPGA 完成接收、采集控制及切換頻道的判斷,CPU 僅完成采集結(jié)果的顯示,實現(xiàn)硬件和軟件的完全并行處理。在FPGA 中需要實現(xiàn)參數(shù)設置、測量控制、數(shù)據(jù)緩存等操作。
圖3 基于FPGA 的頻率掃描采集處理框圖
(1)參數(shù)設置
變頻模塊等硬件控制通過SPI 總線實現(xiàn),F(xiàn)PGA 完成硬件參數(shù)設置的結(jié)構(gòu)框圖如4 所示。CPU 初始化頻率掃描點數(shù)和每個頻點所需設置的參數(shù),通過PCIe DMA 方式寫入到DDR4 內(nèi)存中。頻率掃描啟動后,F(xiàn)PGA 從內(nèi)存中讀取參數(shù)數(shù)據(jù)并轉(zhuǎn)換成SPI 總線格式發(fā)送到變頻接收和中頻采集模塊。
SPI 總線的傳輸速度設置為8MHz,每個控制參數(shù)數(shù)據(jù)長度為32bit,控制參數(shù)間隔為1μs,變頻通道頻率切換共需設置30 個參數(shù),因此參數(shù)設置時間最小為(0.125μs ×32+1μs)×30=150μs。圖5為SPI總線參數(shù)設置實現(xiàn)波形圖。
圖4 FPGA 完成SPI 參數(shù)設置的結(jié)構(gòu)框圖
圖5 SPI 總線參數(shù)設置實現(xiàn)波形圖
(2)測量控制
參數(shù)設置完成后,F(xiàn)PGA 對采集的數(shù)據(jù)進行抽取濾波、FFT、檢波等處理,得到當前頻點的測量電平和頻譜。電平與設置門限比較,若小于門限則記錄該頻道的頻率、電平、頻譜等信息,切換到下一個頻率點進行測量;若大于門限則進入駐留狀態(tài),繼續(xù)測量電平和頻譜并啟動駐留時間計時,駐留時間到后切換到下一個頻率點測量;若在駐留時間內(nèi)測量電平值小于門限,則進入無信號保持狀態(tài),繼續(xù)測量并啟動無信號保持時間計時;一旦測量電平大于門限則退出無信號保持狀態(tài)并將無信號保持時間計時清零。若測量電平始終小于設置門限,則在無信號保持時間到后切換到下一個頻率點測量。圖6 為頻率掃描測量控制FPGA 實現(xiàn)的狀態(tài)轉(zhuǎn)移圖。
圖6 頻率掃描測量控制狀態(tài)轉(zhuǎn)移圖
頻率掃描測量開始后首先進入?yún)?shù)設置狀態(tài),完成后等待頻率切換穩(wěn)定,穩(wěn)定后進入START測量狀態(tài),ADC數(shù)據(jù)進行抽取濾波、FFT、檢波等處理,產(chǎn)生電平、頻譜等測量結(jié)果;然后根據(jù)測量結(jié)果判定是否在當前頻點駐留測量或切換下一個頻點,通常測量信道沒有非法占用時不需要駐留測量,直接切換下一個頻點,此時最短信號測量時間為200μs。
(3)數(shù)據(jù)緩存
在頻率掃描過程中會產(chǎn)生電平、頻譜、解調(diào)等測量結(jié)果,F(xiàn)PGA 需要緩存大量數(shù)據(jù),選用DDR3 內(nèi)存顆粒MT41K256M16HA-125IT 作為數(shù)據(jù)存儲介質(zhì)。由于采集處理與CPU 讀取測量結(jié)果并行進行,可能存在測量結(jié)果寫入內(nèi)存和CPU 讀取內(nèi)存同時進行的情況,而DDR3 內(nèi)存只有一組地址和數(shù)據(jù)總線接口,在同一時刻不能實現(xiàn)數(shù)據(jù)的同時讀寫。DDR3 內(nèi)存用戶工作時鐘為200MHz,數(shù)據(jù)位寬16位×8=128位,數(shù)據(jù)速率最大為25.6Gbit/s。單通道PCIe 1.0的理論最高速度為2.5Gbit/s。DDR3 讀寫速度約為PCIe 讀寫速度的10 倍,可以利用“時間片輪轉(zhuǎn)”的思想實現(xiàn)內(nèi)存的同時讀寫,即分配給讀寫兩個進程一定大小的時間片,時間片結(jié)束后切換到另一個進程。
DDR3 內(nèi)存實現(xiàn)頻譜數(shù)據(jù)同時讀寫的狀態(tài)轉(zhuǎn)移圖如圖7所示。由于第一次寫頻譜數(shù)據(jù)時不會有讀操作,寫操作不用時間片輪轉(zhuǎn)。讀操作可能會有頻譜數(shù)據(jù)產(chǎn)生,需要分配讀寫時間片。頻譜數(shù)據(jù)產(chǎn)生后首先進入初始寫狀態(tài),中斷時間片結(jié)束后向上位機發(fā)送中斷,進入讀狀態(tài),讀取之前寫入D1區(qū)域的數(shù)據(jù)。若讀時間片沒有結(jié)束讀過程完成,則進入寫狀態(tài)WRITE_D2,往D2 區(qū)域?qū)憯?shù)據(jù);若讀未完成,讀時間片結(jié)束,則進入寫狀態(tài)R_WRITE_D2。寫D2 區(qū)域的中斷時間片結(jié)束后,進入讀D2 狀態(tài),若是第一次讀時間片結(jié)束,則先進入寫狀態(tài)初始化,寫地址從0 開始,然后進入寫D1 狀態(tài),同樣寫時間片結(jié)束返回到讀D2 狀態(tài)。如此循環(huán),“乒乓”讀寫D1 和D2 區(qū)域,實現(xiàn)了掃描不停止、電平頻譜同時讀寫的功能。
圖7 內(nèi)存實現(xiàn)數(shù)據(jù)“同時讀寫”狀態(tài)轉(zhuǎn)移圖
由于變頻通道頻率切換參數(shù)設置并穩(wěn)定的總時間為150μs+150μs=300μs,4096 點FFT 測 量 時 間 為200μs,完成一次測量的總時間為500μs。設定讀時間片長度為500μs,寫時間片長度為50μs。
本文設計的基于FPGA 的信道頻率掃描流程應用到某型手持式監(jiān)測接收機中,完成了任意信道的高速掃描。頻率掃描每個信道的最小測量時間=參數(shù)設置時間+變頻通道頻率切換穩(wěn)定時間+FPGA 信號處理時間=150μs+150μs+200μs=500μs,最快掃描速度最快可達2000 通道/s。頻率掃描過程中受到CPU 處理速度及頻率回掃限制,實際測試掃描速度達到了1400 通道/s。提高CPU 處理速度和縮短頻率切換穩(wěn)定時間掃描速度將進一步提升。按照ITU-R SM.1839-1 建議書《測量無線電監(jiān)測接收機掃描速度的測試程序》推薦的方法進行測試,設置信號發(fā)生器步進掃描起始頻率2.5GHz,終止頻率3.5GHz,幅度-30dBm,頻率步進間隔20MHz,步進點數(shù)51,每個頻點停留時間為35ms。圖8 為接收機頻率掃描測試結(jié)果,可以看出掃描捕獲了全部信號,并且幅度誤差小于5dB。
圖8 接收機頻率掃描測試結(jié)果
本文設計的基于FPGA 的快速信道掃描設計實現(xiàn)了掃描過程硬件的實時控制和測量運算的全并行處理。將該流程應用到某型手持式監(jiān)測接收機中,掃描速度達到了1400 通道/s,比傳統(tǒng)CPU 控制的頻率掃描速度提升了10 倍。