你的位置:首頁 > 電源管理 > 正文

能源調(diào)試- MCU軟件優(yōu)化的下一個(gè)步驟

發(fā)布時(shí)間:2010-07-15 來源:電子元件技術(shù)網(wǎng)

中心議題:
  • 能源調(diào)試及軟件描述在超低功耗的應(yīng)用技術(shù)
  • energyAware Profiler減少開發(fā)功能上正確和能量優(yōu)化的代碼所需時(shí)間
解決方案:
  • 關(guān)鍵要知道在何處消耗資源
  • 一個(gè)低能量的外圍設(shè)備套裝組合實(shí)現(xiàn)的
  • 不能忽視應(yīng)用源代碼的作用

今天幾乎所有微控制器的應(yīng)用都需要更多了解它們?cè)趦?nèi)存、時(shí)鐘周期及最重要的部分—能源方面是如何消耗寶貴的資源的。雖然工程師們可能本能地知道有些應(yīng)用會(huì)消耗掉一些能量或能源,但只有通過進(jìn)一步的檢測,這種直覺才能得到證實(shí)。通常情況下,檢測的形式是在給定時(shí)間內(nèi)進(jìn)行簡單的平均電流測量,然后再推斷出,比如說,一節(jié)單電池的總的預(yù)期壽命。

現(xiàn)在人們更加重視可配置和可編程的解決方案,主要是因?yàn)樵谖⒖刂破髦校茉聪暮艽蟪潭壬现苯觼碜杂谔幚韮?nèi)核和許多外圍設(shè)備的活動(dòng),這也是為什么現(xiàn)在半導(dǎo)體產(chǎn)業(yè)對(duì)超低功耗微控制器解決方案的需求量急劇增加的原因。

傳統(tǒng)上,在大多數(shù)能源敏感的應(yīng)用中人們一直采用8位或16位的設(shè)備,因?yàn)檫@些設(shè)備的內(nèi)核很小,門相對(duì)較少, 泄漏電流的水平較低。然而今天的應(yīng)用要求的處理能力要比8位或16位內(nèi)核所能集合的更強(qiáng)大。

過去人們普遍假定32位內(nèi)核產(chǎn)生的電流在節(jié)能模式下就會(huì)有益于能量敏感的應(yīng)用。今天看來這是一種誤解。利用現(xiàn)有的全套低功耗設(shè)計(jì)技術(shù), 32位內(nèi)核才可以實(shí)現(xiàn)低功耗模式,節(jié)能效果和8位內(nèi)核一樣好,甚至更好。

Energy Micro生產(chǎn)的EFM32 Gecko微控制器是一種新的節(jié)能設(shè)備,是專門開發(fā)來用在MCU操作所有階段的產(chǎn)品,可減少電流和時(shí)間(即: 真正的能量)。圖1簡要說明了,與尺寸較小的處理器內(nèi)核相比,這種以ARM Cortex™- M3為基礎(chǔ)的設(shè)備完成任務(wù)的時(shí)間更快,更能在低功耗模式下花更多的時(shí)間,從而進(jìn)一步降低平均功耗。

圖1:一個(gè)節(jié)能MCU內(nèi)核可通過完整的喚醒/操作/返回睡眠周期節(jié)省幾個(gè)不同區(qū)域的能量。藍(lán)色區(qū)域表示一個(gè)更強(qiáng)大的32位內(nèi)核完成任務(wù)所節(jié)省的能量,所需的周期比一個(gè)8位內(nèi)核需要的少,在活躍和睡眠模式下消耗的電流也較少。
如圖2所示,Gecko已證明了它所消耗的能量僅為8位、16位或32位解決方案所需能量的四分之一。這一性能在很大程度上是通過一個(gè)低能量的外圍設(shè)備套裝組合實(shí)現(xiàn)的,這個(gè)組合包括外圍反射系統(tǒng)(使得外圍設(shè)備圍繞內(nèi)核自動(dòng)運(yùn)作)、五個(gè)不同的和分級(jí)的低能量模式和非??焖俚膯拘褧r(shí)間。

