LTE上行定时技术.docx
《LTE上行定时技术.docx》由会员分享,可在线阅读,更多相关《LTE上行定时技术.docx(8页珍藏版)》请在冰豆网上搜索。
LTE上行定时技术
上行定时提前(UplinkTimingAdvance)
本文将介绍LTE中的上行同步过程。
主要涉及:
1)为何需要上行同步;2)eNodeB如何测量上行定时提前量并下发TimingAdvanceCommand;3)eNodeB和UE如何判断上行失步(eNodeB侧只会做一些原理性的介绍,不同厂家的实现可能不同)。
上行传输的一个重要特征是不同UE在时频上正交多址接入(orthogonalmultipleaccess),即来自同一小区的不同UE的上行传输之间互不干扰。
为了保证上行传输的正交性,避免小区内(intra-cell)干扰,eNodeB要求来自同一子帧但不同频域资源(不同的RB)的不同UE的信号到达eNodeB的时间基本上是对齐的。
eNodeB只要在CP(CyclicPrefix)范围内接收到UE所发送的上行数据,就能够正确地解码上行数据,因此上行同步要求来自同一子帧的不同UE的信号到达eNodeB的时间都落在CP之内。
为了保证接收侧(eNodeB侧)的时间同步,LTE提出了上行定时提前(UplinkTimingAdvance)的机制。
在UE侧看来,timingadvance本质上是接收到下行子帧的起始时间与传输上行子帧的时间之间的一个负偏移(negativeoffset)。
eNodeB通过适当地控制每个UE的偏移,可以控制来自不同UE的上行信号到达eNodeB的时间。
对于离eNodeB较远的UE,由于有较大的传输延迟,就要比离eNodeB较近的UE提前发送上行数据。
图1:
上行传输的timing对齐
图1的(a)中指出了不进行上行定时提前所造成的影响。
从图1的(b)中可以看出,eNodeB侧的上行子帧和下行子帧的timing是相同的,而UE侧的上行子帧和下行子帧的timing之间有偏移。
同时可以看出:
不同UE有各自不同的uplinktimingadvance,也即unlinktimingadvance是UE级的配置。
前面介绍了为什么需要做uplinktimingadvance,接下来我们来介绍eNodeB如何测量上行信号以得到每个UE的上行定时提前量以及如何下发TimingAdvanceCommand给UE。
eNodeB通过两种方式给UE发送TimingAdvanceCommand:
1)在随机接入过程,eNodeB通过测量接收到preamble来确定timingadvance值,并通过RAR的TimingAdvanceCommand字段(共11bit,对应TA索引值
的范围是0~1282)发送给UE。
图2:
MACRAR
上行同步的粒度为
(0.52s)。
对于随机接入而言,
值乘以
,就得到相对于当前上行timing所需的实际调整值
(单位为
)。
关于
,见36.211的第4章。
上行timing的不确定性正比于小区半径,每1km有大约6.7μs的传输延迟(6.7μs/km),LTE中小区最大半径为100km,故最大传输延迟接近0.67ms。
上行同步的粒度为
(0.52s),故
的最大值约为(0.67*1000)/0.52≈1288。
(
的最大值为1282,应该是更精确的计算,但计算方法就是这样的,当然还要将解码时间考虑在内)
我称这个过程为“初始上行同步过程”。
2)在RRC_CONNECTED态,eNodeB需要维护timingadvance信息。
虽然在随机接入过程中,UE与eNodeB取得了上行同步,但上行信号到达eNodeB的timing可能会随着时间发生变化:
∙ 高速移动中的UE,例如运行中的高铁上的UE,其与eNodeB的传输延迟会不断变化;
∙ 当前传输路径消失,切换到新的的传输路径。
例如在建筑物密集的城市,走到建筑的转角时,这种情况就很可能发生;
∙ UE的晶振偏移,长时间的偏移累积可能导致上行定时出错;
∙ 由于UE移动而导致的多普勒频移等。
因此,UE需要不断地更新其上行定时提前量,以保持上行同步。
LTE中,eNodeB使用一种闭环机制来调整上行定时提前量。
eNodeB基于测量对应UE的上行传输来确定每个UE的timingadvance值。
因此,只要UE有上行传输,eNodeB就可以用来估计timingadvance值。
理论上,UE发送的任何信号(SRS/DMRS/CQI/ACK/NACK/PUSCH等)都可用于测量timingadvance。
如果某个特定UE需要校正,则eNodeB会发送一个Timing AdvanceCommand给该UE,要求其调整上行传输timing。
该Timing AdvanceCommand是通过Timing AdvanceCommand MACcontrolelement发送给UE的。
Timing AdvanceCommand MACcontrolelement由LCID值为11101(见36.321的Table6.2.1-1)的MACPDUsubhead指示,且其结构如下(R表示预留bit,设为0):
图3:
TimingAdvanceCommandMACcontrolelement
可以看出,TimingAdvanceCommand字段共6bit,对应TA索引值
的范围是0~63。
UE侧会保存最近一次timingadvance调整值
,当UE收到新的TimingAdvanceCommand而得到
后,会计算出最新的timingadvance调整值
(单位为
)。
我称这个过程为“上行同步更新过程”。
如果UE在子帧n收到TimingAdvanceCommand,则UE会从子帧n+6开始应用该timing调整值。
如果UE在子帧n和子帧n+1发送的PUCCH/PUSCH/SRS由于timing调整的原因出现重叠,则UE将完全发送子帧n的内容,而不发送子帧n+1中重叠的部分。
UE收到TimingAdvanceCommand后,会调整PCell的PUCCH/PUSCH/SRS的上行发送时间。
而SCell的PUSCH/SRS(SCell不发送PUCCH)的上行发送时间调整量与PCell相同。
(见36.213的4.2.3节)
从上面的介绍可以看出,PCell和SCell共用一条TimingAdvanceCommand在载波聚合中,UE可能需要往多个小区(或称为componentcarrier)发送上行数据,在理论上,由于不同小区的物理位置(inter-bandCA)可能不同,每个小区都需要给该UE发送各自的TimingAdvanceCommand。
但是这种类型的部署并不常见,载波聚合的小区通常物理位置上相近且同步,因此为了简化LTE的设计,所有聚合的小区共用一条timingadvancecommand。
前面已经介绍过,上行定时提前的调整量是相对于接收到的下行子帧的timing的,因此在UE没有收到TimingAdvanceCommand的时候,UE需要跟踪下行timing的变化,以便自动调整上行传输的timing。
(详见36.133的7.1.2节)
接下来,我们介绍UE在MAC层如何判断上行同步/失步(详见36.321的5.2节):
eNodeB会通过RRC信令给UE配置一个timer(在MAC层,称为timeAlignmentTimer),UE使用该timier在MAC层确定上行是否同步。
需要注意的是:
该timer有Cell-specific级别和UE-specific级别之分。
eNodeB通过SystemInformationBlockType2的timeAlignmentTimerCommon字段来配置的Cell-specific级别的timer;eNodeB通过MAC-MainConfig的timeAlignmentTimerDedicated字段来配置UE-specific级别的timer。
如果UE配置了UE-specific的timer,则UE使用该timer值,否则UE使用Cell-specific的timer值。
当UE收到TimingAdvanceCommand(来自RAR或TimingAdvanceCommandMACcontrolelement),UE会启动或重启该timer。
如果该timer超时,则认为上行失步,UE会清空HARQbuffer,通知RRC层释放PUCCH/SRS,并清空任何配置的DLassignment和ULgrant。
当该timer在运行时,UE认为上行是同步的;而当该timer没有运行,即上行失步时,UE在上行只能发送preamble。
还有一种情况下,UE认为上行同步状态由“同步”变为“不同步”:
非同步Handover。
最后,我们介绍eNodeB是如何处理UE的上行同步呢?
由于不同的厂商实现方式可能不同,这里只介绍一些可借鉴的做法。
(1)由于UE必须在timeAlignmentTimer超时之前接收到TimingAdvanceCommand,否则会认为上行失步。
所以eNodeB需要保证在该timer时间范围内(通常要比该timer小,因为要预留一些时间给传输延迟和UE编解码等)给UE发送TimingAdvanceCommand,以便UE更新上行定时并重启该timer。
所以eNodeB必须保存最近一次成功地给该UE发送了TimingAdvanceCommand(即eNodeB收到了对应下行传输的ACK)的子帧号,以便计算该时间范围。
(2)从
(1)中可以看出,在eNodeB侧在MAC层也应该为每个UE维护一个类似timeAlignmentTimer的timer,以保证在该timer超时之前给UE发送TimingAdvanceCommand。
eNodeB何时启动/重启该timer呢?
个人认为可以在UE随机接入成功中后启动,并在收到对应TimingAdvanceCommandMACcontrolelement的ACK/NACK后重启。
注意timer的起始位置应该从最近一次成功地给该UE发送了TimingAdvanceCommand的子帧(而不是收到对应ACK的子帧)。
(3)从上面的介绍可以看出,UE在子帧n收到TimingAdvanceCommand后,会从子帧n+6才开始应用该timing调整值。
也就是说,eNodeB在子帧n发送了某个UE的TimingAdvanceCommand之后,在子帧n+6之前(不包括n+6子帧)的时间内,是不会去测量该UE的上行timing的。
(4)在子帧n+6之后,eNodeB可能需要测量多个上行timing瞬时值以作平均处理,以便得到最终的调整量,也就是说,eNodeB可能在n+6子帧后的某段时间内,是不会发送TimingAdvanceCommand的。
当测量完毕后,eNodeB在之后的某个子帧将Timing AdvanceCommand MACcontrolelement发给UE。
(5)eNodeB在物理层(L1层)应该也会判断UE在上行是否同步(具体如何判断我也不清楚,有位读者介绍过该厂家的实现机制,供大家参考:
物理层会根据UL信号来计算sinr(也用于估算TA 值),如果算出的sinr值过低,物理层就会认为UL 失步),如果不同步,应告知MAC层。
(关于物理层的处理,我也不是很清楚,就不在这里献丑了!
~~)
关于eNodeB侧的上行同步处理,大家还可以参考一下中兴的一篇专利,见[7]。
【参考资料】
[1] TS36.321的5.2节和6.1.3.5节
[2] TS36.213的4.2.3节
[3] TS36.300的5.2.7.3节和10.1.2.7节
[4] TS36.133的7.1.2节
[5] 《4GLTE/LTE-AdvancedforMobileBroadband》的11.5节
[6] 《LTE-TheUMTSLongTermEvolution,2ndEdition》的和18.2.1节