随机接入流程 - 2-Step RA

news2024/12/23 1:48:31

Overview

在LTE和R15 NR中,终端以及基站采用的接入技术均为四步随机接入(4-Step Random Access)技术,即终端和基站之间需要经过5次信息交互(这里我们所说是的基于竞争的随机接入过程,对于非竞争随机接入过程只需要3次信息交互)才能完成随机接入过程,如下:

  1. 终端向基站发送Msg1,即前导序列(preamble),基站根据所收到的preamble来判断对应终端的上行传输需要提前多少时间;
  2. 基站如果允许终端接入,则向终端发送Msg2,即随机接入响应消息(RAR),该消息主要包含了上行时间提前量指示(Timing advance),对于第一条上行传输消息Msg3的上行授权(UL grant),前导序列标识(RAPID),临时C-RNTI(T-CRNTI);
  3. 终端使用Msg2中上行授权提供的上行时频域资源信息,向基站发送Msg3消息,即RRCSetupRequest消息,该消息的MAC CE(MAC control elemtent)中包含了长度为48个bits的竞争解决ID。
  4. 基站接收到多个终端发送的Msg3消息,从中选择一个终端向其发送Msg4消息,即RRCSetup消息,其中包含了该终端在Msg3中包含的竞争解决ID。
  5. 各终端接收Msg4消息,并检查其中的竞争解决ID是否与自己Msg3中发送的竞争解决ID相同,如相同则认为竞争成功,发送Msg5, 即RRCSetupComplete消息,随机接入过程完成;否则认为竞争失败,重新发起随机接入里程。

从以上步骤可以看出,当前的4-step随机接入流程引入了相当大的时延开销。为了降低随机接入过程中的时延开销(主要是控制面),NR R16版本引入了2-step随机接入流程技术。顾名思义,这一新的随机接入技术只有2步流程:

  1. 第一步,设计上行MSGA传输消息,该消息包含了4-step RACH中的Msg1和Msg3消息。
  2. 第二步,设计下行MSGB传输消息,该消息包含了RAR消息,用于竞争解决。基站在接收到MSGA消息之后发送MSGB消息给终端。

  从上图可以看出,竞争解决过程被放在了第二步骤之中。因此,2-step RACH技术简化了随机接入过程,提升了系统传输效率,它不仅能在终端接入基站建立RRC连接时降低时延开销,也能降低终端在RRC Connection resume过程的时延开销以及降低终端在毫米波场景中进行beam failure recovery流程的实验开销。

除了基于竞争的随机接入(CBRA), 2-step RACH同样支持非竞争的随机接入(CFRA),需要注意的是,2-step RACH的CFRA模式只能用于切换流程。

在3GPP R16版本引入2-step RACH以后,允许终端可以仅配置4-step RACH或者2-step RACH,同时也支持两种随机接入方式同时配置。由于终端同时配置了4-step和2-step RACH类型,终端就需要有一种机制可以判断接入时使用哪种RACH类型,具体如下:

  • 当没有为终端配置非竞争随机接入资源时,终端使用RSRP阈值来判断使用4-step还是2-step RA:

                                   

  • 当基站给终端配置了4-step RACH对应的非竞争随机接入(CFRA)资源,则终端使用4-step RACH进行随机接入;
  • 当基站给终端配置了2-step RACH对应的非竞争接入资源,则终端使用2-step RACH进行随机接入。

 N.B.

  1. 对于非竞争接入过程(CFRA),基站不能在同一时间为一个终端在同一个BWP内既配置有4-step CFRA RACH资源,又配置2-step CFRA RACH资源。
  2. 在R16版本中,2-step RACH的非竞争接入过程只能用于切换过程。

MSGA - MSGA的传输设计与资源配置