圖2:Energy Micro的ARM ®Cortex™- M3芯片結(jié)構(gòu)是以EFM32 Gecko微控制器為基礎(chǔ)的。
要實(shí)現(xiàn)目標(biāo)應(yīng)用中盡可能低的能源消耗,我們不能忽視應(yīng)用源代碼所發(fā)揮的關(guān)鍵作用。如果電池壽命被充分最大化了, 源代碼的設(shè)計(jì)就要盡量使用低能量的外圍設(shè)備和低能量模式。
[page]
由于源代碼庫規(guī)模的增長,源代碼變得越來越難以識(shí)別,例如,當(dāng)需要中斷服務(wù)程序來取代循環(huán)時(shí):一個(gè)簡單的代碼疏忽可能會(huì)導(dǎo)致處理器繼續(xù)保持全面活躍,同時(shí)等待某個(gè)外部事件的發(fā)生,而不是進(jìn)入節(jié)能睡眠模式。

在檢查代碼或在理想條件下進(jìn)行測試時(shí),這種偽隨機(jī)事件很容易被忽略,而且在浸泡試驗(yàn)中很難捕捉到它。同樣,即使是最有經(jīng)驗(yàn)的工程師可能也無法獨(dú)自從一張純粹的代碼列表中識(shí)別出消耗了不定量能源的代碼。

雖然通過萬用表閱讀或示波器跟蹤可能會(huì)測出給定時(shí)間內(nèi)的能耗平均水平,它卻不能測出特定事件所消耗的電流。同樣,邏輯分析儀可以顯示某個(gè)特別程序開始運(yùn)行的時(shí)間和次數(shù),但卻不能將此與電涌聯(lián)系起來。

利用創(chuàng)新科技,Energy Micro開發(fā)了一種克服這些限制的解決方案,該方案不僅提供了所用的瞬時(shí)能量水平,也將信息與當(dāng)時(shí)實(shí)際采用的代碼聯(lián)系了起來。

energyAware Profiler是用于PC的一種能量調(diào)試工具,它采用了現(xiàn)有的EFM32 Gecko開發(fā)工具包中的專用Advanced Energy Monitoring (先進(jìn)能源監(jiān)控AEM)系統(tǒng)。AEM能顯示開發(fā)工具包里印刷線路板上液晶顯示器應(yīng)用的實(shí)時(shí)耗電量,如圖3所示,在運(yùn)用Profiler軟件時(shí),能源調(diào)試的真正能量才得以實(shí)現(xiàn)。

圖3:節(jié)能的EFM32 Gecko微控制器開發(fā)工具包里有Advanced Energy Monitoring(先進(jìn)能源監(jiān)控)。
該軟件通過USB接口在Windows和開發(fā)工具包界面上運(yùn)行。來自開發(fā)工具包里的基本數(shù)據(jù)使PC顯示出運(yùn)行在目標(biāo)MCU上的應(yīng)用代碼的實(shí)時(shí)能量剖面。

默認(rèn)配置顯示出時(shí)間推移中的能量水平,使工程師能識(shí)別出某個(gè)關(guān)注區(qū)域里使用的能源可能比預(yù)期的高了。隨著時(shí)間的推移, 系統(tǒng)推斷出的電池供電應(yīng)用的預(yù)期壽命指標(biāo)比通過一張數(shù)據(jù)表中估算出最好和最差情況下的數(shù)據(jù)更準(zhǔn)確。

在與energyAware Profiler一同使用時(shí),AEM系統(tǒng)采用一個(gè)基于ARM的串行接口收集應(yīng)用中的其它信息。傳遞給它的數(shù)據(jù)采用AEM系統(tǒng)的硬件進(jìn)行解碼,然后再傳到PC上。這項(xiàng)活動(dòng)的非侵入性意味著目標(biāo)的能源剖面不以任何方式改變。

其它數(shù)據(jù)包括重要的調(diào)試信息,包括Program Counter(程序計(jì)數(shù)器),它使energyAware Profiler能及時(shí)識(shí)別在某個(gè)特定時(shí)刻采用的實(shí)際源代碼,如能量圖所示。這會(huì)立刻向工程師指出該程序產(chǎn)生高能耗的任何區(qū)域,將代碼進(jìn)行優(yōu)化以降低整體能源消耗。見圖4。

