淺析低功耗產品設計

當前越來越多的無線產品,由於使用場景選擇使用電池供電,系統的功耗越來越受到用戶的重視,特別是用電池供電的穿戴式設備尤其明顯。

在電池供電的產品中,系統功耗作爲產品性能指標中位列第一位的,產品的待機時間決定了這個產品的成敗。試想一下,一個功能強大但待機時間只有幾天與一個功能合適但待機時間長達幾個月的產品,用戶選擇頻繁更換電池還是選擇非必須的功能。

嵌入式系統低功耗設計需要全面分析各因素,統籌規劃,全方面解決功耗才能達到真正的低功耗。功耗可通過公式:P=I*V*T計算,其中I:電流;V:電壓;T:工作時間。嵌入式系統功耗應從這3個方面入手解決。

嵌入式系統功耗由待機電流和運行電流組成。待機電流指系統處於睡眠狀態下消耗的功耗,產品不同功耗的功耗也不盡相同,最低可達1uA以下。同時MCU作爲系統核心,在系統功耗消耗往往佔據大頭,其一般依賴於以下幾點:

  • MCU芯片尺寸或晶體管數量

  • MCU供電電壓

  • MCU時鐘頻率

  • 外設數量

  • 合理運行模式

  • 工作時間

嵌入式產品功耗並非選擇一個低功耗單片就能徹底解決,而是由單片機功耗和外圍電路功耗等組成,所以在設計上應該從選型、硬件設計、軟件開發多方面同時入手優化。

1:選型:

 選型是一個系統工程,需要兼顧性能、成本、供貨、交期等多種因素。

  • 選擇合適的MCU內核:MCU內核選型以“夠用就好”爲原則。在8位機能滿足系統需求時,就沒有必須選擇當前更爲流行的32位機;在32位機中可選擇cortex-m3/m0等不同構架時,選擇m0。單片機的構架越複雜,集成度越高,功能越強大,就意味着片內集體管越多,往往總漏電流也越大。雖然目前ARM結構的32爲單片機大行其道,但是也有很多芯片廠商的低功耗8位單片機產品可供選擇,如ST的STM8L系列,Silicon Labs的EFM8系列等。

  • 選擇低電壓供電,更寬的電壓範圍的MCU:MCU供電電壓低,可以有效降低功耗。更寬的供電範圍意味着可延長電池的使用時間,不至於電池電壓下降後,MCU就無法正常工作。

  • 選擇多更多低功耗模式的MCU:帶低功耗模式的MCU,往往具有多種不同的運行模式可供選擇。不同的運行模式意味着不同的功耗級別,開發者可根據不同的應用級別進入不同的功耗模式。

  • 外圍電路芯片選型也執行同樣的原則,工作電壓儘量低,工作電流/待機電流盡量小,如低功耗LDO,升壓芯片等。

  • 在滿足同等功能情況下,外部器件選型應優先選擇帶觸發輸出功能的器件而非需查詢的器件。觸發輸出器件可在達到觸發條件之後通過中斷喚醒MCU,處理觸發邏輯,平時MCU可一直處於睡眠狀態。而查詢類器件需MCU做定時喚醒功能來查詢外部器件狀態。

2:硬件設計

  • 外圍電路電源管理:對於不需要一直工作的外圍器件,不工作時應關斷該部分電源已達到最低功耗。可採用MOS管電路配合MCU控制實現局部電源開關實現電源管理。

  • 在GPIO口輸入輸出設計上應該注意觸發時的電平狀態,是否存在待機模式下漏電可能。如普通電路設計上,按鍵一般設計爲低電平有效,通過上拉電阻確定在普通狀態下的電平。在低功耗系統中,系統基本處於睡眠狀態,按鈕須用於外部中斷喚醒,無法通過軟件來設置GPIO狀態達到節能狀態。此時若使用上拉方式,上拉10K的電阻,就意味着300uA的電流消耗。這種應用就應該改爲默認是低電平,按下按鈕爲高電平有效,可有效降低功耗。

  • 關注上拉/下拉電阻值,如I2C電路必須使用上拉電阻,該上拉電阻阻值在低功耗產品中,既影響I2C總線通訊速度,又影響系統功耗,應綜合取捨。

3:嵌入式軟件設計

  • 降低時鐘頻率:更高的時鐘頻率意味着更快的MCU運行速度,那麼MCU內部CMOS電路就更快的開關頻率,導致更高的運行電流和待機電流。在低功耗軟件設計中,進入睡眠模式後應關閉倍頻。

  • 合理使用低功耗MCU的多種待機模式:低功耗MCU都具有不同的待機模式,同時不同的待機模式具有不同的功能和不同的功耗。在某些深度睡眠模式下可能需要特殊的喚醒方式,喚醒後處理方式也不盡相同。合理的配置進入不同的待機模式/喚醒模式,對於延長待機時間有重要意思。

  • 睡眠狀態下儘可能使用中斷喚醒:一般的低功耗單片機中斷都具有喚醒功能,在軟件設計時就應使用這些中斷達到睡眠狀態快速喚醒,避免過多的定時喚醒。

  • 合理處理外設:使能的外設越多,功耗越大。不需要使用的外設,一定要關閉,需要臨時使用的外設只能在使用期間使能,使用完成後立即關閉。進入睡眠狀態下只開啓需要喚醒的外設。

  • 合理配置GPIO:GPIO在喚醒後,處理對應功能才恢復對應GPIO口,如需內置上拉/下拉功能在此時才使能,使用完成後立刻恢復,避免由於上拉或下拉形成迴路產生不必要的功耗。在未啓用對應GPIO功能狀態時,如果此GPIO口帶上拉,設置爲高電平輸出;如此GPIO帶下拉,設置爲低電平輸出。

  • 合理配置未使用的GPIO口:應將未使用的GPIO口輸出至高電平或低電平

  • 重點關注模擬接口:模擬功能一般都是耗電大戶,在MCU使用中最常使用的AD/DA功能,在軟件設計中應重點關注,控制使用模擬功能的時間。

  • 合理使用DMA和FIFO緩衝區:DMA控制器是功能強大的可降低功耗的工具。DMA通過分擔CPU的數據傳輸任務來提高性能,同時減少CPU運行時間。

  • LED:LED在低功耗系統中也是耗電大戶,可通過PWM方式驅動LED,有效降低功耗。

  • 測量功耗時,斷開調試器。由於連接調試器後,調試器會拉高/低當前連接芯片的調試口,會導致功耗異常。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章