我们前面说过,MsgA中包含了4-step RACH中的Msg1和Msg3,即preamble资源和传输Msg3所需的PUSCH资源,其中preamble资源使用RACH Occasion承载。根据是否给终端同时配置了2-step RACH和4-step RACH的场景,MSGA中的RO资源的分配也分为两类:

  1. 基站仅给终端配置了2-step RACH资源:在这种场景中,基站使用2-step RACH专有的信令msgA-SSB-PerRACH-OccasionAndCB-PreamblesPerSSB为终端配置RACH occasion资源。配置方式与4-step RACH类似,即N个SSB关联到一个RACH occasion上,同时每个有效RACH occasion上的每个SSB又关联R个基于竞争的preambles(这样做的原因我们已经在博文‘随机接入流程 - 4 Step RA’中解释过了,这里不再做更多说明)。
  2. 基站同时给终端配置了2-step RACH过程和4-step RACH过程,在这种场景下,2-step RACH过程通过信令参数msgA-CB-PreamblesPerSSB-perSharedRO和4-step RACH过程共享Rach occasion的配置参数(当然也可以分开配置,分开配置就相当于独立配置2-step RACH资源,即第一类)。也就是说2-step RACH可以和4-step RACH共享Rach occasion,但是在相同的Rach occasion中使用不同的preamble。4-step RACH中哪些Rach occasion可以和2-step RACH共享通过信令参数msgA-SSB-SharedRO-MaskIndex指定:

                  

下面我们再看看MsgA中的PRACH资源和PUSCH资源的设计和选择。在4-step RACH中,终端首先确定是使用groupA还是GroupB发送preamble,基站接收到终端发送的preamble之后根据接收到的preamble测算出上行的TA值,也就是上行传输的时间提前量,然后在Msg2(RAR)消息中将TA值和一个UL grant信息发送给终端,终端根据收到的UL grant确定Msg3消息的时频域资源,再根据TA值确定需要提前发送的时间量,这样就可以把第一条上行消息Msg3发送出去。而在2-step RACH中,终端在第一步中,在不等待Msg2消息的情况下,就需要把Msg3紧随preamble之后发送出去,这样终端就需要提前知道Msg3对应的PUSCH资源的配置信息。很显然,这种基于竞争的2-step RACH过程的相关资源配置信息必然是以信令的方式存在,而且是必然存在于SIB1消息之中。对于非竞争的2-step RACH过程,相关资源配置信息则是存在于重配置消息中的切换相关的信令中,下面我们分开叙述。

基于竞争的随机接入流程

在基于竞争的2-step RACH中,指示MsgA上行传输资源对应的信令为msgA-PUSCH-Config-r16,在信令中的位置如下:

 msgA-PUSCH-ResourceGroupA-r16/msgA-PUSCH-ResourceGroupB-r16:这两个参数分别定义了两组MsgA中的PRACH资源和PUSCH资源,其中msgA-PUSCH-ResourceGroupB-r16必须是配置了信令groupB-ConfiguredTwoStepRA-r16后才能配置,如果没有配置该信令,则默认使用group A定义的资源传输MsgA消息。在传输MsgA中的preamble和PUSCH时,具体使用哪一组资源取决于以下条件:

则终端选择GroupB中给出的PRACH资源和PUSCH资源信息发起MsgA中的preamble传输和PUSCH传输;同时由重建流程或者on-demand SI Request流程发起的随机接入流程,终端也选择GroupB中给出的PRACH资源和PUSCH资源信息发起MsgA中的preamble传输和PUSCH传输。

以上场景之外的2-step随机接入使用msgA-PUSCH-ResourceGroupA-r16中给出的PRACH资源和PUSCH资源信息发起MsgA中的preamble传输和PUSCH传输。

非竞争的随机接入过程

在非竞争的2-step RACH中,指示MsgA上行传输资源对应的信令为msgA-CFRA-PUSCH-r16,在信令中的位置如下:

与基于竞争的2-step RA过程一样,如果在信令中配置了信令groupB-ConfiguredTwoStepRA-r16以及信令msgA-PUSCH-ResourceGroupB-r16,则终端需要按照如下条件选择groupA或者groupB中的preamble进行传输:

