當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式應(yīng)用中的能耗調(diào)試

在越來越多的嵌入式系統(tǒng)應(yīng)用中,節(jié)能和效率已成為開發(fā)人員最優(yōu)先考慮的因素。這種情況可能是出于以下原因:政府管制、增加電池壽命的需求或者僅僅是需要降低用電量。


為順應(yīng)這種趨勢,出現(xiàn)了越來越多的“超低功耗”微控制器。不過,至少到近期為止,還沒有出現(xiàn)能夠與之配套的、為開發(fā)人員提供對系統(tǒng)能耗的詳細監(jiān)控的工具。


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


節(jié)能型的嵌入式系統(tǒng)開發(fā)可以看作一種三段循環(huán):硬件調(diào)試、軟件功能調(diào)試和軟件能耗調(diào)試。

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


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


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


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

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

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

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

圖1 由于可以對代碼更改的作用進行實時監(jiān)控,能耗調(diào)試得以簡化


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

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

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


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


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

圖3 能耗函數(shù)

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


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

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


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


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


現(xiàn)在,在每個接收到的字節(jié)之間,處理器都進入睡眠模式,降低了電流。字節(jié)傳輸?shù)耐瓿蔁o須處理器的干預(yù),所以就不需要輪詢緩沖區(qū)以獲知傳輸何時完成。將循環(huán)替換為中斷例程是一種更優(yōu)雅、更節(jié)能的解決方案,正如這兩種方法的不同剖析圖所示。

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


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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