本文介绍了LTE中关于RRC_CONNECTED态下的UE的DRX处理流程。主要结合3GPP协议,介绍了几个timer的作用。同时简单介绍了载波聚合对DRX的影响。 一、DRX介绍
基于包的数据流通常是突发性的,在没有数据传输的时候,可以通过关闭UE的接收电路来降低功耗,从而提升电池使用时间。这就是DRX(Discontinuous Reception,不连续接收)的由来。
DRX的基本机制是为处于RRC_CONNECTED态的UE配置一个DRX cycle。DRX cycle由“On Duration”和“Opportunity for DRX”组成:在“On Duration”的时间内,UE监听并接收PDCCH(激活期);在“Opportunity for DRX”时间内,UE不接收下行信道的数据以节省功耗(休眠期)。
从下图可以看出,在时域上,时间被划分成一个个连续的DRX Cycle。
图一:DRX cycle
drxStartOffset指定DRX cycle的起始子帧,longDRX-Cycle指定了一个long DRX cycle占多少个子帧,这两个参数都是由longDRX-CycleStartOffset字段确定的。onDurationTimer指定了从DRX cycle的起始子帧算起,需要监听PDCCH的连续子帧数(即激活期持续的子帧数)。
在大多数情况下,当一个UE在某个子帧被调度并接收或发送数据后,很可能在接下来的几个子帧内继续被调度,如果要等到下一个DRX cycle再来接收或发送这些数据将会带来额外的延迟。为了降低这类延迟,UE在被调度后,会持续位于激活期,即会在配置的激活期内持续监听PDCCH。其实现机制是:每当UE被调度以初传数据时,就会启动(或重启)一个定时器drx-InactivityTimer,UE将一直位于激活态直到该定时器超时。drx-InactivityTimer指定了当UE成功解码一个指示初传的UL或DL用户数据的PDCCH后,持续位于激活态的连续子帧数。即每当UE有初传数据被调度,该定时器就重启一次。(注意:这里是初传而不是重传)
为了允许UE在HARQ RTT期间内休眠,每个DL HARQ process定义了一个“HARQ RTT(Round Trip Time) timer”。当某个下行HARQ process的TB解码失败时,UE可以假定至少在“HARQ RTT”子帧后才会有重传,因此当HARQ RTT timer正在运行时,UE没必要监听PDCCH。当HARQ RTT timer超时,且对应HARQ process接收到的数据没有被成功解码时,UE会为该HARQ process启动一个drx-RetransmissionTimer。当该timer运行时,UE会监听用于HARQ重传的PDCCH。drx-RetransmissionTimer的长度与eNodeB调度器的灵活度要求相关。如果
是要达到最优的电池消耗,就要求eNodeB在HARQ RTT timer超时之后,立即调度HARQ重传,这就也要求eNodeB为此预留无线资源,此时drx-RetransmissionTimer也就可以配得短些。drx-RetransmissionTimer指定了从UE期待收到DL重传的子帧(HARQ RTT之后)开始,连续监听PDCCH的最大子帧数。
DXR cycle的选择包含了电池节约和延迟之间的平衡。从一个方面讲,长DRX周期有益于延长UE的电池使用时间;例如网页浏览,当用户在阅读已经下载好的网页时,如果此时UE持续接收下行数据则是浪费资源。从另一个方面讲,当有新的数据传输时,一个更短的DRX周期有利于更快的响应;例如用户请求另一个网页或者VoIP。为了满足上述需求,每个UE可以配置两个DRX cycle:shortDRX-Cycle和longDRX-Cycle。
图二:DRX流程
当UE在“On Duration”期间收到一个调度消息时,UE会启动一个“drx-InactivityTimer”并在该timer运行期间的每一个子帧监听PDCCH。当“drx-InactivityTimer”运行期间收到一个调度信息时,UE会重启该Timer。(对应上图标红为(2)的部分)
当“drx-InactivityTimer”超时或收到DRX Command MAC control element时:1)如果UE没有配置short DRX cycle,则直接使用long DRX cycle;2)如果UE配置了short DRX cycle,UE会使用short DRX cycle并启动(或重启)“drxShortCycleTimer”,当“drxShortCycleTimer”超时,UE使用long DRX cycle。(对应图中标红为(3)的部分)
如果UE当前使用short DRX cycle,且[(SFN * 10) + subframe number] modulo (shortDRX - Cycle) = (drxStartOffset) modulo (shortDRX-Cycle);或者当UE当前使用long DRX cycle,且[(SFN * 10) + subframe number] modu lo (longDRX-Cycle) = drxStartOffset,启动“onDurationTimer”。(对应上图标红为(1)的部分)
总结一下如何控制处于RRC_CONNECTED的UE进入DRX模式: ? UE侧:UE基于定时器的超时来进入DRX态; ? eNodeB侧:eNodeB通过DRX Command MAC control element来通知UE进入DRX态;
总结一下当配置了DRX cycle,UE处于激活期的时间(有些并没有在前面介绍): ? onDurationTimer或InactivityTimer或drx-RetransmissionTimer或mac-ContentionResolutionTimer正在运行时;
? UE有在PUCCH上发送的挂起的SR时;
? UE的HARQ buffer存在数据,并等待用于HARQ重传的UL grant时; ? UE成功接收用于响应非UE选择的preamble的RAR,却没有收到指示初传(使用C-RNTI)的PDCCH时。
关于DRX的详细处理流程:见36.321的5.7节
DRX是UE级别的特性,而不是基于每个无线承载来配置的。
当UE配置了DRX时, UE只能在“激活期”的时间内发送周期性CQI。eNodeB在使用RRC来配置周期性CQI上报时,可以进一步地限制UE只能在“on-duration”的时间内发送CQI。
图三结合36.213的5.7节总结了关于各种DRX相关的timer启动和停止的触发条件。 Timer Start(Restart) 当前使用Long DRX Cycle且[(SFN * 10) + subframe number] modu lo (longDRX-Cycle) = drxStartOffset。 Stop (1)收到DRX Command MAC control element;(2)timer超时 onDurationTimer drx-InactivityTimer 收到用于调度new (1)收到Command MAC transmission的PDCCH(DL和DRX UL的均可) control element;(2)timer超时 HARQ RTT Timer超时且对应HARQ process的buffer中的数据没有成功解码 (1)收到指示下行传输的PDCCH;(2)timer超时 drx-RetransmissionTimer drxShortCycleTimer 当配置了Short DRX cycle时,Timer超时,此时开始使用如果drx-InactivityTimer超Long DRX cycle 时,或收到DRX Command MAC control element,则启动或重启drxShortCycleTimer,并开始使用Short DRX cycle UE收到一个指示下行传输的PDCCH Timer超时 HARQ RTT timer 图三:与DRX相关timer的启动和停止
除了HARQ RTT timer和drx-RetransmissionTimer是每个DL HARQ process都有一个外,其它的timer是每个UE只有一个。
从图三可以看出,当任一timer启动时,不会影响其它timer的运行。也即,UE处于激活态的最短时间为onDurationTimer指定的时间,而最长时间是不定的。
二、载波聚合(Carrier Aggregation,CA)对DRX的影响
如果配置了一个或多个SCell,则所有的serving cells使用相同的DRX操作:
? 对于所有的DL 载波单元(component carrier)而言,PDCCH 监测的激活时间是相同的;
? 当UE处于休眠期时,所有的载波单元都不接收数据;
? 当UE被激活时,所有activated的载波单元都将被激活以接收数据。
虽然DRX降低了UE的功耗,但CA可能进一步提高功耗,因此,LTE提供了载波单元的activation/deactivation机制。(详见我的博客中关于CA的介绍)