5G学习笔记之BWP

embedded/2025/3/4 17:20:24/

我们只会经历一种人生,我们选择的人生。

参考:《5G NR标准》、《5G无线系统指南:如微见著,赋能数字化时代》

目录

  • 1. 概述
  • 2. BWP频域位置
  • 3. 初始与专用BWP
  • 4. 默认BWP
  • 5. 切换BWP

1. 概述

在LTE的设计中,默认所有终端均能处理最大20MHz的整个载波带宽。在NR的设计中,NR支持非常大的载波带宽,让所有终端都可以接收整个载波带宽是不合理的。因此,NR设计需要考虑如下:

  • 如果不要求所有终端都具备接收整个载波带宽的能力,那么需要为如何处理不同带宽能力的终端而特别设计;
  • 如果要求所有终端都可以接收整个载波带宽,终端接收大带宽信号所引起的功耗增加是一个非常重要的问题。为了解决这个问题,引入了接收带宽自适应技术。通过接收带宽自适应技术,终端只在较小的带宽上监听下行控制信道,以接收少量的下行数据传输。当终端有大量的数据接收时,则打开整个带宽进行接收

为了支持没有能力处理整个载波带宽的终端和接收带宽自适应这两个功能,定义了部分带宽(Bandwidth Part,BWP):从公共资源块的某个起始位置开始,一组连续的资源块。每个部分带宽都对应一种参数集(子载波间隔和CP长度)。

对于每个服务小区,至少配置一个初始下行 BWP,一个(服务小区只配置了一个UL)或者两个((配置了Supplementary Uplink,即SUL)初始上行BWP,初始BWP ID为0;还可以配置上行专用BWP下行专用BWP,专用BWP ID为1~4。在同一时间内,只有1个下行BWP和1个上行BWP处于激活状态(包括初始BWP和专用 BWP),UE不应在BWP之外接收和发送数据。

每个BWP包含公共(common)参数和专用(dedicated)参数,所有BWP的公共参数都属于小区级,所有BWP的专用参数都属于UE级。

2. BWP频域位置

UE获取BWP频域位置的步骤如下:

  • UE盲检测得出SSB位置;
  • MIB:UE通过MIB参数 pdcch-ConfigSIB1,可获得CORESET0相对于特定CRB的偏移offset,得出CORESET0COntrol REsource SET,控制资源集)的位置;
  • SIB1:在CORESET0上盲检调度 SIB1的DCI1_0,检测到DCI1_0后进一步解析;
  • 通过PBCH参数Kssb和SIB1参数 offsetToPointA,得出 pointA 的位置;
  • 通过 SIB1参数 scs-SpecifcCarrierList(offsetToCarrier 和 carrierBandwidth)得到下行载波的起始位置和带宽;
  • 通过SIB1参数,可获得BWP0的频域范围;
  • 通过BWP参数locationAndBandwidbh得出BWP的起始位置和大小

在这里插入图片描述

3. 初始与专用BWP

(1)初始BWP
PCell通过SIB1和RRC信令配置初始BWP;PSCell 和 SCell通过RRC重配消息配置。

对于PCell,初始BWP的公共参数通过SIB1下发;初始BWP的专用参数可以配置,也可以不配置,取决于厂商策略,若配置,通过RRC Setup或RRC Reconfiguration

对于PSCeIl和SCell,初始BWP的公共参数通过RRC Reconfiguration下发;初始BWP的专用参数可以配置,也可以不配置,取决于厂商策略,若配置,依然是通过RRC Reconfiguration。

(2)专用BWP

专用BWP都是通过RRC Reconfiguration配置的。对于一个UE,在每个服务小区最多可以配置4个专用BWP,每个专用BWP可以配置专用参数(UE级)和公共参数(小区级)。

(3)BWP配置选择

  • BWP0没有专用配置:如果UE只支持一个BWP,那么除了BWP0,还可以配置BWP1;如果UE支持多个BWP,那么最多还可以配置4个专用BWP,UE不能通过DCI切回到 BWP0
    在这里插入图片描述
  • )BWP0有专用配置:如果UE只支持一个BWP,那么只能配置为BWP0;如果UE支持多个BWP,那么最多还可以配置3个专用BWP,UE可以在这些BWP之间通过DCI来回切换。
    在这里插入图片描述

4. 默认BWP

对于一个服务小区,UE可以通过参数 ServingCellConfig->defaultDownlinkBWP-Id,在所有配置的下行BWP内配置一个默认下行BWP。如果没有配置defaultDownlinkBWP-Id,则初始下行BWP为默认下行 BWP。

