- 能源調試及軟件描述在超低功耗的應用技術
- energyAware Profiler減少開發(fā)功能上正確和能量優(yōu)化的代碼所需時間
- 關鍵要知道在何處消耗資源
- 一個低能量的外圍設備套裝組合實現(xiàn)的
- 不能忽視應用源代碼的作用
今天幾乎所有微控制器的應用都需要更多了解它們在內存、時鐘周期及最重要的部分—能源方面是如何消耗寶貴的資源的。雖然工程師們可能本能地知道有些應用會消耗掉一些能量或能源,但只有通過進一步的檢測,這種直覺才能得到證實。通常情況下,檢測的形式是在給定時間內進行簡單的平均電流測量,然后再推斷出,比如說,一節(jié)單電池的總的預期壽命。
現(xiàn)在人們更加重視可配置和可編程的解決方案,主要是因為在微控制器中,能源消耗很大程度上直接來自于處理內核和許多外圍設備的活動,這也是為什么現(xiàn)在半導體產業(yè)對超低功耗微控制器解決方案的需求量急劇增加的原因。
傳統(tǒng)上,在大多數能源敏感的應用中人們一直采用8位或16位的設備,因為這些設備的內核很小,門相對較少, 泄漏電流的水平較低。然而今天的應用要求的處理能力要比8位或16位內核所能集合的更強大。
過去人們普遍假定32位內核產生的電流在節(jié)能模式下就會有益于能量敏感的應用。今天看來這是一種誤解。利用現(xiàn)有的全套低功耗設計技術, 32位內核才可以實現(xiàn)低功耗模式,節(jié)能效果和8位內核一樣好,甚至更好。
Energy Micro生產的EFM32 Gecko微控制器是一種新的節(jié)能設備,是專門開發(fā)來用在MCU操作所有階段的產品,可減少電流和時間(即: 真正的能量)。圖1簡要說明了,與尺寸較小的處理器內核相比,這種以ARM Cortex™- M3為基礎的設備完成任務的時間更快,更能在低功耗模式下花更多的時間,從而進一步降低平均功耗。
圖1:一個節(jié)能MCU內核可通過完整的喚醒/操作/返回睡眠周期節(jié)省幾個不同區(qū)域的能量。藍色區(qū)域表示一個更強大的32位內核完成任務所節(jié)省的能量,所需的周期比一個8位內核需要的少,在活躍和睡眠模式下消耗的電流也較少。
圖2:Energy Micro的ARM ®Cortex™- M3芯片結構是以EFM32 Gecko微控制器為基礎的。
[page]
由于源代碼庫規(guī)模的增長,源代碼變得越來越難以識別,例如,當需要中斷服務程序來取代循環(huán)時:一個簡單的代碼疏忽可能會導致處理器繼續(xù)保持全面活躍,同時等待某個外部事件的發(fā)生,而不是進入節(jié)能睡眠模式。
在檢查代碼或在理想條件下進行測試時,這種偽隨機事件很容易被忽略,而且在浸泡試驗中很難捕捉到它。同樣,即使是最有經驗的工程師可能也無法獨自從一張純粹的代碼列表中識別出消耗了不定量能源的代碼。
雖然通過萬用表閱讀或示波器跟蹤可能會測出給定時間內的能耗平均水平,它卻不能測出特定事件所消耗的電流。同樣,邏輯分析儀可以顯示某個特別程序開始運行的時間和次數,但卻不能將此與電涌聯(lián)系起來。
利用創(chuàng)新科技,Energy Micro開發(fā)了一種克服這些限制的解決方案,該方案不僅提供了所用的瞬時能量水平,也將信息與當時實際采用的代碼聯(lián)系了起來。
energyAware Profiler是用于PC的一種能量調試工具,它采用了現(xiàn)有的EFM32 Gecko開發(fā)工具包中的專用Advanced Energy Monitoring (先進能源監(jiān)控AEM)系統(tǒng)。AEM能顯示開發(fā)工具包里印刷線路板上液晶顯示器應用的實時耗電量,如圖3所示,在運用Profiler軟件時,能源調試的真正能量才得以實現(xiàn)。
圖3:節(jié)能的EFM32 Gecko微控制器開發(fā)工具包里有Advanced Energy Monitoring(先進能源監(jiān)控)。
默認配置顯示出時間推移中的能量水平,使工程師能識別出某個關注區(qū)域里使用的能源可能比預期的高了。隨著時間的推移, 系統(tǒng)推斷出的電池供電應用的預期壽命指標比通過一張數據表中估算出最好和最差情況下的數據更準確。
在與energyAware Profiler一同使用時,AEM系統(tǒng)采用一個基于ARM的串行接口收集應用中的其它信息。傳遞給它的數據采用AEM系統(tǒng)的硬件進行解碼,然后再傳到PC上。這項活動的非侵入性意味著目標的能源剖面不以任何方式改變。
其它數據包括重要的調試信息,包括Program Counter(程序計數器),它使energyAware Profiler能及時識別在某個特定時刻采用的實際源代碼,如能量圖所示。這會立刻向工程師指出該程序產生高能耗的任何區(qū)域,將代碼進行優(yōu)化以降低整體能源消耗。見圖4。
圖4:energyAware Profiler同時提供三個角度、一張實時電流消耗圖、一張設備代碼列表和一個單獨應用功能的能量剖面。
[page]
通過查看這些與源代碼緊密相關的圖表資料,工程師很快就能夠在一個項目中識別、放棄和優(yōu)先考慮具體的程序,避免不必要的能源使用量。這很容易轉化為一個量級的低能源消耗,因此,是更為有效的應用。
在為一個設備或應用設定額定功率時,參考數據表對工程隊而言是司空見慣的。然而,正如我們之前提到的,能源和功率根本不一樣,很多低功耗設備使用更多的能源,因為它們在一個較長時期內很活躍。由于這個原因,我們不能忽視電源管理的時間軸,但很少能以一個可靠的方式實現(xiàn)它。
顯然在這種情況下該軟件的剖面是至關重要的。可惜大多數的軟件工程師并未深刻意識到哪個代碼具有公開的“能源效率”。這不是批評,而是觀察的結果,我們不能把軟件看成先天資源不足,說它超出了傳統(tǒng)的時鐘周期和記憶的條件。不過,今天每個時鐘周期仍在消耗能源, 減少消耗是工程師們開發(fā)超低能源應用時所要面對的主要挑戰(zhàn)。
此外,減少時鐘周期直接關系到使用較少的能量,正確優(yōu)化時鐘周期提供了較佳的整體能量剖面。很明顯,一個功能上正確的程序不一定能通過設計優(yōu)化能源效率。
為EFM32 Gecko MCU開發(fā)的energyAware Profiler技術有一個從0.1μA至100mA的動態(tài)范圍,應用的精細調試與功能調試同時進行,從而將開發(fā)時間的結果最大化了。
能源調試以及軟件描述在超低功耗應用和技術中變得越來越關鍵。雖然EFM32 Gecko MCU是一種固有的低功率技術,隨著時間的推移, 保持較低的能源消耗與應用的性能之間有著內在的聯(lián)系。這使得它在短期內受面向應用的條件限制,很難模擬。雖然數據表可能會幫助一位工程師了解在一定條件下某個設備使用的能源數量,但是只有當應用程序真的實際運行了,該數據表的數字才真的會得到檢驗。
工程師們有了經驗和足夠的時間,就能夠開發(fā)出功能上正確和能量優(yōu)化的代碼,而有了energyAware Profiler的幫助,所需的時間和專業(yè)知識明顯減少了,不論所有工程隊的時間壓力有多大都能趕上進度。工程隊現(xiàn)在更好地配備了低功率技術及能源描述解決方案,可以應對真正低能源解決方案的設計挑戰(zhàn)了。