《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式應用中的能耗調試參考
嵌入式應用中的能耗調試參考
摘要: 擁有低功耗MCU本身并不意味著能耗會更低:關鍵在于優化軟件,不僅僅是功能性方面,而且還要顧及能源效率方面。全面控制MCU周邊的硬件并優化軟件和外設的總體使用率對于降低系統能耗而言是至關重要的因素。軟件并不總被看作能量的消耗者,但每個時鐘周期都會消耗電能,盡量減少它們,就能降低能耗。
Abstract:
Key words :

在越來越多的嵌入式" title="嵌入式">嵌入式系統應用中,節能和效率已成為開發人員最優先考慮的因素。這種情況可能是出于以下原因:政府管制、增加電池壽命的需求或者僅僅是需要降低用電量。


為順應這種趨勢,出現了越來越多的“超低功耗”微控制器。不過,至少到近期為止,還沒有出現能夠與之配套的、為開發人員提供對系統能耗" title="能耗">能耗的詳細監控的工具。


擁有低功耗MCU本身并不意味著能耗會更低:關鍵在于優化軟件,不僅僅是功能性方面,而且還要顧及能源效率方面。全面控制MCU周邊的硬件并優化軟件和外設的總體使用率對于降低系統能耗而言是至關重要的因素。軟件并不總被看作能量的消耗者,但每個時鐘周期都會消耗電能,盡量減少它們,就能降低能耗。


節能型的嵌入式系統開發可以看作一種三段循環:硬件調試、軟件功能調試和軟件能耗調試。

節能型的軟件開發
在開發MCU軟件時,需要考慮的主要問題通常是降低存儲器使用量以及盡可能縮減代碼規模。為了實現節能,一種非常常見的方案是使其在盡可能長的時間里處于睡眠模式,但這并不是唯一的節能方式。高能源效率的MCU通常提供了其他功能,以達到更低的能耗。除了使用這些MCU所提供的睡眠模式之外,高效地使用上述的其他功能才是節能的真正訣竅。


隨著開發過程的前移,代碼變得更長,而優化能源效率則變成了一項更為復雜的任務。識別可以用中斷服務例程代替的非必要等待周期或者外設誤用等錯誤,都變得越來越困難。如果這些“能源漏洞”沒有在開發階段被識別并加以解決,那么就幾乎不可能在現場或實驗室測試中檢測到它們。


要查明系統需要使用多少電能,最常見的方法是在一段特定時間內對電流進行采樣,求平均值并外推到更長的時間周期。這種類型的測量可以使用萬用表或示波器來完成,但通常都不可能將結果與代碼例程關聯起來。


另一方面,邏輯分析儀可以用于記錄例程,但通常無法將其關聯到能耗。為了估計電池壽命,使用外推獲得的結果不應該與真實使用情況相差太遠,但是,當目標旨在優化代碼的能源效率時,這種方法的用處很有限。

一種更富有成效的方法
現在,通過使用以圖形化方式實時顯示能耗信息、并能夠給出任何給定時刻的電流和實際運行代碼之間關聯的軟件和硬件工具,就可能顯著地縮短開發時間并減少工作量。你可以使用電源軌上的電流傳感器來監視能耗。


在確定的時間間隔處,就可以對電流進行采樣,完成A/D轉換,然后通過USB端口來傳送這一信息——同電壓和計時一起。此外,MCU會發送程序計數器(PC)采樣,這樣,就可以在主機計算機上將代碼和電流關聯起來。

降低1000倍
高級功率監控(AEM)系統就是現有工具的一個例子,它是Energy Micro公司EFM32 Gecko(壁虎)MCU的入門工具箱和開發工具箱的一部分。與電流消耗量有關的實時信息將顯示在LCD顯示屏上(如果使用DVK),或者將任何一種工具箱通過USB連接到PC上,然后顯示在該公司的energyAware Profiler上。圖1給出了一種常見的energyAware Profiler顯示。這種工具將以圖形化方式表示出電流與時間的關系。

圖1 由于可以對代碼更改的作用進行實時監控,能耗調試得以簡化


下面的這個例子將演示如何使用能耗概要分析并結合EFM32 MCU的特性以節省能耗。在圖2中,使用了LEUART模塊。它支持波特率高達9600的UART通信,同時將能耗保持在最小值。

圖2 運行模式下的LEUART RX輪詢(a),睡眠模式下觸發的LEUART RX中斷(b)

從接收緩沖區獲取數據的一種常見方式是對其進行輪詢,直到獲得有效數據,然后讀取緩沖區。要這樣做,MCU必須處于運行模式,這會造成相對較高的電流使用量。


