0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【干貨】教你如何以0 MIPS運行你的嵌入式系統(tǒng)

Silicon Labs ? 來源:Silicon Labs ? 作者:?ivind Loe ? 2017-08-28 19:29 ? 次閱讀

作者:?ivind Loe,Silicon Labs微控制器產(chǎn)品高級營銷經(jīng)理

即使是在諸如物聯(lián)網(wǎng)應(yīng)用的無線連接這種主導(dǎo)功耗的事件中,讓盡可能多的進(jìn)程自主運行,也可大大提高電池壽命。降低功耗一直是微控器(MCU)市場的一個主要關(guān)注點。超低功耗MCU現(xiàn)在可以大大降低工作模式和深度睡眠模式下的功耗。這種變化的效果是顯而易見的,它大大提高了我們?nèi)粘?a target="_blank">嵌入式應(yīng)用中的電池壽命,并且提供了在未來使用能量收集的可能性。

然而,要基于新型MCU降低功耗,開發(fā)人員必須考慮到許多因素,對此Silicon Labs特別撰寫一篇技術(shù)文章:0 MIPS運行你的嵌入式系統(tǒng),幫助開發(fā)人員了解如何利用新型MCU中外設(shè)的自主運行,通過更接近以“0”MIPS運行,來實現(xiàn)數(shù)據(jù)手冊中所承諾的低功耗。

低功耗為嵌入式系統(tǒng)研發(fā)關(guān)鍵

對于在功耗敏感型物聯(lián)網(wǎng)(IoT)應(yīng)用中所使用的新型MCU和無線MCUWMCU)來說,執(zhí)行代碼時的功耗已經(jīng)明顯下降,甚至達(dá)到40μA/ MHz以下。使用這些低功耗規(guī)格,您可能會想知道為什么我們需要睡眠模式,為什么不以500 kHz運行您的代碼來實現(xiàn)20μA電流消耗,并且允許您的應(yīng)用使用電池運行10年?其實事情并不是這么簡單的。

睡眠模式下的功耗在過去幾年中也有顯著的改善。我們現(xiàn)在可以看到深度睡眠模式下的功耗低于2μA,而一些睡眠模式下的功耗甚至低于50 nA。您可能會覺得擁有這些模式設(shè)計出來的系統(tǒng)功耗自然很低,然而事實并非如此,應(yīng)用能否利用睡眠模式才是關(guān)鍵。

為什么工作模式是好的...也是壞的

使用MCUWMCU的最直接的方法是讓CPU管理一切。例如,您可以啟動模數(shù)轉(zhuǎn)換(ADC),將一些數(shù)據(jù)放入通信接口(如USART傳輸)中,讀取ADC數(shù)據(jù),并對數(shù)據(jù)做出一些處理,所有一切都由CPU直接控制。直接的CPU控制簡化了開發(fā),但其成本是:每當(dāng)外設(shè)或外部事件需要處理時,MCU都將處于工作模式,從而使功耗大增。

近期,一些數(shù)據(jù)手冊顯示工作模式的電流是40μA/MHz甚至更低,它們通常是高時鐘頻率下的參數(shù),低頻下會變大,進(jìn)而導(dǎo)致絕對功耗變大。這是因為工作模式下頻率和功耗不是線性關(guān)系。功耗由如下兩部分組成,其中第二部分和頻率聯(lián)系不緊密:

1.處理器本身,它是和頻率按比例變化的。

2.有基礎(chǔ)工作電流的模塊,比如低壓差線性穩(wěn)壓器LDO),欠壓檢測器(BOD)等。

要想降低功耗,應(yīng)盡可能地減少MCU在高功耗的工作模式下運行,盡可能地關(guān)閉外設(shè),讓CPU盡可能多地睡眠。

功耗預(yù)算

對于受限于能源的電池供電型應(yīng)用來說,要知道能源消耗在哪里才能進(jìn)行優(yōu)化。表1顯示了一個傳感器檢測無線應(yīng)用的功耗預(yù)算,它的功耗優(yōu)化不太好。

