首页 › ran › 5G BWP切换机制拆解

5G NR BWP(带宽部分)动态切换机制全链拆解

聚焦规范:TS 38.331(RRC 配置 IE)、TS 38.213 §12(BWP 操作)、TS 38.212 §7.3.1(BWP Indicator 字段)、TS 38.133 §8.1.2(切换时延)、TS 38.321(MAC 计时器)

一、为什么要有 BWP:一个"窄车道/宽车道"的设计哲学

在 4G LTE 中,UE 一旦接入,就在整个载波带宽(如 20 MHz)上全程监听 PDCCH、做信道估计、维护 HARQ 缓冲。这套机制在 5G NR 里行不通了——NR 单载波带宽可达 100 MHz(FR1)甚至 400 MHz(FR2),如果让一个廉价的 RedCap 终端、或一个只在收微信的待机 UE 始终全带宽收发,射频与基带的空转功耗将难以接受。

3GPP 的解法是 BWP(Bandwidth Part,带宽部分):把一个宽载波在频域上切成最多 4 个连续 PRB(物理资源块)组成的"子带宽",但同一时刻每方向只有一个 BWP 处于激活态(Active BWP)。gNB 可以根据业务瞬时速率,让 UE 在"窄 BWP(省电、低开销)"与"宽 BWP(高吞吐)"之间快速切换。

BWP 的设计意图归纳为四点:

  1. UE 功耗节省——低负载时缩到窄 BWP,减少 PDCCH 盲检与 RF 带宽;
  2. 多 numerology 共存——同一载波不同 BWP 可用不同子载波间隔(SCS),适配 eMBB(30 kHz)与 URLLC(60 kHz);
  3. 带宽与业务匹配——大文件下载切到宽 BWP,休眠切回窄 BWP;
  4. 与 LTE/DSS 共存——初始 BWP 可落在与 LTE 频谱重叠的低端子带,支持动态频谱共享。

理解 BWP 切换,本质上是理解"网络如何让 UE 在毫秒级把激活带宽从 A 换到 B"的三条信令路径。本文逐一拆解。


二、BWP 的 RRC 配置:先把"车道"建好

切换的前提是网络已经通过 RRC 把若干 BWP 配置给 UE。承载配置的核心 IE 是 BWP-Downlink(TS 38.331 §6.3.2),它被装进 ServingCellConfig 的 downlinkBWP-ToAddModList 列表里。其层级结构如下:

flowchart TD
    A["ServingCellConfig"] --> B["downlinkBWP-ToAddModList<br/>(最多4个DL BWP)"]
    A --> C["firstActiveDownlinkBWP-Id<br/>(配置后首个激活)"]
    A --> D["defaultDownlinkBWP-Id<br/>(计时器超时回退目标)"]
    A --> E["bwp-InactivityTimer<br/>(非激活计时器)"]
    B --> F["BWP-Downlink IE"]
    F --> F1["bwp-Id(0~3)<br/>0保留给初始BWP"]
    F --> F2["bwp-Common<br/>BWP公共参数"]
    F --> F3["bwp-Dedicated<br/>PDSCH/PDCCH专用配置"]
    F2 --> G["locationAndBandwidth<br/>RIV编码:频域位置+带宽"]
    F2 --> H["subcarrierSpacing<br/>15/30/60/120 kHz"]
    F2 --> I["cyclicPrefix<br/>normal/extended"]

这里有几个关键设计选择需要点明:

IE 参数说明表

IE 字段 规范出处 取值/含义 工程意义
bwp-Id 38.331 §6.3.2 INTEGER(0..3),0=初始 切换时的寻址索引
locationAndBandwidth 38.331 §6.3.2 INTEGER(0..37949),RIV 编码 唯一确定 BWP 的频域位置与宽度
subcarrierSpacing 38.211 {15,30,60,120} kHz 决定该 BWP 的 numerology、时隙长度
bwp-InactivityTimer 38.331 §6.3.2 ENUMERATED ms2…ms10240 无业务超时后回退默认 BWP
firstActiveDownlinkBWP-Id 38.331 BWP-Id RRC 配置/切换后首个激活 BWP
defaultDownlinkBWP-Id 38.331 BWP-Id(缺省=0) 计时器回退目标

三、三条切换路径:DCI 动态切换 / 计时器回退 / RRC 切换

TS 38.213 §12 明确定义了三种 BWP 激活/去激活触发方式,这是整个机制的核心。

路径1:DCI 动态切换(最常用、最快)

gNB 在当前激活 BWP 的 PDCCH 搜索空间上下发 DCI format 1_1(下行调度)或 0_1(上行调度),其中携带 BWP Indicator 字段(TS 38.212 §7.3.1)。该字段比特数由网络配置的 DL BWP 数 N_BWP,RRC 决定:

字段值指示目标 BWP 的位置索引。当 UE 解出的 BWP Indicator 指向一个与当前激活 BWP 不同的 BWP,且伴随的调度生效时,UE 启动 BWP 切换,进入切换时延窗口,之后在新 BWP 上继续收发。

