LTE-TDD随机接入过程(4)-RIV的解析和Preamble资源的选择

2024-04-28 21:32

本文主要是介绍LTE-TDD随机接入过程(4)-RIV的解析和Preamble资源的选择,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



转载  原文链接(http://blog.csdn.net/m_052148)

本文涉及到的内容有:

(1)怎么解析RIV中的RB资源

(2)前导码Preamble区分A、B两个组

(3)UE选择前导码资源的过程

1.解析RIV获取RB资源

上一篇文章《LTE-TDD随机接入过程(3)-RAR(MSG2)》中提到了RAR的信元结构,其中20bits的UL_GRANT包含了MSG3所占资源的RB、调制方式、功控等参数,这里具体介绍编码和解析RIVResource Indication Value)。

UL_GRANT包含的内容如下表所示,RIV占其中的10bits。

Hopping flag – 1 bit,指示PUSCH是否执行跳频。(本文不考虑跳频)
Fixed size resource block assignment – 10 bits,指示MSG3的RB资源分配,有时候也称RIV参数。
Truncated modulation and coding scheme – 4 bits,指示MSG3使用的MCS。 
TPC command for scheduled PUSCH – 3 bits,指示PUSCH的TPC参数。
UL delay – 1 bit。指示MSG3发送时刻。 《LTE-TDD HARQ(1)-上行HARQ时序》已经详细介绍了这个参数的具体含义。
CQI request – 1 bit。指示UE是否上报CQI。

协议36213-8.1给出了RIV的计算公式,如下图所示。其中N_UL_RB是上行带宽的RB个数,该参数由SIB2中的ul_Bandwidth配置到UE,比如20M带宽,N_UL_RB=100。eNB侧根据调度生成的RB位置(RBstart)和长度(Lcrbs),代入该公式,就可以得到RIV值,然后填入UL_GRANT中的“Fixed size resource block assignment”字段即可。


UE侧根据上述公式,就可以反推出MSG3所要使用的RB位置和长度(参考《LTE -UL_grant中RIV的编码和解码》)。除了MSG3,后续eNB通过DCI0(以后再单独介绍DCI内容)调度的PUSCH资源,都是通过这个方法进行编码和解析的。

需要注意的是,填写码流的时候,左侧(或低字节)的bit位是MSB,右侧(或高字节)的bit位属于LSB。

A MAC PDU is a bit string that is byte aligned (i.e. multiple of 8 bits) in length. In the figures in subclause 6.1, bit strings are represented by tables in which the most significant bit is the leftmost bit of the first line of the table, the least significant bit is the rightmost bit on the last line of the table, and more generally the bit string is to be read from left to right and then in the reading order of the lines. The bit order of each parameter field within a MAC PDU is represented with the first and most significant bit in the leftmost bit and the last and least significant bit in the rightmost bit.

另外,协议只给RIV定义了10bits的空间,一方面是考虑节省RAR的信令开销,另一方面也说明了传输MSG3的过程中,并不需要eNB分配太多的RB个数。

2.前导码区分GroupA和GroupB两个组

因为eNB在收到Preamble之后就通过RAR消息配置MSG3的PUSCH资源,在给UE分配RB资源和MCS调制方式的时候,并不知道接下来UE发送的MSG3的数据量大小。如果分配的太多,则浪费资源,分配的太少,可能又不够。因此协议在这里对竞争中使用的前导码做了分组处理,不同的Group可以采用不同的RB+MCS调度组合,从而为eNB侧的调度提供了参考。

跟分配前导码相关的参数出现在SIB2中的RACH-ConfigCommon信元中。其中,

numberOfRA-Preambles参数表示该小区竞争接入过程中可以使用的前导码总个数,范围是4-64。

sizeOfRA-PreamblesGroupA参数表示GroupA的前导码个数,范围是4-60。


sizeOfRA-PreamblesGroupA参数的范围是4-60可以知道,GroupA是一定存在的,至少有4个前导码属于A组。一旦sizeOfRA-PreamblesGroupA参数确定,那么GroupA的前导码集合就是【0,sizeOfRA-PreamblesGroupA-1】。GroupB是可选的,它的前导码范围是【sizeOfRA-PreamblesGroupA,numberOfRA-Preambles-1】。如果eNB配置的参数numberOfRA-Preambles=sizeOfRA-PreamblesGroupA,那么该小区就不存在Group B,竞争接入的前导码全部属于GroupA。

举个例子说明组A和组B的相互关系。当numberOfRA-Preambles=36,sizeOfRA-PreamblesGroupA=16时,组A和组B的划分如下所示。需要注意的是,eNB在配置参数的时候,应该要预留出非竞争接入的前导码集合,不应该全部配置给竞争前导码。另外,考虑到eNB侧盲检测的处理时延,配置的前导码个数可能有一定的限制。


3.UE选择前导码资源的过程

