嵌入式微控制器 (MCU)的功耗在當(dāng)今電池供電應(yīng)用中正變得越來越舉足輕重。大多 MCU 芯片廠商都提供低功耗產(chǎn)品,,但是選擇一款最適合您自己應(yīng)用的產(chǎn)品并非易事,,并不像對比數(shù)據(jù)表前面的數(shù)據(jù)那么簡單。我們必須詳細對比 MCU 功能,,以便找到功耗最低的產(chǎn)品,,這些功能包括:
- 斷電模式
- 定時系統(tǒng)
- 事件驅(qū)動功能
- 片上外設(shè)
- 掉電檢測與保護
- 漏電流
- 處理效率
圖 1
----在使 MCU 能夠達到電流預(yù)算的所有功能中,,斷電模式最重要。低功耗 MCU 具有可提供不同級別功能的斷電模式,。例如,,TI 超低功耗 MCU MSP430 系列產(chǎn)品可以提供 5 種斷電模式。低功耗模式 0 (LPM0) 會關(guān)閉 CPU,,但是保持其他功能正常運轉(zhuǎn),。LPM1 與 LPM2 模式在禁用功能列表中增加了各種時鐘功能。LPM3 是最常用的低功耗模式,,只保持低頻率時鐘振蕩器以及采用該時鐘的外設(shè)運行,。LPM3 通常稱為實時時鐘模式,因為它允許定時器采用低功耗 32768Hz 時鐘源運行,,電流消耗低于 1uA,,同時還可定期激活系統(tǒng)。最后,,LPM4 完全關(guān)閉器件上的包括 RAM 存儲在內(nèi)的所有功能,,電流消耗僅 100 毫微安,。
----時鐘系統(tǒng)是MCU功耗的關(guān)鍵,。應(yīng)用可以每秒多次或幾百次進入與退出各種低功耗模式。進入或退出低功耗模式以及快速處理數(shù)據(jù)的功能極為重要,,因為 CPU會在等待時鐘穩(wěn)定下來期間浪費電流,。大多低功耗 MCU 都具有"即時啟動"時鐘,其可以在不到 10~20us 時間內(nèi)為 CPU 準備就緒,。但是,,重要的是要明白哪些時鐘是即時啟動、哪些非即時啟動的,。某些 MCU 具有雙級時鐘激活功能,,該功能在高頻時鐘穩(wěn)定化過程中提供一個低頻時鐘(通常為32768Hz),其可以達到 1 毫秒,。CPU 在大約 15us 時間內(nèi)正常運行,,但是運行頻率較低,效率也較低,。如果 CPU 只需要執(zhí)行數(shù)量較少的指令的話,,如:25 條,其需要 763us,。CPU 低頻比高頻時消耗更少的電流,,但是并不足于彌補處理時間的差異,。相比而言,某些 MCU 在 6 微秒時間內(nèi)就可以為 CPU 提供高速時鐘,,處理相同的 25 條指令僅需要大約 9us(6us 激活+25 條指令′0.125us指令速率),,而且可以實現(xiàn)即時啟動的高速串行通信。圖 2說明即時啟動的 8Mhz時鐘啟動的例子,,其達到完全穩(wěn)定狀態(tài)僅需要 292us,。
圖 2
----另外,如果 MCU 時鐘系統(tǒng)為外設(shè)提供多個時鐘源的話,,當(dāng) CPU 處于睡眠狀態(tài)時外設(shè)仍然可以運行,。例如,一次 A/D 轉(zhuǎn)換可能需要一個高速時鐘,。如果 MCU 時鐘系統(tǒng)提供獨立于 CPU 的高速時鐘,,CPU 就可以在 A/D 轉(zhuǎn)換器運行情況下進入睡眠狀態(tài),從而節(jié)省 CPU 耗流量,。
----事件驅(qū)動功能與時鐘系統(tǒng)的靈活性并存,。中斷會使 MCU 退出低功耗模式,因此,,MCU 的中斷越多,,其防止浪費電流的 CPU 輪詢與降低功耗的靈活性就越大。輪詢意味著進行與不進行功耗預(yù)算之間存在差異,,因為它在等待出現(xiàn)事件時會浪費CPU 帶寬并需要額外電流,。一個好的低功耗 MCU 應(yīng)具有充分的中斷功能,為其所有外設(shè)提供中斷,,同時為外部事件提供眾多外部中斷,。
----按鈕或鍵盤應(yīng)用可以證明外部中斷的優(yōu)勢。如果不具備中斷功能,,MCU 必須頻繁輪詢鍵盤或按鈕,,以確定其是否被按下。不僅輪詢自身會消耗功率,,而且控制輪詢間隔也需要定時器,,其會消耗附加電流。相比而言,,在具備中斷情況下,,CPU 可以在整個過程中保持睡眠狀態(tài),只有按下按鈕時才激活,。
----在選擇低功率 MCU 時,,還需要考慮外設(shè)功耗與電源管理。某些低功率 MCU 僅僅是設(shè)計時不具備低利率功能的舊架構(gòu)的改進版本,。而有些 MCU 在設(shè)計時即具備低功耗特性,,并在其外設(shè)中內(nèi)置了低功耗功能,。一種特性是在需要時單獨啟動或關(guān)閉外設(shè)的能力,換言之,,更重要的是自動啟動或關(guān)閉外設(shè)的能力,。 A/D 轉(zhuǎn)換器就是一個例子,其在完成一次轉(zhuǎn)換后可以自動關(guān)閉,。另外,,某些 MCU 正在引入直接存儲器存取功能,其可以在無需 CPU 干預(yù)情況下自動處理數(shù)據(jù),。
----大多 MCU 具有集成的掉電保護功能,,當(dāng)電源低于正常操作范圍時其可以復(fù)位 MCU。通常會提供啟動或關(guān)閉掉電保護以節(jié)省功耗的功能,,但是必須在整個過程中都使掉電保護功能置于可用狀態(tài),,因為掉電是不可預(yù)測的。某些 MCU 需要70uA 的電流來實現(xiàn)掉電保護,。在只需要 45uA 平均電流的應(yīng)用實例中很明顯可以不考慮這些 MCU,。
----在選擇低功耗 MCU 期間有時會忽視漏電流,但是,,在最苛刻的低功耗應(yīng)用中則必須考慮到漏電流,。大多改進后的低功耗 MCU 都具有 1uA 的限定輸入漏電流。在 20 輸入器件中,,它可能會消耗 20uA,!針對低功耗設(shè)計的最新 MCU 具有最高50nA 的漏電流。
----最后,,我們常常會誤解 MCU 處理效率,。大家通常會認為 16 位 MCU 需要兩倍于 8 位 MCU 的內(nèi)存,,但是一個 16 位架構(gòu)實際上需要比 8 位架構(gòu)要少一些的代碼,,而 16 位 MCU 一般會更快速地執(zhí)行任務(wù)。例如,,8 位 MCU 需要 CPU 開銷來管理具有 10 位 A/D 轉(zhuǎn)換數(shù)據(jù)或需要 16 位計算的應(yīng)用中的數(shù)據(jù),。而且當(dāng)今許多MCU 產(chǎn)品都具有單個工作文件或累加器,其數(shù)據(jù)必須進行傳輸,,以便處理,,因此,與基于寄存器的架構(gòu)相比需要額外的 CPU 開銷,。表 1 說明在 16 位現(xiàn)代架構(gòu)與8 位 8051 架構(gòu)上傳輸 10 位 A/D 數(shù)據(jù)的指令,。在采用 1Mhz 時鐘情況下,16 位器件需要 6us 進行傳輸,,而 8 位器件則需要 24us,。
16 位 MCU | 8 位 MCU |
mov.w &ADC10MEM,&RAM | movf ADRESH,W |
movwf RAML | |
bsf 0x20 | |
movlf ADCHRESL,W | |
bcf 0x20 | |
movwf RAMH |
----選擇低功率 MCU 是一項耗時,、棘手的工作。如果花費一些時間來了解可用產(chǎn)品選項的架構(gòu)特性,,我們就能夠開發(fā)出能滿足最苛刻功率預(yù)算的設(shè)計,。