无线通信,最重要的前提是建立接收端和发射端之间的时间同步。NR中,DL同步一般在小区搜索过程通过decode PSS SSS PBCH(MIB),之后根据协议规定CORESET和 search space 去找SIB1,完成小区驻留的过程完成;这个过程可以获得小区信息,系统帧号,initial Rach参数等必要的信息,进而完成下行同步过程。 而随机接入过程的作用是完成上行同步,进而向网络端发送data 。随机接入包含CBRA 和CFRA两种方式。下面简单说明下两者的区别。典型的Contention Based RACH Procedure 如下 :
i) UE --> NW : RACH Preamble (RA-RNTI)msg1
ii)UE<--NW : Random Access Response (Timing Advance, T_C-RNTI, UL grant for L2/L3 message) msg2
iii) UE --> NW : L2/L3 message(UE ID)msg3
iv) Msg4 for early contention resolutionmsg4
假如两个UE 具有相同的RA-RNTI 且发送了相同的preamble 给网络,之后网络端在第二步又给UE发送了相同的msg2 (T-C-RNTI 和UL grant),两个UE会在相同的时频域资源发送msg3 ,至此对于网络端来说是一个冲突问题,两台UE用相同的资源和网络端通信显然是不能发生的,因此这时候就需要第三和四步,通过UE ID解解决这个冲突问题,确定网络端到底和哪一个UE进行进一步交流。这就是CBRA基本过程及其必要性。
对于CFRA,网络端会提前给配置UE preamble 等专用资源,这里就确保了不可能出现多台UE 拥有相同资源的情况,因而可以省去解决冲突的过程,过程也相对简单。CFRA基本过程:
i) UE<--NW:RACH Preamble (PRACH) Assignment
ii) UE-->NW : RACH Preamble (RA-RNTI)
iii)UE<--NW : Random Access Response (Timing Advance, C-RNTI, UL grant for L2/L3 message)
RA触发场景
RA具体过程主要是在38.321 5.1。如上是38.300中有关会引起RA过程的event总结,截止至R17,引起RA过程的event如上。
在NR R16 版本中,引入了2-step随机接入(2-step RACH),因此从NR 16开始,有两种类型的随机接入:
4-step RACH,也称为 Type-1 random access procedure
2-step RACH,也称为 Type-2 random access procedure
这两种类型的随机接入都支持:基于竞争的随机接入(CBRA)和基于非竞争的随机接入(CFRA)的2 step RACH接入。
对于同一个BWP,网络侧不能同时配置2-step和4-step的CFRA资源,另外只有handover场景支持CFRA 2-step RA。
UE在随机接入过程启动时要根据网络配置选择随机接入类型:
(1)当未配置CFRA资源时,UE使用RSRP threshold在2-step RA和4-step RA之间进行选择(在下一篇再详细贴出这步具体协议内容);
(2)当配置了4-step RA的CFRA资源时,UE以4-step RA执行随机接入;
(3)当配置了 2-step RA的CFRA资源时,UE 使用2-step RA执行随机接入。
4-step RA的MSG1由一个PRACH preamble组成。 MSG1 传输后,UE 在配置的RAR window内监视来自网络下发的RAR。 对于CFRA,MSG1传输会用网络端分配的dedicated preamble,然后在从网络接收到RAR后就结束随机接入过程。 对于CBRA,收到RAR后,UE 使用RAR中调度的UL grant 发送MSG3,并监听 Contention Resolution。 如果在 MSG3(重新)传输后Contention Resolution未成功,则UE重新进行MSG1的传输。
PRACH 资源的选择
UE获得随机接入所需配置后,可以发起初始随机接入流程,RA初始化完成后(设置完相关参数后),首先要选择Preamble资源
UE初始接入时:
(1)选择一个满足RSRP-Threshold要求的SSB,发起接入,如果都不满足RSRP-Threshold,则选择任意一个SSB。
(2)如果MSG3没有发送过,则根据潜在MSG3大小与ra-Msg3SizeGroupA判定是选择Group A还是Group B的Preamble资源;
(3)如果MSG3重传,则选择第一次传输时所用Group 的Preamble资源
(4)从当前SSB的Preamble Group中等概率的随机选择RA-PreambleIndex,这里也是进行CBRA的源头,如果有网络侧分配的dedicated preamble就会直接进行CFRA。
PRACH 资源的选择
UE获得随机接入所需配置后,可以发起初始随机接入流程,RA初始化完成后(设置完相关参数后),首先要选择Preamble资源
UE初始接入时:
(1)选择一个满足RSRP-Threshold要求的SSB,发起接入,如果都不满足RSRP-Threshold,则选择任意一个SSB。
(2)如果MSG3没有发送过,则根据潜在MSG3大小与ra-Msg3SizeGroupA判定是选择Group A还是Group B的Preamble资源;
(3)如果MSG3重传,则选择第一次传输时所用Group 的Preamble资源
(4)从当前SSB的Preamble Group中等概率的随机选择RA-PreambleIndex,这里也是进行CBRA的源头,如果有网络侧分配的dedicated preamble就会直接进行CFRA。
如上是CBRA的基本过程,下面以CBRA为例进行介绍
Msg1 - PRACH Preamble
PRACH power control
Msg1 的发送功率如上述,而Msg 3的发送要用到PUSCH power control。其中PREAMBLE_RECEIVED_TARGET_POWER=preambleReceivedTargetPower + DELTA_PREAMBLE + (PREAMBLE_POWER_RAMPING_COUNTER – 1) × PREAMBLE_POWER_RAMPING_STEP,这些参数都在SIB1中配置。
而Frequency domain location (resource) for PRACH Preamle由RRC parameter msg1-FDM 和 msg1-FrequencyStart决定,Time domain location (resource) for PRACH Preamle由 RRC parameter prach-ConfigurationIndex 决定。
DELTA_PREAMBLE 的确定
RA-RNTI 的计算
UE发送完Msg1,就需要用RA-RNTI去PDCCH上接收RAR相关的DCI 1_0,上图就是RA-RNTI的计算:
s_id 是PRACH 的起始符号索引(0<=s_id<14;t_id是系统帧内 PRACH occasion的起始slot 的索引(0<=t_id<80);f_id 是PRACH 频域位置索引(0<=f_id<80)
ul_carrier_id是Msg1 发送的上行载波指示(0 for NUL carrier, and 1 for SUL carrier)。
如果UE没有在RA-ResponseWindow 内成功接收到Msg2/在ra-ContentionResolutionTimer expiry前没有收到Msg4 /收到的Msg2的RAPID和Msg1不匹配/Msg4携带的UE ID(或加扰的C-RNTI)和Msg3不匹配,都是RA失败,会再次进行RA资源选择,重新发送Msg1(Preamble)。
Msg 1重传时会进行功率抬升PREAMBLE_POWER_RAMPING_STEP ++,当超过 preambleTransMax 时,会向RRC 报Random Access problem引起的RLF。
Msg 2 - RAR (PDCCH/PDSCH )
UE送完Msg1,紧接着就要收RAR。
1 gNB发送用RA-RNTI加扰的DCI给UE。
2 UE 尝试在RAR-window period内用RA-RNTI 检测 PDCCH (DCI) 接收RAR,DCI 1_0 。
3 Msg2 PDSCH Resource Allocation Type 是Resource Allocation Type 1。
4 PDSCH Time Domain Resource Allocation 由 DCI format 1_0(RA RNTI)和PDSCH-ConfigCommon K0,SLIV 决定,如上表所示。
5 SIB1 中会在 initialDownlinkBWP 中配置RA-SearchSpace 时频域资源用于RAR 的接收;
6 RAR-Window 由SIB1 中的IE rar-WindowLength 配置;
7 UE 成功decode PDCCH ,就可收到PDSCH 上的RAR;
8 收到RAR后, UE会检测RAR 中的RAPID in RAR 是否与UE RAPID一致。
RAR由DCI 1_0 调度,频域用resource allocation type 1;当使用DCI 1_1时,如果RRC 层参数pdsch-Config中 resourceAllocation 设置为dynamicswtich,这由收到的DCI 中的Frequency domain resource assignment 决定用resource allocation type 0 还是type 1;其他情况就参照resourceAllocation 中的设置,采用对应的type。
pdsch-Config(BWP级别配置)中 配置resourceAllocation,多出现在RRC Setup和RRCReconfiguration;在idle->connected 的RACH 情况,SIB1 配置小区级参数PDSCH-ConfigCommon,并不会配置resourceAllocation,一般使用DCI 1_0 调度,所以应用黄色字体部分用resource allocation type 1。
UE发送MSG1后,开始ra-ResponseWindow窗口,在窗口内检测RAR的调度
RAR包含三种MAC subPDU
(1)a MAC subheader with Backoff Indicator only;
(2)a MAC subheader with RAPID only(i.e. acknowledement for SI request);
(3)a MAC subheader with RAPID and MAC RAR.
其结构如上。
Backoff indicator
RA fail且RAR 中带有BI ,但RA过程还没有结束时,会进行BI 的设置,从[0,preamble_backoff] 均匀分布中选取一值,作为BI;如果在backoff 期间UE根据提供的Dedicated Preamble CFRA ,比如相关的Dedicated Preamble的SSB波束满足RSRP门限,忽略BI 直接进行RA资源选择;否则等BI超时后再进行下一次RA 过程。
MAC payload for Random Access Response
RAR 最重要的参数就是TA UL Grant 及TC-RNTI,上面TPC command主要涉及到Msg3 的PUSCH 功控 。
收到RAR 后 需不需要发送HARQ_ACK?
根据协议收到RAR后不需要发送HARQ ACK/NACK,实际中,如果UE没有再次发送PRACH ,则gNB认为UE 收到了RAR;否则,UE 会再次发送PRACH。
Step (3) : Msg3 (PUSCH)
发送 Msg3之前,GroupA GroupB 的选择:
(1)如果MSG3没有发送过,则根据潜在MSG3大小与ra-Msg3SizeGroupA判定是选择Group A还是Group B的Preamble资源;有配置Group B,Msg3 size 大于ra-Msg3SizeGroupA 时,就选择GroupB发送 ,否则选Group A;没有配置GroupB 就选择GroupA发送。
(2)如果MSG3重传,则选择第一次传输时所用Group 的Preamble资源
UE根据根据RRC参数msg3-transformPrecoder决定是否对Msg3应用transform precoding;之后UE在PUSCH 上发送 Msg3 携带UE ID。
如上分别是两本spec中msg3的定义,38.300中 说MSG3 是RA过程中的UE的第一次调度传输,而38.321中的描述则显得更为具体,Msg3是RA过程的一部分,msg3会在UL-SCH上传输,msg3中会包含C-RNTI MAC CE或CCCH SDU。这里的CCCH SDU主要是以上消息,都是由idle mode进入到connected mode时,UE侧发起的比较常见消息,只是要结合场景区分要发哪个消息。
NR中,如果UE处于RRC IDLE状态,UE标识是ng-5G-S-TMSI-part1或随机数(39位),如果UE处于RRC INACTIVE状态,UE标识是resume Identity(24位或40位)。具体规定如上图。
协议中规定,UE 收到RAR后根据UL grant 发送PUSCH data时,应该使用RV 0。Msg3 PUSCH 重传(有的话),要用TC-RNTI 加扰DCI 0_0 发送。在收到RAR 至发送PUSCH 之间的时隙间隔 为n+k2+ Δ。
RAR 与之后RAR UL grant 的PUSCH传输的符号间隔 为N_T,1+N_T,2+0.5 ms。
Step (4): Msg4 - Contention Resolution (PDCCH/PDSCH)
发送完Msg3后:开启ra-ContentionResolutionTimer;监听TC-RNTI 加扰的DCI;如果对应DCI 成功decode,之后解析出MAC CE,基站在MSG4通过UE Contention Resolution Identity MAC CE(48位)携带UE ID(如果长度超过48位,只取前48位),如果MSG4和MSG3携带的UE标识相同,UE认为竞争解决,随机接入成功。并将TC-RNTI 升级为C-RNTI......
Step (5) : HARQ ACK for Msg4
一旦成功解析Msg4,UE要在PDSCH 上发送对应的HARQ ACK,此时PDSCH的最后一个符号与HARQ-ACK的第一个PUCCH符号的间隔为N_T,1+0.5ms。
在LTE 时,UE发送MSG1 后,在随机接入响应窗口 RA-ResponseWindow范围内没有收到RAR,
UE需要重发MSG1,重发时,要进行功率攀升(Ramping)
38.321 5.1.2 RA 资源选择章节中 并没有找到针对CBRA Msg1失败后应该怎么做的描述;从5.1.3 章节中有看到一句如上描述,应该是在重传Msg1时,可能会重新选择SSB,当继续使用之前的SSB 时,需要进行功率攀升
如果切换了SSB ,则就不需要进行功率攀升。