超低功耗嵌入式應(yīng)用設(shè)計(jì)分析
考慮到我們今天所生活的時(shí)代,嵌入式系統(tǒng)的便攜性是十分關(guān)鍵的設(shè)計(jì)考慮因素。便攜式系統(tǒng)通常用電池供電,而電池使用壽命取決于系統(tǒng)的功耗。在提倡“綠色環(huán)?!庇?jì)劃的今天,即便是市電供電的應(yīng)用也要把功耗作為一項(xiàng)重要的產(chǎn)品選擇標(biāo)準(zhǔn)。
便攜式設(shè)備通常分為使用充電電池供電的設(shè)備和使用非充電電池供電的設(shè)備。如果應(yīng)用使用的是非充電電池,那么電池使用壽命將是至關(guān)重要的規(guī)范要求。對(duì)于任何應(yīng)用而言,電池使用壽命取決于:
●所用電池的可用電荷量
●應(yīng)用的平均電流消耗
使用充電電池的應(yīng)用還要考慮到另一個(gè)參數(shù),那就是電池充電的頻率和每次充電所花的時(shí)間。從最簡(jiǎn)單的角度說(shuō),延長(zhǎng)電池使用壽命可通過(guò)提高電池容量或降低應(yīng)用的平均電流消耗來(lái)實(shí)現(xiàn)。由于電池重量過(guò)大會(huì)影響系統(tǒng)的機(jī)械約束和成本,因此系統(tǒng)設(shè)計(jì)人員只能將電池電量提高到一個(gè)限值。在電池化學(xué)技術(shù)的全新發(fā)展不斷提高電池電荷密度的同時(shí),我們還亟需想辦法繼續(xù)降低平均功耗。
應(yīng)用的平均功耗取決于:
●每個(gè)電路組件的功耗
●應(yīng)用的供電方案以及電力如何通過(guò)柵極輸送到設(shè)計(jì)的各個(gè)部分
●設(shè)計(jì)中的各個(gè)組件是如何在不同的工作條件下工作的
每個(gè)組件的功耗可從各組件的器件數(shù)據(jù)表獲得。了解每個(gè)組件的功耗拆分信息非常重要,這有助于設(shè)計(jì)出色的系統(tǒng),實(shí)現(xiàn)低功耗優(yōu)化。
不妨來(lái)設(shè)想一個(gè)簡(jiǎn)單的小型電池供電數(shù)字時(shí)鐘。該設(shè)備可用于計(jì)時(shí),并在按下按鍵時(shí)能顯示當(dāng)前時(shí)間。設(shè)備通常處于斷電模式以節(jié)電,只有在檢測(cè)到按鍵動(dòng)作時(shí)才會(huì)被喚醒并刷新顯示屏。顯示屏和主電路在工作一段時(shí)間后會(huì)返回?cái)嚯娔J揭怨?jié)電。該系統(tǒng)的高層次方框圖參見(jiàn)圖1。
圖1:小型數(shù)字時(shí)鐘的高層次方框圖
電路采用RTC計(jì)時(shí),用主控制器芯片與RTC通信,并管理顯示屏界面。整個(gè)系統(tǒng)大部分時(shí)間處于斷電狀態(tài),顯示屏關(guān)閉,主控制器也處于斷電模式,這樣電流消耗可降到最低,所有外設(shè)都關(guān)閉。按鍵則作為喚醒設(shè)備的觸發(fā)器,以獲取RTC數(shù)據(jù)并在顯示屏(通常為L(zhǎng)CD)上進(jìn)行顯示。
要分析這種系統(tǒng)的功耗,要看的第一個(gè)數(shù)據(jù)就是設(shè)備和顯示屏都處在斷電模式下的典型平均電流是多少。應(yīng)查看每個(gè)外設(shè)和控制器的數(shù)據(jù)表,以了解功耗數(shù)據(jù)。為了最大限度地降低功耗并延長(zhǎng)電池使用壽命,應(yīng)做到給所有不使用的外設(shè)斷電。在本應(yīng)用中,這個(gè)不使用的外設(shè)就是顯示屏。與顯示屏形成對(duì)比的是,RTC需要始終進(jìn)行供電,以實(shí)現(xiàn)計(jì)時(shí)功能。
MCU通常是大多數(shù)系統(tǒng)中總功耗的主要來(lái)源。這一點(diǎn)同樣適用于本案例中的應(yīng)用,如果不能選擇并適當(dāng)使用正確的MCU時(shí)尤為如此。有很多辦法可降低MCU的功耗,包括但不限于:
1.降低工作頻率
2.以更低的工作電壓運(yùn)行
3.使用低功耗工作模式
MCU能在各種工作頻率上運(yùn)行。然而,不同器件支持的頻率各不相同。MCU的功耗與工作頻率成正比,隨著頻率的升高,動(dòng)態(tài)功耗也會(huì)升高。因此,MCU應(yīng)該以盡可能低的頻率運(yùn)行,同時(shí)能夠可靠地滿足系統(tǒng)的需求。
此外,頻率也與時(shí)鐘源有關(guān)。設(shè)備支持各種時(shí)鐘源選項(xiàng),包括內(nèi)部高速振蕩器、內(nèi)部低速振蕩器、外部晶體振蕩器等。在大多數(shù)情況下,外部晶體可提高精確度,但代價(jià)是功耗較高。選擇低功耗時(shí)鐘源,往往要權(quán)衡速度和精確度。為選擇適當(dāng)?shù)臅r(shí)鐘源,確保系統(tǒng)性能和功耗的完美平衡,應(yīng)該認(rèn)真研究系統(tǒng)要求。
大多數(shù)MCU支持低功耗工作模式,從而滿足低功耗系統(tǒng)設(shè)計(jì)的要求。同樣,支持模式的數(shù)量以及每種模式的特性根據(jù)器件會(huì)有所不同。應(yīng)適當(dāng)使用低功耗模式,以降低平均功耗。常見(jiàn)的模式包括:
●工作模式:MCU正常運(yùn)行。
●較低功耗模式:時(shí)鐘經(jīng)門(mén)控后送至MCU,保持各種寄存器和RAM的狀態(tài)。
●最低功耗模式:包括MCU在內(nèi)的所有外設(shè)都斷電。
當(dāng)時(shí)鐘經(jīng)門(mén)控后送至MCU時(shí),功耗就是靜態(tài)功耗。靜態(tài)功耗取決于幾個(gè)因素,包括亞閾值條件和FET中的隧道電流等。此外,隧道電流在小型芯片設(shè)計(jì)的FET縮減時(shí)會(huì)成為主要因素(即尺寸減小使得氧化物的厚度減小)。
今天,我們已經(jīng)擁有在單芯片上實(shí)現(xiàn)完整系統(tǒng)/子系統(tǒng)高度集成的SoC.除了集成度之外,就功耗而言,這些SoC也有助于降低平均功耗,使其低于采用獨(dú)立MCU和分立外設(shè)的情況。
五種電源模式的詳細(xì)介紹
以下部分主要是介紹SoC以及如何提高其效率,從而有利于系統(tǒng)設(shè)計(jì),降低功耗。
通常說(shuō)來(lái),SoC相對(duì)于傳統(tǒng)MCU而言能支持更多低功耗模式。其原因在于SoC集成度高,有更多片上組件和多種電源配置,以支持不同的工作需求。電源模式的數(shù)量與每種模式下的可用資源根據(jù)器件會(huì)有所不同。舉例來(lái)說(shuō),在某種低功耗模式下,某個(gè)器件能在僅保持寄存器和RAM內(nèi)容的情況下給所有其它組件斷電,而另一種器件則只是給CPU斷電,而讓其它資源繼續(xù)運(yùn)行。不同制造商會(huì)對(duì)這些模式采取不同的命名方法。在本文中,我們將以賽普拉斯的PSoC 4器件為例來(lái)詳細(xì)介紹各種電源模式。
以下電源模式也得到其它制造商的大多數(shù)設(shè)備的支持:
●工作模式
●休眠模式
●深度休眠模式
●冬眠模式
●停止模式
下面我們來(lái)看看這些電源模式的具體情況:
1.工作模式:在此模式下,CPU和所有片上其它資源都正常工作運(yùn)行。該模式是系統(tǒng)整體功耗的最主要組成部分。在此模式下,如果不使用的話,可將芯片上的各種外設(shè)分別斷電。
2.休眠:這是控制器另一種常見(jiàn)的電源模式。該模式主要與CPU有關(guān)。當(dāng)CPU進(jìn)入休眠狀態(tài)后,其時(shí)鐘移除。CPU這時(shí)對(duì)總功耗的唯一影響就是靜態(tài)功耗,因?yàn)檫@時(shí)已經(jīng)沒(méi)有時(shí)鐘開(kāi)關(guān)切換工作,也就不會(huì)有動(dòng)態(tài)功耗。ADC和比較器等其它外設(shè)在此模式下可用。
3.深度休眠:此電源模式下即便是系統(tǒng)時(shí)鐘也被禁用,所以在此模式下所有高頻資源都不可用。不過(guò),這些資源的當(dāng)前狀態(tài)不受影響,也就是說(shuō)CPU寄存器、SRAM等的當(dāng)前狀態(tài)不受影響。由于高頻時(shí)鐘被禁用,因此能節(jié)約開(kāi)關(guān)消耗的功率。通常情況下,深度休眠模式提供低頻時(shí)鐘運(yùn)行的選項(xiàng),低頻時(shí)鐘可用來(lái)驅(qū)動(dòng)定時(shí)器等低頻資源。此外,該模式也允許開(kāi)發(fā)人員使用I2C從設(shè)備等通信協(xié)議塊,其無(wú)需器件自身生成時(shí)鐘。由于進(jìn)入此模式的主要方法就是禁用系統(tǒng)主時(shí)鐘,因此這是可以實(shí)現(xiàn)的。然而,模塊仍然可通電。該模式對(duì)功耗的影響主要在于片上所有時(shí)鐘的靜態(tài)功耗。
4.冬眠:在此模式下,所有時(shí)鐘都關(guān)閉,包括低速振蕩器。片上所有資源,除了用于外部事件觸發(fā)喚醒的資源以外全都斷電。由于本模式下幾乎所有組件都斷電,因此該模式能減少靜態(tài)和動(dòng)態(tài)功耗組件,從而實(shí)現(xiàn)最低功耗。
5.停止:顧名思義,停止模式就是所有外設(shè)斷電,即使是RAM和CPU寄存器的內(nèi)容也不保持。在PSoC 4等類(lèi)似器件中,這種模式下僅保持IO引腳的狀態(tài)。從這種模式下喚醒會(huì)進(jìn)入芯片重啟動(dòng)。
當(dāng)分析一款應(yīng)用的功耗時(shí),必須查看所有電源模式下的功耗情況。
必須明確某種模式下能提供喚醒源。舉例來(lái)說(shuō),需要某種中斷才能從休眠模式喚醒,在冬眠模式下則需要I2C地址匹配中斷以喚醒器件。需要了解每種模式下有哪些資源工作,能提供什么喚醒資源。舉例來(lái)說(shuō),系統(tǒng)中可用比較器中斷作為喚醒源,在超出設(shè)定閾值情況下可用模擬輸入喚醒系統(tǒng)。就圖1所示的應(yīng)用而言,喚醒需要采用GPIO中斷或者甚至硬復(fù)位,因?yàn)镽TC會(huì)隨時(shí)運(yùn)行,而且控制器不需要保持此前的狀態(tài)。
冬眠和停止模式下,功耗可低至100nA.對(duì)于RTC本身而言,您會(huì)很容易找到功耗很低的RTC(僅消耗100-200nA)。假設(shè)控制器直接驅(qū)動(dòng)LCD,我們可認(rèn)為L(zhǎng)CD的關(guān)閉狀態(tài)功耗為零。
這就使得圖1所示系統(tǒng)中的平均功耗在300nA的范圍內(nèi)。如果我們假設(shè)設(shè)計(jì)方案采用CR2032作為電源,電池容量約為225mAh.就300nA的電流來(lái)說(shuō),電池僅在器件始終處于斷電模式下能支持70到80年的工作。
每次按下按鍵,控制器都會(huì)喚醒。這會(huì)將控制器的功耗提升到500μA-1mA的范圍。假設(shè)功耗為1mA左右,控制器從RTC獲取數(shù)據(jù)并顯示在LCD上??刂破鲌?zhí)行這項(xiàng)工作只需很短的時(shí)間,但顯示屏要保持較長(zhǎng)工作時(shí)間(假設(shè)說(shuō)顯示屏亮起10秒鐘確保用戶看到數(shù)據(jù))。作為直接驅(qū)動(dòng)LCD,控制器必須保持較長(zhǎng)的工作時(shí)間,也就是要消耗更多電荷。在此情況下,賽普拉斯的PSoC4等器件可提供低功耗模式,能讓設(shè)備關(guān)閉所有其它外設(shè),僅運(yùn)行驅(qū)動(dòng)LCD所需的模塊。在這種器件中,LCD驅(qū)動(dòng)運(yùn)行在特定的低功耗模式下,這種模式被稱(chēng)為數(shù)字關(guān)聯(lián)模式。其結(jié)果就是大幅減少電流消耗。
圖2:各種狀態(tài)下的電流消耗
每次按鍵都會(huì)經(jīng)歷如圖2所示的電流曲線。曲線下方區(qū)域是單次按鍵的典型功耗。消耗的電荷計(jì)算如下:
Q = (1mA*1ms) + (20μA*10s)
根據(jù)上面的數(shù)據(jù),我們可計(jì)算出給定電源能支持多少次按鍵。
工作模式下所花的時(shí)長(zhǎng)非常重要,因?yàn)檫@種模式下耗電最大。一個(gè)選項(xiàng)