UE将按照下面的过程来选择前导码资源:

(1)如果ra-PreambleIndexra-PRACH-MaskIndex参数被显式指示,且ra-PreambleIndex不等于0,则选择显式指示的前导码和PRACH Mask Index参数

说明:eNB通过DCI1A下发非竞争随机接入过程使用的前导码资源(协议36212),这些资源信息通过ra-PreambleIndexra-PRACH-MaskIndex参数来表示。


ra-PreambleIndex表示UE需要使用的前导码ID值,ra-PRACH-MaskIndex参数表示UE使用的PRACH位置,如下表所示,最多可有6个位置可选。在文章《LTE-TDD随机接入过程(2)-前导码Preamble的格式与时频位置》中提到了PRACH四元素组的概念,这个ra-PRACH-MaskIndex参数就是用来指示UE具体在第几个四元素组所指示的PRACH资源中发送前导码

如果eNB侧配置给UE的ra-PreambleIndex等于0,那么表示当前不能进行非竞争接入,UE需要执行竞争随机接入。


(2)如果不满足条件(1),则按照下面的要求选择前导码资源:

    (2.1)如果当前还没有发送过MSG3,那么如果存在前导码组B,而且将要传输的MSG3的数据大小(含必要的MAC头、控制信息)大于messageSizeGroupA参数,并且路损小于等于(PCMAX – preambleInitialReceivedTargetPower – deltaPreambleMsg3 – messagePowerOffsetGroupB),那么选择前导码组B;否则选择前导码组A。

其中,

messageSizeGroupA参数表示组A的数据大小,单位是bit,范围从56bits到256bits不等,参考前文截图。

PCMAX表示UE配置的最大输出功率。

preambleInitialReceivedTargetPower表示初始发送功率,范围从-120dBm到-90dBm不等,参考前文截图。

deltaPreambleMsg3参数由SIB2下发,值的范围是-1到+6。在带入公式计算路损的时候,需要将该值*2[dB]。比如空口中的参数值=2,那么实际公式中的值=4dB。

messagePowerOffsetGroupB参数是选择前导码的门限参数,单位是dB,与preambleInitialReceivedTargetPower参数一起,由SIB2下发,见前文截图。

从上文分析可以看到,如果要选择前导码组B,除了待传数据量超过组A的要求外,还要满足条件:路损<=(最大输出功率-初始功率-门限功率-偏移功率)


    (2.2)否则,如果已经发出过MSG3(即本次选择前导码资源的时候发现是在重传MSG1),那么本次选择的前导码组必须和第一次发送前导码时候选择的组相同。
    (2.3)在所选择的组A或组B中,随机选择一个前导码。之所以随机选择一个,一方面是因为同组内的前导码选哪个都可以,eNB一视同仁,不影响MSG3的资源分配,另外一个原因是为了增加随机性,降低与同小区其他UE形成竞争冲突的可能性。
    (2.4)设置PRACH Mask Index=0。

至此,UE侧完成了前导码组的选择过程,下面UE将继续选择PRACH的时频资源。时频资源的计算过程已经在LTE-TDD随机接入过程(2)-前导码Preamble的格式与时频位置》中有详细描述,这里不再详说

(3)根据prach-ConfigIndex(该参数影响前导码格式和PRACH位置)和PRACH-MaskIndex参数(决定如何从多个PRACH资源中选择其中的一个),以及物理层的时序要求,确定下一个可用的PRACH子帧。为方便后文描述,这里将该PRACH子帧记作子帧U
(4)如果当前是LTE-TDD制式,并且PRACH-MaskIndex参数=0,那么:
    (4.1)如果ra-PreambleIndex被显式指示,且值不等于0(即执行非竞争随机接入过程),那么UE在PRACH子帧中随机选择一个PRACH资源。前文截图Table 7.3-1中的All的含义就表示UE可以随机选择任意一个四元素组所在的PRACH资源。
    (4.2)否则,在已选择的PRACH子帧U以及接下来的两个连续子帧中的所有可用的PRACH资源中,等概率随机选择一个PRACH资源。



(5)否则,根据PRACH-MaskIndex参数选择指定的PRACH资源。参考前文截图Table 7.3-1。            
(6)执行随机接入前导码传输过程。  
         

4.参考文献

(1)3GPP TS 36.321 V9.6.0 (2012-03) Medium Access Control (MAC) protocol specification

(2)3GPP TS 36.213 V9.3.0 (2010-09) Physical layer procedures

(3)3GPP TS 36.331 V9.18.0 (2014-06) Radio Resource Control (RRC)

(4)3GPP TS 36.101 V9.14.0 (2012-12) User Equipment (UE) radio transmission and reception

(5)3GPP TS 36.212 V9.4.0 (2011-09) Multiplexing and channel coding

这篇关于LTE-TDD随机接入过程(4)-RIV的解析和Preamble资源的选择的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944311

相关文章

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加