首页 › ran › BWP切换机制与省电定时器全链拆解

BWP切换机制与省电定时器全链拆解

在5G NR的接入网设计中,带宽部分(Bandwidth Part, BWP) 是一项贯穿物理层(TS 38.211/38.213/38.214)、MAC层(TS 38.321)和RRC层(TS 38.331)的核心机制。它解决的并不是单一问题,而是同时承担三个目标:让UE不必始终监听整个载波带宽(省电)、让网络按需适配UE的能力与业务速率(灵活)、以及前向兼容不同带宽能力的终端(共存)。本文聚焦 TS 38.213 Section 12 所定义的 BWP激活与切换的四种触发方式,并深入拆解其中最容易被忽视、却在真实网络中主导省电效果的 bwp-InactivityTimer(BWP非激活定时器) 的运行逻辑,结合 TS 38.331 的 RRC 配置 IE 与 TS 38.133 的切换时延要求,给出从抓包识别到故障定位的完整链路。

一、BWP机制的背景与设计意图

LTE时代,UE一旦驻留一个载波,就必须在整个载波带宽(最高20 MHz)上持续监听PDCCH,即便没有任何数据调度,射频前端和中频处理也要按全带宽工作。这在5G面对单载波高达 100 MHz(sub-6GHz)甚至 400 MHz(mmWave)的带宽时是不可接受的——全带宽持续监听会让UE功耗呈数量级上升。

3GPP的解法是把载波带宽切分成最多4个(每个 Serving Cell 上行/下行各最多4个)带宽部分,每个BWP有自己的:

UE在任一时刻,每个 Serving Cell 上只有一个下行BWP和一个上行BWP处于激活态(active BWP)。所谓"BWP切换",就是把激活态从一个BWP迁移到另一个BWP。这一动作既涉及射频重新调谐(RF retuning),也涉及参数集(numerology)的变更,因此必须由规范严格定义触发条件和时序。

设计意图可以用一句话概括:用窄带BWP承载信令和小数据,用宽带BWP承载大流量,二者之间的切换由网络或定时器自动驱动,UE的功耗随实际业务需求而伸缩。

二、四种BWP切换触发方式(TS 38.213 clause 12)

TS 38.213 Section 12("Bandwidth part operation")明确定义了四种触发 active DL/UL BWP 改变的方式,这是整个机制的骨架。

2.1 触发方式总览时序图

sequenceDiagram
    participant NW as gNB (Network)
    participant UE as UE
    Note over UE: 当前 active BWP = BWP#1 (窄带)

    rect rgb(230,245,255)
    Note over UE,NW: 方式1 - DCI BWP Indicator
    NW->>UE: DCI Format 1_1 (含 BWP indicator=2)
    Note over UE: 解析BWP indicator, 与当前不同→触发切换
    UE->>UE: 等待 BWP switching delay
    Note over UE: active BWP = BWP#2 (宽带)
    end

    rect rgb(255,245,230)
    Note over UE,NW: 方式2 - bwp-InactivityTimer 超时
    Note over UE: 长时间无 PDCCH 调度本UE
    UE->>UE: timer 超时, 自主切回 default BWP
    Note over UE: active BWP = default BWP
    end

    rect rgb(240,255,240)
    Note over UE,NW: 方式3 - RRC (re)configuration
    NW->>UE: RRC Reconfiguration (firstActiveDownlinkBWP-Id)
    Note over UE: 应用RRC后立即激活指定BWP
    end

    rect rgb(255,240,245)
    Note over UE,NW: 方式4 - MAC CE 激活
    NW->>UE: MAC CE (Single/Multi Entry BWP)
    Note over UE: 按MAC CE指示激活
    end

下面对四种方式逐一拆解关键信息单元。

方式1:DCI中的Bandwidth Part Indicator

这是最常用、时延最低的方式。当网络调度下行数据且判断当前BWP带宽不足以满足需求时,会在承载调度的 DCI(Format 1_1 用于DL,Format 0_1 用于UL)中携带一个 BWP indicator 字段。

