導(dǎo)語:在嵌入式系統(tǒng)中,低功耗設(shè)計(jì)是在產(chǎn)品規(guī)劃以及設(shè)計(jì)過程中必須要面對的問題。半導(dǎo)體芯片每18個月性能翻倍。但同時,電池的技術(shù)卻跟不上半導(dǎo)體的步伐,同體積的電池10年容量才能翻一倍。嵌入式系統(tǒng)對于使用時間以及待機(jī)時間的要求也越來越高,這就需要在設(shè)計(jì)產(chǎn)品的時候充分考慮到整個系統(tǒng)的低功耗設(shè)計(jì)。功耗控制是一個系統(tǒng)的工程,需要從低功耗的器件選型、硬件的低功耗設(shè)計(jì)與制造技術(shù)、軟件的低功耗優(yōu)化等多個方面來統(tǒng)籌考慮。作者就在潤欣科技工作期間服務(wù)過的項(xiàng)目,總結(jié)從以上多個角度來闡述嵌入式系統(tǒng)中低功耗設(shè)計(jì)要點(diǎn)。
一、低功耗器件選型:
隨著半導(dǎo)體工藝的不斷發(fā)展,半導(dǎo)體的制造工藝也在不斷進(jìn)步,選用先進(jìn)工藝以及低功耗設(shè)計(jì)的元器件可以從源頭上降低整個系統(tǒng)的功耗。
1)主控芯片的選型要充分考慮到系統(tǒng)的使用場景,對于那些運(yùn)算任務(wù)比較多的應(yīng)用場景下,可以選用能耗比高的芯片來設(shè)計(jì),比如像ambiq的Apollo系列芯片,該芯片采用具有專利的SPOT技術(shù),芯片在亞閾值穩(wěn)定運(yùn)行,可減少能源消耗近13倍,實(shí)現(xiàn)極致的低功耗技術(shù)。
圖1 各廠家芯片ULPBench 1.0 Score
2)對于嵌入式系統(tǒng),電源芯片對于低功耗設(shè)計(jì)是一個很重要的器件。電源芯片自身的功耗以及轉(zhuǎn)換效率在很大程度影響電池的使用時間。進(jìn)行低功耗的穩(wěn)壓電路設(shè)計(jì),需采用低功耗的LDO或者DCDC芯片,如TI的TPS797系列,自身功耗僅1.2uA。
3)在滿足功能需求的情況下,盡量選用帶觸發(fā)輸出功能外部器件而非需要輪詢的外部器件,這樣可以減少MCU的運(yùn)行時間,平時MCU可以一直處于睡眠狀態(tài)下,在滿足觸發(fā)條件時有外部器件通過中斷喚醒MCU工作。
二、硬件的低功耗設(shè)計(jì)與制造技術(shù):
硬件設(shè)計(jì)對于嵌入式系統(tǒng)的功耗也有著至關(guān)重要的因素。
1)對外圍元器件的電源控制,采用帶關(guān)斷功能的器件,對于那些進(jìn)入低功耗模式下不需要工作的外設(shè),可以使用MOS管電路配合MCU控制對局部的電路進(jìn)行電源管理。在該設(shè)備不需要工作時,盡量關(guān)斷該部分電源,以達(dá)到更低的功耗。
2)多級電壓設(shè)計(jì),電壓和功耗有著密切的聯(lián)系。因此功耗的降低可以考慮對于不同的電路模塊,使用不同的電壓等級,可以采用DVFS動態(tài)電壓頻率技術(shù),通過將不同電路模塊的工作電壓及工作頻率降低到恰好滿足系統(tǒng)最低要求,來實(shí)時降低系統(tǒng)中不同電路模塊功耗的方法。
3)硬件設(shè)計(jì)對于MCU的每個IO口都要避免IO口漏電流。當(dāng)外設(shè)掉電時,IO口仍然會有潛在的電源輸出,所以IO口需要默認(rèn)配置成低電平或者高電平狀態(tài),避免漏電流。
三、軟件對于系統(tǒng)功耗的優(yōu)化
軟件對功耗的優(yōu)化涉及到多個層次和方面。
1)適當(dāng)?shù)慕档?a target="_blank">CPU的運(yùn)行頻率,降低MCU的運(yùn)行速度,可以有效的降低運(yùn)行時需要消耗的電流,芯片的功耗和主頻是線性的關(guān)系,更高的時鐘頻率意味著更快的MCU運(yùn)行速度,那么MCU內(nèi)部CMOS電路就更快的開關(guān)頻率,導(dǎo)致更高的運(yùn)行電流和待機(jī)電流。
2)合理的使用MCU的待機(jī)模式,在當(dāng)前沒有任務(wù)需要處理時,將MCU進(jìn)入到低功耗的睡眠模式。對于使用嵌入式操作系統(tǒng)的嵌入式產(chǎn)品,一般都是在idle空閑任務(wù)中進(jìn)入睡眠模式,但是為了進(jìn)一步降低功耗,實(shí)現(xiàn)低功耗最優(yōu)設(shè)計(jì),我們還不能直接把睡眠或者停機(jī)模式直接放在空閑任務(wù)就可以了,需要設(shè)計(jì)一種更先進(jìn)的休眠機(jī)制,比如在freertos操作系統(tǒng)中使用tickless 低功耗機(jī)制,進(jìn)入空閑任務(wù)后,首先要計(jì)算可以執(zhí)行低功耗的最大時間,也就是求出下一個要執(zhí)行的高優(yōu)先級任務(wù)還剩多少時間。 然后就是把低功耗的喚醒時間設(shè)置為這個求出的時間,到時間后系統(tǒng)會從低功耗模式被喚醒,繼續(xù)執(zhí)行多任務(wù)。
3)關(guān)注每一個GPIO口電平狀態(tài),在進(jìn)入睡眠之前配置所有的GPIO口到高電平或者低電平以降低漏電流。對于外掛的傳感器以及外圍設(shè)備,也需要在進(jìn)入睡眠之前配置其功耗模式以降低消耗的電流。
4)合理關(guān)閉MCU內(nèi)部模塊,對于在Deep Sleep模式下不需要工作的內(nèi)部模塊都要關(guān)閉時鐘以及電源以節(jié)省功耗,同時要重點(diǎn)關(guān)注模擬IO口,模擬功能一般是耗電大戶,在AD/DA功能不使用的時候盡快關(guān)閉,減小使用模擬功能的時間。此外,芯片內(nèi)部SRAM由于需要不停的刷新,在睡眠模式下也需要消耗一定的電流,可以配置部分SRAM在睡眠模式下保持刷新降低功耗。
5)對于包含有無線功能的芯片,配置合理的待機(jī)參數(shù)以降低功耗。如比對于BLE芯片CSR1010,在進(jìn)行BLE的廣播模式下,60ms的廣播間隔的待機(jī)電流時394μA,如果將廣播時間增大到1.28S,則待機(jī)電流降低到28μA。對于wifi芯片,比如高通QCA4004芯片,在DTIM1情況下對應(yīng)功耗是1.5mA,在DTIM10情況下則降低到334μA。
嵌入式系統(tǒng)低功耗需要綜合考慮各種可能的因素、條件和狀態(tài),需要對各種細(xì)節(jié)進(jìn)行認(rèn)真的斟酌和分析,需要對各種可能的方案和方法進(jìn)行計(jì)算和分析,盡最大的努力優(yōu)化整個系統(tǒng)的功耗,達(dá)到最節(jié)省電能的目的。
-
低功耗設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
80瀏覽量
16146 -
嵌入式系統(tǒng)設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
12瀏覽量
8487
發(fā)布評論請先 登錄
相關(guān)推薦
評論