由於物聯網終端採用電池供電,為了延長電池使用壽命,需要儘可能降低設備功耗,在實際中採取的方法有:
1、QoS Level設置
MQTT的設計初衷是希望能夠在不可靠的網絡中運行良好,為不同的場景提供了三個級別的服務質量。
QoS Level 0:至多一次
這是最簡單的級別,無需客戶端確認,消息發佈完全依賴底層TCP/IP網絡。分發的消息可能丟失或重複。
QoS Level 1:至少一次,有可能重複
確保至少向客戶端發送一次信息,可能重複發送;在接收數據包時,需要客戶端返回確認消息(ACK包)。
QoS Level 2:只有一次,確保消息只到達一次
確保消息發送且僅發送一次。需要交換四個數據包,會降低消息代理的性能。 在實際使用中,考慮到TCP協議本身有確認機制,為了減少重複次數以降低功耗,我們採用QoS Level 0服務質量保證。
2、PSM設置
眾所周知,3GPP在R12引入了功率節省模式,即PSM(Power Saving Mode)模式。NB-IoT有三種工作狀態,活動狀態(Active)、空閒狀態(Idle)、節能狀態(PSM)。
模塊處於活動狀態時,所有功能正常可用,可以進行數據發送和接收;模塊在此模式下可切換到Idle模式或PSM模式。設置不活動計時器,超時後進入idle空閒狀態。不活動計時器默認時間20秒,配置範圍為2秒到186分鐘。
模塊處於空閒狀態時,網絡保持連接狀態,可接收尋呼消息;模塊在此模式下可切換至Active模式或者PSM模式。此狀態引入了eDRX機制,一個完整的idle過程包括若干eDRX週期,該週期可通過定時器配置。激活定時器T3324的配置時間為2秒到186分鐘。超時後進入節能狀態。
模塊處於節能狀態時,終端關閉收發信號機,處於休眠狀態,不監聽無線側尋呼,無法接收下行數據,此時只有RTC在工作,功率大幅減少,但依然註冊在網絡。當DTE(Data Terminal Equipment)主動發送數據或者定時器T3412(與週期性更新相關)超時後,模塊將被喚醒。T3412配置週期為54分鐘到310小時。
針對不同的終端選擇合適的TAU配置。例如煙感設置TAU為24小時,消防水箱監測TAU設置為4小時。 根據不同行業業務對終端工作模式的不同要求,中國移動提供了七種不同的預設節電模式,以支持快速完成NB-IoT業務的開發及上線。
3、心跳時間設置
對於電池供電來說,心跳包是非常耗電的,每次發送心跳包一般都要耗時幾秒鐘,而且發射信號時需要加大功率,所以關閉終端設備的通信模塊是非常必要的,維持RTC運行即可,定時或者在有信息需要發送時再喚醒,發送連接信息,連接服務器上傳消息結束後,再關閉通信模塊進入休眠狀態。不過在休眠模式下,服務器是無法找到終端設備的,只能待終端喚醒。例如對於煙感、電器火災感知終端等,可以設置每24小時發送心跳包,保證在網註冊,然後進入休眠狀態,但如果遇到火災報警則立即喚醒,發送報警信息。