1 什么是BWP
BWP:整個載波帶寬中的一組連續(xù)的公共資源塊;總小區(qū)帶寬的一個子集。
特點:
每個BWP都有各自的SCS和CP。
-
一個UE在下行鏈路最多配置4個BWP,并且同一時間只能激活1個BWP。
- 激活的BWP是指:UE的工作帶寬在小區(qū)的工作帶寬內(nèi);
- 除激活BWP之外,UE配置的其他BWPs都是去激活的;
- 在去激活的BWP上,UE不進行數(shù)據(jù)的收發(fā);
- 對于TDD而言,BWP對(激活的上下行BWP)必須有相同的中心頻率。
UE不能在BWP外接收PDSCH/PDCCH/CSI-RS (除了RRM)。
一個UE在上行鏈路最多配置4個BWP,并且同一時間只能激活1個BWP。
如果UE配置了SUL,可以最多再配置4個BWP用于輔助上行鏈路,并且同一時間只能激活1個BWP。
UE不能在激活BWP之外發(fā)送PUSCH/PUCCH。
對于一個活動小區(qū),UE不能在激活BWP之外發(fā)送SRS。
網(wǎng)絡(luò)可以命令UE動態(tài)的切換BWP。
2 為什么使用BWP
LTE帶寬最多只有20MB,但是NR最高有200MB(FR1)和400MB(FR2),如果沒有限制就需要所有的UE都支持這么寬的帶寬,這無形中會增加UE的成本。
3 帶寬適應(yīng)
利用帶寬適應(yīng),UE發(fā)送和接收帶寬可以不用和小區(qū)帶寬一樣大,并且可以調(diào)整。帶寬可以通過命令進行改變,比如UE待機狀態(tài)時可以分配小的帶寬以降低功耗。BWP在頻域的位置可以調(diào)整,比如可以增加調(diào)度的靈活性。子載波間隔可以通過命令改變,比如,可以允許不同的服務(wù)。

上圖描述了3個不同的BWP場景:
- BWP1帶寬為40MHz,子載波間隔為15kHz;
- BWP2帶寬為10MHz,子載波間隔為15kHz;
- BWP3帶寬為20MHz,子載波間隔為60kHz;
4 BWP的位置
對于小區(qū)內(nèi)的一組上下行BWP會分別為UE提供如下參數(shù):
- subcarrierSpacing提供SCS;
- cyclicPrefix提供循環(huán)前綴,如果網(wǎng)絡(luò)沒有設(shè)置就使用默認值,正常循環(huán)前綴;
- BWP-Id用于區(qū)分每個上下行BWP;
- BWP-DownlinkCommon和BWP-DownlinkDedicated提供用于DL BWP的BWP-common和BWP-dedicated參數(shù);
- BWP-UplinkDedicated提供用于UL BWP的BWP-UplinkCommon;
- BWP的起始PRB位置以及連續(xù)的RB數(shù)量;
BWP相對于CRB0的位置:

