(蘇州大學 電子信息學院,江蘇 蘇州 215006)
近年來,隨著無線網絡的不斷發(fā)展,針對不同應用場景下的節(jié)點位置不固定、傳輸速率不確定的需求尤為突出。因此,對無線網絡通信協議的要求提出了新挑戰(zhàn)。為滿足以上需求,國際上提出了多種無線通信標準,通過采用不同協議來解決距離或速率的問題。業(yè)界存在支持多種標準的商用化芯片,如TI公司的CC2652系列,該系列芯片支持ZigBee與WiFi協議,雖能解決速率與距離問題,但芯片輻射與功耗較大,不適用于人體通信等領域。芯科科技的EFR32MG系列和Dialog公司的DA14691這兩個系列芯片均支持ZigBee和藍牙協議,但這兩種協議均無法滿足高速率需求。這些商用芯片支持兩個以上的標準協議方案,但均無法很好解決距離與速率的問題。在文獻報道方面,文獻[1]基于軟件無線電平臺GNU Radio實現了IEEE802.15.4協議標準的收發(fā),文獻[2]采用40 nm COMS工藝設計了支持ZigBee、藍牙和無線體域網的數字基帶芯片,文獻[3]采用130 nm COMS工藝設計了一款基于無線體域網的基帶收發(fā)芯片。雖然有很多文獻研究IEEE802.15.4和無線體域網的,卻少有同時支持IEEE802.15.4與IEEE802.15.6的研究報道。因此,兩者的結合很有研究價值。IEEE802.15.6的高速率、短傳輸距離的特性與無線體域網絡(以人體中心通信為例)十分契合,而采集較少人體特征信息或需遠距離通信的情況下可以選擇具有低速率、遠傳輸距離特性的IEEE802.15.4協議,當采集多路人體生理參數特性信息時數據量較大,可以采用支持較高速率的IEEE802.15.6協議進行無線通信。因此,研究支持IEEE802.15.4/6兩種協議的無線通信系統十分必要。
本文提出了一種基于GNU Radio+USRP軟件無線電平臺的支持IEEE802.15.4和IEEE802.15.6兩種收發(fā)協議的通信系統。該系統具有寬頻帶、高靈活度的特性,可以根據實際需要在兩種協議之間靈活切換。由于軟件無線電系統具有可配置性,因此有利于后續(xù)系統的改進和拓展,降低了升級維護成本,為實現雙協議芯片提供了理論支撐。
該通信系統采用GNU Radio&USRP平臺,其結構如圖1所示,其中基帶信號處理模塊在GNU Radio中采用軟件方式實現,數字中頻和射頻部分分別由USRP N210母板和WBX-v4射頻子板的硬件電路實現。
圖1 雙協議通信系統結構圖
GNU Radio是一種基于Linux系統的開源軟件無線電平臺,基于其高度開放性、靈活性和通用性等特點,可以模擬現存大多數通信系統,因此獲得了國內外眾多學者的青睞。GNU Radio平臺采用C++與python相結合方式進行編程,利用C++語言高速率特點編寫各種底層的信號處理模塊(GNU Radio中定義為block),python語言實現各模塊間的聯合調度,同時采用swig工具將C++模塊綁定到python流圖中[4],從而實現完整通信流程。GNU Radio平臺自帶的模塊涵蓋了從基礎的數學運算到復雜數字濾波器、信道編碼器和調制解調器等許多其他通信系統所需的應用,開發(fā)者可以根據自身需要選擇合適的模塊[5],同時也可在其基礎上自行開發(fā)所需模塊。
GNU Radio支持多種硬件平臺,常用的有USRP、Hack RF以及RTL 2832等。其中,USRP由于其寬頻帶和低成本以及與GNU Radio的高契合度而成為廣大研究人員的首選方案。
完整的USRP設備由母板和射頻子板組成:母板主要實現信號的中頻處理部分,采用Altera公司的FPGA芯片作為內核通過Verilog語言進行開發(fā)并實現相應的功能[6];射頻子板則實現數字中頻信號到射頻信號的轉換,同時采用25 MHz~2.2 GHz的可調寬頻段設計,以適用于不同通信協議。用戶通過GNU Radio內置UHD模塊設置所需發(fā)射頻率、采樣速率等參數,即可完成USRP與GNU Radio之間通信的建立,最后在GNU Radio中運行編寫好的程序流圖即可模擬所需的完整通信系統。
IEEE802.15.4標準定義了一個MAC層和多個PHY層,本文采用了其中的O-QPSK PHY層。
2.1.1 PHY層幀結構
IEEE802.15.4 PHY層幀結構如圖2(a)所示,PHY層由三部分組成:第一部分為同步幀頭(SHR),由前導碼和幀定界符(Start of Frame Delimiter,SFD)組成,前導碼長4 B,數據位均為“0”,SFD由單字節(jié)組成,其值為“11100101”;隨后為PHY報頭(PHR),由幀長度信息(7 b)和1 b保留位組成;最后部分為PSDU(Physical Layer Service Data Unit),即PHY層數據服務單元,該部分包含完整的MAC層幀載荷。幀中所有數據在發(fā)射的時候都需要經歷2.1.3小節(jié)所述的OQPSK擴頻調制過程。
圖2 PHY層幀結構
2.1.2 MAC層幀結構
MAC層,即媒體訪問控制協議數據單元(MAC Protocol Data Unit,MPDU),包含媒體控制訪問報頭(MAC Header,MHR)、MAC層有效載荷(payload)和幀尾效驗序列(Frame Check Sequence,FCS)三部分。MHR包含幀長度以及源、目的地址等不同內容。payload部分即所要傳輸的實際數據,根據協議規(guī)定payload長度應在0~255 B之間。FCS采用CRC-16校驗方式,協議規(guī)定的生成多項式如式(1)所示:
G(x)=x16+x12+x5+1 。
(1)
將MHR和payload作為輸入,與G(x)進行模二除法運算,所得余數即為CRC-16的校驗碼。接收端將接收數據再次與G(x)進行模二除運算,若余數為0則通過校驗,否則判定為錯誤幀,丟棄該幀。發(fā)送端,MAC層組包器只需將待發(fā)送數據按上述幀結構進行組包,并發(fā)送給PHY層組包器進行后續(xù)組包與調制。接收端,MAC層將接收數據按照上述幀結構進行數據解包,并進行CRC校驗,恢復出有效信息。其中組包與解包都是通過MAC幀各部分的國定長度將對應值寫入/提取,并根據寫入/提取的值生成/校驗數據幀。
2.1.3 OQPSK調制
根據協議規(guī)定,OQPSK PHY采用直序擴頻方式,以字節(jié)為單位,將PHY幀每字節(jié)的高四位[b7,b6,b5,b4]和低四位[b3,b2,b1,b0]拆分為兩個符號(symbol),分別映射成協議碼表中16個16 b的擴頻序列之一,其中低四位先發(fā)送,高四位后發(fā)送。再經串并轉換模塊將數據分為I/Q兩路,同時將數據由[0,1]映射成為[-1,1],采用內插濾波器四倍插值,最后正弦成形,同時將Q路信號延時1/2個碼元長度,以達到正交調制的目的。經上述調制后,將數據流輸入UHD模塊中控制USRP母板對數據流進行DAC轉換,變?yōu)槟M中頻信號后由射頻子板中的混頻器將信號頻譜搬移至射頻頻段并經天線將信號輻射出去,完成發(fā)射任務。
2.1.4 數據解調與解包
由于半正弦成形的OQPSK調制與MSK調制方式類似,所以采用低中頻接收機進行接收。實際在GNU Radio中設計的解調流程框圖3所示。
圖3 IEEE802.15.4解調流程
USRP接收的數據先進入調頻解調模塊,該解調模塊將輸入的I+jQ的復數信號的共軛信號與其延時一個碼元的信號進行共軛相關運算,計算公式如(2)所示:
(2)
式中:ej[θ(k)-θ(k+d)]為相鄰碼元的相位偏轉值。隨后時鐘恢復模塊采用M&M定時誤差跟隨檢測算法,通過實時采樣輸入數據并通過數字環(huán)路濾波器鎖定相位偏移誤差使其收斂,從而輸出合適的峰值采樣信號,有效消除相位誤差。解包器內包含16組根據擴頻序列計算出的相位序列,依據OQPSK的調制原理,相鄰碼之間的相位變化只能為±90°,即ej[θ(k)-θ(k+d)]=±j。由于OQPSK擴頻碼為恒定16組,其每個碼元之間的相位偏轉關系可以提前計算出來。如擴頻碼PN0=0011_1110_0010_0101,則分為I、Q兩路后,PN0_I=0111_10100,PN0_Q=0110_0011。這兩路數據經發(fā)射端正弦成形后的波形如圖4所示,以T為間隔進行計算即可得到PN0的16 b間相鄰擴頻碼元間的相位變化關系,即PN0_Phase=[j,j,j,-j,j,-j,-j,-j,j,j,-j,-j,-j,j,-j]。對于軟件無線電而言,符號同步是一大難點,為此設計了基于滑動窗口的算法,將接收信號逐比特與PN0-16的相位偏轉表對比,直至匹配到PN0_Phase的值,視為檢測到數據幀,進入符號解包狀態(tài),并基于接收幀中的幀長信息確認幀尾位置,完成解包并將PHY幀內容去除,MAC層幀數據發(fā)送至MAC模塊進一步處理。同時解包器模塊還定義了一個可調誤差,表示接收到的16 b擴頻碼最多可以誤差比特數,即錯誤相位數小于該值則認為接收到對應PN碼,以增加系統魯棒性。
圖4 擴頻碼PN0相位偏轉圖
同樣,IEEE802.15.6標準也定義了一個支持多種PHY的MAC層,例如窄帶(Narrow Band,NB)PHY、超寬帶(Ultra Wide Band,UWB)PHY和人體通信(Human Body Communications,HBC)PHY等。出于泛用性和成本考慮,本文采用國際上使用范圍最廣的NB PHY。
2.2.1 PHY/MAC層幀結構
NB PHY層的幀結構圖2(b)所示。PHY數據單元(PHY Protocol Data Unit,PPDU)由三部分組成:PLCP(Physical Layer Convergence Protocol)前導碼、PLCP報頭和PHY層數據載荷。PLCP前導碼由長短兩種同步序列碼組成,用于接收機定時同步和載波偏移恢復。PLCP報頭包含接收機解調所需信息,為保護這些信息,PHY報頭后加入了幀校驗(Header Check Sequence,HCS),采用CRC-4方式由PHY報頭數據作為輸入生成4 b的幀校驗碼。CRC-4的生成多項式如式(3)所示,實現方式與2.1節(jié)中CRC-16類似,此處不再展開敘述。
G(x)=x4+x+1 。
(3)
在HCS之后,為提升系統魯棒性,協議采用BCH(51,63)編碼的縮短版本BCH(19,31)作為前向糾錯編碼,生成多項式為如式(4)所示:
G(x)=x12+x10+x8+x5+x4+x3+1 。
(4)
將15 b的PHY報頭和產生的4 b的HCS作為輸入生成12 b的前向糾錯碼并添在HCS后發(fā)送,該糾錯碼最多能糾正2 b的數據位,提高了接收端的精確度。具體的BCH編解碼實現參考了文獻[3],由于篇幅限制,此處不詳細說明。PSDU部分為完整的MAC層載荷(即MAC層數據單元 MPDU)。由于與IEEE802.15.4的MAC層幀結構、組包、解包等類似,這里不再重復介紹。
2.2.2 DBPSK與D8PSK調制
IEEE802.15.6 協議基于NB PHY定義了幾種不同的頻段范圍,基于USRP的寬頻帶特性,可以模擬絕大多數頻段NB PHY的通信情況。為了更好地說明調制過程,表1給出了402~405 MHz頻段下的NB PHY調制參數,其中,k為有效信息數,n為單個碼片總信息數。
表1 IEEE802.15.6 402~405 MHz NB PHY調制參數
為了驗證系統具有普適性,本文采用了M=2和M=8兩種不同的調制速率來體現系統的延展性。實際設計的程序流程如圖5(a)所示。
圖5 IEEE802.15.6系統數據流程圖
首先MAC層模塊數據封裝成MAC幀,然后送入PHY組包器生成完整PHY數據幀,當取M=2時,進行DBPSK調制;取M=8時,PLCP部分進行DBPSK調制和PSDU進行D8PSK調制。DPSK調制方式因其良好的抗噪聲性能及較高的數據速率而被廣泛應用于數字通信系統中,它將輸入比特進行差分編碼并映射至同相支路(I)和正交支路(Q)。DPSK信號的表達式為
s(t)=sin(ωct+φk),φk=φk-1+Δφk。
(5)
式中:φk-1為上一碼元的絕對相位,Δφk為當前碼元與上一碼元之間的相位差。通過上述公式,DPSK調制器將輸入比特流的相對相位轉換為絕對相位,消除了碼間串擾,同時有效杜絕了上一碼元錯誤對下一碼元的影響(解調端只需考慮當前相位與上一碼元相位間的差值)。根據公式(5)可以得出I、Q路的表達式,如公式(6)所示:
(6)
表2為D8PSK 比特流與相對相位之間的映射關系,采用格雷碼映射方式進一步增加了系統的穩(wěn)定性。DBPSK僅需映射至3/π或2/π,此處不再列表說明。
表2 二進制序列與相對相移關系
完成映射之后,將I、Q路數據進行成形濾波即可完成DPSK調制,后經UHD控制USRP完成后續(xù)信號處理并經過天線將信號輻射出去。
2.2.3 數據解調與解包
DPSK信號為多進制相移信號,可采用相干解調和差分解調等方法。差分解調雖不需要恢復同步載波,易于實現,但是其抗噪聲性能與相干解調相去甚遠。為提升系統性能,本文采取相干解調的方式。具體的解調過程如下:
Step1 解調時將接收到的信號乘以兩倍的幅值的相干載波。令
x(t)=s(t)·2sin(ωct)= 2sin(ωct+φk)·sin(ωct)=
cosφk-cos(2ωct+φk),
(7)
y(t)=s(t)·2cos(ωct)=2sin(ωct+φk)·cos(ωct)=
sin(2ωct+φk)+sinφk。
(8)
Step2 低通濾波器濾除二階高頻分量,則可得Ik=cosφk,Qk=sinφk。
Step 1與Step 2由USRP完成,經過Step 1與Step 2,得到了Ik與Qk的波形,但是仍需確定最佳采樣位置并且去除由于多徑干擾等帶來的相位和頻率偏移同時去除噪聲信號,剩下的步驟在GNU Radio軟件平臺上實現。軟件端解調流程如圖5(b)所示。
Step3 進行定時同步,找到最佳采樣位置。采用文獻[7]中提出的多相時鐘同步恢復算法,設計了兩個濾波器組,其中一組濾波器作為信號脈沖整形的匹配濾波器(例如根升余弦濾波器),另一組為第一組濾波器的導數濾波器。該算法通過最小化濾波信號的導數值來進行定時同步,使得信噪比(Signal-to-Noise Ratio,SNR)最大化同時保證了符號間干擾(Inter-symbol Interference,ISI)最小化。
Step4 消除多徑效應的影響。采用CMA盲均衡算法來消除其余路徑的信號分量干擾。由于CMA算法對相位不敏感的特性,即使存在一定相位偏移,該算法依舊可以很好地將信號收斂到單位圓上,從而最大化抑制多徑干擾。
Step5 進行頻率和相位進行精確地校正。采用數字COSTAS環(huán)進行頻率和相位的精確校正,使得輸出信號的相偏與頻偏最小化。
Step6 進行DPSK解映射。通過式(7)和式(8)可得
Ik′=cos(Δφk)=cos(φk-φk-1)=
cosφkcosφk-1+sinφksinφk-1=
IkIk-1+QkQk-1,
(9)
Qk′=sin(Δφk)=sin(φk-φk-1)=
sinφkcosφk-1-cosφksinφk-1=
QkIk-1-IkQk-1。
(10)
Ik′、Qk′即為相對相位的正余弦值,根據符號與相位映射關系表即可將Ik′、Qk′映射回比特流。
Step7 進行數據解包。方式類似于OQPSK解包,首先根據可變長度的滑動窗口來逐比特搜尋前導碼,找到前導碼后進入解包狀態(tài),并通過解包得到的幀數據進行BCH與CRC校驗與幀完整性校驗,若校驗成功則表示接收到正確幀信息。這部分在packe_sink模塊內實現。
本次設計采用GNU Radio+USRP平臺實現了IEEE802.15.4、IEEE802.15.6雙協議數字收發(fā)系統,包含兩種協議所規(guī)定的MAC層PHY層內容。整個系統基于已有模塊和自行設計的模塊搭建。實際設計的GRC(GNU Radio可視化界面)流圖如圖6所示,其中的MAC模塊和PHY模塊均包含完整的收發(fā)功能。由于PHY層的復雜性,我們隱藏了內部細節(jié)并封裝到單獨模塊中,其內部功能與第2節(jié)所述一致。SEL_Protocol為模式選擇模塊,可以通過sel_mod參數進行IEEE802.15.4和IEEE802.15.6協議的切換。兩個UHD模塊實現與USRP通信,可以根據輸入的參數控制USRP的數據速率以及中心頻率等參數。此處,將IEEE802.15.4的數據速率設置為了500 kb/s(數據速率250 kb/s,采用4~16擴頻后經I、Q分路使得數據速率擴展為500 kb/s),IEEE802.15.6的數據速率設置為187.5 kb/s、750 kb/s與1 500 kb/s。Random Message Source模塊產生數據長度可變的隨機比特流作為MAC層數據輸入,WireShark與File Sink模塊對接收的數據幀進行實時捕捉并保存到文件中以便進行結果分析。
圖6 雙協議收發(fā)系統GRC流圖
為更好體現系統的性能,在采用隨機的數據發(fā)生器產生連續(xù)的不同長度的數據作為MAC層的輸入,實際上該系統也可和很多已知的高層協議棧進行通信(例如rime stack等)。具體發(fā)射端流程如下:首先將產生的隨機數據流送入MAC層模塊,在該模塊按協議規(guī)定的格式組包并送入PHY層模塊進行后續(xù)的物理層組包和數據調制,然后通過“UHD:USRP sink”模塊將以調數據發(fā)送至USRP中進行空中傳輸。
在接收端,根據需要設定合適的USRP接收頻率、信號增益和采樣速率等參數后,數據流被送入PHY層進行定時同步、相位和頻率同步等模塊恢復出以調數據流。之后將恢復的信號基于不同調制方式進行解映射,并基于兩種不同的協議分別進行幀校驗,將校驗通過的數據發(fā)送至MAC層模塊進行后續(xù)的MAC解包,最終MAC層APP_OUT端口輸出的即為原始隨機數據流。
圖7為收發(fā)系統實物圖,兩臺 USRP設備使用以太網口直接與兩臺PC相連。為更好地測試系統性能,在發(fā)射端添加不同電平高斯白噪聲來調節(jié)SNR。為確保結果可靠性,針對不同的SNR,均傳輸1 000幀數據來進行接收端誤包率(Packet Error Ratio,PER)分析。采用WireShark網絡嗅探器對接收的數據實時抓包,對比輸入輸出數據流可以得出兩種協議的PER。
圖7 雙協議系統實物圖
圖8是WireShark軟件在SNR為9 dB且數據速率1 500 kb/s下實時捕捉的數據包,上方為發(fā)送數據,下方為接收數據。對比收發(fā)數據可知其基本一致,從而驗證了系統的可靠性。
圖8 WireShark實時數據包
圖9為不同SNR下進行實驗的結果。分析實驗結果可發(fā)現,隨著SNR的提升,兩種協議的PER顯著降低,SNR為6 dB時,IEEE802.15.4協議PER已低于1%;SNR為8 dB時,IEEE802.15.6協議的PER低于10%,滿足協議通信需求。進一步分析發(fā)現IEEE802.15.4協議的PER遠低于IEEE802.15.6協議,這是因為IEEE802.15.4協議采用OQPSK直序擴頻調制方式并且速率相對更低,因此降低了對系統SNR的要求??紤]到IEEE802.15.6短傳輸距離的特性,實際系統SNR不會太低,因此能滿足實際通信需求,從而驗證了雙協議系統的可行性。
圖9 接收端誤包率曲線圖
IEEE802.15.4和IEEE802.15.6協議都是十分成熟且用途廣泛的無線標準,兩者的系統化聯合更在人體醫(yī)學監(jiān)測等領域有著廣闊的前景和應用空間,對于人體醫(yī)療設備的發(fā)展有著重要意義。本文在現有的GNU Radio和USRP聯合軟件無線電平臺的基礎上,結合內部模塊及自行設計的模塊,成功地在該平臺上將IEEE802.15.4和IEEE802.15.6協議相結合,完成了整套雙協議收發(fā)平臺的搭建和驗證。實驗結果表明了這兩種協議相結合的可行性,為日后芯片化、商業(yè)化研發(fā)起到了引導作用。后續(xù)將在該平臺的基礎上將數字基帶移植到ASIC設計上,提升系統實用性。