降低嵌入式系統(tǒng)能耗需求的解決方案介紹
減少能源是世界上廣泛存在的運(yùn)動(dòng),涵蓋電器,交通,娛樂(lè),通信,計(jì)算,醫(yī)療設(shè)備等項(xiàng)目。使用電力的一切都消耗能量,從而消耗能量。由于能源是由戰(zhàn)爭(zhēng)產(chǎn)生的,并且成本上升,涓流效應(yīng)使得一切對(duì)能源效率更敏感,特別是在產(chǎn)品壽命期間的能源成本方面。
當(dāng)我們受到挑戰(zhàn)時(shí),已經(jīng)取得了巨大的進(jìn)步,我們所有人都感受到了這些好處。例如,當(dāng)加利福尼亞州立法規(guī)定冰箱必須更節(jié)能時(shí),該行業(yè)迎接挑戰(zhàn),創(chuàng)造了滿(mǎn)足指導(dǎo)方針?biāo)璧男录夹g(shù),世界上每個(gè)人都因此而變得更好。根據(jù)加利福尼亞大學(xué)的研究,僅在加利福尼亞,部署低能耗冰箱所節(jié)省的能源就無(wú)需在10年內(nèi)建造50座燃煤電廠。當(dāng)人口眾多時(shí),乘以很少的積蓄就會(huì)增加。
與電加熱元件相比,任何微處理器或微控制器所需的能量似乎都微不足道。然而,龐大的人口乘數(shù)使得這個(gè)數(shù)字非常顯著,特別是在虛擬載荷方面。幻象負(fù)載是即使在關(guān)閉設(shè)備時(shí)也會(huì)消耗功率的設(shè)備。因?yàn)槲覀兩钤谝粋€(gè)隨需應(yīng)變 - 我們現(xiàn)在想要它 - 社會(huì),像電視機(jī)這樣的東西,不斷吸取相當(dāng)大的力量,以便能夠‘加速’更快。
能源研究表明,僅在美國(guó),高達(dá)10%的國(guó)內(nèi)電力是由于幻象負(fù)載造成的,而嵌入式智能可以改變我們周?chē)澜绲倪\(yùn)作方式。像Qi新無(wú)線電源標(biāo)準(zhǔn)中使用的更智能的電源,在完全充電或不需要時(shí)自行關(guān)閉。
隨著更多電池供電的玩具和設(shè)備的使用,微控制器本身也在進(jìn)行轉(zhuǎn)型,以減少運(yùn)行時(shí)的能源需求。這可以延長(zhǎng)電池壽命。這不僅僅是一個(gè)市場(chǎng)營(yíng)銷(xiāo),當(dāng)你的小工具可以在電池上使用更長(zhǎng)時(shí)間時(shí),這可以節(jié)省生命。例如,您想要更換除顫器或起搏器的頻率。
低壓CMOS工藝大大降低了現(xiàn)代微控制器所需的功率,但是,設(shè)計(jì)系統(tǒng)的能源要比制造工藝低得多。設(shè)計(jì)一個(gè)減少能源的系統(tǒng)需要不同的思維方式。此外,必須有硬件資源以及軟件開(kāi)發(fā)工具才能將這種節(jié)能提升到新的水平。
本文重點(diǎn)介紹一種降低嵌入式系統(tǒng)能耗需求的新方法。這種方法和產(chǎn)品來(lái)自一家名為Energy Micro的公司,該公司推出了一系列Energy Friendly Micros(EFMs)。
稱(chēng)為Geckos(因?yàn)镚ecko只使用相同大小的哺乳動(dòng)物能量的10%),EFM是ARM Cortex(M0和M3)風(fēng)味的微控制器(見(jiàn)圖1),嵌入了巧妙的技術(shù)和技術(shù),大大降低了能量使用,如果你知道如何利用它。
我們將在這里探討這些零件,技術(shù)和工具,為您介紹一種接近低能耗設(shè)計(jì)的新方法,包括使用新型硬件,新型軟件工具以及接近系統(tǒng)的新方法設(shè)計(jì)。所有這些都在能源微型公司聲稱(chēng)的延長(zhǎng)電池壽命方面發(fā)揮了至關(guān)重要的作用。
圖1:Geckos EFMs-ARM Cortex(M0和M3)風(fēng)味微控制器,嵌入了巧妙的技術(shù)和技術(shù),大大降低了能耗。
任何其他名稱(chēng)的ARM
您可能會(huì)說(shuō)ARM內(nèi)核是ARM內(nèi)核。你沒(méi)有太多可以做的事情來(lái)降低它的功率,除了時(shí)鐘慢或讓它睡覺(jué)。使用的能量與CMOS電路中的時(shí)鐘速度成正比。這意味著,通過(guò)創(chuàng)新的時(shí)鐘和時(shí)鐘管理,可以節(jié)省大量功率。
雖然微型進(jìn)入低功耗模式以減少能量時(shí)使用第二個(gè)晶體并不少見(jiàn),但Energy Micro更進(jìn)了一步。通常情況下,低頻晶體為32.768 KHz,因?yàn)檫@可以很好地解析實(shí)時(shí)時(shí)鐘的精確滴答。與高達(dá)48 MHz的范圍相比,這些EFM部件可以工作,切換到32.768 KHz可以節(jié)省相當(dāng)多的功率。
通過(guò)讓您選擇更低的頻率并使用能夠最大化能量的低功率振蕩器,可以進(jìn)一步降低這一點(diǎn)。 Energy Micro增加了另外兩種能耗更低的低能量R/C振蕩器。這些不是晶體的精度,但許多設(shè)計(jì)可能不需要這種精度。
R/C振蕩器可以像任何其他振蕩器一樣接入和使用(見(jiàn)圖2),并允許主晶體關(guān)閉,特別是如果外圍設(shè)備可以使用較低頻率的時(shí)鐘。為此,整個(gè)芯片的時(shí)鐘管理和使用變得至關(guān)重要,而另一個(gè)地方是Energy Micro將這項(xiàng)技術(shù)提升到了一個(gè)新的水平。通過(guò)使用新設(shè)計(jì)的低能耗外設(shè)。
圖2:R/C振蕩器可以像任何其他振蕩器一樣接入和使用。
不是自己的島嶼
沒(méi)有處理器或處理器核心本身就是一個(gè)孤島。為了有用,它被一組豐富的外圍功能所包圍,這些功能可以進(jìn)行通信,計(jì)算,加密/解密,移動(dòng)數(shù)據(jù),在模擬/數(shù)字之間進(jìn)行轉(zhuǎn)換等等。這些外圍接口中的每一個(gè)都是能量減少的公平游戲,而這正是Energy Micro所做的。
Energy Micro不是使用舊世界的外圍設(shè)備IP,而是從頭開(kāi)始設(shè)計(jì)所有新的外圍功能,旨在減少能耗。這很重要,因?yàn)橄耠娨曇粯?,外圍設(shè)備總是在需要時(shí)提供一些功能。
一個(gè)完美的例子是它們的低能量UART(見(jiàn)圖3)。 Energy Micro從頭開(kāi)始設(shè)計(jì),而不是使用標(biāo)準(zhǔn)的3.6864 MHz或11.0592 MHz頻率,而是在運(yùn)行時(shí)使用32.768 KHz時(shí)鐘節(jié)省能量。
圖3:Energy Micro的低能耗UART。
Gecko利用專(zhuān)用的低功耗硬件,快速檢測(cè)數(shù)據(jù)包的啟動(dòng)和喚醒,使UART處于睡眠模式,直到檢測(cè)到數(shù)據(jù)包開(kāi)始為止。低能量UART僅吸收150納安,支持高達(dá)9600的波特率。通過(guò)切換更高頻率的時(shí)鐘和使用非低能量UARTS,可以實(shí)現(xiàn)更高的波特率。
所有關(guān)鍵的耗電外設(shè)都經(jīng)過(guò)重新設(shè)計(jì),使用更低的能量和更慢的時(shí)鐘。定時(shí)器,A/D,D/A,DMA,SPI,多主IIC,計(jì)數(shù)器等都是新的低能耗版本,其運(yùn)行功率僅為其他微處理器標(biāo)準(zhǔn)外設(shè)的一小部分。表1顯示了這對(duì)于運(yùn)行時(shí)功耗的有效性。
Meditative vs REM
我們有兩種以上的睡眠狀態(tài),EFM32也是如此(見(jiàn)圖4)。顏色表明在每種睡眠模式下外設(shè)都處于活動(dòng)狀態(tài),您可能會(huì)驚訝地發(fā)現(xiàn),需要或生成數(shù)據(jù)的復(fù)雜外設(shè)可以在不喚醒核心微控制器的情況下運(yùn)行。
圖4:具有兩種睡眠狀態(tài)的EFM32。
完全關(guān)閉模式消耗20納安。 GPIO引腳或復(fù)位可以在2 uSec內(nèi)喚醒它。您可以使用400 nanoAmp繪制保留實(shí)時(shí)時(shí)鐘和512字節(jié)的SRAM。
下一個(gè)最低狀態(tài)是停止模式,它吸收600納安。停止模式保留CPU寄存器和內(nèi)部RAM,各種模擬和數(shù)字功能也可用,如D/A,運(yùn)算放大器和比較器,掉電檢測(cè)器,IIC,看門(mén)狗和便攜式脈沖計(jì)數(shù)器(更多)在此之后)。
深度休眠模式(900納安)增加了USB,UART,定時(shí)器/計(jì)數(shù)器,傳感器接口和LCD驅(qū)動(dòng)器功能,而休眠模式(45 uA/MHz)增加了TFT驅(qū)動(dòng)器,外部總線接口,ADC,AES和更多, - 所有的一切都是微睡的。
如何在不喚醒micro的情況下實(shí)現(xiàn)此功能?通過(guò)使用自主狀態(tài)機(jī)來(lái)協(xié)調(diào)內(nèi)部外圍設(shè)備的活動(dòng)而無(wú)需微觀干預(yù)。
Energy Micro將其稱(chēng)為反射總線(參見(jiàn)圖5),它實(shí)際上是一個(gè)基于內(nèi)部狀態(tài)機(jī)的序列發(fā)生器,允許低能量外設(shè)相互排隊(duì),傳遞數(shù)據(jù),并在核心處于睡眠狀態(tài)時(shí)進(jìn)行通信。
圖5:Energy Micro反射總線。
例如,接力棒傳遞觸發(fā)機(jī)制,例如重復(fù)的實(shí)時(shí)時(shí)鐘滴答,可以以精確的間隔觸發(fā)A/D轉(zhuǎn)換。轉(zhuǎn)換后的數(shù)據(jù)觸發(fā)DMA將該值移動(dòng)到內(nèi)存緩沖區(qū),觸發(fā)計(jì)數(shù)器更新計(jì)數(shù)。當(dāng)已經(jīng)采集了預(yù)定數(shù)量的樣本時(shí),您可以喚醒具有要操作的數(shù)據(jù)塊的微觀,而不僅僅是單個(gè)樣本。
這只是核心微觀睡眠時(shí)如何發(fā)生相對(duì)復(fù)雜功能的一個(gè)例子。其他包括LCD動(dòng)畫(huà),TFT刷新,關(guān)鍵感興趣傳感器預(yù)處理和事件檢測(cè)。
睡眠工作
從傳感器獲取的處理數(shù)據(jù)是最大的嵌入式系統(tǒng)應(yīng)用之一,特別是涉及電池供電設(shè)備時(shí),無(wú)論是現(xiàn)場(chǎng)部署,手持,通過(guò)能量采集供電,還是磨損和使用醫(yī)療設(shè)備。
從可穿戴式血壓和血糖監(jiān)測(cè)儀到遠(yuǎn)程環(huán)境監(jiān)測(cè),訪問(wèn)傳感器,處理一些數(shù)據(jù),然后再回到睡眠狀態(tài)是延長(zhǎng)可用電池壽命的唯一方法。
對(duì)于定期間隔的事件,這可能非常簡(jiǎn)單。 Micro進(jìn)入睡眠狀態(tài),定期醒來(lái),執(zhí)行功能,然后重新進(jìn)入睡眠狀態(tài)(參見(jiàn)圖6A)。這些是時(shí)間驅(qū)動(dòng)的事件。實(shí)時(shí)時(shí)鐘中斷可以喚醒微觀,功率曲線下面積是使用的總能量。任何微架構(gòu)都可以很好地優(yōu)化這種類(lèi)型的硬件和軟件。
圖6A:Micro進(jìn)入睡眠狀態(tài),定期醒來(lái),執(zhí)行功能,然后重新進(jìn)入睡眠狀態(tài)。
通過(guò)事件驅(qū)動(dòng)檢測(cè),這變得更加成問(wèn)題,并且可能非常浪費(fèi)能源。微觀必須不斷醒來(lái)并檢查表明事件已經(jīng)開(kāi)始的情況。如果未檢測(cè)到任何事件,MCU將返回休眠狀態(tài)(參見(jiàn)圖6B)。只有在事件發(fā)生時(shí)才會(huì)保持清醒并執(zhí)行。
圖6B:如果未檢測(cè)到任何事件,MCU將返回休眠狀態(tài)。
喚醒之間的時(shí)間間隔決定了您的時(shí)間戳分辨率。如果微觀每秒喚醒,那就是你的時(shí)間分辨率。你醒來(lái)的頻率越高,你從睡眠模式中抽出的力量越多,檢查,然后再回到睡眠狀態(tài)。不幸的是,為了更好地工作,設(shè)備必須更具響應(yīng)性,這意味著要花更多時(shí)間來(lái)檢查事件。
采取心臟監(jiān)護(hù)儀記錄事件數(shù)據(jù)給醫(yī)生。如果它睡得太久并且錯(cuò)過(guò)了醫(yī)生需要的關(guān)鍵數(shù)據(jù),那就不是很有效了。如果它在事件發(fā)生時(shí)捕獲事件并記錄數(shù)據(jù),則它是有效的。如果它使用了太多的功率并且在找到任何東西之前就已經(jīng)死了,那么它就無(wú)效了。
在追捕事件發(fā)生之前,數(shù)百,數(shù)千或數(shù)百萬(wàn)次喚醒(或更多)的情況并不少見(jiàn)。隨著時(shí)間的推移,這種力量是你浪費(fèi)的能量,它可以加起來(lái)。
專(zhuān)用硬件只有在需要保存所有不必要的喚醒時(shí)才能用于中斷。這是一種節(jié)能方法,但可能不是具有成本效益或PCB空間有效的解決方案。這種專(zhuān)用硬件需要在芯片上,這就是反射總線和低能量傳感器總線(LESENSE)為您做的事情。
LESENSE利用片上模擬比較器和運(yùn)算放大器,A/D轉(zhuǎn)換器和數(shù)字比較器,實(shí)現(xiàn)自運(yùn)行,基于周期,事件檢測(cè),數(shù)據(jù)采集處理(有限擴(kuò)展)和控制。
為了說(shuō)明這一點(diǎn),讓我們看一下可用于執(zhí)行流速檢測(cè)和累積的電感式傳感器應(yīng)用(參見(jiàn)圖7)。金屬以圓形二進(jìn)制計(jì)數(shù)配置排列,因此當(dāng)金屬條(暗)靠近感應(yīng)線圈時(shí),它會(huì)改變其振蕩特性。
圖7:可用于執(zhí)行流速檢測(cè)和累積的電感式傳感器應(yīng)用。
電感器附近沒(méi)有金屬,電感器可以以眾所周知的預(yù)期衰減率自由振鈴。如果使用片上運(yùn)算放大器和比較器來(lái)創(chuàng)建閾值檢測(cè)器,則結(jié)果是脈沖序列事件。脈沖計(jì)數(shù)器對(duì)這些脈沖進(jìn)行計(jì)數(shù)并累計(jì)計(jì)數(shù)。計(jì)數(shù)超過(guò)預(yù)定的閾值,微觀保持睡眠狀態(tài)。這沒(méi)東西看。
如果金屬非??拷袷幤鲿?huì)受到抑制,脈沖計(jì)數(shù)會(huì)降低。這個(gè)較低的計(jì)數(shù)可以觸發(fā)微型喚醒并采取行動(dòng),因?yàn)榘l(fā)生了需要微處理的事件。注意:生成正交波形是為了讓微觀知道旋轉(zhuǎn)方向以及速率。
交易工具
為了更有效地編碼,需要新工具讓軟件工程師利用低能量編碼技術(shù)。蠻力有其自己的位置,但不是在每個(gè)循環(huán)時(shí)間取得力量時(shí)。
為了解決這個(gè)問(wèn)題,Energy Micro在公司中創(chuàng)建了一個(gè)頂級(jí)職位,開(kāi)發(fā)和維護(hù)一套易于使用,理解和有效的新工具套件,以減少處理器運(yùn)行時(shí)間和開(kāi)發(fā)時(shí)間。
全面的開(kāi)發(fā)工具套件稱(chēng)為Simplicity Studio,它包含多個(gè)工具,可加快代碼開(kāi)發(fā)速度,讓設(shè)計(jì)人員通過(guò)能量感知運(yùn)行時(shí)功能降低能耗。
有關(guān)Simplicity Studio所有功能的詳細(xì)信息將成為另一篇完整文章的主題。所以,在這里,為了說(shuō)明這是如何有效,我們將看一個(gè)集成工具來(lái)展示它的效果。
Energy Profiler讓您可以實(shí)時(shí)查看代碼運(yùn)行時(shí)使用的能量(參見(jiàn)圖8)。作為條形圖(右下角),顯示每個(gè)主程序使用的功率量,代碼(左側(cè))也是如此。
圖8:Energy Profiler可讓您實(shí)時(shí)查看代碼運(yùn)行時(shí)使用的能量。
關(guān)鍵是運(yùn)行時(shí)能量抽取(右上角),它顯示實(shí)時(shí)電流消耗。注意每個(gè)小的紅色指標(biāo)??梢詥螕羝渲腥魏我粋€(gè)以顯示在該級(jí)別運(yùn)行的代碼。
這對(duì)減少常規(guī)能量特別有用。例如,如果您看到使用的能量塊很長(zhǎng)且持續(xù)時(shí)間很長(zhǎng),您可以單擊它來(lái)查看基礎(chǔ)代碼。例如,如果它是一個(gè)‘WHILE’循環(huán),你可能想要改變它以使用一個(gè)計(jì)時(shí)器,讓微睡眠,然后讓它喚醒更接近準(zhǔn)備繼續(xù)前進(jìn)的時(shí)間。這樣可以在微型電源等待事件時(shí)保存所有活動(dòng)時(shí)間。
熄燈
開(kāi)發(fā)低能耗系統(tǒng)是一門(mén)經(jīng)驗(yàn)和支持的學(xué)科。如果您足夠聰明,可以利用架構(gòu),工具和技術(shù),Energy Micro提供硬件和軟件,允許在極低能耗下延長(zhǎng)運(yùn)行時(shí)間。