《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計應(yīng)用 > 系統(tǒng)詳解Silabs MCU低功耗優(yōu)勢及經(jīng)典案例
系統(tǒng)詳解Silabs MCU低功耗優(yōu)勢及經(jīng)典案例
摘要: 本文將從以下三個方面來談SilabsMCU低功耗優(yōu)勢及其實現(xiàn)方法,。
Abstract:
Key words :

引言

 

  現(xiàn)在的電子產(chǎn)品,,對低功耗的要求越來越高。產(chǎn)品功耗的問題是經(jīng)常讓產(chǎn)品設(shè)計者頭痛而又不得不面對的一個問題,。以單片機(jī)為核心的系統(tǒng),,其功耗主要由單片機(jī)功耗和單片機(jī)外圍電路功耗組成。

 

  要降低單片機(jī)系統(tǒng)的功耗,,需要從硬件和軟件兩方面入手,。美國SiliconLaboratories公司(Silabs)設(shè)計的高速C8051F系列單片機(jī)是一種高度集成的SoC型芯片,兼容傳統(tǒng)的8051單片機(jī)內(nèi)核和指令系統(tǒng),,但其各方面的性能都遠(yuǎn)遠(yuǎn)超越了傳統(tǒng)的8051單片機(jī),。C8051F系列單片機(jī)中增加的外設(shè)或功能部件有:模擬多路選擇器、可編程增益放大器,、ADC,、DAC、電壓比較器,、電壓基準(zhǔn),、溫度傳感器、SMBus(I2C),、增強(qiáng)型UART,、SPI、可編程計數(shù)/定時器陣列(PCA),、電源監(jiān)視器,、看門狗定時器(WDT)和時鐘振蕩器等。另外還有片上的FLASH程序存儲器和RAM,。特別是在低功耗設(shè)計方面,,提供了多種低功耗模式供用戶選擇,方便客戶設(shè)計出不同低功耗要求的產(chǎn)品,。

 

  本文將從以下三個方面來談SilabsMCU低功耗優(yōu)勢及其實現(xiàn)方法:

 

  如何設(shè)計低功耗單片機(jī)系統(tǒng),;

  SilabsMCU在低功耗方面的優(yōu)勢;

  SilabsMCU低功耗實現(xiàn)方法,。

 

  如何設(shè)計低功耗單片機(jī)系統(tǒng)

 

  低功耗單片機(jī)系統(tǒng)設(shè)計,,需要從硬件設(shè)計和應(yīng)用軟件設(shè)計兩方面入手。

 

  硬件設(shè)計

 

  要滿足單片機(jī)系統(tǒng)的低功耗要求,,選用具有低功耗特性的單片機(jī)可以很容易實現(xiàn),。因為具有低功耗特性的單片機(jī)可以大大降低系統(tǒng)功耗,這可以從單片機(jī)的供電電壓,、內(nèi)部結(jié)構(gòu),、系統(tǒng)時鐘和低功耗模式等幾方面來考察一款單片機(jī)的低功耗特性。

 

  選擇簡單的CPU內(nèi)核

 

  選擇CPU內(nèi)核時切忌一味追求性能,,以“夠用就好”為原則,。8位機(jī)夠用,就沒有必要選用16位機(jī),、32位機(jī),;單片機(jī)的運(yùn)行速度越快,往往其功耗也越大,。一個CPU越復(fù)雜,、集成度越高、功能越強(qiáng),,片內(nèi)晶體管越多,,總漏電流也越大,即使進(jìn)入STOP狀態(tài),,漏電流也會變得不可忽視,;而簡單的CPU內(nèi)核不僅功耗低,成本也低,。

 

  選擇低電壓供電的單片機(jī)系統(tǒng)

 

  單片機(jī)系統(tǒng)的供電電壓低,,可以有效的降低其系統(tǒng)功耗。由于半導(dǎo)體制造工藝的發(fā)展,,現(xiàn)在單片機(jī)的供電電壓從5V供電降低到3.3V,、3V、2V乃至1.8V。供電電壓低,,不緊可以降低單片機(jī)的功耗,,還可以降低單片機(jī)外圍電路的功耗。

 

  選擇帶有低功耗模式的單片機(jī)系統(tǒng)

 

  低功耗模式指的是系統(tǒng)的Idle,、Stop和Suspend等模式,。處于這些模式下的功耗將遠(yuǎn)遠(yuǎn)小于正常運(yùn)行下的功耗。

 

  Idle模式下,,CPU停止工作,,但內(nèi)部系統(tǒng)時鐘并不停止,單片機(jī)的外圍I/O模塊也不停止工作,;系統(tǒng)功耗一般降低有限,,相當(dāng)于工作模式功耗的50%左右。

 

   Stop模式下,,CPU和內(nèi)部系統(tǒng)時鐘停止工作,,所有的數(shù)字外設(shè)也自動停止工作,內(nèi)部RAM的信息以最小功耗被保持,,CPU消耗電流可降到μA級,,由外 部或內(nèi)部的復(fù)位使系統(tǒng)退出Stop模式,進(jìn)而喚醒CPU繼續(xù)工作,。如果在CPU進(jìn)入Stop模式時,,將各個模擬外設(shè)關(guān)掉,這時的功耗可以降低到nA級,。但 是在Stop模式下,,CPU被喚醒后要重新對系統(tǒng)作初始化,所有特殊功能寄存器的內(nèi)容將被重新初始化,。這在某些低功耗應(yīng)用場合需要注意,。

 

   Suspend模式下,CPU,、內(nèi)部系統(tǒng)時鐘停止工作,,I/O模塊等被懸掛起來,片內(nèi)RAM中存儲的數(shù)據(jù)將被保持,,CPU的功耗可以降低到nA級,,由喚 醒事件喚醒。當(dāng)CPU被喚醒后,,系統(tǒng)不會被CPU復(fù)位,,繼續(xù)從進(jìn)入Suspend模式的地方開始執(zhí)行程序。這是一種非常理想的低功耗模式,。

 

  選擇合適的時鐘方案

 

  時鐘的選擇對于系統(tǒng)的功耗相當(dāng)敏感,,需要注意三方面的問題:

 

  A)系統(tǒng)總線頻率應(yīng)當(dāng)盡量低

 

  單片機(jī)內(nèi)部的總電流消耗可分為運(yùn)行電流和漏電流兩部份。單片機(jī)集成度越高,環(huán)境溫度越高,,漏電流也越大,。在單片機(jī)運(yùn)行時,開關(guān)電 路不斷地由“1”變“0”,、由“0”變“1”,,內(nèi)部電容不停地充放電,這些都是單片機(jī)運(yùn)行時電流的主要來源,。要實現(xiàn)開關(guān)電路快速關(guān)斷和電容的快速充放電, 需要比較大的電流,。運(yùn)行電流幾乎是和單片機(jī)的時鐘頻率成正比的,,因此盡量降低系統(tǒng)時鐘的運(yùn)行頻率可以有效地降低系統(tǒng)功耗。

 

