5G学习(四):PRACH专题_雪顶饿的博客-程序员秘密_prach

技术标签: 5G  5g  

UE需要在何时发送RACH

  1. 初始接入时建立无线连接(UE从RRC_IDLE态到RRC_CONNECTED态);
  2. RRC连接重建过程(RRC Connection Re-establishment procedure);
  3. 切换(handover),有两种类型 竞争接入和非竞争接入;
  4. RRC_CONNECTED态下,下行数据到达(此时需要回复ACK/NACK)时,上行处于“不同步”状态;
  5. RRC_CONNECTED态下,上行数据到达(例:需要上报测量报告或发送用户数据)时,上行处于“不同步”状态或没有可用的PUCCH资源用于SR传输(此时允许上行同步的UE使用RACH来替代SR);
  6. RRC_CONNECTED态下,为了定位UE,需要timing advance。

随机接入的preamble序列,只能在特定的时频资源上发送。
PRACH在频域上的位置由上层半静态设定,通过SIB2中的参数prach-FreqOffset广播给UE,prach-FreqOffset的值代表的是物理块资源的号码,取值范围在0到94之间,PRACH上不存在跳频。

5G中随机接入的两个新流程

SI request

在LTE中,所有的SIB(SymbolInformationBlock)都是小区里广播的。在5G中SIB中SIB1和SIB2是周期广播,除此之外其他的都不是必须广播的(OSI)。对于已经接入的UE,比如Handleover接入的UE,可以通过RRC消息去得到所有的系统信息。另一种,对于Idle态的UE,则可以通过一个新的流程SI Request去通知gNB,来请求获得指定的SIB消息。

  • SIB1:包含了UE评估是否可以接入当前小区以及系统调度的相关参数。
  • SIB2:包含了公共的无线资源配置信息,定时器与常量,小区禁止接入信息等。
    在这里插入图片描述
    0:gNB在系统消息里,把专门用于SI request 的 Preamble ID广播发送所有的UE,比如id 1对应SIB1,id 2对应SIB2,从而实现逻辑映射关系。
    1:此时,UE可以根据自己的需要,发送不同Preamble ID,而gNB也通过ID知道UE需要什么SIB消息。
    2:gNB需要告诉UE已经收到了相关的消息,即SI reques,发送的PDSCH里面,包含着Preamble ID,PDCCH和PDSCH都在RA-RNTI上的,UE收到了消息2,便不会再发送SI request。

beam failure

首先在LTE中,beam faliure可能是一个短暂的瞬间,大部分都是正常工作的,只是突然一下掉线,但是,马上检测道德CSI-RSRP或者SS-RSRP高于某个门限,就立马进行RACH接入。
在5G中,首先会有一个Preamble ID,gNB必须预先配置好给UE,正像前面说的那样,通过这个ID,gNB能明确知道UE的C-RNTI,所以这个ID应该是专用的,但是Preamble却是有限的,而UE是无限的,所以Preamble ID应该是预先被分配给那些很重要的UE,在其UE建立完给这些UE发一个RRC的消息,配置对应的Preamble。

PRACH的格式

839格式

在3GPP中,定义了很多PRACH的格式,这是序列长度是839的格式,TTI长度是1ms,15K子载波间隔的PACH格式。
序列长度越长,小区覆盖范围越大。
在这里插入图片描述
一个PRACH的Preamble格式如下,在这里插入图片描述

发送的时间

在这里插入图片描述
由于5G引入beam forming 概念,与4G在接入方面有些许不同。

  • 在任意一个RACH的机会就能接入。
  • 一定要等到SSB扫描到该UE测量最强的beam时,才能在该slot接入,通过msg2的接入时机从而确定UE的方向。

PRCH接入处理过程

