当前位置: 首页 > 编程日记 > 正文

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参数,那么长周期必须配置成短周期的整数倍
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马上进入休眠期,从而达到更加省电的目的。


相关文章:

mvc mvp mvvm的区别与联系_MVC,MVP,MVVM比较以及区别(上)

MVC,MVP,MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式,以前只是对他们有部分的了解,没有深入的研究过,对于一些里边的概念和区别也是一知半解。现在一边查资料,并结合自己的理解,来谈一…

【性格心理学】为什么我在关键时刻总是紧张?

为什么我在关键时刻总是紧张? ~这是一种“对人恐惧症”,因为害怕失败~ 当在众人面前讲话时,或者公司会议中轮到自己发言时,有的人就会大汗淋漓、面红耳赤,甚至心跳不已,结结巴巴地连话都说不出来。在重大场…

iOS图片模糊效果

增加 CoreImage.framework CoreGraphic.framework 等库 在使用时引入&#xff1a;#import <Accelerate/Accelerate.h> &#xff0c;支持iOS 5.0 及以上。 -(void)show { UIImage* img [self getBlurImage:[UIImage imageNamed:"Default-568h.png"]]; [_bgIm…

YOLOv7-Pose 姿态估计-环境搭建和推理

终端,进入base环境,创建新环境,我这里创建的是p38t17(python3.8,pytorch1.7)安装pytorch:(网络环境比较差时,耗时会比较长)下载好后打开yolov7-pose源码包。imgpath:需要预测的图片的存放路径。modelpath:模型的存放路径。Yolov7-pose权重下载。打开工程后,进入设置。

分治——最近点对问题 hdu1007

问题描述 n个点在公共空间中&#xff0c;求出所有点对的欧几里得距离最小的点对。 解法1&#xff1a; 很明显的&#xff0c;暴力解决是$O(N^2)$ 解法2&#xff1a; 利用分治的思想&#xff0c;我们可以把算法优化到$O(nlogn*logn)$&#xff0c;甚至$O(nlogn)$ 我们先对所有的点…

NBIOT-NPSS/NSS/NPBCH的资源位置

1.NPSSNarrowbandPrimary Synchronization Signal时域位置每1个SFN存在一个NPSSSFNSubframeSymbol长度每个SFN5最后11个symbol11个symbols频域位置NB-IOT下行带宽固定180kHz&#xff0c;一个PRB&#xff0c;12个子载波。NPSS信号占用11个子载波2.NSSSNarrowbandSecondary Synch…

数组的排序与查找

/**对如下一个数组int[] iarr{34,67,1,56,32,78,12,45,79,4,57,102,123,3};进行排序(采用自己擅长的排序算法)&#xff0c;然后查询排序之后的采用二分查找*法查找45在在数组的索引值 &#xff0c;排序、查找封装成方法&#xff0c;然后在main方法中调用测试。*/ public class …

0基础学好python难不难_零基础学习Python难不难?Python有什么优势?

原标题&#xff1a;零基础学习Python难不难&#xff1f;Python有什么优势&#xff1f;Python是一种计算机程序设计语言。首先&#xff0c;我们普及一下编程语言的基础知识。用任何编程语言来开发程序&#xff0c;都是为了让计算机干活&#xff0c;比如下载一个MP3&#xff0c;编…

浅谈 MySQL 子查询及其优化

2019独角兽企业重金招聘Python工程师标准>>> 使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验&#xff0c;在子查询上都认为数据库已经做过优化&#xff0c;能够很好的选择驱动表执行&#xff0c;然后在把该经验移植到mysql数据库上&#xff0c;但是…

[PHP] JQuery+Layer实现添加删除自定义标签代码

JQueryLayer实现添加删除自定义标签代码 实现效果如下&#xff1a; 实现代码如下&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>实用的文章自定义标签</title> <link rel"stylesheet"…

NB-IOT: Anchor Carrier 锚点载波

Anchor Carrier定义&#xff1a; Anchor carrier:in NB-IoT, a carrier where the UE assumes that NPSS/NSSS/NPBCH/SIB-NB are transmitted. Anchor carrier用以发送NPSS/NSSS/NPBCH/SIB-NB&#xff0c; 另外寻呼消息和随机接入过程也只能在AnchorCarrier上进行。 在使用I…

mysql8 my 010457_分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!

Mysql5.6安装下载好安装包后&#xff0c;在bin目录下用cmd打开&#xff0c;输入mysqld install 【服务名】新建个服务在windowsr输入services.msc即可查看服务怎样使用mysql在本地电脑上安装好mysql服务器后&#xff0c;使用命令开启mysql服务&#xff0c;命令为net start mysq…

14年12月CCF真题1-门禁系统

问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每 位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请 问每一条记录中的读者是第几次出现。 输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 第二行包含n个整数,依次表…

[Oracle] - 性能优化工具(5) - AWRSQL

在AWR中定位到问题SQL语句后想要了解该SQL statement的详细运行计划&#xff0c;于是就用AWR报告中得到的SQL ID去V$SQL等几个动态性能视图中查询&#xff0c;但发现V$SQL或V$SQL_PLAN视图都已经找不到相应SQL ID的记录&#xff0c;一般来说这些语句已经从shared pool共享池中被…

三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序

