R16 NR CDRX

微信公众号同步更新,欢迎关注同名微信公众号“modem协议笔记”。

在NR中降低UE功耗一直比较重要,如38.300 power saving 所述,NR 中UE power saving的机制有很多,包含DRX ,BWP adaption, dormancy BWP, DCP(DCI with CRC scrambled by PS-RNTI),跨时隙调度,放松测量等。dormancy BWP和DCP都集中在dormancy BWP中介绍,这篇CDRX也会提及部分内容;放松测量大概内容主要在38.304及38.133,而这篇主要看下CDRX。

R16版本的CDRX相比于R15,增加了DCP WUS的内容,也对CSI/SRS部分进行了增强,更细化了CSI/SRS发送的场景,除此之外,UE还可以通过UEAssistanceInformation向网络report perfer C-DRX cycle length。R17版本的CDRX 增加了NTN,sidelink的内容,也增加了MBS Broadcast/Multicast场景的CDRX。这篇主要看下R16版本的CDRX,算是承上启下吧。

先看38.300中的描述,了解下DRX 的大概过程。

 
b5b344eb02b748a4834fdceadd90cbec.png
当配置了 DRX 时,UE 不必持续监视 PDCCH。 DRX具有以下特点:
- on-duration:UE 醒来后等待接收 PDCCH 的持续时间。 如果 UE 成功解码 PDCCH,则 UE 保持清醒并启动inactivity timer;
- inactivity-timer:UE等待成功解码PDCCH的持续时间,从PDCCH的最后一次成功解码开始,timer 超时后UE可以返回sleep。 UE 应在一次成功解码 PDCCH 后重新启动非活动定时器,这个PDCCH data必须是第一次传输,重传的情况不会restart inactivity timer.
- retransmission-timer:预计重传之前的持续时间;
- cycle:on duration+inactivity period 如下图;
- active-time:UE监听PDCCH的总时长。 这包括 DRX cycle的 on-duration,在inactivity timer 未超时前 UE执行连续接收的时间以及 UE 在等待重传时机执行连续接收的时间。
70d0b19818854df7bdb2b965c37c8eb3.png
670f759cd2ef4f1e8766dfc5f7364283.png
相应地,网络侧可以给UE在active BWP中配置DCP-config用于指示UE是否需要在下一个 long DRX cycle开启drx-onDurationTimer,即可以使得UE保持DRX sleep状态,达到进一步省电的功能,主要通过 ps-RNTI 加扰的DCI 2_6 中的 Wake-up indication实现,具体参见Dormant BWP 中的DCI 2_6的描述。
UE 不会在active-time、measurement gaps、BWP switching期间或者当它监视用于BFR的CFRA preamble 传输的response等情况监听DCP,转而在next on-duration期间监听PDCCH。 如果active BWP 中没有配置 DCP,则 UE 遵循正常的 DRX 操作。配置CA时,仅在PCell上配置DCP。
 
 
接下来具体看下DRX 的具体工作原理,主要在38.321 5.7章节。下面是38.321 DRX相关的参数,直接摘抄过来,做记录,后面再具体看每个参数的含义。
drx-onDurationTimer: the duration at the beginning of a DRX cycle;
drx-SlotOffset: the delay before starting the drx-onDurationTimer;
drx-InactivityTimer: the duration after the PDCCH occasion in which a PDCCH indicates a new UL or DL transmission for the MAC entity;
drx-RetransmissionTimerDL (per DL HARQ process except for the broadcast process): the maximum duration until a DL retransmission is received;
drx-RetransmissionTimerUL (per UL HARQ process): the maximum duration until a grant for UL retransmission is received;
drx-LongCycleStartOffset: the Long DRX cycle and drx-StartOffset which defines the subframe where the Long and Short DRX cycle starts;
drx-ShortCycle (optional): the Short DRX cycle;
drx-ShortCycleTimer (optional): the duration the UE shall follow the Short DRX cycle;
drx-HARQ-RTT-TimerDL (per DL HARQ process except for the broadcast process): the minimum duration before a DL assignment for HARQ retransmission is expected by the MAC entity;
drx-HARQ-RTT-TimerUL (per UL HARQ process): the minimum duration before a UL HARQ retransmission grant is expected by the MAC entity;
ps-Wakeup (optional): the configuration to start associated drx-onDurationTimer in case DCP is monitored but not detected;
ps-TransmitOtherPeriodicCSI (optional): the configuration to report periodic CSI that is not L1-RSRP on PUCCH during the time duration indicated by drx-onDurationTimer in case DCP is configured but associated drx-onDurationTimer is not started;
ps-TransmitPeriodicL1-RSRP (optional): the configuration to transmit periodic CSI that is L1-RSRP on PUCCH during the time duration indicated by drx-onDurationTimer in case DCP is configured but associated drx-onDurationTimer is not started.
 
 
 
