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