低功耗MCU系統軟硬體設計考慮

2021-09-05 10:51:42 字數 1867 閱讀 8255

電子產品的低功耗問題經常讓產品設計者頭痛而又不得不面對。以微控制器(mcu)為核心的系統,其功耗主要由微控制器功耗和微控制器外圍電路功耗組成。要降低微控制器系統的功耗,需要從硬體和軟體兩方面入手。

硬體設計考慮因素

要滿足微控制器系統的低功耗要求,選用具有低功耗特性的微控制器可以很容易實現。因為具有低功耗特性的微控制器可以大大降低系統功耗,這可以從微控制器的供電電壓、內部結構、系統時鐘和低功耗模式等幾方面來考察一款微控制器的低功耗特性。一般來講,使用者在選擇技術**商和產品過程中,需要對下面的一些重要硬體引數進行更加深入的考量:

選擇簡單的cpu核心

選擇cpu核心時切忌一味追求效能,以「夠用就好」為原則。8位機夠用,就沒有必要選用16位機、32位機;微控制器的執行速度越快,往往其功耗也越大。乙個cpu越複雜、整合度越高、功能越強,片內電晶體越多,總漏電流也越大,即使進入stop狀態,漏電流也會變得不可忽視;而簡單的cpu核心不僅功耗低,成本也低。

選擇低電壓供電的微控制器系統

微控制器系統的供電電壓低,可以有效地降低其系統功耗。由於半導體製造工藝的發展,現在微控制器的供電電壓從5v供電降低到3.3v、3v、2v乃至1.8v。供電電壓低,不緊可以降低微控制器的功耗,還可以降低微控制器外圍電路的功耗。

選擇帶有低功耗模式的微控制器系統

低功耗模式指的是系統的idle、stop和suspend等模式。處於這些模式下的功耗將遠遠小於正常執行下的功耗。idle模式下,cpu停止工作,但內部系統時鐘並不停止,微控制器的外圍i/o模組也不停止工作;系統功耗一般降低有限,相當於工作模式功耗的50%左右。

如果在cpu進入stop模式時,將各個模擬外設關掉,這時的功耗可以降低到na級。但是在stop模式下,cpu被喚醒後要重新對系統作初始化,所有特殊功能暫存器的內容將被重新初始化。這在某些低功耗應用場合需要注意。

suspend模式下,cpu、內部系統時鐘停止工作,i/o模組等被懸掛起來,片內ram中儲存的資料將被保持,cpu的功耗可以降低到na級,由喚醒事件喚醒。當cpu被喚醒後,系統不會被cpu復位,繼續從進入suspend模式的地方開始執行程式。這是一種非常理想的低功耗模式。

在硬體層面來說,對上面的這些引數進行仔細衡量是十分必要的,除此之外,選擇合適的時鐘方案和使用每mips功耗來衡量mcu的低功耗效能也是非常關鍵的。

應用軟體考慮因素

應用軟體設計對於乙個低功耗系統的重要性常常被人們忽略。乙個重要的原因是,軟體設計上的缺陷並不像硬體那樣容易發現,同時也沒有乙個嚴格的標準來判斷乙個軟體的低功耗特性。但是設計者如果能盡量將應用的低功耗特性反映在軟體中,就可以避免那些「看不見」的功耗損失:

用「中斷」代替「查詢」

在沒有要求低功耗的場合,程式使用中斷方式還是查詢方式並不重要。但在要求低功耗場合,這兩種方式相差甚遠。使用中斷方式,cpu可以什麼都不做,甚至可以進入等待模式或停止模式;而查詢方式下,cpu必須不停地訪問i/o暫存器,這會帶來很多額外的功耗。

用「巨集」代替「子程式」

子程式呼叫的入棧出棧操作,要對ram進行兩次操作,會帶來更大的功耗。巨集在編譯時展開,cpu按順序執行指令。使用巨集,會增加程式的**量,但對不在乎程式**量大的應用,使用巨集無疑會降低系統的功耗。

儘量減少cpu的運算量

減少cpu的運算工作量,可以有效地降低cpu的功耗。減少cpu運算的工作可以從很多方面入手:用查表的方法替代實時的計算;不可避免的實時計算,算到精度夠了就結束,避免「過度」的計算;盡量使用短的資料型別,例如,盡量使用字元型的8位資料替代16位的整型資料,盡量使用分數運算而避免浮點數運算等。

讓i/o模組間歇執行

在系統執行過程中,不用的i/o模組要關掉,間歇使用的i/o模組要及時關掉,以節省電能。同時,不用的i/o引腳要設定成輸出或設定成輸入,用上拉電阻拉高。

總之,在微控制器系統設計過程中,需要深入理解微控制器低功耗的特性,並在硬體和應用軟體的設計過程中充分利用微控制器的低功耗特性,從而設計出符合低功耗要求的產品。

技術乾貨 如何實現軟硬體的低功耗設計與開發?

在產品工作過程中,為了達到更長久的續航能力,所以很多廠家都會採用低功耗模式,今天來介紹一下低功耗的一些方法。簡單來說,低功耗實現可以通過硬體選型或者軟體兩方面進行實現。一 先從硬體上來分析,有哪些元器件選型上面可以實現低功耗 1 dcdc電源部分 選用低壓降 超低功耗dc dc晶元 由於低功耗裝置往...

MCU低功耗設計(一)理論

現代的mcu一般使用cmos技術,耗能包括2方面 靜態消耗 主要是電晶體消耗能量 動態消耗 公式 c v2 f,其中c是cmos的負載電容,v是供電電壓,f是時鐘頻率 總電能消耗是靜態消耗和動態消耗之和,即 idd f idynamicrun ua mhz istatic ua 因此,電能消耗依賴於...

獲取系統軟硬體資訊

maillist有位兄弟獲取mac和硬碟序號有問題,也就可試下python下用什麼方法獲取電腦硬體資訊的方法,主要是獲取cpuid。狗了一會總算找到了乙個滿意的模組 wmi,可惜只能在win下用。lin下面再找下其它辦法吧,將就試下。先下載模組http pypi.python.org pypi wm...