UE侧MSG3处理思维导图
MSG3的关键几个问题点
代码部分可以根据导图的流程来阅读代码,主要的关键流程再导图中已经标识的比较详细了,下面主要来介绍下以下的几个关键问题:
- MSG3的上行资源在哪发送?
- MSG3的内容是怎么来的?
- 基站如何知道给MSG3分多少的资源?
- MSG3有重传吗?重传次数怎么定?
- 发射功率怎么计算?
MSG3的上行资源在哪发送?
在之前的文章上也提到过,MSG3是上行第一个上行数据,由于UE还没有接入成功,因此基站无法通过DCI0调度MSG3,MSG3的资源是在RAR(MSG2)里面的UL Grant字段指示给UE的,这个指示的频域的位置。
时域上,MSG2和MSG3之间的时序是固定的,FDD固定为6,TDD根据配比不同,情况有所不同。而且基站可以通过delay字段,可以允许MSG3再往后延后1个TTI。
MSG3的内容是怎么来的?
UE的MSG3内容根据随机接入的场景是不一样的,简单总结一下:
1、初始接入
MAC subHeader(8bits) + RRC connection request (48bits) = 56bits
2、重建立
MAC subHeader(8bits) + RRC connection Reestablishment request (48bits) = 56bits
3、上行失步,上行数据到达或者下行数据到达
MAC subHeader(8bits) + CRNTI(16bits) + MAC subHeader(8bits) + LongBSR (24bits) + MAC subHeader(8bits) + PHR(8bits)= 72bits
4、切换
MAC subHeader(8bits) + CRNTI(16bits) + MAC subHeader(8bits) + LongBSR (24bits) + MAC subHeader(8bits) + PHR(8bits) + MAC subHeader(8bits) + RLC Header(16bits) + PDCP Header(8bits) + RRCReconfiguraitonComplete(16 bits) + MAC-I (32bits) = 152 bits
以上的都是以最大的发送数据来计算,根据实际情况可能会少于上述的情况。
以初始接入为例,RRC connection request的内容需要从NAS层->RRC层->RLC层,数据调用的路径参考开头的代码导图。
基站如何知道给MSG3分多少的资源?
这个问题可以接着上面的进行分析,实际上在MSG3 之前,UE只发送了一个PRACH,基站就是通过PRACH的preamble idx来进行区分的,通常根据配置,prach 分为 GROUP A和GROUP B,UE在发送PRACH的时候也会根据自身MSG3的大小,选择不同的preamble idx,这样基站可以分不同的TBSIZE给UE。另外MCS的选择,通常基站会选择保守调度来保证MSG3的解调性能。
MSG3有重传吗?重传次数怎么定?
MSG3是有重传的,基站可以根据情况选择自适应重传或者非自适应重传。但是由于基站还没有下发配置,没有HARQ的重传次数配置,MSG3的重传次数是在SIB里面指定的,接入完成之后的,基站会下发重传次数的配置,后续的其他数据都以新的配置为准。
发射功率怎么计算?
总结
MSG3是上行的第一个数据,基站要保证MSG3的解调性能,因此在功率、MCS的选择上都要有算法的仿真,对接入成功率KPI有关键的影响。