如果MsgApayload长度等于信令参数ra-MsgA-SizeGroupA给出的数值,终端选择GroupB中的preamble来发送;否则,终端选择GroupA中的preamble来发送。

需要注意的是,对于非竞争的2-step RACH过程,无论终端选择GroupA还是GroupB中的preamble来传输,MsgA中PUSCH都只配置了一组。与基于竞争的2-step RACH一样,非竞争2-step RACH也使用信令 msgA-PUSCH-ResourceGroupA-r16来表示具体资源配置信息。

--------------------------------------------------------------------------------------------------------------------------------

下面我们再看看MsgA中的PUSCH资源的配置信息。首先3GPP规定了MsgA中的PUSCH资源在时域上必须放置在PRACH资源后面,PUSCH资源时域上的第一个OFDM符号与PRACH资源所在最后一个OFDM符号至少要持续N个OFDM符号的长度。N的长度与子载波间距有关,具体如下:

                                                         

而MsgA中PUSCH资源所在slot的第一个OFDM符号与一个PRACH slot在时域上的第一个符号的相对位置由信令参数msgA-PUSCH-TimeDomainOffset给出,用slot的个数表示: 

知道了MsgA中的PUSCH在时域上起始slot的位置,下一步我们就需要知道它在该slot内的起始符号位置以及持续时长,这些信息是由信令参数startSymbolAndLengthMsgA-PO 或者 msgA-PUSCH-timeDomainAllocation提供的:

需要注意的是,这两个信令参数不能同时配置给终端,只能二者选其一。 

为了能正确解码终端在MsgA中发送的PUSCH传输,基站除了需要告诉终端PUSCH资源的时频域信息,还需要告诉终端PUSCH资源对应的相干解调信号(DM-RS)的配置信息(用于基站解调PUSCH传输),PUSCH传输对应的MCS数值等等,具体信息都在信令MsgA-PUSCH-Resource-r16中给出:

 在上面的表格中我们提到了Guard period(由信令参数guardPeriodMsgA-PUSCH 定义),也就是说如果一个PUSCH slot中存在多个连续的PUSCH occasion,那么在每个相邻的PUSCH occasion之间就需要一个guard period来把它们分隔开。这样做的原因是为了防止符号间干扰(Inter-symbol Interference),我们举一个例子来说明:

我们前面提到过,在4-step RA中,终端在接收到Msg2,也就是RAR消息后,得到其中的上行时间提前量(Timing Advance),再根据基站给出的时间提前量来发送第一条上行消息,即Msg3。这样,对于处于不同地理位置的终端,他们的Msg3到达基站的时间也都是一致的,不会造成干扰。而在2-step RA中,由于MsgA中的PUSCH是跟随着preamble发送出去的,这个时候没有办法获取到基站的时间提前量指示,因此对于处于不同地理位置的终端,它们的TA都是0,这就会造成不同终端发送的MsgA PUSCH到达基站的时间是不同的。以上图为例,终端2的MsgA PUSCH到达基站后,其最后一个OFDM符号在时间上超出基站下一个符号的CP长度,与基站的下一个OFDM符号产生了重叠现象,这个时候无法通过CP进行规避,就发生了符号间干扰。解决方法就是在MsgA PUSCH occcasion的最后一个OFDM符号后面添加长度为1~3个OFDM符号的保护间隔(Guard period),如下图所示:

为了防止终端之间的相互干扰,3GPP又做了如下规定:一个PUSCH occasion只有当其在时频域上不与任何一个其他的PRACH occasion(4-step RACH或者2-step RACH)相重叠,这个PUSCHoccasion才被认作为是有效的。

MsgA中PUSCH携带的是Msg3消息,其消息内容与4-step RACH中的msg3类似,大致如下:

1. 对于终端在RRC_CONNECTED状态发起的随机接入(比如上行失步后PDCCH order触发的RA)的场景,终端会在Msg3中携带C-RNTI MAC CE,然后基于RA流程的触发场景,Msg3中会携带不同的信令消息,比如切换流程中触发的非竞争随机接入,Msg3携带的是重配完成消息。

