《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 微控制器的功耗調試:找出能量泄漏,降低嵌入式系統功耗

微控制器的功耗調試:找出能量泄漏,降低嵌入式系統功耗

2011-06-29

  功耗" title="功耗">功耗調試技術使軟件工程師得以了解嵌入式系統的軟件對系統功耗的影響。通過建立源代碼和功耗之間的聯系,使得測試和調整系統功耗成為可能,即所謂功耗調試。傳統上,降低功耗僅是硬件工程師的設計目標;然而在實際運行的系統中,功耗不僅取決于硬件的設計,而且還與硬件如何被使用有關,而后者則是由系統軟件來控制的。

<a class=

圖1:IAR Systems的C-SPY調試器" title="調試器">調試器能夠在不同的視圖中顯示靜態和動態的功耗數據。

  功耗調試技術基于對功耗進行采樣,并建立每個采樣數據與程序的指令序列(以及源代碼)之間的關聯。其中的難點之一在于實現高精度的采樣。理想情況下,對功耗的采樣頻率應該與系統時鐘相同,但系統中的電容性元件會降低此類測量的可靠性。從軟件工程師的角度來看,更感興趣的是功耗與源代碼以及程序運行期間的各種事件之間的聯系,而非個別的指令,因此所需的采樣分辨率將大大低于對每個指令進行采樣的頻率。

  對功耗的測量由調試工具完成。例如,IAR Embedded Workbench所支持的調試工具是IAR J-Link Ultra。它能夠測量芯片的供電電源經過一個串聯小電阻之后的壓降,見圖2。該壓降是使用差分放大器進行測量,并通過模數轉換器進行采樣的。 

IAR J-Link Ultra能夠測量芯片的供電電源經過一個串聯小電阻之后的壓降

圖2:IAR J-Link Ultra能夠測量芯片的供電電源經過一個串聯小電阻之后的壓降。

  要提高功耗調試的精確性,關鍵在于建立指令跟蹤與功耗采樣之間的良好關聯。最佳的關聯僅當能夠進行完全的指令跟蹤時才能實現,但其缺點在于并非所有芯片都能支持這一功能;即便支持,也通常需要特殊的調試工具。

  要在較低的精確性下達到較好的關聯度,可以使用一些現代片上調試架構所支持的PC采樣功能。該功能周期性地對PC進行采樣,并給出每個采樣的時間戳。與此同時,調試工具使用模數轉換器對芯片的功耗進行采樣。通過比對功耗采樣值和PC采樣值的時間戳,調試器就能夠在同一根時間軸上顯示功耗數據以及中斷紀錄、變量監控等圖形,并且將功耗數據與源代碼關聯起來,見圖3。 

PC和功耗采樣校正

圖3:PC和功耗采樣校正。

  一般來說,功耗優化與速度優化是非常相似的。一個任務運行得越快,低功耗模式持續的時間就能越長。因此,將處理器的空閑時間最大化可以降低系統的功耗。

  想要找出系統中不必要的能耗以及在何處能夠降低這些能耗是有難度的。通常它們并非源代碼中顯而易見地暴露出來的缺陷,而更多地存在于對硬件使用方式的調整之中。

  等待設備的狀態

  一個導致不必要能耗的常見錯誤是使用輪詢來等待某個外設狀態的改變。下面的例子中,代碼一直不中斷地運行,直到狀態變量變為預期的值。

  while (USBD_GetState() < USBD_STATE_CONFIGURED);

  while ((BASE_PMC->MC_SR & MC_MCKRDY) != PMC_MCKRDY);

  另一種類似的代碼是在for或while循環中實現軟件延時,例如:

   i = 10000; // SW Delay

  do i--;  

  while (i != 0);

  這段代碼使得CPU一直忙于執行除了計時之外沒有任何作用的指令。

  在上述這些情況中,可以通過改寫代碼來降低功耗。延時最好是通過硬件定時器來實現。CPU在設置好定時器中斷之后就可以進入低功耗模式直到被中斷喚醒。同樣,對外設狀態的輪詢若有可能也應該通過中斷來解決,或者使用定時器中斷從而使得CPU在兩次輪詢之間可以進入休眠。

  DMA" title="DMA">DMA vs polled I/O  

  傳統上,DMA被用于提高傳輸速度。在某些架構中,CPU即使在DMA傳輸過程中也可以進入休眠模式。功耗調試使得開發者能夠試驗并通過調試器看到與傳統由CPU驅動的傳輸方式相比,DMA技術所帶來的效果。  

  低功耗模式  

  很多嵌入式應用都把大多數時間花費在等待某些事件發生。如果處理器在空閑時仍然全速運行,電池的壽命將在幾乎未作任何事情的情況下被消耗。所以在很多應用中,處理器僅在總計很少的時間里才被激活。通過將處理器在空閑時間里置于低功耗模式,電池的壽命將得到數量級的延長。

  一個好的方式是使用RTOS和面向任務的設計。可以定義一個最低優先級,僅當沒有任何其他任務需要運行時才會被運行的任務。這個空閑任務將是實現功耗管理的理想場所。在實踐中,當空閑任務每次被激活時,都將處理器(或其部份)置于(可能的)多種低功耗模式之一。

  CPU頻率理論上,CMOS MCU的功耗可由以下公式得出: P = f x U^2 x k 上式中的f是時鐘頻率,U是供電電壓,k是數。功耗調試使得開發者能夠驗證功耗與時鐘頻率之間的關系。運行在50MHz且幾乎不休眠的系統,當運行在100MHz時將在休眠模式下消耗約50%的時間。調試器中的功耗數據使得開發者能夠檢驗所期望的行為,以及當如果存在與時鐘頻率的非線性關系時,選擇功耗最低的工作頻率。

 

  中斷處理   

  圖4顯示了一個事件驅動系統的功耗示意圖,其在t0時處于非激活模式,消耗的電流為I0。在t1時系統被激活且電流上升為I1,對應于系統在激活模式下且有一個外設被使用時的功耗。在t2時,程序的運行被一個更高優先級的中斷所掛起。已經被激活的外設沒有被關閉,雖然高優先級的線程中并未用到它們。更多的外設被新的線程所激活,導致電流在t2和t3之間升高為I2。在t3時,控制權重又回到低優先級的線程。