通過平均計算每個組件的功耗來測量或估計功耗。如果CPU占空比為兩個百分點,并且在60μA/ MHz時工作在20 MHz,則CPU的消耗為24μA。

請注意,表1所示的功耗預(yù)算是根據(jù)功能劃分的。例如,基礎(chǔ)睡眠電流包括一個低頻振蕩器和一個實時時鐘RTC)來對系統(tǒng)事件進(jìn)行定時從而允許深度睡眠。

傳感器測量部分是由一個0.5kHz的中斷觸發(fā),中斷之間深度睡眠。低功耗藍(lán)牙每秒鐘都要把數(shù)據(jù)發(fā)出去,這是個很普遍的低功耗應(yīng)用。最后,還有一些非MCU部分的功耗。MCU可能無法直接控制這些模塊中的一部分,包括電源管理外設(shè),在這個例子中,MCU是直接控制ADC對傳感器進(jìn)行采樣,如果不是的話,傳感器電流將完全是圖片中的數(shù)據(jù)。

對于這個例子,傳感器的持續(xù)電流大約是390μA,但是通過調(diào)整占空比,每個ADC采樣僅僅使用了10 μs的時間,從而可以大大降低功耗。

1 目標(biāo)應(yīng)用的功耗預(yù)算

如果該無線應(yīng)用由具有225 mAh容量的CR2032電池供電,則在61.6μA功耗下操作時其壽命約為0.4年。事實上,我們可以做得更好。

改善現(xiàn)狀

我們來看看降低MCU傳感器測量電流的方法。雖然此示例涉及ADC測量外部傳感器,但相關(guān)示例可能集中在一系列不同類型的測量以及與外部環(huán)境的交互上。在這兩種情況下,MCU和外部環(huán)境之間都會發(fā)生頻繁的交互。

實現(xiàn)低功耗傳感的最簡單的方法是讓CPU盡可能多地處于睡眠模式,只在采樣時喚醒,并盡可能快地重回睡眠模式。對于非常低的采樣率來說,這種方法很好,但是從圖1可以看出,當(dāng)每秒采樣次數(shù)增加時,系統(tǒng)的功耗也會顯著增加:

1 采用中斷進(jìn)行ADC采樣,顯示出隨著每秒采樣次數(shù)的增加,功耗也在增加

許多類型的應(yīng)用必須具有頻繁的活動,同時還需要保持電池壽命。超過1kHz的活動率并不是聞所未聞,這時候就需要采取措施來保持低功耗。

2顯示了傳感器管理的兩種附加方法。外設(shè)反射系統(tǒng)/直接存儲器訪問(PRS / DMA)方法使CPU在完全不參與的情況下在深度睡眠模式進(jìn)行ADC采樣。而不是RTC喚醒CPU,然后CPU啟動ADC進(jìn)行采樣。RTC通過事件系統(tǒng)(如Silicon LabsPRS)將事件直接發(fā)送到ADCADC在接收到此事件時自動啟動ADC轉(zhuǎn)換。轉(zhuǎn)換完成后,DMA在這種情況下也能夠從深度睡眠模式下運行,從ADC獲取數(shù)據(jù)并將其存儲在RAM中。 PRS / DMA方法的好處是顯著降低了電流消耗。在1 kHz時,系統(tǒng)電流從58μA降低到25μA

2 ADC采樣圖顯示了各種工作方式下的功耗

驅(qū)動ADC的更有效的方法是PRS /比較器CMP)方法,其中RTC仍然通過PRS系統(tǒng)觸發(fā)ADC,但在這種情況下,ADC立即使用比較功能對樣本進(jìn)行評估,除非發(fā)現(xiàn)有需要的數(shù)據(jù),否則不使用DMACPU。這種方法能夠?qū)崿F(xiàn)1 kHz采樣率時系統(tǒng)電流只有3.5μA。

動態(tài)ADC比較器

使用PRS/CMP方法,大部分采樣數(shù)據(jù)都被丟棄,CPU只關(guān)注需要處理的數(shù)據(jù)。當(dāng)信號變化緩慢時,或者需要特定的信號時,這種方法很有效。