随机接入第二步RAR

  • 当UE发送了preamble以后,在一个时间窗内监听PDCCH,检测RAR,这个窗口由ra-ResponseWindow 定义,在系统消息中广播。
  • 这个由ra-ResponseWindow指定的时间窗开始于RACH preamble发送后的第一个PDCCH的起始时间。
  • 如果在时间窗口内没有检测到RAR,说明基站正在忙,则UE重发preamble,并且增加发射功率。
  • 如果基站捕获到preamble,则应该立即组RAR消息并下发:
    • RNTI:新分配的RNTI
    • TA:通过preamble检测发现UE的时间偏差,并通过RAR中的TA command通知UE进行纠正
    • UL grant (message 3的grant)
    • Backoff indication:请UE暂时离开,短时间不要接入,因为网络不回Backoff indication的话,手机会一直不断重发Preamble,造成阻塞。
      什么是RA-RNTI???
  • RNTI(Radio Network Tempory Identity)是无线网络临时标识。在UE 和网络 之间交互的信息内部作为UE的标识。对应PRACH的位置——eNB检测到Preamble的时频位置,对应到PRACH_Config中的索引,RA-RNTI是 RNTI的一种。
  • 在随机接入的过程中,如果Ue在RACH的资源上发送了Preamble以后,网络侧收到了能量,并且要发送message2 (RAR),而RAR就是通过RA RNTI进行加扰的,(加扰:扰码与原始信号相乘,从而得到新的信号。与原始信号相比,新的信号在时间上、频率上被打散。这样做的好处是可以减小临近区间的干扰,将信号随机化)
  • UE会选择一个前导码和时频资源发送前导码(Msg1)。通过发送前导码所使用的子帧,以及PRACH频率资源的位置可以推算出RA-RNTI。如下图:
    在这里插入图片描述
    UE知道自己之前 Preamble的发送位置,当然也知道这个值。于是检测PDCCH上是否有自己对应的RA-RNTI;有则说明接入被响应,再依据PDCCH上的指示 去PDSCH上读取RA Response消息(Msg2)。Msg2-RAR中包含了TC-RNTI,是基站为终端分配的临时调度ID(temporal C-RNTI/C-RNTI),用于终端和网络的进一步通信。当终端随机接入成功后就会将TC-RNTI升级为C-RNTI。

随机接入第三步Massage3的发送

  • 当UE获取RAR以后,按照RAR中的UL grant的指示,发送message 3
  • 对于初始接入, message 3中的payload是RRC connection request (这条RRC消息中,包含身份标示IMSI和接入原因-establish cause)
  • 对于切换, message 3中的payload是RRC connection re-configuration complete
  • 对于失步以后的接入,message 3中的payload主要是RNTI
  • 当发送message 3以后
  • UE启动contention resolution Timer,等待contention问题的解决
  • 如果contention resolution Timer超时,UE会重新启动RACH过程,重发preamble
    Msg3中需要包含一个重要信息:每个UE唯一的标识,该标识将用于步骤四的冲突解决。

随机接入第四步Massage4的处理

  • 当基站接受到了Message 3以后,U plane拔RRC消息转交给C-plane, 经过ASN.1的decode以后,C-plane解析这条RRC消息,根据其中的内容,如果是初始接入的话,一般在U-plane上建立Ue的context以及分配相应的物理资源和配置,然后这些物理资源和logical channel等配置要通知给UE,这些信息就包含在Message 4中。
  • 针对解决竞争的问题,要先明确“你是谁”这个问题,如上图所示。
    在这里插入图片描述
  • 下面这张时序图比较清晰的表达了Msg1/2/3/4应该在什么时间进行发送和接收。
    在这里插入图片描述

随机接入竞争问题

