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)??梢詤⒖枷旅鎑rx-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
- 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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 100【求进】
- 下一篇: 王爷的傲娇妻作者是谁啊?