SDR USRP LTE 定时 时序问题

  在我之前的博客中介绍了很多关于软件无线电(SDR)的技术原理。通过软件无线电技术,基于开源SDR LTE平台,我们能快捷的搭建一套LTE系统。下图便是一个SDR LTE系统的例子。


  我们知道,LTE系统对时序要求非常严格。不像WiFi,随时想发数据就发数据。如果LTE系统的时序不对,UE和eNB则无法同步上,更不可能收发数据了。


 SDR USRP LTE 定时 时序问题_第1张图片

 

 那这就有一个问题,SDR LTE系统是如何保证系统时序的呢?USRP和PC之间又是怎么保证时序的?



SDR USRP LTE 定时 时序问题_第2张图片

      

 参见上图,我们以USRP B210为例讲解SDR LTE系统的定时。USRP B210的最大采样率为61.44MS/s。当我们运行LTE 20M带宽时,我们将采样率设置为30.72M(假设不过采样,也不欠采样)。USRP B210采样率设置为30.72M的采样率,简单理解就是USRP每秒能发送30.72M(30.72*10^6)个复数(即IQ两路)。当然,由于USRP B210支持Full Duplex,可以同时进行收发,即每秒时间内都能发送30.72M个复数数据同时接收30.72M个复数数据。任何晶振都不能做到100%的精准,USRP B210上的晶振也不例外,不过一般波动都不大。


       那PC和USRP是怎么保持同步的呢?其实准确来说,USRP和PC之间不需要保持同步。USRP有一个时间戳的概念,是USRP内部的一套时序,其实就是一个用来精确描述采样点的数。比如N表示当前采样点,则N+1则表示下一个采样点。当PC通过UHD驱动从USRP中获得接收到的基带数据时,PC能从UHD中获得该基带数据接收的起始时间戳。假设PC从USRP中读取了一个子帧的数据(1ms,对应30720个数据)并获得该子帧的时间戳为T。那么下一个子帧的起始时间便是(T+30720),再下一个子帧的起始时间是(T+30720*2),以此类推。当然,PC内部会根据时间戳了更新LTE系统的帧号(Frame)和子帧号(Subframe)。


  当PC处理完基带数据,需要把数据发送给USRP进行发送时,需要根据数据将要发送的Frame和Subframe确定时间戳,并把时间戳传给USRP,这样USRP就知道要在哪个采样点时刻开始发送该数据了。还有一个问题,假如我们需要在T时间戳的时刻开始发送数据,那我们不能再T时刻之后才将数据发送给USRP。所以PC系统需要提前将要发送的数据准备好并传送给USRP。有兴趣的同学可以去研究下OAI平台的这个时间提前量。这个提前量不能太大,太大的话会增加LTE系统的时延;也不能太小,太小会导致USRP没有足够的时间来处理数据。


  综上所述,SDR LTE系统的定时完全是由USRP来控制的。PC只需要提前将数据准备好并传输给USRP,告诉USRP我们的数据要在哪个时刻发送即可。


  时间有限,如果表述有不正确的地方,欢迎交流讨论。

你可能感兴趣的:(软件无线电)