王滿喜,李永成,榮 輝,向海飛
(電子信息系統(tǒng)復(fù)雜電磁環(huán)境效應(yīng)國家重點實驗室,河南 洛陽 471003)
無線信道傳輸特性分析是開展通信系統(tǒng)設(shè)計、通信裝備布站和通信對抗試驗的重要基礎(chǔ)。無線信道傳輸特性可以通過其時頻特性特征(如時變沖擊響應(yīng))來表征[1]。當前,無線信道時頻特性的獲取手段不外乎2種:一種是用電波的傳播機理結(jié)合現(xiàn)實傳播環(huán)境用射線跟蹤[2-3]或拋物方程[4-5]等方法進行機理建模和預(yù)測;另一種是通過實際測量[3,6],即對無線信道輸入一定形式的信號,通過觀察輸出的信號來估計無線信道的傳輸特性。
目前,第一種方法還處于發(fā)展階段,而且由于無線信道的復(fù)雜性,其估計得到的傳播特性跟實際信道傳播特性往往存在較大的誤差[3,5]。第二種方法又稱為黑箱建模方法,是目前獲得對無線信道傳輸特性分析的主要手段[7]。
進行無線信道測量所需要無線信道測量儀器,一般稱為信道探測器(Channel Sounder),多為專用儀器設(shè)備,儀器功能通常都非常復(fù)雜且出廠前已經(jīng)固化,比如芬蘭Elektrobit AG公司的PropSound以及德國MEDAV GmbH公司的RUSK系列[8-9]。這些儀器體積非常龐大且價格非常昂貴,對于開展科研實驗可能只需要基本的信道測量功能,或想自己定制部分測量功能,或者在經(jīng)費有限的情況下,這些儀器顯然不太合適。因此,無論是無線網(wǎng)絡(luò)設(shè)備提供商和運營商,還是科研院所都在尋求一種高性價比的、可靈活配置的無線信道測量設(shè)備。
針對上述需求,本文提出一種基于PCIe接口的軟件化無線信道實時測量設(shè)備設(shè)計方法,該設(shè)備設(shè)計方案采用“高速信號采集+CPU處理”的通用軟件無線電架構(gòu),不需要對發(fā)射機進行專門設(shè)計,利用其他裝備或儀器發(fā)射的任意擴頻信號,對無線信道多徑特性的實時測量,具有結(jié)構(gòu)通用性好、測量算法改變靈活、信息存儲量內(nèi)容豐富和實時性較好的特點,可滿足現(xiàn)場及時掌握當前信道多徑信息狀況或通信信道長時間路測的需求。
基于PCIe接口的軟件化無線信道實時測量設(shè)備原理如圖1所示。發(fā)射端采用常規(guī)信號發(fā)射方法,基帶信號為已經(jīng)存儲的偽隨機序列信號。接收端采用基于中頻采樣的軟件化接收機的形式來實現(xiàn),射頻信號經(jīng)過低噪聲放大器后,下變頻至70 MHz中頻,然后經(jīng)過基于PCIe接口的高速數(shù)據(jù)采集卡將信號注入計算機,在采集卡上完成濾波、放大、信號采集、數(shù)字下變頻和基帶濾波等功能,在計算機CPU上實現(xiàn)本地信號生成、信號相關(guān)處理、數(shù)據(jù)處理和結(jié)果展示功能。其中,系統(tǒng)的核心在于PCIe中頻信號采集卡硬件程序開發(fā)和基于windows平臺的實時處理軟件程序開發(fā)。
該設(shè)備設(shè)計的關(guān)鍵部分在于PCIe接口中頻信號采集卡,該采集卡是一塊基于高速PCI Express總線的板卡,板卡硬件組成包含7個子模塊:中頻放大模塊、模擬濾波模塊、中頻自動增益控制模塊、模數(shù)轉(zhuǎn)換模塊、數(shù)字信號處理模塊、PCI Express總線模塊以及其他外圍電路,如圖2所示,圖2中深色箭頭標明了信號流向。
圖2 系統(tǒng)采集卡設(shè)計
1.2.1 中頻放大模塊
中頻放大模塊如圖3所示,采用AD8370放大器,對70 MHz中頻信號進行放大,該芯片的理論增益11~34 dB,模塊的輸入和輸出阻抗均設(shè)計為50 Ω。放大器的增益值可由FPGA來配置。
1.2.2 模擬濾波模塊
模擬濾波模塊如圖4所示,采用SAWTEK公司聲表濾波器構(gòu)建,可根據(jù)需要更換型號為自己合適的帶寬。設(shè)計了雙路可選方式,便于針對不同的中頻信號實現(xiàn)帶通濾波。以SAWTEK854673為例,帶通濾波器中心頻率70 MHz,帶寬為26 MHz,濾波器插入損耗17 dB。
圖4 模擬濾波模塊設(shè)計
1.2.3 中頻自動增益控制模塊
中頻自動增益控制模塊如圖5所示,這個模塊和第一級AD8370放大一樣,中頻自動增益控制模塊也是采用AD8370放大器。但在FPGA設(shè)計中對其增益值設(shè)計為可實時調(diào)整,便于需要時實現(xiàn)AGC控制。在實際測量過程中,可以通過斷開自動增益控制信號來屏蔽自動增益控制功能。
圖5 中頻自動增益控制設(shè)計
1.2.4 模數(shù)轉(zhuǎn)換電路模塊
模數(shù)轉(zhuǎn)換電路模塊如圖6所示,采用AD9467BCPZ-200芯片,最高支持到200 MHz采樣。時鐘同步方案采用時鐘分發(fā)芯片同時提供給ADC和FPGA,在FPGA內(nèi)部使用PLL調(diào)整時鐘相位,以達到和ADC輸出數(shù)據(jù)的準確同步,保證數(shù)據(jù)準確接收。
圖6 模數(shù)轉(zhuǎn)換電路設(shè)計
1.2.5 數(shù)字信號處理模塊
數(shù)字信號處理模塊如圖7所示,主要包括在FPGA內(nèi)利用代碼或IP核實現(xiàn)的抗混疊濾波器、數(shù)字下變頻器和低通濾波器。設(shè)計中,上電時PC端設(shè)置的下變頻頻率值被送至FPGA中,對數(shù)字下變頻進行設(shè)置,方便將合適的信號下變頻到基帶。因為考慮PC硬盤記錄速度不夠,不能將26 MHz帶寬的信號全部采集下來,于是采用了下抽取至25 MHz采樣復(fù)基帶16 bit輸出,這樣硬盤記錄速度實為100 Mbps。
圖7 數(shù)字信號處理設(shè)計
1.2.6 PCI Express總線模塊
PCI Express總線模塊基于Altera SOPC架構(gòu)搭建,生成PCI Express 1.1標準4lane的節(jié)點設(shè)備。設(shè)計中采用了清中斷、DMA傳輸?shù)母倪M方法,使得板卡傳輸速度更接近理論速度,預(yù)測可達到500 Mbps。
1.2.7 其他外圍電路模塊
外圍電路包括必須的電源、時鐘、配置電路以及DDR2存儲器電路。因該板卡是插在主板上的,所以對FPGA的快速配置設(shè)計顯得特別重要,本板卡使用快速AS方式,配置時間滿足大部分主板的要求。DDR2存儲器電路主要用于將來對大數(shù)據(jù)量緩存之用。
PCIe采集卡的軟件部分主要用于數(shù)據(jù)采集和存儲的控制。系統(tǒng)軟件工作流程設(shè)計框圖如圖8所示。其中,PCIe硬IP以及DMA控制器等主要功能模塊在SOPC中完成,AD_User_Logic和User_Logic2個模塊用于控制系統(tǒng)工作,2個控制模塊均位于FPGA內(nèi)部,使用verilog編寫。軟件端基于WinDriver驅(qū)動編寫用戶程序。DMA傳輸過程中是FPGA端為master,PC端為slave的。
圖8 PCIe采集軟件流程
系統(tǒng)的工作流程如下:
① PC端將申請到的多頁物理地址信息通過Slave_template發(fā)送到User_Logic中的FIFO中;
② 用戶在PC端啟動采集程序,開始工作;
③ 采集數(shù)據(jù)存儲至64 kByte,User_Logic寫DMA控制器和A2P Translate Table。如果是最后一個4 kByte,就硬件打開PCIe硬核CRA寄存器的中斷使能;
④ DMA控制器開始做存儲器直接訪問,一次4 kByte,結(jié)束后DMA控制器給中斷到User_Logic,User_Logic清中斷后回到步驟③;
⑤ 最后一次DMA結(jié)束,DMA控制器給中斷到PC,PC端的實時測量軟件通過開辟新進程來從內(nèi)存中提取出該次采集到的64 kByte數(shù)據(jù),開始進行信號處理;
⑥ PC端進入中斷服務(wù)程序后,Kernel模式下軟件清中斷,屏蔽PCIe硬核CRA寄存器的中斷使能;
⑦ 中斷服務(wù)程序中發(fā)現(xiàn)用戶需要停止采集,發(fā)出停止標志,完成采集,同時實時測量軟件也停止工作。
此外,該部分軟件設(shè)計中的關(guān)鍵技術(shù)軟件的設(shè)計中采用了多線程同步技術(shù),避免了丟數(shù)據(jù)和重復(fù)讀數(shù)據(jù)的問題。同時采用驅(qū)動kernel核心態(tài)中斷響應(yīng)技術(shù),保證了中斷響應(yīng)的及時性。
無線信道多徑特性實時測量軟件是基于PCIe采集卡軟件的基礎(chǔ)上,將原數(shù)據(jù)采集存儲功能調(diào)整為直接從內(nèi)存中調(diào)取采集數(shù)據(jù)并進行實時流處理,并將結(jié)果在界面上顯示。采集處理軟件主要啟動4個線程并與中斷處理程序協(xié)作,完成各種后續(xù)數(shù)據(jù)存儲、處理、顯示與輸出任務(wù),其線程分配如圖9所示,其中calculator是實時處理線程。
圖9 采集處理軟件線程分配
軟件主要的工作在saver和calculator中完成。temper和waiter存在的意義在于部分分擔interupter的工作,減少CPU在interrupter內(nèi)逗留的時間,提高整個系統(tǒng)的中斷響應(yīng)速度。
① temper:通過調(diào)用OS的API,不斷查詢“數(shù)據(jù)已緩存”信號的狀態(tài),若發(fā)現(xiàn)其狀態(tài)改變,則立即發(fā)出“輔助中斷處理”信號,通知waiter進行處理。
② waiter:通過調(diào)用OS的API,不斷查詢“輔助中斷處理”信號的狀態(tài),若發(fā)現(xiàn)其狀態(tài)改變,則發(fā)出“結(jié)束等待”信號,通知saver進行數(shù)據(jù)存儲。
③ saver:通過調(diào)用OS的API,不斷查詢“結(jié)束等待”信號的狀態(tài),若發(fā)現(xiàn)其狀態(tài)改變,則保存全部原始數(shù)據(jù)到文件中,并發(fā)出“保存完畢”信號回告waiter,同時發(fā)出“開始計算”信號通知calculator進行數(shù)據(jù)處理。
④ calculator:通過調(diào)用OS的API,不斷查詢“數(shù)據(jù)準備完畢”信號的狀態(tài),若發(fā)現(xiàn)其狀態(tài)改變,則將原始數(shù)據(jù)復(fù)制一份到自己的工作區(qū),然后執(zhí)行相關(guān)峰計算和繪圖輸出任務(wù)。
Calculator線程是信道多徑特性測量的主要工作線程,其運算流程如圖10所示。
圖10 Calculator線程流程
上述處理算法均在后臺運行,基于PCIe接口的軟件化無線信道多徑參數(shù)實時測量設(shè)備的人機交互界面的實時探測參數(shù)設(shè)置界面如圖11所示??稍O(shè)置的參數(shù)包括載頻、采樣率,以及與發(fā)射信號相對應(yīng)的PN序列長度、碼片速率,實時觀測的窗口長度和本地預(yù)存PN序列信號打開選項等,下方區(qū)域為實時探測結(jié)果顯示區(qū)域。
圖11 無線信道多徑參數(shù)實時測量軟件界面
按照上述設(shè)計方案,完成了短波波段基于PCIe接口的軟件化無線信道多徑參數(shù)實時測量設(shè)備的研制,其主要工作步驟如下:
① 本地載波生成:設(shè)備本地載波的頻綜采用的是PCIe采集板卡上的10 MHz恒溫晶振,依托其產(chǎn)生的中心載頻和發(fā)射端發(fā)射載頻存在一定頻差,所以在設(shè)置本地中心頻率后,還需要進行校頻[8]來完成。
② 解調(diào):經(jīng)過數(shù)字下變頻后,通過低通濾波器進行包絡(luò)檢波即可進行解調(diào)得到采用BPSK調(diào)制的偽隨機序列。但是為了降低后面實時處理的壓力,需要對采樣率為6.25 MHz的解調(diào)數(shù)據(jù)進行抽取,即降采樣。為防止考慮到抽取混疊和濾波器設(shè)計難度,系統(tǒng)采用了二級抽取和三級濾波的方法實現(xiàn)。
③ 相關(guān)處理:相關(guān)處理首先需要獲取本地PN碼序列,通常有2種方式:一是直接通過預(yù)存調(diào)取的方法;二是通過移位寄存器直接產(chǎn)生,由于PC端應(yīng)用程序文件調(diào)用較為方便,故系統(tǒng)采用第一種方法。另外,此處還需要設(shè)置視窗長度,視窗長度一般取最大可測量時延的2~3倍,以確保在完整的多徑信號相關(guān)峰值出現(xiàn)在視窗內(nèi)。
④ 顯示與存儲:相關(guān)處理后將得到無線信道在測量窗口內(nèi)的多徑信號相關(guān)峰值曲線,該曲線首先送往界面進行實時顯示,然后將按照時間順序?qū)⒃撉€寫入文件中,從而滿足了長時間路測獲取信道多徑傳輸信息的需求。
基于PCIe接口的軟件化無線信道多徑參數(shù)實時測量設(shè)備的實際測量結(jié)果如圖12所示。
圖12 實時測量結(jié)果顯示屏幕切圖
無線信道測量設(shè)備是開展無線信道探測工作的基礎(chǔ)。本文根據(jù)商用化無線信道測量系統(tǒng)的現(xiàn)狀,提出了一種基于PCIe接口的軟件化無線信道實時測量設(shè)備設(shè)計方法,并自研成功及應(yīng)用。但由于CPU的計算能力有限,因此,目前該設(shè)計方案對較低帶寬的測量信號(如短波、超短波頻段)具有良好的適用性,但是對高帶寬信號尚存在一定的難度。在該領(lǐng)域的后續(xù)工作中,將在設(shè)備的小型化、便攜化[11],向MIMO信道探測[12-13]方法的推廣,以及基于GPU加速[14-15]的軟件化實現(xiàn)方法等方面繼續(xù)開展深入研究。