B)選擇適合低功耗的單時鐘方案

 

  單片機(jī)時鐘是使用鎖相環(huán),、外部振蕩器,,還是內(nèi)部振蕩器,這與單片機(jī)的功耗有很大關(guān)系?,F(xiàn)代單片機(jī)普遍采用鎖相環(huán)技術(shù),,允許用戶在片外使用頻率較低的振蕩器,通過程序控制,,系統(tǒng)時鐘可以在一個很寬的范圍內(nèi)調(diào)整,,總線頻率往往能升得很高,但是會帶來額外的功率消耗,。僅僅就時鐘方案來講,,使用外部振蕩器且不使用鎖相環(huán)是功率消耗最小的一種。

 

  C)選擇適合低功耗的雙時鐘方案

 

  有些場合的應(yīng)用比較復(fù)雜,,對MCU的速度要求也很高,。盡管采用新的半導(dǎo)體工藝,但MCU速度越高,,一般來說功耗也越大,。因此很多高速M(fèi)CU提供了雙時鐘系統(tǒng),并允許MCU在運(yùn)行中實時快速的進(jìn)行時鐘切換,,以達(dá)到降低功耗的目的,。

 

  SilabsMCU帶有內(nèi)部高速振蕩器,又可以使用外部振蕩器,,并且可以在CPU運(yùn)行中實時高速地進(jìn)行內(nèi),、外振蕩器切換。這對于間歇工作的系統(tǒng)是一種非常好的低功耗方式,。當(dāng)要處理數(shù)據(jù)時,,使用內(nèi)部高速振蕩器;當(dāng)CPU空閑時,切換到外部低速振蕩器,,以降低功耗,。

 

  使用每MIPS功耗來衡量MCU的低功耗性能是相對比較準(zhǔn)確

 

  盡管我們強(qiáng)調(diào)要降低單片機(jī)系統(tǒng)的功耗,必須盡量降低單片機(jī)的系統(tǒng)時鐘,。但使用每MIPS功耗來衡量MCU的功耗與之并不矛盾,。這是相對的,要具體問題具體分析,。

 

  例如,,執(zhí)行一個需要10K條指令的任務(wù),甲MCU的工作電流為3mA,,速度為10MIPS,,則甲MCU需要工作1mS完成該任務(wù),消耗3mA×1ms×Vcc,,然后甲MCU就可以進(jìn)入低功耗模式了,。

 

  而乙MCU的工作電流為1mA,速度為2MIPS,,則乙MCU需要工作5ms完成,,這樣乙MCU完成該任務(wù)的消耗為1mA×5ms×Vcc。

 

  從上面的例子我們可以得出結(jié)論:電流大但速度快的MCU可能更省電,。

 

  應(yīng)用軟件設(shè)計

 

  應(yīng)用軟件設(shè)計對于一個低功耗系統(tǒng)的重要性常常被人們忽略,。一個重要的原因是,軟件設(shè)計上的缺陷并不像硬件那樣容易發(fā)現(xiàn),,同時也沒有一個嚴(yán)格的標(biāo)準(zhǔn)來判斷一個軟件的低功耗特性,。但是設(shè)計者如果能盡量將應(yīng)用的低功耗特性反映在軟件中,就可以避免那些“看不見”的功耗損失,。

 

  用“中斷”代替“查詢”

 

  在沒有要求低功耗的場合,,程序使用中斷方式還是查詢方式并不重要。但在要求低功耗場合,,這兩種方式相差甚遠(yuǎn),。使用中斷方式,CPU可以什么都不做,,甚至可以進(jìn)入等待模式或停止模式,;而查詢方式下,CPU必須不停地訪問I/O寄存器,,這會帶來很多額外的功耗,。

 

  用“宏”代替“子程序”

 

  子程序調(diào)用的入棧出棧操作,要對RAM進(jìn)行兩次操作,,會帶來更大的功耗,。宏在編譯時展開,,CPU按順序執(zhí)行指令。使用宏,,會增加程序的代碼量,,但對不在乎程序代碼量大的應(yīng)用,使用宏無疑會降低系統(tǒng)的功耗,。

 

  盡量減少CPU的運(yùn)算量

 

  減少CPU的運(yùn)算工作量,,可以有效地降低CPU的功耗。減少CPU運(yùn)算的工作可以從很多方面入手:

  A)用查表的方法替代實時的計算,;

  B)不可避免的實時計算,,算到精度夠了就結(jié)束,避免“過度”的計算,;

  C)盡量使用短的數(shù)據(jù)類型,,例如,盡量使用字符型的8位數(shù)據(jù)替代16位的整型數(shù)據(jù),,盡量使用分?jǐn)?shù)運(yùn)算而避免浮點數(shù)運(yùn)算等。

 

  讓I/O模塊間歇運(yùn)行

 

  A)不用的I/O模塊要關(guān)掉,,間歇使用的I/O模塊要及時關(guān)掉,,以節(jié)省電能。

  B)不用的I/O引腳要設(shè)置成輸出或設(shè)置成輸入,,用上拉電阻拉高,。

  總之,在單片機(jī)系統(tǒng)設(shè)計過程中,,深入理解單片機(jī)低功耗的特性,,并在硬件和應(yīng)用軟件的設(shè)計過程中充分利用單片機(jī)的低功耗特性,來設(shè)計出符合低功耗要求的產(chǎn)品,。

 

  SilabsMCU在低功耗方面的優(yōu)勢

 

   Silabs的C8051F系列單片機(jī)是從傳統(tǒng)的8051單片機(jī)衍生出來的一種新型高速單片機(jī),。它屬于CISC指令系統(tǒng),但由于采用“流水線”結(jié)構(gòu)方式 處理指令,,70%的指令的執(zhí)行時間為1個或2個系統(tǒng)時鐘,,指令執(zhí)行的峰值速度為MIPS級別。雖然它的運(yùn)行速度很高,,但是在低功耗設(shè)計方面具有獨(dú)特的優(yōu) 勢,。這主要體現(xiàn)在:

 

