NR PRACH(五) type1 RA(4-step)基本过程

简介: 无线通信,最重要的前提是建立接收端和发射端之间的时间同步。

无线通信,最重要的前提是建立接收端和发射端之间的时间同步。


NR中,下行链路的同步,一般在小区搜索过程通过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 resolution   msg4


假如两个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触发场景

392a79dae154492192bc96b9820212f5.png

在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- CFRA 的2 step RACH接入


下面先讲述常规的4-step RACH。


PRACH 资源的选择


UE获得随机接入所需配置后,可以发起初始随机接入流程,首先要选择Preamble资源


UE初始接入时:


    选择一个满足RSRP门限要求的SSB(SSB和PRACH 对应),发起接入,如果都不满足RARP门限,则选择任意一个SSB。


     如果MSG3没有发送过,则根据Group A/B配置,判定MSG3大小,选择Group A或Group B的Preamble资源;


     如果MSG3重传,则选择第一次传输时所用Group 的Preamble资源


    从当前SSB的Preamble Group中等概率的随机选择RA-PreambleIndex进行发送。


90de96639df84ef29ebaa06fb49e0841.png

下面以CBRA 为例进行介绍


Msg1 - PRACH Preamble


PRACH power control


9124512254744a2ca125c6a3bcfb6bed.png

1e1ddedde78b4a92bb87efcc98cf17e1.png

Msg1 的发送功率如上述,Msg 3的发送要用到PUSCH power control ,这里先略过


其中 PREAMBLE_RECEIVED_TARGET_POWER = preambleReceivedTargetPower + DELTA_PREAMBLE + (PREAMBLE_POWER_RAMPING_COUNTER – 1) × PREAMBLE_POWER_RAMPING_STEP


如果UE没有在RA-ResponseWindow 内成功接收Msg2/在ra-ContentionResolutionTimer expiry前没有收到Msg4 /收到的Msg2的RAPID和Msg1不匹配,/Msg4携带的UE ID(或加扰的C-RNTI)和Msg3不匹配,都是失败,会再次进行RA资源选择,重新发送Msg1(Preamble)。


Msg 1 重传时 会进行功率抬升PREAMBLE_POWER_RAMPING_STEP ++


当超过 preambleTransMax 时,会向RRC 报Random Access problem RLF。


DELTA_PREAMBLE 的确定

1fe040b2470a458796873a6ffc513939.png


RA-RNTI 的计算

ae9220aab0654fc68de4a8034e371f47.png

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)


PRACH Occasion 的时频域资源之前的帖子有解释,这里主要集中在信令流程处理过程。


Frequency domain location (resource) for PRACH Preamble 由  RRC parameter msg1-FDM 和 msg1-FrequencyStart决定


Time domain location (resource) for PRACH Preamble由 RRC parameter prach-ConfigurationIndex 决定


Msg 2 - RAR (PDCCH/PDSCH )


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 RAR-Window 由SIB1 中的IE rar-WindowLength 配置


6 UE 成功decode PDCCH ,就可收到PDSCH 上的RAR。


7 收到RAR后, UE会检测RAR 中的RAPID in RAR 是否与UE RAPID 一致

b48b20cbe6fc484ab8e8288bbd644c59.png78cabb3657e3414cb90a1e19b5b20456.png

SIB1 中会在 initialDownlinkBWP 中配置RA-SearchSpace与CORESET 0 确定的时频域资源 用于进行RAR 的接收.


如何确定 Resource Allocation Type ?

07cb60c16d904610a6b487ffb8273c29.png

当用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。


Tips:pdsch-Config(BWP级别配置)中 配置resourceAllocation,多出现在RRC Setup和RRCReconfiguration;在idle->connected  的RACH 情况,SIB1 配置小区级参数PDSCH-ConfigCommon,并不会配置resourceAllocation,一般使用DCI 1_0 调度,所以应用黄色字体部分 用resource allocation type 1;具体resource allocation type 0/1 代表什么意思 后面介绍PDSCH时再阐述。

11f1fd9bc0d142d3b5c2e15ee280d381.png

5d82ff4379734340b65211d2c3ae884d.png

98c1db3e13814ede9a6721a1c0c0aa88.png

UE发送MSG1后,开始ra-ResponseWindow窗口,在窗口内检测RAR的调度


RAR包含三种MAC subPDU:


a MAC subheader with Backoff Indicator only;


a MAC subheader with RAPID only(i.e. acknowledement for SI request);


a MAC subheader with RAPID and MAC RAR.


Backoff indicator

c2a8da9a09714bb9bc68e631f832530b.png

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

0832865d236f4b808aad592baaa87d73.png695d18b714b24837aa9385f68be9ae7c.pngd2ea32e4eb4b4180bd1dc3900555ccb5.png

上面TPC command主要涉及到Msg3 的PUSCH 功控 ,之后再介绍


收到RAR 后 需不需要发送HARQ ACK.NACK?

f24827c45e5846379faf5f3de037963b.png

根据协议收到RAR 后不需要发送HARQ ACK/NACK


实际中,如果UE 没有再次发送PRACH ,则gNB认为UE 收到了RAR;否则,UE 会再次发送PRACH.


