我是靠谱客的博主 难过绿草,最近开发中收集的这篇文章主要介绍5G NR CDRX,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、什么是CDRX

在理解CDRX之前,我们先来理解什么是“连接态”和“空闲态”。Connected和idel是从RRC层角度来说的(暂时先不讨论inactive态),简单来说,当UE在某个小区完成了驻留之后,我们就可以认为该UE进入了IDEL态,如果该UE后续又完成了随机接入过程,那么我们就可以认为该UE进入了CONNECTED态。做一个简单的比喻,把UE比作你自己,当你自己搬了一个小板凳进了公园坐下开始听一堆大妈聊天的时候,你就进入了IDEL态,此时你完成了下行同步,即完成了驻留,可以接收下行消息了——听大妈们聊天。随后你又发起了RACH,从而进入了CONNECTED态,此时你不光可以听大妈们聊天,还可以发送上行消息——插嘴和大妈们说上几句了。

理解了什么是CONNECTED态和IDEL态之后,再来理解什么是C-DRX。C-DRX即连接态下的不连续接收(Connected
Discontinuous Reception),可以让UE周期性的进入睡眠状态,不监听PDCCH,监听的时候则从睡眠状态中唤醒(Wake Up),从而达到省电的目的。

注意这里说的是连接态下的DRX,前提是连接态,如果UE在IDEL态,那么不论是初始接入,还是监听Paging,都与本文的描述不同,本文只讨论C-DRX。

二、CDRX的机制

理解了什么是CDRX之后,下面再来了解CDRX的具体过程和机制。上面说了CDRX是为了让UE省电从而周期性的进入睡眠状态,这是的“睡眠”,指的是UE不去监测PDCCH,不检测PDCCH就意味着不接收任何下行数据;反之“wake up”指的就是UE“醒着”的时间,用于监测PDCCH等,醒着的时间统称为Active
Time,包括下面这几种情况:

  • drx-onDurationTimer :此时UE正在监测是否有PDCCH;
  • drx-InactivityTimer :此时UE监测到了PDCCH,正在接收下行数据;
  • rx-RetransmissionTimerDL or drx-RetransmissionTimerUL :此时UE正在等待重传;
  • ra-ContentionResolutionTimer or msgB-ResponseWindow :此时UE正在等待接收Msg2或Msg4;
  • SR is sent on PUCCH:UE发送了SR之后,此时UE正在等待UL grant;
  • 非竞争随机接入UE收到RAR之后:此时UE在等待接收C-RNTI加扰的DCI,用于指示上行资源调度;

以有数据传输为例,当UE收到了一个MAC PDU,那么在发送完HARQ ACK/NACK之后的第一个symbol启动drx-HARQ-RTT-TimerDL;如果UE发送了一个MAC PDU,那么在发完PUSCH之后的第一个symbol启动drx-HARQ-RTT-TimerUL。这两个Timer的物理含义就是给UE发的HARQ feedback(for DL)或者PUSCH(for UL)到达网络侧留一段信号在空中传播的时间。如果下行初传失败,即UE回复的是NACK,则在HARQ-RTT-TimerDL超时后第一个的symbol就启动drx-RetransmissionTimerDL;对于上行,在drx-HARQ-RTT-TimerUL 超时后的第一个symbol启动drx-RetransmissionTimerUL。这两个Timer的物理含义就是UE等待网络侧的下行重传或者是上行重传调度。如果PDCCH指示的是上下行的新传,则在PDCCH结束后立马启动drx-InactivityTimer,这个timer物理含义就是用于UE接收下行数据的时间。所以CDRX说白了就是通过各种Timer来实现。

当SFN和Subframe满足该公式[(SFN
× 10) + subframe number] mod (drx-ShortCycle)
= (drx-StartOffset) mod (drx-ShortCycle)时,为UE wake up的时间,则在该subframe中的drx-SlotOffset后启动drx-onDurationTimer。Long Cycle同理,将drx-ShortCycle换成drx-LongCycle。

三、长短cycle的转换

如果drx-InactivityTimer超时(意味着刚刚有数据传输)或者UE收到了DRX Command MAC CE,且配置的是Short DRX cycle(意味着网络侧主动将DRX配置为短cycle),则马上启动或重置drx-ShortCycleTimer,即接下来这个timer超时之前都要使用Short DRX cycle,也就是说如果是在有数据传输或者是NW侧配置为短DRX的情况下,要使用短cycle。

当drx-ShortCycleTimer超时,或者如果UE收到了Long DRX Command MAC CE,则停止drx-ShortCycleTimer,马上开始使用Long DRX cycle。也就是说如果长时间无数据调度,则会自动转换为长cycle,NW侧也可以主动配置或重置Long DRX cycle。

四、其他

此外要注意,如果在符号n之前4ms有进行grants/assignments/DRX Command MAC CE/Long
DRX Command MAC CE received and Scheduling Request发送,则不发送周期和半持续SRS,不在PUCCH内发送周期CSI,不在PUSCH内发送半持续CSI。对于HARQ
feedback, aperiodic CSI on PUSCH, 和aperiodic SRS,不受Active Time限制。

对于接收PDCCH,如果Coreset不是完整的在Active time之内,则不检测该CORESET内的PDCCH。

总结上面出现的一些参数及其意义如下,这些CDRX需要的参数由RRC来配置:

drx-onDurationTimer: UE醒着的时长;

drx-SlotOffset: UE醒来的时间;

drx-InactivityTimer: 指示新传数据的PDCCH结束之后的时间;

drx-RetransmissionTimerDL (per DL HARQ process): 等待下行重传的最大时长;

drx-RetransmissionTimerUL (per UL HARQ process): 等待上行重传的最大时长;

drx-LongCycleStartOffset: Long DRX的长度及其起始 (drx-StartOffset,subframe为单位);

drx-ShortCycle (optional): Short DRX Cycle的长度;

drx-ShortCycleTimer (optional):
UE执行Short DRX Cycle的时长;

drx-HARQ-RTT-TimerDL: UE期望的下行重传数据达到的最小时间;

drx-HARQ-RTT-TimerUL: 上行发送到达网络侧的时间,也就是UE期望的上行重传达到的最小时间;

最后

以上就是难过绿草为你收集整理的5G NR CDRX的全部内容,希望文章能够帮你解决5G NR CDRX所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部