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