基于软件无线电的同步机制研究
2020-09-02段红亮杨志远陈晓光
段红亮,刘 浩,杨志远,任 斌,陈晓光
(1.北京航天长征飞行器研究所,北京 100076;2.西北工业大学 机电学院,西安 710072)
0 引言
当今无线通信领域内,多种通信体系并存,各种标准竞争激烈,频谱资源紧张,传统的以硬件为主、面向特定用途机制的不足日益突显等一系列问题制约着无线通信技术的发展,而具备通用性、开放性和全面可编程性的软件无线电技术则适应了时代发展的需求[1]。软件无线电由J.Mitola于1992年首次提出[2],全称为软件定义的无线电,即Software Defined Radio,SDR。其核心思想是:构造一个具有开放性、标准化、模块化的通用硬件平台,使A/D和D/A转换器尽可能靠近天线,将其他各种功能,如物理层和协议栈等都由软件来实现。理想的软件无线电结构如图1所示。
图1 理想的软件无线电结构
近年来SDR已经获得了迅猛的发展,然而由于受到硬件性能和软件处理时延等诸多因素的限制,如宽带天线、高速A/D(D/A)、高吞吐量总线架构以及不同编程语言的实时性等,SDR存在着多种问题[3-4],目前硬件的性能尚未达到理想SDR的要求,因此,如何在现有的有限软硬件性能的限制下,尽可能实现SDR的功能成为了当今SDR通信原型平台的热点。
基于通用硬件架构的平台代表了SDR的发展趋势,但是由于通用平台在处理速度、吞吐量及实时性方面的限制,基于通用平台的SDR研究难以获得广泛的应用可行性。随着近几年来通用硬件性能的飞速提升和软件技术的发展,微软亚洲研究院于2009年推出了基于普通PC和Windows操作系统的通用SDR平台——Sora,它实现了IEEE 802.11 a/b协议,采用一系列技术较好地解决了如何在通用平台和非实时操作系统中研究开发SDR的难题[5]。Sora平台实现了基于CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)接入机制的802.11 a/b协议,并实现了点与点之间的通信[5]。然而,当采用多点构建多址接入网络时,由于这些接入点之间不存在统一的时钟,无法实现网络同步,因此难以模拟实时性的多址接入,如GSM,TD-LTE等TDMA特性的接入系统。目前商用的无线通信系统中的网同步(也称为时钟同步)利用GPS(Global Positioning System)等作为基站同步时钟源,这是TDMA (如GSM)或是CDMA(IS-95)等系统的首选方案,另外相邻基站间的时钟同步直接影响到越区切换的成功率,也是CDMA系统中能够实现软切换的重要前提之一。
在此提出了一种基于通用硬件平台的软时钟同步实现机制,相比于GPS等“硬”时钟同步,该机制称之为软时钟同步,它在现有Sora原型平台上实现了TDMA接入方式的模拟蜂窝通信。
1 通信系统中多种同步机制描述
在数字通信系统中,同步包括载波同步,码元同步,群同步和网同步4种[6]。载波同步和码元同步是解调时所必需的,进一步是群同步(或称为帧同步),它是用来识别信息分组,如一个完整的物理帧等,如图2所示,上述三种是点对点之间成功通信所必需取得的同步,而网同步则描述了通信网中所有参与者的时钟关系,称之为时钟同步,使得在整个通信网内有一个统一的时间节拍标准,它反映了基站和终端、多终端之间的协作关系,是构成数字蜂窝网和多用户调度的基础。时钟同步又分为基站间的时钟同步和蜂窝小区内的时钟同步两种。在现有移动通信系统中,相邻小区的基站之间必须取得时钟同步,因为时钟同步是影响越区切换的重要因素之一。且对于那些TDD模式的蜂窝系统,在每个蜂窝小区内,每个终端必然也要与基站取得时钟同步,否则无法正常接入系统,例如基站会连续指示每个连接状态下的终端上行时间提前量,即TA(timing advanced)补偿信号的空间传播延时从而在基站取得时钟同步[7]。
图2 TDMA蜂窝通信中的四种同步
基于通用硬件架构的Sora作为仿真平台(如图3所示)搭建仿真系统场景,仿真场景中存在一个单独的基站(BS),以它的时钟作为蜂窝小区的基准时钟,其他平台作为终端(UE)取得与基站的时钟同步。为简化仿真复杂度且不失一般性,本文采用一基站、两终端的简单蜂窝场景,设计帧长为10 ms,每帧包含有10个子帧,每个子帧1 ms,#0子帧基站用来发送一个特殊MAC帧(软同步序列,software synchronization sequence,SSS),SSS中包含了时间提前量TA、帧号和上下行帧配置等信息,具体场景和帧配置如图3所示。
图3 模拟TDMA蜂窝通信场景
2 软时钟同步方法研究
基于通用CPU平台的软件无线电原型平台中实现网同步必须具备两个条件:一是要有一个实时高精度的时钟源;二是每个时钟要取得同步。考虑到采用GPS的不足和SDR的可扩展性问题,由软件生成一个时钟源来取代GPS等外接时钟源是较优的选择。
2.1 实时软时钟源的实现方法
相比于GPS或晶振等“硬”时钟源,由软件生成的时钟源有以下三方面优势:1)时钟的频率在其精度允许范围内任意可调;2)程序处理软时钟中断的系统开销小于I/O硬中断;3)便于SDR的集成与交互。然而如何在非实时操作系统(如Windows)中实现实时的、高精度的软时钟是现代操作系统的一大难题[8]。intel提供了一种直接提取CPU时钟运行周期的技术—RDTSC,它可以达到ns级的时间精度[9],然而在多核的操作系统上该技术的精度不能够保证,原因是它每次读取的CPU逻辑核可能不相同,而多个CPU核之间并不完全均衡,时钟运行周期数一般不相等,所以RDTSC指令读取的数据可能存在着较大的误差,另外非实时操作系统中一旦将运行着RDTSC功能的线程调度出当前CPU核,也就无法保证实时性,例如Windows的调度时间片大小约为10 ms[8]。
文献[5]中提出了一种独占性线程技术(exclusive thread),该技术在多核CPU平台下能使某个线程始终独占一个CPU逻辑核(目前Intel CPU可以在一个物理核中同时运行两个线程,故称之为两个逻辑核),保证它不会被操作系统调度出去,从而保证了处理的实时性。这项技术充分利用了现有硬件平台的优势,尤其是多核的优势,一定程度上弥补了多任务操作系统在实时性方面不足,在非实时的系统平台中同时实现了局部实时的操作响应。从Windows的任务管理器可以看到被某个独占性线程占用的CPU逻辑核的使用率始终保持在100%,如图4所示,该CPU包含8个逻辑核,核3、5、7分别被3个独占性线程占用。
图4 独占性线程的CPU占用率
为了保证多核系统中时钟的精度和实时性的要求,本文在Windows中创建一个独占性线程,在该线程在核7(图4)中始终在读取CPU的运行周期,克服了RDTSC指令在多核架构中的不足,从而实现了高精度的、实时的软时钟源,完全达到(甚至超过)GPS的商用授时精度(误差<100 ns)。
2.2 软时钟同步机制——RTD算法
近年来,许多学者对数字无线通信中的时钟同步做出了大量的有益探索与创新。如文献[10]针对采用GPS授时的网络同步提出了时钟差分的方法,N.Wu[11]等人利用差分GPS实现了TDMA网络中的时钟同步,C.E.Wheatley[20]对CDMA2000的BS间的时钟同步给出了一种时差传递测量技术,较好地达到了BS之间的时钟同步且有效降低了系统对GPS的依赖性,文献[12]对[13]所提出的技术进一步做了详细的仿真与证明。另外,文献[14]提出了一种基于TDMA自组织网络时钟的主从同步算法,而文献[15]则实现了自组织网络中时钟的互同步算法。然而,与GSM、CDMA等商用网络或自组织网络不同的是,基于非实时操作系统的SDR原型平台在信号处理及信令交互等方面有着自己独特的方面,例如采用复杂指令集(CISC)的通用处理器(general-purpose processor,GPP)(如Intel,AMD)不能够精准地估计出指令的处理时延,另外,PC通过PCIe连接前端RF还会存在一个指令的传输时延[7]等等,因此针对通用平台软件无线电,在如何取得软时钟同步方面,提出了一种回程时延(round trip delay,RTD)算法。
RTD算法的核心思想是:基站每隔一定的时间间隔(如40 ms)广播一个软同步序列 SSS,终端在接收到该帧并进行PHY层解码后递交到MAC层,根据SSS的发送时延、传播时延、接收时延和解码时延等确定出终端时钟的时间提前量(time advanced,TA),只要能确定终端时钟的TA,那么就实现了终端与基站之间的时钟同步。因此如何确定SSS从基站到终端的总的时延是软时钟同步技术的关键,考虑基站只能测出发送时延,而终端仅能测出接收和解码时延,所以如果仅仅在任意一端均不能正确估计出总的时延大小。
RTD算法的基本过程是:首先将SSS调制编码后放置RF缓存,BS在一定的时间节点首先指示发送一个SSS给UE,UE在接收并在PHY成功解码SSS后,立即指示发送一个回程SSS给BS,BS端再接收和解码该回程SSS。RTD算法如图5所示。
图5 RTD算法示意图
为了简化起见,上图中仅考虑BS与一个UE取得时钟同步的情况,水平横轴代表绝对时间轴。图中各参数的表示意义如下:
1)程序执行的时延,包括运行在GPP上程序的跳转、函数调用、代码编译和指令执行等;
2)指令通过PC的通用外设接口的传输时延,如以太网卡、USB、PCIe、串/并口等;
3)RF前端对指令的反应时延,如DSP或FPGA或专用IC从接收到执行指令的时延,一般来说,该时延在实时控制系统中也是存在的,一是它的量级非常小,二是它可以较为准确地估计出来。
RTD1:表示在BS中从软件指示SSS发送到接收到回程信号到达指示的时间间隔;
RTD2:表示在UE端从接收到信号到来指示到成功解码SSS的时间间隔。
RTD算法有两个前提假设:
1)无论BS还是UE,它们都采用完全相同的SDR原型平台,包括相同的硬件架构和软件架构,考虑到软处理时延具有较好地统计稳定性且时延比软时钟的要求精度小2~3个数量级(参见本文仿真实验一),那么工程上即用它们的统计均值来代替,由对称性有:
(1)
2)BS与UE都是相对静止的,SSS的来回路程是完全相同的,即:
(2)
那么从图5中不难看出,BS到UE的软时延大小为:
(3)
联立以上三式,可以得到:
Te1+TD+Te2= (RTD1 -RTD2) / 2
(4)
UE端若在“Indicate Signal Arrived”时刻启动自身的软时钟,那么它的时间提前量为:
TA=Te1+TD+Te2
(5)
值得注意的是,RTD2主要是由终端的接收和PHY解码时延构成,时延较大且在不同系统中、不同负载下、不相同时波动也较大,另外可能在对数据帧解码过程中也有很多不确定时延,称为Dead Time,但并不影响TA的结果,因为TA是RTD1与RTD2的差,两者相减完全将这些不确定时延抵消。TA是基于两个统计量的,为了防止误差累积,一般要每隔一定的时间间隔重新做一次软时钟同步,在目前商用通信系统中也采用此种方法来消除累积误差。
3 实验结果与分析
在软件无线电平台上对软时钟精度、回程时延算法和软时钟同步机制进行了测试和验证。选取一台Sora作为中继,另外两台作为终端,硬件配置如表1所示。实验一中对参数TA进行了1 000次样本的抽样统计,实验二是用示波器在射频端对软同步机制的验证。
表1 Sora平台配置
实验一:回程时延算法验证
物理层采用802.11 a,图6是802.11a协议中的preamble结构,它在协议中由10个短训练序列和2个长训练序列组成,完成信号检测、频率同步、码元同步,自动增益控制、信道估计等,在RTD算法中TD参数包含了信号检测的时延,所以参数TD肯定大于5.6 μs(7个短同步序列的时间长度)。
图6 802.11a的preamble结构
在室内测试两天线间的距离为3 m(包含了两端屏蔽线的长度在内),则传播时延TD为:
TD=3/3×108=10 ns
(7)
所以传播时延与其他两个参数和Te1+Te2相比,TD可以忽略不计。表2和图7分别是在Sora平台上所做的1 000次回程时延的统计表和样本分布直方图。
表2 TA测试值的统计结果
图7 TA统计结果的分布情况
通过统计表和直方图可以看到,均值为16.08 μs,均方差(MSE)仅为1.54 μs2,最重要的是无论是最大统计值,还是最小统计值,与均值差的绝对值不超过5 μs,具备了良好地统计稳定性,所以工程上完全可以采用均值作为TA的估计值来使用,5 μs的误差对于时隙长度为3 ms,在工程上是完全可以接受的。另外,该实验也较好地证明了RTD算法在通用处理器(GPP)架构和非实时操作系统环境中的可行性和正确性。RTD算法充分考虑了软件无线电平台的处理时延问题,对于时延的估计既具备统计稳定性,又能反映出软件无线电的软处理时延的瞬时波动性。算法的复杂度较小,极易工程实现,具备较高的工程实用性。
实验二:软同步机制的验证
为了简便又不失一般性,该实验中测试了一终端接入中继的情景,保证在随机接入过程中没有冲突发生。当终端侦听到中继端广播的软同步序列后发起一个随机接入过程,然后根据中继指示的TA值调整本地时钟,使之与中继完成时钟同步,直到1 s后再重新发起一次重同步过程。在这1 s的时间内,中继每隔10 ms发送一个软同步序列,终端也每隔10 ms发送一个软同步序列。也就是说,中继端在1 s内发送了100个软同步序列,而终端只发送了99个软同步序列(相差的一个用于终端接入和时钟同步过程,在此终端未发送任何序列)。
若终端与中继完成时钟同步后,两端会在每隔10 ms相同的时间点(时间上是重合的)发送电磁信号,两者的电磁信号在空间内相互干扰,第三方测试点是不能够正确检测到两者任何一个的,然而可以采用双通道的数字示波器同时测量两者的天线射频信号,即一个高电平信号。双通道数字示波器的两个通道共用一个时间轴,所以可以用来验证两个软同步序列是否在时间上是真正重合的,如图8所示。
图8 双通道示波器对软同步机制的测试
由示波器的测试结果可以看到两点:一是中继端与终端的软同步序列在时间轴上是良好地重合的;二是相邻的两个序列之间的时间间隔为10 ms,从另外一个层面也证明了软时钟的可靠性。
4 结束语
本文针对微软的Sora软件无线电平台提出一种软时钟同步机制,首先用软件在Windows操作系统中实现了实时的高精度时钟源,然后采用回程时延算法取得软时钟同步,即实现了多台Sora构成的蜂窝通信场景的网同步。进一步而言,软时钟同步机制有很好的灵活性,它并依赖于Sora平台,可以适用到其他基于通用硬件架构(GPP)和非实时操作系统的软件无线电平台中,大大的拓宽了软件无线电的研究与应用范围。