這一循環的剖析曲線如圖2a所示,是3.33mA的恒定電流消耗量。通過單擊圖表,就能高亮顯示造成電源消耗的函數。


void pollLEUARTRx(void)
{while ( !( LEUART0 -> STATUS & LEUART_STATUS_RXDATAV ) );}
高亮顯示的代碼行是輪詢循環,它會檢查緩沖區是否接收到任何數據。剖析程序將顯示每個函數以及各個函數對總能耗的貢獻。在這里,代碼中唯一的函數是pollLEUARTRx(),所有的能耗都是由它產生的(見圖3)。

圖3 能耗函數

為了避免對RX緩沖區進行輪詢,一種常見的變通方法是啟用RX中斷并將MCU置于睡眠模式。完成之后,很容易看到能耗節省是巨大的。當我們關閉處理器,電流降至1.40mA(見圖2b)。現在,當LEUART接收到數據,它就會被喚醒并通過TX緩沖區將其傳送回去。


當中斷被觸發時,電流尖峰將達到2.5mA,而剖析程序會精確定位到中斷例程(見圖4a)。不過,電流將在這個尖峰值保留較長的一段時間,而通過點擊圖表,就可能會發現在使用UART通信時的另一種常見錯誤。

圖4 帶有LEUART TX輪詢的LEUART RX中斷(a),在接收字節之間處于睡眠模式下的EFM32(b),以及深睡眠模式下的EFM32(c)


void pollLEUARTTX(void)
{while ( !( LEUART0 -> STATUS & LEUART_STATUS_TXC) );}


在發送數據之后,用戶會設置一個while循環以等待傳輸完成。無疑,這會使處理器過長時間保持在運行模式之下。這段循環可以被中斷所取代,一旦傳輸完成,中斷就會喚醒處理器。通過這樣做,就將再次降低電流消耗量(見圖4b)。


現在,在每個接收到的字節之間,處理器都進入睡眠模式,降低了電流。字節傳輸的完成無須處理器的干預,所以就不需要輪詢緩沖區以獲知傳輸何時完成。將循環替換為中斷例程是一種更優雅、更節能的解決方案,正如這兩種方法的不同剖析圖所示。

深睡眠
EFM32 MCU的LEUART模塊可以在深睡眠模式下工作。在這種模式下,高頻振蕩器被關閉,但低頻振蕩器(RC或晶振)仍在運行并給LEUART提供時鐘。如果將EFM32置于深睡眠模式并重復上述例子,能耗將降至微安量級。


