ARM Cortex-M0內核使LPC1100的功耗數據與當前的低功耗微控制器保持一致,但這種內核的處理效率遠遠高于目前的8位和16位處理器。這可以降低電池供電應用的平均電流,延長電池壽命,也可減少其他應用的功率要求。基于M0的LPC1100將對低功耗應用的功能造成重要影響。本文旨在討論Cortex-M0 LPC1100微控制器系列的低功耗特性,以及有利于降低電源能耗的系統設計技術。這里從七個方面揭示NXP1100低功耗設計的秘密。
一、微控制器低功耗設計考慮因素
定義:為了理解微控制器的功耗,必須首先了解CMOS器件功耗的基本構成。功耗主要有兩類:動態功耗和靜態功耗。
動態功耗:
圖1所示為一種簡單的CMOS反相器。當反相器切換時,必須加載或釋放負載電容,結果會消耗功率。負載電容是互聯電容及其驅動的所有器件的柵電容的結合體。在反相器不切換狀態下,消耗功率的是器件的泄露電流。因此,在既定工藝幾何結構下,功耗隨電壓的平方而變化,隨頻率呈線性變化。功耗隨頻率呈線性變化這一特性導致了一個經常被引用的微控制器指標,即每MHz的電流消耗值。
圖1 一種簡單的CMOS反相器
對于低功耗器件,該值表示為uA/MH z,范圍在200uA/MHz至300uA/MHz以上。 此類數值具有一定誤導性,因為其測量沒有一個統一的標準。關鍵在于既定電流消耗下完成了多少工作,另一個更全面的指標是既定計算消耗了多少能量。由于這類指標尚未被廣泛采用,因此,本文將使用uA/MHz指標。
數字CMOS結構每MHz消耗的電流并不是器件所耗電流的全部,還有支持數字域必不可少的模擬電路。
這些可分為計時組件、電源控制組件、存儲器和外設。計時組件、電源控制組件和存儲器組件都是微控制器平臺的組成部分,是必要組件,而模擬外設則是功能套件的一部分,因微控制器系列而異。
表1 LPC1100中采用的計時組件
表1所示為LPC1100中采用的計時組件。表中功耗由低到高排列。就如所有模擬設計一樣,精確度和所耗電流之間始終存在折衷。對于這些組件,LPC1100有一個靈活的控制方案,可以在功耗與精確度之間取得平衡,以適應具體應用。
表2 LPC1100中的電源控制組件
表2描述的是LPC1100中的電源控制組件。與計時組件一樣,這些組件也可根據應用要求進行定制。
內核的電流消耗不只關乎頻率,還涉及到必要內核支持模擬組件的失調電流。這種電流有時也稱為零赫茲電流。由于LPC1100擁有靈活的時鐘結構,這種電流并不固定。隨著頻率的降低,關閉產生所需工作頻率不必要的時鐘組件可能會降低失調電流。
舉例來說,在0至1MHz頻率范圍內,LPC1100可工作于精確度稍低的低功耗振蕩器之上,然后啟動精確度更高的內部R C振蕩器,以提供1到12 MHz的頻率。
二、漏電功耗
漏電功耗指CMOS接口在數字邏輯未切換時加載的電流。該電流高度依賴于工藝節點以及節點庫的優化方式。對于L P C1100,節點庫針對低漏電而優化。為用戶提供不同的斷電選擇可以進一步優化漏電。除CMOS接口處的漏電功耗以外,還可對這些模式中的多種模擬功能進行控制。
表3:LPC1100的電源模式
三、休眠模式
休眠模式下,內核時鐘關閉,但用戶可以選擇繼續開啟外設。這種模式下的功耗不但包括漏電功耗,還包括處于開啟狀態的外設帶來的動態功耗。該模式下仍可接收數據,但內核會保留其狀態,并在需要時繼續運行。
四、電模式
數字邏輯的所有時鐘均關閉,可以控制模擬子系統,設置靈活的喚醒時間,具體視應用要求而定。當所有模擬時鐘元件均被關閉時,則為最低功耗模式。喚醒時間取決于喚醒時鐘源的選擇。選擇低功耗振蕩器時,時間最快,選擇晶體振蕩器和PLL時,時間最慢。
五、深度斷電模式
該模式下,除一個始終開啟的小型域之外,微控制器內部的電源均被關閉。這個始終開啟的域有一組寄存器,可以存儲微控制器進入深度斷電模式之前的狀態信息。從該模式喚醒既可使用喚醒引腳,也可使用復位。
六、代碼效率
LPC1100采用了ARM出品的新型Cortex-M0內核,對動態電流和漏電流均有較大影響。以簡單的指令集為主可降低動態電流。M0多使用Thum b指令。此類指令位寬16,內核將其解釋為32位指令。內核還采用了一種經簡化的總線接口,可減少門數和時鐘。另外,內核所用架構有利于利用時鐘門控和經簡化的庫元素。在滿足上述所有要求的情況下,內核的額定功耗不到70u A/MHz。如前所述,這個數值意義不大,因為它不能說明用這部分電流可以完成多少工作。然而,M0內核的額定性能為0.9 DMIPS/MHz,高于ARM7內核。使用這種內核可進一步改善漏電流,因為門數與8位和16位內核相等。
由于漏電流與門數成正比,因此內核邏輯中的任何節省均可產生重大影響。
七、低功耗系統考慮因素
微控制器電源模式的使用方式取決于具體應用。如果始終有電源,只是容量有限,則可以始終使微控制器處于計時狀態。LPC1100可以快速更改頻率,具體視處理需求而定。LPC1100在30MHz時的額定電流消耗為6m A。當以1MHz運行于低功耗內部振蕩器時,該數值還可降至略高于200uA的水平。
然而,需要降低功耗的許多應用都必須依賴斷電和深度斷電模式。這些應用在大部分時間都處于靜止狀態,等待處理數據。處理器必須能快速喚醒,處理所需數據,然后返回靜止狀態。許多此類應用均采用電池供電,這種情況下,低平均電流對于延長電池壽命至關重要。為了降低平均電流,必須盡快處理數據,以減少工作周期。由于M0是一種32位處理器,其計算執行速度比小寬度處理器更快。
下頁的圖2展示了處理性能是如何影響平均電流的。數據假定,峰值電流和斷電電流在各類處理器上都是相同的。M0內核的功耗可以達到低位寬處理器平均電流的一半到四分之一。借助M0,LPC1100可實現200uA/MHz的峰值電流。
低平均電流對延長電池壽命至關重要。這就意味著低靜態電流和小工作周期。LPC1100在深度斷電模式下的電流不到300n A,峰值電流僅為200uA/MHz。圖4所示即為工作周期對電池壽命的影響。用于此類計算的電池是一枚230mAh的鋰離子鈕扣電池。該坐標圖顯示了靜態電流對電池壽命的影響,以及要使
電池壽命超過3年所需要的工作周期。平均電流假定峰值電流為2mA,即LPC1100的工作頻率為10MHz。圖中還包括啟動時間的影響,因為降低靜態電流會延長啟動時間。如果使用LPC1100深度斷電模式,在200毫秒的周期中,當處理時間為1毫秒時,實現3年的電池壽命是可能的。
結論
M0內核使LPC1100的功耗數據與當前的低功耗微控制器保持一致,但這種內核的處理效率遠遠高于目前的8位和16位處理器。這可以降低電池供電應用的平均電流,延長電池壽命,也可減少其他應用的功率要求。基于M0的LPC1100將對低功耗應用的功能造成重要影響。
圖3:平均電流
圖4:工作周期對電池壽命的影響