基本概念

  • 竞争接入:网络基站并不知道UE要接入,主要用于初始接入和失步以后的接入特点是手机随机挑选preamble,然后尝试接入,网络并不知道这个试图接入的用户是谁,会分配相应的RNTI。
    对于基于竞争的随机,我们在前一页已经已经讨论了,在RAR下发的时候,手机不能确定,已经可能这时候有两个人使用了同样的preamble.手机还不能确定就是自己,所以发送message 3(可能另外一个人也在发送message3),等到message4到达的时候,通过Contention resolution的MAC CE同手机当初的message3前6byte一致的时候,UE认为Contention的问题解决

  • 非竞争接入:基站知道用户要接入,主要用于切换,RNTI和preamble都是事先分配的,在源小区通过RRC reconfig通知用户。
    对于非竞争的随机接入,因为preamble是事先分配的,而且是唯一的,随机接入的时候,如果Target preamlbe被捕获,则认为基站已经知道该来的人来了,下发msg 2 RAR以后,当UE用所对应的RA RNTI成功解出,则UE认为网络已经认出自己了,则Contention的问message2的时候解决

两个特殊情况

  • 在基于非竞争的接入,如果接入失败,则UE会转入基于竞争的随机接入。

  • 如果UE检测到失步,就必须发起基于竞争的随机接入。

基于上述情况产生的矛盾

一旦发起基于竞争的随机接入,基站不在知道UE的ID
比如切换时候用的非竞争的接入,这时候用户Context和preamble都已经好了,一直在原来的preamble上等,但是UE换了一个(preamble)进行接入,但是基站并不能识别出来,

解决

通过在msg3中加入RNTI的MAC CE来解决,用户必须等待基站用原来的RNTI进行一次上行的调度,这样才能解决竞争的问题。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq310563349/article/details/107160877

智能推荐

STM8S定时器TIM4定时1kHz输出_写一个使用定时器方式;输出 1:1比例的并且 频率为1kzh 的程序_wangjl~的博客-程序员秘密

1.将主时钟切换到HSE;(外部晶振为8MkHz)2.将主时钟时钟频率8分频,即计数器时钟周期为1us;3.设置定时器250us中断一次;4.在中断程序里判断中断次数是否到2次;5.到2次翻转引脚电平。(逻辑分析仪检测频率)寄存器版:unsigned char i=255;PE_DDR_DDR5=1;//配置PD0为输出模式PE_CR1_C15=1;//配置PD0为推挽模式PE_...

uos系统桌面怎么没有计算机图标,统一操作系统UOS办公体验&换源图文教程:尝鲜记(二)..._Bell Wang的博客-程序员秘密

原标题:统一操作系统UOS办公体验&换源图文教程:尝鲜记(二)大家好,欢迎回到IT之家学院,我是麦子。上期我们聊了如何在物理机和虚拟机中 安装统一操作系统UOS ,本期我们将结合deepin 15.11以及已知的deepin V20相关信息,针对UOS beta版、rc版进行体验,来看一下使用体验如何,以及可用性做到什么程度了。一、上手体验首先作为Linux,UOS的开机速度是非常快的,从...

linux脚本启动spark-shell并执行scala文件_spark.driver.args ./bin/spark-shell < test.scala_yushu4772的博客-程序员秘密

要学习程序员思维,step by step 1.如果自己平台安装了scala,好办,在shell脚本直接scala filename.scala args args2.如果没装scala1)检查自己hadoop平台安装的spark环境,cd到路径2)执行./bin/spark-shell是否启动scala3)在脚本中执行 ./bin/spark-shell -i &amp;lt;f...

startActivityForResult()_C3程的博客-程序员秘密

一直对startActivityForResult() 没怎么用过,然后感觉有很多疑问比如 在onActivityResult()方法中你怎么判断是哪个activity带回来的结果。。。so 做了个小小的测试如图:启动另一个activity设置返回结果处理收到的结果,嗯结果就是这样简单。。。那么俺之前在想啥俺也忘鸟~

Linux内核分析(第八周)_weixin_30762087的博客-程序员秘密

