對于電池供電的互連設備而言,能耗是至關(guān)重要的,降低能耗可以最大程度地延長電池的更換時間,甚至讓設備在沒有環(huán)境能量源的情況下運行。雖然很多嵌入式系統(tǒng)開發(fā)人員精通優(yōu)化代碼,但要為物聯(lián)網(wǎng) (IoT) 設備節(jié)省能源,還需要更加全面的方法。
此類方法不僅必須要考慮存儲容量、MCU 性能和功耗的因素,還必須考慮到無線電、模擬電路、電源轉(zhuǎn)換器和傳感器。雖然所有這些因素都會影響系統(tǒng)的整體能耗,但開發(fā)人員最好控制的主要因素是微控制器。
本文將描述如何為物聯(lián)網(wǎng)設備選擇低功耗微控制器,以及在板載外設方面要注意哪些問題。本文還將演示如何使用功率監(jiān)測工具,并提供達到最佳功率及性能的技巧和訣竅。
選擇低功耗微控制器架構(gòu)
要選擇低功耗微控制器,首先必須確定微控制器應該使用的合適處理器內(nèi)核。目前行業(yè)中有很多專有微控制器內(nèi)核,但從 ARM Cortex-M 微控制器入手是非常合理的選擇。業(yè)界的多家供應商都支持這些微控制器內(nèi)核,從而形成了提供支持和資源的穩(wěn)定生態(tài)環(huán)境。
為了最大程度地降低能耗,必須及早考慮到兩大因素:性能和能效。對于微控制器而言,這兩個指標很難量化,但開發(fā)人員可以使用兩種基準標準: EEMBC 的 CoreMark 和 ULPmark。
CoreMark 用于測量微控制器的處理能力,這個值越高,處理能力就越強。例如,STMicroelectronics STM32L053 處理器可使用 STM32L053 Nucleo 開發(fā)板進行測試,它的 CoreMark 值為 75.18。另一款 STMicroelectronics 零件 STM32F417 的 CoreMark 值為 501.85。初看起來,開發(fā)人員可能認為使用 STM32F417 是可取的,因為它的性能似乎出色得多。但是,在做出決定之前,還要考慮另外幾個因素。
圖 1: STMicroelectronics 的 STM32L053 Nucleo 板采用 ARM Cortex-M0+ 內(nèi)核,專門針對低功耗、資源受限的應用而設計。(圖片來源:STMicroelectronics)
首先,CoreMark 只是告訴開發(fā)人員它能夠在一秒鐘內(nèi)執(zhí)行多少次基準測試迭代。在不同時鐘速率下運行的處理器將產(chǎn)生差異很大的值。對處理能力進行比較的更好方式是比較 CoreMark/MHz。在本例中,STM32L053 處理器得出的結(jié)果為 2.35,而 STM32F417 得出的結(jié)果為 2.98(數(shù)據(jù)來源: EEMBC)。兩款處理器在效率方面非常接近。
其次,開發(fā)人員必須關(guān)注內(nèi)核架構(gòu)。STM32L053 采用 ARM Cortex-M0+,該處理器經(jīng)過優(yōu)化,具有很低的功耗,而且調(diào)試模塊的數(shù)量最少。此外,它還舍棄了高性能處理器上的所有附加部件,這些也是功耗最高的部件。
而 STM32F417 采用 ARM Cortex-M4,該處理器是作為高性能處理器設計的,在 168 MHz 而不是 32 MHz 的時鐘速度下運行。該時鐘速度達到了 STM32L053 的五倍,但 CoreMark/MHz 值僅提高了 26%。
ULPmark 可測量微控制器執(zhí)行操作(例如計算和存儲器操作)的效率高低。最新版本甚至可測量外設效率,讓開發(fā)人員能夠很好地從能源利用的視角,了解處理器的整體效率如何。
尋找合適的外設組合
微控制器內(nèi)核只是開發(fā)人員在選擇低功耗微控制器時應該考慮的第一個因素。應該考慮的另外一個因素是板載外設。CPU 的能耗大小在很大程度上取決于外設。開發(fā)人員希望確保他們選擇的零件采用盡可能自動化的低功耗外設。
首先,開發(fā)人員應該尋找提供了不止一個直接存儲器訪問 (DMA) 通道的器件。利用 DMA,開發(fā)人員能夠在微控制器內(nèi)部傳輸更多信息,而無需 CPU 干預。這意味著 CPU 能夠騰出手做其他工作,例如運行應用程序代碼,或者關(guān)閉或進入深度休眠模式以節(jié)省能耗。同時,DMA 通道還用于將數(shù)據(jù)從外設傳輸?shù)酱鎯ζ?,從存儲器傳輸?shù)酵庠O,甚至在存儲器的不同區(qū)域之間進行傳輸。
Texas Instruments 的 MSP430FR5994 就是專為低功耗工作設計的零件的很好例子,MSP430FR5994 Launchpad 開發(fā)套件包括了這種零件。MSP430FR5994 帶有內(nèi)置的 DMA 控制器,它有六個單獨的通道,可以同時在后臺工作。
圖 2: Texas Instruments 的 MSP430FR5994 Launchpad 開發(fā)套件包含多個低功耗外設,例如用于信號處理的六通道 DMA 控制器和低功耗加速器,另外還提供多種低功耗模式。(圖片來源:Texas Instruments)
另一個例子是尋求多種低功耗模式。新型微控制器將提供多種功耗模式,可將 CPU 和外設置于不同狀態(tài),從簡單的休眠狀態(tài)一直到深度休眠狀態(tài),微控制器在深度休眠狀態(tài)下幾乎接近關(guān)閉。在這些深度休眠模式下,整個微控制器的工作電流僅為幾毫微安。
在了解微控制器的低功耗狀態(tài)時,還要評估工具鏈和生態(tài)系統(tǒng)功能。設置和配置低功耗模式以及喚醒這些模式的事件,可能是一項頗具挑戰(zhàn)性的工作,而且非常耗時。新型微控制器,例如 Renesas 提供的 Synergy,在開發(fā)環(huán)境內(nèi)部包含了配置軟件,開發(fā)人員只需幾次點擊即可配置這些模式。對于低功耗應用,開發(fā)人員應該考慮使用帶有 64 或 128 KB 閃存的 S124 32 位 MCU。要快速啟動采用這些器件的開發(fā)工作,可以使用 Synergy DK-124 開發(fā)板。
圖 3: Renesas Synergy DK-124 開發(fā)板帶有低功耗模擬比較器,提供多種休眠模式,實現(xiàn)了低功耗運行。(圖片來源: Renesas)
測量和驗證微控制器功耗
選擇低功耗微控制器,只是確保系統(tǒng)能夠達到可能的最低功耗的第一步。為了真正達到最低功耗,開發(fā)人員必須在整個軟件開發(fā)過程中仔細地監(jiān)控微控制器的能耗。開發(fā)人員可以采用多種不同方法來監(jiān)控微控制器的能耗,包括電流探頭和能量感知調(diào)試器。
電流探頭的作用只是測量分流電阻器兩端的電壓,然后根據(jù)該電壓和分流電阻值來計算電流。如果您希望測量整個系統(tǒng)的電流消耗,那么這種解決方案的效果非常好,但如果您真正希望將微控制器執(zhí)行的操作與它們消耗的能量關(guān)聯(lián)起來,則應使用能量感知調(diào)試器。這讓開發(fā)人員能夠確定哪些代碼區(qū)域需要進一步優(yōu)化或返工。
市場上有多種適用于 ARM Cortex-M? 微控制器的能量感知調(diào)試器,例如 I-Jet 調(diào)試探頭的 IAR Systems I-Scope 電源探頭(圖 4)。
圖 4: 連接到 IAR I-Jet 時,I-Scope 可用于測量系統(tǒng)電壓、電流和微控制器電流,然后全部反向關(guān)聯(lián)到程序計數(shù)器 (PC),以確定哪些代碼區(qū)域消耗的能源最多。(圖片來源: IAR Systems Software)
I-Scope 工具帶有一個基于差分放大器的內(nèi)部電壓監(jiān)視器。它可以測量與微控制器電源軌串聯(lián)的分流電阻器兩端的壓降。這使得 I-Jet 調(diào)試探頭能夠測量電壓,同時對微控制器的 CPU 內(nèi)核中的程序計數(shù)器 (PC) 進行采樣(圖 5)。
圖 5: I-Scope(突出顯示為黃色)與 I-Jet 調(diào)試探頭配合使用,將分流電阻器的電流與在特定時間執(zhí)行的代碼關(guān)聯(lián)起來。(圖片來源: IAR Systems Software)
程序計數(shù)器準確告訴探頭:應用程序處于執(zhí)行過程的什么位置。將 PC 計數(shù)器信息與電流測量值相關(guān)聯(lián),可生成應用程序的能耗概況數(shù)據(jù),以便開發(fā)人員能夠利用這些數(shù)據(jù)來優(yōu)化和驗證代碼。
設計低功耗器件的技巧和訣竅
找到合適的微控制器并監(jiān)控硬件,只是開發(fā)人員設計低功耗器件的第一個階段。此時的訣竅是了解如何充分利用微控制器來最大程度降低能耗。為了達到這個目標,開發(fā)人員可以遵循以下的一般技巧。其中包括:
預先制定電池預算,包括最小功耗、最大功耗和平均功耗的估算值。
使用低功耗定時器來驅(qū)動計劃程序或 RTOS 的任何內(nèi)部系統(tǒng)節(jié)拍。
盡可能經(jīng)常地將 CPU 置于休眠模式(對于實時應用,請務必考慮到喚醒和掉電時間)。
讓系統(tǒng)成為事件驅(qū)動型系統(tǒng)。可以利用中斷來喚醒系統(tǒng)并執(zhí)行功能,然后立即返回到休眠模式。
將 DMA 控制器和任何自動化外設集成到軟件架構(gòu)中,以實現(xiàn)“并行”處理。
根據(jù)需要管理微控制器時鐘頻率,以實現(xiàn)額外的能源節(jié)省。
監(jiān)控軟件能耗,不要害怕試用不同的架構(gòu)和配置。第一次嘗試的很可能不是功耗最低的配置。
適當時,請使用中斷的 Sleep-on-exit 功能,該功能可在中斷結(jié)束時將處理器置于休眠模式,每個事件節(jié)省幾十個時鐘周期。
總結(jié)
為物聯(lián)網(wǎng)設備選擇低功耗微控制器是一項非常棘手的工作。正如本文所述,我們必須考慮到諸多因素,從微控制器架構(gòu)一直到板載外設功能。
選定了低功耗微控制器之后,并不能保證開發(fā)人員能夠?qū)崿F(xiàn)最低功耗的目標。下一個階段是認真地設計架構(gòu),并在整個開發(fā)生命周期中監(jiān)控軟件的性能。只有這樣,開發(fā)人員才能充分利用所選微控制器的低功耗特性和性能。
-
微控制器
+關(guān)注
關(guān)注
48文章
7645瀏覽量
151857 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2912文章
44897瀏覽量
375801
原文標題:教你如何充分利用微控制器來最大程度降低功耗!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論