呂天志,彭華仁,王鋒
(中電科思儀科技股份有限公司,山東青島,266555)
在無線電監測中,頻率掃描是按指定頻率表進行信號的掃描監測和射頻參數測量,掃描過程如圖1 所示。頻率表可任意定義每個掃描頻道的頻率、帶寬、測量時間、衰減器狀態等參數,并檢查每個頻道是否存在信號。如果檢測到信號超過預定義的電平門限,接收機將在對應的頻率處駐留一段預設的時間,從而允許進行信號的解調和處理,解調信號可以通過揚聲器或耳機進行監聽。如果沒有檢測出信號,則立即切換到下一個頻率點。在進行信道占用度測量時,需要在盡可能短時間內測量盡可能多的頻道,以提高信道占用度測量的準確度。同時,監測接收機的掃描速度越快,捕捉到短時、突發信號的概率也就越大。

圖1 監測接收機頻率掃描示意圖
監測接收機中基于CPU 控制的頻率掃描處理框圖如圖2 所示,主要由CPU、變頻接收模塊、中頻采集模塊及FPGA 信號處理模塊構成。其中,CPU 完成人機交互、硬件控制、數據運算等功能,變頻接收模塊完成無線電信號的變頻、濾波等,將輸入信號變頻為頻率較低的中頻信號,中頻采集模塊完成中頻信號的模數轉換,FPGA 完成數字信號的抽取濾波、FFT 等運算處理。頻率掃描的基本工作流程為,CPU 首先根據用戶設定的掃描頻率、帶寬、衰減器狀態等參數控制變頻接收、中頻采集等硬件平臺,然后讀取電平、頻譜等測量結果,根據設定門限決定是否在此頻道駐留測量,否則切換到下一個頻道進行繼續測量。整個掃描過程是以CPU 為核心串行操作,每個頻道的掃描時間=CPU 設置參數時間+采集處理時間+數據傳輸時間+CPU 運算處理時間。每個頻率掃描時間最短為數個ms 量級,掃描速度普遍在200 通道/以下,這對短時突發信號監測、提高信道占用度測量的準確度是非常不利的。

圖2 基于CPU 控制的頻率掃描處理框圖
為此,本文設計了基于FPGA 的高速頻率掃描流程,原理框圖如圖2 所示,由FPGA 完成接收、采集控制及切換頻道的判斷,CPU 僅完成采集結果的顯示,實現硬件和軟件的完全并行處理。在FPGA 中需要實現參數設置、測量控制、數據緩存等操作。

圖3 基于FPGA 的頻率掃描采集處理框圖
(1)參數設置
變頻模塊等硬件控制通過SPI 總線實現,FPGA 完成硬件參數設置的結構框圖如4 所示。CPU 初始化頻率掃描點數和每個頻點所需設置的參數,通過PCIe DMA 方式寫入到DDR4 內存中。頻率掃描啟動后,FPGA 從內存中讀取參數數據并轉換成SPI 總線格式發送到變頻接收和中頻采集模塊。
SPI 總線的傳輸速度設置為8MHz,每個控制參數數據長度為32bit,控制參數間隔為1μs,變頻通道頻率切換共需設置30 個參數,因此參數設置時間最小為(0.125μs ×32+1μs)×30=150μs。圖5為SPI總線參數設置實現波形圖。

圖4 FPGA 完成SPI 參數設置的結構框圖

圖5 SPI 總線參數設置實現波形圖
(2)測量控制
參數設置完成后,FPGA 對采集的數據進行抽取濾波、FFT、檢波等處理,得到當前頻點的測量電平和頻譜。電平與設置門限比較,若小于門限則記錄該頻道的頻率、電平、頻譜等信息,切換到下一個頻率點進行測量;若大于門限則進入駐留狀態,繼續測量電平和頻譜并啟動駐留時間計時,駐留時間到后切換到下一個頻率點測量;若在駐留時間內測量電平值小于門限,則進入無信號保持狀態,繼續測量并啟動無信號保持時間計時;一旦測量電平大于門限則退出無信號保持狀態并將無信號保持時間計時清零。若測量電平始終小于設置門限,則在無信號保持時間到后切換到下一個頻率點測量。圖6 為頻率掃描測量控制FPGA 實現的狀態轉移圖。

