NB-IOT系列專題1:低功耗能力


   友情提示,博主第一篇正式文章,在文字排版上可能有些不足之處,目前優化了電腦觀看體驗,手機端等我熟悉了Markdown語法會再次優化!!!

緩存


   本文主要介紹靈龍芯NB-IOT通信模組的低功耗能力,下文中涉及到的知識除AT指令外,基本通用於任何NB模組。

服務器


介紹


  NB-IoT 支持三種省電模式:PSM (Power Saving Mode,省電模式)、DRX(Discontinuous Reception,不連續接收模式),eDRX(Extended DRX,擴展不連續接收模式)。
  NB 中採用了 PSM(power saving mode)和 eDRX(extended Discontinuous Reception)來節省功耗。在 PSM 模式下,終端無需接收 paging 以檢測是否有下行服務,而 eDRX 模式相對於 DRX,具備更長的尋呼檢測週期,所以可能致使更長的時間延時,對於數據的實時性有影響。
  PSM 和 eDRX 是否使用取決於終端和網絡的能力及配置,在能力方面,終端不支持的能力網絡必不會配置,而終端支持的能力在網絡不一樣狀況下,配置亦能夠不一樣。







網絡

關於PSM


  PSM技術在3GPP R12中引入的一種獨立的狀態,支持PSM的UE終端在空閒態持續一段時間後,會進入到PSM狀態;此時UE終端的PA(射頻部分)中止工做,終端AS(接入層)中止部分相關功能,以減小射頻、信令處理等部分功耗消耗,從而達到低功耗的目的。
  因爲UE終端射頻部分中止工做,接收不到任何尋呼及調度,對於網絡側來講,UE終端此時處於不可達的狀態,數據、短信均沒法到達終端。但此時,終端在網絡中仍是標記爲註冊狀態(Registered);所以,從PSM喚醒後,無需從新創建PDN鏈接,能夠直接發送數據。



測試


  上圖的綠色部分即爲UE的PSM狀態,能夠看到UE在IDLE態持續一段時間後,若是沒有再次進入Active態,就會直接進入PSM狀態,這段等待時間即爲T3324定時器時長。
  經過上圖還能夠看出,一個完整的TAU週期爲IDLE+PSM時間之和,一個TAU週期的時長定義爲T3412定時器時長。
  T3412爲TAU(Tracking Area Update)時間,而T3324爲在IDLE模式下進入PSM的定時器。
  在某些特定APN下,UE能夠經過3GPP協議規定的標準指令AT+CPSMS對T3412及T3324定時器進行修改。








優化

關於eDRX


  eDRX即加強型非連續接收,是3GPP R13中引入的一種狀態,在此以前已經有DRX技術存在。經過字面意思便可知道,eDRX是對DRX技術的一種擴展。
  eDRX是DRX的加強,支持更長的尋呼週期,減小接收單元沒必要要的啓動,以達到節省功耗的目的。PTW(Paging Time Window)窗口期是eDRX的一個狀態,在PTW窗口內能夠接收尋呼,一旦PTW窗口過去,設備就進入eDRX,而且直到下一個週期性的PTW窗口才能接收尋呼。



spa


  上圖粉紅色部分即爲IDLE時間窗,灰色柱狀即爲尋呼時間窗,在尋呼時間窗內,終端會監聽網絡側下發的尋呼消息,並做出響應。
  爲了進一步下降監聽尋呼帶來的功耗,NB-IoT引入了eDRX技術,在一次PTW後,進入沉默狀態,等待eDRX週期完畢後再次進入PTW監聽尋呼。
  經過這種技術,終端在IDLE下間歇性監聽尋呼,下降了功耗;能夠看到當尋呼落在PTW時間窗以外時,終端依舊不能響應尋呼,須要等待網絡側緩存的尋呼再次下發落到PTW時間窗內,便可成功響應。







pwa

三種模式區別

  DRX:可以隨時隨地找到設備。
  eDRX:須要花幾分鐘甚至一兩個小時才能找到設備。
  PSM:可能要一兩天才能找到設備。




3d

PSM

PSM喚醒

  PSM喚醒條件
   - T3412定時器超時
   - WakeUp引腳拉低

blog

PSM相關指令

AT指令 功能描述
AT+CPSMS PSM參數設置
AT+ECPMUCFG PMU單元使能(必要)
AT+ECPCFG=「sleepWaitTime」, time 喚醒UE後,模組保活時間,單位ms(time)
AT+ECPSMR PSM狀態URC
部分發送數據的AT指令 大部分發送數據的AT指令都攜帶RAI Flag,在發送數據時,可攜帶此flag,用以釋放RRC以快速進入PSM

  *在Socket、OneNET_LWM2M、CTWing_LWM2M等協議與平臺數據交互的指令中均帶有RAI Flag標誌
  *若需使用PSM,則必須設置AT+ECPMUCFG使能PMU與模組喚醒後的保活時間。