DRX参数配置结构
 
R16版本可以对serving cells 分别配置在两个DRX group中。主要是为了节能及更好的管理,因而提出将FR1和FR2 分别配置在不同的DRX group,每个DRX group采用各自的drx参数,具体引入原因可以看R2-2004855,38.321中对于两个DRX group的描述,也就下面这一段,毕竟仅仅是某些参数要独立配置,重要的还是DRX工作机制。
732cfbe81e784bafb2950c7ee67acd87.png
serving cell的MAC entity 可能会由 RRC 配置在两个 DRX group中,每个DRX group具有单独的 DRX 参数。 当RRC没有配置secondary DRX group时,即只有一个DRX group,那所有的Serving Cell都属于这个DRX group。 当配置了两个 DRX group时,每个serving cell会被唯一地分配给两个组中的任何一个。 每个DRX group单独配置的DRX参数对应的是drx-ondurationTimer和drx-inactivityTimer。共同的参数是drx-SlotOffset, drx-RetransmissionTimerDL, drx-RetransmissionTimerUL, drx-LongCycleStartOffset, drx-ShortCycle (optional), drx-ShortCycleTimer (optional), drx-HARQ-RTT-TimerDL, and drx-HARQ-RTT-TimerUL。
 
 
DRX RRC层参数结构罗列在下面。
502a39def2374131aff879991f17de52.png

989927ac666f47578f66be922eca9231.png

 
接下来按照38.321的内容,分别看下各个timer是如何工作的。
 
 
drx-onDurationTimer
 
5fc265c973c84a78a71c4db38e3b21b7.png
DRX cycle开始对应的是一段on Duration ,在on duration期间UE是要监听PDCCH的,即处于Active time。on duration的时间由drx-onDurationTimer控制,时间单位是1/32ms,即subMiliSeconds。
 
 
DRX inactivity Timer
 
afc4176ba0594cdd84eb1520c64a61df.png

779d0da8cd1444ada85797c080b51528.png  

当UE收到一个PDCCH新传调度时,后续可能还有需要发送和接收的UL/DL data,UE需要启动DRX Inactivity定时器来等待一段时间,等待后续可能还有的DL/UL调度。
drx inactivity timer在PDCCH新传调度结束后的第一个symbol启动;drx-inactivitytimer与DRX的其他timer独立运行,没有关联。
c8345a435714456d8746a1dbb2296e91.png
 
 
HARQ-RTT-Timer
 
对于同一个HARQ进程,当一次上行调度或下行调度,到下一次调度,需要一定的处理时间,这个时长就是HARQ RTT(Round Trip Timer)时间;
在NR 中上下行HARQ都是异步HARQ,即HARQ RTT时长不是固定的。
640dde8427e94782bd2e69cf2e6ca7b1.png
drx-HARQ-RTT-TimerDL和drx-HARQ-RTT-TimerUL的单位是BWP的symbol个数,最长56个symbol即4个slots。
因此也将上述两个Timer描述为DL/UL调度重传的最短时长。
如果不开启DRX,就不会配置这两个timer,因为UE总在监听PDCCH;如果开启DRX 才会配置这两个 timer,对于同一个HARQ progress,在Timer运行期间,不会有相同HARQ 的PDCCH 调度。
 
407d717be4974632aced2724bd78d88c.png
 