1 public class ThreeTypesOfBaseSort {2 // 三种基本排序的效率对比 3 public static void main(String[] args) {4 ThreeTypesOfBaseSort sort new ThreeTypesOfBaseSort();5 6 // 测试百万级别的数组排序&#xff0c;看三种基本排序的的效率差…

NB-IOT UE的小区接入过程

NB-IOT UE的小区接入过程如下&#xff1a;NPSS/NSSS/NPBCH的时频资源&#xff0c;可以参考&#xff1a;点击打开链接 下面详细介绍一下MIB-NB/SIB1-NB的获取过程。 MIB-NB传输 在sharetechnote中有详细的描述&#xff0c;如下&#xff1a; MIB-NB分成8个等长的可以独立编码的子…

android用户界面之菜单(Menu)教程实例汇总

一、Menu的基本介绍1.从头学Android之Menu选项菜单 http://www.apkbus.com/android-13930-1-1.html 2.Android 界面之Menu菜单的特性 http://www.apkbus.com/android-664-1-1.html 3.Android XML中自定义菜单 http://www.apkbus.com/android-50884-1-1.html 4.Android 基础菜单…

nosql mysql mongodb_关于NoSQL之MongoDB的一些总结

NoSQL已经流行了很长一段时间&#xff0c;那么究竟是什么场景下你才更需要用到这些“新兴事物”&#xff0c;就比如MongoDB&#xff1f;下面是一些总结&#xff1a;你期望一个更高的写负载默认情况下&#xff0c;对比事务安全&#xff0c;MongoDB更关注高的插入速度。如果你需要…

下载文件乱码问题

1.下载文件乱码问题 new String("免责声明.pdf".getBytes("utf-8"), "ISO-8859-1")&#xff1b; 2.图片转blog String path request.getSession().getServletContext().getRealPath("/"); String a picturename2…

MySQL全面优化,速度飞起来

在进行MySQL的优化之前&#xff0c;必须要了解的就是MySQL的查询过程&#xff0c;很多查询优化工作实际上就是遵循一些原则&#xff0c;让MySQL的优化器能够按照预想的合理方式运行而已。 图-MySQL查询过程 一、优化的哲学 注&#xff1a;优化有风险&#xff0c;涉足需谨慎 1、…

LTE - PRACH 时频资源介绍

PRACH&#xff1a; Physical Random Access Channel. PRACH用于传输random access preamble RA-preamble Format 一共包含4种格式&#xff0c;其中format0-3 用于frametype 1(FDD), format 0-4 用于frametype 2(TDD). spec: 36.211- table5.7.1-1另外参考sharetechnote&#xf…

对面向对象基本原则的总结

&#xff08;一&#xff09;代理模式 应用场景&#xff1a;当一个类的某些功能需要由别的类来实现&#xff0c;但是又不确定具体会是哪个类实现。 优势&#xff1a;解耦合 敏捷原则&#xff1a;开放-封闭原则 实例&#xff1a;tableview的 数据源delegate&#xff0c;通过和pro…

python turtle画画 30排以内_Python竟能画这么漂亮的花,帅呆了(代码分享)

阅读本文大概需要3分钟关于函数和模块讲了这么久&#xff0c;我一直想用一个好玩有趣的小例子来总结一下&#xff0c;同时也作为实战练习一下。趣味编程其实是最好的学习途径&#xff0c;回想十几年前我刚毕业的时候&#xff0c;第一份工作就给手机上写app&#xff0c;当时觉得…

关于Windows 2003下开启防火墙后不能通过FTP问题解决

在Windows server 2003上做了个基于IIS的FTP服务。但是不久就发现一个问题&#xff0c;当系统开启防火墙后在其它机子上不能登录FTP服务器&#xff0c;但是又不想把Windows的防火墙晾起来&#xff0c;所以就尝试下突破这个限制。当时做了两步处理&#xff1a;&#xff08;1&…

【多线程】ConcurrentLinkedQueue 的实现原理

1. 引言 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式&#xff1a;一种是使用阻塞算法&#xff0c;另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁&#xff08;入队和出队用同一把锁&#xff09;或两个锁&#xf…

shell 脚本简单入门

好久不写shell脚本&#xff0c;有些生疏。总结下shell的语法&#xff0c;以便后续参考&#xff0c;快速捡起来。 shell 脚本执行的3种方式&#xff1a; 1). ./xx.sh &#xff08;xx.sh 需要有执行权限&#xff09; 2). source xx.sh 3). bash xx.sh 变量定义 var2 //注意&…

ubuntu 在线安装mysql_Ubuntu下安装MySQL5.6

我想我们不应该在安装软件上面耽误太多时间&#xff0c;但是很多时候&#xff0c;我们去被安装挡在了门外&#xff0c;尤其是初次在Linux下。作为一个程序猿&#xff0c;最近决定转战linux&#xff0c;MySQL是必须要有的&#xff0c;讲一下我的安装过程。在Ubuntu下安装MySQL有…

js循环动态绑定带参数函数遇到的问题及解决方案[转]

今天写原生javascript时&#xff0c;想利用绑定事件实现类似jquery中on方法的功能&#xff1a;于是有了for循环里绑定事件&#xff0c;无意中发现定义类能解决好多问题&#xff01; 例如&#xff1a;一个不确定长度的列表&#xff0c;在鼠标经过某一条的时候改变背景 1 2 <…

基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?...

复现过程 首先&#xff0c;我创建了一个基于Picture Library的图片文档库&#xff0c;名字是 Pic Lib 创建完毕后&#xff0c;我点击它的Upload 下拉菜单&#xff0c;点击Upload Picture按钮 在弹出的对话框中点击 Upload Multiple Files按钮 结果返回了下面的错误页面 如果查看…

vi 环境,跳转函数定义

1, 安装 sudo apt-get install exuberant-ctags 2. 生成tags ctags -R . 3. 跳转 将光标移到想要跳转的函数或变量 快捷键 " CTRL ] " 4. 回转 回到跳转之前的位置&#xff0c; 只需要通过快捷键“ CTRL T ” 其它更详细&#xff1a; https://www.cnblogs.com/ca…