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参数,那么长周期必须配置成短周期的整数倍

Short/long DRX切换示例图:https://www.wirelessdesignmag.com/article/2014/05/how-increase-battery-life-volte-devices-ensure-qoe
介绍完这些参数和相关规则后,我们来举个例子,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马上进入休眠期,从而达到更加省电的目的。

LTE-连接态下的DRX相关推荐

  1. LTE连接态读取系统消息SIB24疑问

    群里看到一个疑问,LTE SIB24是否只在连接态下下发? ​ LTE终端在IDLE态下配置的NR邻区信息在SIB24中配置,现在遇到的现象是SIB24都是终端在连接态下读取到的,而导致认为SIB24 ...

  2. LTE资源调度(7)-DRX不连续接收(1)

    1.为什么要使用DRX 在讲解DRX的概念前,我们需要先了解下什么是"空闲态",什么是"连接态". 我们经常会听到"空闲态"."连 ...

  3. [转]LTE资源调度(7)-DRX不连续接收(1)

    1.为什么要使用DRX 在讲解DRX的概念前,我们需要先了解下什么是"空闲态",什么是"连接态". 我们经常会听到"空闲态"."连 ...

  4. 一个连接态DRX下的paging接收专利

    今天聊一个看到的高通写的专利,有时专利看起来也没那么难的. 在文章NR/5G - 系统消息变更介绍到,在NR里面连接态接收系统消息,只要在系统消息变更周期里面至少接收一次Paging即可,该Pagin ...

  5. [4G5G专题-93]:流程 - 4G LTE 终端在RRC 连接状态下的小区切换通用过程

    目录 第1章 切换概述 1.1 移动性管理 1.2 什么是小区切换(hand over) 1.3 为什么要切换 1.4 小区切换的决策者 第2章 切换的分类 2.1 按照空口频段分 2.2 按照网络设 ...

  6. TP保护的研究和学习-用户态下调试附加篇(二)

    TP保护的研究和学习-用户态下调试附加篇 引言: ​ 本篇系列旨在研究学习腾讯保护系统的保护方案实现,文中尽量以"发现问题然后尝试解决问题"的模式来处理遇到的问题,此前网上有太多相 ...

  7. 3GPP R17连接态省电特性

    Enhanced SSSG Switching SSSG(Search space set group),搜索空间集合组.SSSG switching就是网络通过动态切换UE的搜索空间集来达到省电的目 ...

  8. 文件描述符在内核态下的一些小把戏

    http://bbs.chinaunix.net/thread-1928306-1-1.html 前面的话: linux环境:虚拟机VMware Server上安装的ubuntu10.4,通过putt ...

  9. list.h在用户态下的应用

    一.背景 list.h文件位于linux/include下,内核中链表的操作函数都在其中.它有许多关于链表的操作函数,所以我们可以尝试将list.h拉到用户态中来使用,这样,我们在用户态中若要用到链表 ...

最新文章

  1. 线上直播丨KDD 2021预训练Workshop,谷歌MSRA等5位顶尖研究者参与研讨
  2. 026_jdbc-mysql-PrepareStatement解决sql注入
  3. docker导入MySQL文件_Docker容器中Mysql数据的导入/导出详解
  4. LeetCode移掉k位数字(贪心算法)python
  5. 简明Git与GitHub命令使用教程
  6. 无闪烁刷新页面 php,AJAX_Ajax实现无闪烁定时刷新页面实例代码,在Web开发中我们经常需要实现 - phpStudy...
  7. CVPR最佳作者新作!无监督学习可变形3D对象
  8. QT案例:登录对话框——主窗口
  9. 【英语学习】【Daily English】U10 Education L03 She's planning to study abroad
  10. asp.net下载文件的常用方法大全
  11. 渐变,类Flash的菜单
  12. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
  13. vs2015ef链接mysql_【转载】VS2015 + EF6连接MYSQL5.6
  14. MATLAB——DEMATEL代码(转载)
  15. 微软商店下载的python 的 pip 不能修改 config 的解决方法
  16. 工业4.0时代,企业如何提升设备管理效率?
  17. 数据降维——因子分析
  18. React-pdf:pdf预览插件实践
  19. 硬件设计--DC/DC电源芯片详解
  20. GameMaker如何导入JSON文件

热门文章

  1. Oracle Database 11.2.0.4.0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证...
  2. js 判断js,css是否引入,确保不重复引入
  3. Android Acitivity 生命周期
  4. java的不足_Java不足之我见
  5. python dataframe取某行某列_pandas dataframe.apply() 实现对某一行/列进行处理获得一个新行/新列...
  6. android屏幕密度高度,Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)...
  7. .npy文件_python如何利用numpy存取文件
  8. 站覆盖范围_你了解无线覆盖范围和穿墙能力吗?别再走进这些误区了
  9. java异常例子_java 异常的实例详解
  10. linux egg,Linux服务器部署egg,日志