本文翻译自 http://www.sharetechnote.com
PUCCH是上行物理信道的一种,用来承载UCI(上行控制信息)。正如DCI在PDCCH信道上发送一样,UCI在PUCCH信道上发送。但DCI与UCI的不同之处是,UCI根据不同情况可以承载在PUCCH或PUSCH上发送,而DCI只能在PDCCH上发送,任何情况下都无法在PDSCH上发送。
PUCCH的主要任务是承载UCI(上行控制信息)。虽然UCI可以作为PUCCH的一部分来介绍,但由于UCI也是很大的一个主题,我还是写了一个单独的网页here来介绍它(UCI不仅仅在PUCCH上发送,根据配置有可能在PUSCH上发送,所以有必要用单独的页面介绍它)。
PUCCH共有5种不同的格式,具体使用哪种格式取决于有多少bits的信息要发送,以及时域上分配了多少symbols,总结如下表所示。
< Based on 38.211 - Table 6.3.2.1-1: PUCCH formats.>
Format Types | Lengh of Symbols | Number of bits | Descriptions (based on 38.300 - 5.3.3) |
---|---|---|---|
Format 0 | 1~2 | <= 2 | Short PUCCH.with UE multiplexing in the same PRB.Based on sequence selection. |
Format 1 | 4~14 | <= 2 | Long PUCCH.with multiplexing in the same PRB.time-multiplex the UCI and DMRS |
Format 2 | 1~2 | > 2 | Short PUCCH.with no multiplexing in the same PRB.frequency multiplexes UCI and DMRS |
Format 3 | 4~14 | > 2 | Long PUCCH.with large UCI payloads and with no multiplexing capacity in the same PRBtime-multiplex the UCI and DMRS |
Format 4 | 4~14 | > 2 | Long PUCCH.with moderate UCI payloads and with some multiplexing capacity(max 4 UE) in the same PRB. |
通过 38.300 - 5.3.3 中的描述可以帮助你从另一个方面了解不同格式的区别。
最大 2bits 的短格式PUCCH是基于序列选择的,而大于 2bits 的短格式PUCCH 在频域复用UCI和DMRS。长格式的PUCCH时域复用UCI和DMRS。长格式PUCCH和占2符号的短格式PUCCH能够支持跳频。长格式PUCCH能多slots重复。
PUCCH不同格式的详细参数如下表所示。通过这个表格可以概览PUCCH的参数,但如果要了解每个参数的具体含义,需要继续学习此页面后边内容。
Parameter | Format 0 | Format 1 | Format 2 | Format 3 | Format 4 |
---|---|---|---|---|---|
UCI Bit Length | <= 2 | <= 2 | > 2 | > 2 | > 2 |
PUCCH Length | Short | Long | Short | Long | Long |
UE Multiplexing in Same PRB | YES(CS) | YES(CS&OCC) | NO | NO | YES(PreDFT OCC) |
UCI/DMRS Multiplexing Method | N/A | TDM | FDM | TDM | TDM |
starting PRB/PRB offset | PRB-Id | PRB-Id | PRB-Id | PRB-Id | PRB-Id |
nrofPRBs | 1 | 1 | 1~16 | 1~16 | 1 |
intraSlotFrequencyHopping | enabled | enabled | enabled | enabled | enabled |
secondHopPRB | PRB-Id | PRB-Id | PRB-Id | PRB-Id | PRB-Id |
startingSymbolIndex | 0~13 | 0~10 | 0~13 | 0~10 | 0~10 |
nrofSymbols | 1~2 | 4~14 | 1~2 | 4~14 | 4~14 |
initialCyclicShift | 0~11 | 0~11 | N/A | N/A | N/A |
timeDomainOCC | N/A | 0~6 | N/A | N/A | N/A |
occ-Length | N/A | N/A | N/A | N/A | 2,4 |
occ-Index | N/A | N/A | N/A | N/A | 0,1,2,3 |
interslotFrequencyHopping | N/A | enabled | enabled | enabled | enabled |
additionalDMRS | N/A | true | true | true | true |
maxCodeRate | N/A | ||||
nrofSlots | N/A | 2,4,8 | 2,4,8 | 2,4,8 | 2,4,8 |
pi2BPSK | N/A | enabled | enabled | enabled | enabled |
simultaneousHARQ_ACK_CSI | N/A | true | true | true | true |
以下是 38.213 - 9.2.1 PUCCH Resource Sets 描述PUCCH参数的示例。从这些示例可以看出,有些参数适用于所有格式的PUCCH,而有的参数只用于特定格式的PUCCH。
NR PUCCH 基带信号的生成过程与 LTE PUCCH(format 1,1a,1b, format 2,2a,2b and format 3) 同样复杂。PUCCH 的作用只是为了发送很少的几个bits给gNB,为什么需要如此复杂的过程呢?
实际上 PUCCH 不是唯一设计成如此复杂的信道,在通信技术中每个信道的处理都非常复杂。主要原因是为了保证信息传输的可靠性,或通过增加一些复杂性来将有限的物理资源能够给多用户复用。
总之,我不认为自己能够用简单的语言描述 PUCCH 基带信号产生的设计概念,也不会假装自己了解所有细节。
只有部分物理层开发工程师需要完全理解这一处理过程,而这些工程师不需要通过阅读此文章来学习这些内容。
这一部分主要目的是为了写一个PUCCH 基带处理的备忘表,并搞清楚RRC参数和基带处理之间的联系,尽管我们无法完全搞懂这一过程,但至少能够了解这些RRC参数与基带处理的哪些部分有关系。
PUCCH 基带处理分3步:
这3步对所有PUCCH格式都适用(Format 0,1,2,3,4),但不同的格式会在处理过程中有部分不同参数,有的格式还需要一些额外的步骤。
< 38.211 - Table 6.3.2.4.1-1: Number of PUCCH symbols and the corresponding >
< 38.211 - Table 6.3.2.4.1-2: Orthogonal sequences for PUCCH format 1 >
RRC Parameters | Related PUCCH Format | Description |
---|---|---|
PUCCH-F0-F1-initial-cyclic-shift | Format 0 / 1 | The index of the cyclic shift = {0,1,…11} |
PUCCH-F1-time-domain-OCC | Format 1 | The index of the orthogonal cover code |
dataScramblingIdentityPUSCH | Format 2 / 3 / 4 | Initialization of scrambling |
PUCCH-F4-preDFT-OCC-index | Format 4 | The index of the orthogonal cover code = {0,1,2,3} |
PUCCH-F4-preDFT-OCC-length | Format 4 | The length of the orghogonal cover code = {2,4} |
通过RRC参数PUCCH-frequency-hopping可以打开或关闭PUCCH跳频,配置参数如下。
PUCCH-Resource ::= SEQUENCE {
pucch-ResourceId PUCCH-ResourceId,
startingPRB PRB-Id,
intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, – Need R
secondHopPRB PRB-Id OPTIONAL, – Need R
…
}
如下是一些跳频的例子,更多例子请参考 this note with Matlab 5G Toolbox。
根据如下条件选择使用QPSK 或 BPSK 调制。
根据 UCI bits 数选择不同的信道编码方式。
UCI size including CRC, if present | Channel Code |
---|---|
1 | Repetition code |
2 | Simplex Code |
3-11 | Reed Muller Code |
> 11 | Polar Code |
UCI可以和PUSCH同时发送,也被称作复用。UCI / PUSCH 复用场景在 38.300 - 5.3.3 里描述。
UCI 携带 1/2 bits HARQ-ACK 反馈通过 PUSCH 打孔进行复用
其他场景下UCI通过 PUSCH 速率匹配进行复用
如上文描述,PUCCH有多种参数,而这些用来定义一个特定PUCCH的参数集就叫做PUCCH资源。参数列表如下。
不是每种PUCCH格式都会用到以上所有参数,不同的PUCCH格式用到不同的参数集,下表描述了每个参数用于哪些PUCCH资源。
Parameter | Applicable PUCCH Format |
---|---|
starting PRB/PRB offset | Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4) |
intraSlotFrequencyHopping | Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4) |
secondHopPRB | Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4) |
startingSymbolIndex | Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4) |
nrofSymbols | Common to All format(Format 0, Format 1, Format 2, Format 3, Format 4) |
initialCyclicShift | Format 0, Format 1 |
nrofPRBs | Format 2, Format 3 |
timeDomainOCC | Format 1 |
occ-Length | Format 4 |
occ-Index | Format 4 |
interslotFrequencyHopping | Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig) |
additionalDMRS | Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig) |
maxCodeRate | Format 2, Format 3, Format 4 (See PUCCH-FormatConfig) |
nrofSlots | Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig) |
pi2BPSK | Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig) |
simultaneousHARQ_ACK_CSI | Format 1, Format 2, Format 3, Format 4 (See PUCCH-FormatConfig) |
之前章节我们知道PUCCH由一组参数定义,那么gNB如何给UE传输这些信息?换句话说,UE如何知道在发送PUCCH的时候使用哪种格式和参数?
PUCCH Resource List(Table) 有两种定义方式。一种是使用3GPP协议里预先定义的资源集配置,另一种是通过RRC信令进行配置。
这种场景在 38.213-9.2.1 里描述如下,在没有收到RRC信令携带PUCCH-Config及PUCCHResourceSet配置时,使用协议预定义的表格。有两个RRC信令会携带PUCCH-Config,RRCSetup和SA场景的RRCReconfiguration或NSA场景的RRCConnectionReconfiguration。所以如果RRCSetup中配置了PUCCH-Config,预定义的表格只在RRCSetup之前一小段时间使用。而如果RRCSetup没有配置PUCCH-Config,则在RRCReconfiguration之前都会使用。
<38.213 v15.3 - Table 9.2.1-1: PUCCH resource sets before dedicated PUCCH resource configuration >
每个小区只能使用表中的一个资源,使用哪个资源由 SIB1中的PUCCH-ConfigCommon.pucch-ResourceCommon字段指示,如下。
PUCCH-ConfigCommon ::= SEQUENCE {
pucch-ResourceCommon INTEGER (0…15) OPTIONAL, – Need R
pucch-GroupHopping ENUMERATED { neither, enable, disable },
hoppingId INTEGER (0…1023) OPTIONAL, – Need R
p0-nominal INTEGER (-202…24) OPTIONAL, – Need R
…
}
pucch-ResourceCommon 指示 0 到 15 的资源索引,使用此索引在 38.213 Table 9.2.1-1 找到对应资源信息。
例如,如果 pucch-ResourceCommon = 1 将使用如下的PUCCH资源配置。
PUCCH Format = Format 0
FirstSymbol = 12
Number of Symbols = 2
PRB Offset = 0
Set of Initial CS Indexes = {0,4,8}
在 38.213 Table 9.2.1-1表格中定义了PUCCH的格式和时域资源信息,但是没有指明频域资源信息。其频域信息需要通过 DCI 和 PDCCH CCE位置计算得到(38.213-9.2.1)。
PUCCH资源表在RRC消息中定义(e.g, RRCSetup(NR), RRCReconfiguration(NR), RRCConnectionReconfiguration(LTE for NR Addition),创建一个PUCCH资源分配表格主要由以下步骤构成。
第 1 步: 在resourceToAddModList中定义gNB可能用到的所有PUCCH Format 资源
第 2 步: 通过将以上资源组合,在resourceSetToAddModList中定义一个或多个资源集
当由UCI需要传输的时候,如何从上述资源分配表格中选出特定的资源,可以分以下两步。
第 1 步: 根据UCI bit长度从ResourceSetToAddModList中选出一个资源集
第 2 步: 根据DCI指示从选出的资源集中选出特定资源
下图描述了步骤1的过程(PUCCH 资源集的选择)
下图描述了步骤2的过程(PUCCH 资源的选择)
这些例子来自 Amarisoft Network Simulator.
pucch_Config
setup
resourceSetToAddModList
pucch-ResourceSetID = 0
resourceList
{
0, // these are the pucch-ResourceId defined in resourceToAddModList.
1, // you can make any combination of the list here
2, // example : {0,1,2,3,4,5,6,7}
3, // example : {0,1,2,3,0,1,2,3}
4, // example : {0,0,0,0,0,0,0,0}
5,
6,
7
}
maxPayloadMinus1
pucch_Config
setupresourceToAddModList
{
pucch-ResourceId = 0
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 0
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 1
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 1
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 2
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 3
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 3
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 7
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 4
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 0
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 5
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 1
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 6
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 3
nrofSymbols = 1
startingSymbolIndex = 13
}
}
{
pucch-ResourceId = 7
startingPRB = 0
intraSlotFrequencyHopping = Omitted
secondHopPRB = 0
format = format0
format 0
{
initialCyclicShift = 7
nrofSymbols = 1
startingSymbolIndex = 13
}
}
........
uplinkConfig {
initialUplinkBWP {
pucch-Config setup: {
resourceSetToAddModList {
{
pucch-ResourceSetId 0,
resourceList {
0,
1,
2,
3,
4,
5,
6,
7
}
},
{
pucch-ResourceSetId 1,
resourceList {
8,
9,
10,
11,
12,
13,
14,
15
}
}
},
resourceToAddModList {
{
pucch-ResourceId 0,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 0,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
},
{
pucch-ResourceId 1,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 4,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
},
{
pucch-ResourceId 2,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 8,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
},
{
pucch-ResourceId 3,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 0,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 1
}
},
{
pucch-ResourceId 4,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 4,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 1
}
},
{
pucch-ResourceId 5,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 8,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 1
}
},
{
pucch-ResourceId 6,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 0,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 2
}
},
{
pucch-ResourceId 7,
startingPRB 0,
intraSlotFrequencyHopping enabled,
secondHopPRB 50,
format format1: {
initialCyclicShift 4,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 2
}
},
{
pucch-ResourceId 8,
startingPRB 50,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n0,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 9,
startingPRB 50,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n1,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 10,
startingPRB 50,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n2,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 11,
startingPRB 50,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n3,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 12,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 49,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n0,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 13,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 49,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n1,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 14,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 49,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n2,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 15,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 49,
format format4: {
nrofSymbols 14,
occ-Length n4,
occ-Index n3,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 16,
startingPRB 49,
intraSlotFrequencyHopping enabled,
secondHopPRB 1,
format format1: {
initialCyclicShift 8,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
}
},
format1 setup: {
},
format4 setup: {
maxCodeRate zeroDot25
},
Based on 38.331 v15.3
PUCCH-Config ::= SEQUENCE {
resourceSetToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet OPTIONAL, -- Need N
resourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N
resourceToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource OPTIONAL, -- Need N
resourceToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId OPTIONAL, -- Need N
format1 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
format2 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
format3 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
format4 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
schedulingRequestResourceToAddModList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig OPTIONAL, -- Need M
schedulingRequestResourceToReleaseList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId OPTIONAL, -- Need M
multi-CSI-PUCCH-ResourceList SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId OPTIONAL,-- Need M
dl-DataToUL-ACK SEQUENCE (SIZE (8)) OF INTEGER (0..15) OPTIONAL, -- Need M
spatialRelationInfoToAddModList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo OPTIONAL, -- Need N
spatialRelationInfoToReleaseList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId OPTIONAL, -- Need N
pucch-PowerControl [PUCCH-PowerControl] OPTIONAL, -- Need M
...
}
maxNrofPUCCH-ResourceSets = 4
maxNrofPUCCH-Resources = 127
resourceSetToAddModList : List of PUCCH-ResourceSet
resourceToAddModList : Lists for adding PUCCH resources applicable for the UL BWP and serving cell in which the PUCCH-Config is defined. The resources defined herein are referred to from other parts of the configuration to determine which resource the UE shall use for which report.
format1 : Parameters that are common for all PUCCH resources of format 1
format2 : Parameters that are common for all PUCCH resources of format 2
format3 : Parameters that are common for all PUCCH resources of format 3
format4 : Parameters that are common for all PUCCH resources of format 4
dl-DataToUL-ACK : List of timiing for given PDSCH to the DL ACK. In this version of the specification only the values [0…8] are applicable. Corresponds to L1 parameter ‘Slot-timing-value-K1’
spatialRelationInfoToAddModList : Configuration of the spatial relation between a reference RS and PUCCH. Reference RS can be SSB/CSI-RS/SRS. If the list has more than one element, MAC-CE selects a single element. Corresponds to L1 parameter ‘PUCCH-SpatialRelationInfo’
PUCCH-FormatConfig ::= SEQUENCE {
interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, -- Need R
additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R
maxCodeRate PUCCH-MaxCodeRate OPTIONAL, -- Need R
nrofSlots ENUMERATED {n2,n4,n8} OPTIONAL, -- Need S
pi2PBSK ENUMERATED {enabled} OPTIONAL, -- Need R
simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R
}
PUCCH-MaxCodeRate ::= ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80}
interslotFrequencyHopping : Enabling inter-slot frequency hopping when PUCCH Format 1, 3 or 4 is repetead over multiple slots. The field is not applicable for format 2
additionalDMRS : Enabling 2 DMRS symbols per hop of a PUCCH Format 3 or 4 if both hops are more than X symbols when FH is enabled (X=4). Enabling 4 DMRS sybmols for a PUCCH Format 3 or 4 with more than 2X+1 symbols when FH is disabled (X=4). Corresponds to L1 parameter ‘PUCCH-F3-F4-additional-DMRS’. The field is not applicable for format 1 and 2.
maxCodeRate : Max coding rate to determine how to feedback UCI on PUCCH for format 2, 3 or 4. Corresponds to L1 parameter ‘PUCCH-F2-maximum-coderate’, ‘PUCCH-F3-maximum-coderate’ and ‘PUCCH-F4-maximum-coderate’ . The field is not applicable for format 1.
nrofSlots : Number of slots with the same PUCCH F1, F3 or F4. When the field is absent the UE applies the value n1. Corresponds to L1 parameter ‘PUCCH-F1-number-of-slots’, ‘PUCCH-F3-number-of-slots’ and ‘PUCCH-F4-number-of-slots’. The field is not applicable for format 2.
pi2PBSK : Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. Corresponds to L1 parameter ‘PUCCH-PF3-PF4-pi/2PBSK’. The field is not applicable for format 1 and 2.
simultaneousHARQ-ACK-CSI : Enabling simultaneous transmission of CSI and HARQ-ACK feedback with or without SR with PUCCH Format 2, 3 or 4. Corresponds to L1 parameter ‘PUCCH-F2-Simultaneous-HARQ-ACK-CSI’, ‘PUCCH-F3-Simultaneous-HARQ-ACK-CSI’ and ‘PUCCH-F4-Simultaneous-HARQ-ACK-CSI’. When the field is absent the UE applies the value OFF. The field is not applicable for format 1.
PUCCH-SpatialRelationInfo ::= SEQUENCE {
pucch-SpatialRelationInfoId PUCCH-SpatialRelationInfoId,
referenceSignal CHOICE {
ssb-Index SSB-Index,
csi-RS-Index NZP-CSI-RS-ResourceId,
srs SRS-ResourceId
},
pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id,
p0-PUCCH-Id P0-PUCCH-Id,
closedLoopIndex ENUMERATED { i0, i1 }
}
PUCCH-SpatialRelationInfoId ::= INTEGER (1..maxNrofSpatialRelationInfos)
PUCCH-ResourceSet ::= SEQUENCE {
pucch-ResourceSetId PUCCH-ResourceSetId,
resourceList SEQUENCE (SIZE (8..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId,
maxPayloadMinus1 INTEGER (4..256) OPTIONAL -- Need R
}
maxNrofPUCCH-ResourcesPerSet ::= 4
PUCCH-ResourceSetId ::= INTEGER (0..maxNrofPUCCH-ResourceSets-1)
PUCCH-Resource ::= SEQUENCE {
pucch-ResourceId PUCCH-ResourceId,
startingPRB PRB-Id,
intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R
secondHopPRB PRB-Id OPTIONAL, -- Need R
format CHOICE {
format0 PUCCH-format0, - Cond InFirstSetOnly
format1 PUCCH-format1, - Cond InFirstSetOnly
format2 PUCCH-format2, - Cond NotInFirstSet
format3 PUCCH-format3, - Cond NotInFirstSet
format4 PUCCH-format4 - Cond NotInFirstSet
}
}
PUCCH-ResourceId ::= INTEGER (0..maxNrofPUCCH-Resources-1)
PUCCH-format0 ::= SEQUENCE {
initialCyclicShift INTEGER(0..11),
nrofSymbols INTEGER (1..2),
startingSymbolIndex INTEGER(0..13)
}
PUCCH-format1 ::= SEQUENCE {
initialCyclicShift INTEGER(0..11),
nrofSymbols INTEGER (4..14),
startingSymbolIndex INTEGER(0..10),
timeDomainOCC INTEGER(0..6)
}
PUCCH-format2 ::= SEQUENCE {
nrofPRBs INTEGER (1..16),
nrofSymbols INTEGER (1..2),
startingSymbolIndex INTEGER(0..13)
}
PUCCH-format3 ::= SEQUENCE {
nrofPRBs INTEGER (1..16),
nrofSymbols INTEGER (4..14),
startingSymbolIndex INTEGER(0..10)
}
PUCCH-format4 ::= SEQUENCE {
nrofSymbols INTEGER (4..14),
occ-Length ENUMERATED {n2,n4},
occ-Index ENUMERATED {n0,n1,n2,n3},
startingSymbolIndex INTEGER(0..10)
}
SchedulingRequestResourceConfig ::= SEQUENCE {
schedulingRequestResourceId SchedulingRequestResourceId,
schedulingRequestID SchedulingRequestId,
periodicityAndOffset CHOICE {
sym2 NULL,
sym6or7 NULL,
sl1 NULL, -- Recurs in every slot
sl2 INTEGER (0..1),
sl4 INTEGER (0..3),
sl5 INTEGER (0..4),
sl8 INTEGER (0..7),
sl10 INTEGER (0..9),
sl16 INTEGER (0..15),
sl20 INTEGER (0..19),
sl40 INTEGER (0..39),
sl80 INTEGER (0..79),
sl160 INTEGER (0..159),
sl320 INTEGER (0..319),
sl640 INTEGER (0..639)
} OPTIONAL, -- Need M
resource PUCCH-ResourceId OPTIONAL -- Need M
}
PUCCH-PowerControl ::= SEQUENCE {
deltaF-PUCCH-f0 INTEGER (-16..15) OPTIONAL, -- Need R
deltaF-PUCCH-f1 INTEGER (-16..15) OPTIONAL, -- Need R
deltaF-PUCCH-f2 INTEGER (-16..15) OPTIONAL, -- Need R
deltaF-PUCCH-f3 INTEGER (-16..15) OPTIONAL, -- Need R
deltaF-PUCCH-f4 INTEGER (-16..15) OPTIONAL, -- Need R
p0-Set SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH OPTIONAL, -- Need M
pathlossReferenceRSs SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS OPTIONAL, -- Need M
twoPUCCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need R
...
}
P0-PUCCH ::= SEQUENCE {
p0-PUCCH-Id P0-PUCCH-Id,
p0-PUCCH-Value INTEGER (-16..15)
}
P0-PUCCH-Id ::= INTEGER (1..8)
PUCCH-PathlossReferenceRS ::= SEQUENCE {
pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id,
referenceSignal CHOICE {
ssb-Index SSB-Index,
csi-RS-Index NZP-CSI-RS-ResourceId
}
}
PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)
PUCCH-ConfigCommon ::= SEQUENCE {
pucch-ResourceCommon INTEGER (0..15) OPTIONAL, -- Need R
pucch-GroupHopping ENUMERATED { neither, enable, disable },
hoppingId INTEGER (0..1023) OPTIONAL, -- Need R
p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R
...
}
[1] Physical Uplink Control Channel Design for 5G New Radio
[2] 5G NR UCI | Uplink Control Information (UCI) in 5G NR
[3] Physical Uplink Control Channel Design for 5G NewvRadio