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