这是"无 RRC 信令、slot 级快速切换",是 5G 动态适配业务的利器。

路径2:bwp-InactivityTimer 计时器回退(省电主力)

MAC 实体(TS 38.321)维护一个 bwp-InactivityTimer。规则是:

这就是"下载完一个大文件、UE 没业务了,几百毫秒后自动缩回窄 BWP 省电"的实现原理。

路径3:RRC 切换(配置变更或切换场景)

通过 RRC Reconfiguration(携带 reconfigurationWithSync 的切换命令,或修改 firstActiveDownlinkBWP-Id)直接改变激活 BWP。这条路径慢(RRC 级),用于:小区间切换、首次 BWP 配置、BWP 参数重配。

三种触发方式对比

对比维度 DCI 动态切换 bwp-InactivityTimer 回退 RRC 切换
规范章节 38.213 §12 / 38.212 §7.3.1 38.321 MAC / 38.213 §12 38.331 §5.3
信令层级 L1(PDCCH/DCI) L2(MAC 计时器) L3(RRC)
延迟 slot 级(亚毫秒~毫秒) 计时器周期 + 切换时延 RRC 往返(数十毫秒)
主要用途 业务带宽瞬时适配 空闲省电回退 切换/重配置
典型方向 窄→宽(有突发) 宽→窄(无业务) 任意

四、locationAndBandwidth:一个整数如何编码"位置+带宽"

BWP 的频域位置不是用两个独立字段(RB_start、Length)传的,而是用 RIV(Resource Indicator Value) 压成一个整数 locationAndBandwidth(TS 38.214 §5.1.2.2 资源分配 Type 1 同款编码思想)。设载波可用带宽为 N_BWP 个 PRB,偏移 RB_start,长度 L_RB:

UE 收到 locationAndBandwidth 后反解出 RB_start 与 L_RB,结合 SCS 即确定 BWP 的绝对频域位置。这种编码避免了非法(越界/非连续)组合,且对齐 PUSCH/PDSCH 资源分配的语义,是规范内典型的"复用编码、降低信令位宽"设计。


五、完整信令时序:从窄 BWP 到宽 BWP 再回退

下图呈现一次完整的 BWP 切换生命周期:UE 初始在窄 BWP#1,gNB 下发 DCI 切到宽 BWP#2 传大文件,业务结束后计时器超时回退默认 BWP。

sequenceDiagram
    autonumber
    participant UE
    participant gNB

    Note over UE,gNB: 初始状态:UE 激活 BWP#1(窄,20MHz, SCS=15k)
    UE->>gNB: 在 BWP#1 监听 PDCCH(搜索空间 SS#1)
    gNB->>UE: 检测到大业务到达(如视频/下载)

    rect rgb(220,240,255)
    Note over UE,gNB: 路径1:DCI 动态切换 窄→宽
    gNB->>UE: DCI 1_1(BWP Indicator=2,PDSCH调度)
    Note over UE: 解出 BWP Indicator ≠ 当前激活BWP<br/>触发切换,启动切换时延窗口
    Note over UE: 切换时延内不要求收发(TS 38.133)
    UE->>UE: 应用 BWP#2 配置(100MHz, SCS=30k, 新PDCCH/PDSCH)
    UE->>gNB: 在 BWP#2 监听 PDCCH(搜索空间 SS#2)
    gNB->>UE: PDSCH(大块数据,高 MCS)
    UE-->>gNB: HARQ-ACK / 重启 bwp-InactivityTimer
    Note over UE: 每次有效调度都重启计时器
    end

    Note over UE,gNB: 业务结束,无新调度
    Note over UE: bwp-InactivityTimer 持续不被重启…
    Note over UE: 计时器超时(如 100ms)

    rect rgb(255,240,230)
    Note over UE,gNB: 路径2:计时器回退 宽→窄(省电)
    UE->>UE: MAC 触发切换至 defaultDownlinkBWP-Id
    Note over UE: 未配 default 则回退初始 BWP#1
    UE->>gNB: 回到 BWP#1 省电监听
    end

BWP 状态转换图

从 UE 视角,每个 Serving Cell 的 DL BWP 活动状态可用下图刻画:

stateDiagram-v2
    [*] --> 初始BWP_0: 接入/SIB1
    初始BWP_0 --> 专用BWP_1: DCI/RRC 激活
    专用BWP_1 --> 专用BWP_2: DCI BWP Indicator
    专用BWP_2 --> 专用BWP_1: DCI BWP Indicator
    专用BWP_1 --> 初始BWP_0: 计时器超时(default=0)
    专用BWP_2 --> 初始BWP_0: 计时器超时(default=0)
    初始BWP_0 --> 专用BWP_2: DCI/RRC 激活
    note right of 初始BWP_0
      bwp-Id=0,SIB1广播
      省电/接入默认驻留
    end note
    note right of 专用BWP_2
      宽带高吞吐
      计时器持续重启
    end note