2. 对于终端初始接入小区的场景,终端会在Msg3中发送RRC连接(RRCSetupRequest)/恢复(RRCResumeRequest)/重建请求(RRCReestablishmentRequest)消息等。

当终端传输了MsgA消息之后,接下来就要监听MsgB消息,MsgB消息对应的PDCCH由MsgB-RNTI加扰。也就是说,终端需要监听使用RNTI为MsgB-RNTI加扰的DCI format 1_0来达到正确接收并解码MsgB消息的目的。MsgB-RNTI的计算方法如下:

MSGB - MSGB的传输设计与资源配置

与4-step RACH一样,为了监听MsgB消息(RAR消息),终端需要在一个窗口期内监听来自基站的使用MsgB-RNTI加扰的DCI format 1_0,只要在整个窗口期内,终端都会持续监测MsgB消息对应的这个DCI format 1_0,一旦检测到之后,终端就可以从DCI format 1_0中获取到MsgB的时频域位置以及其他信息,从而可以继续去指定的时频域位置按照指定的信息(e.g., MCS, PRB个数等)去接收及解码MsgB消息。

这个窗口的长度(长度单位为slot)由信令msgB-ResponseWindow-r16给出:

 该窗口的起始位置从终端用于接收RAR的PDCCH所在的COREST的第一个OFDM符号开始计算,从该时刻起,终端按照如下流程判断并接收MsgB消息:

终端接收到MsgB的结果以及后续行为分为以下几个场景:

终端成功接收并解码MsgB

1. 终端接收到的RAR使用C-RNTI加扰

    这种情况是由于终端可能已经处于RRC_CONNECTED状态并在MsgA PUSCH传输中上报了C-RNTI信息(比如上行失步触发的随机接入等),基站在发送MsgB时,会使用该终端的C-RNTI加扰MsgB的PDCCH,终端在MsgB-ResponseWindow中检测到使用自己发送MsgA PUSCH的C-RNTI加扰的PDCCH并成功解码对应的RAR消息,则随机接入成功。

2. 终端接收到的RAR使用MsgB-RNTI加扰   

  • 基站没有成功解码MsgA中的PUSCH传输

          基站在接收终端发送的MsgA消息时,可能只成功接收了preamble,而对于随后的PUSCH传输可能由于各个终端之间资源的冲突(只是可能的原因之一)造成PUSCH接收失败。在这种场景下基站仍然会发送MsgB消息,MsgB携带的内容是fallbackRAR:                                       

 从上图可见fallback RAR的格式以及内容与4-step RACH中的RAR是一样的。终端在监听并接收到MsgB消息后,首先确认fallbackRAR MAC subheader中的RAPID是否与自己在MsgA中传输的Preamble索引相同;如果不同,则终端判断该消息不属于自己并丢弃该MsgB消息,继续在MsgB

-ResponseWindow窗口内继续监听MsgB消息;如果相同并且RAR内容为fallbackRAR,则终端认为成功接收MsgB并确认MsgA中的PUSCH传输失败,此时终端从2-step RACH流程切换到4-step RACH流程,步骤如下:

a. 使用fallbackRAR中的Timing Advance Command与基站进行上行同步;

b. 使用fallbackRAR中的UL Grant发起Msg3消息,同时将fallbackRAR中的Temporary C-RNTI作为C-RNTI MAC CE,请求建立RRC连接。

c. 从step b开始按照4-step RACH流程完成当前的随机接入流程。

需要注意的是,如果终端发起的是非竞争的2-step RACH流程,那么即使终端接收到的MsgB消息包含的是fallbackRAR内容,终端也会认为随机接入流程成功并结束随机接入流程。

  • 基站成功解码MsgA中的PUSCH传输