為了能夠直觀地顯示這些電流數值,剖析程序從線性坐標切換到對數坐標。在深睡眠模式下,電流現在是1μA,而接收到幀時的尖峰值是80μA(見圖4c)。從第一種方法到最后一種配置,節能倍數超過了1000。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
91久久夜色精品国产网站| 日韩午夜激情av| 欧美日韩在线精品| 女同性一区二区三区人了人一| 亚洲欧洲综合另类在线| 欧美三级黄美女| 欧美成人午夜77777| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品久久久久久久久久尿 | 欧美中文在线观看国产| 午夜精品免费| 午夜精品视频在线观看| 午夜国产不卡在线观看视频| 亚洲永久精品国产| 亚洲免费伊人电影在线观看av| 亚洲天堂av高清| 在线看不卡av| 欧美成人午夜77777| 久久综合激情| 欧美不卡激情三级在线观看| 久色婷婷小香蕉久久| 久久久久青草大香线综合精品| 久久久久高清| 麻豆精品精华液| 欧美—级在线免费片| 欧美日韩成人在线播放| 欧美四级剧情无删版影片| 欧美天堂亚洲电影院在线观看| 欧美日精品一区视频| 国产精品swag| 国产精自产拍久久久久久蜜| 国产日韩欧美在线视频观看| 国产一区日韩一区| 在线观看的日韩av| 亚洲国产日韩欧美| 一本色道久久综合亚洲精品按摩 | 免费日韩av| 欧美日韩国产精品一区二区亚洲| 欧美理论电影网| 国产精品扒开腿做爽爽爽视频| 国产精品日产欧美久久久久| 国产一区白浆| 亚洲经典自拍| 一区二区三区高清在线| 亚洲欧美日产图| 亚洲精品乱码久久久久久按摩观 | 久久精品人人做人人爽| 米奇777超碰欧美日韩亚洲| 欧美jizz19hd性欧美| 欧美日韩国产丝袜另类| 国产精品国产三级国产| 国产主播一区| 亚洲免费观看在线视频| 亚洲欧美综合网| 亚洲日韩欧美一区二区在线| 亚洲一区二区三区精品在线观看| 欧美在线观看视频在线| 在线视频亚洲一区| 一区二区在线观看视频在线观看| 亚洲精品一区二区三区av| 亚洲午夜av电影| 久久激情久久| 亚洲天堂av在线免费观看| 久久久精品一品道一区| 欧美日韩国产999| 国产一区二区三区四区五区美女| 亚洲欧洲一区二区三区| 亚洲欧美综合| 99精品国产99久久久久久福利| 欧美一进一出视频| 欧美高清视频www夜色资源网| 国产精品精品视频| 伊人久久婷婷色综合98网| 在线亚洲一区二区| 亚洲国产日韩在线| 欧美一级免费视频| 欧美精品三区| 激情一区二区三区| 亚洲一级黄色片| 亚洲激情二区| 久久国产精品色婷婷| 欧美视频在线不卡| 亚洲黄色成人久久久| 欧美中文字幕不卡| 亚洲影院免费| 欧美精品v国产精品v日韩精品| 国产日韩在线一区二区三区| 99re热这里只有精品免费视频| 久久精品av麻豆的观看方式 | 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品久久中文| 亚洲人成艺术| 亚洲欧洲精品一区二区三区波多野1战4 | 久久精品国产99国产精品| 亚洲一区二区久久| 欧美激情一区在线| 在线观看欧美一区| 久久爱www| 久久国产福利| 国产欧美在线| 久久狠狠久久综合桃花| 狠狠色综合一区二区| 在线亚洲免费| av成人免费| 欧美激情精品久久久久久蜜臀 | 欧美日韩国产成人高清视频| 亚洲第一在线视频| 亚洲高清自拍| 久久免费偷拍视频| 国产一区二区三区久久精品| 亚洲欧美变态国产另类| 亚洲欧美精品| 欧美性感一类影片在线播放| 91久久黄色| 亚洲精品国产欧美| 欧美国产视频在线| 亚洲国产毛片完整版 | 久久久久久久久岛国免费| 国产九九精品| 亚洲欧美日韩综合国产aⅴ| 亚洲男人第一网站| 国产精品免费看片| 亚洲特黄一级片| 亚洲欧美国产精品va在线观看 | 国产精品久久久久77777| 亚洲手机成人高清视频| 亚洲一区欧美一区| 国产精品高潮呻吟| 亚洲一区二区三区色| 亚洲欧美日韩精品综合在线观看| 欧美日一区二区三区在线观看国产免 | 欧美一区午夜视频在线观看| 国产精品日韩在线播放| 亚洲欧美另类在线| 久久精品国产一区二区电影| 国产亚洲精品久久飘花| 久久精品欧美| 美女主播精品视频一二三四| 亚洲国产高清在线| 日韩亚洲欧美中文三级| 欧美日韩亚洲一区二区| 一本色道精品久久一区二区三区| 午夜精品国产更新| 国产日韩欧美高清| 亚洲第一久久影院| 欧美精品免费观看二区| 一区二区三区高清在线观看| 午夜亚洲福利| 国内精品久久久久影院薰衣草| 亚洲国产视频直播| 欧美精品国产一区| 一区二区三区不卡视频在线观看| 亚洲欧美久久| 国内精品久久久久影院 日本资源| 亚洲黄色毛片| 欧美日韩亚洲一区二区| 亚洲欧美日韩一区二区| 久久青草欧美一区二区三区| 91久久国产综合久久| 亚洲在线1234| 国内成人精品视频| 亚洲精选在线观看| 久久这里有精品视频| 伊人精品成人久久综合软件| 亚洲九九爱视频| 国产精品美女主播| 久久精品国产亚洲精品| 欧美日本乱大交xxxxx| 亚洲欧美成人一区二区在线电影| 久久久久国色av免费看影院| 亚洲国产精品久久久久| 亚洲一区二区三区免费在线观看| 国产情人节一区| 亚洲欧洲另类国产综合| 欧美视频一二三区| 久久精品国产在热久久| 欧美日韩精品免费在线观看视频| 亚洲一区二区在线| 毛片精品免费在线观看| 艳妇臀荡乳欲伦亚洲一区| 久久国产手机看片| 亚洲日本一区二区三区| 欧美伊人影院| 亚洲日本aⅴ片在线观看香蕉| 欧美一区二区三区免费视频| 在线日本成人| 欧美亚洲免费高清在线观看| 亚洲成色777777在线观看影院| 亚洲影视在线播放| 尤妮丝一区二区裸体视频| 亚洲在线播放电影| 亚洲国产精品小视频| 欧美一区午夜精品| 亚洲精品久久久久久久久久久久| 久久成人精品无人区| 99re66热这里只有精品3直播| 久久精品国产亚洲aⅴ| 一本大道久久a久久精二百| 久久婷婷国产综合国色天香| 99伊人成综合|