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