圖6 頻率掃描測量控制狀態轉移圖
頻率掃描測量開始后首先進入參數設置狀態,完成后等待頻率切換穩定,穩定后進入START測量狀態,ADC數據進行抽取濾波、FFT、檢波等處理,產生電平、頻譜等測量結果;然后根據測量結果判定是否在當前頻點駐留測量或切換下一個頻點,通常測量信道沒有非法占用時不需要駐留測量,直接切換下一個頻點,此時最短信號測量時間為200μs。
(3)數據緩存
在頻率掃描過程中會產生電平、頻譜、解調等測量結果,FPGA 需要緩存大量數據,選用DDR3 內存顆粒MT41K256M16HA-125IT 作為數據存儲介質。由于采集處理與CPU 讀取測量結果并行進行,可能存在測量結果寫入內存和CPU 讀取內存同時進行的情況,而DDR3 內存只有一組地址和數據總線接口,在同一時刻不能實現數據的同時讀寫。DDR3 內存用戶工作時鐘為200MHz,數據位寬16位×8=128位,數據速率最大為25.6Gbit/s。單通道PCIe 1.0的理論最高速度為2.5Gbit/s。DDR3 讀寫速度約為PCIe 讀寫速度的10 倍,可以利用“時間片輪轉”的思想實現內存的同時讀寫,即分配給讀寫兩個進程一定大小的時間片,時間片結束后切換到另一個進程。
DDR3 內存實現頻譜數據同時讀寫的狀態轉移圖如圖7所示。由于第一次寫頻譜數據時不會有讀操作,寫操作不用時間片輪轉。讀操作可能會有頻譜數據產生,需要分配讀寫時間片。頻譜數據產生后首先進入初始寫狀態,中斷時間片結束后向上位機發送中斷,進入讀狀態,讀取之前寫入D1區域的數據。若讀時間片沒有結束讀過程完成,則進入寫狀態WRITE_D2,往D2 區域寫數據;若讀未完成,讀時間片結束,則進入寫狀態R_WRITE_D2。寫D2 區域的中斷時間片結束后,進入讀D2 狀態,若是第一次讀時間片結束,則先進入寫狀態初始化,寫地址從0 開始,然后進入寫D1 狀態,同樣寫時間片結束返回到讀D2 狀態。如此循環,“乒乓”讀寫D1 和D2 區域,實現了掃描不停止、電平頻譜同時讀寫的功能。

圖7 內存實現數據“同時讀寫”狀態轉移圖
由于變頻通道頻率切換參數設置并穩定的總時間為150μs+150μs=300μs,4096 點FFT 測 量 時 間 為200μs,完成一次測量的總時間為500μs。設定讀時間片長度為500μs,寫時間片長度為50μs。
本文設計的基于FPGA 的信道頻率掃描流程應用到某型手持式監測接收機中,完成了任意信道的高速掃描。頻率掃描每個信道的最小測量時間=參數設置時間+變頻通道頻率切換穩定時間+FPGA 信號處理時間=150μs+150μs+200μs=500μs,最快掃描速度最快可達2000 通道/s。頻率掃描過程中受到CPU 處理速度及頻率回掃限制,實際測試掃描速度達到了1400 通道/s。提高CPU 處理速度和縮短頻率切換穩定時間掃描速度將進一步提升。按照ITU-R SM.1839-1 建議書《測量無線電監測接收機掃描速度的測試程序》推薦的方法進行測試,設置信號發生器步進掃描起始頻率2.5GHz,終止頻率3.5GHz,幅度-30dBm,頻率步進間隔20MHz,步進點數51,每個頻點停留時間為35ms。圖8 為接收機頻率掃描測試結果,可以看出掃描捕獲了全部信號,并且幅度誤差小于5dB。

圖8 接收機頻率掃描測試結果
本文設計的基于FPGA 的快速信道掃描設計實現了掃描過程硬件的實時控制和測量運算的全并行處理。將該流程應用到某型手持式監測接收機中,掃描速度達到了1400 通道/s,比傳統CPU 控制的頻率掃描速度提升了10 倍。