欢迎关注同名微信公众号"modem协议笔记"。
这篇是NR TA的笔记,之前有对R17 NTN TA进行了简单总结,但是也仅仅局限在NTN部分,其他TA基本过程没有涉及,这篇是针对R16版本协议对NR TA相关内容做的总结。和NR PUSCH power control过程类似,NR TA也可以分为开环和闭环调整,相关内容分散在38.300,38.211,38.213,38.321,38.133和38.331。后面就按照38.300 TA相关概念,38.211中有关TA定义,38.213 TA 相关内容,38.321 TA控制过程,38.133 Timing的一些requirement的顺序展开。
TA相关的概念(38.300)
TAG:通过RRC配置的sercing cells group,对于配置UL 的cell,如果处于相同TAG中,那默认采用的是相同的timing reference cell和相同的TA value;每个TAG可以包含一个或多个小区,其中包含spcell的TAG称为Primary Timing Advance Group(PTAG),其他TAG称为Secondary Timing Advance Group(STAG)。
在 RRC_CONNECTED 中,gNB 负责保持TA以便使得UE和gNB保持 L1 同步。 对于配置UL 的cell,如果处于相同TAG中,那默认采用的是相同的timing reference cell和相同的TA value,也就是说同一个TAG 中的cells UL/DL是保持同步的。每个TAG至少包含一个配置了UL的服务小区,每个服务小区到TAG的映射通过RRC层参数的配置完成。
对于primary TAG,UE使用 PCell 作为timing reference,但是shared spectrum channel access在某些情况下也可以使用SCell作为timing reference,如上黄色字体部分。在secondary TAG中,UE可以使用该TAG中任何激活的SCell作为timing reference小区,但除非必要,否则不应更改。
gNB可以通过 TA MAC CE 命令向 UE 发送TA更新信号,该命令会重新启动一个 TAG 特定的定时器(timeAlignmentTimer),它代表着L1是否处于同步状态:当定时器运行时,L1 被认为是同步的,否则,L1 被认为是失步的(在这种情况下,只能进行MSG1/MSGA等RA相关的UL 传输,其他UL传输不能进行)。
SUL carrier可以配置作为NUL carrier的补充。 在 NUL和 SUL 之间切换意味着 UL 传输从一个载波移动到另一个载波,这是通过DCI 中的指示或者随机接入程序实现。SUL 是指在一个cell 上配置两个UL (SUL/NUL)和一个DL;在SUL 的框架下, 一个小区对应的是2个UL和1个DL ,因而配置SUL的Serving Cell是属于单个TAG,即NUL和SUL也是始终保持同步的。
CA场景下,具有single TA 能力的UE,在多个服务小区共享相同TA的情况下(多个服务小区处于一个TAG中),可以在多个CC上同时收发data;
CA场景下,多个CC在不同的TAG中,那每个CC要用不同的TA值,具有multiple TA 能力的UE,可以在这种CA场景下,同时收发data, NG-RAN要保证每个TAG至少包含一个服务小区;
不支持 CA 的 UE 只能在单个CC上收发data,这个服务小区对应的就是当前TAG 中的小区;相关能力IE如下。
下面是一个实网下NR CA的log截图:
CA目前的配置,一般Pcell和scell都属于同一个TAG, 即默认是下行和上行都是共用Pcell的timing。上图是一个实网下NR CA的log,可以看到Pcell和Scell 的tag-Id 都是0,即PCell和Scell 在相同的TAG中,两个小区UL处于相同的同步状态,在初始注册时,Pcell读取MIB后完成DL同步,完成RA后,获得UL同步,因为pcell和scell是相同的TAG,默认上下行是同步的,所以添加Scell时,就不需要额外读取MIB和RA过程。而ENDC场景则不同,对于SCG,UE需要读取MIB的SFN,完成下行同步,然后还要做RACH获得上行同步,之后UE才能跟SCG做数据传输。
TA的定义(38.211)
DL/UL传输以frame的形式进行,每一个frame 对应10ms,1 frame=10 subframe。一个系统帧10ms 和一个subframe 1ms 长度是不变的,每个frame分成2个长度相同的half-frames,half-frame 0对应subframes 0~4,half-frame 1对应subframes 5~9。scs的不同,会导致一个子帧包含的时隙发生变化。
当NR SCS=15khz时,此时NR的1subframe=1 slot=14 symbols 1 slot=1ms
当NR SCS=30khz时,此时NR的1subframe=2 slots=28symbols 1 slot=0.5ms
当NR SCS=60khz时,此时NR的1subframe=4 slots=48/56symbols12对应扩展CP,14对应普通CP) 1 slot=0.25ms
当NR SCS=120khz时,此时NR的1subframe=8 slots=112symbols 1 slot=0.125ms
当NR SCS=240khz时,此时NR的1subframe=16 slots=224symbols 1 slot=0.0625ms
TA机制从基站角度看,是为保证所有UE UL到达基站的时间是子帧同步的,也就是从基站侧看,所有的UL/DL frame是同步的,但是具体到UE个体,UE的UL/DL frame是不同步的,即下图,UE 在UL frame i的传输应比UE相应的DL frame开始早T_TA=(N_TA+N_TA,offset)Tc开始;4-step RA发送PRACH时,N_TA应该取0,2-step RA 场景中msgA的发送包含在PRACH上发送Preamble和PUSCH发送的payload数据两个过程,这两个过程N_TA都应该取0。
有关T_TA的计算涉及N_TA和N_TA,offset的确定,N_TA,offset是小区级别的参数,由SIB1 中的参数确定;N_TA的确定则要根据场景不同的区分,先看N_TA,offset。
N_TA,offset的取值(38.213)
N_TA,offset确定方式在38.213中, 网络侧可以通过参数n-TimingAdvanceOffset向UE提供N_TA,offset值。 如果serving cell中没有配置n-TimingAdvanceOffset,则 UE 根据38.133 Table 7.1.2-2确定默认值。通过38.133 Table 7.1.2-2可以看出这个值的确定与组网形式有关系。
如果UE当前驻留的服务小区有配置2个UL carriers,那这两个carrier要采用相同的TA offset value N_TA,offset;UE收到某个TAG 的TA command时,UE要对这个TAG中的serving cell,基于N_TA,offset,对PUSCH/SRS/PUCCH等传输的UL timing做出调整。
对于带内连续同步EN-DC组合不适用max UL transmission timing difference requirement场景(如上表黄色字体部分),如果 UE 指示 ul -TimingAlignmentEUTRA-NR 为“required”,并且如果 MCG的TAG和SCG的TAG的TA indication显示两者UL Timing不同,UE要基于MCG serving cell所属TAG中的TA indication 调整频带的所有服务小区部分上的PUSCH/SRS/PUCCH传输timing。当PUSCH/SRS/PUCCH 在时间上与另一个 CG 中传输的RA preamble重叠时,UE不期望在这个CG中传输 PUSCH/SRS/PUCCH。
TA command应用场景(38.213)
对于SCS=2^u *15khz的情况,TAG 的timing advance command指示的是相对于TAG的当前UL timing要做出的调整量,对应的实际值是16*64*Tc/2^u 的倍数,例如TAG index是6,对于SCS=15khz ,最终实际值对应的就是 6×16×64×Tc;对于SCS=30khz ,最后实际值对应的就是 6×16×64×Tc/2;对于SCS=60khz ,最后实际值对应的就是 6×16×64×Tc/4;即16*64*Tc/2^u 相当于是TA command的调整粒度。和PUSCH power control 过程类似,TA也分为开环场景和闭环场景,具体如下。
开环场景,对应的就是对于RAR中的 TA command(4-step 的msg 2和2-step msgB)和 absolute timing advance command MAC CE(在2-step RA的某个场景下使用)的情况,其中的TA command对应12 bits,T_A取值范围 0~3846,最终得到N_TA=T_A *16*64/2^u,N_TA对应的是收到RAR或absolute timing advance command MAC CE后的第一次UL传输的调整量,最终的T_TA=(N_TA+N_TA,offset)Tc。
上图是实网下4-STEP RA中RAR 的log,带下来的TA value对应的是1,最终T_TA是啥,就代入上面的公式算下就好。
闭环情况也就是UE进入connected mode后的的TA调整机制,这个场景下网络侧通过Timing Advance Command MAC CE给UE下TA 命令,其TA command对应的是T_A index,代表当前N_TA要做出的调整,N_TA_new=N_TA_old +(T_A-31)*16*64/2^u 。如上图是Timing Advance Command MAC CE的结构,TAG Identity代表要做出调整的TAG id,Timing Advance Command 对应的就是T_A的index ,取值范围0~63(6 bits)。从这个公式可以看出当 T_A index =31 时,对应N_TA_new=N_TA_old,也就是UE进行没有移动;当T_A大于31 时,N_TA_new>N_TA_old,说明UE在远离基站;当T_A小于31 时,N_TA_new<N_TA_old,说明UE在靠近基站。
这个是闭环场景的连续的TAC MAC CE,可以看到TA Command的值从30变成了32,从现象上说明UE在从靠近基站的位置,移动到了远离基站的位置。
Multiple active UL BWPs中TA command的应用规则(38.213)
这段描述"The applicable N TA_new value for an UL BWP with lower SCS may be rounded to align with the timing advance granularity for the UL BWP with the lower SCS while satisfying the timing advance accuracy requirements in [10, TS 38.133]"感觉复杂的很,隐隐约约还涉及UE自主操作的部分,正如上面的一坨描述,在spec上没有找到这段描述具体解释,因此就去搜了3GPP讨论文稿,在R1-1804782中看到了这个问题的最初描述,在R1-1807336看到了要应用上面这段话的提议,最终体现在38.213也确实做出了对应修改,于是根据R1-1804782结合现有协议内容,我对这段话的理解如下:
如果UE有多个active UL BWPs在同一个TAG中,包括服务小区的两个UL载波中的UL BWP(例如UL CA场景),则TA command的值针对的是active UL BWP中最大的SCS的carrier;对于lower SCS UL BWP 的N_TA_new的计算,根据TA command 的值,UE要用lower SCS 的UL BWP 的TA粒度采取临近取值的方式对齐timing,但是UE相对精度满足上面这个table 7.3.2.2-1 中的 UE TA 调整精度要求。
对此举个例子,假设同一TAG内的两个 UL BWP SCS分别为15 kHz 和 60 kHz。 网络发送的TA command对应7,scs=60 kHz UL BWP将应用 7*16*64*Tc/4=28 *64×Tc的 TA 命令;以SCS=15khz 的TA 粒度 16×64×Tc,与28 *64×Tc接近的两个值是 16×64×Tc和32×64×Tc,那SCS=15khz的UL BWP 将采用32×64×Tc,因为这是与15 kHz 的 TA 粒度对齐的最近的 TA 点。
如果网络发送的TA command对应6,scs=60 kHz UL BWP将应用 6*16*64*Tc/4=24 *64×Tc的 TA 命令,以SCS=15khz 的TA 粒度 16×64×Tc,与24 *64×Tc接近的两个值是 16×64×Tc和32×64×Tc且差值相同,这时候两者可以随机选择任意一个。但是上面的两种取值方式势必会引起两个UL carrier timing 不一致的问题。
那接着看,如果TA command对应7,那lower SCS和 largest SCS的UL BWP分别应用的是具有32 * 64 Tc和28 * 64 Tc的TA命令, 这会在两个 UL 载波之间会产生 4 * 64 Tc 的时序差异。 如果网络发出四次 7 的 TA 命令,则在第三次 TA 命令后,累积的时间差将变为 12 * 64 Tc。 因此,在接收到第 4 个 TA 命令后,lower SCS 的 UL BWP 可以应用 16 * 64 Ts 而不是 32 * 64 Ts 的定时提前。 这将确保在根据第4个TA命令调整之后这两个UL carrier之间不会存在时间差异,以此方式解决timing差异。
TA command 应用的时间(38.213)
除去RAR UL grant或 fallbackRAR UL grant的PUSCH 调度及successRAR对应的PUCCH HARQ-ACK传输,如果UE在UL slot n收到了TA command,那UE要从UL slot n+k+1 起始位置开始按照TA command做出调整;其中k=⌈ N_subframe,u_slot *(N_T,1+N_T,2+N_TA,max+0.5)/T_sf ⌉,N_TA,max对应的是12 bits TA command field可以提供的最大TA value,N_subframe,u_slot对应的是每个subframe包含的slot 数,Tsf对应是1 subframe的持续时间,对应1ms。而slot n和N_subframe,u_slot的计算要以TAG中所有configured UL BWPs中的min SCS为准。N_TA,max则以所有configured UL BWPs和initial UL BWP中的min SCS为准确定。假设 T_TA=0,UL slot n 是与接收TAC 的PDSCH slot overlap的UL slot中的最后一个时隙。
N_T,1对应的是配置additional PDSCH DM-RS时,PDSCH proccess capability 1 相关N1 个symbols的持续时间(单位是ms);
N_T,2对应的是UE processing capability 1 对应的N2 个symbol的PUSCH preparation 持续时间(单位是ms);N1和N2如上图与配置的UL/DL BWP的SCS有关系。具体到TA command这里,N1和N2是根据TAG中所有UL carriers所有配置的UL BWP的SCS和对应的DL carriers的所有配置的DL BWP SCS中的最小SCS来确定的,同时u=0时,N1,0=14。
如果恰好在收到TA command到根据TA command进行UL调整的这段时间 UE要改变UL BWP,UE要根据 new active UL BWP的SCS确定TA command。如果UE在UL 传输调整后更改UL BWP,UE要在active UL BWP 更改之前和之后采用相同的absolute TA command value。
如果DL timing发生变化,但是没有通过UL timing调整补偿或仅部分补偿(without TA command),那则UE相应地改变N_TA。
两个临近的slots由于一个TA command产生overlap,则后一个时隙要为相前一个时隙让路,以便不影响TA command的接收。
MAC 层的UL TA控制过程(38.321)
上行定时维护(Time Alignment,TA)是为了保证同一个小区内不同终端的上行信号到达基站的时间是同步的,以避免终端间干扰。上行定时维护基于定时提前量组(Timing Advance Group,TAG)来实现。在多载波系统中,如果多个聚合载波处于不同的频段,需要的定时提前量可能不同,因此可以包含多个TAG,每个TAG可以包含一个或多个小区。网络侧通过RRC层消息配置serving cells group,相同TAG中服务小区的UL配置,采用的是相同的timing reference cell和相同的TA value。每个TAG可以包含一个或多个小区,其中包含spcell的TAG称为Primary Timing Advance Group(PTAG),其他TAG称为Secondary Timing Advance Group(STAG)。
对于每个定时提前量组,基站通过TA timer(TAT)和TA command(TAC)来实现对每个TAG的上行定时维护。具体如下图所示。
对于每个TAG,网络侧会配置一个timeAlignmentTimer,用于确定当前TAG中的serving cell 处于UL同步的时间 ,配置结构如上,timeAlignmentTimer可以配置的值为500ms/750ms .....及infinity。
对于闭环场景,UE已经有开始维护N_TA value,UE收到Timing Advance Command MAC CE后,UE根据TAG ID对指定的TAG应用该TA command并对该TAG start/restart timeAlignmentTimer。
对于开环场景,UE收到来自某个TAG SpCell的RAR和MSGB中的TA command后,
1 如果 MAC entity未在CBRA的随机接入前导码中选择RA preamble,那就是CFRA 的preamble,对应TAG应用收到的TA command并开启timeAlignmentTimer;
2 如果对应TAG的timeAlignmentTimer没有在run,就应用收到的TA command并开启timeAlignmentTimer;如果Contention Resolution没有成功或者SI request的Contention Resolution成功,UE传输在对应的HARQ ACK后,UE要停止对应timeAlignmentTimer。
3 除了1和2的其他情况,忽略收到的TA Command。
UE收到回复包含C-RNTI MAC CE的MSGA 的Absolute Timing Advance Command MAC CE后,要对PTAG应用该TA command并对PTAG start/restart timeAlignmentTimer。
同时UE和网络侧都会维护timeAlignmentTimer,网络侧要做的就是在timeAlignmentTimer超时之前实时下发TA command给UE,然后start/restart该timer,以便保持UL同步状态,那timeAlignmentTimer超时后,UE应该怎么做?
如果TAG对应的timeAlignmentTimer超时,那么终端在该TAG上行失步。终端在PTAG上行失步后的行为和STAG上行失步后的行为略有不同,原因是PTAG上行失步意味着终端在所有服务小区均上行失步,而STAG上行失步意味着终端仅在该STAG内的所有服务小区上行失步。看上面截图的描述也可以看出,在PTAG timeAlignmentTimer超时后的操作对应的是所有服务小区和所有TAG,而STAG timeAlignmentTimer超时后的操作,仅仅要对STAG内的服务小区采取措施,具体如下
PTAG上行失步后,UE要:
(1)释放所有服务小区的HARQ缓冲区;
(2)通知RRC层释放所有服务小区对应的PUCCH资源;
(3)通知RRC层释放所有服务小区对应的SRS资源;
(4)清空所有服务小区上的上/下行半持续调度的资源;
(5)认为所有TAG对应的TAT都超时;
(6)对所有TAG维护N_TA
STAG上行失步后,UE要:
(1)释放该TAG内所有服务小区的HARQ缓冲区;
(2)通知RRC层释放该TAG内所有服务小区对应的PUCCH资源;
(3)通知RRC层释放该TAG内所有服务小区对应的SRS资源;
(4)清空该TAG内所有服务小区上的上/下行半持续调度的资源;
(5)清空semi-persistent CSI report的PUSCH resource。
(6)对该TAG维护N_TA。
当MAC entity 认为超过TAG之间的最大UL 传输timing difference 时就会停止对SCell的上行传输,MAC entity认为 与 SCell关联的 timeAlignmentTimer 已超时。
当与该服务小区所属的 TAG 关联的 timeAlignmentTimer 未运行时,MAC entity不应在服务小区上执行任何UL传输(除了RA preamble和 MSGA 传输)。 此外,当与 PTAG 关联的 timeAlignmentTimer 未运行时,MAC entity不应在任何服务小区上执行任何UL传输,除了 RA preamble和 MSGA 传输。
UL 失步后的行为,只能进行4-step和2-step UL传输,其他UL 传输都不能进行,那只要UE有UL data要发送,肯定要重新获得UL 同步,毫无疑问就要进行RA过程。
具体到协议上的描述就是,RRC connected UL 处于失步状态,当UE有DL/UL data arrival的时候,就要出发RA重新获得上行同步。
上面是timeAlignmentTimer配置成有限value的情况,可以正常计时,要是timeAlignmentTimer配置成infinity,UE就不能通过该timer感知UL是否仍处于sync,上面说的这条路就行不通了,配置成infinity后,timeAlignmentTimer也就不涉及超时的问题,也就不会清空对应的PUCCH/SRS/资源以及上/下行半持续调度资源,这时候还有其他机制可以使得UE重新获得UL同步,例如UE 处于UL失步状态且有UL data要发的话,就会触发SR,SR 重传达到最大次数,又会触发RA等等,RA也行不通,就走RLF的后续老路。
Timing 相关要求(38.133)
UE transmit timing要求
在connected mode UE要能够根据reference cell frame timing的改变,做出调整。UL frame的传输要比reference cell相应DL frame早 (N_TA+N_TA offset)*Tc,也就是38.211中的那个TA 图。
对于pTAG中的serving cell,UE要把Spcell当作reference cell得到pTAG中cell的transmit timing。对于sTAG中的serving cells,UE可以根据任意active SCell作为reference cell 得到sTAG中cell的transmit timing。这里就涉及UE 初始传输timing accuracy和渐进timing 调整的需求。
UE initial 传输timing error应该[-Te,+Te]之间,这个Te值根据FR1/2和SSB SCS及UL signal SCS的不同确定,如上表。Te还要考虑SSB SCS的原因是,UE要用SSB做DL timing 评估 ,SSB SCS 越大,UE就可以得到更准确的DL timing (精度更高), 相应的Te要求更严格。例如 对于FR1 相同的UL SCS 15khz, SSB SCS 是15khz时,te是12×64×Tc,,SSB SCS是30khz时,te是8×64×Tc (R4-2107031)。
initial传输对应的就是DRX cycle中的第一次PUCCH,PUSCH SRS或者4-step PRACH传输或msgA的传输,对于上述情况,UE应该满足initial传输的Te要求,前提是在每160 ms UE至少有一个 SSB 可用与DL timing评估。
UE initial transmit timing control requirement的reference point 对应的是reference cell DL timing -((N_TA+N_TA offset)*Tc);DL timing对应的是UE天线收到reference cell DL frame的first path的时间。DL timing,UL timing和Te之间的关系如下图。
UE 应根据检测到的DL timing减去 (NTA+NTAoffset)T’c来设置其transmit timing,其中 T‘c 和 Tc 之间的差异由 UE Frequency error确定。所以Actual UE transmit timing包括DL frame timing检测误差、T'c和Tc的差值、基带发射timing设置误差以及从基带到发射天线连接器的发射延迟误差。
由于DL frame timing 检测误差是包含在UE transmit timing error中的,但是R16中 DL timing的定义并不是很准确,因而R17重新完善了其定义。R16中"detected" 容易引起UE已经检测到路径并且检测error被排除在UE transmit timing error之外的意思,R17 DL timing对应的是UE天线收到 reference cell DL frame的first path的时间。
对于PRACH 场景N_TA=0,是开环场景;对于其他channels,(N_TA+N_TA offset)×Tc的值会根据TA的变化而变化,N_TA也会跟随接收的TA Command发生变化。N_TA offset 的确定与cell的duplex mode和Frequency range 有关系,具体如上表。
当UE transmission timing和reference timing 之间的error超过[-Te,+Te]的范围,UE要采取措施调整以便使得timing保持在[-Te,+Te]范围内。reference timing指的就是比reference cell的DL timing提前(N_TA+N_TA offset)×Tc 进行UL 的transmit。
而调整要遵循一定的规则:
1 一次调整的时间变化幅度的最大值是Tq。
2 最小总调整率应为每秒Tp。
3 最大总调整率应为每 200 毫秒 Tq。
其中最大自主时间调整步长Tq和总调整率Tp在table 7.1.2.1-1中根据Frequency range 和UL signal SCS的不同 有具体规定。
Timing advance要求
在 EN-DC、NR-DC、NE-DC 和 NR SA mode下,gNB会向 UE 发送MAC CE 相关的TA command以便调整传输timing。
UE在slot n收到TA command后,应该在slot n+k+1 根据TA command对UL transmission timing做出调整;即使UE由于信道评估过程而无法进行configured UL 传输,也要对当前的UL传输timing做出相应调整,具体k的确定方式在上面的内容有说过。
timing advance adjustment accuracy,表示调整timing的精度,例如网络下发TAC要求UE调整32Tc,UE根据网络命令进行了32Tc的调整,但是实际上,UE并没有调整32Tc,这里就会存在误差,这就是timing advance adjustment accuracy,也就是UE调整的TA量和网络期望的TA量存在差异,这个和UE晶振精度有关系,具体的UE进行的timing调整的精度不能低于Table 7.3.2.2-1中的要求,这个精度是与上次UL传输做的对照;如果UE调整的timing和网络侧要求timing有大的误差的话,就会引起问题。