DRX RetransmissionTimer
54a0ad107cc0431b87810197b1d99b74.png
drx-RetransmissionTimerDL/UL 的单位是slot数,sl0对应 0个slots,sl1对应 1 slot....
 
 
更具体的 在DRX group处于Active Time期间时,
DL:
62ced389d08e4ff38ac4d1537fce81ed.png
在UE收到DL data后,要针对对应的HARQ process开启drx-HARQ-RTT-TimerDL,具体的开启时间对应HARQ ACK/NACK发送后的第一个symbol,同时停止对应HARQ process 的drx-RetransmissionTimerDL。
 
 
值得注意的时上面的内容有一个non-numerical k1 的说法,这个场景对应的NR-U,具体讨论可以查看R2-1909808和R2-1912101,大概意思是当DCI PDSH-to-HARQ_feedback timing对应的是一个non-numerical k1(即没有指定HARQ ACK/NACK 所用的K1),那UE要在当前bundle内最后一个pdsch结束后的第一个符号启动drx-RetransmissionTimerDL,等待下一个DCI 带下来正确的k1,再进行HARQ ACK/NACK的动作。
 
 
当drx-HARQ-RTT-TimerDL超时后,对于同一个HARQ process,如果UE解码PDSCH失败时,UE必须要监听PDCCH来获取DL 重传data,这时UE启动drx-RetransmissionTimerDL来等待下行的重传data; 如果UE解码PDSCH成功,不需要启动drx-RetransmissionTimerDL。
 
 
UL:
4b23e9216ffb474c91e6074a50b4204b.png
在UE收到UL grant时,要针对对应的HARQ process开启drx-HARQ-RTT-TimerUL,具体的开启时间对应当然bundle内的第一个PUSCH发送后的第一个symbol,同时在相应 PUSCH 传输的第一次传输时就要停止对应HARQ process 的drx-RetransmissionTimerUL。
 
 
当drx-HARQ-RTT-TimerUL超时后,对于同一个HARQ进程,UE发送PUSCH后,UE不知道基站是否解码成功,必须要监听PDCCH来获取可能的UL 重传data,所以这时UE要开启drx-RetransmissionTimerUL。
针对上述过程的图示如下:
fd470dde1bc649448596ea533d6b1a69.png
 
查看协议可以看到DL SPS 和configured UL grant的描述并没有上面动态调度的那句"if a DRX group is in Active Time",也就是说DL SPS 和configured UL grant不受DRX active 和sleep机制的影响,按照各自的配置进行UL/DL操作,其他内容基本一样,具体如下:
 
DL SPS
4104dc7eb378437b8230c5e77559e17a.png
在UE收到DL data后,要针对对应的HARQ process开启drx-HARQ-RTT-TimerDL,具体的开启时间对应HARQ ACK/NACK发送后的第一个symbol,同时停止对应HARQ process 的drx-RetransmissionTimerDL。
 
 
configured UL grant:
 
a9e5f532109846cfbf9560e212c6eb51.png
在UE收到UL grant时,要针对对应的HARQ process开启drx-HARQ-RTT-TimerUL,具体的开启时间对应当前bundle内第一个PUSCH发送后的第一个symbol,同时在相应 PUSCH 传输的第一次传输时就要停止对应HARQ process 的drx-RetransmissionTimerUL。
 
 
DRX cycle 
1d40bbc79ce540009e8f6dd16487e24f.png
网络侧可以给UE配置drx long cycle或者short cycle,其中short cycle是可以不配置的。
drx-ShortCycle 单位是ms;drx-ShortCycleTimer 对应的是drx-ShortCycle的倍数,drx-ShortCycleTimer 对应的时间就是short cycle的确切时间。
对于long cycle,通过drx-LongCycleStartOffset ms160 : 5 的方式配置,对应drx-LongCycle=160ms drx-StartOffset=5ms。如果有配置drx-ShortCycle时,drx-LongCycle应该是drx-ShortCycle的倍数。
引入short cycle 主要原因是long cycle虽然有利于UE节能,但是可能会影响UE data 的收发。
两种drx cycle的工作流程如下:
8c03f7ef5ab14fc990b81ab8f84cc8a6.png
DRX group 的 drx-InactivityTimer 超时后,如果UE有收到Short DRX cycle的配置,就在drx-InactivityTimer超时后的第一个symbol start/restart drx-ShortCycleTimer,开始short DRX cycle;只有long DRX cycle的配置就直接开始long cycle。
drx-ShortCycleTimer 超时后,下面就要进入long DRX cycle。
 
 
除了上述方式还能通过MAC CE控制DRX cycle的开启:
 
d66e0822e3b04fe08cb83f7ad4faccd8.png
UE收到DRX Command MAC CE,如果UE有收到Short DRX cycle的配置,就在接收完DRX Command MAC CE后的第一个symbol start/restart drx-ShortCycleTimer,开始short DRX cycle;只有long DRX cycle的配置就直接开始long cycle。
 
 
另外在short cycle期间UE收到long DRX Command MAC CE,就要stop drx-ShortCycleTimer,直接进入long DRX cycle。
在收到long DRX Command MAC CE或DRX Command MAC CE时,UE要停止drx-onDurationTimer和drx-InactiveTimer,因为之后就要直接进入short cycle或long cycle了。
51ccf0f5a5fa4aada9076cfac3fd3dae.png
long DRX Command MAC CE和 DRX Command MAC CE分别通过MAC subheader LCID 59和60进行区分。
 
 
DRX 参数 slotOffset
 
