我們檢查了微控制器中可用的幾種不同的低功率模式,以及這些低功率模式如何影響能耗和喚醒時(shí)間。低功率模式是減少微控制器使用的能量的主要技術(shù)之一,但這并不是開發(fā)人員可用的唯一技術(shù)。在這篇文章中,我們將研究我最喜歡的五種用于降低微控制器能耗的技術(shù)。
技術(shù)#1 - 使用DMA控制器
在微控制器中,CPU通常是渴望使用最新的功率的設(shè)備。外圍設(shè)備肯定會(huì)導(dǎo)致能源消耗,尤其是在有USB或以太網(wǎng)控制器的情況下,但是優(yōu)化能源設(shè)備的第一步之一就是盡可能長(zhǎng)時(shí)間保持CPU的狀態(tài)。應(yīng)用程序?qū)⒍ㄆ趩拘?,盡管可以將數(shù)據(jù)移動(dòng)到諸如從UART接收字節(jié)并將其存儲(chǔ)在緩沖區(qū)中的數(shù)據(jù)。避免不斷喚醒CPU以處理移動(dòng)數(shù)據(jù)的一種方法是使用直接內(nèi)存訪問(DMA)控制器。
DMA允許開發(fā)人員保持其CPU入睡,而是使用較低的功率外圍設(shè)備來執(zhí)行CPU否則會(huì)做的事情,請(qǐng)?jiān)谖⒖刂破髦車苿?dòng)數(shù)據(jù)。 DMA控制器可用于多種目的,例如:
· 將數(shù)據(jù)從外圍移動(dòng)到內(nèi)存
· 將數(shù)據(jù)從內(nèi)存移動(dòng)到另一個(gè)內(nèi)存位置
· 將數(shù)據(jù)中的數(shù)據(jù)移至外圍
關(guān)于如何設(shè)置DMA的細(xì)節(jié)將從一個(gè)微控制器到另一個(gè)微控制器,但是好處是,CPU可以保持低功率狀態(tài),直到需要實(shí)際喚醒并處理DMA傳輸?shù)臄?shù)據(jù)為止。
技術(shù)#2 - 使用時(shí)鐘節(jié)流
您可能會(huì)從微控制器課程或在線閱讀中記得,微控制器的能量消耗取決于時(shí)鐘頻率。頻率越高,能耗越高。應(yīng)用程序不一定總是需要完全傾斜。實(shí)際上,根據(jù)需要完成的操作,可以將時(shí)鐘限制為最小化所消耗的能量的有效技術(shù)。
顯示了NXP Kinetis-L微控制器中的運(yùn)行模式電流與核心頻率。從這個(gè)數(shù)字中,讀者可以看到,節(jié)流頻率將減少能耗。還可以看出,禁用未使用的外圍設(shè)備如何在微控制器消耗的能量中有所作為。
究竟何時(shí)以及如何防風(fēng)頻率完全取決于應(yīng)用程序。某些應(yīng)用程序可能仍然希望一直傾斜。在其他情況下,可以將頻率從最大值切成兩半并以這種方式運(yùn)行。在其他情況下,根據(jù)應(yīng)用程序的操作,動(dòng)態(tài)更改時(shí)鐘可能是有意義的。只需注意,如果您決定動(dòng)態(tài)使用時(shí)鐘節(jié)流,則可能需要?jiǎng)討B(tài)更改外圍寄存器設(shè)置以補(bǔ)償更改。
技術(shù)#3 - 利用編譯器優(yōu)化
現(xiàn)代編譯器提供嵌入式的優(yōu)化設(shè)置,可以改善給定代碼的執(zhí)行時(shí)間。例如,大多數(shù)編譯器為開發(fā)人員提供優(yōu)化設(shè)置,以執(zhí)行循環(huán)展開和內(nèi)聯(lián)功能。盡管這些只是兩個(gè)示例,但開發(fā)人員可以使用這些技術(shù)來生成更快執(zhí)行的代碼。執(zhí)行更快的代碼即使確實(shí)使用了更多的代碼空間,也將使在低功率模式下花費(fèi)更多時(shí)間,從而減少應(yīng)用程序消耗的能量。
我建議您盡快安排一些時(shí)間來查看編譯器手冊(cè),并查看其內(nèi)置功能,以幫助您更快地執(zhí)行代碼。雖然似乎節(jié)省了幾十個(gè)時(shí)鐘周期并不重要。這些時(shí)鐘周期可以在數(shù)周甚至幾個(gè)月的時(shí)間內(nèi)迅速增加。
技術(shù)#4 - 利用低功率(LP)外圍設(shè)備
如果您仔細(xì)閱讀了微控制器數(shù)據(jù)表,您會(huì)注意到,專為低功率操作而設(shè)計(jì)的微控制器通常包括與“標(biāo)準(zhǔn)”外圍設(shè)備分開的低功率外圍設(shè)備。例如,STM32微控制器包括LP計(jì)時(shí)器。這是一個(gè)計(jì)時(shí)器外圍設(shè)備,不包括所有額外的鈴鐺和哨子,但被設(shè)計(jì)為在低功率環(huán)境中操作。在優(yōu)化甚至開始低功率設(shè)計(jì)時(shí),觀察這些低功率外圍設(shè)備并利用它們可能是減少產(chǎn)品能源消耗而無需額外努力的好方法。
技術(shù)#5 - 在框外思考
有時(shí),您可能會(huì)發(fā)現(xiàn)您需要真正思考開箱即用才能優(yōu)化能量。幾年前,我從事電池運(yùn)行的醫(yī)療產(chǎn)品,必須在電池上持續(xù)12至14小時(shí)。我們選擇了所需的電池,然后繼續(xù)進(jìn)行設(shè)計(jì)。好吧,工業(yè)設(shè)計(jì)師認(rèn)為電池太大了,沒有告訴電子或軟件團(tuán)隊(duì),他們決定大量收縮電池,以便他們可以創(chuàng)建一個(gè)更小,更性感的設(shè)備。該設(shè)備的第一次測(cè)試表明,電池只能持續(xù)約4-5個(gè)小時(shí)!
工業(yè)團(tuán)隊(duì)當(dāng)然已經(jīng)使用了生產(chǎn)工具,而且沒有回到更大的電池。唯一的選擇是瘋狂地優(yōu)化。盡管在書中使用了所有可能的優(yōu)化技術(shù),但我只能使設(shè)備持續(xù)約8個(gè)小時(shí)。那么,怎么辦?事實(shí)證明,該產(chǎn)品在船上有一個(gè)USB主機(jī),該主機(jī)在MSD/CDC設(shè)備上連接了自定義存儲(chǔ)設(shè)備。 USB使用大量的能量,如果不需要的USB可以關(guān)閉,則可以節(jié)省很多能量。
我們必須從框框外面思考,然后啟動(dòng)設(shè)備后,我們將禁用USB設(shè)備,撥動(dòng)USB主機(jī)供電,當(dāng)需要USB設(shè)備時(shí),我們?cè)赨SB D+和D端口上鍵入了一條消息,該端口發(fā)出信號(hào)USB主機(jī)將恢復(fù)電源。這是瘋狂的,丑陋的,一個(gè)工作的工作,但成功的電池壽命超過了14個(gè)小時(shí)。有時(shí),您只需要在盒子外面思考即可獲得所需的能源效率。
結(jié)論
在這篇文章中,我們研究了一些其他技術(shù),開發(fā)人員可以利用這些技術(shù)來最大程度地減少其微控制器的能耗。使用這些技術(shù)以及低功率模式可以大大降低設(shè)備能源消耗。當(dāng)您致力于優(yōu)化微控制器的能源應(yīng)用程序時(shí),請(qǐng)不要忘記選擇將為您提供最大爆炸的技術(shù)。能源優(yōu)化通常會(huì)成為一個(gè)黑洞,因?yàn)闀r(shí)間投資隨著每次迭代而降低回報(bào)。