供電電壓范圍寬

 

  SilabsMCU的供電電壓范圍為2~5.25V。

 

  寬的供電電壓范圍不僅為單片機(jī)系統(tǒng)設(shè)計帶來方便,,而且低的供電電壓可以有效地降低整個單片機(jī)系統(tǒng)的功耗,。

 

  有多種低功耗模式

 

   SilabsMCU有Idle、Stop和Suspend三種低功耗模式,。各種模式下片上資源狀態(tài),、功耗及喚醒的情況如表1所示,。在Stop和 Suspend模式下,MCU的功耗可以降低到nA級,。在Suspend模式下,,有多種喚醒源,當(dāng)被喚醒時(非復(fù)位源喚醒),,CPU不會對系統(tǒng)復(fù)位,。在 Stop模式下,SilabsMCU有豐富的復(fù)位源使CPU被喚醒,,如圖1所示,。

 

  有多種時鐘方案供選擇

 

   SilabsMCU都設(shè)計有兩套時鐘方案供選擇。用戶可以根據(jù)實際需要選擇內(nèi)部振蕩器或外部振蕩器,,或者同時選擇內(nèi),、外振蕩器。內(nèi)部振蕩器可以通過相關(guān) 寄存器設(shè)置來選擇不同的頻率,。其頻率范圍為:80KHz~100MHz,。更為重要的是在MCU運(yùn)行中,可以實時高速地進(jìn)行內(nèi),、外時鐘切換,。時鐘切換速度 快,切換產(chǎn)生的功耗小,。這種特性,,對于間歇工作的單片機(jī)系統(tǒng)低功耗設(shè)計,特別有幫助,。

 

  靈活的I/O設(shè)計

 

  SilabsMCU的I/O口資源豐富,,配置靈活。有三種配置方式:漏極開路,、推挽輸出和弱上拉方式,。用戶可以根據(jù)實際需要通過相關(guān)寄存器的設(shè)置來禁止或使能這些方式。其中將端口配置成漏極開路方式是最省電的方式,。

 

  高速實時的中斷響應(yīng)

 

  SilabsMCU響應(yīng)中斷的時間非??欤话阒恍枰?個系統(tǒng)時鐘周期,。中斷響應(yīng)速度快,,CPU花費(fèi)在等待方面的時間少,這可以節(jié)省不少的等待功耗,。

 

  運(yùn)算速度快,,處理數(shù)據(jù)能力強(qiáng)

 

   雖然Silabs的C8051F系列單片機(jī)屬于CISC指令系統(tǒng),但由于它采用了“流水線”結(jié)構(gòu)方式處理指令,,70%的指令的執(zhí)行時間為1個或2個系統(tǒng) 時鐘,,突破了傳統(tǒng)的8051單片機(jī)運(yùn)行效率低的弱點,,特別是它執(zhí)行乘法指令只要4個系統(tǒng)時鐘,執(zhí)行除法指令只要8個系統(tǒng)時鐘,。與那些RISC指令系統(tǒng)的單 片機(jī)和那些速度低的CISC單片機(jī)相比,,這不僅僅帶來了數(shù)據(jù)運(yùn)算的高效率,同時也極大地降低了系統(tǒng)的功耗,。因此,,使用每MIPS功耗來衡量Silabs的 C8051F系列單片機(jī)的功耗,無論是處理一般事件,,還是做數(shù)據(jù)運(yùn)算,,它都是非常低的,具有明顯的優(yōu)勢,。圖2是和其他MCU做除法運(yùn)算的速度對比,。從對比 中我們可以看出SilabsMCU具有高速處理數(shù)據(jù)能力的同時也帶來了更低的功耗。

 

  總之,,深入理解SilabsMCU低功耗的特性,,根據(jù)實際情況,靈活運(yùn)用,,就可以設(shè)計出滿足要求的低功耗產(chǎn)品,。

 

  SilabsMCU低功耗實現(xiàn)方法

 

   這里舉一個運(yùn)動裝置的應(yīng)用,采用3V電池供電,,間歇工作,要求平均功耗不大于200mA,。使用SilabsMCUC8051F333成功地實現(xiàn)了低功耗 的應(yīng)用,。選擇雙時鐘系統(tǒng),即處理數(shù)據(jù)時使用內(nèi)部高速振蕩器25MHz,,空閑時使用外部晶振32.768KHz(如圖3所示),,并進(jìn)入Idle模式。

 

  沒有使用到的片上模擬和數(shù)字外設(shè)全部關(guān)閉,,沒有用到的I/O全部設(shè)置成漏極開路方式,。

 

  下面我們分析一下在不同情況下,CPU的功耗情況,。

 

  在溫度-40℃~85℃范圍內(nèi),,工作電壓3V,系統(tǒng)時鐘25MHz的情況下,,CPU的功耗典型值是7.8mA,。其電氣特性參數(shù)表如表2所示。

 

  我們還可以大概估算出在不同頻率下CPU的功耗,。當(dāng)F>15MHz時,,可以用下面的公式來估算:

  IDD=IDD1-(F1-F)×IDD2(1)

  其中IDD1是在不同電壓,、最高頻率下正常工作時的最小功耗,F(xiàn)1是最高工作頻率,,IDD2是F>15MHz,,不同電壓下的IDD頻率敏感度。例如,,VDD=3.0V,;F=20MHz時,根據(jù)圖2可以算出:

 

  IDD=7.8mA-(25MHz-20MHz)×0.21mA/MHz=6.75mA

  當(dāng)F≤15MHz時,,CPU的功耗可以用下面的公式來估算:

  IDD=F÷1MHz×IDD2(2)

 

  例如,,VDD=3.0V;F=32.768KHz時,,根據(jù)圖2可以算出:

 

 IDD=32.768KHz÷1MHz×0.38mA/MHz=12.45184mA

 

  在溫度-40℃~85℃范圍內(nèi),,工作電壓3V,系統(tǒng)時鐘32.768KHz的情況下,,CPU的功耗可以通過Idle模式下的電氣特性參數(shù)來計算,。Idle模式下的電氣特性參數(shù)表如表3所示。

 

  根據(jù)公式(2),,Idle模式下的功耗為:

 

  IDD=32.768KHz÷1MHz×0.20mA/MHz=6.5536mA

 

  從上面的分析我們可以看出,,使用外部低頻振蕩器,并進(jìn)入Idle模式,,CPU的功耗可以降的很低,。如果能用上Stop模式,功耗可以降低到0.1mA以下,。在模擬該運(yùn)動裝置真實使用環(huán)境的條件下,,經(jīng)過使用儀器測試,平均功耗降低到了150mA以下,。該產(chǎn)品目前已經(jīng)批量上市了,。

 

  結(jié)語

 

  C8051F系列單片機(jī)封裝小,高集成度,,低功耗特性好,。只要根據(jù)項目的實際情況,認(rèn)真細(xì)致地分析產(chǎn)品的低功耗要求,,靈活應(yīng)用SilabsMCU的低功耗特性,,從硬件和應(yīng)用軟件兩方面入手,就可以設(shè)計出滿足不同要求的低功耗產(chǎn)品,。

 

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。