参数 取值与说明
字段位置 DCI Format 1_1(DL)/ Format 0_1(UL)
字段长度 取决于配置的BWP数量:若 ≤4 个则为 2 bits;RRC需同时配置≥2个BWP时才可能出现指示不同BWP的情况
指示规则 指示目标 bwp-Id(0~3);若与当前active BWP-id相同,则不发生切换,仅按其余字段调度;若不同,则UE执行BWP切换
与调度共存 切换后,该DCI中指示的PDSCH/PUSCH在新的BWP上接收/发送
切换时延 UE不期望在切换完成前收发,需满足 TS 38.133 的 BWP switching delay

关键细节:BWP indicator 的2 bits 并非简单等于 bwp-Id 数值。当配置的BWP数量为1或2时,字段被预留/压缩(如仅2个BWP时仍可能保留部分编码空间);规范在 TS 38.212(DCI编码)中定义了具体映射表。这一点是协议开发中极易踩坑的地方——不能直接拿指示值当 bwp-Id 用。

方式2:bwp-InactivityTimer(本文重点)

当UE工作在非默认BWP(通常是宽带BWP,承载大流量)上时,如果长时间没有调度,继续守在宽带上是纯粹浪费功耗。bwp-InactivityTimer 就是让UE"自己识趣地"退回窄带默认BWP的机制。

其精确运行逻辑(TS 38.213 clause 12 + TS 38.321):

  1. 配置:仅 SpCell(PCell) 可配置 bwp-InactivityTimer,位于 BWP-DownlinkDedicated 或 ServingCellConfig 中。SCell 不配置(SCell的BWP由MAC CE激活/去激活配合)。
  2. 启动/重启条件:UE每收到一个给本UE的、在SpCell上调度了PDSCH/PUSCH/PUCCH/SRS的PDCCH,就(重新)启动该timer。换言之,只要有真实调度活动,timer就被不断刷新。
  3. 超时动作:timer期满 → UE自主切换到 defaultDownlinkBWP-Id 指示的默认下行BWP。注意:上行BWP也需相应处理——当default下行BWP不包含专用上行配置时,UE回退到初始上行BWP。
  4. 默认BWP的确定:defaultDownlinkBWP-Id 由RRC显式配置;若网络未配置,则默认BWP = 初始下行BWP(initialDownlinkBWP),即SIB1中广播的那个。

bwp-InactivityTimer 的合法取值是一个离散集合,从 ms2 到 ms30000,典型的工程配置为 ms20~ms100。取值过大则省电效果丧失,取值过小则业务间隙会导致频繁BWP切换、增加切换时延开销。

flowchart TD
    A[UE在非默认BWP上] --> B{是否收到<br/>调度本UE的PDCCH?}
    B -- 是 --> C[启动/重启 bwp-InactivityTimer]
    C --> B
    B -- 否 --> D{timer是否超时?}
    D -- 否 --> B
    D -- 是 --> E[UE自主切换到 defaultDownlinkBWP-Id]
    E --> F[active BWP = 默认BWP, 通常为窄带]
    F --> G[等待下一次DCI<br/>指示宽带BWP]
    G --> H{网络调度大流量?}
    H -- 是 --> I[DCI BWP indicator<br/>切回宽带BWP]
    I --> A
    H -- 否 --> F

    style E fill:#ffe0e0
    style C fill:#e0ffe0

方式3:RRC(重新)配置

当gNB通过 RRC Reconfiguration 修改BWP配置(downlinkBWP-ToAddModList)或通过 firstActiveDownlinkBWP-Id 显式指定激活哪个BWP时,UE在应用RRC配置后立即激活指定BWP。这种方式时延最高(需完整RRC处理流程,通常几十毫秒),但可以一次性完成BWP集合的增删改,常用于切换(HO)后目标小区BWP的初始激活、或SCell添加时的BWP初始化。

firstActiveDownlinkBWP-Id 与 firstActiveUplinkBWP-Id 是 RRC Reconfiguration 中指示"切换/HO完成或加小区后第一个激活BWP"的关键字段。在 Xn/N2 切换流程中,目标gNB会通过 HO Command(RRC Reconfiguration)携带这两个字段,确保UE一进入目标小区就落在正确的BWP上。

