1 低功耗的意義
電子產(chǎn)品尤其是電池供電的都要求低功耗,究竟怎樣才算低功耗?脫離應(yīng)用場(chǎng)合的數(shù)值沒(méi)有意義,低功耗是一種看情況而定、只可意會(huì)的標(biāo)準(zhǔn)。
2 思路決定成敗
芯片數(shù)據(jù)手冊(cè)寫著低功耗,上面那些小的出奇的電流標(biāo)準(zhǔn),只是用來(lái)擺設(shè)的一種無(wú)法工作的假死狀態(tài),工作功耗才是實(shí)實(shí)在在的。有時(shí)為了體現(xiàn)低功耗,還要在應(yīng)用中設(shè)計(jì)所謂的低功耗模式,當(dāng)系統(tǒng)確認(rèn)沒(méi)有任務(wù)時(shí)就休眠。于是乎,低功耗這種“既要馬兒跑,又要馬兒不吃草”的邏輯,就成為降低正常工作模式下系統(tǒng)功耗的常規(guī)選擇。
從硬件角度來(lái)說(shuō),找到所有可能消耗電流的回路,確定哪些是可以通過(guò)軟件控制的方式來(lái)優(yōu)化,哪些是不可避免的,并給軟件開(kāi)發(fā)人員提供所有IO口狀態(tài)對(duì)功耗影響的關(guān)系,用簡(jiǎn)單的表格說(shuō)明一下高電平或低電平會(huì)怎樣,懸浮會(huì)怎樣。前期配置驅(qū)動(dòng)軟件,驗(yàn)證工作時(shí)最小電流滿足標(biāo)準(zhǔn),基本可確認(rèn)硬件正常。剩下的就是軟件開(kāi)發(fā)人員的發(fā)揮空間,而基于軟件的降功耗策略,正是本文所要討論的重點(diǎn)。
3 驅(qū)動(dòng)軟件設(shè)計(jì)
3.1 端口配置
首先確認(rèn)復(fù)位后引腳的默認(rèn)狀態(tài),該狀態(tài)下是否漏電,是否會(huì)開(kāi)啟某些時(shí)鐘源,是否內(nèi)部上拉或下拉,軟件再結(jié)合硬件或外圍做相應(yīng)配置。例如AD通道禁止內(nèi)部上拉,普通GPIO設(shè)為輸出低或者高避免漏電,懸空引腳避免中斷輸入模式。
固定連接控制的,可以推挽輸出控制外設(shè),或者外部帶上拉時(shí)選開(kāi)漏;特殊引腳如UART一般配置模式即可,硬件自動(dòng)控制對(duì)應(yīng)電平;間歇性工作如ADC,作為輸入轉(zhuǎn)換完成后,可以再設(shè)為輸出或關(guān)閉AD。
有些外設(shè)是可以插拔的,如UART正常空閑時(shí)收發(fā)都是高,如外設(shè)關(guān)機(jī)或者移除,仍保持高電平則存在漏電,這種情況下需將引腳設(shè)為輸出低。重點(diǎn)關(guān)注工作中一種狀態(tài),工作結(jié)束或異常時(shí)要及時(shí)切換狀態(tài),避免漏電或者電平不匹配。
如果外設(shè)支持中斷盡量配置開(kāi)啟,而不是定時(shí)輪詢通信。
3.2 電源管理
芯片內(nèi)部往往劃分不同的電源域,硬件外設(shè)也分不同單元的供電,暫時(shí)不使用的部分,可以立刻關(guān)閉電源域、時(shí)鐘域。在硬件成本允許或者功耗要求嚴(yán)苛的情況下,外設(shè)盡量獨(dú)立供電,這樣在非使用狀態(tài)下軟件控制斷電。需要注意關(guān)閉電源域后,某些端口可能需要重新配置避免漏電,如上節(jié)所提到關(guān)閉外設(shè)的供電后,外設(shè)的UART端口變?yōu)榈停骺氐腢ART端口就不能繼續(xù)維持高電平了。
3.3 系統(tǒng)時(shí)鐘
在正常的工作模式下,頻率越高功耗越高,完成同樣工作的時(shí)間越短,也可更快進(jìn)入休眠。如果單片機(jī)主要做控制,沒(méi)有復(fù)雜運(yùn)算,降頻能實(shí)現(xiàn)需求就往更低的頻率切換。如果有大量數(shù)學(xué)計(jì)算,可以空間換時(shí)間,或者先高頻運(yùn)行,盡快完成算法,運(yùn)行結(jié)束后動(dòng)態(tài)切換到低頻。
同等時(shí)鐘下,供電電壓低功耗也低;定時(shí)采樣、屏幕刷新也可在滿足需求的情況下盡量低頻處理。
3.4 待機(jī)底電流
查閱數(shù)據(jù)手冊(cè)或者SDK官方文檔,確定符合需求的、可被喚醒的最低功耗休眠模式,編寫一個(gè)測(cè)試用例,關(guān)閉所有可能耗電的外設(shè),進(jìn)入休眠的狀態(tài),驗(yàn)證極限情況下的功耗。
可能還需要硬件排除電路板上無(wú)法優(yōu)化的固有功耗,比如電壓轉(zhuǎn)換等固定消耗電流的部分,單純看主芯片的工作電流,是否達(dá)到數(shù)據(jù)手冊(cè)上對(duì)應(yīng)模式下的理論值。如果不滿足就需要繼續(xù)關(guān)閉一些復(fù)位后自動(dòng)開(kāi)啟的功能,比如時(shí)鐘使能等;或者硬件工程師配合拆除可疑器件加快排查。這第一步非常關(guān)鍵,直接決定后期整機(jī)功耗能達(dá)到的最佳效果,同時(shí)在配置過(guò)程中,非常細(xì)微的認(rèn)識(shí)到哪些外設(shè)和配置影響功耗,如何影響,有多大的影響。
3.5 休眠與喚醒
休眠后有的是降頻工作,有的是假死(軟件未運(yùn)行,內(nèi)存可恢復(fù);有的不能恢復(fù),喚醒類似重啟效果),或者直接關(guān)機(jī)(RTC關(guān)機(jī)鬧鐘喚醒),不同的硬件方案和軟件需求,休眠模式的表現(xiàn)不同。單片機(jī)開(kāi)發(fā),確認(rèn)其所有的休眠模式,以及對(duì)應(yīng)休眠模式下哪些時(shí)鐘源工作或休眠,結(jié)合具體應(yīng)用的需求,明確系統(tǒng)對(duì)喚醒源以及喚醒模式的需求,由此便確定了系統(tǒng)的基礎(chǔ)休眠模式。
注意有些芯片在休眠模式下僅少數(shù)端口維持喚醒的狀態(tài),只有特殊引腳才能喚醒,這需要硬件設(shè)計(jì)前考慮。
3.6 功耗評(píng)估
降低功耗是軟件和硬件協(xié)同工作才能解決的問(wèn)題。比如AD采樣時(shí)候的分壓電阻,如果直接接了地,那會(huì)一直消耗電流;增加分壓電阻足夠大,表面上靜態(tài)電流小,但因?yàn)锳D內(nèi)阻分流,最終結(jié)果就存在較大偏差。如果通過(guò)一個(gè)IO口來(lái)控制其接地的方式,只在需要采樣的時(shí)候接地,采樣完成后懸浮或者拉高,就可以將靜態(tài)損耗降到最低,雖然成本加了不少,但實(shí)實(shí)在在的省電了。具體是否采用,主要是看功耗的標(biāo)準(zhǔn),如果略微可以接受持續(xù)的靜態(tài)損耗,就沒(méi)必要增加硬件成本。
系統(tǒng)實(shí)現(xiàn)最低功耗,有時(shí)需要在外設(shè)性能、硬件成本和功耗之間做妥協(xié),CPU是否可以降頻,硬件外設(shè)是否支持中斷喚醒等,這些都會(huì)影響最終的待機(jī)功耗,降低功耗是硬件和軟件配合的結(jié)果,軟件配置驅(qū)動(dòng),硬件逐個(gè)確認(rèn)電流是否在期望之內(nèi),這理論值定義就看原廠資料或者經(jīng)驗(yàn)了,以及與產(chǎn)品定義的待機(jī)時(shí)長(zhǎng)妥協(xié)解決。
-
電源
+關(guān)注
關(guān)注
184文章
17847瀏覽量
251968 -
芯片
+關(guān)注
關(guān)注
456文章
51262瀏覽量
427748 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1852瀏覽量
85685 -
嵌入式軟件
+關(guān)注
關(guān)注
4文章
242瀏覽量
26751
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
嵌入式環(huán)境下軟件設(shè)計(jì)的特點(diǎn)是什么
嵌入式軟件設(shè)計(jì)和單片機(jī)軟件設(shè)計(jì)的區(qū)別是什么?
基于ARM的嵌入式系統(tǒng)軟件設(shè)計(jì)
![基于ARM的<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>軟件設(shè)計(jì)</b>](https://file.elecfans.com/web2/M00/48/70/pYYBAGKhtAaAcOB6AAA72DNjgdk156.jpg)
ARM嵌入式系統(tǒng)開(kāi)發(fā)-軟件設(shè)計(jì)與優(yōu)化
![ARM<b class='flag-5'>嵌入式</b>系統(tǒng)開(kāi)發(fā)-<b class='flag-5'>軟件設(shè)計(jì)</b>與優(yōu)化](https://file.elecfans.com/web2/M00/48/BD/pYYBAGKhtB2ARsIbAACOJY-Q-ls853.jpg)
基于ARM的嵌入式軟件設(shè)計(jì)
嵌入式USB主機(jī)設(shè)計(jì)(硬件設(shè)計(jì)和軟件設(shè)計(jì))
![<b class='flag-5'>嵌入式</b>USB主機(jī)設(shè)計(jì)(硬件設(shè)計(jì)和<b class='flag-5'>軟件設(shè)計(jì)</b>)](https://file1.elecfans.com//web2/M00/A4/7B/wKgZomUMNGSAOealAABA1uFKeV8675.jpg)
實(shí)例分析嵌入式系統(tǒng)的低功耗軟件設(shè)計(jì)方案
![實(shí)例分析<b class='flag-5'>嵌入式</b>系統(tǒng)的<b class='flag-5'>低功耗</b><b class='flag-5'>軟件設(shè)計(jì)</b>方案](https://file.elecfans.com/web2/M00/4A/24/pYYBAGKhvJ-ALf6xAAAcB0dfC8U336.png)
嵌入式軟件在計(jì)算機(jī)軟件設(shè)計(jì)中應(yīng)用
![<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>在計(jì)算機(jī)<b class='flag-5'>軟件設(shè)計(jì)</b>中應(yīng)用](https://file.elecfans.com/web2/M00/49/40/poYBAGKhwJSARQkFAAATflaBP2M828.jpg)
嵌入式系統(tǒng)的組成及其低功耗的設(shè)計(jì)
嵌入式業(yè)務(wù)軟件設(shè)計(jì)介紹
嵌入式軟件設(shè)計(jì)的原則分享
![<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件設(shè)計(jì)</b>的原則分享](https://file1.elecfans.com/web2/M00/C1/D3/wKgaomXarJuAfAYZAAAk4c2b2Lg596.png)
評(píng)論