简介:这份文档面向5G网络优化工程师与无线通信学习者,系统梳理NR网络中上行控制信息(UCI)的承载机制与PUCCH设计要点,帮助读者理解调度请求、HARQ ACK/NACK及CSI等控制信令如何在空口传输。资源为单个docx文件,压缩包约18KB,内容以表格与参数对照为主,便于快速查阅。文档重点讲解PUCCH五种格式:Format 0至Format 4在符号长度、承载比特数、UE复用能力上的差异,并说明Format 0/1支持同PRB内复用、Format 2/3/4不支持复用但采用时间或频率分集处理UCI与DMRS。同时结合3GPP TS 38.300-5.3.3,逐项列出各格式的UCI比特长度、PUCCH长度、起始PRB、跳频、OCC、最大码率、nrofSlots及π/2-BPSK等参数定义,并给出Format 0至Format 4的适用场景对比。已有369人学习,适合需要掌握UCI承载选择与PUCCH配置细节的优化人员参考。
1. 5G(NR)上行控制信息UCI:从PUCCH五种格式到承载参数的完整拆解
做5G网络优化的人,十有八九在某个时刻被上行控制信息(UCI, Uplink Control Information)绊过一跤。下行调度有DCI管着,上行这边UCI到底走PUCCH还是PUSCH、用哪种格式、参数怎么配,直接决定了HARQ ACK/NACK能不能按时送达、CSI报告能不能完整上报。这份文档把3GPP TS 38.300-5.3.3和38.211里关于PUCCH五种格式的定义、承载内容、参数差异整理成了一张完整的对照表,从Format 0到Format 4,每个格式的符号长度、比特数、复用能力、跳频配置、OCC参数都列得清清楚楚。适合正在做上行链路优化、PUCCH资源规划、或者排查HARQ反馈异常的工程师,也适合刚接触5G NR物理层、想把UCI承载机制一次性搞明白的读者。
2. PUCCH五种格式的选型逻辑:符号长度、比特数与复用能力怎么权衡
2.1 短PUCCH与长PUCCH的分界线
5G NR把PUCCH分成两大类:短PUCCH占1到2个符号,长PUCCH占4到14个符号。这个划分不是随便定的,背后是覆盖和容量的权衡。短PUCCH适合时延敏感、载荷小的场景,比如HARQ ACK/NACK反馈,因为它占用符号少,能快速发出去。长PUCCH适合载荷大、需要更好覆盖的场景,比如CSI报告,因为它有更多符号可以用来做时间分集和功率累积。
Format 0和Format 2属于短PUCCH,Format 1、3、4属于长PUCCH。注意Format 1虽然叫长PUCCH,但它的比特数限制在2比特以内,和Format 0一样。区别在于Format 1用4到14个符号,通过时间域扩展来提升覆盖,而Format 0只用1到2个符号,靠序列选择来区分用户。
2.2 五种格式的承载能力对照
把文档里的参数表拆开看,五种格式的核心差异集中在几个维度上:
| 参数 | Format 0 | Format 1 | Format 2 | Format 3 | Format 4 |
|---|---|---|---|---|---|
| UCI比特长度 | ≤2 | ≤2 | >2 | >2 | >2 |
| PUCCH长度 | 短(1~2符号) | 长(4~14符号) | 短(1~2符号) | 长(4~14符号) | 长(4~14符号) |
| 同PRB内UE复用 | 支持(CS) | 支持(CS&OCC) | 不支持 | 支持 | 支持(Pre-DFT OCC,最大4UE) |
| UCI/DMRS复用方式 | N/A | TDM | FDM | TDM | TDM |
| 起始PRB | PRB-Id | PRB-Id | PRB-Id | PRB-Id | PRB-Id |
| PRB数量 | 1 | 1 | 1~16 | 1~16 | 1 |
| 时隙内跳频 | 支持 | 支持 | 支持 | 支持 | 支持 |
| 起始符号索引 | 0~13 | 0~10 | 0~13 | 0~10 | 0~10 |
| 符号数 | 1~2 | 4~14 | 1~2 | 4~14 | 4~14 |
| 初始循环移位 | 0~11 | 0~11 | N/A | N/A | N/A |
| 时间域OCC | N/A | 0~6 | N/A | N/A | N/A |
| OCC长度 | N/A | N/A | N/A | N/A | 2,4 |
| OCC索引 | N/A | N/A | N/A | N/A | 0,1,2,3 |
| 时隙间跳频 | N/A | 支持 | 支持 | 支持 | 支持 |
| 附加DMRS | N/A | true | true | true | true |
| 最大码率 | N/A | N/A | 有 | 有 | 有 |
| nrofSlots | N/A | 2,4,8 | 2,4,8 | 2,4,8 | 2,4,8 |
| π/2-BPSK | N/A | 支持 | 支持 | 支持 | 支持 |
| 同时HARQ ACK和CSI | N/A | true | true | true | true |
这张表是整份文档最值钱的部分。Format 0和Format 1的比特数上限都是2,区别在符号数和复用方式。Format 0靠CS(循环移位)在同一个PRB里区分不同UE,Format 1同时用CS和OCC(正交覆盖码),复用维度更多。Format 2不支持同PRB复用,但用FDM把UCI和DMRS分开,适合载荷超过2比特的场景。Format 3和Format 4都支持大载荷,Format 3不支持同PRB复用,Format 4通过Pre-DFT OCC最多支持4个UE复用。
2.3 选型时先看比特数,再看复用需求
实际配置PUCCH资源时,我一般按这个顺序判断:
第一步,看UCI比特数。≤2比特优先考虑Format 0或Format 1,>2比特必须用Format 2、3或4。这一步就把选择范围缩小了一半。
第二步,看覆盖需求。如果UE在小区边缘,上行覆盖受限,选长PUCCH(Format 1、3、4),用更多符号累积能量。如果UE在小区中心,信道质量好,短PUCCH(Format 0、2)就够用,还能省资源。
第三步,看复用需求。同一个PRB里如果有多个UE要发PUCCH,Format 0、1、4支持复用,Format 2、3不支持。Format 4最多支持4个UE,Format 1的复用维度更高(CS+OCC),但比特数限制在2以内。
第四步,看跳频配置。五种格式都支持时隙内跳频,Format 1、2、3、4还支持时隙间跳频。跳频能带来频率分集增益,但会增加资源调度的复杂度。如果信道条件差、干扰严重,开跳频是值得的。
注意:Format 2和Format 3的PRB数量可以配到1~16,Format 0、1、4只能配1个PRB。这意味着Format 2和Format 3在频域上更灵活,适合大载荷场景。
3. PUCCH参数配置实操:从startingSymbolIndex到occ-Index的逐项说明
3.1 资源分配相关参数
配置PUCCH资源时,RRC信令里会带一串参数。文档里列出的这些参数,每一个都影响最终的空口行为。
startingPRB / PRB-Id:PUCCH占用的起始PRB。五种格式都用这个参数,但Format 2和Format 3可以配多个PRB,所以实际占用的频域资源是startingPRB到startingPRB+nrofPRBs-1。
nrofPRBs:PRB数量。Format 0、1、4固定为1,Format 2、3可以配1~16。配得越多,频域资源越宽,能承载的UCI载荷越大,但占用的上行资源也越多。
startingSymbolIndex:起始符号索引。Format 0和Format 2可以配0~13,Format 1、3、4可以配0~10。这个参数决定了PUCCH在时隙里的起始位置。
nrofSymbols:符号数。Format 0和Format 2配1~2,Format 1和Format 3配4~14,Format 4配4~14。符号数越多,覆盖越好,但占用时间资源越长。
intraSlotFrequencyHopping:时隙内跳频开关。五种格式都支持。开启后,PUCCH会在时隙内的两个跳频点之间切换,获得频率分集增益。
secondHopPRB:第二跳的PRB。开启时隙内跳频后,这个参数指定第二跳的起始PRB。
3.2 序列和OCC相关参数
initialCyclicShift:初始循环移位。Format 0和Format 1用这个参数,范围0~11。不同UE配不同的循环移位,就能在同一个PRB里复用。
timeDomainOCC:时间域正交覆盖码。Format 1用这个参数,范围0~6。配合循环移位,Format 1的复用维度比Format 0更高。
occ-Length:OCC长度。Format 4用这个参数,可以配2或4。
occ-Index:OCC索引。Format 4用这个参数,范围0~3。最多支持4个UE复用。
3.3 跳频和DMRS相关参数
interslotFrequencyHopping:时隙间跳频开关。Format 1、2、3、4支持,Format 0不支持。开启后,PUCCH会在不同时隙之间跳频。
additionalDMRS:附加DMRS开关。Format 1、2、3、4都支持配true。高速场景下开启附加DMRS能提升信道估计精度。
maxCodeRate:最大码率。Format 2、3、4有这个参数。码率越高,能承载的UCI比特越多,但可靠性下降。
nrofSlots:时隙数。Format 1、2、3、4可以配2、4、8。这个参数用于PUCCH重复传输,配得越多,覆盖越好,但时延越大。
pi2BPSK:π/2-BPSK调制开关。Format 1、2、3、4支持。开启后使用π/2-BPSK调制,峰均比更低,适合上行覆盖受限的场景。
simultaneousHARQ_ACK_CSI:同时发送HARQ ACK和CSI的开关。Format 1、2、3、4支持配true。开启后,UE可以在同一个PUCCH资源里同时上报HARQ反馈和CSI,减少上行控制信令的开销。
3.4 一个典型的PUCCH资源配置示例
假设我们要给一个小区中心、信道质量良好的UE配PUCCH资源,用于发送HARQ ACK/NACK,比特数1~2,不需要跳频,复用需求中等。按下面的思路走:
PUCCH-Resource ::= { pucch-ResourceId 0, format format0, startingPRB 10, intraSlotFrequencyHopping disabled, format0-Setup ::= { initialCyclicShift 3, nrofSymbols 2, startingSymbolIndex 12 } }这段配置的意思是:用Format 0,起始PRB为10,不开启时隙内跳频,初始循环移位为3,占用2个符号,从第12个符号开始。Format 0的比特数上限是2,适合HARQ ACK/NACK。初始循环移位配3,意味着这个UE在同一个PRB里和其他UE通过不同的循环移位来区分。起始符号配12,占用符号12和13,放在时隙末尾,尽量不影响PUSCH的数据传输。
如果这个UE需要发送CSI报告,比特数超过2,那就得换Format 2或Format 3。假设换成Format 2:
PUCCH-Resource ::= { pucch-ResourceId 1, format format2, startingPRB 20, nrofPRBs 4, intraSlotFrequencyHopping enabled, secondHopPRB 30, format2-Setup ::= { nrofSymbols 2, startingSymbolIndex 12 } }Format 2不支持同PRB复用,所以不用配循环移位。PRB数量配4,频域资源更宽,能承载更大的UCI载荷。开启时隙内跳频,第二跳PRB配30,获得频率分集增益。
提示:Format 2和Format 3的nrofPRBs可以配到16,但实际配多少要看小区上行带宽和PUCCH资源开销。配得太多会挤占PUSCH资源,影响上行吞吐量。
4. UCI承载在PUCCH还是PUSCH:DCI场景决定路径
4.1 什么情况下UCI走PUSCH
UCI不一定总走PUCCH。当UE同时有上行数据要发(PUSCH传输)和UCI要上报时,UCI可以复用到PUSCH上。这样做的好处是省掉一个PUCCH资源,减少上行控制信令的开销。
具体走哪条路,由承载DCI的场景决定。如果DCI调度的PUSCH传输里,UE同时有HARQ ACK/NACK或CSI要上报,UCI就复用到PUSCH上。如果UE没有PUSCH传输,UCI就走PUCCH。
4.2 UCI on PUSCH的复用规则
UCI复用到PUSCH上时,HARQ ACK/NACK和CSI的映射方式不同。HARQ ACK/NACK通常映射到PUSCH的解调参考信号(DMRS)附近的资源单元上,保证可靠性。CSI则映射到PUSCH的数据区域,和上行数据一起编码。
复用的时候要注意功率分配。UCI和上行数据共享PUSCH的发射功率,如果UCI的可靠性要求高,可能需要给UCI分配更多的功率偏移。这个偏移量由RRC信令里的betaOffset参数控制。
4.3 PUCCH和PUSCH的切换时机
实际网络里,UE什么时候走PUCCH、什么时候走PUSCH,是动态变化的。调度器会根据上行缓冲状态、UCI类型、信道条件来决策。做网络优化时,如果发现HARQ反馈时延大或者CSI上报不及时,可以检查一下PUCCH资源配得够不够、PUSCH复用开关有没有开。
注意:UCI on PUSCH虽然省资源,但会增加PUSCH的编码复杂度。如果PUSCH的码率已经很高,再复用UCI可能导致PUSCH解码失败。这种情况下,让UCI走PUCCH反而更稳妥。
5. PUCCH配置避坑:五条血泪经验
5.1 坑一:Format 0和Format 1的比特数搞混
现象:给UE配了Format 0,但UE要上报的UCI比特数超过2,结果PUCCH解码失败,HARQ反馈丢失。
原因:Format 0和Format 1的比特数上限都是2,但很多人以为Format 1是长PUCCH就能带更多比特。实际上Format 1的比特数限制和Format 0一样,只是符号数更多、覆盖更好。
解决:配PUCCH资源前先确认UCI比特数。≤2比特用Format 0或Format 1,>2比特必须用Format 2、3或4。如果比特数刚好在2附近,留点余量,别卡着上限配。
5.2 坑二:Format 2和Format 3的PRB数量配得太大
现象:小区上行吞吐量上不去,排查发现PUCCH占用了太多PRB资源。
原因:Format 2和Format 3的nrofPRBs可以配1~16,有人觉得配得越大越好,结果PUCCH挤占了大量上行资源,PUSCH能用的PRB变少。
解决:根据实际UCI载荷和覆盖需求配nrofPRBs。小区中心、信道好的UE,配1~4个PRB就够。小区边缘、覆盖受限的UE,可以适当多配几个PRB,但也要权衡资源开销。
5.3 坑三:跳频开了但secondHopPRB没配
现象:开启了时隙内跳频,但PUCCH解码性能没有改善,甚至变差。
原因:开启intraSlotFrequencyHopping后,必须配secondHopPRB。如果secondHopPRB没配或者配错了,第二跳的PRB位置不对,跳频增益就没了。
解决:开跳频的同时检查secondHopPRB。第二跳的PRB要和第一跳的PRB保持足够的频率间隔,才能获得频率分集增益。间隔太小,分集效果不明显。
5.4 坑四:Format 4的OCC索引冲突
现象:同一个PRB里配了多个Format 4的UE,但部分UE的PUCCH解码失败。
原因:Format 4通过Pre-DFT OCC支持最多4个UE复用,occ-Index范围0~3。如果两个UE配了相同的occ-Index,就会发生冲突。
解决:同一个PRB里配Format 4时,确保每个UE的occ-Index不同。occ-Length配2或4,occ-Index配0~3,最多支持4个UE。超过4个UE就要换PRB或者换格式。
5.5 坑五:additionalDMRS在低速场景下白白增加开销
现象:小区里UE移动速度不高,但PUCCH的DMRS开销很大,上行效率上不去。
原因:additionalDMRS配了true,但低速场景下信道变化慢,不需要额外的DMRS来做信道估计。
解决:低速场景下把additionalDMRS配false,减少DMRS开销。高速场景下再配true,保证信道估计精度。这个参数要根据UE的移动速度动态调整。
6. 用参数表反查PUCCH配置:一个排查HARQ反馈异常的实战技巧
做5G网络优化时,遇到HARQ反馈异常,我习惯先拿文档里的参数表反查PUCCH配置。具体做法是:先确认UE用的是哪种PUCCH格式,然后对照表格检查每个参数是否在合法范围内,最后看参数之间的组合有没有冲突。
举个例子。某次排查发现,一个UE的HARQ ACK/NACK反馈时延特别大,有时候甚至收不到。查配置发现用的是Format 1,nrofSymbols配了4,startingSymbolIndex配了10,timeDomainOCC配了0,initialCyclicShift配了0。表面上看参数都在合法范围内,但问题出在startingSymbolIndex配了10、nrofSymbols配了4,意味着PUCCH占用符号10到13。如果这个时隙里还有PUSCH传输,PUSCH的起始符号如果也是10,就会和PUCCH冲突。
对照表格里的参数范围:Format 1的startingSymbolIndex范围是0~10,nrofSymbols范围是4~14。配10和4是合法的,但合法不代表合理。实际配置时要考虑和PUSCH的资源冲突。后来把startingSymbolIndex改成0,PUCCH放在时隙开头,冲突就没了。
再举一个例子。某次发现Format 2的PUCCH解码失败率很高。查配置发现nrofPRBs配了16,intraSlotFrequencyHopping开了,但secondHopPRB配得和startingPRB很近,频率间隔不够。Format 2的PRB数量范围是1~16,配16是合法的,但占用的频域资源太宽,跳频的第二跳PRB如果和第一跳太近,频率分集增益就很小。后来把nrofPRBs降到4,secondHopPRB拉开频率间隔,解码成功率就上去了。
这个反查方法的逻辑是:参数表里的范围是3GPP规定的合法范围,但实际配置还要考虑小区带宽、PUSCH资源分配、信道条件、UE移动速度等因素。合法范围是底线,合理配置才是目标。
我一般会把这五个检查项过一遍:
| 检查项 | 检查内容 | 常见问题 |
|---|---|---|
| 格式与比特数匹配 | UCI比特数是否在格式支持范围内 | Format 0/1配了>2比特 |
| PRB数量合理 | nrofPRBs是否与载荷和带宽匹配 | Format 2/3配了16个PRB |
| 跳频配置完整 | 开跳频时secondHopPRB是否配了 | 开了跳频但没配第二跳PRB |
| OCC索引唯一 | 同PRB内Format 4的occ-Index是否冲突 | 两个UE配了相同occ-Index |
| DMRS开销可控 | additionalDMRS是否与移动速度匹配 | 低速场景配了true |
从那以后我每次配PUCCH资源,都强制走一遍这个检查表,尤其是Format 2和Format 3的PRB数量,再也不敢随手配16了。希望帮到你。
本文还有配套的精品资源,点击获取