當(dāng)使用比較功能監(jiān)視信號時,一種方法是測量信號,然后根據(jù)這個信號設(shè)置閾值,只要信號在閾值范圍內(nèi),那么當(dāng)ADC測量信號時,系統(tǒng)可以保持在深度睡眠模式,當(dāng)然CPU也保持在睡眠模式。

然而,如果信號發(fā)生變化,并且超過閾值,系統(tǒng)將知道該信號,并采取適當(dāng)?shù)拇胧?。在回到睡眠模式之前?/span>ADC閾值將重新配置以適應(yīng)新的信號值,因此系統(tǒng)可以再次進(jìn)入睡眠模式,直到下一次信號發(fā)生變化。圖3顯示了這種技術(shù)的示例。圓點表示ADC樣本,箭頭表示每當(dāng)CPU被喚醒時,它將記錄本次變化并重新配置閾值。

3 當(dāng)信號超過閾值時,CPU中斷動態(tài)修改ADC的閾值

使用這種方法,系統(tǒng)實際上將丟失一些信號準(zhǔn)確性,因為信號可以在觸發(fā)器之間的閾值范圍內(nèi)任意移動。然而,益處是功耗顯著降低。

如果系統(tǒng)的目標(biāo)是測量信號的動態(tài)值,則PRS / DMA驅(qū)動方法是理想的,因為它使所有數(shù)據(jù)可用,同時仍然可以提供非常有益的節(jié)能特性。

自主工作子系統(tǒng)

ADC示例只是眾多通過睡眠模式降低應(yīng)用功耗的方法之一。專注于低功耗應(yīng)用的新型MCU(如Silicon LabsEFM32 Gecko MCU)擁有大量功能,可在深度睡眠模式下運行,從而實現(xiàn)高水平的自主行為。

例如,Gecko MCULESENSE(低功耗傳感)模塊可以自動地、周期性地采樣多達(dá)16個通道,完全不需要CPU參與。它可以實現(xiàn)高頻率檢測且充電1次就能工作10年。

在許多情況下,單個外設(shè)可以自主地履行其職責(zé),但也有許多需要交互的情況。在這種情況下,我們可以利用諸如在當(dāng)前一些新型MCU中存在的PRS系統(tǒng)這樣的外設(shè)互連。這些外設(shè)互連允許多個外設(shè)連接以自主執(zhí)行更復(fù)雜的任務(wù)。

4顯示了這樣的自主系統(tǒng)示例,其使用事件鏈來執(zhí)行其功能:

1.RTC以給定的時間周期性地發(fā)送PRS信號至ADC以啟動轉(zhuǎn)換。

2.RTC同時啟動外部傳感器,這樣在測量時信號就已經(jīng)準(zhǔn)備好了。

3.ADC完成采樣并通知DMADMA把數(shù)據(jù)傳送到RAM。

4.來自ADC的完成PRS信號關(guān)閉外部傳感器。

5.當(dāng)緩沖器滿時中斷喚醒CPU,或者超過ADC閾值時中斷喚醒CPU

6.可選項:PRS看門狗監(jiān)視事件循環(huán),確保它保持運行。

DMA可以從圖4所示系統(tǒng)中拿走,通過設(shè)置ADC的比較功能來做到更省電。

4 該自主ADC系統(tǒng)包含周期工作的傳感器和看門狗

這些自主子系統(tǒng)具有以下幾個主要優(yōu)點:

1.顯著節(jié)能。

2.即使CPU負(fù)載很重時傳感器依舊可以穩(wěn)定工作。

缺點是,并不是所有的MCU都支持這種類型的操作,并且在設(shè)置交互時,您會希望像硬件設(shè)計人員一樣思考??傊瑢τ谠S多電池供電型應(yīng)用來說,其優(yōu)點明顯多于缺點。

結(jié)論

