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