首页 › ran › 5G BWP带宽部分切换机制全链拆解

5G NR BWP 带宽部分切换机制全链拆解:从 RRC 配置到 DCI/定时器/MAC CE 四重触发

一、为什么 5G NR 必须引入 BWP:设计意图的三个支点

在 LTE 时代,UE 始终在整个小区带宽(Cell Bandwidth,最高 20 MHz)上收发与监听,这种"全带宽常开"模式在 5G NR 面临三重挑战:

  1. 载波带宽激增:FR1 单载波可达 100 MHz(FR2 达 400 MHz),若 UE 全带宽常开监听 PDCCH,基带与射频功耗将不可接受。
  2. UE 能力异构:物联网/可穿戴终端的射频前端可能只支持 5 MHz~20 MHz,无法处理整载波。
  3. 混合数值结构(Mixed Numerology):同一载波上 eMBB 用 30kHz SCS、URLLC 用 60kHz SCS,需要在频域上分区承载。

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 的四种类型与生命周期

在进入切换机制前,必须厘清四个常被混淆的概念:

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 核心)

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

路径 1:DCI 动态指示(最快、最常用)

这是承载动态业务的核心路径。在 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(省电),实现亚毫秒级带宽自适应。

路径 2:bwp-InactivityTimer 非激活回退(省电主引擎)

这是 BWP 实现终端省电的"安全网"。机制(TS 38.213 §12、TS 38.321 §5.15.2):

定时器的启停规则是抓包排错的重点: - 重启触发:检测到调度 DCI、收到激活 BWP 的 MAC CE、RRC 配置; - 停止触发:BWP 切换进行中、RRC 重新配置过程。

设计意图:业务突发结束后,gNB 可能"忘了"把 UE 拉回窄带,定时器作为UE 侧自主省电兜底,确保 UE 不会长期卡在宽 BWP 白白耗电。

路径 3:RRC 重配置(含 reconfiguration with sync / 切换)

通过 RRCReconfiguration(TS 38.331)下发或修改 BWP 配置,典型场景: - 初始 RRC 连接建立后下发 Dedicated BWP; - 切换(HO)/ PCell 变更(reconfiguration with sync)时,目标小区的 firstActiveDownlinkBWP-Id 直接指定切换后激活的 BWP; - SCell 增删; - 数值结构变更(如新增 60kHz SCS 的 BWP)。

RRC 路径是半静态的,切换发生在 RRC 过程边界,时延较大(几十 ms 级),不适合承载动态业务。

路径 4:MAC CE 激活(主要服务于 SCell)

这是最容易被误解的一条路径。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

五、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 失败的隐蔽诱因。

六、关键 IE 结构与参数详解(TS 38.331)

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

八、抓包识别与排错实战

如何在 trace 中识别 BWP 切换

  1. RRC 层(Wireshark/Qualcomm QXDM/MTK ELT):搜 BWP-Downlink、firstActiveDownlinkBWP-Id、locationAndBandwidth、bwp-InactivityTimer。locationAndBandwidth 解码出的 (RB_start, L_RB) 即带宽几何。
  2. DCI 层:在 NR MAC/PHY log 中过滤 DCI Format 1_1/0_1,查看 Bandwidth part indicator 字段变化点——其值跳变即切换时刻。
  3. MAC 层:观察 bwp-InactivityTimer start/stop 事件、SCell Activation MAC CE。
  4. Amararisoft/srsRAN:日志会显式打印 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 几何一致以减少切换,但二者是不同信令来源的配置对象。

参考来源

  1. 3GPP TS 38.213 V18.7.0 — NR; Physical layer procedures for control, §12 Bandwidth part operation — BWP 切换规则、定时器与切换时延权威定义
  2. 3GPP TS 38.213 — iTecSpec §12 摘要 — Section 12 MCG/SCG 应用范围与切换流程可读化解读
  3. 3GPP Specification #38.213 — 3GPP Portal — 规范主页与版本下载
  4. ShareTechnote — 5G/NR Carrier Bandwidth Part — BWP 概念、SSB 与 BWP 关系、配置示例图解
  5. CafeTele — Bandwidth Part (BWP) in 5G NR: Configuration, Switching, Battery Saving — Initial/Default/Active BWP 区分与省电策略工程化说明

本文由「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 等场景全覆盖。

51学通信知识星球海报-扫码加入