方式4:MAC CE 激活

通过 BWP Activation/Deactivation MAC CE(分为 Single Entry 和 Multi Entry 两种,TS 38.321 clause 6.1.3)激活/去激活BWP。MAC CE方式介于DCI(快)和RRC(慢)之间,开销小、不需要完整RRC流程,常用于 SCell的BWP管理 以及当DCI比特数受限时作为补充。MAC CE本身通过PDSCH承载,时延为几个slot。

BWP的"形状"完全由 RRC 层的 BWP-Downlink / BWP-Uplink IE 定义(TS 38.331)。其中最核心、也最容易被误解的是 locationAndBandwidth。

3.1 locationAndBandwidth 与 RIV 编码

locationAndBandwidth 是一个 14 bits 字段,但它并不直接表示"起始RB"和"长度",而是采用与 LTE PRB 分配相同的 RIV(Resource Indication Value) 编码:

这种"一维编码二维信息"的设计是为了节省RRC信令开销,并在BWP带宽连续(BWP必须是连续的RB块)的前提下唯一确定位置与大小。协议开发中务必注意:locationAndBandwidth 的解码需要知道载波总带宽 $N_{BWP}^{size}$,这个值来自 SIB1 的 carrierBandwidth 而非BWP IE本身。 漏掉这一步会导致解码出错误的RB位置。

字段名 类型/长度 含义 备注
locationAndBandwidth 14 bits RIV编码的起始RB+长度 解码需载波总带宽
bwp-Id 0~3 BWP标识 0通常为初始BWP
subcarrierSpacing 枚举 该BWP的SCS(15/30/60/120/240kHz) 同一载波不同BWP可不同SCS
cyclicPrefix 枚举 normal或extended CP mmWave可能用extended
bwp-Common 结构体 该BWP公共配置(PDCCH/参考信号) 来自SIB1或专用信令
bwp-Dedicated 结构体 该BWP专用配置(含bwp-InactivityTimer等) per UE
graph LR
    subgraph 载波 Carrier["载波 (carrierBandwidth=N)"]
        direction TB
        BWP0["BWP#0 (initial)<br/>SCS=30kHz<br/>窄带, e.g. 20MHz"]
        BWP1["BWP#1 (default)<br/>SCS=30kHz<br/>中带, e.g. 40MHz"]
        BWP2["BWP#2 (宽带)<br/>SCS=30kHz<br/>100MHz, 大流量"]
        BWP3["BWP#3 (预留)"]
    end
    UE["UE active BWP<br/>任一时刻仅1个下行+1个上行"]

    BWP0 -.可切换.-> BWP1
    BWP1 -.可切换.-> BWP2
    BWP2 -.timer超时.-> BWP1
    BWP1 -.DCI指示.-> BWP2

    style BWP2 fill:#ffcccc
    style BWP1 fill:#fff5cc
    style BWP0 fill:#ccffcc

四、BWP切换时延与中断(TS 38.133)

BWP切换不是瞬时完成的。TS 38.133 clause 8.6 定义了 BWP switching delay 的要求:从触发切换的PDCCH/时刻起,到UE能在新BWP上正常收发为止,存在一段不可用的"中断时间"。

切换时延取决于两个BWP的SCS是否相同、频率位置是否重叠:

场景 典型切换时延(按slot计) 说明
相同SCS,频率重叠 约1个slot RF可不retune,仅参数切换,最快
相同SCS,频率不重叠 约1~2个slot 需RF retune
不同SCS 更长,需重新配置numerology 时延最高
RRC触发切换 数十毫秒 含完整RRC处理

这就解释了为什么bwp-InactivityTimer取值过短会导致严重的乒乓切换:timer一超时回退默认BWP,紧接着又有数据触发DCI切回宽带BWP,反复在中断期上浪费空口资源。工程上timer通常设为业务典型间隙的1.5~2倍。

