想象一个课堂场景:老师在讲台上讲课(基站发下行数据),每个学生(手机)需要做三件事——
这三件事,就是5G上行控制信息(UCI)的全部。而PUCCH(Physical Uplink Control Channel,物理上行控制信道),就是学生用来完成这三件事的"互动通道"。
与4G LTE只有3种PUCCH格式不同,5G NR精心设计了5种格式,每种都是针对特定场景优化的"专用兵器"。为什么需要这么多?因为5G要同时服务eMBB(大带宽)、URLLC(低时延)和mMTC(海量连接)三大场景,一刀切的设计行不通。
在理解PUCCH之前,先看看它在整个物理层中的位置。5G NR定义了三大物理信道和多种参考信号:
| 方向 | 物理信道 | 功能 |
|---|---|---|
| 下行 | PDCCH | 传输DCI(调度控制信息) |
| 下行 | PDSCH | 传输用户数据 |
| 上行 | PUCCH | 传输UCI(上行控制信息) |
| 上行 | PUSCH | 传输用户数据 |
| 上行 | PRACH | 随机接入 |
PUCCH位于物理层(Layer 1),但它承载的内容来自MAC层(HARQ反馈)和物理层本身(CSI测量结果)。它不承载数据——这是一条纯粹的"控制专用道"。
graph TB
subgraph "下行 gNB → UE"
PDCCH[PDCCH<br>调度指挥]
PDSCH[PDSCH<br>数据传输]
end
subgraph "上行 UE → gNB"
PUCCH[PUCCH<br>控制反馈]
PUSCH[PUSCH<br>数据传输]
end
PDSCH -->|"解码成功?"| HARQ["HARQ-ACK/NACK"]
PDCCH -->|"调度信息"| SR["SR 请求"]
PDSCH -->|"信道测量"| CSI["CSI 报告"]
HARQ --> PUCCH
SR --> PUCCH
CSI --> PUCCH
PUCCH -->|"反馈后"| PDCCH
style PUCCH fill:#ff6b6b,color:#fff,stroke:#333
style HARQ fill:#ffd93d,color:#333
style SR fill:#6bcb77,color:#fff
style CSI fill:#4d96ff,color:#fff
基站通过PDSCH给手机发了一包数据。手机尝试解码后,需要回复:
这个反馈的时机由参数 K1 控制。K1表示PDSCH接收时刻到HARQ-ACK发送时刻的时隙间隔。比如K1=4,意味着手机在第n个时隙收到数据,在第n+4个时隙发回ACK/NACK。
当手机在多个时隙收到多个PDSCH(比如载波聚合场景),需要把所有ACK/NACK打包成一个"码本"(Codebook)一次性反馈。码本分为两种:
| 码本类型 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| Type 1(半静态) | 根据RRC配置的K1候选集,预先确定反馈比特数 | 简单可靠 | 可能浪费比特 |
| Type 2(动态) | 根据DCI中的DAI(下行分配索引)动态确定 | 节省开销 | 依赖DCI正确接收 |
当手机有上行数据要发(比如你打开微信发消息),但没有PUSCH资源时,怎么办?通过SR告诉基站:"我有数据要发,请给我上行资源!"
SR本质上就是一个1比特的"有/无"信号:
基站在预配置的SR资源上检测能量。如果检测到信号,就通过DCI给手机分配PUSCH资源。
SR有几个关键参数: - 周期:SR资源的出现频率(1~80个时隙) - sr-TransMax:最大发送次数,超过后触发随机接入 - sr-ProhibitTimer:两次SR之间的最小间隔,防止频繁请求
手机不断测量下行信道的质量,定期向基站汇报,内容包含:
| CSI组件 | 含义 | 比特数 |
|---|---|---|
| CQI(信道质量指示) | 推荐的MCS等级 | 4 bit |
| RI(秩指示) | 推荐的空间层数 | 取决于天线数 |
| PMI(预编码矩阵指示) | 推荐的预编码矩阵 | 取决于码本 |
| CRI(CSI-RS资源指示) | 推荐的CSI-RS资源 | 取决于资源配置 |
CSI反馈分三种模式:
graph LR
subgraph "CSI反馈模式"
P["周期性 Periodic<br>通过PUCCH发送<br>固定周期"]
SP["半持续 Semi-Persistent<br>MAC CE激活/去激活<br>PUCCH或PUSCH"]
AP["非周期 Aperiodic<br>DCI触发<br>仅通过PUSCH发送"]
end
P -->|开销小| SP -->|灵活性中| AP -->|最灵活|
style P fill:#6bcb77,color:#fff
style SP fill:#ffd93d,color:#333
style AP fill:#ff6b6b,color:#fff
5G NR为PUCCH设计了5种格式,核心设计思想是"按需选择"——载荷小用简单格式(省资源),载荷大用复杂格式(能承载);时延敏感用短格式(1-2个符号),覆盖受限用长格式(4-14个符号,能量累积)。
| 格式 | 时域长度 | 载荷大小 | 是否有DMRS | 波形类型 | 核心用途 |
|---|---|---|---|---|---|
| Format 0 | 1-2符号 | ≤2 bit | 无 | 序列选择 | 低时延HARQ-ACK、SR |
| Format 1 | 4-14符号 | ≤2 bit | 有(TDM) | 序列+OCC | 增强覆盖HARQ-ACK、SR |
| Format 2 | 1-2符号 | >2 bit | 有(FDM) | OFDM | 低时延多比特反馈 |
| Format 3 | 4-14符号 | >2 bit | 有(TDM) | OFDM | 大载荷UCI |
| Format 4 | 4-14符号 | >2 bit | 有(TDM) | DFT-s-OFDM | 多UE复用场景 |
想象你在不同的场景下需要传递信息:
场景A:只需要说"是"或"否"(HARQ-ACK或SR),而且要快。 → 用 Format 0。1-2个符号搞定,用不同的循环移位代表ACK/NACK,连DMRS都不需要。
场景B:只需要说"是"或"否",但手机在地下室,信号很弱。 → 用 Format 1。拉长到4-14个符号,让能量在时间上累积,对抗路径损耗。
场景C:需要说很多话(多比特HARQ-ACK + CSI),而且要快。 → 用 Format 2。1-2个符号但用多个PRB,DMRS和数据在频域复用,吞吐量高。
场景D:需要说很多话,信号又弱。 → 用 Format 3。4-14个符号 + 多个PRB,时间和频率都用上。
场景E:很多人同时要说很多话,但资源有限。 → 用 Format 4。用DFT-s-OFDM波形降低峰均比,通过块扩展(Block Spreading)让最多4个UE共享同一组PRB。
graph TD
START["UE需要发送UCI"] --> COUNT["计算UCI总比特数"]
COUNT -->|"≤ 2 bit"| SMALL["小载荷"]
COUNT -->|"> 2 bit"| LARGE["大载荷"]
SMALL -->|"需要低时延?"| F0["Format 0<br>1-2符号 · 无DMRS<br>序列选择"]
SMALL -->|"需要增强覆盖?"| F1["Format 1<br>4-14符号 · 有DMRS<br>序列+OCC扩展"]
LARGE -->|"需要低时延?"| F2["Format 2<br>1-2符号 · DMRS频分<br>OFDM高吞吐"]
LARGE -->|"需要多UE复用?"| F4["Format 4<br>4-14符号 · DFT-s-OFDM<br>块扩展支持4 UE"]
LARGE -->|"以上都不是?"| F3["Format 3<br>4-14符号 · OFDM<br>大载荷通用方案"]
style F0 fill:#ff6b6b,color:#fff
style F1 fill:#ffd93d,color:#333
style F2 fill:#6bcb77,color:#fff
style F3 fill:#4d96ff,color:#fff
style F4 fill:#9b59b6,color:#fff
Format 0是5G中最精巧的设计之一。它不需要DMRS、不需要信道编码、不需要调制映射,仅靠选择不同的序列来传递信息。
工作原理:基站为UE分配一个基础序列(低PAPR序列,类似Zadoff-Chu序列),并配置一个初始循环移位 $m_{cs,0}$。当UE需要反馈ACK时,使用循环移位 $m_{cs,0} + \Delta_{CS}$;当反馈NACK时,使用 $m_{cs,0} - \Delta_{CS}$($\Delta_{CS}$ 是偏移量)。
$$m_{cs} = m_{cs,0} + \delta_{CS}$$
其中 $\delta_{CS} \in {0, 3, 6, 9}$ 对应不同的UCI内容组合(1-bit或2-bit的HARQ-ACK + SR)。
多UE复用:通过给不同UE分配不同的循环移位 $m_{cs,0}$,最多12个UE可以在同一个PRB上同时发送Format 0,彼此正交不干扰。
为什么这么设计:Format 0的目标是"用最少的资源传递最关键的信息"。1-2个符号、1个PRB、不需要DMRS,开销极小。但代价是只能传1-2 bit。
Format 0虽然快,但如果手机在覆盖不好的地方(比如地下室),1-2个符号的能量不够用。Format 1的解决方案很直接——拉长传输时间。
Format 1使用4-14个OFDM符号,其中一部分传DMRS(用于信道估计),另一部分传UCI序列。通过正交覆盖码(OCC,Orthogonal Cover Code)在时间上扩展,既增加了能量累积,又支持多UE复用。
复用能力:假设Format 1占用14个符号,使用12个循环移位 × 7个OCC码,理论上可以在1个PRB上复用84个UE!这就是为什么Format 1特别适合小区边缘用户多的场景——资源利用率极高。
当需要传输多比特UCI(比如多载波HARQ-ACK + CSI),但又要求低时延时,Format 2出场。
Format 2只有1-2个符号,但它可以在频域占用多个PRB(最多16个)。DMRS和数据在频域上复用(FDM),每个PRB中一部分子载波传DMRS,另一部分传UCI数据。
Format 2使用Polar码进行信道编码(与小载荷场景匹配),QPSK调制。由于是标准OFDM波形,没有DFT预变换,因此可以实现较高的频谱效率。
限制:Format 2不支持多UE复用——一个PUCCH Format 2实例只能由一个UE使用。
Format 3是"万能选手"。4-14个符号 + 多个PRB,可以承载大量UCI比特(几百bit级别)。
Format 3使用OFDM波形,DMRS在时域上与UCI符号交替排列。比如在14个符号中,大约每3-4个符号就插入一个DMRS符号,保证信道估计的准确性。
支持的调制方式包括QPSK和16QAM(当载荷特别大时),使用Polar码或LDPC码(取决于载荷大小)。
Format 4的设计目标是在有限的资源上支持多UE同时发送中等大小的UCI。它使用DFT-s-OFDM波形(先做DFT变换再做OFDM调制),这使得信号的峰均比(PAPR)更低。
关键创新是块扩展(Block Spreading):将UCI数据分成多个块,每块乘以一个正交扩展码。最多4个UE使用不同的扩展码共享同一组PRB,在接收端通过码分多址分离。
$$y(n) = \sum_{k=0}^{K-1} x(k) \cdot w_k(n)$$
其中 $w_k(n)$ 是第$k$个UE的扩展序列,$x(k)$ 是UCI调制符号。
5G NR使用两层资源分配机制:先选Resource Set,再选具体的Resource。
graph TD
subgraph "PUCCH Resource Set 机制"
RS0["Resource Set 0<br>载荷 ≤ 2 bit<br>Format 0 或 1<br>≥ 8个资源"]
RS1["Resource Set 1<br>载荷 3~N bit<br>Format 2/3/4"]
RS2["Resource Set 2<br>更大载荷"]
RS3["Resource Set 3<br>最大载荷"]
end
UE["UE计算UCI比特数"] -->|"≤ 2 bit"| RS0
UE -->|"3~N bit"| RS1
UE -->|"更大"| RS2
RS0 -->|"DCI中PRI指示"| R0_1["Resource #0"]
RS0 --> R0_2["Resource #1"]
RS0 --> R0_n["Resource #n"]
RS1 --> R1_1["Resource #0"]
RS1 --> R1_2["Resource #1"]
style RS0 fill:#ff6b6b,color:#fff
style RS1 fill:#4d96ff,color:#fff
style RS2 fill:#6bcb77,color:#fff
具体流程: 1. UE计算UCI总比特数(HARQ-ACK + SR + CSI的比特总和) 2. 根据比特数选择Resource Set:≤2 bit选Set 0,>2 bit选其他Set 3. DCI中的PRI(PUCCH Resource Indicator) 指示具体的PUCCH资源 4. RRC配置的PUCCH-Config 定义了每个Resource的格式、时频位置、循环移位等参数
PUCCH资源在时频网格中有特定的放置规则:
| 方面 | 规则 | 原因 |
|---|---|---|
| 频域位置 | 通常在系统带宽的边缘 | 中间留给PUSCH大块传输 |
| 短PUCCH时域 | 位于时隙的开头或末尾1-2个符号 | 不影响PUSCH连续传输 |
| 长PUCCH时域 | 占据时隙的大部分符号 | 覆盖增强 |
| 跳频 | Format 1/3/4支持时隙内跳频 | 获得频率分集增益 |
PUCCH的发射功率由开环和闭环两部分共同决定:
$$P_{PUCCH} = \min \left{ P_{CMAX},\ P_0 + \Delta_{F_PUCCH} + 10\log_{10}(M_{RB}) + \Delta_{TF} + g(n) \right}$$
各参数含义:
| 参数 | 含义 | 谁控制 |
|---|---|---|
| $P_{CMAX}$ | UE最大发射功率 | 硬件能力(通常23dBm) |
| $P_0$ | 目标接收功率基准 | RRC配置 |
| $\Delta_{F_PUCCH}$ | 格式偏移(不同格式补偿不同) | RRC配置 |
| $M_{RB}$ | 分配的PRB数 | 调度决定 |
| $\Delta_{TF}$ | 传输格式偏移(载荷越大功率越高) | 自动计算 |
| $g(n)$ | 闭环TPC累积命令 | DCI下发 |
开环部分($P_0 + \Delta + 路损补偿$):UE根据下行参考信号估计路径损耗,自动补偿。距离基站越远,发射功率越高。
闭环部分($g(n)$):基站通过DCI中的TPC(Transmit Power Control)命令微调。如果基站收到的PUCCH信号太强,发"降低"命令;太弱则发"提高"命令。
有时候,UE既需要发UCI又需要发PUSCH数据。这时候不需要同时发PUCCH和PUSCH——UCI可以"搭便车"在PUSCH上传输。
当PUCCH和PUSCH在同一个时隙重叠时:
| UCI类型 | 在PUSCH上如何处理 |
|---|---|
| HARQ-ACK | 通过打孔(Puncturing)方式映射到PUSCH的特定RE上 |
| CSI Part 1 | 通过速率匹配方式与数据复用 |
| CSI Part 2 | 通过速率匹配方式与数据复用 |
| SR | 只传输1比特指示(有/无),不占太多资源 |
为什么HARQ-ACK用打孔而CSI用速率匹配? 因为HARQ-ACK的时延要求最高,必须保证它不被数据"挤掉"。打孔意味着PUSCH数据给HARQ-ACK让出位置(可能损失少量数据),而CSI可以和数据一起做速率匹配,更灵活。
场景1:下行吞吐量低,疑似HARQ反馈丢失
排查思路: 1. 检查L1日志中的PUCCH解码结果,看gNB是否正确收到了HARQ-ACK 2. 检查K1配置是否合理(太短可能导致UE来不及解码就到反馈时刻) 3. 检查PUCCH功率是否足够(查看PHR报告,确认UE没有功率受限) 4. 检查定时提前(TA)是否准确——如果TA偏了,PUCCH信号可能落到gNB接收窗口之外
场景2:上行调度延迟大,SR不被响应
排查思路: 1. 确认SR资源配置是否正确(周期、PUCCH资源索引) 2. 检查sr-ProhibitTimer和sr-TransMax是否过于保守 3. 查看gNB日志中SR检测是否成功——可能存在虚警(误把噪声当SR)或漏检 4. 检查PUCCH Format 0的循环移位配置,确保不同UE的循环移位间隔足够大
场景3:PUCCH资源冲突
当UE需要在同一时隙反馈多个HARQ-ACK、发送SR、上报CSI时,可能发生资源冲突。NR定义了UCI复用优先级: 1. HARQ-ACK优先级最高 2. SR次之 3. CSI优先级最低(可以被丢弃)
在分析PUCCH问题时,以下参数最为关键:
| 参数 | 来源 | 用途 |
|---|---|---|
| K1值 | DCI或RRC | 确定HARQ-ACK反馈时刻 |
| PRI(PUCCH Resource Indicator) | DCI | 确定用哪个PUCCH资源 |
| PUCCH Format | RRC | 确定使用哪种格式 |
| DAI(Downlink Assignment Index) | DCI | 确定HARQ-ACK码本大小 |
| TPC Command | DCI | 功率控制命令 |
| PHR(Power Headroom Report) | MAC CE | 判断UE是否功率受限 |
| 对比维度 | 4G LTE | 5G NR |
|---|---|---|
| 格式数量 | 3种(Format 1/1a/1b, 2/2a/2b, 3) | 5种(Format 0-4) |
| 短PUCCH | 不支持 | Format 0和2(1-2符号) |
| 波形选择 | 只有OFDM | OFDM和DFT-s-OFDM可选 |
| 时域长度 | 固定1子帧(1ms) | 灵活1-14符号 |
| 频域位置 | 固定在带宽边缘 | 灵活配置 |
| 跳频 | 支持 | 增强支持(更灵活的跳频模式) |
| DMRS设计 | 固定DMRS位置 | 按格式灵活设计 |
| 多UE复用 | 通过CS和OCC | CS + OCC + 块扩展(更多维度的复用) |
核心变化:5G NR从LTE的"固定模板"转向"按需配置"。时域长度从固定的1ms变成灵活的1-14符号,频域位置也可以灵活配置。这种灵活性带来了更高的资源效率,但也增加了配置复杂度。
Q: PUCCH Format 0不需要DMRS,基站怎么解调?
A: Format 0使用非相干检测。基站不通过DMRS估计信道,而是直接检测接收信号与本地序列的相关性。因为只传1-2 bit,信息就编码在不同循环移位的序列选择中,基站只需要判断"哪个序列的匹配度最高"。这就像你听朋友说"嗯"还是"啊"——不需要精确还原声波,只需要分辨两个不同的音。
Q: 什么时候UCI用PUCCH,什么时候用PUSCH?
A: 核心规则是——如果同一时隙有PUSCH传输,UCI优先搭PUSCH的便车。只有在没有PUSCH的时隙,才单独使用PUCCH传输UCI。这是因为同时发PUCCH和PUSCH需要UE有额外的射频能力(立方度量增加),而且浪费资源。
Q: HARQ-ACK码本Type 1和Type 2怎么选?
A: Type 1(半静态)适合调度模式固定、载波数较少的场景,开销可预测。Type 2(动态)适合载波聚合数多、调度灵活的场景,通过DAI动态指示需要反馈多少比特,更节省PUCCH资源。现网中载波聚合通常用Type 2,单载波多用Type 1。
Q: PUCCH和PDCCH是什么关系?
A: 它们是"对话的两端"。PDCCH是基站给手机下命令("你被调度了,资源在XX位置"),PUCCH是手机给基站回复("收到了/没收到/我需要资源/信道质量如何")。PDCCH告诉手机在哪发PUCCH(通过K1和PRI字段),PUCCH的反馈又影响基站下一步的PDCCH调度决策。两者形成闭环。
Q: Format 3和Format 4的核心区别是什么?
A: Format 3使用普通OFDM波形,1个UE独占所有资源,载荷可以很大;Format 4使用DFT-s-OFDM波形加块扩展,最多4个UE共享同一组PRB,载荷中等。如果系统需要支持大量UE同时反馈中等大小的UCI,Format 4更高效;如果单个UE需要反馈大量UCI,Format 3更合适。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