教程

  這裏再也不對AT指令詳細說明,有意者可聯繫做者索取(肝不動了畫表格)。。。
  (主要是對上述幾個AT指令的詳細說明)。





PSM特性

  AT+CPSMS指令能夠用來設置PSM的相關參數,其中Requested_Periodic-RAU和Requested_GPRS-READY-timer無需設置,Requested_Periodic-TAU表明3412定時器,Requested_Active-Time表明3324定時器。都是以8位二進制數來表示,其中高三位爲Unit,低五位爲value,換算方法以下:

   Requested_Periodic-RAU
Unit 基數 可表示的最小值 可表示的最大值
0 10min 2400 18600
1 1h 21600 11160
2 10h 14400 1116000
3 2sec 2 62
4 30sec 90 930
5 1min 690 1860
6 320h 1150000 35712000

  *例:00111000計算方法以下
  Unit=1(001), value=24(11000),時間即爲24h(1*24)。

   Requested_Active-Time
Unit 基數 可表示的最小值 可表示的最大值
0 2sec 2 62
1 1min 120 1860
2 6min 2160 11160

說明

1. 當模組退出PSM模式後,若是沒有其餘指令操做,模組會在計時AT+ECPCFG=「slpWaitTime」,time設置的time時間後再次進入PSM。此過程能夠被AT能夠被AT指令打斷,每次敲擊AT會重新計時time時間,計時結束後,若無其餘不可進入PSM的狀態,則模組從新進入PSM模式。

2. 目前T3324和T3412實際值爲運營商下發的值,使用AT+CPSMS命令手動配置的T3324和T3412參數可能沒法在實際狀況中生效。

3. 只經過AT+CPSMS指令開啓PSM可依進入PSM模式,但可能沒法真正下降功耗,必須經過AT+ECPMUCFG指定PMU等級,根據不一樣的PMU等級其進入PSM的功耗也不一樣。

4. 開啓PSM後,建議經過AT+ECPCFG=「slpWaitTime」,time來設置模組喚醒後的保活時間,不然可能會發生喚醒模組後來不及發送數據再次進入PSM的狀況。

5. 在設置PMU等級時,高於SLEEP1(含)的睡眠深度僅支持Pad Wakeup,若將模組Pad Wakeup與串口相連,則須要發送兩次AT指令,第一次爲喚醒模組,第二次爲真正可發出的數據(也可不斷的發送AT,等待模組返回OK,繼而發送業務數據)。



eDRX

eDRX簡介

eDRX模式

  eDRX模式做爲Rel-13中新增的功能,主要目的是支持更長週期的尋呼監聽,從而達到省電的目的。傳統的2.56s尋呼時間間隔對UE的電量消耗過大,而下行數據發送頻率較小時,經過核心網和用戶的協商配合,用戶終端跳過大部分的尋呼監聽,從而達到省電的目擊。
  eDRX模式的節電效果比PSM模式要差一點,可是相對於PSM模式,大幅提高了下行通訊鏈路的可達性。
  eDRX週期如上圖所示,用戶可經過查閱相關AT指令(AT+CEDRXS)進行eDRX週期設置。



PTW

  在每一個eDRX週期內,都有一個尋呼時間窗口(Paging Time Window,PTW),UE只能在PTW內按照DRX週期監聽尋呼信道,以便接收下行業務,PTW外的時間處於睡眠狀態,不監聽尋呼信道,不能接收下行業務。

eDRX配置相關指令

  以下命令能夠設置不一樣的 eDRX 參數,以實現不一樣應用場景下的多樣應用需求。
AT指令 功能描述
AT+CEDRXS eDRX參數設置
AT+CEDRXRDP 讀取動態eDRX參數
AT+ECPTWEDRXS PTW和eDRX參數設置
AT+ECPMUCFG PMU單元使能(必要)
AT+ECPCFG=「sleepWaitTime」, time 喚醒UE後,模組保活時間,單位ms(time)

  這裏再也不對AT指令詳細說明,有意者可聯繫做者索取(肝不動了畫表格)。。。
  (主要是對上述幾個AT指令的詳細說明)。




應用示例

PSM模式

開啓/關閉PSM模式
AT指令 指令響應 事件描述
AT+ECPSMR=1 OK 開啓PSM事件上報
AT+ECPMUCFG=1,4 OK 使能PMU爲Hibernate等級
AT+ECPCFG=「sleepWaitTime」,5000 OK 設置UE喚醒保活時間爲5s
AT+CEREG=4 OK
AT+CEREG? +CEREG: 4,1,「4644」,「046AC853」,9,「00000001」,
「00111000」

