最近在調(diào)試一款I(lǐng)OT類的通信產(chǎn)品的續(xù)航功能,類似與GPS跟蹤器產(chǎn)品。產(chǎn)品要求需要正常工作持續(xù)半年時(shí)間,但是目前只能維持4個(gè)月左右,這個(gè)續(xù)航的問題搞的我們焦頭爛額。
先簡(jiǎn)單介紹一下本產(chǎn)品的工作方式,產(chǎn)品每隔一段時(shí)間采集傳感器數(shù)據(jù)以及GPS等定位數(shù)據(jù)后,通過4G Cat1網(wǎng)絡(luò)發(fā)送到目標(biāo)服務(wù)器,而后進(jìn)入休眠定時(shí),在下一個(gè)上報(bào)周期喚醒上報(bào)。但是由于需要有時(shí)間觸發(fā)的應(yīng)用,所以設(shè)備需要在睡眠的同時(shí)每隔10s喚醒一次進(jìn)行傳感器的數(shù)據(jù)采集判斷。
因?yàn)閷?shí)際情況下,網(wǎng)絡(luò)環(huán)境的差異性,所以在設(shè)備上報(bào)時(shí)的功耗基本上不太好明顯優(yōu)化。所以基本上優(yōu)化休眠時(shí)期的功耗。剛開始在開發(fā)時(shí)使用高精度的直流電源來測(cè)試,但是由于只能看到實(shí)時(shí)的電流值,所以不好判斷休眠下的整體電流運(yùn)行情況,從而不好確定優(yōu)化點(diǎn),瞎折騰了還幾天都沒有發(fā)現(xiàn)優(yōu)化點(diǎn)。幸運(yùn)的是,我有一個(gè)華為的同學(xué)向我推薦了一款他們正在用的精度和性價(jià)比較高的電流分析儀器mPower1203,我向領(lǐng)導(dǎo)申請(qǐng)了款項(xiàng)進(jìn)行采購(gòu),關(guān)鍵是領(lǐng)導(dǎo)也對(duì)項(xiàng)目問題比較糾結(jié),經(jīng)過兩天的功耗相關(guān)儀器調(diào)研后也同意采購(gòu)這款儀器。
對(duì)這個(gè)功耗分析儀的相關(guān)情況我就不做介紹了(除非這個(gè)設(shè)備原廠給我點(diǎn)好處,哈哈)。經(jīng)過半天的測(cè)試分析,完全從電流波形上分析出了功耗優(yōu)化的方向,不說別的,直接上測(cè)試圖分析。



圖1,2,3所示,功耗優(yōu)化前,休眠時(shí)期的平均電流為225uA,設(shè)備中的主控會(huì)每隔10s喚醒采集一次傳感器數(shù)據(jù),其中10s之間(從電流波形峰的間隔上測(cè)量大概也是10s)的低電流為56uA左右。我們查閱了一下主控芯片的功耗數(shù)據(jù),主控休眠時(shí)的功耗在40uA,加上外圍的傳感器器件以及GPS定位模塊的熱啟動(dòng)backup供電(大約10uA左右),所以56uA的底部電流是合理值。
可以發(fā)現(xiàn),225uA平均電流與56uA底部電流相差還是很大的,所以電流的優(yōu)化方向應(yīng)該在每一次MCU喚醒的峰值上。

圖4所示,測(cè)量一下MCU每隔10s喚醒的峰值,持續(xù)時(shí)間為189ms,平均的電流為8.688mA。這塊的功耗的確挺大的。
通過對(duì)MCU喚醒過程中的分析,發(fā)現(xiàn)兩個(gè)地方影響了功耗。第一個(gè)地方就是讀傳感器數(shù)據(jù)等待時(shí)間有點(diǎn)長(zhǎng),這一點(diǎn)可以微微做了些優(yōu)化。第二個(gè)地方就是輸出log,這也是很多人容易忽略的地方,串口打印log會(huì)占用時(shí)間,但是有些log 是必須要有的,所以我們關(guān)閉了一些不必要的log。
經(jīng)過再次使用mPower1203儀器的波形測(cè)量分析,我們可以得到圖5,6,7所示的電流分析圖。此時(shí),休眠時(shí)期的平均電流被優(yōu)化到了66.8uA,與之前的225uA相比提升非常的大。而底部電流依舊保持在56uA左右。峰值電流也被優(yōu)化,主要是持續(xù)時(shí)間被優(yōu)化到8.5ms,大大的降低了整體的休眠功耗。



最后也為自己的測(cè)試總結(jié)一下,提煉幾個(gè)要點(diǎn):
1. 低功耗的調(diào)試需要多多關(guān)注個(gè)使用器件的規(guī)格書功耗參數(shù)
2. 盡可能使用專業(yè)的電流分析設(shè)備進(jìn)行排查優(yōu)化,會(huì)有事半功倍的效果
3. 需要注意log對(duì)設(shè)備功耗的影響