圖4:energyAware Profiler同時(shí)提供三個(gè)角度、一張實(shí)時(shí)電流消耗圖、一張?jiān)O(shè)備代碼列表和一個(gè)單獨(dú)應(yīng)用功能的能量剖面。
該圖通過寬度和高度的軌跡和快速的量級(jí)來代表能量的使用。下面是獨(dú)立的峰值 – 很容易通過使用示波器來監(jiān)控電源的電流進(jìn)行識(shí)別- 實(shí)際上可能并不需要進(jìn)一步調(diào)查,而長期以來相對(duì)較少的活動(dòng)其實(shí)也代表無用循環(huán)可以輕易被中斷驅(qū)動(dòng)的事件所取代,這將使設(shè)備進(jìn)入一個(gè)節(jié)能睡眠模式的過渡期。
[page]
通過查看這些與源代碼緊密相關(guān)的圖表資料,工程師很快就能夠在一個(gè)項(xiàng)目中識(shí)別、放棄和優(yōu)先考慮具體的程序,避免不必要的能源使用量。這很容易轉(zhuǎn)化為一個(gè)量級(jí)的低能源消耗,因此,是更為有效的應(yīng)用。

在為一個(gè)設(shè)備或應(yīng)用設(shè)定額定功率時(shí),參考數(shù)據(jù)表對(duì)工程隊(duì)而言是司空見慣的。然而,正如我們之前提到的,能源和功率根本不一樣,很多低功耗設(shè)備使用更多的能源,因?yàn)樗鼈冊(cè)谝粋€(gè)較長時(shí)期內(nèi)很活躍。由于這個(gè)原因,我們不能忽視電源管理的時(shí)間軸,但很少能以一個(gè)可靠的方式實(shí)現(xiàn)它。

顯然在這種情況下該軟件的剖面是至關(guān)重要的??上Т蠖鄶?shù)的軟件工程師并未深刻意識(shí)到哪個(gè)代碼具有公開的“能源效率”。這不是批評(píng),而是觀察的結(jié)果,我們不能把軟件看成先天資源不足,說它超出了傳統(tǒng)的時(shí)鐘周期和記憶的條件。不過,今天每個(gè)時(shí)鐘周期仍在消耗能源, 減少消耗是工程師們開發(fā)超低能源應(yīng)用時(shí)所要面對(duì)的主要挑戰(zhàn)。

此外,減少時(shí)鐘周期直接關(guān)系到使用較少的能量,正確優(yōu)化時(shí)鐘周期提供了較佳的整體能量剖面。很明顯,一個(gè)功能上正確的程序不一定能通過設(shè)計(jì)優(yōu)化能源效率。

為EFM32 Gecko MCU開發(fā)的energyAware Profiler技術(shù)有一個(gè)從0.1μA至100mA的動(dòng)態(tài)范圍,應(yīng)用的精細(xì)調(diào)試與功能調(diào)試同時(shí)進(jìn)行,從而將開發(fā)時(shí)間的結(jié)果最大化了。

能源調(diào)試以及軟件描述在超低功耗應(yīng)用和技術(shù)中變得越來越關(guān)鍵。雖然EFM32 Gecko MCU是一種固有的低功率技術(shù),隨著時(shí)間的推移, 保持較低的能源消耗與應(yīng)用的性能之間有著內(nèi)在的聯(lián)系。這使得它在短期內(nèi)受面向應(yīng)用的條件限制,很難模擬。雖然數(shù)據(jù)表可能會(huì)幫助一位工程師了解在一定條件下某個(gè)設(shè)備使用的能源數(shù)量,但是只有當(dāng)應(yīng)用程序真的實(shí)際運(yùn)行了,該數(shù)據(jù)表的數(shù)字才真的會(huì)得到檢驗(yàn)。

工程師們有了經(jīng)驗(yàn)和足夠的時(shí)間,就能夠開發(fā)出功能上正確和能量優(yōu)化的代碼,而有了energyAware Profiler的幫助,所需的時(shí)間和專業(yè)知識(shí)明顯減少了,不論所有工程隊(duì)的時(shí)間壓力有多大都能趕上進(jìn)度。工程隊(duì)現(xiàn)在更好地配備了低功率技術(shù)及能源描述解決方案,可以應(yīng)對(duì)真正低能源解決方案的設(shè)計(jì)挑戰(zhàn)了。
要采購工具么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