5f03022ab85f46c28f6472305e7d4ede.png
DRX slot offset单位是ms,通过drx slotoffset可以配置On duration开始时间。
86550cb4dcc04389b1037b52695b4c1d.png
通过上述公式分别确定short/long Drx cycle要开始的subframe number,再经过drx-slotoffset后才start drx-onDurationTimer。
b4f9afe527194641b31eb8198db76d8d.png
结合上面的内容,配置short cycle时的一种DRX图示如下。
 
 
f771a52af4c24a719c1303f224698ed9.png
 
short cycle根据公式计算确定好subframe就好;long cycle的开启还涉及DCP及其他相关内容。
 
WUS(wake up signal)
2e730174b01e469b89fc3171880f70ef.png
DCP 主要对long DRX cycle起作用,所以对于long DRX cycle,还要考虑DCP 的配置。
UE没有收到DCP的配置,则按照正常的规则开始long DRX cycle。
UE有收到DCP的配置时要分情况考虑long DRX cycle的启动:
(1)UE在Outside DRX ActiveTime 期间收到DCI 2_6,其中Wake-up indication =1 代表在下一个 long DRX cycle开启drx-onDurationTimer;Wake-up indication =0 代表在下一个 long DRX cycle不开启drx-onDurationTimer,即保持DRX sleep状态,达到进一步省电的功能。
(2)DCP-Config-r16的ps-WakeUp,在配置时只能是true,否则可以缺省;ps-WakeUp=true时,代表UE在DRX outside active time没有检测到DCI 2_6时,UE要在下一个long DRX cycle时开启drx-OnDurationTimer,即醒过来;没有配置ps-WakeUp时,UE也没有坚持到DCI 2_6,则UE可以继续处于sleep状态这就是所谓的WUS,详细流程详见 dormancy BWP 中的DCP-config部分的描述。
(3)UE要在下一个DCP occasion开始的前4ms结合grants/assignments/DRX Command MAC CE/Long DRX Command MAC CE/SR 发送等情况 评估当前DRX cycle 是否会在Active Time,评估完在Active Time就按照long drx cycle的规则开启drx-onDurationTimer,不用在下一个DCP occasion监听DCI 2_6;
(4)在测量间隙期间或者UE正在SpCell的recoverySearchSpaceId指示的搜索空间上监听PDCCH data时 ,也按照long drx cycle的规则开启drx-onDurationTimer。
 
 
针对上面的(3)举例说明下
3fdb787ede0e481aaf5a546711540759.png
如上图示,假如在上图的DCP occasion前4ms评估完,由于congfiured grant UL传输或者DL SPS传输或者SR的配置等等,DCP occasion那段时间UE要进入Active Time,那就按照对应的规则开启drx-onDurationTimer。
 
 
那这里就引出一个容易被忽视的点,就是DRX Active Time不是由drx-onDurationTimer单独控制的,在上图中灰色的sleep状态,如果有其他相关Timer在运行,也会使得UE进入Active Time。接下来就看下DRX active Time的描述。
 
 
DRX active Time
配置DRX后,UE在Active Time要监听PDCCH 信道,其他时间为sleep时间。
 
bcde84ef4d91419ba8c754eb874ea3b4.png
当配置DRX时, DRX group中的serving cells的Active Time包含的时间如下:
-正在运行的DRX group配置的drx-onDurationTimer或drx-InactivityTimer; 
- drx-RetransmissionTimerDL 或 drx-RetransmissionTimerUL 正在 DRX group中的任何服务小区上运行;
- ra-ContentionResolutionTimer或 msgB-ResponseWindow正在运行; 
- 在 PUCCH 上发送的SR并处于pending状态等待的时长由SR配置决定; 
- 随机接入成功后 UE等待C-RNTI加扰的PDCCH新传的时间
即上面的情况都会使得UE进入Active 状态。
 
 
DRX相关的各个timer是相互独立工作,控制UE DRX 状态的变化,下面是DRX 有关Timer的汇总。
8f64ee98eb164034a554cc4cd33e2de9.png
针对这部分举个例子。
 
a9fbba1c03b84bed973c20e2da1a02cf.png
(1)UE只配置了drx long cycle,在 drx-onDurationTimer运行期间处于DRX Acitive Time,需要正常监听PDCCH;
(2)UE收到UL PDCCH 新传data时,开启drx-InactivityTimer,该timer运行期间一直处于Active Time,超时后进入sleep状态;
(3)UE在drx-InactivityTimer运行期间根据PDCCH的指示,发送了PUSCH 之后,开启drx-HARQ-RTT-TimerUL;
(4)drx-HARQ-RTT-TimerUL超时后,UE开启drx-RetransmissionTimerUL,该timer运行期间,UE处于Active Time
(5)橘色框部分,drx-RetransmissionTimerUL 超时后,UE重新进入sleep状态
(6)紫色框部分,drx-RetransmissionTimerUL运行期间,UE收到网络侧的PDCCH UL重选指示,停止drx-RetransmissionTimerUL;待PUSCH法出去后,再次开启drx-HARQ-RTT-TimerUL......
 
 
 
 
DRX 对CSI/SRS的影响
 
