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窗口才能接收尋呼。


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


三種模式區別

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

PSM

PSM喚醒

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

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有興趣的小夥伴可在下方留言或私聊博主,共同進步!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章