五、实战连接:抓包识别与故障排错

5.1 如何在抓包中识别BWP切换

BWP切换发生在空口(UE与gNB之间),无法在核心网侧(NGAP/PFCP)看到。在 L1/L2 空口日志(如基站侧的PDCCH trace、终端侧的RF log)中识别:

  1. DCI触发:在PDCCH解码结果中查找 Format 1_1/0_1 的 BWP indicator 字段值,与当前active bwp-Id对比,不同即为切换触发点。
  2. Timer触发:UE自主动作,gNB侧看不到直接信令,只能从"UE一段时间无调度后突然PUCCH/PUSCH出现在默认BWP上"反推。终端日志通常有明确的"BWP switch due to inactivity timer expiry"事件。
  3. RRC触发:在 RRC Reconfiguration 消息中查 firstActiveDownlinkBWP-Id 字段,以及 BWP-Downlink 的 locationAndBandwidth。
  4. MAC CE触发:MAC层解析 LCID,匹配 BWP Activation MAC CE 的LCID值。

5.2 常见故障点

常见问题

Q: BWP和载波(Carrier)是什么关系?一个载波可以有几个BWP? A: 一个载波(carrier)是物理频谱实体,由 SIB1 的 carrierBandwidth 定义总带宽。BWP是该载波上的一个连续子带宽,加上自己的SCS/CP配置。每个 Serving Cell 的每个方向(DL/UL)最多可配置 4个BWP(bwp-Id 0~3),但任一时刻只有1个激活。载波聚合(CA)下每个 Serving Cell 各自独立配置BWP集合。

Q: bwp-InactivityTimer为什么只在PCell/SpCell配置,不在SCell配置? A: SCell的激活/去激活本身就由独立的 MAC CE(SCell Activation/Deactivation MAC CE)控制,SCell整体可以休眠,BWP层面不再需要timer管理。PCell是UE持续驻留、必须始终监听的小区,其BWP的宽带↔窄带切换才有省电意义,因此timer机制专门为SpCell设计。

Q: DCI格式 1_0 也支持BWP切换吗? A: 不支持。Format 1_0(fallback DCI)不包含 BWP indicator 字段,只能在当前active BWP内调度,不能触发BWP切换。只有 Format 1_1(DL)/ Format 0_1(UL)才携带 BWP indicator。这也是 fallback DCI 的设计——它必须能在任意BWP下被正确解码,因此不含会改变BWP的字段。

Q: RRC配置修改了BWP集合后,当前active BWP会怎样? A: 如果被删除的恰好是当前active BWP,RRC会通过 firstActiveDownlinkBWP-Id 明确指定新的激活BWP;若未指定,UE回退到默认/初始BWP。协议规定网络不应删除当前active BWP而不指示新的激活BWP,否则属异常配置。

Q: BWP切换和SCS切换是一回事吗? A: 不是,但可以同时发生。BWP切换是激活BWP的变更,而SCS是该BWP的属性。两个BWP可以有相同SCS(切换只改频率位置)或不同SCS(切换同时改numerology,时延更高)。网络通常为同一UE的多个BWP配置相同SCS以降低切换开销,仅在需要时(如mmWave不同业务)才混用。

参考来源

  1. 3GPP TS 38.213 - NR; Physical layer procedures for control — Section 12 "Bandwidth part operation",定义四种BWP切换触发方式与bwp-InactivityTimer运行规则
  2. 3GPP TS 38.331 - NR; Radio Resource Control (RRC) — BWP-Downlink/BWP-Uplink IE、locationAndBandwidth、bwp-InactivityTimer 取值定义
  3. 3GPP TS 38.133 - NR; Requirements for support of radio resource management — clause 8.6 BWP switching delay 射频与RRM要求
  4. ShareTechnote - 5G Carrier Bandwidth Part — BWP机制概念图解与RIV编码说明
  5. 3GPP TS 38.321 - NR; Medium Access Control (MAC) protocol specification — clause 6.1.3 BWP Activation/Deactivation MAC CE

本文由「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学通信知识星球海报-扫码加入