在 LTE 时代,UE 始终在整个小区带宽(Cell Bandwidth,最高 20 MHz)上收发与监听,这种"全带宽常开"模式在 5G NR 面临三重挑战:
BWP(Bandwidth Part,带宽部分)由此被引入(TS 38.211、TS 38.300)。其核心定义是:载波中一组连续的 PRB,由起始位置、带宽、SCS 与 CP 共同定义;每个 UE 在任意时刻下行只激活 1 个 DL BWP、上行只激活 1 个 UL BWP,但 RRC 可为每个方向配置最多 4 个 BWP。BWP 不是 LTE 的"窄带"概念,而是一套带状态机的带宽自适应子系统。
理解 BWP 的关键不在定义,而在切换机制——gNB 如何、何时把 UE 从一个 BWP 搬到另一个 BWP。这正是本文拆解的核心。
在进入切换机制前,必须厘清四个常被混淆的概念:
| BWP 类型 | 来源 | 关键 IE | 典型带宽 | 用途 |
|---|---|---|---|---|
| Initial BWP(初始) | SIB1 广播 | BWP(公共配置) |
通常较窄,含 SSB/CORESET#0 | 初始接入、Msg2/Msg4、寻呼、系统消息 |
| Dedicated BWP(专用) | RRC Reconfiguration | BWP-Downlink/Dedicated |
较宽(如 40~100 MHz) | RRC 连接态业务收发 |
| Default BWP(默认) | RRC 配置 | defaultDownlinkBWP-Id |
通常与 Initial 相同或介于两者 | 定时器超时后的回退落点 |
| Active BWP(激活) | 运行时态 | 无独立 IE(由状态决定) | 取决于当前激活的 bwp-Id | 唯一正在收发的 BWP |
注意:若 RRC 未配置
defaultDownlinkBWP-Id,则默认 BWP = 初始 BWP(TS 38.213 §12)。这是一个高频踩坑点。
BWP 生命周期:UE 开机后驻留 Initial BWP(来自 SIB1)→ 建立 RRC 连接后,gNB 通过 Reconfiguration 下发 1~3 个 Dedicated BWP 并指定首个激活 BWP → 此后业务流量驱动 UE 在多个 BWP 间动态切换 → 长时间无调度时由 bwp-InactivityTimer 回退到 Default BWP。
stateDiagram-v2
[*] --> InitialBWP: 开机,从SIB1获取
InitialBWP --> DedicatedBWP_Active: RRC Reconfig<br/>(firstActiveDownlinkBWP-Id)
state DedicatedBWP_Active {
[*] --> WideBWP
WideBWP --> NarrowBWP: DCI BWP Indicator
NarrowBWP --> WideBWP: DCI BWP Indicator
}
DedicatedBWP_Active --> DefaultBWP: bwp-InactivityTimer 超时
DefaultBWP --> DedicatedBWP_Active: DCI 调度到达
DedicatedBWP_Active --> InitialBWP: RRC Release / 去连接
InitialBWP --> [*]
TS 38.213 第 12 章 "Bandwidth part operation" 是切换机制的权威来源。规范明确:UE 通过四条路径之一完成 BWP 切换。下图给出决策全景:
flowchart TD
A[UE 当前处于 Active BWP] --> B{触发来源?}
B -->|PDCCH DCI 1_1/0_1| C[路径1: DCI 指示]
B -->|无调度时间过长| D[路径2: bwp-InactivityTimer]
B -->|SCell 增删/切换| E[路径3: RRC reconfig-with-sync]
B -->|SCell 激活| F[路径4: MAC CE 携带 bwp-Id]
C --> G{BWP Indicator 是否指向新 BWP?}
G -->|是| H[在 BWP switching delay 后切换]
G -->|否| I[保持,并重启定时器]
D --> J[超时 → 回退 Default BWP]
E --> K[按 firstActiveDownlinkBWP-Id 激活]
F --> L[激活 MAC CE 指示的 SCell BWP]
H --> M[新 Active BWP]
J --> M
K --> M
L --> M
这是承载动态业务的核心路径。在 DCI Format 1_1(DL 调度)和 DCI Format 0_1(UL 调度)中包含一个 Bandwidth part indicator 字段(TS 38.212、TS 38.213 §12)。该字段长度由配置的 BWP 数量决定:
关键行为(TS 38.213 §12):
- 若 DCI 1_1 的 BWP Indicator 指向的 DL BWP ≠ 当前 Active DL BWP,UE 将其设为新 Active DL BWP;
- 若 DCI 0_1 的 BWP Indicator 指向的 UL BWP ≠ 当前 Active UL BWP,UE 设为新 Active UL BWP;
- 一旦发生切换,UE 在 BWP switching delay(见第五节)期间不期望收发 PDSCH/PUSCH;
- 收到任意调度 DCI 都会重启 bwp-InactivityTimer(无论是否触发切换)。
设计意图:让 gNB 在每一个 TTI 都能基于瞬时 buffer/业务类型把 UE "甩"到最合适的带宽——大包走宽 BWP(高吞吐),小包/keepalive 走窄 BWP(省电),实现亚毫秒级带宽自适应。
这是 BWP 实现终端省电的"安全网"。机制(TS 38.213 §12、TS 38.321 §5.15.2):
bwp-InactivityTimer,取值为 ms2, ms4, ms10, ms40, ms100, ms640, ms2560... 等离散值;定时器的启停规则是抓包排错的重点: - 重启触发:检测到调度 DCI、收到激活 BWP 的 MAC CE、RRC 配置; - 停止触发:BWP 切换进行中、RRC 重新配置过程。
设计意图:业务突发结束后,gNB 可能"忘了"把 UE 拉回窄带,定时器作为UE 侧自主省电兜底,确保 UE 不会长期卡在宽 BWP 白白耗电。
通过 RRCReconfiguration(TS 38.331)下发或修改 BWP 配置,典型场景:
- 初始 RRC 连接建立后下发 Dedicated BWP;
- 切换(HO)/ PCell 变更(reconfiguration with sync)时,目标小区的 firstActiveDownlinkBWP-Id 直接指定切换后激活的 BWP;
- SCell 增删;
- 数值结构变更(如新增 60kHz SCS 的 BWP)。
RRC 路径是半静态的,切换发生在 RRC 过程边界,时延较大(几十 ms 级),不适合承载动态业务。
这是最容易被误解的一条路径。TS 38.321 §5.15 中,SCell Activation/Deactivation MAC CE(LCID 标识)携带要激活的 SCell 信息,并在 R16+ 中可附带该 SCell 上应激活的 BWP index。流程: - gNB 发送 SCell Activation MAC CE → UE 激活该 SCell 并按 CE 指示激活对应 BWP → 上报对应的 HARQ ACK。
关键区分:SpCell(主小区)的 BWP 切换不走 MAC CE,而是 DCI/定时器/RRC。MAC CE 路径本质是 SCell 激活流程的副产物,不要把它和 DCI 路径混淆。
| 维度 | DCI 指示 | bwp-InactivityTimer | RRC 重配置 | MAC CE |
|---|---|---|---|---|
| 触发主体 | gNB(L1/L2 调度器) | UE 自主 | gNB(RRC 层) | gNB(MAC 层) |
| 规范出处 | TS 38.213 §12 / TS 38.212 | TS 38.213 §12 / TS 38.321 §5.15 | TS 38.331 | TS 38.321 §5.15/§5.18 |
| 典型时延 | 亚 ms~数 ms | 取决于定时器(ms~秒) | 几十 ms | 几 ms |
| 控制开销 | DCI 内字段(0~2 bit) | 无信令 | RRC 消息(大) | MAC CE(小) |
| 主要场景 | 动态业务带宽适配 | 无业务回退省电 | 配置变更/切换 | CA 下 SCell 激活 |
| 作用对象 | SpCell DL/UL BWP | SpCell Active BWP | 所有 BWP 配置 | 主要 SCell BWP |
切换并非瞬时。TS 38.213 §12 定义了 BWP switching delay:UE 在切换触发后到新 BWP 真正可用之间,存在一个冻结窗口,期间 UE 不期望在旧/新 BWP 上收发 PDSCH/PUSCH(尤其当两个 BWP 的 SCS 或频域相距较远时)。
时延量级与 SCS 配置 μ 相关(μ=0→15kHz,μ=1→30kHz……):SCS 越大,时隙越短,对应绝对时间越短,15kHz 对应约 1ms 量级的切换间隙;相同 SCS、相邻频域的两个 BWP 切换可做到接近零间隙(部分能力强的 UE 支持)。
工程含义:gNB 调度器在发起 BWP 切换的 DCI 之后,必须预留切换延迟窗口,不能在该窗口内立即下发 PDSCH/PUSCH 调度,否则 UE 会漏收。这是吞吐抖动与 HARQ 失败的隐蔽诱因。
BWP 的 RRC 配置层级是理解抓包的基础:
flowchart TD
SC[ServingCellConfig] --> BID[defaultDownlinkBWP-Id]
SC --> BIT[bwp-InactivityTimer]
SC --> FAB[firstActiveDownlinkBWP-Id]
SC --> DLBWP[BWP-Downlink 列表 1..4]
DLBWP --> BWPD[BWP-Downlink]
BWPD --> BWPID[bwp-Id 0..3]
BWPD --> COM[BWP-DownlinkCommon]
BWPD --> DED[BWP-DownlinkDedicated]
COM --> GBWP[genericBWP: BWP]
GBWP --> LB[locationAndBandwidth]
GBWP --> SCS[subcarrierSpacing]
GBWP --> CP[cyclicPrefix]
DED --> PDSCH[PDSCH-Config]
DED --> CSI[CSI 频域配置]
核心 IE 说明表:
| IE | 所在结构 | 含义 | 取值/编码 |
|---|---|---|---|
locationAndBandwidth |
BWP(genericBWP) |
联合编码 BWP 频域起点与带宽 | INTEGER 0..37949,RIV 编码:RIV = N_BWP×(L_RB−1)+RB_start,基准 N_BWP=275(maxNrofPhysicalResourceBlocks) |
subcarrierSpacing |
BWP |
该 BWP 的 SCS | 15/30/60/120 kHz |
cyclicPrefix |
BWP |
普通 CP 或扩展 CP | normal / extended |
bwp-Id |
BWP-Downlink/Uplink |
BWP 编号 | 0..3(0 常留给 Initial) |
defaultDownlinkBWP-Id |
ServingCellConfigCommon |
定时器超时回退点 | 缺省则 = Initial BWP |
bwp-InactivityTimer |
ServingCellConfig |
非激活回退定时器 | ms2~ms2560 等 |
firstActiveDownlinkBWP-Id |
ServingCellConfig |
首次激活/RRC 后激活的 BWP | 0..3 |
locationAndBandwidth 的 RIV 解码(高频考点):gNB 下发一个 16 位整数,UE 按公式还原出 RB_start 与连续 PRB 数 L_RB,二者之和 ≤ 275。CRB(公共资源块)与 PRB 的映射也由此决定——BWP 的 PRB#0 对应 CRB 上由 locationAndBandwidth 指定的起点,因此跨 BWP 的资源编号必须经过 CRB 转换。
下图把四条路径串成一个真实业务场景(连接态 UE:大流量→空闲→再次突发):
sequenceDiagram
participant UE
participant gNB
Note over UE,gNB: 阶段0: 初始接入(Initial BWP来自SIB1)
UE->>gNB: 在 Initial BWP 上完成 RACH(RRCSetup/SetupComplete)
Note over UE,gNB: 阶段1: RRC 配置 Dedicated BWP(路径3)
gNB->>UE: RRCReconfiguration: BWP#1(窄,20MHz) + BWP#2(宽,100MHz),<br/>firstActiveDownlinkBWP-Id=1,<br/>defaultDownlinkBWP-Id=0,<br/>bwp-InactivityTimer=ms100
UE->>gNB: RRCReconfigurationComplete
Note over UE: 激活 BWP#1, 启动 bwp-InactivityTimer
Note over UE,gNB: 阶段2: 大流量到达,DCI 切到宽 BWP(路径1)
gNB->>UE: DCI 1_1 (BWP Indicator=10 → BWP#2) 调度大包 PDSCH
Note over UE: 重启 timer; 进入 switching delay; 切到 BWP#2
UE->>gNB: 在 BWP#2 上 PUCCH ACK + 大流量 PUSCH
Note over UE,gNB: 阶段3: 流量结束,定时器超时回退(路径2)
Note over UE: 100ms 无调度 DCI → timer 超时
UE->>UE: 自主切换回 Default BWP#0(=Initial,省电)
Note over UE,gNB: 阶段4: CA 场景 SCell 激活(路径4)
gNB->>UE: SCell Activation MAC CE (含 SCell bwp-Id)
UE->>gNB: HARQ ACK; 激活 SCell 对应 BWP
BWP-Downlink、firstActiveDownlinkBWP-Id、locationAndBandwidth、bwp-InactivityTimer。locationAndBandwidth 解码出的 (RB_start, L_RB) 即带宽几何。Bandwidth part indicator 字段变化点——其值跳变即切换时刻。bwp-InactivityTimer start/stop 事件、SCell Activation MAC CE。BWP switch BWP#X→BWP#Y。| 故障现象 | 根因 | 排查思路 |
|---|---|---|
| 吞吐周期性抖动、HARQ NACK 集中爆发 | bwp-InactivityTimer 过短,频繁回退/重切,切换延迟窗口内被调度 |
检查定时器值与切换频率,调大或优化调度器避让 switching delay |
| UE 回退后收不到 paging/SIB,掉线 | Default BWP 未含 SSB/CORESET,或与 Initial 频域/SCS 不一致 | 核对 defaultDownlinkBWP-Id 指向的 BWP 是否含公共搜索空间 |
| UE 在错误频段收发、对不上 | locationAndBandwidth 解码错(RIV 公式实现 bug) |
用 275 基准 RIV 重新解码,对照 CRB↔PRB 映射 |
| 切换后首包丢失 | gNB 未预留 BWP switching delay 窗口就调度 PDSCH | 在切换 DCI 后预留时延,避免立即调度 |
| 厂商互通异常:BWP 配置不被对端接受 | 不同厂商对 bwp-Id=0 是否复用为业务 BWP、Default 与 Initial 关系策略不同 |
对齐 BWP 编号约定与 Default BWP 必配策略 |
| ## 九、常见问题 |
Q1:BWP 切换和 LTE 的窄/宽频带(如 eMTC CE Band)是一回事吗? A:不是。LTE 的窄带是物理固定的子带切片,UE 跳频式访问;BWP 是 UE 专属、可配置 4 个、带状态机和定时器的自适应子系统,且支持每 BWP 独立 SCS/CP,机制复杂度和灵活性远高于 LTE 窄带。
Q2:DCI 切换 BWP 后,原 BWP 上已配置的 SPS/CSI 上报会怎样? A:SPS(半持续调度)和 CSI 上报资源绑定在具体 BWP 上。切换 Active BWP 后,原 BWP 的 SPS 配置和 CSI-RS/上报在该 BWP 非激活期间不生效;新 Active BWP 需有自己的 SPS/CSI 配置才能继续,否则相关功能暂停直到切回。
Q3:为什么不用 RRC 一直配一个最宽的 BWP 简化设计? A:那样就丧失了 BWP 的全部价值——UE 必须全带宽监听 PDCCH,射频/基带功耗无法随业务降档,也无法支持窄带能力 UE 和混合 numerology。BWP 的本质就是"按需带宽",省电和灵活性都来自"可切换"。
Q4:CA(载波聚合)下 BWP 切换有何不同? A:每个 Serving Cell(SpCell + 各 SCell)独立配置和切换 BWP。SpCell 由 DCI/timer/RRC 切换;SCell 由 SCell Activation MAC CE(可带 bwp-Id)或去激活来触发 BWP 变更。多载波协同需调度器避免多个 BWP 切换窗口重叠导致 UE 处理溢出。
Q5:Initial BWP 一定等于 bwp-Id=0 吗? A:约定上 Initial BWP 的 bwp-Id 视为 0,但它来自 SIB1 的公共配置;Dedicated BWP 通过 RRC 下发独立 bwp-Id。现网中 bwp-Id=0 的 Dedicated BWP 有时被显式配置为与 Initial 几何一致以减少切换,但二者是不同信令来源的配置对象。
本文由「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 等场景全覆盖。
