電子產(chǎn)品的低功耗問題經(jīng)常讓產(chǎn)品設計者頭痛而又不得不面對,。以單片機(MCU)為核心的系統(tǒng),,其功耗主要由單片機功耗和單片機外圍電路功耗組成,。要降低單片機系統(tǒng)的功耗,,需要從硬件和軟件兩方面入手,。
硬件設計考慮因素
要滿足單片機系統(tǒng)的低功耗要求,選用具有低功耗特性的單片機可以很容易實現(xiàn)(例如,,Silicon laboratories設計的高速C8051F系列單片機),。因為具有低功耗特性的單片機可以大大降低系統(tǒng)功耗,,這可以從單片機的供電電壓、內(nèi)部結(jié)構,、系統(tǒng)時鐘和低功耗模式等幾方面來考察一款單片機的低功耗特性,。一般來講,用戶在選擇技術供應商和產(chǎn)品過程中,,需要對下面的一些重要硬件參數(shù)進行更加深入的考量:
選擇簡單的CPU內(nèi)核
選擇CPU內(nèi)核時切忌一味追求性能,,以“夠用就好”為原則。8位機夠用,,就沒有必要選用16位機,、32位機;單片機的運行速度越快,,往往其功耗也越大,。一個CPU越復雜、集成度越高,、功能越強,,片內(nèi)晶體管越多,總漏電流也越大,,即使進入STOP狀態(tài),,漏電流也會變得不可忽視;而簡單的CPU內(nèi)核不僅功耗低,,成本也低,。
選擇低電壓供電的單片機系統(tǒng)
單片機系統(tǒng)的供電
電壓低,可以有效地降低其系統(tǒng)功耗,。由于半導體制造工藝的發(fā)展,,現(xiàn)在單片機的供電電壓從5V供電降低到3.3 V、3 V,、2 V乃至1.8 V,。供電電壓低,不緊可以降低單片機的功耗,,還可以降低單片機外圍電路的功耗,。
選擇帶有低功耗模式的單片機系統(tǒng)
低功耗模式指的是系統(tǒng)的Idle、Stop和Suspend等模式,。處于這些模式下的功耗將遠遠小于正常運行下的功耗,。Idle模式下,CPU停止工作,,但內(nèi)部系統(tǒng)時鐘并不停止,,單片機的外圍I/O模塊也不停止工作;系統(tǒng)功耗一般降低有限,,相當于工作模式功耗的50%左右,。
如果在CPU進入Stop模式時,,將各個模擬外設關掉,這時的功耗可以降低到nA級,。但是在Stop模式下,, CPU被喚醒后要重新對系統(tǒng)作初始化,所有特殊功能寄存器的內(nèi)容將被重新初始化,。這在某些低功耗應用場合需要注意,。
Suspend模式下,CPU,、內(nèi)部系統(tǒng)時鐘停止工作,,I/O模塊等被懸掛起來,片內(nèi)RAM中存儲的數(shù)據(jù)將被保持,,CPU的功耗可以降低到nA級,,由喚醒事件喚醒。當CPU被喚醒后,,系統(tǒng)不會被CPU復位,,繼續(xù)從進入Suspend模式的地方開始執(zhí)行程序。這是一種非常理想的低功耗模式,。
在硬件層面來說,對上面的這些參數(shù)進行仔細衡量是十分必要的,,除此之外,,選擇合適的時鐘方案和使用每MIPS功耗來衡量MCU的低功耗性能也是非常關鍵的。
應用軟件考慮因素
應用軟件設計對于一個低功耗系統(tǒng)的重要性常常被人們忽略,。一個重要的原因是,,軟件設計上的缺陷并不像硬件那樣容易發(fā)現(xiàn),同時也沒有一個嚴格的標準來判斷一個軟件的低功耗特性,。但是設計者如果能盡量將應用的低功耗特性反映在軟件中,,就可以避免那些“看不見”的功耗損失:
用“中斷”代替“查詢”
在沒有要求低功耗的場合,程序使用中斷方式還是查詢方式并不重要,。但在要求低功耗場合,,這兩種方式相差甚遠。使用中斷方式,,CPU可以什么都不做,,甚至可以進入等待模式或停止模式;而查詢方式下,,CPU必須不停地訪問I/O寄存器,,這會帶來很多額外的功耗。
用“宏”代替“子程序”
子程序調(diào)用的入棧出棧操作,,要對RAM進行兩次操作,,會帶來更大的功耗,。宏在編譯時展開,CPU按順序執(zhí)行指令,。使用宏,,會增加程序的代碼量,但對不在乎程序代碼量大的應用,,使用宏無疑會降低系統(tǒng)的功耗,。
盡量減少CPU的運算量
減少CPU的運算工作量,可以有效地降低CPU的功耗,。減少CPU運算的工作可以從很多方面入手:用查表的方法替代實時的計算,;不可避免的實時計算,算到精度夠了就結(jié)束,,避免“過度”的計算,;盡量使用短的數(shù)據(jù)類型,例如,,盡量使用字符型的8位數(shù)據(jù)替代16位的整型數(shù)據(jù),,盡量使用分數(shù)運算而避免浮點數(shù)運算等。
讓I/O模塊間歇運行
在系統(tǒng)運行過程中,,不用的I/O模塊要關掉,,間歇使用的I/O模塊要及時關掉,以節(jié)省電能,。同時,,不用的I/O引腳要設置成輸出或設置成輸入,用上拉電阻拉高,。
總之,,在單片機系統(tǒng)設計過程中,需要深入理解單片機低功耗的特性,,并在硬件和應用軟件的設計過程中充分利用單片機的低功耗特性,,從而設計出符合低功耗要求的產(chǎn)品。