5G NR PUSCH时域资源实战:从DCI调度到Configured Grant,手把手教你读懂配置表
5G NR PUSCH时域资源实战:从DCI调度到Configured Grant的深度解析
引言:为什么PUSCH时域资源分配如此重要?
在5G NR系统中,物理上行共享信道(PUSCH)承载着用户设备(UE)向基站发送的关键数据。时域资源分配的合理配置直接影响着上行传输的效率、可靠性和时延性能。与4G LTE相比,5G NR在PUSCH时域资源分配上引入了更多灵活性和复杂性,包括多种映射类型(Mapping Type)、重复传输机制(Repetition Type)以及多时隙TB处理(TBoMS)等新特性。
对于5G协议栈开发工程师和网络优化人员而言,深入理解PUSCH时域资源分配机制至关重要。这不仅关系到系统性能优化,还直接影响着URLLC(超可靠低时延通信)和mMTC(海量机器类通信)等关键场景的实现。本文将从一个实际配置案例出发,系统解析PUSCH时域资源分配表(pusch-TimeDomainAllocationList)中各参数的实际含义和配置逻辑,并对比不同调度方式下的应用差异。
1. PUSCH时域资源分配基础:核心参数解析
1.1 映射类型(Mapping Type)的选择与影响
5G NR定义了两种PUSCH映射类型,直接影响着资源分配的灵活性:
Mapping Type A特点:
- 起始符号必须从时隙的第一个符号(符号0)开始
- 最小符号长度为4个符号
- 适用于对时延要求不严格的eMBB业务
Mapping Type B特点:
- 起始符号可以从时隙内任意符号开始
- 最小符号长度仅为1个符号
- 支持更灵活的微时隙(mini-slot)调度
- 特别适合URLLC等低时延场景
实际配置示例:
Mapping Type A典型配置: startSymbolAndLength = 0 (SLIV=0) → S=0, L=14 (全时隙占用) Mapping Type B典型配置: startSymbolAndLength = 32 (SLIV=32) → S=4, L=4 (从符号4开始,占用4个符号)1.2 重复传输类型(Repetition Type)的配置策略
5G NR支持两种PUSCH重复传输机制,用于增强覆盖和可靠性:
Repetition Type A(基于时隙的重复):
- 每个重复占用完整时隙
- 所有重复使用相同的符号分配(相同的S和L)
- 每次重复使用不同的RV版本
- 适用于中低速移动场景
Repetition Type B(基于符号的重复):
- 支持更细粒度的符号级重复
- 每次重复可以跨越时隙边界
- 支持名义重复(Nominal)和实际重复(Actual)的概念
- 特别适合URLLC的超低时延需求
配置对比表:
| 特性 | Repetition Type A | Repetition Type B |
|---|---|---|
| 时间粒度 | 时隙级 | 符号级 |
| 最小重复单元 | 1个时隙 | 1个符号 |
| 适用场景 | eMBB、mMTC | URLLC |
| 调度灵活性 | 较低 | 较高 |
| 时延性能 | 一般 | 优秀 |
1.3 时隙偏移K2的计算与优化
K2参数定义了PUSCH传输相对于调度DCI的时隙偏移,其计算需要考虑多种因素:
基本计算公式: Ks = floor(n * 2^μ_PUSCH / 2^μ_PDCCH) + K2 + K_offset 其中: - n:调度DCI所在的时隙号 - μ_PUSCH/μ_PDCCH:PUSCH/PDCCH的子载波间隔配置 - K_offset:CA场景下的额外偏移量实际工程中需要注意:
- 不同子载波间隔(SCS)下的K2值需要转换
- 载波聚合(CA)场景需要考虑跨载波调度偏移
- 对于Configured Grant Type 2,首次传输的K2由激活DCI决定
2. 动态调度PUSCH的时域资源分配实战
2.1 DCI格式与资源分配表的对应关系
不同DCI格式使用不同的时域资源分配表:
DCI格式0_0:
- 仅支持R15版本的时域资源分配表
- 不支持重复传输和TBoMS
- 适用于简单的调度场景
DCI格式0_1/0_2:
- 支持R15/R16增强的时域资源分配表
- 支持重复传输和TBoMS
- 支持一个DCI调度多个PUSCH
- 适用于复杂的高级调度场景
配置示例:
// R16时域资源分配表示例 pusch-TimeDomainAllocationListDCI-0-1-r16 ::= SEQUENCE { k2 INTEGER(0..31), mappingType ENUMERATED {typeA, typeB}, startSymbolAndLength INTEGER(0..127), numberOfRepetitions ENUMERATED {n1, n2, n4, n8} OPTIONAL, numberOfSlotsTBoMS ENUMERATED {n1, n2, n4, n8, n16, n32} OPTIONAL }2.2 时域资源分配表的实际解码过程
时域资源分配表的解码流程:
- UE根据DCI格式确定使用的资源分配表
- 通过DCI中的"Time domain resource assignment"字段获取行索引
- 从对应行中解析出各参数:
- k2:时隙偏移
- mappingType:映射类型
- startSymbolAndLength:起始符号和长度
- numberOfRepetitions:重复次数(可选)
- numberOfSlotsTBoMS:TBoMS时隙数(可选)
关键点:
- 对于Repetition Type B,startSymbol和length直接给出
- 对于Repetition Type A,需要通过SLIV公式计算S和L
SLIV计算公式:
if (L-1) ≤ 7 then SLIV = 14 × (L-1) + S else SLIV = 14 × (14 - L + 1) + (14 - 1 - S) end if2.3 TBoMS配置与重复传输的协同设计
TB processing over multi-slot(TBoMS)是R16引入的重要特性:
TBoMS核心特点:
- 一个TB块跨越多个时隙传输
- 所有时隙传输相同的RV版本
- 与Repetition Type A可以同时配置
- 必须满足N×K ≤ 32的约束条件
实际配置案例:
// 示例:配置TBoMS N=4,重复K=8 pusch-TimeDomainAllocationListDCI-0-1-r16 ::= { k2 = 2, mappingType = typeA, startSymbolAndLength = 0, // S=0, L=14 numberOfRepetitions = n8, numberOfSlotsTBoMS = n4 }工程注意事项:
- TBoMS传输的TB块大小受限于3840或8448比特
- 每个CB块独立进行速率匹配
- 需要特别关注跨时隙的速率匹配连续性
3. 随机接入过程中的PUSCH资源分配
3.1 4步随机接入中的MSG3 PUSCH
MSG3 PUSCH的时域资源配置特点:
- 初传由RAR UL grant调度
- 重传由TC-RNTI加扰的DCI 0_0调度
- 仅支持Repetition Type A
- 重复次数K由MCS字段的2个最高有效位(MSB)指示
MSG3重复传输配置流程:
1. 基站通过SIB1或RRC专用信令配置numberOfMsg3-RepetitionList 2. UE根据RAR中的MCS字段MSB选择重复次数 3. 在连续N_PUSCH_repeat个时隙中传输PUSCH 4. 对于TDD系统,跳过包含下行符号或SSB符号的时隙3.2 2步随机接入中的MSGA PUSCH
MSGA PUSCH的关键配置参数:
| 参数 | 说明 | 示例值 |
|---|---|---|
| msgA-PUSCH-TimeDomainOffset | 相对于PRACH的时隙偏移 | 2 |
| nrofSlotsMsgA-PUSCH | 连续传输的时隙数 | 1 |
| nrofMsgA-PO-perSlot | 每时隙PO数 | 2 |
| startSymbolAndLengthMsgA-PO | 起始符号和长度 | 32 (S=4,L=4) |
资源配置特点:
- 时频资源通过msgA-PUSCH-Config半静态配置
- 支持时域和频域的多路复用
- PRACH preamble与PUSCH occasion有固定映射关系
- 支持时隙内频率跳变(intra-slot frequency hopping)
4. Configured Grant PUSCH的时域资源管理
4.1 Configured Grant Type1的资源配置
Type1 CG PUSCH的核心特点:
- 完全通过RRC信令配置(rrc-ConfiguredUplinkGrant)
- 无需DCI激活
- 支持Repetition Type A/B
- 时域资源分配表选择规则与DCI 0_0相同
典型配置示例:
configuredGrantConfig ::= { configuredGrantType = type1, rrc-ConfiguredUplinkGrant ::= { timeDomainAllocation = 1, repK = n4, pusch-RepTypeIndicator = pusch-RepTypeA }, ... }4.2 Configured Grant Type2的灵活调度
Type2 CG PUSCH的关键特性:
- 通过RRC配置+DCI激活的混合方式
- 支持动态重配置
- 支持TBoMS和重复传输
- 首次传输的K2由激活DCI决定
激活流程:
1. 基站通过RRC配置configuredGrantConfig 2. UE接收CS-RNTI加扰的激活DCI 3. 从DCI指示的时域资源分配表行获取参数 4. 按照配置的周期性和偏移进行周期性传输4.3 Configured Grant的性能优化建议
基于实际部署经验,我们建议:
URLLC场景:
- 使用Type2 CG+Repetition Type B组合
- 配置适当的K_offset保证传输可靠性
- 启用invalidSymbolPattern避免符号冲突
mMTC场景:
- 采用Type1 CG+Repetition Type A组合
- 合理设置repK值增强覆盖
- 考虑TBoMS降低信令开销
eMBB场景:
- 根据业务周期选择CG类型
- 优化timeDomainAllocation提升资源利用率
- 动态调整SCS和CP配置
5. 跨场景时域资源分配对比与最佳实践
5.1 不同调度方式的参数支持对比
| 特性 | 动态调度 | MSG3 PUSCH | Configured Grant |
|---|---|---|---|
| 映射类型 | A/B | A/B | A/B |
| 重复类型 | A/B | 仅A | A/B |
| TBoMS | 支持 | 不支持 | Type2支持 |
| K2配置 | 动态 | 固定 | Type1无,Type2动态 |
| 资源分配表 | 多套可选 | 仅Default A或专用表 | 与DCI类型相关 |
5.2 常见配置问题排查指南
问题1:PUSCH传输时机不正确
- 检查K2计算是否考虑SCS差异
- 验证CA场景下的slotOffset配置
- 确认TDD上下行配比是否冲突
问题2:重复传输次数不符预期
- 检查numberOfRepetitions配置
- 确认Repetition Type是否匹配
- 验证TDD系统中可用时隙计算
问题3:TBoMS传输失败
- 确保N×K ≤ 32
- 检查跨时隙的速率匹配连续性
- 验证TB大小是否超出限制
5.3 版本兼容性注意事项
- R15 UE不支持Repetition Type B和TBoMS
- R16引入的AvailableSlotCounting需要终端支持
- R17增强的RedCap特性可能影响时隙计算
- 前向兼容设计时需考虑默认表(Default A)的支持
在实际网络部署中,我们曾遇到一个典型案例:某厂商设备因未正确处理TBoMS的速率匹配连续性,导致在高负载场景下出现系统性传输失败。通过抓包分析和信令跟踪,最终定位到是跨时隙的k0计算存在偏差,通过补丁更新解决了该问题。
