LTE-连接态下的DRX

C-DRX: Connectedmode DRX,连接态下的DRX

UE在连接态下,如果没有数据传输的话,会根据DRX的规则停止监听PDCCH(监听PDCCH可参考:PDCCH),从而达到省电的目的。一个DRX周期包含On Duration 和Opportunity for DRX 两个时间段。


3GPP - 36.321中示例图如下:


想学习DRX的具体规则,我们需要先了解DRX中的参数。

eNodeB通过ConnectionReconfiguration 或者RRCConnection Setup 或者RRCConnectionReestablishment 这3条消息来告诉UE DRX参数。DRX属于MAC层的参数。3GPP-36.331中有描述如下:


参数包括4个timer, 2个DRX cycle, 1个offset,详细解释如下:

  • onDurationTimer

在那个SFN/subframe启动 onDurationTimer呢?计算公式如下:

如果配置了short DRX,则SFN/subframe满足:

 [(SFN * 10) +subframe number] mod(shortDRX_Cycle) == (drxStartOffset)mod (shortDRX_Cycle)

如果配置了long DRX, 则SFN/subframe满足:

 [(SFN * 10) +subframe number] mod(longDRX_Cycle) == (drxStartOffset)

ShortDRX和LongDRX计算公式中的drxStartOffset 是同一个值,就是DRX-config 中longDRX-CycleStartoffset中的CycleStartoffset。

  • drx-InactivityTimer

当UE成功盲检到一个下行PDCCH之后,就会启动这个定时器。

当drx-InactivityTimer超时时,

如果配置short DRX,则

            1.使用short DRX, 

            2.触发drxShortCycleTimer,

否则,

           1.则使用 long DRX。

有人可能会认为,如果配置DRX的话,UE一定会睡觉,而eNodeB一定会根据DRX的规则,只在特定的时间发送数据给UE。这种理解是不正确的,因为drx-InactivityTimer参数的存在,只要UE有新传数据到达(PDCCH),drx-InactivityTimer 就会重新启动(reset), UE的激活的时间就会延长(extended)。可以参考下面drx-RetransmissionTimer中的示意图。

  • drx-RetransmissionTimer

启动该重传定时器需要满足下面条件:

1.    HARQ RTT Timer超时, 且

2.    对应的DL HARQ process buffer里的数据没有被成功解码时

备注:(HARQ RTT Timer一旦超时就意味着UE可以开始接收eNodeB的重传数据了,若RTT定时器还没有超时,eNodeB也不会下发重传数据

当收到PDCCH子帧显示该process有数据传输时,停止该定时器

下图显示了HARQ RTT Timer和drx-RetransmissionTimer启动的先后关系。

(另外,从下图也可以看到drx-InactivityTimer 重启3次(红色示意图),延长了UE的激活时间)

图来自:http://www.simpletechpost.com/2015/10/connected-mode-drx.html


  • drxShortCycleTimer

当配置了shortDRX 时,在下列条件会启动这个定时器:

1.   drx-InactivityTimer超时,或者

2.   收到DRX command MAC CE

drxShortCycleTimer超时,会使用LongDRX cycle

  • longDRX-CycleStartoffset
包含2个参数:longDRX-Cycle 和 drxStartOffset 这两层含义

  • Long DRX cycle

当drxShortCycleTimer超时时,就会使用Long DRX cycle.

Short DRX是可选的IE,如果网侧同时也配置了ShortDrx-Cycle参数,那么长周期必须配置成短周期的整数倍



介绍完这些参数和相关规则后,我们来举个例子,DRX参数设置如下:

Item

Value

onDurationTimer

2

drx-InactivityTimer

2

drxShortCycleTimer

2  (2*shortDRXcycle = 10subframe)

shortDRXcycle

5

longDRXcycle

10

drxStartOffset

0


1. Short DRX

onDurationTimer启动的时刻:

[(SFN * 10) +subframe number] mod(shortDRX_Cycle) == (drxStartOffset)mod (shortDRX_Cycle)

((SFN * 10) + subframe) mod 5 = 5 mod 5 =>((SFN* 10) +subframe) mod 5 = 0;

(SFN,subframe) = {(0,0),(0,5) ,(1,0),(1,5)(2,0),(2,5),(3,0),(3,5)…}

2. Long DRX

onDurationTimer启动的时刻:

 [(SFN * 10) +subframe number] mod(longDRX_Cycle) == (drxStartOffset)

((SFN * 10) + subframe) mod 10 = 0

(SFN,subframe) ={(0,0), (1,0),(2,0),(3,0)}

情况1:

UE在onDurationTimer 区间接受到PDCCH,会触发drx-InactivityTimer;

drx-InactivityTimer超时,会触发drxShortCycleTimer;

drxShortCycleTimer超时,会使用Long DRX cycle;



情况2:
如果在长DRX接收到PDCCH,会触发使用short DRX:



最后补充一点,我们在读36.321时,spec中提到了DRC MAC CE:

DRX Command MAC control element

3GPP-36.321-5.7 DRX, 有如下描述:

if a DRX Command MACcontrol element or a Long DRX Command MAC control element is received:

- stop onDurationTimer;

-stop drx-InactivityTimer.

当UE 接收到DRXCommand MAC CE时,就会停止onDurationTimer 和drx-InactivityTimer 这2个timer, 这样UE就会马上进入休眠期。我猜这样的设计初衷是:
eNB发现没有数据可以传送时,可以发送这个MAC CE,通知UE马上进入休眠期,从而达到更加省电的目的。


  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值