前一篇:5G 现网信令参数学习(3) - RrcSetup(1)
目录
1. rlf-TimersAndConstants
2. spCellConfigDedicated
2.1 initialDownlinkBWP
2.1.1 pdcch-Config
2.1.1.1 controlResourceSetToAddModList
2.1.1.2 searchSpacesToAddModList
2.1.2 pdsch-Config
2.1.2.1 dmrs-DownlinkForPDSCH-MappingTypeA
2.1.2.2 resourceAllocation
2.1.2.3pdsch-TimeDomainAllocationList
2.1.3 rbg-Size
2.1.4 maxNrofCodeWordsScheduledByDCI
2.1.5 prb-BundlingType
2.2 firstActiveDownlinkBWP-Id
这一部分包含了masterCellGroup中的spCellConfig。下图是R18 RRC中关于这个IE的定义
1. rlf-TimersAndConstants
rlf-TimersAndConstants setup :
{t310 ms1000,n310 n20,n311 n1
},
t310, n310, n311
这三个参数中,t310是定时器定义在38.331 7.1中,n310和n311是常量,定义在38.331 7.3中。三者的用法仅看38.331 7.1即可。
这三个参数用于监控物理层失步(out-of-sync)。具体如下:
- 当物理层检测到连续n310次out-of-sync指示时,就需要启动t310定时器
- 如果t310定时器启动了,在没有超时之前,连续收到n311次in-sync指示时,可以停止t310定时器
- 如果t310定时器超时了,可能触发call drop(无线接入层安全没有激活)或者RRC重建(无线接入层安全已经激活)。
示例中配置了t310超时时长为1000ms,out-of-sync连续检测次数门限为20次,in-sync连续检测次数门限为1次
2. spCellConfigDedicated
2.1 initialDownlinkBWP
2.1.1 pdcch-Config
2.1.1.1 controlResourceSetToAddModList
controlResourceSetToAddModList
{{controlResourceSetId 1,frequencyDomainResources '11111111 11111111 11111111 11111111 11111111 11111'B,duration 1,cce-REG-MappingType nonInterleaved : NULL,precoderGranularity sameAsREG-bundle,pdcch-DMRS-ScramblingID 40551}
},
该参数是一个由ControlResourceSet构成的list,每一个ControlResourceSet定义了一个PDCCH的频域资源。
在我的文章5G 现网信令参数学习(1) - MIB中,有一部分对controlResourceSetZero的讲解,里面提到5G中PDCCH资源的配置采用了定义表格/查表的方式。每一个ControlResourceSet就是这张表中的一个表项。在MIB消息中,对CORESET0定义的表格是系统默认的表,定义在38.213 13中(表13-1~13-10,根据SCS、带宽等信息选择对应的表)。而到了DCCH的RRCSetup消息中,这里定义的是UE专用的CORESET表。
controlResourceSetId
定义CORESET表格的索引。注意ID 0(即CORESET0)是专用的,定义在MIB以及ServingCellConfigCommon (controlResourceSetZero,在SIB1中)中,因此本IE只能定义0以外的值。注意:虽然CORESET是定义在BWP中的,但controlResourceSetId在一个服务小区中是唯一的。
示例中的值为1。
frequencyDomainResources
指示当前CORESET的频域资源,每个比特表示6个RBs,从当前BWP的起始RB开始算起。比特位上的值如果为1,则表示对应的6个RBs属于当前CORESET的频域资源。
示例中的值表示45x6 = 270个RBs,注意当前BWP是273RBs(通过前面的SIB1获取,见5G 现网信令参数学习(2) - SIB1),因此每个symbol上还多余3个RBs不用于PDCCH。
duration
当前CORESET的连续的时域持续时间,表示为OFDM symbol的个数。
示例中的值1表示当前CORESET在时域上占用1个symbol,即第一个OFDM symbol。
cce-REG-MappingType
指示CCE到REG的映射类型,分为interleaved和nonInterleaved两种方式。根据38.331中的定义,如果是interleaved方式,还有几个配置参数,如果是nonInterleaved方式,则无其它配置参数。
在38.211 7.3.2.2中,定义了:1个REG包含频域上1个RB,时域上1个OFDM symbol的资源;而1个CCE包含了6个REGs。比如CCE 0可以映射为REG0,1..,5(nonInterleaved),也可以交错地映射为REG0,1,12,13,24,25。
这两种方式的详细定义见38.211 7.3.2.2。简单地理解,nonInterleaved是普通的映射方式,具有“连续”映射的特点,而interleaved是较为高级的映射方式,会“跳跃”或者“交错”地映射。
下图截取了一部分相关的协议描述,更多内容可详细阅读协议
示例中采用nonInterleaved方式。
precoderGranularity
频域预编码粒度。有两种选项:sameAsREG-bundle或者allContiguousRBs。这两种预编码粒度在38.211的7.3.2.2和7.4.1.3.2中有相关描述。
38.211 7.3.2.2 关于CCE的描述
上面这段文字的意思是:
- 如果预编码粒度配置为sameAsREG-bundle,则UE会认为在一个REG bundle内具有相同的预编码。
- 如果预编码粒度配置为allContiguousRBs,则UE会认为在整个CORESET上(因CORESET一般配置为连续的RBs)具有相同的预编码,并且CORESET不能和SSB重叠、一般情况下也不能和LTE的小区参考信号重叠。
38.211 7.4.1.3.2 关于PDCCH的DMRS的物理资源映射
上面这段文字的意思是:
- 如果预编码粒度配置为sameAsREG-bundle,则PDCCH的DMRS只会映射在UE的PDCCH中。
- 如果预编码粒度配置为allContiguousRBs,则PDCCH的DMRS会映射在整个CORESET中。
至此,我们应该已经清楚了sameAsREG-bundle和allContiguousRBs的基本含义及差别,但这里其实还有一个关键问题:PDCCH的预编码定义在哪里?解释如下:PDCCH和DMRS使用单个天线端口进行传输(2000)。3GPP目前还没有定义PDCCH的预编码,但基站可以对该天线端口应用预编码,以在UE的方向上生成波束。预编码对UE是透明的。相同的预编码应用于PDCCH和DMRS,因此UE可以使用DMRS来估计预编码和传播信道的复合影响。UE应知道基站应用的预编码的频率选择性。
示例中,指示了预编码粒度为sameAsREG-bundle。
pdcch-DMRS-ScramblingID
用于PDCCH加扰序列生成器初始化的ID,见38.211 7.4.1.3.1,即下面协议原文中的参数。
如果没有配置该参数,则ID为当前服务小区的physCellId。
示例中配置了该参数,值为40551。
2.1.1.2 searchSpacesToAddModList
searchSpacesToAddModList
{{searchSpaceId 2,controlResourceSetId 0,monitoringSlotPeriodicityAndOffset sl1 : NULL,monitoringSymbolsWithinSlot '10000000 000000'B,nrofCandidates {aggregationLevel1 n0,aggregationLevel2 n0,aggregationLevel4 n4,aggregationLevel8 n2,aggregationLevel16 n1},searchSpaceType common : {dci-Format0-0-AndFormat1-0 {}}},{searchSpaceId 5,controlResourceSetId 1,monitoringSlotPeriodicityAndOffset sl1 : NULL,monitoringSymbolsWithinSlot '10000000 000000'B,nrofCandidates {aggregationLevel1 n0,aggregationLevel2 n4,aggregationLevel4 n4,aggregationLevel8 n4,aggregationLevel16 n2},searchSpaceType ue-Specific : {dci-Formats formats0-1-And-1-1}}
}
该IE定义了UE专用的PDCCH Search Space(PDCCH时域资源),和ControlResourceSet List关联在一起,构成了CORESET的定义。
每一个SearchSpace的参数含义在5G 现网信令参数学习(2) - SIB1的“commonSearchSpaceList”中有讲解,这里不再重复了。
示例中,定义了2个SearchSpace,ID分别为2和5,其中:
- SearchSpace 2:关联了CORESET 0,位于每个时隙的第一个symbol,可能存在4/8/16三种聚合等级,属于common search space类型,DCI格式包含上行的0-0和下行的1-0
- SearchSpace 5:关联了CORESET 1(不妨认为controlResourceSetId 1关联CORESET 1),位于每个时隙的第一个symbol,可能存在2/4/8/16四种聚合等级,属于UE search space类型,DCI格式包含上行的0-1和下行的1-1。
2.1.2 pdsch-Config
2.1.2.1 dmrs-DownlinkForPDSCH-MappingTypeA
dmrs-DownlinkForPDSCH-MappingTypeA setup :
{dmrs-AdditionalPosition pos1,scramblingID0 391,scramblingID1 391
},
该IE指示PDSCH的DMRS配置。
dmrs-AdditionalPosition
该参数指明了PDSCH的DMRS的时域位置。定义在38.211的表7.4.1.1.2-3中(如果存在参数maxLength,且值为len2,则说明使用双符号的DMRS,则需要参考表7.4.1.1.2-4。示例中没有这个maxLength参数)
表中,
- 简单理解就是PDSCH在一个slot中持续的时长,含DMRS的时长(更精确的定义参考38.211 7.4.1.1.2)
- 由MIB中的参数dmrs-TypeA-Position确定。在5G 现网信令参数学习(1) - MIB中,该参数的值为pos2,于是 = 2,即对应第3个OFDM synmbol。
示例中dmrs-AdditionalPosition的值为pos1,表示如果调度的PDSCH时长小于8个symbol,则每个slot中的DMRS占据第3个symbol;否则,DMRS除了占据第3个symbol之外,还要额外占据1个symbol,可能是symbol 7/9/
scramblingID0,scramblingID1
这两个参数是用于DMRS序列生成器初始化时的两个ID参数,详见38.211 7.4.1.1.1。
2.1.2.2 resourceAllocation
resourceAllocation resourceAllocationType1
配置当前使用的频域资源分配类型,分为类型0和类型1。该字段可以配置的值包括:resourceAllocationType0, resourceAllocationType1, dynamicSwitch。该字段用于DCI格式1-1。
注意:PDSCH在时域上的资源分配也分为两种类型,协议中称为PDSCH Mapping Type,分为A和B(5G 现网信令参数学习(2) - SIB1中有一些关于mappingType的讲解可供参考)。对比之下,频域上的称为Resource Allocation Type,分为0和1。
Type0的定义见38.214 5.1.2.2.1,Type1的定义见38.214 5.1.2.2.2;简单来说,Type0类似于LTE的下行资源分配方式,即以RBG为单位的资源分配;Type1类似于LTE的上行资源分配方式,即提供基于RIV的连续RB分配。如果参数配置为“dynamicSwitch”,则由DCI中的字段指示当前为Type0还是Type1。
示例中,该参数配置为Resource Allocation Type 1。
2.1.2.3pdsch-TimeDomainAllocationList
pdsch-TimeDomainAllocationList setup :
{{mappingType typeA,startSymbolAndLength 40},{mappingType typeA,startSymbolAndLength 54},{mappingType typeA,startSymbolAndLength 68},{mappingType typeA,startSymbolAndLength 82},{mappingType typeA,startSymbolAndLength 96},{mappingType typeA,startSymbolAndLength 99},{mappingType typeA,startSymbolAndLength 85},{mappingType typeA,startSymbolAndLength 71},{mappingType typeA,startSymbolAndLength 57},{mappingType typeA,startSymbolAndLength 43},{mappingType typeA,startSymbolAndLength 29},{mappingType typeA,startSymbolAndLength 81}
},
该IE定义了PDSCH-Config中的PDSCH时域资源分配表。关于PDSCH时域资源分配表里面参数的含义在5G 现网信令参数学习(2) - SIB1中已经介绍了,包括mappingType的含义,以及怎么根据startSymbolAndLength计算出每个时隙中的起始symbol以及持续多少个symbol,这里不再重复。这里需要重点说明的是这两张表应该怎么用,即什么时候用哪张表。
38.214 表格5.1.2.1.1-1和表格5.1.2.1.1-1A定义了什么场景下使用哪张pdsch-TimeDomainAllocationList表格。其中,前者适用于DCI格式1_0, 1_1, 1_3, 4_0, 4_1和4_2;后者适用于DCI格式1_2。在本文讲解的RRCSetup消息中,定义了DCI格式1_0,1_1(见searchSpacesToAddModList),在5G 现网信令参数学习(2) - SIB1中,定义了DCI格式1_0。因此,查看38.214 表格5.1.2.1.1-1即可。
为了更清楚地说明这张表的用法,截取其中一部分加以说明,如下所示:
- 第一列表示当前PDSCH使用的RNTI,这里有C-RNTI是我们比较熟悉的,就是UE在RRC连接之后使用的最普通的RNTI。
- 第二列表示PDSCH对应的PDCCH所在的SearchSpace类型。表格中的含义即:包含了除CORESET0以外的所有Common SearchSpace以及所有UE SearchSpace。
- 第三列是SSB和CORESET的复用样式,这里不展开解释了,有兴趣的可以搜搜相关主题
- 第四列指示了:PDSCH-ConfigCommon中是否定义了pdsch-TimeDomainAllocationList这张表
- 第五列指示了:PDSCH-Config中是否定义了pdsch-TimeDomainAllocationList这张表
看一下表中的前三行:
- 第一行使用表Default A,这个是由协议定义的一张表,具体可以进一步查询,这里不展开了。这一行的意思是当PDSCH-ConfigCommon和PDSCH-Config中都没有定义这张表时,使用协议定义的表
- 第二行表示,当PDSCH-ConfigCommon定义了这张表、而PDSCH-Config中没有定义这张表时,使用PDSCH-ConfigCommon定义的表
- 第三行表示,无论PDSCH-ConfigCommon是否定义了这张表,只要PDSCH-Config中定义了这张表,使用PDSCH-Config定义的表
2.1.3 rbg-Size
rbg-Size config1,
该参数指示一个RBG中包含多少个RBs。该参数仅指示采用Config 1还是Config 2,具体包含的RB个数需要查看38.214 表5.1.2.2.1-1。
可以看出,具体的RB个数还需要根据当前BWP size来确定。
当然,这个参数仅适用于PDSCH resource allocation type 0,即基于RBG的资源分配方式。而对于resource allocation type 1,即基于RIV的连续RB分配方式,本参数不适用,直接忽略。
示例中参数取值config1,但由于前面的IE resourceAllocation指示为resourceAllocationType1,所以本参数被忽略。
2.1.4 maxNrofCodeWordsScheduledByDCI
maxNrofCodeWordsScheduledByDCI n1,
单个DCI调度的最大码字个数。5G中下行一个DCI最多可以调度2个码字,上行一个DCI最多可以调度1个码字。
示例中的值表示一个DCI最多只能调度一个码字。
2.1.5 prb-BundlingType
prb-BundlingType staticBundling :
{
}
PRB Bundling是针对PDSCH的预编码粒度的一个配置,对比前面介绍的参数“precoderGranularity”、用于PDCCH的预编码粒度。
预编码粒度可以是频域上一定数目的RBs,这个数目可以是2,4或者"wideband"。
参数prb-BundlingType实际上指示了PDSCH预编码粒度的类型。在协议中(38.331,38.214 5.1.2.3)中分为两种:staticBundling和dynamicBundling。
如上图所示38.331中给出的参数定义。可以看出:
- staticBundling:可以配置n4(预编码粒度为连续4个RBs),或者wideband(预编码粒度为UE调度的整个PDSCH带宽)
- dynamicBundling:可以配置两个set
- bundleSizeSet1:可以配置1个选项或者2个选项
- n4(1个选项)
- wideband(1个选项)
- n2-wideband(2个选项):预编码粒度为连续2个RBs或者UE调度的整个PDSCH带宽。当UE被分配的连续RBs个数较大时为wideband,否则为连续2个RBs
- n4-wideband(2个选项):预编码粒度为连续4个RBs或者UE调度的整个PDSCH带宽。当UE被分配的连续RBs个数较大时为wideband,否则为连续4个RBs
- bundleSizeSet2:只能配置1个选项
- n4
- wideband
- bundleSizeSet1:可以配置1个选项或者2个选项
在dynamicBundling时,如何选择set1、set2、以及当set1配置了2个选项时选择哪个选项,这个由DCI中的'bundling size indicator'指示,具体规则见38.214 5.1.2.3
PRB Bundling这个概念、和LTE相比,看起来似乎是一个新概念,但我个人理解,实际上来自于LTE中RBG的概念。
示例中参数的值为staticBundling,且没有指出明确的size,则按照38.214 5.1.2.3的规定:预编码粒度为2 RBs
2.2 firstActiveDownlinkBWP-Id
firstActiveDownlinkBWP-Id 0,
指明激活的下行BWP ID。0即表示initial BWP。