OK


AT+CPSMS=1,「00111000」,
「00100001」
OK

+CEREG: 4,1,「3a59」,「0a14ff60」,9,「00011110」,「00111000」

+ECPSMR: 1



開啓PSM模式,並設置T3412_ext和T3324定時器
AT+CEREG=0 OK
AT+ECPMUCFG=0 OK 失能PMU
AT+CPSMS=0 OK

+ECPSMR: 0

關閉PSM
PSM和UDP測試示例
AT指令 指令響應 事件描述
AT+ECPSMR=1 OK 開啓PSM事件上報
AT+ECPMUCFG=1,4 OK 使能PMU爲Hibernate等級
AT+ECPCFG=「sleepWaitTime」,5000 OK 設置UE喚醒保活時間爲5s
AT+CPSMS=1,「00111000」,
「00100001」
OK 開啓PSM模式,並設置T3412_ext和T3324定時器
AT+SKTCREATE=1,2,17 +SKTCREATE: 1

OK

建立Socket
AT+SKTCONNECT=1,「ip」,port OK 綁定UDP服務器
AT+SKTSEND=1,6,303132333435 OK 發送數據到UDP服務器
+SKTRECV: 1,3 「313233」 從UDP服務器接收數據
+ECPSMR: 1 若是數據傳輸完畢,UE將自動進行PSM模式
PSM和UDP測試示例(RAI Flag)
AT指令 指令響應 事件描述
AT+ECPSMR=1 OK 開啓PSM事件上報
AT+ECPMUCFG=1,4 OK 使能PMU爲Hibernate等級
AT+ECPCFG=「sleepWaitTime」,5000 OK 設置UE喚醒保活時間爲5s
AT+CPSMS=1,「00111000」,
「00100001」
OK 開啓PSM模式,並設置T3412_ext和T3324定時器
AT+SKTCREATE=1,2,17 +SKTCREATE: 1

OK

建立Socket
AT+SKTCONNECT=1,「ip」,port OK 綁定UDP服務器
(17:31:19.532)

AT+SKTSEND=1,6,303132333435,1

OK


(17:31:23.816)

+ECPSMR: 1




發送數據到UDP服務器

若是數據傳輸完畢,UE將自動進入PSM模式

能夠看出,攜帶RAI Flag後UE能夠很是快速
的進入PSM模式




eDRX模式

  使能eDRX模式時,需打開PMU電源管理單元及sleepwaitTime,下面再也不敘述。

開啓eDRX模式
AT指令 指令響應 事件描述
AT+COPS? +COPS: 0,2,「46000」,9

OK

查詢網絡信息,運營商及網絡制式
AT+CEDRXS=? +CEDRX: (0,1,2,3),(5),(「0010」-「1111」)

OK

查詢eDRX參數範圍
AT+CEDRXS=1,5 OK 開啓eDRX模式,配置自動保存
AT+CEDRXRDP +CEDRXRDP: 5,「0010」,「0010」,「0011」

OK

若是eDRX支持:
第一個0010爲UE請求的eDRX週期
第二個0010爲網絡下發的eDRX週期
第三個0011爲網絡下發的PTW週期


AT+CEDRXRDP +CEDRXRDP:0

OK

若是不支持eDRX模式,返回0
設置eDRX週期爲指定值
AT指令 指令響應 事件描述
AT+CEDRXS=1,5,「0011」 OK 開啓eDRX模式,eDRX週期爲40.96s
AT+CEDRXRDP +CEDRXRDP: 5,「0011」,「0011」,「0011」

OK

若是eDRX支持:
第一個0010爲UE請求的eDRX週期
第二個0010爲網絡下發的eDRX週期
第三個0011爲網絡下發的PTW週期


設置eDRX週期爲20.48s,PTW爲10.24s
AT指令 指令響應 事件描述
AT+ECPTWEDRXS=1,5,0011,0010 OK
AT+CEDRXRDP +CEDRXRDP: 5,「0010」,「0010」,「0011」

OK

若是eDRX支持:
第一個0010爲UE請求的eDRX週期
第二個0010爲網絡下發的eDRX週期
第三個0011爲網絡下發的PTW週期


關閉eDRX模式
AT指令 指令響應 事件描述
AT+CEDRXS=0 OK 關閉eDRX模式
AT+CEDRXRDP CEDRXRDP: 0

OK

關閉eDRX模式

結語

  首次更新的內容很少,算是練手吧!後面會逐步更新出模組與雲平臺通訊方面的教程,順帶也會加入平臺側操做。對NB-IOT有興趣的小夥伴可在下方留言或私聊博主,共同進步!!!

相關文章
相關標籤/搜索