嵌入式應(yīng)用中的能耗調(diào)試
在越來越多的嵌入式系統(tǒng)應(yīng)用中,節(jié)能和效率已成為開發(fā)人員最優(yōu)先考慮的因素。這種情況可能是出于以下原因:政府管制、增加電池壽命的需求或者僅僅是需要降低用電量。
本文引用地址:http://m.butianyuan.cn/article/151045.htm
為順應(yīng)這種趨勢(shì),出現(xiàn)了越來越多的“超低功耗”微控制器。不過,至少到近期為止,還沒有出現(xiàn)能夠與之配套的、為開發(fā)人員提供對(duì)系統(tǒng)能耗的詳細(xì)監(jiān)控的工具。
擁有低功耗MCU本身并不意味著能耗會(huì)更低:關(guān)鍵在于優(yōu)化軟件,不僅僅是功能性方面,而且還要顧及能源效率方面。全面控制MCU周邊的硬件并優(yōu)化軟件和外設(shè)的總體使用率對(duì)于降低系統(tǒng)能耗而言是至關(guān)重要的因素。軟件并不總被看作能量的消耗者,但每個(gè)時(shí)鐘周期都會(huì)消耗電能,盡量減少它們,就能降低能耗。
節(jié)能型的嵌入式系統(tǒng)開發(fā)可以看作一種三段循環(huán):硬件調(diào)試、軟件功能調(diào)試和軟件能耗調(diào)試。
節(jié)能型的軟件開發(fā)
在開發(fā)MCU軟件時(shí),需要考慮的主要問題通常是降低存儲(chǔ)器使用量以及盡可能縮減代碼規(guī)模。為了實(shí)現(xiàn)節(jié)能,一種非常常見的方案是使其在盡可能長(zhǎng)的時(shí)間里處于睡眠模式,但這并不是唯一的節(jié)能方式。高能源效率的MCU通常提供了其他功能,以達(dá)到更低的能耗。除了使用這些MCU所提供的睡眠模式之外,高效地使用上述的其他功能才是節(jié)能的真正訣竅。
隨著開發(fā)過程的前移,代碼變得更長(zhǎng),而優(yōu)化能源效率則變成了一項(xiàng)更為復(fù)雜的任務(wù)。識(shí)別可以用中斷服務(wù)例程代替的非必要等待周期或者外設(shè)誤用等錯(cuò)誤,都變得越來越困難。如果這些“能源漏洞”沒有在開發(fā)階段被識(shí)別并加以解決,那么就幾乎不可能在現(xiàn)場(chǎng)或?qū)嶒?yàn)室測(cè)試中檢測(cè)到它們。
要查明系統(tǒng)需要使用多少電能,最常見的方法是在一段特定時(shí)間內(nèi)對(duì)電流進(jìn)行采樣,求平均值并外推到更長(zhǎng)的時(shí)間周期。這種類型的測(cè)量可以使用萬用表或示波器來完成,但通常都不可能將結(jié)果與代碼例程關(guān)聯(lián)起來。
另一方面,邏輯分析儀可以用于記錄例程,但通常無法將其關(guān)聯(lián)到能耗。為了估計(jì)電池壽命,使用外推獲得的結(jié)果不應(yīng)該與真實(shí)使用情況相差太遠(yuǎn),但是,當(dāng)目標(biāo)旨在優(yōu)化代碼的能源效率時(shí),這種方法的用處很有限。
一種更富有成效的方法
現(xiàn)在,通過使用以圖形化方式實(shí)時(shí)顯示能耗信息、并能夠給出任何給定時(shí)刻的電流和實(shí)際運(yùn)行代碼之間關(guān)聯(lián)的軟件和硬件工具,就可能顯著地縮短開發(fā)時(shí)間并減少工作量。你可以使用電源軌上的電流傳感器來監(jiān)視能耗。
在確定的時(shí)間間隔處,就可以對(duì)電流進(jìn)行采樣,完成A/D轉(zhuǎn)換,然后通過USB端口來傳送這一信息——同電壓和計(jì)時(shí)一起。此外,MCU會(huì)發(fā)送程序計(jì)數(shù)器(PC)采樣,這樣,就可以在主機(jī)計(jì)算機(jī)上將代碼和電流關(guān)聯(lián)起來。
降低1000倍
高級(jí)功率監(jiān)控(AEM)系統(tǒng)就是現(xiàn)有工具的一個(gè)例子,它是Energy Micro公司EFM32 Gecko(壁虎)MCU的入門工具箱和開發(fā)工具箱的一部分。與電流消耗量有關(guān)的實(shí)時(shí)信息將顯示在LCD顯示屏上(如果使用DVK),或者將任何一種工具箱通過USB連接到PC上,然后顯示在該公司的energyAware Profiler上。圖1給出了一種常見的energyAware Profiler顯示。這種工具將以圖形化方式表示出電流與時(shí)間的關(guān)系。
評(píng)論