如果UE配置了ServingCellConfig->bwp-InactivityTimer,则该定时器超时,UE回落到默认下行 BWP;如果收到RRC消息,但是没有配置bwp-InactivityTimer,且此时存在运行的 bwp-InactivityTimer,则停止该定时器。

defaultDownlinkBWP-Id和bwp-InactivityTimer都属于UE的服务小区级参数,不属于BWP 级参数。

若配置了 bwp-InactivityTimer,启动或者重启bwp-InactivityTimer定时器的两种情况:

  • 以下3个条件同时成立:

    • 当前激活的下行BWP不是默认下行BWP(配置了defaultDownlinkBWP-Id)或者不是初始下行BWP(没有配置 defaultDownlinkBWP-Id);
    • 当前激活 BWP 收到了C-RNTI/CS-RNTI加扰的DCI0或DCI1(包括CA的跨载波调度),或者在配置的授权上发送或收到了MACPDU;
    • 没有正在进行的RA过程(SCell发生的RA过程,对SpCell也认为存在RA过程)
  • 如果收到了指示下行BWP切换的DCI,并且指示切换到的BWP不是默认下行BWP(配置了 defaultDownlinkBWP-Id)或者不是初始下行 BWP( 没有配置 defaultDownlinkBWPId )

停止bwp-InactivityTimer定时器的情况

  • 在SpCell 发起RA;
  • 在SCell发起 RA过程时
  • 收到RRC消息,但是没有配置bwp-InactivityTimer

5. 切换BWP

BWP切换:激活一个非激活态的BWP,同时去激活一个激活的BWP。BWP切换有4种方式:

  • DCI指示:基站可以通过DC1_1或 DCI0_1的Bandwidth part indicator字段指示来切换 BWP。若UE不支持通过 DCI切换BWP,则忽略该字段。

    • 下行BWP:当 UE 接收到 DC1_1,若包含 Bandwidth part indicator 字段,并且字段指示的不是当前激活的下行BWP时,则UE切换到指示的下行BWP
    • 上行BWP:当 UE 接收到 DC0_1,若包含 Bandwidth part indicator 字段,并且字段指示的不是当前激活的上行BWP时,则UE切换到指示的上行BWP
  • bwp-inactivityTimer 超时:UE 的定时器 bwp-InactivityTimer(RRC 配置,单位为ms)超时后,UE回落到默认下行BWP。(how about uplink bwp???)

  • 通过RRC信令
    在这里插入图片描述

  • RA过程:发起RA时,当前使用的BWP没有配置RACH资源,则切回到初始BWP。


http://www.ppmy.cn/embedded/169975.html

相关文章

openssl下aes128算法xts模式加解密运算实例

aes128算法xts接口 加密 int openssl_aes128_encrypt_xts(unsigned char *key,unsigned char *iv, unsigned char *in_buf, int in_len, unsigned char *out_buf,int* out_len) {int len 0;// 创建并初始化加密上下文EVP_CIPHER_CTX *ctx EVP_CIPHER_CTX_new();if (!ctx) {p…

R 语言科研绘图第 29 期 --- 密度图-山脊线

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

网络通信库

服务端和客户端 1.建立连接。服务端对接多个客户端,用连接池(对象池)优化 2.收发消息,类和对象通过序列化和反序列化程二进制来通信 3.其他库函数 1.信号量 2.原子操作 -- 3.SocketAsyncEventArgs SocketAsyncEventArgs是一…

Python 绘制迷宫游戏,自带最优解路线

1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…

探秘基带算法:从原理到5G时代的通信变革【一】引言

文章目录 一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究内容与创新点 本博客为系列博客,主要讲解各基带算法的原理与应用,包括:viterbi解码、Turbo编解码、Polar编解码、CORDIC算法、CRC校验、FFT/DFT、QAMtiaozhi/解调、QPSK调制/解…

51c自动驾驶~合集52

我自己的原文哦~ https://blog.51cto.com/whaosoft/13383340 #世界模型如何推演未来的千万种可能 驾驶世界模型(DWM),专注于预测驾驶过程中的场景演变,已经成为追求自动驾驶的一种有前景的范式。这些方法使自动驾驶系统能够更…

Tailwind CSS 问题:npm error could not determine executable to run

问题与处理策略 问题描述 npx tailwindcss init -p在使用 Tailwind CSS 的前端项目中,执行上述指令,即初始化 Tailwind CSS 时,报如下错误 npm error could not determine executable to run# 报错npm 错误无法确定要运行的可执行文件问题…

【Python】基础知识四

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解Python的字典、文件。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! > 专栏选自:Pyt…