顯示了一個事件驅動系統的功耗示意圖

圖4:顯示了一個事件驅動系統的功耗示意圖。

  該系統的功能可以非常出色,并且能夠在運行速度和代碼尺寸兩方面進行優化。然而在功耗方面,還有更多的優化可以實現。圖中黃色的區域表示如果在t2和t3之間關閉不需要的外設,或者對調這兩個線程的優先級,所能夠節省的能量。

  使用功耗調試,能夠更容易地發現當中斷發生時功耗的額外上升,并將其標識為異常。

  查找有沖突的硬件初始化  

  為了避免輸入端浮動,在通常的設計中會將未使用的MCU I/O管腳接地。如果軟件錯誤地將某個接地管腳配置為輸出邏輯“1”,高達25mA的電流會流向該管腳。這種非期望的高電流在功耗采樣圖形上很容易觀測到;同時還可以通過觀察系統啟動過程中的圖形來查找相關的初始化錯誤代碼。

  模擬干擾也可能對功耗調試產生影響。模數混合電路板有其自身的特性。板級的布局和走線對于抑制模擬噪聲、保證對低電平模擬信號的精確采樣十分重要。良好的混合信號電路需要對硬件進行仔細的考量和認真的設計。

  總結

  功耗調試使得嵌入式系統的開發者能夠深入了解他們的應用,并發現程序的代碼對功耗有何影響。基于這些信息,可以通過調整和優化源代碼以最大限度地降低功耗。使用這種方法,工程師們能夠確保他們的設計已經盡可能地節省能量,而又不會對系統性能產生不利的影響。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产你懂的| 欧美激情中文不卡| 欧美一区日韩一区| 欧美黄色网络| 久久午夜精品| 久久精品二区| 欧美在线免费视频| 午夜亚洲影视| 亚洲免费视频成人| 欧美在线看片a免费观看| 亚洲一区久久久| 亚洲图片自拍偷拍| 一区二区三区高清在线| 日韩一区二区久久| 99精品热视频只有精品10| 亚洲人成网站色ww在线| 国产欧美日本在线| 久久午夜精品一区二区| 欧美一区高清| 亚洲在线播放| 亚洲一区二区三区中文字幕在线| 在线亚洲一区| 亚洲午夜国产一区99re久久| 欧美一区二区精品| 小黄鸭精品aⅴ导航网站入口| 亚洲国产天堂网精品网站| 一区精品在线| 亚洲丰满在线| 亚洲精品孕妇| 亚洲国产精品t66y| 亚洲国产午夜| 99re6热在线精品视频播放速度| 黄网动漫久久久| 一区二区视频免费在线观看| 亚洲第一福利视频| 亚洲精品孕妇| 亚洲一区二区免费| 午夜精品久久久久久久久久久久久 | 欧美韩国在线| 欧美区一区二| 国产精品亚洲аv天堂网| 国产亚洲精品久久飘花| 激情婷婷亚洲| 亚洲精品五月天| 亚洲午夜羞羞片| 9l视频自拍蝌蚪9l视频成人| 亚洲天堂免费观看| 欧美一区二视频在线免费观看| 亚洲欧美偷拍卡通变态| 欧美在线free| aⅴ色国产欧美| 99国产精品久久久久老师| 亚洲第一综合天堂另类专| 亚洲精品久久久久| 亚洲精品国产精品国自产观看| 久久国产精品亚洲va麻豆| 亚洲国产一区二区三区青草影视 | 欧美一区二区精品| 亚洲精品一区二区网址| 亚洲欧美精品在线| 久久夜色精品国产| 欧美日韩亚洲激情| 国产真实乱偷精品视频免| 亚洲国产女人aaa毛片在线| 亚洲深夜激情| 亚洲电影中文字幕| 亚洲一区二区在线播放| 麻豆国产精品777777在线 | 欧美日韩www| 国产欧美日韩亚洲| 亚洲欧洲偷拍精品| 性欧美8khd高清极品| 一区二区三区久久久| 99精品免费网| 久久国产福利国产秒拍| 欧美日韩国产精品自在自线| 国产亚洲一区二区三区| 日韩天堂av| 亚洲福利国产精品| 午夜影院日韩| 久久激情综合网| 欧美日韩大陆在线| 黄色精品一区二区| 亚洲一区自拍| 一区二区动漫| 欧美成人免费观看| 国产在线精品一区二区夜色| 亚洲视频每日更新| 亚洲蜜桃精久久久久久久| 久久精品国产清自在天天线| 欧美婷婷在线| 亚洲激情一区二区| 亚洲成人在线网站| 欧美性猛交99久久久久99按摩| 欧美日韩日本国产亚洲在线| 国产精品高潮在线| 亚洲第一精品在线| 久久av二区| 99精品视频免费观看视频| 久久国产精品色婷婷| 欧美亚男人的天堂| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品99久久久久久久女警 | 亚洲特黄一级片| 99爱精品视频| 欧美成人精品在线视频| 在线不卡欧美| 欧美一区二区在线免费观看| 欧美在线3区| 国产精品一区二区久久精品| 一区二区三区四区五区精品视频| 亚洲欧美综合网| 亚洲性感美女99在线| 欧美日韩国产区一| 亚洲国产一区二区在线| 91久久在线播放| 久久久久成人网| 国产一区二区av| 欧美一区二区三区婷婷月色 | 亚洲国产欧美精品| 久久久五月婷婷| 国产亚洲欧美一区在线观看| 午夜天堂精品久久久久| 亚洲激情视频在线| 久久综合999| 韩国av一区| 久久精品国产亚洲aⅴ| 久久精品夜色噜噜亚洲a∨| 欧美精品日本| 最近中文字幕mv在线一区二区三区四区| 亚洲一区尤物| 亚洲一区日本| 国产精品一区二区三区乱码| 亚洲男人天堂2024| 久久久av网站| 在线观看福利一区| 亚洲日韩视频| 欧美日韩免费| 亚洲视频综合| 久久国产精品一区二区三区四区| 欧美日韩日日骚| 韩国av一区| 亚洲片在线观看| 欧美看片网站| 一区二区三区视频观看| 久久不射2019中文字幕| 国自产拍偷拍福利精品免费一| 亚洲欧美日韩在线高清直播| 欧美主播一区二区三区美女 久久精品人| 欧美精品一区在线发布| 亚洲欧洲日本一区二区三区| 亚洲一区二区av电影| 欧美激情乱人伦| 亚洲精品免费观看| 亚洲欧美日韩一区二区三区在线观看 | 亚洲欧美在线网| 国产丝袜一区二区| 亚洲黄色天堂| 国产精品福利在线观看网址| 欧美一区2区三区4区公司二百| 午夜视频在线观看一区二区三区| 亚洲福利视频一区二区| 欧美日韩一级视频| 夜夜躁日日躁狠狠久久88av| 亚洲欧美高清| 国语对白精品一区二区| 亚洲黄网站在线观看| 欧美精品日本| 新67194成人永久网站| 免费91麻豆精品国产自产在线观看| 国产精品尤物| 久久精品国产亚洲高清剧情介绍| 久久国产一区二区| 在线欧美亚洲| 亚洲在线视频| 狠狠色伊人亚洲综合成人| 一片黄亚洲嫩模| 欧美另类久久久品| 亚洲在线一区二区三区| 毛片一区二区| 亚洲女人天堂成人av在线| 另类国产ts人妖高潮视频| 日韩亚洲在线| 久久在线视频| 在线午夜精品| 毛片av中文字幕一区二区| 亚洲视频日本| 欧美va天堂在线| 亚洲女同在线| 欧美另类高清视频在线| 亚洲免费观看高清在线观看| 欧美在线观看视频在线| 亚洲精品久久久蜜桃 | 亚洲国产精品久久久| 欧美成人午夜激情在线| 亚洲国产日韩欧美一区二区三区| 亚洲国产小视频在线观看| 国产精品久久77777| 亚洲免费在线视频一区 二区| 久久国产精品高清|