在我的上一篇文章中,“你能走多低(功率)?”,我們研究了微控制器中可用的幾種不同低功耗模式,以及這些低功耗模式如何影響能耗和喚醒時間。低功耗模式是降低微控制器能耗的主要技術之一,但它并不是開發(fā)人員可用的唯一技術。在這篇文章中,我們將研究我最喜歡的五種降低微控制器能耗的技術。
在微控制器中,CPU 通常是使用最多電流的耗電設備。外圍設備肯定會導致能耗,尤其是在有 USB 或以太網控制器的情況下,但優(yōu)化設備能耗的第一步是盡可能長時間地將 CPU 保持在最低狀態(tài)。應用程序將需要定期喚醒以移動數據,例如從 UART 接收字節(jié)并將它們存儲在緩沖區(qū)中。避免不斷喚醒 CPU 以處理移動數據的一種方法是使用直接內存訪問 (DMA) 控制器。
DMA 允許開發(fā)人員讓他們的 CPU 保持睡眠狀態(tài),而是使用低功耗外設來完成 CPU 本來可以做的事情,在微控制器周圍移動數據。DMA 控制器可用于多種用途,例如:
將數據從外設移動到內存
將數據從內存移動到另一個內存位置
將內存中的數據移動到外設
關于如何設置 DMA 的細節(jié)因微控制器而異,但好處是 CPU 可以保持在低功耗狀態(tài),直到它需要實際喚醒并處理已由 DMA 傳輸的數據.
技巧 #2 – 使用時鐘節(jié)流
您可能從微控制器課程或在線閱讀中回憶起微控制器的能耗取決于時鐘頻率。頻率越高,能量消耗越高。應用程序不一定總是需要全速運行。事實上,根據需要做的事情來限制時鐘可能是一種有效的技術,可以最大限度地減少消耗的能量。
以下面的圖 1 為例,它顯示了 NXP Kinetis-L 微控制器中運行模式電流與內核頻率的關系。從這個圖中,讀者可以看到,降低時鐘頻率會降低能耗。還可以看出,禁用未使用的外圍設備如何影響微控制器消耗的能量。
?
?

圖 1 – 微控制器電流消耗作為內核時鐘頻率的函數。(來源:NXP Kinetis-L 數據表)
確切何時以及如何限制時鐘頻率完全取決于應用程序。某些應用程序可能仍希望始終全速運行。在其他情況下,可以將頻率從最大值減半并以這種方式運行該部分。在其他情況下,根據應用程序正在執(zhí)行的操作動態(tài)更改時鐘可能是有意義的。請注意,如果您決定動態(tài)使用時鐘節(jié)流,您可能還需要動態(tài)更改外設寄存器設置以補償更改。
技巧#3——利用編譯器優(yōu)化
現代編譯器提供嵌入式優(yōu)化設置,可以改善給定代碼的執(zhí)行時間。例如,大多數編譯器為開發(fā)人員提供優(yōu)化設置以執(zhí)行循環(huán)展開和內聯(lián)函數。雖然這只是兩個示例,但開發(fā)人員可以使用這些技術來生成執(zhí)行速度更快的代碼。執(zhí)行速度更快的代碼,即使它確實使用更多代碼空間,也將有機會在低功耗模式下花費更多時間,這反過來將減少應用程序消耗的能量。
我建議您盡快安排一些時間來查看您的編譯器手冊,看看它內置了哪些功能來幫助您更快地執(zhí)行代碼。雖然看起來節(jié)省幾十個時鐘周期似乎沒什么大不了的。在數周甚至數月的過程中,這些時鐘周期可以很快加起來。
技巧 #4 – 利用低功耗 (LP) 外設
如果您仔細閱讀微控制器數據表,您會注意到專為低功耗操作而設計的微控制器通常包含與“標準”外設分開的低功耗外設。例如,STM32 微控制器包括一個 LP 定時器。這是一個定時器外設,不包括所有額外的花里胡哨,但設計用于在低功耗環(huán)境中運行。在優(yōu)化甚至開始低功耗設計時,注意這些低功耗外圍設備并加以利用是無需大量額外工作即可降低產品能耗的好方法。
技巧#5——跳出框框思考
有時您可能會發(fā)現您需要真正跳出框框思考以優(yōu)化能源。幾年前,我正在研究一種由電池供電的醫(yī)療產品,每次充電之間必須使用電池供電 12 到 14 小時。我們選擇了我們需要的電池,然后繼續(xù)設計。好吧,工業(yè)設計師認為電池太大了,在沒有告訴電子或軟件團隊的情況下,他們決定大幅縮小電池尺寸,以便制造出更小、更性感的設備。該設備的第一次測試顯示電池僅持續(xù)約 4 - 5 小時!
工業(yè)團隊當然已經轉向生產工具,并且沒有回到更大的電池。唯一的選擇就是瘋狂地優(yōu)化。盡管使用了書中所有可能的優(yōu)化技術,但我只能讓設備持續(xù)使用大約 8 小時。那么,可以做些什么呢?事實證明,該產品有一個板載 USB 主機,它有一個作為 MSD/CDC 設備連接的自定義存儲設備。USB消耗大量能源,如果USB可以在不需要時關閉,可以節(jié)省相當多的能源。
我們必須跳出框框思考,在啟動設備后,我們將禁用 USB 設備,關閉 USB 主機,當需要 USB 設備時,我們通過 USB D+ 和 D- 端口發(fā)送一條消息,發(fā)出信號USB 主機將重新啟動。這是一種瘋狂、丑陋的變通方法,但它成功地將電池壽命延長到 14 小時以上。有時您只需跳出框框思考即可獲得所需的能源效率。
結論
在這篇文章中,我們研究了一些額外的技術,開發(fā)人員可以利用這些技術來最大限度地降低微控制器的能耗。將這些技術與低功耗模式一起使用可以顯著降低設備能耗。當您致力于優(yōu)化您的微控制器應用的能源時,不要忘記選擇能夠為您的時間帶來最大收益的技術。能量優(yōu)化通常會成為一個黑洞,每次迭代的時間投資回報都會遞減。
?
審核編輯:湯梓紅
電子發(fā)燒友App






















評論