基站成功接收了终端发送的MsgA中的preamble和PUSCH传输,在这种场景下,基站向终端发送的MsgB消息所包含的内容为:

             

  终端在MsgB-ResponseWindow中监听到MsgB消息,确认为successRAR之后,将其中的UE Contention Resolution Identity数值与自己在MsgA PUSCH中发送的UE Contention Resolution Identity数值相比较,如果不同,则终端认为竞争失败,重新发起MsgA消息;如果相同,则终端认为自己竞争接入成功,并进行以下操作:

 a. 使用successRAR中的Timing Advance Command与基站进行上行同步;

 b. 使用successRAR中PUCCH resource Indicator指示的资源在HARQ Feedback Timing Indicator指示的时刻点回复MsgB的HARQ-ACK反馈,该PUCCH传输对应的功率使用TPC指示的功率调整量。

c. 2-step RACH过程结束。

终端没有成功接收到MsgB

当基站没有接收到终端发送的MsgA消息时,基站不会发送对应的MsgB消息给终端,终端自然就无法接收到MsgB消息。此时终端会持续监听MsgB消息直到msgB-ResponseWindow超时,并按照如下流程继续随机接入流程:

 其中,

PREAMBLE_TRANSMISSION_COUNTER - 初始值为0,每发送一次preamble数值加1;

preambleTransMax:由以下信令给出:

 msgA-TransMax:由以下信令给出:     

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

m基于FPGA的数字下变频verilog设计

目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 整个数字下变频的基本结构如下所示 NCO使用CORDIC算法,CIC采用h结构的CIC滤波器,HBF采用复用结构的半带滤波器,而FIR则采用DA算法结构。 这里,我们…

华硕编程竞赛11月JAVA专场 B题召唤精灵 题解

作者主页:Designer 小郑 作者简介:软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲…

ATtiny13与Proteus仿真-GPIO与点亮LED仿真

GPIO与点亮LED仿真 1、GPIO介绍 ATtiny13的端口具有(Read-Modify-Write,读取-更改-写入)基础功能。这就意味着,可以通过 SBI 和 CBI 指令更改一个端口引脚的方向,而不会影响其他端口方向。同时,如果更改一个端口的值,也不会影响其他的端口的值。 ATtiny13的端口输出缓冲…

Spring boot前后端分离项目使用docker-compose部署在Ubuntu上 以及内网穿透,外网访问项目

docker-compose.yml部署vue Springboot前后端分离项目 以及内网穿透,外网访问项目一、windows上部署前后端项目,测试1、前端Vue打包,放到nginx的html中2、nginx代理转发后端端口:4、后端Springboot项目使用Maven打包二、Linux上使…

-aop-