六、BWP 切换时延与 HARQ 时序:最容易踩坑的地方

切换不是瞬时的。TS 38.133 §8.1.2(Table 8.1.2.2-1)定义了 BWP 切换时延(BWP switching delay)——在这段时间内,UE 不被要求接收 PDCCH/PDSCH,也不要求发 PUSCH/PUCCH。该时延以"slot 数"计,随 SCS 变化(SCS 越大、slot 越短,绝对时延越小),并随 BWP 带宽跨度和是否跨 numerology 而不同。

项目 典型表现 工程影响
切换时延来源 TS 38.133 §8.1.2 切换瞬间存在"静默 gap"
同 numerology 切换 时延较小 适合 DCI 频繁动态切换
跨 numerology 切换(SCS 变) 时延较大 gNB 须预留更大调度间隔
HARQ 进程 BWP 切换后部分进程状态保留/重置需 gNB 协调 计时器/调度须避免 HARQ 错乱
CSI 上报 各 BWP 独立 CSI-RS 配置 切到新 BWP 需重测才能精确 MCS

正因为有静默 gap,DCI 触发的 BWP 切换里,那条触发切换的 DCI 本身携带的调度(PDSCH/PUSCH)通常指向切换之后——即"切完再发",而非"在旧 BWP 上发"。


七、抓包识别与排错实战

如何在抓包里识别 BWP 切换

BWP 配置主要在 RRC Reconfiguration / SIB1 消息(NGAP/NRPPA 之下的 RRC)。在 Wireshark(含 MAC/RLC/PDCCH 解析)或专用 L1 抓包工具中:

  1. 配置阶段:在 rrcSetupComplete 后的 DL RRC Message Transfer / RRC Reconfiguration 里展开 BWP-Downlink → 看 downlinkBWP-ToAddModList,确认配了几个 BWP、各自 locationAndBandwidth(反解 RIV 得频域位置)与 SCS。
  2. DCI 切换:在 MAC/PDCCH 视图里过滤 DCI format 1_1/0_1,查看 Bandwidth Part Indicator 字段是否非零、是否与当前激活 BWP 不同——这就是一次动态切换。
  3. 计时器回退:抓不到直接信令(这是 UE MAC 内部行为),表现为"一段时间无 PDSCH 调度后,UE 突然只在窄 BWP 的 PRB 上活动、PDCCH 搜索空间切换"。

常见故障点与排错思路

八、常见问题

Q1:DCI 触发的 BWP 切换,那条 DCI 里的 PDSCH 调度在哪生效? A:在切换完成后的新 BWP上生效。规范设计为"先切后发"——切换时延 gap 内不收发,gap 结束 UE 已在新 BWP,再接收该 PDSCH。gNB 调度器须把该 PDSCH 的时频资源安排在切换时延之后。

Q2:bwp-InactivityTimer 超时后一定回初始 BWP 吗? A:不一定。超时回退目标是 defaultDownlinkBWP-Id;只有当该字段未配置时,才回退到初始 BWP(bwp-Id=0)。这是工程上省电效果的关键旋钮。

Q3:一个 Serving Cell 能同时激活多个 DL BWP 吗? A:不能。规范规定每方向(DL/UL)同一时刻只有一个激活 BWP(Active BWP)。多 BWP 是"备选车道",通过切换在它们之间单选。载波聚合(CA)下每个 Serving Cell 各自有一个激活 BWP。

Q4:BWP 切换和 4G 的载波带宽有什么本质区别? A:4G LTE UE 接入后全带宽收发、不支持运行中动态收缩带宽;NR 的 BWP 允许单载波内、运行中、毫秒级在多个带宽/numerology 间切换,实现了"按需带宽",是 5G 功耗与灵活性提升的核心空口机制之一。

Q5:BWP 与 SUL(补充上行)、CA(载波聚合)是什么关系? A:BWP 是单载波内的频域切片;SUL 是另一个上行载波、有自己独立的 BWP 配置;CA 的每个分量载波各自维护自己的 BWP 列表与激活 BWP。三者正交,可叠加使用。


参考来源

  1. 3GPP TS 38.213 — NR; Physical layer procedures for control — §12 Bandwidth Part operation(BWP 操作与激活/去激活触发)
  2. 3GPP TS 38.331 — NR; Radio Resource Control (RRC) — §6.3.2 BWP-Downlink / BWP IE 定义、bwp-InactivityTimer
  3. 3GPP TS 38.212 — NR; Multiplexing and channel coding — §7.3.1 DCI 中 BWP Indicator 字段比特宽度
  4. 3GPP TS 38.133 — NR; Requirements for support of radio resource management — §8.1.2 BWP switching delay(切换时延)
  5. ShareTechnote — 5G BWP (Carrier Bandwidth Part) in Detail — BWP 概念与配置实战图解
  6. A Primer on Bandwidth Parts in 5G New Radio (arXiv:2004.00761) — 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学通信知识星球海报-扫码加入