段紅亮,劉 浩,楊志遠(yuǎn),任 斌,陳曉光
(1.北京航天長(zhǎng)征飛行器研究所,北京 100076;2.西北工業(yè)大學(xué) 機(jī)電學(xué)院,西安 710072)
當(dāng)今無(wú)線通信領(lǐng)域內(nèi),多種通信體系并存,各種標(biāo)準(zhǔn)競(jìng)爭(zhēng)激烈,頻譜資源緊張,傳統(tǒng)的以硬件為主、面向特定用途機(jī)制的不足日益突顯等一系列問(wèn)題制約著無(wú)線通信技術(shù)的發(fā)展,而具備通用性、開放性和全面可編程性的軟件無(wú)線電技術(shù)則適應(yīng)了時(shí)代發(fā)展的需求[1]。軟件無(wú)線電由J.Mitola于1992年首次提出[2],全稱為軟件定義的無(wú)線電,即Software Defined Radio,SDR。其核心思想是:構(gòu)造一個(gè)具有開放性、標(biāo)準(zhǔn)化、模塊化的通用硬件平臺(tái),使A/D和D/A轉(zhuǎn)換器盡可能靠近天線,將其他各種功能,如物理層和協(xié)議棧等都由軟件來(lái)實(shí)現(xiàn)。理想的軟件無(wú)線電結(jié)構(gòu)如圖1所示。
圖1 理想的軟件無(wú)線電結(jié)構(gòu)
近年來(lái)SDR已經(jīng)獲得了迅猛的發(fā)展,然而由于受到硬件性能和軟件處理時(shí)延等諸多因素的限制,如寬帶天線、高速A/D(D/A)、高吞吐量總線架構(gòu)以及不同編程語(yǔ)言的實(shí)時(shí)性等,SDR存在著多種問(wèn)題[3-4],目前硬件的性能尚未達(dá)到理想SDR的要求,因此,如何在現(xiàn)有的有限軟硬件性能的限制下,盡可能實(shí)現(xiàn)SDR的功能成為了當(dāng)今SDR通信原型平臺(tái)的熱點(diǎn)。
基于通用硬件架構(gòu)的平臺(tái)代表了SDR的發(fā)展趨勢(shì),但是由于通用平臺(tái)在處理速度、吞吐量及實(shí)時(shí)性方面的限制,基于通用平臺(tái)的SDR研究難以獲得廣泛的應(yīng)用可行性。隨著近幾年來(lái)通用硬件性能的飛速提升和軟件技術(shù)的發(fā)展,微軟亞洲研究院于2009年推出了基于普通PC和Windows操作系統(tǒng)的通用SDR平臺(tái)——Sora,它實(shí)現(xiàn)了IEEE 802.11 a/b協(xié)議,采用一系列技術(shù)較好地解決了如何在通用平臺(tái)和非實(shí)時(shí)操作系統(tǒng)中研究開發(fā)SDR的難題[5]。Sora平臺(tái)實(shí)現(xiàn)了基于CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)接入機(jī)制的802.11 a/b協(xié)議,并實(shí)現(xiàn)了點(diǎn)與點(diǎn)之間的通信[5]。然而,當(dāng)采用多點(diǎn)構(gòu)建多址接入網(wǎng)絡(luò)時(shí),由于這些接入點(diǎn)之間不存在統(tǒng)一的時(shí)鐘,無(wú)法實(shí)現(xiàn)網(wǎng)絡(luò)同步,因此難以模擬實(shí)時(shí)性的多址接入,如GSM,TD-LTE等TDMA特性的接入系統(tǒng)。目前商用的無(wú)線通信系統(tǒng)中的網(wǎng)同步(也稱為時(shí)鐘同步)利用GPS(Global Positioning System)等作為基站同步時(shí)鐘源,這是TDMA (如GSM)或是CDMA(IS-95)等系統(tǒng)的首選方案,另外相鄰基站間的時(shí)鐘同步直接影響到越區(qū)切換的成功率,也是CDMA系統(tǒng)中能夠?qū)崿F(xiàn)軟切換的重要前提之一。
在此提出了一種基于通用硬件平臺(tái)的軟時(shí)鐘同步實(shí)現(xiàn)機(jī)制,相比于GPS等“硬”時(shí)鐘同步,該機(jī)制稱之為軟時(shí)鐘同步,它在現(xiàn)有Sora原型平臺(tái)上實(shí)現(xiàn)了TDMA接入方式的模擬蜂窩通信。
在數(shù)字通信系統(tǒng)中,同步包括載波同步,碼元同步,群同步和網(wǎng)同步4種[6]。載波同步和碼元同步是解調(diào)時(shí)所必需的,進(jìn)一步是群同步(或稱為幀同步),它是用來(lái)識(shí)別信息分組,如一個(gè)完整的物理幀等,如圖2所示,上述三種是點(diǎn)對(duì)點(diǎn)之間成功通信所必需取得的同步,而網(wǎng)同步則描述了通信網(wǎng)中所有參與者的時(shí)鐘關(guān)系,稱之為時(shí)鐘同步,使得在整個(gè)通信網(wǎng)內(nèi)有一個(gè)統(tǒng)一的時(shí)間節(jié)拍標(biāo)準(zhǔn),它反映了基站和終端、多終端之間的協(xié)作關(guān)系,是構(gòu)成數(shù)字蜂窩網(wǎng)和多用戶調(diào)度的基礎(chǔ)。時(shí)鐘同步又分為基站間的時(shí)鐘同步和蜂窩小區(qū)內(nèi)的時(shí)鐘同步兩種。在現(xiàn)有移動(dòng)通信系統(tǒng)中,相鄰小區(qū)的基站之間必須取得時(shí)鐘同步,因?yàn)闀r(shí)鐘同步是影響越區(qū)切換的重要因素之一。且對(duì)于那些TDD模式的蜂窩系統(tǒng),在每個(gè)蜂窩小區(qū)內(nèi),每個(gè)終端必然也要與基站取得時(shí)鐘同步,否則無(wú)法正常接入系統(tǒng),例如基站會(huì)連續(xù)指示每個(gè)連接狀態(tài)下的終端上行時(shí)間提前量,即TA(timing advanced)補(bǔ)償信號(hào)的空間傳播延時(shí)從而在基站取得時(shí)鐘同步[7]。
圖2 TDMA蜂窩通信中的四種同步
基于通用硬件架構(gòu)的Sora作為仿真平臺(tái)(如圖3所示)搭建仿真系統(tǒng)場(chǎng)景,仿真場(chǎng)景中存在一個(gè)單獨(dú)的基站(BS),以它的時(shí)鐘作為蜂窩小區(qū)的基準(zhǔn)時(shí)鐘,其他平臺(tái)作為終端(UE)取得與基站的時(shí)鐘同步。為簡(jiǎn)化仿真復(fù)雜度且不失一般性,本文采用一基站、兩終端的簡(jiǎn)單蜂窩場(chǎng)景,設(shè)計(jì)幀長(zhǎng)為10 ms,每幀包含有10個(gè)子幀,每個(gè)子幀1 ms,#0子幀基站用來(lái)發(fā)送一個(gè)特殊MAC幀(軟同步序列,software synchronization sequence,SSS),SSS中包含了時(shí)間提前量TA、幀號(hào)和上下行幀配置等信息,具體場(chǎng)景和幀配置如圖3所示。
圖3 模擬TDMA蜂窩通信場(chǎng)景
基于通用CPU平臺(tái)的軟件無(wú)線電原型平臺(tái)中實(shí)現(xiàn)網(wǎng)同步必須具備兩個(gè)條件:一是要有一個(gè)實(shí)時(shí)高精度的時(shí)鐘源;二是每個(gè)時(shí)鐘要取得同步??紤]到采用GPS的不足和SDR的可擴(kuò)展性問(wèn)題,由軟件生成一個(gè)時(shí)鐘源來(lái)取代GPS等外接時(shí)鐘源是較優(yōu)的選擇。
相比于GPS或晶振等“硬”時(shí)鐘源,由軟件生成的時(shí)鐘源有以下三方面優(yōu)勢(shì):1)時(shí)鐘的頻率在其精度允許范圍內(nèi)任意可調(diào);2)程序處理軟時(shí)鐘中斷的系統(tǒng)開銷小于I/O硬中斷;3)便于SDR的集成與交互。然而如何在非實(shí)時(shí)操作系統(tǒng)(如Windows)中實(shí)現(xiàn)實(shí)時(shí)的、高精度的軟時(shí)鐘是現(xiàn)代操作系統(tǒng)的一大難題[8]。intel提供了一種直接提取CPU時(shí)鐘運(yùn)行周期的技術(shù)—RDTSC,它可以達(dá)到ns級(jí)的時(shí)間精度[9],然而在多核的操作系統(tǒng)上該技術(shù)的精度不能夠保證,原因是它每次讀取的CPU邏輯核可能不相同,而多個(gè)CPU核之間并不完全均衡,時(shí)鐘運(yùn)行周期數(shù)一般不相等,所以RDTSC指令讀取的數(shù)據(jù)可能存在著較大的誤差,另外非實(shí)時(shí)操作系統(tǒng)中一旦將運(yùn)行著RDTSC功能的線程調(diào)度出當(dāng)前CPU核,也就無(wú)法保證實(shí)時(shí)性,例如Windows的調(diào)度時(shí)間片大小約為10 ms[8]。
文獻(xiàn)[5]中提出了一種獨(dú)占性線程技術(shù)(exclusive thread),該技術(shù)在多核CPU平臺(tái)下能使某個(gè)線程始終獨(dú)占一個(gè)CPU邏輯核(目前Intel CPU可以在一個(gè)物理核中同時(shí)運(yùn)行兩個(gè)線程,故稱之為兩個(gè)邏輯核),保證它不會(huì)被操作系統(tǒng)調(diào)度出去,從而保證了處理的實(shí)時(shí)性。這項(xiàng)技術(shù)充分利用了現(xiàn)有硬件平臺(tái)的優(yōu)勢(shì),尤其是多核的優(yōu)勢(shì),一定程度上彌補(bǔ)了多任務(wù)操作系統(tǒng)在實(shí)時(shí)性方面不足,在非實(shí)時(shí)的系統(tǒng)平臺(tái)中同時(shí)實(shí)現(xiàn)了局部實(shí)時(shí)的操作響應(yīng)。從Windows的任務(wù)管理器可以看到被某個(gè)獨(dú)占性線程占用的CPU邏輯核的使用率始終保持在100%,如圖4所示,該CPU包含8個(gè)邏輯核,核3、5、7分別被3個(gè)獨(dú)占性線程占用。
圖4 獨(dú)占性線程的CPU占用率
為了保證多核系統(tǒng)中時(shí)鐘的精度和實(shí)時(shí)性的要求,本文在Windows中創(chuàng)建一個(gè)獨(dú)占性線程,在該線程在核7(圖4)中始終在讀取CPU的運(yùn)行周期,克服了RDTSC指令在多核架構(gòu)中的不足,從而實(shí)現(xiàn)了高精度的、實(shí)時(shí)的軟時(shí)鐘源,完全達(dá)到(甚至超過(guò))GPS的商用授時(shí)精度(誤差<100 ns)。
近年來(lái),許多學(xué)者對(duì)數(shù)字無(wú)線通信中的時(shí)鐘同步做出了大量的有益探索與創(chuàng)新。如文獻(xiàn)[10]針對(duì)采用GPS授時(shí)的網(wǎng)絡(luò)同步提出了時(shí)鐘差分的方法,N.Wu[11]等人利用差分GPS實(shí)現(xiàn)了TDMA網(wǎng)絡(luò)中的時(shí)鐘同步,C.E.Wheatley[20]對(duì)CDMA2000的BS間的時(shí)鐘同步給出了一種時(shí)差傳遞測(cè)量技術(shù),較好地達(dá)到了BS之間的時(shí)鐘同步且有效降低了系統(tǒng)對(duì)GPS的依賴性,文獻(xiàn)[12]對(duì)[13]所提出的技術(shù)進(jìn)一步做了詳細(xì)的仿真與證明。另外,文獻(xiàn)[14]提出了一種基于TDMA自組織網(wǎng)絡(luò)時(shí)鐘的主從同步算法,而文獻(xiàn)[15]則實(shí)現(xiàn)了自組織網(wǎng)絡(luò)中時(shí)鐘的互同步算法。然而,與GSM、CDMA等商用網(wǎng)絡(luò)或自組織網(wǎng)絡(luò)不同的是,基于非實(shí)時(shí)操作系統(tǒng)的SDR原型平臺(tái)在信號(hào)處理及信令交互等方面有著自己獨(dú)特的方面,例如采用復(fù)雜指令集(CISC)的通用處理器(general-purpose processor,GPP)(如Intel,AMD)不能夠精準(zhǔn)地估計(jì)出指令的處理時(shí)延,另外,PC通過(guò)PCIe連接前端RF還會(huì)存在一個(gè)指令的傳輸時(shí)延[7]等等,因此針對(duì)通用平臺(tái)軟件無(wú)線電,在如何取得軟時(shí)鐘同步方面,提出了一種回程時(shí)延(round trip delay,RTD)算法。
RTD算法的核心思想是:基站每隔一定的時(shí)間間隔(如40 ms)廣播一個(gè)軟同步序列 SSS,終端在接收到該幀并進(jìn)行PHY層解碼后遞交到MAC層,根據(jù)SSS的發(fā)送時(shí)延、傳播時(shí)延、接收時(shí)延和解碼時(shí)延等確定出終端時(shí)鐘的時(shí)間提前量(time advanced,TA),只要能確定終端時(shí)鐘的TA,那么就實(shí)現(xiàn)了終端與基站之間的時(shí)鐘同步。因此如何確定SSS從基站到終端的總的時(shí)延是軟時(shí)鐘同步技術(shù)的關(guān)鍵,考慮基站只能測(cè)出發(fā)送時(shí)延,而終端僅能測(cè)出接收和解碼時(shí)延,所以如果僅僅在任意一端均不能正確估計(jì)出總的時(shí)延大小。
RTD算法的基本過(guò)程是:首先將SSS調(diào)制編碼后放置RF緩存,BS在一定的時(shí)間節(jié)點(diǎn)首先指示發(fā)送一個(gè)SSS給UE,UE在接收并在PHY成功解碼SSS后,立即指示發(fā)送一個(gè)回程SSS給BS,BS端再接收和解碼該回程SSS。RTD算法如圖5所示。
圖5 RTD算法示意圖
為了簡(jiǎn)化起見,上圖中僅考慮BS與一個(gè)UE取得時(shí)鐘同步的情況,水平橫軸代表絕對(duì)時(shí)間軸。圖中各參數(shù)的表示意義如下:
1)程序執(zhí)行的時(shí)延,包括運(yùn)行在GPP上程序的跳轉(zhuǎn)、函數(shù)調(diào)用、代碼編譯和指令執(zhí)行等;
2)指令通過(guò)PC的通用外設(shè)接口的傳輸時(shí)延,如以太網(wǎng)卡、USB、PCIe、串/并口等;
3)RF前端對(duì)指令的反應(yīng)時(shí)延,如DSP或FPGA或?qū)S肐C從接收到執(zhí)行指令的時(shí)延,一般來(lái)說(shuō),該時(shí)延在實(shí)時(shí)控制系統(tǒng)中也是存在的,一是它的量級(jí)非常小,二是它可以較為準(zhǔn)確地估計(jì)出來(lái)。
RTD1:表示在BS中從軟件指示SSS發(fā)送到接收到回程信號(hào)到達(dá)指示的時(shí)間間隔;
RTD2:表示在UE端從接收到信號(hào)到來(lái)指示到成功解碼SSS的時(shí)間間隔。
RTD算法有兩個(gè)前提假設(shè):
1)無(wú)論BS還是UE,它們都采用完全相同的SDR原型平臺(tái),包括相同的硬件架構(gòu)和軟件架構(gòu),考慮到軟處理時(shí)延具有較好地統(tǒng)計(jì)穩(wěn)定性且時(shí)延比軟時(shí)鐘的要求精度小2~3個(gè)數(shù)量級(jí)(參見本文仿真實(shí)驗(yàn)一),那么工程上即用它們的統(tǒng)計(jì)均值來(lái)代替,由對(duì)稱性有:
(1)
2)BS與UE都是相對(duì)靜止的,SSS的來(lái)回路程是完全相同的,即:
(2)
那么從圖5中不難看出,BS到UE的軟時(shí)延大小為:
(3)
聯(lián)立以上三式,可以得到:
Te1+TD+Te2= (RTD1 -RTD2) / 2
(4)
UE端若在“Indicate Signal Arrived”時(shí)刻啟動(dòng)自身的軟時(shí)鐘,那么它的時(shí)間提前量為:
TA=Te1+TD+Te2
(5)
值得注意的是,RTD2主要是由終端的接收和PHY解碼時(shí)延構(gòu)成,時(shí)延較大且在不同系統(tǒng)中、不同負(fù)載下、不相同時(shí)波動(dòng)也較大,另外可能在對(duì)數(shù)據(jù)幀解碼過(guò)程中也有很多不確定時(shí)延,稱為Dead Time,但并不影響TA的結(jié)果,因?yàn)門A是RTD1與RTD2的差,兩者相減完全將這些不確定時(shí)延抵消。TA是基于兩個(gè)統(tǒng)計(jì)量的,為了防止誤差累積,一般要每隔一定的時(shí)間間隔重新做一次軟時(shí)鐘同步,在目前商用通信系統(tǒng)中也采用此種方法來(lái)消除累積誤差。
在軟件無(wú)線電平臺(tái)上對(duì)軟時(shí)鐘精度、回程時(shí)延算法和軟時(shí)鐘同步機(jī)制進(jìn)行了測(cè)試和驗(yàn)證。選取一臺(tái)Sora作為中繼,另外兩臺(tái)作為終端,硬件配置如表1所示。實(shí)驗(yàn)一中對(duì)參數(shù)TA進(jìn)行了1 000次樣本的抽樣統(tǒng)計(jì),實(shí)驗(yàn)二是用示波器在射頻端對(duì)軟同步機(jī)制的驗(yàn)證。
表1 Sora平臺(tái)配置
實(shí)驗(yàn)一:回程時(shí)延算法驗(yàn)證
物理層采用802.11 a,圖6是802.11a協(xié)議中的preamble結(jié)構(gòu),它在協(xié)議中由10個(gè)短訓(xùn)練序列和2個(gè)長(zhǎng)訓(xùn)練序列組成,完成信號(hào)檢測(cè)、頻率同步、碼元同步,自動(dòng)增益控制、信道估計(jì)等,在RTD算法中TD參數(shù)包含了信號(hào)檢測(cè)的時(shí)延,所以參數(shù)TD肯定大于5.6 μs(7個(gè)短同步序列的時(shí)間長(zhǎng)度)。
圖6 802.11a的preamble結(jié)構(gòu)
在室內(nèi)測(cè)試兩天線間的距離為3 m(包含了兩端屏蔽線的長(zhǎng)度在內(nèi)),則傳播時(shí)延TD為:
TD=3/3×108=10 ns
(7)
所以傳播時(shí)延與其他兩個(gè)參數(shù)和Te1+Te2相比,TD可以忽略不計(jì)。表2和圖7分別是在Sora平臺(tái)上所做的1 000次回程時(shí)延的統(tǒng)計(jì)表和樣本分布直方圖。
表2 TA測(cè)試值的統(tǒng)計(jì)結(jié)果
圖7 TA統(tǒng)計(jì)結(jié)果的分布情況
通過(guò)統(tǒng)計(jì)表和直方圖可以看到,均值為16.08 μs,均方差(MSE)僅為1.54 μs2,最重要的是無(wú)論是最大統(tǒng)計(jì)值,還是最小統(tǒng)計(jì)值,與均值差的絕對(duì)值不超過(guò)5 μs,具備了良好地統(tǒng)計(jì)穩(wěn)定性,所以工程上完全可以采用均值作為TA的估計(jì)值來(lái)使用,5 μs的誤差對(duì)于時(shí)隙長(zhǎng)度為3 ms,在工程上是完全可以接受的。另外,該實(shí)驗(yàn)也較好地證明了RTD算法在通用處理器(GPP)架構(gòu)和非實(shí)時(shí)操作系統(tǒng)環(huán)境中的可行性和正確性。RTD算法充分考慮了軟件無(wú)線電平臺(tái)的處理時(shí)延問(wèn)題,對(duì)于時(shí)延的估計(jì)既具備統(tǒng)計(jì)穩(wěn)定性,又能反映出軟件無(wú)線電的軟處理時(shí)延的瞬時(shí)波動(dòng)性。算法的復(fù)雜度較小,極易工程實(shí)現(xiàn),具備較高的工程實(shí)用性。
實(shí)驗(yàn)二:軟同步機(jī)制的驗(yàn)證
為了簡(jiǎn)便又不失一般性,該實(shí)驗(yàn)中測(cè)試了一終端接入中繼的情景,保證在隨機(jī)接入過(guò)程中沒有沖突發(fā)生。當(dāng)終端偵聽到中繼端廣播的軟同步序列后發(fā)起一個(gè)隨機(jī)接入過(guò)程,然后根據(jù)中繼指示的TA值調(diào)整本地時(shí)鐘,使之與中繼完成時(shí)鐘同步,直到1 s后再重新發(fā)起一次重同步過(guò)程。在這1 s的時(shí)間內(nèi),中繼每隔10 ms發(fā)送一個(gè)軟同步序列,終端也每隔10 ms發(fā)送一個(gè)軟同步序列。也就是說(shuō),中繼端在1 s內(nèi)發(fā)送了100個(gè)軟同步序列,而終端只發(fā)送了99個(gè)軟同步序列(相差的一個(gè)用于終端接入和時(shí)鐘同步過(guò)程,在此終端未發(fā)送任何序列)。
若終端與中繼完成時(shí)鐘同步后,兩端會(huì)在每隔10 ms相同的時(shí)間點(diǎn)(時(shí)間上是重合的)發(fā)送電磁信號(hào),兩者的電磁信號(hào)在空間內(nèi)相互干擾,第三方測(cè)試點(diǎn)是不能夠正確檢測(cè)到兩者任何一個(gè)的,然而可以采用雙通道的數(shù)字示波器同時(shí)測(cè)量?jī)烧叩奶炀€射頻信號(hào),即一個(gè)高電平信號(hào)。雙通道數(shù)字示波器的兩個(gè)通道共用一個(gè)時(shí)間軸,所以可以用來(lái)驗(yàn)證兩個(gè)軟同步序列是否在時(shí)間上是真正重合的,如圖8所示。
圖8 雙通道示波器對(duì)軟同步機(jī)制的測(cè)試
由示波器的測(cè)試結(jié)果可以看到兩點(diǎn):一是中繼端與終端的軟同步序列在時(shí)間軸上是良好地重合的;二是相鄰的兩個(gè)序列之間的時(shí)間間隔為10 ms,從另外一個(gè)層面也證明了軟時(shí)鐘的可靠性。
本文針對(duì)微軟的Sora軟件無(wú)線電平臺(tái)提出一種軟時(shí)鐘同步機(jī)制,首先用軟件在Windows操作系統(tǒng)中實(shí)現(xiàn)了實(shí)時(shí)的高精度時(shí)鐘源,然后采用回程時(shí)延算法取得軟時(shí)鐘同步,即實(shí)現(xiàn)了多臺(tái)Sora構(gòu)成的蜂窩通信場(chǎng)景的網(wǎng)同步。進(jìn)一步而言,軟時(shí)鐘同步機(jī)制有很好的靈活性,它并依賴于Sora平臺(tái),可以適用到其他基于通用硬件架構(gòu)(GPP)和非實(shí)時(shí)操作系統(tǒng)的軟件無(wú)線電平臺(tái)中,大大的拓寬了軟件無(wú)線電的研究與應(yīng)用范圍。