(一)嵌入式低功耗設備介紹
在物聯網(IoT)領域,設備可以使用以太網和無線網進行網絡連接。
以太網: 網絡穩定,帶寬高,延遲低,但是以太網需要拉網布線,設備安裝鄰活便利性能差。
無線網絡:安裝位置靈活,便利,但是網絡信號容易受到干擾,帶寬和速度有限。
常見的低功耗WiFi設備有:可可視門鈴,可視貓眼,智能門鎖等設備。
他們的特點是:設備依賴鋰電池供電,電池容量一般較低,對設備功耗非常敏感。
正常工作的時候,設備是處于休眠保活的低功耗狀態,它可以通過兩種方式喚醒設備:
通過IoT平臺遠程網絡喚醒設備,IoT平臺退出后,設備又進入到休眠?;顮顟B
設備自身事件觸發設備喚醒(PIR,防拆,按鍵等觸發),事件處理完后,設備重新進入休眠
通過上面介紹,我們可以知道該類設備主要的功耗消耗在于兩個方面:
設備最長時間是處于休眠保活狀態,設備休眠?;罟恼急雀?/strong>
設備事件喚醒正常工作時,一般需要進行圖像等處理,消耗的功耗大
最理想的功耗控制方案是:設備休眠?;顣r的功耗非常低,設備事件觸發正常工作的頻率非常低,每次喚醒工作的時間非常短。
(二)低功耗?;罴夹g分析
低功耗?;罴夹g,實際上也就是低功耗設備在休眠的時候,設備端與IoT平臺保持一個網絡上的連接,這樣做有兩個目的:
IoT平臺可以知道設備的在線狀態,并且可以遠程網絡喚醒設備
設備端的WiFi模塊是處于低功耗休眠狀態,如果有事件喚醒,可以很快就建立起新的網絡連接。
為了降低設備端的功耗,設備端一般是設置60秒或是更加長的時間周期往IoT平臺發送一個心跳包,以保持設備在線狀態。
如果IoT平臺超時沒有收到設備端的心跳,會判定設備已經離線。
設備正常?;罟娜缦聢D:
(三)實際問題分析
對于上面介紹的這類通過WiFi進行休眠保活的設備,在實際應用中會出現各種問題,比如:
同一個設備,連接不同的路由器,其休眠?;畹墓臅嬖诤艽蟮牟町?/strong>
同一設備,連接同一路由器,在不同環境的不同時間,功耗也會存在差異
同時生產的同一批設備,在國內沒問題,在國外使用就會出現只能用幾天的問題
為什么會出現這些差異?其根本原因是什么?又可以通過什么方式進行規避呢?
1.同一設備,連接不同路由器功耗會有差異
這里主要是跟路由器的beacon有關系,beacon是路由器定期廣播的一種管理幀,它攜帶了關鍵的網絡信息,比如SSID,Rates,DSPS等信息。下面是使用抓包工具抓的一個beacon幀信息
路由器一般是100ms廣播一次,同樣的,設備端的WiFi模塊也會以相同的周期去接收路由器的beacon,這里有兩個目的:
接收路由器的beacon包,以檢查是否有IoT網絡喚醒請求
通過路由器beacon包進行時間同步
那為什么設備連接不同的路由器,設備端休眠保活的功耗會不一樣呢?主要原因是:路由器的beacon包規律性存在差異
路由器本身的定時器不準,100ms的定時存在偏差,導致設備端WiFi長時間的等待接收beacon包
路由器負載高的時候,可能優先進行數據傳輸,導致beacon包延后發送,這個時候設備端的WiFi處于等待狀態,會比休眠的時候功耗高
2.同一設備,連接同一個路由器功耗也會有差異
同一個設備,連接到同一個路由器功耗會存在差異,主要原因有:
路由器同信道有無線干擾
路由器與設備距離遠
路由器與設備中間有障礙物阻擋
距離與障礙物遮擋,這類問題還是比較容易被發現,但無線干擾這個就比較難定位,無線干擾主要是指同頻段的電磁波干擾。
因為有干擾源的存在,路由器發出的beacon廣播包,設備端可能會接收不到,所以設備端會超時接收,導致功耗變大。
如何查看環境的干擾情況呢?
使用頻譜儀搜索環境信號
使用WiFi魔盒查看WiFi干擾情況(只能看出大概情況)
使用無線抓包工具,查看丟包情況
下圖是使用抓包工具去抓路由器?beacon?廣播包的情況,FAST_EA06?是路由器名
通過分析抓取到的beacon包,可以知道功耗偏高問題,是當前環境干擾引起的,還是設備端自身的問題。
3.其它問題
其它的一些問題,比如:同時生產的一批設備,在國內沒問題,在國外使用就會出現只能用幾天的問題,或者是連接到某些路由器時就會出現電量消耗很快的情況。
這類問題的原因可能會比較多,主要是跟路由器的設置有關系,比如路由器的租期時間長短,路由器ARP緩存表更新策略等
這里分析一下路由器ARP緩存表更新引起的功耗變大的問題
路由器和主機都會維護一個ARP緩存表,目的是為了解析IP地址與MAC地址之間的關系。
如果設備剛連接上設備,路由器ARP緩存表上沒有該設備IP和MAC地址信息,那么路由器會廣播,“誰擁有這個IP地址對應的MAC地址?”,該IP的設備收到該廣播后,正常應該將自己的MAC地址告知路由器。
如果設備端沒有應答該路由器的ARP請求,或者是說該應答機制有問題,那么,有些路由器有可能會斷開該IP的所有連接,導致的結果就是設備端與IoT的?;钸B接被斷開
如果?;铈溌繁粩嚅_了,那么設備端需要被喚醒,重新建立?;钸B接,這樣一來,設備端的功耗就會變得很高。
如果一直沒有ARP應答,那么設備可能間隔一小段時間,就會被喚醒去重新建立網絡。最終的結果就是設備使用幾天就沒電了。
(四)如何優化?;罟?/strong>
要優化嵌入式WiFi?;罟模饕姆绞接校?/p>
選擇干擾較少的無線頻段
避免物理障礙以及縮短路由器與設備間的距離
增強路由器與設備端的信號強度
控制路由器的負載,使其beacon包按規律穩定發送
功耗控制是一個綜合性問題,與設備結構,硬件,軟件都有關系。在電池技術沒有突破性進展的前提下,要想做到超時長續航,在產品功能上勢必需要做一些取舍。
編輯:黃飛
?
評論
查看更多