802.11應(yīng)用架構(gòu)根據(jù)IEEE 802.11無線標(biāo)準(zhǔn),提供了立即可用、方便修改的實(shí)時(shí)正交頻分復(fù)用(OFDM)物理層(PHY)和底層媒體訪問控制層(MAC)參考設(shè)計(jì)。 802.11應(yīng)用架構(gòu)包含于LabVIEW Communications系統(tǒng)設(shè)計(jì)套件(簡稱 LabVIEW Communications)中。
這個(gè)架構(gòu)提供了良好的開發(fā)起點(diǎn),幫助研究人員探索全新的算法和架構(gòu)來支持大幅增長的端點(diǎn)數(shù)量、發(fā)明新波形來調(diào)制/解調(diào)信號或?qū)ふ胰碌亩嗵炀€架構(gòu)來充分運(yùn)用無線媒介的自由度,進(jìn)而找到改良802.11標(biāo)準(zhǔn)的方式。
802.11應(yīng)用架構(gòu)包含了使用LabVIEW Communications開發(fā)的PHY塊和MAC塊。 該框架搭載了強(qiáng)大的Xilinx Kintex-7 FPGA平臺與Intel x64通用處理器,這兩者皆可緊密集成NI軟件無線電(SDR)硬件的RF和模擬前端裝置。
我們完全重新設(shè)計(jì)了這個(gè)框架,使用戶可以輕松對其進(jìn)行修改,同時(shí)遵循802.11標(biāo)準(zhǔn)的主要規(guī)范。 這種設(shè)計(jì)可讓無線研究人員根據(jù)802.11標(biāo)準(zhǔn)快速搭建實(shí)時(shí)原型開發(fā)實(shí)驗(yàn)室并開始運(yùn)行。 他們還可以專心改良特定的系統(tǒng)項(xiàng)目、輕松修改設(shè)計(jì)以及將其創(chuàng)新與現(xiàn)有標(biāo)準(zhǔn)進(jìn)行比較。
1. 范圍和標(biāo)準(zhǔn)遵循
802.11應(yīng)用架構(gòu)提供了單個(gè)站點(diǎn)的功能,包含接收(RX)與發(fā)射(TX)功能,并使用OFDM作為核心數(shù)字調(diào)制機(jī)制。 OFDM適用于復(fù)雜度低的多功能PHY實(shí)現(xiàn),并且可減緩寬頻無線信道的離散效應(yīng)。 OFDM采用快速傅立葉變換(FFT)和快速傅立葉逆變換(IFFT)來實(shí)現(xiàn)發(fā)射機(jī)與接收機(jī)的頻域PHY處理。 通過在頻域上處理數(shù)據(jù),OFDM可有效地讓PHY通過通信頻譜的平行窄頻區(qū)段來傳輸數(shù)據(jù)。 由于減緩信道離散只需要針對每個(gè)區(qū)段進(jìn)行一次數(shù)學(xué)運(yùn)算,所以通過窄頻區(qū)段來執(zhí)行數(shù)據(jù)傳輸是相當(dāng)理想的做法。
以下各部分介紹了所提供的PHY與底層MAC功能以及所遵循的802.11標(biāo)準(zhǔn)。
1.1
PHY層
802.11應(yīng)用架構(gòu)提供了下列PHY發(fā)射機(jī)功能:
加密
卷積編碼和位交織
導(dǎo)頻序列生成
BPSK/QAM星座映射器
信號字段生成
通過IFFT生成OFDM碼元
循環(huán)前綴(CP)插入
前導(dǎo)碼字段補(bǔ)充
為接收機(jī)端提供了特定函數(shù)對應(yīng)的補(bǔ)充功能:
數(shù)據(jù)包檢測
時(shí)間和頻率同步
自動增益控制
信號字段檢測
循環(huán)前綴去除
通過FFT解調(diào)OFDM碼元
信道估算和迫零均衡
BPSK/QAM解調(diào)
基于維特比譯碼器的卷積譯碼(包括分選)
解密
802.11應(yīng)用架構(gòu)可支持IEEE標(biāo)準(zhǔn)所規(guī)定的不同OFDM配置。 版本1.0可支持20 MHz a/g和20 MHz n/ac這兩種副載波格式,具體特性如下:
系統(tǒng)帶寬: 20 MHz
副載波頻寬: 每個(gè)副載波(窄頻區(qū)段)占用312.5 kHz
副載波分配
. 20 MHz a/g: 分配53個(gè)連續(xù)副載波(載波頻率的中央(第27個(gè))副載波)
. 20 MHz n/ac: 分配57個(gè)連續(xù)副載波(載波頻率的中央(第29)副載波)
零位中央副載波: 中央副載波通過歸零可避免本地振蕩器出現(xiàn)基帶饋通。
導(dǎo)頻副載波可允許接收機(jī)補(bǔ)償殘留的頻率同步失配和相位漂移:
. 20 MHz a/g: 53個(gè)副載波中有4個(gè)是導(dǎo)頻副載波
. 20 MHz n/ac: 57個(gè)副載波中有4個(gè)是導(dǎo)頻副載波
發(fā)射機(jī)每個(gè)IFFT輸出字段前面都會有800 ns的循環(huán)前綴,可保留接收器端的循環(huán)卷積,避免碼元之間相互干擾。所以每個(gè)OFDM碼元可用來傳輸數(shù)據(jù)的副載波數(shù)量如下:
. 20 MHz a/g: 48個(gè)副載波
. 20 MHz n/ac: 52個(gè)副載波
這樣一來,對于20 MHz的信道分配而言,48 * 312.5 kHz = 15 MHz,52 * 312.5 kHz = 16.25 MHz。 這兩個(gè)頻譜數(shù)量分別對應(yīng)20 MHz a/g和20 MHz n/ac模式的數(shù)據(jù)。
802.11應(yīng)用架構(gòu)采用簡化的PHY幀格式。 圖1為已實(shí)現(xiàn)的格式。
圖1. 一般的PHY架構(gòu)格式
PHY架構(gòu)包含以下字段:
傳統(tǒng)模式的短訓(xùn)練字段(Legacy mode short training field, L-STF) - 用于接收機(jī)端的增益控制、數(shù)據(jù)包檢測、頻率同步的靜態(tài)字段。 字段時(shí)間長度為8 ?s。
傳統(tǒng)模式的長訓(xùn)導(dǎo)字段( Legacy mode long training field,L-LTF) - 用于時(shí)間同步與信道估算的靜態(tài)字段。 字段時(shí)間長度為8 ?s。
傳統(tǒng)模式的信號字段(Legacy mode signal field, L-SIG)- 包含已應(yīng)用的調(diào)制編碼機(jī)制(MCS)和框架長度等信息的動態(tài)字段。
超高吞吐量短訓(xùn)練字段(Very high throughput short training field, VHT-STF):用于超高吞吐量模式802.11ac的靜態(tài)字段。 目前的接收機(jī)實(shí)現(xiàn)方案往往忽視了VHT-STF字段,僅評估L-LTF字段。
超高吞吐量長訓(xùn)練字段(Very high throughput long training field, VHT-LTF):用于超高吞吐量模式802.11ac的靜態(tài)字段。 目前的接收機(jī)實(shí)現(xiàn)方案往往忽視了VHT-LTF字段,僅評估L-LTF字段。
負(fù)載(PAYLOAD)屬于動態(tài)字段,僅由MAC消息定義。 負(fù)載的長度取決于信號傳輸調(diào)制機(jī)制。 最長的負(fù)載采用二進(jìn)制相位位移鍵控(BPSK)機(jī)制。 最短的負(fù)載則采用64-QAM機(jī)制。
上述的框架格式符合IEEE 802.11ac規(guī)范,但是并未提供超高吞吐量信號字段(High Throughput Signal Field,VHT-SIG-A 或 VHT-SIG-B)。
1.2
媒體訪問控制(MAC)層
802.11應(yīng)用架構(gòu)提供了下列MAC發(fā)射機(jī)功能:
. DATA PDU生成,包括添加地址信息
. 幀檢驗(yàn)序列(Frame check sequence, FCS)生成
. ACK PDU生成
以下功能適用于接收機(jī)端:
. 幀檢驗(yàn)序列(Frame check sequence, FCS)檢驗(yàn)
. ACK PDU傳輸?shù)牡刂窓z驗(yàn)和觸發(fā)
. MAC SDU提取
802.11應(yīng)用架構(gòu)針對MAC PDU采用了一個(gè)簡化的框架結(jié)構(gòu)。 圖2顯示的是用于數(shù)據(jù)和ACK幀的數(shù)據(jù)包結(jié)構(gòu)。
圖2.MAC PDU幀結(jié)構(gòu)
MAC PDU幀的第一個(gè)字段是TYPE字段,占用了一個(gè)字節(jié)。 接收機(jī)根據(jù)該字段判斷要解碼的MAC PDU幀。 802.11應(yīng)用架構(gòu)中,TYPE只有兩種類型: DATA(0x08)和ACK(0xD4)。 未來應(yīng)用架構(gòu)可能會包含更多類型。 MAC數(shù)據(jù)包中第二和第三個(gè)字段長度均是6個(gè)字節(jié),分別代表目標(biāo)的MAC位址和來源的MAC位址。 MAC數(shù)據(jù)包的第四個(gè)字段是MESSAGE字段, 其中包含來自更高層協(xié)議的所有數(shù)據(jù),通過無線鏈路進(jìn)行傳輸。 MAC數(shù)據(jù)包的第五個(gè)字段是CRC32字段, 長度為4個(gè)字節(jié),由FPGA的CRC32模塊生成,附加到每個(gè)信息上以便檢錯(cuò)。
1.3 遵循IEEE 802.11標(biāo)準(zhǔn)
802.11應(yīng)用架構(gòu)遵循一部分特定的IEEE 802.11標(biāo)準(zhǔn)。選擇特定支持功能的原因在于盡可能簡化代碼以便修改,同時(shí)遵循802.11標(biāo)準(zhǔn)的主要架構(gòu)。
除了上述的簡化數(shù)據(jù)包格式之外,以下是其他固定或簡化的設(shè)置和步驟,有助于降低應(yīng)用架構(gòu)的復(fù)雜度:
僅支持單一輸入/輸出(SISO)傳輸模式
僅限BPSK、QPSK、16 QAM和64 QAM調(diào)制與編碼機(jī)制(MCS)
專用交錯(cuò)復(fù)用器
專用SIFS時(shí)序
簡化的自動增益控制(AGC):802.11應(yīng)用架構(gòu)提供簡化的AGC機(jī)制。 其中一部分在主機(jī)上實(shí)現(xiàn),所以需要較長的調(diào)整時(shí)間。 AGC循環(huán)必須接收多個(gè)數(shù)據(jù)包才能計(jì)算并設(shè)置正確的增益值。
2. 實(shí)現(xiàn)概述
由于802.11系統(tǒng)的延遲要求,大多數(shù)區(qū)塊都會在FPGA上實(shí)現(xiàn)。 不需要實(shí)時(shí)執(zhí)行功能和FPGA初始化與控制功能的特性都在主機(jī)處理器上實(shí)現(xiàn)。 發(fā)射器和接收器實(shí)現(xiàn)方式分別如圖3和圖4所示,其中顯示了主機(jī)-FPGA的分區(qū)。
圖3.發(fā)射器示意圖
就發(fā)射器端而言,主機(jī)會把讀取自UDP插槽的用戶數(shù)據(jù)傳輸至FPGA。 也可選擇使用隨機(jī)產(chǎn)生的數(shù)據(jù)包。 主機(jī)代碼會顯示輸入控件,以便設(shè)置參數(shù),例如調(diào)制和編碼機(jī)制。 然后在FPGA上應(yīng)用這些參數(shù)來執(zhí)行基帶與RF處理。 FPGA上的信號處理還包含了PHY幀合成、OFDM調(diào)制和轉(zhuǎn)換至模擬信號。
圖4.接收器示意圖
在接收器端,F(xiàn)PGA會執(zhí)行所有的基帶運(yùn)算以便接收并解碼信號,例如數(shù)據(jù)包檢測和同步化、OFDM解調(diào)制、信道估算和均衡以及解碼等。 解碼后的數(shù)據(jù)傳輸至主機(jī)。 主機(jī)可能會隨意把接收到的數(shù)據(jù)寫入U(xiǎn)DP socket。 此外,F(xiàn)PGA會把額外的數(shù)據(jù)(例如所接收的I/Q樣本和所檢測的數(shù)據(jù)包解調(diào)后的I/Q星座圖)傳輸至主機(jī)。 額外數(shù)據(jù)可用于記錄調(diào)試日志,也可用于顯示頻譜或接收到的星座圖。
第三小節(jié)提供更多FPGA的實(shí)現(xiàn)信息,第四小節(jié)則闡述了主機(jī)實(shí)現(xiàn)。
3. FPGA實(shí)現(xiàn)
3.1 概述
FPGA頂層實(shí)現(xiàn)了下列功能:
狀態(tài)機(jī)和常規(guī)配置
發(fā)送處理
接收處理
射頻處理
代表這些功能的元素會放在FPGA頂層架構(gòu)圖中,分成四欄,如圖5所示。 每欄皆包含多個(gè)循環(huán);所以舉例來說,最左欄是一個(gè)狀態(tài)機(jī)器處理循環(huán)、一個(gè)主機(jī)寄存器配置循環(huán)和一個(gè)收發(fā)器初始化循環(huán)。
圖 5. FPGA頂層示意圖
3.2小節(jié)會進(jìn)一步解釋狀態(tài)機(jī)。 3.3和3.5小節(jié)會分別闡述發(fā)射器和接收器。 如需了解更多射頻處理細(xì)節(jié),請查看3.4小節(jié)。
主機(jī)寄存器配置(Host Register Configuration)循環(huán)負(fù)責(zé)執(zhí)行過程中主機(jī)的配置參數(shù)更改。 這些更改可能包含調(diào)制和編碼機(jī)制、設(shè)備MAC位址和副載波格式等信息。 該循環(huán)會生成FPGA的相關(guān)配置,例如數(shù)據(jù)副載波的數(shù)量和每個(gè)QAM碼元的比特?cái)?shù)。
收發(fā)器初始化(Transceiver Initialization)循環(huán)是當(dāng)前實(shí)現(xiàn)的一個(gè)占位(placeholder)符,可用于在整個(gè)收發(fā)器開始運(yùn)行前進(jìn)行常規(guī)配置和初始化。
3.2 狀態(tài)機(jī)
為了控制PHY處理功能以便收發(fā)數(shù)據(jù)包,F(xiàn)PGA上實(shí)現(xiàn)了下列三個(gè)狀態(tài)機(jī):
收發(fā)器狀態(tài)機(jī)(Transceiver state machine):協(xié)調(diào)發(fā)射器與接收器狀態(tài)機(jī)的順序運(yùn)行。
發(fā)射器狀態(tài)機(jī)(Transmitter state machine):協(xié)調(diào)發(fā)射器的運(yùn)行。
接收器狀態(tài)機(jī)(Receiver state machine):協(xié)調(diào)接收器的運(yùn)行,包含數(shù)據(jù)包檢測與同步。
圖6顯示了FPGA頂層狀態(tài)機(jī)循環(huán)內(nèi)的狀態(tài)機(jī)位置。
圖6.狀態(tài)機(jī)循環(huán)內(nèi)的狀態(tài)機(jī)位置
3.2.1 收發(fā)器狀態(tài)機(jī)
收發(fā)器狀態(tài)機(jī)有四個(gè)狀態(tài),可在發(fā)射器和接收器之間進(jìn)行協(xié)調(diào)。 請注意,802.11接收器的默認(rèn)狀態(tài)是數(shù)據(jù)包偵聽。 因此,收發(fā)器默認(rèn)的idle狀態(tài)對應(yīng)至接收器的detect狀態(tài)。如果發(fā)現(xiàn)數(shù)據(jù)包前導(dǎo)碼,收發(fā)器就會變成rx狀態(tài),直到數(shù)據(jù)包解碼完成為止。 一旦有能夠傳輸?shù)臄?shù)據(jù)包,同時(shí)狀態(tài)機(jī)處于idle狀態(tài) (也就是接收器則處于detect狀態(tài))時(shí),收發(fā)器會迅速切換至發(fā)射狀態(tài)。
狀態(tài)
說明
備注
init
此狀態(tài)表示收發(fā)器首次啟動。
?
idle
接收器正在偵聽數(shù)據(jù)包。
?
tx
發(fā)射器正在生成數(shù)據(jù)包。
?
rx
接收器正在同步或解碼數(shù)據(jù)包。
?
3.2.2 發(fā)射器狀態(tài)機(jī)
發(fā)射器狀態(tài)機(jī)有五個(gè)狀態(tài),如下表所示。
狀態(tài)
說明
備注
idle
發(fā)射器正在等待數(shù)據(jù)發(fā)送。
為了快速啟動發(fā)送操作,L-STF和L-LTF預(yù)先計(jì)算的樣本已經(jīng)寫入重采樣FIFO。 如需更多信息,請查看3.3.3小節(jié)。
SIGNAL copy
生成信號字段并復(fù)制到重采樣FIFO。
收發(fā)器必須處于idle狀態(tài)才能進(jìn)入此狀態(tài)。
?VHT copy
超高吞吐量(Very high throughput, VHT)前導(dǎo)碼會復(fù)制到重采樣FIFO。
?
PAYLOAD copy
生成數(shù)據(jù)負(fù)載字段并復(fù)制到重采樣FIFO。
?
finish
重新設(shè)置發(fā)射器。
3.2.3 接收器狀態(tài)機(jī)
接收器狀態(tài)機(jī)有五個(gè)狀態(tài),如下表所示。
狀態(tài)
說明
備注
idle
接收器正在等待數(shù)據(jù)包檢測初始化。
?
detect
接收器正在偵聽數(shù)據(jù)包(數(shù)據(jù)包檢測模式)。
收發(fā)器必須處于idle狀態(tài)才能進(jìn)入此狀態(tài)。
sync
接收器與檢測到的數(shù)據(jù)包進(jìn)行同步。
收發(fā)器必須處于tx狀態(tài)才能進(jìn)入此狀態(tài)。
decode
接收器正在處理接收到的數(shù)據(jù)包。
?
finish
接收器已完成數(shù)據(jù)包接收
?
3.3 發(fā)射器
3.3.1 概述
發(fā)射器會分成三個(gè)循環(huán),如圖7所示。
TX MAC + PHY循環(huán)會讀取主機(jī)所提供的數(shù)據(jù),并且構(gòu)建MAC PDU數(shù)據(jù)包,如1.2節(jié)所述。 接著MAC PDU數(shù)據(jù)包的比特會經(jīng)過信道編碼,并且以80 MS/s的采樣率生成復(fù)數(shù)值的基帶樣本。
Copy TX data sources循環(huán)會通過添加丟失的信號字段來構(gòu)建PHY幀格式,如1.1節(jié)所述。
TX sample interpolation循環(huán)會把I/Q基帶樣本的采樣率從80 MS/s轉(zhuǎn)換為120 MS/s,以便滿足DAC的要求。
下面幾節(jié)將會進(jìn)一步介紹這些循環(huán)。
圖 7. 發(fā)射器循環(huán)
3.3.2 發(fā)射器MAC+PHY的循環(huán)
TX MAC+PHY Loop的輸入與輸出如8所示。主機(jī)數(shù)據(jù)通過一個(gè)稱為TX:PacketBytes的直接內(nèi)存訪問Host-to-Target FIFO提供。 另一個(gè)Host-to-Target FIFO稱為TX:NumPacketBytes,可提供要讀取的字節(jié)數(shù)的控制信息。 TX:PacketBytes所提供的數(shù)據(jù)包含目標(biāo)MAC位址和MAC SDU負(fù)載。
圖 8. 發(fā)射器MAC + PHY循環(huán)的輸入與輸出
Format MPDU Bits區(qū)塊會根據(jù)消息信息和設(shè)備配置生成剩余字段,主要是插入1個(gè)字節(jié)的TYPE字段和6個(gè)字節(jié)的SRC-MAC字段,并且附加一個(gè)4字節(jié)的CRC32字段。 所獲得的MAC PDU幀如圖2的結(jié)構(gòu)所示。如果要進(jìn)行調(diào)試,此幀也通過TX: PHYIn target-to-host FIFO寫入主機(jī)。
下一個(gè)區(qū)塊叫做TX PHY TOP,包含了信道編碼和基帶調(diào)制處理,如圖9所示。
圖 9. TX PHY Top的程序框圖
Format PPDU Bits區(qū)塊可執(zhí)行兩項(xiàng)操作:
1、附加于L-SIG字段前方,L-SIG字段包含PSDU比特?cái)?shù)量、每個(gè)數(shù)據(jù)副載波的比特(也就是調(diào)制機(jī)制)和編碼率。
2、補(bǔ)充填充位,這樣一來數(shù)據(jù)包就可以匹配特定QAM星座圖中OFDM碼元的比特位界限。 舉例來說,通過64-QAM編碼而成(每個(gè)碼元6位)且長度為168字節(jié)的消息(由MAC PDU、服務(wù)位和尾位組成)會以224QAM碼元來表示。 如果每個(gè)OFDM碼元有48個(gè)數(shù)據(jù)副載波并且使用a/g模式時(shí),下一個(gè)可用的界限就是240 QAM碼元。 相差16個(gè)碼元意味著需要補(bǔ)充96個(gè)填充位。
MAC格式化區(qū)塊完成之后,PHY幀就可以準(zhǔn)備執(zhí)行信道編碼。 這些比特會進(jìn)行加密,通過二進(jìn)制卷積碼(Binary Convolutional Code, BCC)完成交錯(cuò)編碼。 要使用的BCC速率取決于調(diào)制與編碼機(jī)制(MCS),這一機(jī)制由主機(jī)提供并用于傳輸數(shù)據(jù)數(shù)據(jù)包。 ACK數(shù)據(jù)包一律采用MCS 0來傳輸。
交錯(cuò)的比特會映射至QAM U8碼元索引(而不是復(fù)合的基帶樣本)。 這些碼元索引可簡化QAM碼元的表示,有助于減少碼元映射器的內(nèi)存占用。 生成碼元索引后,QAM碼元就會映射至副載波結(jié)構(gòu),如1.1小節(jié)所示。 副載波會根據(jù)每個(gè)OFDM碼元以正確的順序排列,零子載波則會在中心頻率下插入。 零子載波也會插入到頻帶邊緣,以確保有效的FFT變換。
完成子載波格式化之后,QAM碼元索引就會映射至復(fù)數(shù)基帶(同相和正交)樣本。 IFFT區(qū)塊會把頻域I/Q樣本轉(zhuǎn)換至?xí)r域I/Q樣本。 發(fā)射器和接收器的FFT大小都是256,有助于輕松擴(kuò)展帶寬。 IFFT也會插入循環(huán)前綴,長度為64個(gè)樣本。 這樣一來,每個(gè)OFDM碼元就會有320個(gè)樣本,由于802.11標(biāo)準(zhǔn)的OFDM碼元持續(xù)時(shí)間為4ms,采樣率就等于80 MS/s。
3.3.3 復(fù)制傳輸數(shù)據(jù)源(Copying Transmit Data Sources)循環(huán)
如圖10的循環(huán)所示,不同TX數(shù)據(jù)源的復(fù)數(shù)值基帶樣本會通過多個(gè)路徑進(jìn)行傳輸,最終生成一個(gè)802.11 PHY幀,如1.1小節(jié)所述。 不同訓(xùn)練字段的復(fù)數(shù)值基帶樣本,也就是L-STF、L-LTF、VHT-STF和VHT-LTF,都會經(jīng)過預(yù)計(jì)算并儲存至ROM表格。
圖 10. 復(fù)制傳輸數(shù)據(jù)源循環(huán)的輸入與輸出
3.3.4 內(nèi)插發(fā)射器樣本(Transmit Sample Interpolation)循環(huán)
圖11所示的循環(huán)把采樣率從80 MS/s轉(zhuǎn)換為120 MS/s,也就是NI USRP默認(rèn)的DAC采樣率。 基本上,采樣率轉(zhuǎn)換是使用一個(gè)2:3內(nèi)插器完成的。 如果要進(jìn)行調(diào)試,可以使用目標(biāo)至主機(jī)的DMA FIFO,也就是TX:PacketDebug,以80 MS/s的采樣率訪問802.11幀的復(fù)數(shù)值基帶樣本。
圖 11. 內(nèi)插發(fā)射器樣本循環(huán)的輸入與輸出
3.4 RF處理
RF處理循環(huán)是從NI USRP Streaming Sample Project中截取出來的。 如需深入了解RF處理循環(huán),請查看NI USRP Streaming Sample Project文檔。 ADC和DAC處理循環(huán)已針對802.11應(yīng)用架構(gòu)進(jìn)行了簡化與調(diào)整。除了項(xiàng)目范例之外,RF0和RF1發(fā)射端口1與接收端口1和2的啟用/禁用是由主循環(huán)控制,而非RF配置開關(guān)(RF Configuration Switches)循環(huán)。
圖 12. FPGA頂層的ADC/DAC處理
圖12顯示了802.11應(yīng)用架構(gòu)FPGA頂層DAC/ADC界面循環(huán)的原理圖。 此循環(huán)包含DAC與ADC界面以及必要的處理功能,可用于接收基帶信號并將基帶信號進(jìn)行轉(zhuǎn)換以便傳輸。
數(shù)字增益、頻移和I/Q減損補(bǔ)償都會在TX信號傳輸至NI USRP DAC之前應(yīng)用到信號中。 發(fā)射信號的數(shù)字I/Q樣本會通過FIFO(TX:PreDAC)進(jìn)入循環(huán)。
在接收器端,NI USRP ADC的數(shù)據(jù)經(jīng)讀取之后進(jìn)入接收信號處理程序,以修正I/Q減損與頻移。 然后I/Q樣本會通過FIFO (RX:PostADC)傳輸至下一個(gè)處理循環(huán)。
使用內(nèi)部的環(huán)回模式可跳過RF處理程序。 一旦啟動RF處理,TX數(shù)據(jù)就會直接進(jìn)入RX處理鏈。
3.5 接收器
3.5.1 概述
接收器分成三個(gè)循環(huán),如圖13所示。
1、RX采樣抽取循環(huán)(RX Sample Decimation Loop)會抽取來自ADC的RX樣本,以盡量達(dá)到理想的I/Q采樣率,也就是80 MS/s。
2、RX同步循環(huán)(RX Sync Loop)負(fù)責(zé)完成數(shù)據(jù)包檢測、時(shí)間與頻率同步和循環(huán)前綴消除。
3、RX MAC + PHY循環(huán)則會執(zhí)行PHY層的信道估算、均衡、OFDM解調(diào)與解碼以及MAC層的CRC與地址檢查。
圖13.接收器循環(huán)
下面將進(jìn)一步討論上述三個(gè)循環(huán)。
3.5.2 接收器采樣抽取(Receiver Sample Decimation)循環(huán)
圖14為接收器采樣抽取循環(huán),用于轉(zhuǎn)換采樣率。 和DAC一樣,ADC的工作頻率為120 MS/s。和發(fā)射器一樣,接收器的處理頻率為80MS/s。所以需要使用一個(gè)3:2抽取器來連接ADC和FPGA上的接收器處理。
圖 14. RX采樣抽取循環(huán)的輸入和輸出
3.5.3 接收器同步(Receiver Synchronization)循環(huán)
圖15顯示了接收器同步循環(huán)的界面,圖16則是同步的程序框圖。
圖 15. 接收器同步循環(huán)的輸入與輸出
圖 16. TX PHY Top的程序框圖
重采樣之后,開始進(jìn)行基于L-STF架構(gòu)的同步。 該過程以Schmidl-Cox算法為基礎(chǔ)。
同步單元內(nèi)的第一個(gè)模塊會計(jì)算樣本的自動關(guān)聯(lián)。 計(jì)算自動關(guān)聯(lián)所使用的時(shí)間延遲以L-STF序列的周期性為基礎(chǔ)。 這個(gè)數(shù)據(jù)會進(jìn)一步轉(zhuǎn)換成能量歸一化和平均的關(guān)聯(lián)指標(biāo)。 輸出端處也會計(jì)算平均載波頻率偏置(Carrier Frequency Offset, CFO)估算序列。 后續(xù)模塊會使用這些輸出來生成和CFO估算值。
下一個(gè)模塊會完成L-STF同步的第二個(gè)步驟。 收到數(shù)據(jù)包后,第一個(gè)模塊輸出端的關(guān)聯(lián)指標(biāo)就會在高數(shù)值(代表L-STF字段)和低數(shù)值(代表移至先前的L-STF字段)之間轉(zhuǎn)換。 該模塊實(shí)現(xiàn)了一個(gè)差分器,可以把向下斜率轉(zhuǎn)換至峰值。 所產(chǎn)生的信號就會成為代碼中的關(guān)聯(lián)差異指標(biāo),該值也就是時(shí)序同步的指標(biāo)。
第三個(gè)模塊用于判定是否已檢測到某個(gè)數(shù)據(jù)包。 一旦收到一個(gè)結(jié)構(gòu)完整的802.11數(shù)據(jù)包,第二個(gè)模塊算出的關(guān)聯(lián)差異指標(biāo)就會顯示一個(gè)峰值,對應(yīng)于L-STF和L-LTF之間的轉(zhuǎn)換值。 閾值檢測可以在L-STF結(jié)尾和L-LTF開頭估算此位置,從而實(shí)現(xiàn)粗同步(在一個(gè)循環(huán)前綴內(nèi)完成)。如果峰值在超過特定數(shù)量的連續(xù)樣本內(nèi)保持在特定的閾值以上,此模塊就會判定檢測到802.11前導(dǎo)碼,并通過STF Found指示控件表示。
檢測到數(shù)據(jù)包之后,下一個(gè)模塊就會補(bǔ)償所有算法與實(shí)現(xiàn)延遲,將基于傳統(tǒng)短訓(xùn)練字段(L-STF)的同步信號與抽取的I/Q樣本與CFO估算序列(由第一個(gè)模塊計(jì)算而得)進(jìn)行對齊。 CFO估算會根據(jù)CFO估算序列和STF Found指示控件進(jìn)行鎖存。 LTF字段第一個(gè)(估算的)元素之前的數(shù)據(jù)樣本會標(biāo)示為無效。 這些數(shù)據(jù)流會發(fā)送至下一個(gè)模塊,也就是信道頻率偏置(CFO)修正模塊,以消除相鄰樣本之間累積起來的相位差。
下一個(gè)模塊OFDM選通器(OFDM strober)從估算的L-LTF第一個(gè)碼元開始。在每個(gè)OFDM碼元中,循環(huán)前綴(CP)樣本會標(biāo)示為無效,從而消除CP。 選通功能一直持續(xù)到數(shù)據(jù)包中估算的所有OFDM碼元完成CP消除為止。 請注意,OFDM碼元的數(shù)量在傳統(tǒng)信號(L-SIG)字段中進(jìn)行編碼,之后L-SIG會在接收鏈中完成解碼。
3.5.4 Receiver PHY+MAC循環(huán)
圖17顯示了Receiver PHY+MAC循環(huán)界面,圖18顯示了RX PHY Top和 RX MAC Top的程序框圖。
圖 17. Receiver PHY+MAC循環(huán)的輸入與輸出
處理鏈內(nèi)第一個(gè)模塊就是FFT。 FFT會將所有有效的樣本轉(zhuǎn)換至頻域,逐個(gè)OFDM碼元地進(jìn)行。
下一個(gè)模塊會處理副載波域的LTF碼元,以獲得信道響應(yīng)的近似值來進(jìn)行后續(xù)的迫零信道均衡。 該估算值會映射至兩個(gè)分量: 反向通道幅值和單位信道估算值。 使用這些分量即可降低均衡所需的位精確度。
基于信道估算,下一個(gè)模塊會通過迫零運(yùn)算來均衡802.11 OFDM碼元。 完成均衡之后,即可通過導(dǎo)頻信號評估來消除每個(gè)OFDM碼元中的殘留CFO和相位漂移。
圖18: RX PHY Top和RX MAC Top程序框圖
完成相位修正之后,接收到的樣本就會進(jìn)入OFDM反格式化器來移除所有的零子載波和導(dǎo)頻副載波,并在發(fā)射器的格式化器之前以相同的順序重新排列數(shù)據(jù)副載波。 這個(gè)反格式化器的輸出端提供了I/Q星座圖,可以傳輸至主機(jī)進(jìn)行分析并調(diào)試。
進(jìn)行反格式化之后,就會從QAM星座圖提取比特?cái)?shù)據(jù),并且去除交錯(cuò)配置。 去交錯(cuò)的比特流會進(jìn)入Viterbi解碼器進(jìn)行信道解碼。
下一個(gè)模塊會解碼并解讀L-SIG字段。 其中包含PHY參數(shù),可能會隨著每個(gè)數(shù)據(jù)包而有所差異,例如調(diào)制與編碼機(jī)制(MCS)和數(shù)據(jù)包路徑。 接收器PHY區(qū)塊會在處理鏈的前幾個(gè)階段使用此信息,例如同步單元(如3.5.3小節(jié)所述)末端的OFDM選通模塊以及本小節(jié)的大部分區(qū)塊。 根據(jù)L-SIG估算的參數(shù)值可通過這些區(qū)塊的反饋路徑來提供。 代碼設(shè)計(jì)可確保參數(shù)會根據(jù)這些數(shù)值正確更新。 舉例來說,對于每個(gè)數(shù)據(jù)包,L-SIG會使用已知的MCS(BPSK,速率-1/2代碼)來發(fā)送。 參數(shù)必須根據(jù)L-SIG的估算值進(jìn)行更新,并且應(yīng)用至數(shù)據(jù)負(fù)載內(nèi)的OFDM碼元。
最后,解碼后的比特經(jīng)過解密轉(zhuǎn)送至MAC。
MAC端會根據(jù)MAC PDU所包含的四個(gè)FCS字節(jié)執(zhí)行CRC檢查。 之后會檢查Type字段,以判斷是否接收到DATA數(shù)據(jù)包或ACK數(shù)據(jù)包。 然后將接收數(shù)據(jù)包的目標(biāo)地址與站點(diǎn)的設(shè)備地址進(jìn)行對比檢查。 如果CRC檢查和地址檢查通過的話,就會把接收到的數(shù)據(jù)包顯示給主機(jī)。 如果是DATA數(shù)據(jù)包的話,接收和提取的MAC SDU位字節(jié)加上源位址會通過target-to-host DMA FIFO RX: PacketBytes一同發(fā)送至主機(jī)。 接收到的數(shù)據(jù)包的大小也會通過target-to-host DMA FIFO RX: NumPacketBytes提供給主機(jī)。
4. 主機(jī)實(shí)現(xiàn)
802.11應(yīng)用架構(gòu)包含了一個(gè)頂層主機(jī).gvi,用于配置FPGA、與FPGA交換負(fù)載數(shù)據(jù)以及監(jiān)控系統(tǒng)狀態(tài)。
左上方的指示控件和輸入控件均已初始化。 之后就會生成一個(gè)會話,其中包含所有必要處理的參考信息。 所有循環(huán)在執(zhí)行期間都會使用這個(gè)會話簇來交換數(shù)據(jù)或訪問FPGA資源。 只要按下停止(Stop)按鈕或出現(xiàn)錯(cuò)誤,所有的While循環(huán)都會停止運(yùn)行,會話中的所有處理操作都會關(guān)閉。
可能的參數(shù)設(shè)置請查看項(xiàng)目的文檔。
圖19. Host Top-Level VI程序框圖
4.1 主循環(huán)
此循環(huán)會根據(jù)主機(jī)前面板的當(dāng)前設(shè)置來配置FPGA。 循環(huán)會將發(fā)射隊(duì)列(Transmit Queue)的數(shù)據(jù)傳輸至FPGA發(fā)射器,并把FPGA接收器的解碼數(shù)據(jù)放入接收隊(duì)列(Receive Queue)。 如果系統(tǒng)不是在RF環(huán)回模式運(yùn)行,就會忽略發(fā)射或接收部分。 主循環(huán)還會進(jìn)一步更新主機(jī)前面板的顯示項(xiàng)目,以反映當(dāng)前的系統(tǒng)狀態(tài)。
4.2 自動增益控制
主循環(huán)會連續(xù)監(jiān)控所收到的信號功率,并且相應(yīng)地調(diào)整RX路徑的增益。
4.3 RF與802.11 IP配置
此循環(huán)用于設(shè)置頻率、功率電平和增益,可針對發(fā)射器和接收器配置NI USRP RF前端裝置。 此外還會更新前面板來顯示目前的RF狀態(tài)。
4.4 吞吐量測量
數(shù)據(jù)通過UDP送出去時(shí),此循環(huán)就會監(jiān)控接收器端的吞吐量。
4.5 UDP數(shù)據(jù)讀寫
一旦啟用上循環(huán),即可處理接收隊(duì)列的數(shù)據(jù),并且通過UDP將數(shù)據(jù)發(fā)送出去。 下循環(huán)可以把隨機(jī)數(shù)據(jù)的常數(shù)數(shù)據(jù)包(PN模式)或接收到的UDP數(shù)據(jù)包(UDP 模式)放入發(fā)射隊(duì)列。 主循環(huán)會使用這兩個(gè)隊(duì)列來與FPGA交換數(shù)據(jù)。
4.6 停止執(zhí)行
執(zhí)行主機(jī)VI時(shí),所有循環(huán)都會并行運(yùn)行。 只要按下停止(Stop)按鈕,該操作就會在最后一個(gè)循環(huán)被捕獲,同時(shí)通過其他隊(duì)列同步至所有其他循環(huán)。 每個(gè)循環(huán)都包含連接至循環(huán)條件終端的檢錯(cuò)停止(check stop)模塊,如果按下停止按鈕或出現(xiàn)錯(cuò)誤,就會退出該循環(huán)。
5. 結(jié)論
LabVIEW Communications 802.11應(yīng)用架構(gòu)1.0提供了兩個(gè)在NI SDR硬件上運(yùn)行的站點(diǎn)之間的實(shí)時(shí)802.11鏈路。此應(yīng)用架構(gòu)通過利用現(xiàn)有鏈路和只需修改或添加所需部分,可幫助用戶專心于特定領(lǐng)域的研究。
基于LabVIEW的靈活性和該框架的模塊化特性,用戶可輕松互換設(shè)計(jì)的某些部分,以便針對未來的無線系統(tǒng)開發(fā)新的算法。除此之外,由于LabVIEW固有地連接了主機(jī)和FPGA,設(shè)計(jì)還可進(jìn)行分區(qū),以便充分利用FPGA的并行執(zhí)行功能和主機(jī)的計(jì)算性能。
這個(gè)架構(gòu)為無線研究和原型開發(fā)提供了豐富的起點(diǎn)。 立即下載LabVIEW Communications評估版: ,開始您的開發(fā)。
如有問題, 請發(fā)送電子郵件至 labview.communications@ni.com 。
6. 縮略詞表
ACK
Acknowledge(確認(rèn))
AGC
Automatic Gain Control(自動增益控制)
BCC
Binary Convolutional Code(二進(jìn)制卷積碼)
BPSK
Binary Phase Shift Keying(二進(jìn)制相移鍵控)
CP
Cyclic Prefix(循環(huán)前綴)
CRC
Cyclic Redundancy Check(循環(huán)冗余校驗(yàn)碼)
DMA
Direct Memory Access(直接內(nèi)存訪問)
FCS
Frame Check Sequence(幀校驗(yàn)序列)
FFT
Fast Fourier Transform(快速傅立葉變換)
FIFO
First In First Out(先進(jìn)先出)
FPGA
Field Programmable Gate Arrays(現(xiàn)場可編程門陣列)
GVI
Graphical Virtual Instrument(圖形化虛擬儀器)
IEEE
Institute of Electrical and Electronics Engineers(電氣電子工程師協(xié)會)
IFFT
Inverse Fast Fourier Transform(快速傅立葉逆變換)
I/Q
Inphase/Quadrature(同相/正交)
ISI
Intersymbol Interference(碼間干擾)
L-LTF
Legacy Long Training Field(傳統(tǒng)長訓(xùn)練字段)
LSB
Least Significant Bit(最低有效位)
LTF
Long Training Field(長訓(xùn)練字段)
L-SIG
Legacy Signal Field(傳統(tǒng)信號字段)
L-STF
Legacy Short Training Field(傳統(tǒng)短訓(xùn)練字段)
MAC
Medium Access Control(媒體訪問控制)
MCS
Modulation and Coding Scheme(調(diào)制和編碼機(jī)制)
MS/s
Mega Samples Per Second(每秒兆次采樣)
OFDM
Orthogonal Frequency Division Multiplexing(正交頻分復(fù)用)
PDU
Protocol Data Unit(協(xié)議數(shù)據(jù)單元)
PHY
Physical Layer(物理層)
QAM
Quadrature Amplitude Modulation(正交調(diào)幅)
QPSK
Quaternary Phase Shift Keying(四進(jìn)制相移鍵控)
RX
Receiver(接收器)
SDR
Software Defined Radio(軟件無線電)
SDU
Service Data Unit(服務(wù)數(shù)據(jù)單元)
SIFS
Short Inter Frame Space(短幀幀間間隔)
SISO
Single Input Single Output(單輸入單輸出)
STF
Short Training Field(短訓(xùn)練字段)
TX
Transmitter(發(fā)射器)
UDP
User Datagram Protocol(用戶數(shù)據(jù)報(bào)協(xié)議)
VHT
Very High Throughput(超高吞吐量)
查看802.11應(yīng)用架構(gòu)的價(jià)格信息
查看LabVIEW Communications系統(tǒng)設(shè)計(jì)套件的價(jià)格信息
評論
查看更多