基于節(jié)能微控制器設計可延長電池壽命設計
在設計電池供電產品時,人們顯然希望電池壽命盡可能長些。能源敏感的產品應用大致分為能源計量系統、家庭與樓宇自動化、安全和醫(yī)療系統(圖1)。這些產品通常會圍繞一個微控制器(MCU),必須用單個原電池工作很長時間。在某些應用中,更換電池很困難甚至是不可能的,即使在其它普通應用中,用戶也不大愿意支付更換電池的成本。
本文引用地址:http://www.ex-cimer.com/article/201706/351125.htm這類應用中采用的是在極低占空比下工作的微處理器,它在“深度睡眠”狀態(tài)下的時間可能占了99%甚至更高(達到99.9%也不罕見)。微處理器在一個周期循環(huán)或在回應某些刺激時被“喚醒”來執(zhí)行操作,并返回到睡眠狀態(tài)中。由于它們花了如此多時間在睡眠狀態(tài),很明顯,獲得更長電池壽命的關鍵是在掉電狀態(tài)下的電流消耗。不過,同一節(jié)電池的使用壽命為3或4年與超過10年、延至20年甚至更長之間的區(qū)別在于,要密切注意這個任務如何使用MCU資源的各個方面,以及MCU本身是如何設計成以各種方式減少能耗的。
一節(jié)單電池可用20年
CR2032紐扣電池廣泛用于小型MCU(如遠程環(huán)境傳感器)中,這是一種鋰/二氧化錳3V原電池。典型的供應商,如柯達(參考文獻1)將其容量*為230mAh到2V的終點電壓能力為5.6k? (約為0.5mA)。如果是那樣的話,電池壽命將為400小時,相比之下,能源敏感的應用可使使用壽命達到20萬小時。
圖1:人們期望新一代的計量產品能在二十年里工作無人看管。
這種特殊的電池具有很好的使用壽命或自放電率,數據表顯示10年之后其容量仍達90%。非常相似的是,這相當于連續(xù)充電約0.25 ?A,如果能夠達到10到20年的電池壽命,那么它可以滿足應用的一般要求。
伴隨電池壽命的是有限的電荷數,設計者必須在MCU運行的所有階段減少產品的電流和運行時間,不僅要減少每微安數,還要減少每個動作花費的每個微秒。
為減小深度睡眠模式下消耗的電流,在能源敏感應用的MCU中采用8位(或16位)內核已經非常普遍。其理由是,8位內核(即使是在這類設計中經常采用的最新版本中)很小,門控相對較少,靜電電流或漏電流較低。但是,現在的許多應用都需要比8位內核所能提供的更大的處理能力。在其它MCU應用領域,用戶往往選擇從8位升級到一個32位環(huán)境。在低功耗的情況下,人們一直先入為主地認為32位內核在其掉電模式狀態(tài)下使用的電流一定高得令人無法接受。隨著全套低功耗設計技術的出現,今天的IC設計工程師已經可以用一個32位ARM內核提供各種低功耗模式,效果與8位產品一樣甚至更好,而且還能實現快速喚醒。 32位處理器更高的處理性能也使MCU可以更快完成任務,從而能夠有更多時間處于這些低功耗模式下,這可以進一步降低平均功耗。
低功耗外圍設備功能
為實現盡可能低的功耗,優(yōu)化MCU睡眠狀態(tài)功耗需要整體的設計方法。除了內核,MCU中的其它模塊在待機設備、穩(wěn)壓器、偏置電流發(fā)生器,欠壓檢測比較儀、上電復位電路中會繼續(xù)消耗電流。幾乎在任何情況下,一個簡單的折衷法則是:掉電狀態(tài)越久,就有越多外圍設備的功能被完全關斷,芯片準備好實現處理任務的喚醒時間就越長。由于應用之間差別很大,MCU設計工程師提供一種靈活的斷電狀態(tài)下的擴展套件就顯得很重要了,這樣產品設計人員就可以很好地為其項目進行待機功率和響應能力的折衷。
設計一個在nanoamp區(qū)獲得最深度睡眠狀態(tài)電流水平的ARM內核只是低能源戰(zhàn)略的一個步驟。能夠獲得32位內核的處理能力為管理能源的利用開辟了新途徑。在任何時候,它是MCU供電圖下面的區(qū)域,隨著時間的推移,它表示從電池里取走的電荷(圖2)。
圖2:節(jié)能MCU內核通過完整的喚醒/工作/回到睡眠周期在多個不同區(qū)域節(jié)省能源。
灰色區(qū)域表示相比8位內核,一個性能更強大的32位內核在更短周期內完成任務所節(jié)省的能量。
就是這樣,在具體配置中電流消耗的數字越大,設計人員就必須更密切注意要最大限度地延長電池的使用壽命。在EFM32微控制器的開發(fā)工具包中,這種測量是很清楚的,這個工具包的基本功能部分是先進能源.(圖3)。該設備不斷測量給MCU內核供電的電壓軌下的電流。用一個從模數轉換器(ADC)通過電阻器采集電壓,而開發(fā)工具包軟件集成其讀數來精確測量不同時間的功率。
圖3:Energy MICRO的先進能源.。
相比性能更低的MCU,一個32位的內核將花更少的時間去主動完成一項相同的任務,同時,該內核在運行時消耗的功率也應盡可能低。專注于低功耗的IC設計工程師能夠獲得許多設計細節(jié)來實現其目標。這樣的例子包括針對所有芯片同步邏輯優(yōu)化時鐘門控結構,以及組織總線系統和內存(SRAM和閃存)以在任何特定處理中盡可能減少位跳變。采用全套低功耗設計方法會在閃存中產生一個運行典型代碼的ARM Cortex-M3內核,而僅需用到低至180μA/MHz的能量。小心使用這些相同的技術可以確保其數字測量準確,獲得低時鐘速率,而不僅僅是一個最佳性能數字。
一旦MCU被喚醒并執(zhí)行應用代碼,M3內核使用Thumb2指令集也有助于減少“活躍時間”。利用這樣的緊湊型16位指令的雙取指令功能,Thumb2ISA的效率非常高。
在減少電流×微秒(current-times-MICROseconds)產品時,MCU設計工程師需要部署更多策略。其中一個是不僅減少內核在實際處理應用代碼時所花的時間,而且還要縮短喚醒刺激之間的創(chuàng)建(ramp-up)時間(無論是定時生成或事件驅動),并且CPU正在準備做“真正的工作”。一種途徑是最大限度地減少與內核時鐘信號供應相關的啟動時間。眾所周知,當一個晶體振蕩器從關閉狀態(tài)中啟動時,在作為一個系統時鐘使用之前,它需要一些時間來穩(wěn)定其輸出。相反,一個RC振蕩器作為MCU必須完成的所有任務的時基可能不夠準確,但它會在開機后的幾乎一瞬間產生有規(guī)則的輸出。部分解決方案是縮短同時提供信號的時間。CPU在開機上電的同時就開始運行,由RC振蕩器進行計時,而小型控制電路一旦穩(wěn)定下來就將時鐘源傳到一個晶體振蕩器上。RC振蕩器輸出中任何頻率精度不夠都不重要,因為使用它的周期相對較短。
簡單任務無需MCU內核
盡管設計工程師非常小心地為一個高性能處理內核提供電源,并且在盡可能短的時間內實現了這個目標,但芯片設計師或系統設計師有必要問問給定任務是否需要這樣的內核,即如果喚醒它只是執(zhí)行簡單任務的話,即使是最節(jié)能的內核也會浪費電池的電荷。我們再用環(huán)境傳感器的應用作個例子,它可能需要定期測量,但只需在不頻繁的時間間隔內將測量結果報告到中央數據記錄器中。運行通信接口的軟件堆棧一定會要求喚醒MCU內核,但這會更頻繁地打開模數轉換器,指揮A/D轉換,并以低功耗內存積累結果。如果只要求外圍設備設置在互連矩陣(圖4)控制下自主運行的話,消耗的功率會更少。由于應用的差別很大,能夠靈活地選擇哪些功能模塊來供電以及它們如何通信對充分利用這一概念非常重要。
圖4:使用一個互連矩陣或“外圍設備反射系統”可以執(zhí)行簡單的任務。
在電源預算中加密
眾所周知,在現代CMOS半導體工藝中,為硬連接塊IC增加功能的硅區(qū)成本相對較低。這產生了與直覺略微不一致的結果,為了把功耗降到最低,最有效的選擇往往是增加門控數。利用先進的時鐘樹設計、時鐘門控和片上電源開關等技術,IC設計工程師可以隨時輕松地完全關斷不需要的功能。這種方法的一個突出功能就是加密。即使是看似平常的數據現在也通過例行的加密來保證安全,通常采用被稱為AES的算法。這對一個32位MCU內核而言不是一項具有挑戰(zhàn)性的任務,但它確實占用了大量的處理器周期,延長了總的微安×微秒(MICROamps-times-MICROseconds)。這些周期中的大多數花在了執(zhí)行算法中的一些內部循環(huán)計算上,增加一個AES加速器硬件模塊可使MCU停止AES算法,轉向專用硬件,MCU繼續(xù)進行其他處理,并以更少的周期得到加密(或解密)結果。
迅速擴展的能源敏感應用類別(由少數高端類別如智能電能計量領導)重新定義了用電池驅動一個產品的意義。這些產品必須在單電池的驅動下提供服務,這一時間與電池本身的有效期一致,并與電池制造商規(guī)定的最大時間間隔(長達甚至超過20年)一致。只有一個高度集成的單芯片微控制器能為這樣的設計提供一個現實的解決辦法。
IC設計工程師十分注重低功耗芯片設計的每個方面,這樣的IC架構現在可以提供現代、功能強大的32位處理器內核給產品設計工程師,同時盡可能地降低了功率要求。
評論