其中:
-
:對于每個SCS的offsetToCarrier
TS38214-5.1.2.2.2
? --------------------------------------(1)
? ---------------------(2)
假設(shè)SCS=30kHz,,對于FR1:
| CBW | max RB | Equation | RIV Calculation | locationAndBandwidth |
|---|---|---|---|---|
| 20 | 51 | (1) | 275*(51-1)+0 | 13750 |
| 40 | 106 | (1) | 275*(106-1)+0 | 28875 |
| 50 | 133 | (1) | 275*(133-1)+0 | 36300 |
| 60 | 162 | (2) | 275*(275-162+1)+(275-1-0) | 31624 |
| 80 | 217 | (2) | 275*(275-217+1)+(275-1-0) | 16499 |
| 100 | 273 | (2) | 275*(275-273+1)+(275-1-0) | 1099 |
假設(shè)SCS=120kHz,,對于FR2:
| CBW | max RB | Equation | RIV Calculation | locationAndBandwidth |
|---|---|---|---|---|
| 50 | 32 | (1) | 275*(32-1)+0 | 8525 |
| 100 | 66 | (1) | 275*(66-1)+0 | 17875 |
| 200 | 132 | (1) | 275*(132-1)+0 | 36025 |
| 400 | 264 | (2) | 275*(275-264+1)+(275-1-0) | 3574 |
5 如何選擇BWP
UE最多可以配置4個下行和4個上行BWP,但是同一時間只能激活1個,所以需要動態(tài)的進行切換來滿足不同的業(yè)務(wù)或者場景。BWP切換的方法:
- 通過PDCCH(比如DCI)
- 通過bwp-InactivityTimer
- 通過RRC信令;
- 通過MAC實體初始的隨機接入過程;
舉例:
Case 1 : Reconfiguration with sync (based on 38.331 - 5.3.5.5.2)
"Reconfiguration with sync" 是NSA中激活NR小區(qū)的通用機制,通過下面的參數(shù)激活BWP:
- 激活下行BWP = firstActiveDownlinkBWP-Id
- 激活上行BWP = firstActiveUplinkBWP-Id
Case 2 : 初始隨機接入過程(based on 38.321 - 5.15)
如果PRACH occasions 沒有配置激活上行BWP:
- 對于上行,設(shè)置激活上行BWP = initialUplinkBWP
- 對于下行,如果服務(wù)小區(qū)是SpCell:
- 設(shè)置激活下行BWP = initialDownlinkBWP
- 對于下行,如果服務(wù)小區(qū)是SpCell:
如果PRACH occasions已經(jīng)配置了激活上行BWP:
- 對于上行,設(shè)置激活上行BWP = 已經(jīng)配置的上行BWP
- 對于下行,如果服務(wù)小區(qū)是SpCell:
- 設(shè)置激活下行BWP = 和上行BWP具有相同BWP-ID的下行BWP;
在選擇的BWP上進行隨機接入過程。
Case 3 : 接收到BWP指示的DCI:
- 接收到C-RNTI加繞的DCI時,如果沒有正在進行RACH流程,或者RACH流程剛結(jié)束。
- 設(shè)置激活的BWP = DCI中指定的BWP
6 BWP操作
對于配置了BWP的每個激活小區(qū),MAC實體將:
- 如果BWP已經(jīng)激活:
- 在BWP上傳送UL-SCH;
- 如果PRACH occasions配置了,在BWP上傳送RACH;
- 在BWP上監(jiān)聽PDCCH;
- 如果配置了,在BWP上傳送PUCCH;
- 為BWP報告CSI;
- 如果配置了,在BWP上傳送SRS;
- 在BWP上接收DL-SCH;
- 如果存在,就根據(jù)存儲的信息,(重新)初始化在激活的BWP上已配置的授權(quán)類型1的,任何已暫停的已配置的上行鏈路授權(quán)。根據(jù)5.8.2的規(guī)則啟動。
- 如果BWP已經(jīng)去激活:
- 不在BWP上傳送UL-SCH;
- 不在BWP上傳送PRACH;
- 不在BWP上監(jiān)聽PDCCH;
- 不在BWP上傳送PUCCH;
- 不為報告這個BWP的CSI;
- 不在BWP上傳送SRS;
- 不在BWP上接收DL-SCH;
- 清除在BWP上已經(jīng)配置的下行任務(wù),以及已經(jīng)配置的授權(quán)類型2的上行鏈路授權(quán);
- 清除在未激活BWP上暫停的任何已經(jīng)配置的授權(quán)類型1的上行鏈路授權(quán);
隨機接入過程中,MAC實體對于這個服務(wù)小區(qū)的選擇載波進行如下操作:
- 如果active UL BWP沒有配置PRACH occasion:
- 切換active UL BWP = initialUplinkBWP
- 如果服務(wù)小區(qū)是SpCell:
- 切換active DL BWP = initialDownlinkBWP
- 或者
- 如果服務(wù)小區(qū)是SpCell:
- 如果active DL BWP和active UL BWP沒有相同的bwp-Id
- 切換active DL BWP為和active UL BWP相同bwp-Id的DL BWP;
- 如果active DL BWP和active UL BWP沒有相同的bwp-Id
- 如果服務(wù)小區(qū)是SpCell:
- 該服務(wù)小區(qū)的active DL BWP相關(guān)的bwp-InactivityTimer如果正在運行就停止掉;
- 如果服務(wù)小區(qū)是SCell;
- 該SpCell的active DL BWP相關(guān)的bwp-InactivityTimer如果正在運行就停止掉;
- 在該SpCell的active DL BWP上 和該服務(wù)小區(qū)的active UL BWP上進行隨機接入過程;
如果MAC實體接收到包含服務(wù)小區(qū)的BWP切換的PDCCH,MAC實體將:
- 如果在服務(wù)小區(qū)上沒有進行隨機接入過程;
- 如果在接收到按照C-RNTI尋址的PDCCH時,與該小區(qū)相關(guān)的正在進行的隨機接入過程成功完成;
- 按照PDCCH的BWP指示進行BWP切換;
當(dāng)MAC實體正在進行隨機接入時,接收到指示BWP切換的PDCCH,這個時候由UE確定是否進行BWP切換,如果確定進行BWP切換,那么MAC實體將停止正在進行的隨機接入過程,等到BWP切換成功之后重新初始化隨機接入過程;如果忽略BWP切換,那么MAC實體將繼續(xù)進行隨機接入過程。
當(dāng)MAC實體正在進行隨機接入時,接收到網(wǎng)絡(luò)下發(fā)的指示BWP切換的RRC重配,MAC實體將停止正在進行的隨機接入過程,等完成BWP切換之后,重新初始化隨機接入過程。
MAC實體將為每個激活了的服務(wù)小區(qū)配置bwp-InactivityTimer;
如果配置了defaultDownlinkBWP-Id,并且active DL BWP不是defaultDownlinkBWP-Id表示的BWP;
-
如果沒有配置defaultDownlinkBWP-Id,并且active DL BWP不是initialDownlinkBWP表示的BWP;
- 如果在active BWP上接收到指示下行鏈路分配或者上行鏈路授權(quán)的C-RNTI 或者CS-RNTI的PDCCH;
- 如果MAC PDU是在配置的上行鏈路授權(quán)中發(fā)送的或在配置的下行鏈路分配中接收的;
- 如果沒有在進行隨機接入過程;
- 如果正在進行的隨機接入過程已經(jīng)成功完成,接收到PDCCH;
- 啟動或者重啟和active DL BWP相關(guān)聯(lián)的bwp-InactivityTimer;
- 如果與active DL BWP相關(guān)聯(lián)的bwp-InactivityTimer超時;
- 如果配置了defaultDownlinkBWP-Id;
- BWP切換到defaultDownlinkBWP-Id指定的BWP;
- 或者
- BWP切換到initialDownlinkBWP;
- 如果配置了defaultDownlinkBWP-Id;
-
如果接收到了BWP切換的PDCCH,MAC實體切換active DL BWP;
- 如果配置了defaultDownlinkBWP-Id,并且MAC實體切換到?jīng)]有defaultDownlinkBWP-Id指示的DL BWP;
- 如果沒有配置defaultDownlinkBWP-Id,并且MAC實體切換到?jīng)]有initialDownlinkBWP指示的DL BWP;
- 啟動或者重啟和active DL BWP相關(guān)聯(lián)的bwp-InactivityTimer;
7 RRC參數(shù)
ServingCellConfig ::= SEQUENCE {
tdd-UL-DL-ConfigurationDedicated TDD-UL-DL-ConfigDedicated OPTIONAL, -- Cond TDD
initialDownlinkBWP BWP-DownlinkDedicated OPTIONAL, -- Need M
downlinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
downlinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTIONAL, -- Need N
firstActiveDownlinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd
bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL, --Need R
defaultDownlinkBWP-Id BWP-Id OPTIONAL, -- Need S
uplinkConfig UplinkConfig OPTIONAL, -- Need M
supplementaryUplink UplinkConfig OPTIONAL, -- Need M
}
UplinkConfig ::= SEQUENCE {
initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Need M
uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
uplinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL, -- Need N
firstActiveUplinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd
...,
}
BWP ::= SEQUENCE {
locationAndBandwidth INTEGER (0..37949),
subcarrierSpacing SubcarrierSpacing,
cyclicPrefix ENUMERATED { extended } OPTIONAL -- Need R
}
BWP-Downlink ::= SEQUENCE {
bwp-Id BWP-Id,
bwp-Common BWP-DownlinkCommon OPTIONAL, -- Cond SetupOtherBWP
bwp-Dedicated BWP-DownlinkDedicated OPTIONAL, -- Cond SetupOtherBWP
...
}
BWP-Id ::= INTEGER (0..maxNrofBWPs)
BWP-DownlinkCommon ::= SEQUENCE {
genericParameters BWP,
pdcch-ConfigCommon SetupRelease { PDCCH-ConfigCommon } OPTIONAL, -- Need M
pdsch-ConfigCommon SetupRelease { PDSCH-ConfigCommon } OPTIONAL, -- Need M
...
}
BWP-DownlinkDedicated ::= SEQUENCE {
pdcch-Config SetupRelease { PDCCH-Config } OPTIONAL, -- Need M
pdsch-Config SetupRelease { PDSCH-Config } OPTIONAL, -- Need M
sps-Config SetupRelease { SPS-Config } OPTIONAL, -- Need M
radioLinkMonitoringConfig SetupRelease { RadioLinkMonitoringConfig } OPTIONAL, -- Need M
...
}
BWP-Uplink ::= SEQUENCE {
bwp-Id BWP-Id,
bwp-Common BWP-UplinkCommon OPTIONAL, -- Cond SetupOtherBWP
bwp-Dedicated BWP-UplinkDedicated OPTIONAL, -- Cond SetupOtherBWP
...
}
BWP-UplinkCommon ::= SEQUENCE {
genericParameters BWP,
rach-ConfigCommon SetupRelease { RACH-ConfigCommon } OPTIONAL, -- Need M
pusch-ConfigCommon SetupRelease { PUSCH-ConfigCommon } OPTIONAL, -- Need M
pucch-ConfigCommon SetupRelease { PUCCH-ConfigCommon } OPTIONAL, -- Need M
...
}
BWP-UplinkDedicated ::= SEQUENCE {
pucch-Config SetupRelease { PUCCH-Config } OPTIONAL, -- Need M
pusch-Config SetupRelease { PUSCH-Config } OPTIONAL, -- Need M
configuredGrantConfig SetupRelease { ConfiguredGrantConfig } OPTIONAL, -- Need M
srs-Config SetupRelease { SRS-Config } OPTIONAL, -- Need M
beamFailureRecoveryConfig SetupRelease { BeamFailureRecoveryConfig } OPTIONAL, -- Cond SpCellOnly
...
}