通過利用各種節(jié)能技術(shù),當(dāng)傳感器測量時,CPU幾乎完全脫離工作。對于表1所示的無線應(yīng)用,這將使總平均功耗從61.6μA降低到37.6μA,降低了39%,從而使電池壽命從大約5個月延長到8個月,增加了64%,或者可以允許電池尺寸減小以改善系統(tǒng)外形。

對于非無線應(yīng)用,節(jié)能將更加顯著。表1中的示例,能耗將從29.6μA降低到5.6μA,由CR2032電池供電,理論上壽命將從10個月延長到4.6年。

想學(xué)更多嵌入式課程,請掃描下圖二維碼,馬上學(xué)習(xí)!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347831
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    40

    文章

    3520

    瀏覽量

    128809
  • mips
    +關(guān)注

    關(guān)注

    1

    文章

    237

    瀏覽量

    47587
  • SiliconLabs
    +關(guān)注

    關(guān)注

    2

    文章

    50

    瀏覽量

    24458

原文標(biāo)題:【干貨】以0 MIPS運行你的嵌入式系統(tǒng)

文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電子發(fā)燒友年終盤點——內(nèi)容精選

    何以0 MIPS運行嵌入式系統(tǒng)怎樣學(xué)好“信號完
    發(fā)表于 02-06 15:01

    什么是嵌入式系統(tǒng)

    系統(tǒng)的核心課程,或者就講一下ARM編程基礎(chǔ);做嵌入式實驗大部分也只是教學(xué)系統(tǒng)里現(xiàn)有的實驗程序調(diào)出來運行驗證一下結(jié)果,屬于驗證性實驗,很多學(xué)生做完了實驗都不知道自己做了什么。根本就沒有機
    發(fā)表于 04-17 11:46

    什么是嵌入式linux?

    與電腦端運行的linux系統(tǒng)本質(zhì)上是一樣的,都是使用的linux內(nèi)核,相同的文件系統(tǒng)目錄結(jié)構(gòu)。區(qū)別在于嵌入式linux系統(tǒng)多少經(jīng)過裁剪的,可
    發(fā)表于 10-27 06:30

    嵌入式系統(tǒng)有哪些應(yīng)用

    經(jīng)過這些年的發(fā)展,嵌入式的功能不斷強大,嵌入式的應(yīng)用領(lǐng)域也更為寬泛,嵌入式在當(dāng)前主要是指為了各種具體應(yīng)用功能的實現(xiàn),按照基本計算機技術(shù),在硬件方面和軟件方面均可裁剪,不斷適應(yīng)各種應(yīng)用系統(tǒng)
    發(fā)表于 10-27 06:19

    MCU的嵌入式系統(tǒng)設(shè)計,如何運行SDRAM?

    MCU的嵌入式系統(tǒng)設(shè)計,如何運行SDRAM?2020-03-17 11:36 預(yù)計 10 分鐘讀完在使用 MCU 的嵌入式系統(tǒng)設(shè)計中,當(dāng)程序
    發(fā)表于 11-04 08:03

    教你好學(xué)的嵌入式開發(fā)學(xué)習(xí)路線

    原標(biāo)題:十年資深嵌入式工程師:教你好學(xué)的嵌入式開發(fā)學(xué)習(xí)路線Linux 是一個開源、免費的操作系統(tǒng),主要應(yīng)用于服務(wù)器(網(wǎng)站服務(wù)器、云計算集群、DNS 等)和
    發(fā)表于 11-05 08:11

    嵌入式系統(tǒng)的特點具體有哪些呢

    今天小編跟大家來討論一下:嵌入式系統(tǒng)的11大特點,知多少呢?不一樣的干貨,喜歡的記得轉(zhuǎn)載或留言哦*-*嵌入式
    發(fā)表于 12-22 06:51

    MIPS 連接和嵌入式外設(shè)解決方案

    MIPS 連接和嵌入式外設(shè)解決方案 在集成連接解決方案之時,今天 SoC 開發(fā)人員面臨的最大挑戰(zhàn)是什么? 在學(xué)校學(xué)習(xí)和構(gòu)建數(shù)字系統(tǒng)的時候,最大的
    發(fā)表于 01-28 00:39 ?1041次閱讀
    <b class='flag-5'>MIPS</b> 連接和<b class='flag-5'>嵌入式</b>外設(shè)解決方案

    基于嵌入式Linux系統(tǒng)的Bootloader模型在MIPS64上的移植設(shè)計淺析

    Bootloader初始化硬件,引導(dǎo)內(nèi)核和文件系統(tǒng)來啟動Linux。但由于在嵌入式開發(fā)中基于MIPS體系的Bootloader較少,開發(fā)者在移植MIPS Bootloader需花費大量
    發(fā)表于 09-12 16:13 ?858次閱讀

    基于嵌入式軟硬件系統(tǒng)了解多少

    嵌入式運用方面來說,嵌入式系統(tǒng)是控制、監(jiān)視或者輔助設(shè)備機器和車間運行的裝置。
    發(fā)表于 10-23 15:51 ?1853次閱讀
    基于<b class='flag-5'>嵌入式</b>軟硬件<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>你</b>了解多少

    嵌入式linux簡介

    與電腦端運行的linux系統(tǒng)本質(zhì)上是一樣的,都是使用的linux內(nèi)核,相同的文件系統(tǒng)目錄結(jié)構(gòu)。區(qū)別在于嵌入式linux系統(tǒng)多少經(jīng)過裁剪的,可
    發(fā)表于 10-19 18:33 ?7次下載
    <b class='flag-5'>嵌入式</b>linux簡介

    什么是嵌入式?眼中的嵌入式是怎么樣的?怎么學(xué)嵌入式?教你五分鐘看懂嵌入式。

    眼中的嵌入式是怎么樣的?嵌入式的定義從技術(shù)上來區(qū)分嵌入式嵌入式硬件工程師必備技能嵌入式驅(qū)動工程
    發(fā)表于 10-20 16:21 ?12次下載
    什么是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>你</b>眼中的<b class='flag-5'>嵌入式</b>是怎么樣的?怎么學(xué)<b class='flag-5'>嵌入式</b>?<b class='flag-5'>教你</b>五分鐘看懂<b class='flag-5'>嵌入式</b>。

    干貨 | 嵌入式系統(tǒng)軟件架構(gòu)設(shè)計

    點擊上方“大魚機器人”,選擇“置頂/星標(biāo)公眾號”福利干貨,第一時間送達(dá)!整理 :嵌入式云IOT技術(shù)圈,作者:veryarm1. 前言嵌入式是軟件設(shè)計領(lǐng)域的一個分支,它自身的諸多特點決定了...
    發(fā)表于 10-20 21:05 ?5次下載
    <b class='flag-5'>干貨</b> | <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>軟件架構(gòu)設(shè)計

    【純干貨教你如何學(xué)習(xí)嵌入式開發(fā),嵌入式學(xué)習(xí)路線

    很多學(xué)習(xí)嵌入式設(shè)計同學(xué)都會發(fā)出這樣的感慨,“學(xué)嵌入式好難啊”!!這是因為對學(xué)習(xí)嵌入式沒有掌握一個好的方法,當(dāng)你掌握了,就會發(fā)現(xiàn)其實也很簡單,今天我就總結(jié)了一些自己的學(xué)習(xí)方法給新人們參
    發(fā)表于 11-03 09:06 ?32次下載
    【純<b class='flag-5'>干貨</b>】<b class='flag-5'>教你</b>如何學(xué)習(xí)<b class='flag-5'>嵌入式</b>開發(fā),<b class='flag-5'>嵌入式</b>學(xué)習(xí)路線

    教你如何學(xué)習(xí)嵌入式系統(tǒng)

    教你如何學(xué)習(xí)嵌入式系統(tǒng)一、如何學(xué)習(xí)嵌入式系統(tǒng)- - 嵌入式
    發(fā)表于 11-03 20:21 ?7次下載
    <b class='flag-5'>教你</b>如何學(xué)習(xí)<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>