友情提示,博主第一篇正式文章,在文字排版上可能有些不足之處,目前優化了電腦觀看體驗,手機端等我熟悉了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)。
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有興趣的小夥伴可在下方留言或私聊博主,共同進步!!!