文章目录一.动态代理实现invocationHandler二.AOP概述环绕通知Pointcut定义切入点一.动态代理实现invocationHandler 动态代理:可以在程序的执行过程中,创建代理对象。 通过代理对象执行方法,给目标类的方法增加额外的功能(功能增…

Filebeat采集数据到ES保证数据不重复

一.背景 业务需求使然,API接口负责收集用户传递上来的json数据,为了保证接口性能和数据的可靠性。我们没有直接拿到数据,然后存储到mysql或者kafka,而是直接使用最稳妥的方式,写文件。之后采用filebeat对数据文件进行采…

8_1、Java基本语法之多线程基本概念

一、涉及到多线程的基本概念 1、程序(programm) 概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一 段静态的代码,静态对象。 2、进程(process) 概念:是程序的一次执行过程,或是正在运行的一个程…

Cy7 Tyramide, Tyramide-Cy7,花青素Cy7 酪酰胺化学试剂供应

一:产品描述 1、名称 英文:Cyanine7 Tyramide,Cy7 Tyramide,Tyramide-Cy7 中文:花青素Cy7 酪酰胺 2、CAS编号:N/A 3、所属分类:Cyanine 4、分子量:802.01 5、分子式&#xff…

Docker学习6-Docker镜像commit操作案例

在上一篇中,我们知道了docker是基于联合文件系统的分层镜像。而且也知道了镜像是只读的,容器才是可以写的。那么,如果我们要修改镜像,修改之后,怎么提交呢?本文,凯哥将介绍,docker的…

svd分解

sklearn中svd分解 class sklearn.decomposition.TruncatedSVD(n_components2, *, algorithmrandomized, n_iter5, random_stateNone, tol0.0) 参数: n_components:整数,默认2 输出数据的所需维度。必须严格小于特征数。默认值对可视化很有用…

Git 操作 Gitea 出现 kex_exchange_identification: Connection closed by remote host

1. 问题背景 我的部分代码储存在使用 Gitea 搭建的服务上: DevWiki - 首页 - DevWiki Gitea 之前都是使用网页在网站上进行 仓库管理, 今天在clone代码的时候出现异常: kex_exchange_identification: Connection closed by remote host, 具体以下提示: $ git clone gitgit.d…

【案例分享】跨机房ES同步实战

背景 众所周知单个机房在出现不可抗拒的问题(如断电、断网等因素)时,会导致无法正常提供服务,会对业务造成潜在的损失。所以在协同办公领域,一种可以基于同城或异地多活机制的高可用设计,在保障数据一致性…

微软CTO谈AI:逃不掉马拉松就准备好跑鞋!30秒自动化妆机;ChatGPT刷爆票圈;剪纸风格的AI绘画 | ShowMeAI资讯日报

👀日报合辑 | 🎡AI应用与工具大全 | 🔔公众号资料下载 | 🍩韩信子 📢 对话微软 CTO 凯文斯科特 (Kevin Scott):人工智能将去向何方? https://blogs.microsoft.com/ai/a-conversation-with-kevi…

【卡塔尔世界杯】空调制冷,全是科技与狠活

半自动化越位技术比赛用球AI Rihla球场智能空调Feelix Palm辅助技术可持续利用的体育场便利的数字设施和App 西班牙队和英格兰队穿外套出场,卡塔尔的空调功率到底有多大? 还是很大的,不管是室外还是室内,到处都安装了空调&#…

Verilog系统函数

Verilog系统函数前言一、$width(一)简介(二)$width 参数(三)例子二、Specify参数三、$display(一)简介(二)格式说明(三)例子1.例12.例…

Bert论文解读及相关代码实践

Bert:Bidirectional Encoder Representations from Transformers Transformer中双向Encoder表达学习。BERT被设计为通过在所有层中对左右上下文进行联合调节,从未标记文本中预训练深度双向表示。预训练的BERT模型可以通过仅一个额外的输出层进行微调&am…

AVS-试听分割-论文阅读

题目: Audio-Visual Segmentation 论文地址:https://arxiv.org/abs/2207.05042 GitHub地址:https://github.com/OpenNLPLab/AVSBench 项目主页:https://opennlplab.github.io/AVSBench/ 相关博客https://arxiv.org/abs/2203.03821 摘要 We propose to explore a new pro…

(附源码)ssm汽车租赁 毕业设计 271621

基于ssm的汽车租赁平台的设计与实现 摘 要 随着社会经济的快速发展,我国机动车保有量大幅增加,城市交通问题日益严重。为缓解用户停车难问题,本文设计并实现了汽车租赁平台.该系统通过错峰停车达到车位利用率最大化.基于现状分析,本文结合实际停车问题,从系统应用流程,系统软硬…

微电网和直流电网中最优潮流(OPF)的凸优化(Matlab代码实现)

📋📋📋本文目录如下:⛳️⛳️⛳️ 目录 1 概述 2 最优潮流 3 电力系统强大的CVX 4 直流电网中最优潮流(OPF)的凸优化 4.1 Matlab代码 4.2 运行结果 5 微电网中最优潮流(OPF)的凸优…

go gin web综合教程,包括 mysql redis log 路由

前言 在学习go许久,没看到网上有比较综合的gin web教程,很多都是最基础的教程,完全就是启动个服务返回参数,没有过多的结合实际开发。下面我结合一下我的经验,来写一篇深入的综合教程,包括数据库Mysql、re…