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