?# 一、太長不看:
給4G模組VBAT斷電關機,模組關機前未能及時退出當前基站,會有什么影響呢?
基站會誤以為設備還在線,下次開機仍會拿著上次駐網信息去連基站。基站一看,上次鏈接還在——認為你是非法設備,拒絕鏈接!
二、詳細問題原因分析:
最近一兩年,時常有客戶朋友反饋,無論是[合宙低功耗4G模組]還是其他友商的模組——模塊重啟完成,注冊不上網。
在這里詳細記錄下復現問題的過程、問題產生的原因以及規避方法,并提供一些比重啟更好的辦法,希望能幫到類似情況的朋友們。
以下是常見的4種關機重啟情況:
1. - 功耗原因關機重啟 -
客戶反饋:
自己對功耗特別看重,需要極低的功耗,所以關機。在需要啟動的時候,再給模塊上電。
FAE解答:
在大多數人的認知里,只要關機肯定是比待機更省電的,實則不然。
比如大多數人家里的電視盒子:
當你按下遙控器的關機按鍵,其實只是切斷了輸出,你認為的關機狀態,和電視盒子的開機狀態,實際功耗區別并不是很大。
對4G模組來說,主要的耗電大頭在于——剛開機駐網那一下,以及發送數據時候。
下圖為使用[Air9000P功耗分析儀]測試Air780E,從開機開始的一小時,每隔一分鐘往服務器發送一條消息的全段截圖,可以明顯看出耗電的大頭。
所以,如果你的應用不會出現頻繁發數據(低于一小時一次)給服務器,那么是可以通過關機來降低功耗的。
但是這種降低功耗的手段,還不是最優解。如果你一天發送數據多于4次,那么還有一種****更好的方法來降低功耗 ——那就是用合宙的低功耗解決方案。
詳見合宙4G超低功耗解決方案:
www.airpsm.cn
2- 網絡原因關機重啟 -
客戶反饋:
我們的設備處于網絡狀態不太好的地方,在遇到網絡不好的時候,我就重啟自己設備,重新讓模塊駐網。
FAE解答:
模塊駐網邏輯與掉線重連邏輯,是模塊內部SDK自行處理的,掉網會給上層發送斷網消息,用戶只需要訂閱對應消息即可。
重新駐網的邏輯其實模組內部也是有的,大多數情況下,不需要應用層做斷網處理。如果用戶對消息的及時性和準確性有要求,可以將模塊與服務器的心跳間隔設置短一點。
AT版本:
設置心跳內容和心跳間隔的指令為:
AT^HEARTBEAT和AT^HEARTCONFIG
具體參數可以查看AT手冊:
https://doc.openluat.com/article/4985
LuatOS版本:
可以查看socket.config接口,MQTT可以查看mqttc:keepalive接口。
具體接口描述參見:
https://wiki.luatos.com/api/index.html
3. - 續費原因關機重啟 -
客戶反饋:
有時候會因為自己續費不及時,導致SIM卡到期未續費,被停機,所以自己代碼中做了處理,連不上網XX秒就斷電再上電。
FAE解答:
其實可以先嘗試進出一次飛行模式,沒必要斷電。
如果你很頻繁的斷電再上電,電源部分PCB設計如果有不完善的地方,很有可能出現超過VBAT最大電壓的脈沖,進而可能導致模塊損壞。
而且,模塊內部SDK其實針對SIM卡未及時續費這種情況也做了一些處理。即使你什么都不做, 到期兩三天內續費成功,模塊也會在10-30分鐘內注冊上網絡, 不用擔心模塊連不上網的問題。
4. - 服務器原因關機重啟 -
客戶反饋:
我們連的是客戶服務器,客戶服務器不穩定,時而能連時而不能連,所以在服務器連不上后,我們會斷電重啟模塊,嘗試看看能不能連上。
FAE解答:
模塊駐網(連接4G基站)沒什么問題,只是鏈接服務器失敗, 可以做一些重連處理, 而不是頻繁的去斷電在上電。
如果以一個很頻繁的速度(一分鐘10次這種速度)去駐網,很有可能被基站認為是非法用戶,導致基站內部防護策略生效,讓模塊再也連不上基站。
在這里可以推薦一種重連策略:
如果駐網正常,只是鏈接服務器異常,可以按照2^(n-1)S 的時間間隔去重連服務器。
例如:1S 2S 4S 16S 32S 64S…
當然,需要一個最大上限時間,例如10分鐘。 沒有最大上限的話,可能導致服務器已經好了,而模塊重連間隔時間過長,導致數據不能及時送達。
如果超出最大上限時間,服務器依舊連不上,再進出飛行模塊幾次(進出飛行模式的速度也不應過快,過快也有可能被基站認為是非法用戶)。
如果依舊注冊不上網絡,再考慮給模塊斷電,然后重啟模塊。
綜上所示,其實大多數情況,沒必要給模塊進行關機措施。
頻繁的開關機,還有可能導致模塊功耗異常或者注冊基站都注冊不上等問題。
如果需要進行關機:
建議還是關機前先進飛行模式,主動和當前基站進行一個注銷的操作。
?審核編輯 黃宇
-
分析儀
+關注
關注
0文章
1478瀏覽量
52016 -
基站
+關注
關注
17文章
1389瀏覽量
66729
發布評論請先 登錄
相關推薦
評論