<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 設(shè)計(jì)超低功耗的嵌入式應(yīng)用:五種電源模式詳解

          設(shè)計(jì)超低功耗的嵌入式應(yīng)用:五種電源模式詳解

          作者: 時(shí)間:2014-10-31 來(lái)源:電子產(chǎn)品世界 收藏

            通常說(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ì)介紹各種模式。

          本文引用地址:http://www.ex-cimer.com/article/264707.htm

            以下電源模式也得到其它制造商的大多數(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等類似器件中,這種模式下僅保持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)行在特定的低功耗模式下,這種模式被稱為數(shù)字關(guān)聯(lián)模式。其結(jié)果就是大幅減少電流消耗。

            

          各種狀態(tài)下的電流消耗

           

            圖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)是讓MCU保持工作模式,但CPU時(shí)鐘速度較低,從而降低工作模式下的耗電。不過(guò),這會(huì)導(dǎo)致更高的平均功耗,因?yàn)楣ぷ髂J剿ǖ臅r(shí)間取決于時(shí)鐘頻率。此時(shí)由于MCU必須處于工作模式,因此功耗取決于MCU處理數(shù)據(jù)所花的時(shí)間。更快速的 MCU能很快完成任務(wù),從而延長(zhǎng)處于低功耗模式下的時(shí)間,也就能讓系統(tǒng)減少功耗。系統(tǒng)設(shè)計(jì)人員可根據(jù)系統(tǒng)要求明確最佳配置。

            在本系列文章的下一部分,我們將以更大型系統(tǒng)為例作講解,并介紹如何降低平均功耗。此外,我們還將探討一些降低平均功耗的系統(tǒng)級(jí)技巧。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
          電荷放大器相關(guān)文章:電荷放大器原理


          關(guān)鍵詞: 嵌入式 電源

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();