在NR 中,处于RRC connected mode的UE,一般会配置SRS和CSI相关的参数,当DRX 打开后,要考虑UE sleep 状态和CSI上报及SRS 发送之间的关系。
de60263ef3284120bffd51abab25ffcb.png
假如SRS/CSI report 发送的symbol是n,UE有配置DCP-config,如果symbol n处于drx-onDurationTimer运行期间且相关的drx-onDurationTimer还没有开始:UE要在symbol n提前4ms结合grants/assignments/DRX Command MAC CE/Long DRX Command MAC CE/SR 发送等情况 评估symbol n 时 的MAC entity 是否还会在Active Time,假如评估完MAC entity不在Active Time,即在sleep状态,那UE就不能发送periodic SRS和semi-persistent SRS ,也不能通过PUSCH 发送semi-persistent CSI;另外如果ps-TransmitPeriodicL1-RSRP不等于true UE也不能在PUCCH上 report L1-RSRP相关的periodic CSI;如果ps-TransmitOtherPeriodicCSI不等于true,UE不能在PUCCH 上发送非L1-RSRP相关的periodic CSI。
ps-TransmitOtherPeriodicCSI和ps-TransmitPeriodicL1-RSRP的配置路径如下。
3ea78db0171d419ba525698fdebeb490.png
 
3290c30fc90c474bac93af3c97a11f52.png
除了上面提到的情况外,UE在symbol n提前4ms结合grants/assignments/DRX Command MAC CE/Long DRX Command MAC CE/SR 发送等情况 评估symbol n 时 的MAC entity 是在sleep状态,那UE就不能发送periodic SRS和semi-persistent SRS ,也不能通过PUSCH 发送semi-persistent CSI 同时也不可以通过PUCCH report CSI;当RRC层有配置csi-Mask且DRX和CSI也有同时配置,UE如果在CSI发送symbol n提前4ms预估是否为on Duration状态,如果不是On duration就不发送PUCCH 上的CSI report,言外之意是配置csi-Mask 时,UE可以发送PUSCH上的半持续CSI report。
csi-Mask的配置路径如下。
 
fa6ac4c12a6d4373b7ce1aad3afd5cf6.png
 
UEAssistanceInformation 
 
 
R16 UE还可以通过UEAssistanceInformation向网络report perfer C-DRX cycle length,上报的drx-preference参数包含preferred drx-InactivityTimer/drx-longcycle/drx-shortcycle/drx-shortCycleTimer,结构如下。
 
b9e917914aa745eda43ed6b5d3eac880.png
如果UE具备上报perference DRX 参数的能力且网络侧有配置要求UE上报时,UE就可以将preference DRX 参数通过UEAssistanceInformation上报给网络侧。
 
17f08e06629041b48b0e9f33ffa353c5.png
更具体的,网络会通过RRCReconfiguration配置otherConfig,其中包含drx-PreferenceConfig setup命令,UE就可以通过UEAssistanceInformation将preference DRX参数上报给网络侧,其中会配置drx-PreferenceProhibitTimer,T346a=drx-PreferenceProhibitTimer,结构图如上。
在UE通过UEAssistanceInformation上报preference DRX参数后就要针对cell group开启T346a,在T346a没有运行的时候,才能再次通过UEAssistanceInformation上报preference DRX参数。
3168c7c82c6e47b0872467e73b466d6e.png
 
UE收到上述命令后,如果有preference DRX 参数且之前没有发送过UEAssistanceInformation带drx-Preference或者之前发送过,但是当前的prefer value与之前上报的不一样且T346a没有在运行,那UE针对cell group 开启T346a 并发送对应的UEAssistanceInformation。
 
3e87b80ce74041c7b448d420db04a5bb.png
具体UEAssistanceInformation包含drx-Preference消息的生成原则就是UE自行决定上报的DRX参数,如上图4个prefer 参数都是可许的,UE有就上报,没有就不用包含该参数。
 
 
最后相关的capability IE罗列如下。
81c8428ed88c4181a8340f3082f21b0b.png

猜你喜欢

转载自blog.csdn.net/asd199086/article/details/128900439