进程的切换和系统的一般执行过程一、进程切换的关键代码switch_to分析  1.进程调度与其时机分析    分类:      第一种分类 I/O-bound:频繁的进行I/O;会花很多时间等待I/O操作完成            CPU-bound:计算密集型;需要大量cpu时间进行计算      第二种分类 批处理进程:不必与用户交互,通常在后台进行;不行很快响应(编译程序,...

防坑指南 | pytorch常见的坑汇总_weixin_38754361的博客-程序员秘密

点击上方“AI算法与图像处理”,选择加"星标"或“置顶”重磅干货,每天 8:25 送达来源:知乎郁振波编辑:AI算法与图像处理链接:https://zhuanlan.z...

随便推点

春节后面试别人的经历总结之二,好岗位分享给还在找工作中的软件开发爱好者们 _面试被推到其他部门_jirigala的博客-程序员秘密

<br />虽然我也不是什么大人物,但是本着分享的心态,把最近面试别人的感受整理一下如下:<br /> <br />投递简历环节:<br />1:曾经跳槽的单位不要过多(例如半年一个,每年一个),总需要有几个公司你干活的时间比较长一些,否则难拿到高薪机会。<br />2:项目经历不要总写那些比较幼稚的学校的项目,写上3-5个都没多大用,一看就是很幼稚的项目,入门级糊弄小孩的项目。<br />3:  项目经验不要太假,共工作才2年,6-10个项目经验,怎么可能啊?走马观花?都是鸡毛蒜皮的小项目?或是毛毛雨小项

docker 学习二 (简单操作及应用自启学习)_TCH8502的博客-程序员秘密

一、docker 从官方获取镜像 (比如获取nginx)docker search nginx # 搜索nginx 镜像根据镜像下载 ,获取官方nginx 镜像 就可以运行了 docker pull nginx删除镜像docker rmi 镜像名二、docker 运行后无法联网问题vi /etc/sysctl.conf 编辑sysctl.conf 加入net.ipv4.ip_forward=1net.ipv4.ip_forward=1三、d

利用Python做数据分析的基本步骤(持续更新)_data['salarydesc'] = data['salarydesc'].str.split(_Abudullah的博客-程序员秘密

一、环境搭建数据分析最常见的环境是Anaconda+Jupyter notebook二、导入包2.1数据处理包导入import numpy as npimport pandas as pd注:numpy是Numerical Python的简称,是一个科学计算的包,可用来矩阵运算,处理线性代数的常见问题。pandas是panel data和data analysis的组合词,原来是用来处理计量经济学面板数据的工具,可以用来数据对齐、切割、取片、查重、去空等一系列操作。2.

<转载>C#与JAVA的区别 http://www.cnblogs.com/Asa-Zhu/archive/2012/11/08/2761114.html_weixin_30633949的博客-程序员秘密

&lt;转载&gt;C#与JAVA的区别 http://www.cnblogs.com/Asa-Zhu/archive/2012/11/08/2761114.html C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或...

使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇)_opml订阅_walter lv的博客-程序员秘密

OPML 全称是 Outline Processor Markup Language ,即 大纲处理标记语言。目前流行于收集博客的 RSS 源,便于用户转移自己的订阅项目。本文将介绍这个古老的格式,并提供一个 .NET 上的简易解析器。本文是两个部分的第二篇,前者是理解 OPML 格式,此篇是解析此格式:概念篇解析篇(本文)本文内容OPML 格式创建适用于 RSS 的简易 OPML...

一些不错的资源收集_资源收集记录表_hua3505的博客-程序员秘密

怕以后找不到,在这记录以下以下资源来自jecvay的威看,评价也来自jecvay猴子都能懂的 Git 入门 做得挺漂亮的. Mark Programming-Alpha-To-Omega 「从零开始」系列 「自己动手」系列 相当多干货 Python 与 Tornado 这里的源码解析貌似很不错耶 程序员英语学习指引 Lucida的博文 - 这篇文章面向程序员,简要的介绍了一些

推荐文章

热门文章

相关标签