Step (3) and (D) : Msg3 (PUSCH)


GroupA GroupB 的选择:

799d8488e0894d868c2a64280e42130a.png

0316818c578348898ca7caf0bd1b697f.png

f59bdebee4624c438805c9fd7eb74d92.png

1 Msg3 没有传输时,


  有配置Group B:


 Msg3 size 大于ra-Msg3SizeGroupA 时,就选择GroupB发送 ,否则选Group A。


  没有配置GroupB 就选择GroupA发送


2 如果Msg3 是重传,这选择第一次发送Msg3的group。

5eafd4c385974be5be80ef65863b55b0.png

1 UE 决定是否对Msg3 应用transform precoding 根据RRC 参数msg3-transformPrecoder


2 之后UE在PUSCH 上发送 Msg3 携带UE ID


NR中,如果UE处于RRC IDLE状态,UE标识是ng-5G-S-TMSI-part1或随机数(39位),如果UE处于RRC INACTIVE状态,UE标识是resume Identity(24位或40位)

ec37e4c01d104891a47806af49b21dbe.png

b2566da817574425a573b04af1aa3788.png

协议中规定,UE 收到RAR后 根据UL grant 发送PUSCH data时,应该使用RV 0。


Msg3 PUSCH 重传(有的话),要用TC-RNTI 加扰DCI 0_0 发送。


在收到RAR 至发送PUSCH 之间的时隙间隔 为n+k2+1b87f61ff8b54ec09d48c3fa148c10a0.png

d93a6326557d440697587dc0dd44eff5.png

RAR 与之后RAR UL grant 的PUSCH传输的符号间隔 为

d729e37b7de047b08f8820193f8e9fbc.png


Step (4) and (E) : Msg4 - Contention Resolution (PDCCH/PDSCH)  


发送完Msg3后:


1 开启ra-ContentionResolutionTimer


2 监听TC-RNTI 加扰的DCI


如果对应DCI 成功decode,之后解析出MAC CE,基站在MSG4通过UE Contention Resolution Identity MAC CE(48位)携带UE标识(如果长度超过48位,只取前48位),如果MSG4和MSG3携带的UE标识相同,UE认为竞争解决,随机接入成功。并将TC-RNTI 升级为C-RNTI。


......e6231d6c60fb4958ae36fc9757c7cea3.png

Step (5) and (F) : HARQ ACK for Msg4  

9758d754da2349248c3c01145158b407.png

一旦成功解析Msg4,UE要在PDSCH 上发送对应的HARQ ACK。


PDSCH 的最后一个符号与HARQ-ACK的第一个PUCCH 符号的间隔为fbd51deb8e9d42d59acea822826edbe3.png


在LTE 时,UE发送MSG1 后,在随机接入响应窗口 RA-ResponseWindow范围内没有收到RAR,UE需要重发MSG1,重发时,要进行功率攀升(Ramping)


38.321 5.1.2 RA 资源选择章节中 并没有找到针对CBRA Msg1失败后应该怎么做的描述;从5.1.3 章节中有看到一句如下描述,应该是在重传Msg1时,可能会重新选择SSB,当继续使用之前的SSB 时,需要进行功率攀升


如果切换了SSB ,则就不需要进行功率攀升

f16f922bf54946348dc04cba5cc1f001.png

相关文章
|
2月前
|
5G UED
5G NR中的寻呼过程
【8月更文挑战第31天】
38 0
|
3月前
|
Linux
gpio_direction_output 和 gpio_set_value之间的关系
gpio_direction_output 和 gpio_set_value之间的关系
304 0
ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义
ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义 这是因为在一个新的会话中,序列需要初始化,也就是通过.NEXTVAL来完成序列的初始化。
2015 0
|
12月前
|
前端开发 芯片
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
291 0
UE在Sequence输出时设置ID通道
UE在Sequence输出时设置ID通道
165 0
UE在Sequence输出时设置ID通道
|
调度 C++
NR HARQ (四)dynamic codebook
上篇提到type-1 HARQ-ACK codebook,即semi-static codebook,UE要为每个PDSCH候选位置生成反馈,也会包含实际没有下行传输的PDSCH,再加上配置CBG的场景,HARQ-ACK 码本中包含的无用信息会更多,开销确实很大。因而,Type-2 HARQ-ACK 码本即dynamic 码本就出现了,目前看实网中一般都用的dynamic 码本,还没有见过semi-static 码本,长话短说,下面就看下相关内容。
NR PDSCH(六) DL data operation
NR中,网络端会根据UE业务动态的调整BWP,进而改变频域资源范围;不同的BWP会配置CORESET/Searchspace确定不同的时频域资源,让UE在对应的资源上进行盲检接收DCI;通过DCI获得调度信息后,再去PDSCH对应的时域资源和频域资源上 decode data。
|
中间件 PHP
tp5与tp6的区别--详解
tp5与tp6的区别--详解
254 0
|
开发工具 C++
【玩转RT-Thread】ART-Pi 网络时钟(下)
【玩转RT-Thread】ART-Pi 网络时钟
152 0
|
传感器 芯片 内存技术
【玩转RT-Thread】ART-Pi 网络时钟(上)
【玩转RT-Thread】ART-Pi 网络时钟
152 0