如何低功耗嵌入式系統(tǒng)
嵌入式系統(tǒng)的應(yīng)用隨著各種智能控制系統(tǒng)、智能玩具、工業(yè)控制、掌上設(shè)備(Portable)等的需求而不斷擴大和流行。特別是近幾年來,隨著手機、PDA、MP3等掌上系統(tǒng)的流行,使得系統(tǒng)功耗成為產(chǎn)品的設(shè)計瓶頸,也成為產(chǎn)品設(shè)計的關(guān)鍵技術(shù)之一。當然,功耗的問題本身是一個系統(tǒng)的問題,要想有效地降低整體功耗,不但需要在硬件上要充分考慮,而且在軟件的設(shè)計上更需要認真對待。一個真正高效的低功耗系統(tǒng),軟硬件的相互配合和優(yōu)化才是極為關(guān)鍵的。
本文引用地址:http://butianyuan.cn/article/257753.htm一般來講,低功耗嵌入式系統(tǒng)的設(shè)計包括如下的幾個關(guān)鍵的步驟:
1. 方案的確定:方案是設(shè)計的關(guān)鍵,是項目成功的基本條件。方案選擇錯了就等于一個人走錯了路,要么達不到要求,要么事倍功半,有時雖然滿足了設(shè)計的要求,但卻在時間、預(yù)算和成本等方面增加了更多的投入。例如在玩具行業(yè),一般均選擇4位系列的MCU來進行產(chǎn)品的設(shè)計,若采用8位甚至16位MCU,則無論是在成本,功耗等方面都將是得不償失的選擇;
2. 器件的選型:不同的芯片,不同的廠家其所提供的產(chǎn)品的特性均存在差異,特別是在功耗方面,有時差別很大,比如在4位MCU領(lǐng)域,EPSON、OKI等的公司的Microcontroller的功耗就比Samsung以及臺灣廠家的相同系列MCU要低幾倍甚至是一個數(shù)量級。因此確定了方案之后,如何選擇合理的器件和MCU,也是保證產(chǎn)品功耗能夠達到要求的關(guān)鍵;
3. 硬件設(shè)計:我們知道外圍電路有時是整個系統(tǒng)的功耗“大戶”,比如ADC、背光、蜂鳴器、外部Memory、各種傳感器等。因此如何合理設(shè)計外圍電路模塊,合理使用和控制相關(guān)的外圍電路模塊將是系統(tǒng)設(shè)計的重點。當然硬件的設(shè)計必須與軟件的設(shè)計相結(jié)合。
4. 軟件的設(shè)計:軟件的設(shè)計是整個系統(tǒng)設(shè)計的重中之重,系統(tǒng)整體功耗的控制、外圍電路模塊的使用、調(diào)度和切換等,均需要通過軟件的編程來實現(xiàn)。一般來講,低功耗軟件設(shè)計包括如下的幾個方面:
a) 初始化:初始化是嵌入式系統(tǒng)設(shè)計的基本步驟,也是控制整個系統(tǒng)功耗的重要的步驟,何以如此呢?我們知道,一般來講在初始化部分,我們需要對整個系統(tǒng)進行配置,比如IO口的設(shè)置、外圍功能的配置等,而其中最容易被設(shè)計者所忽略的一步就是對在項目設(shè)計中未被使用MCU的功能的配置,有時正是這些資源的配置不合理,從而導(dǎo)致系統(tǒng)整體功耗出現(xiàn)意想不到的結(jié)果。
b) 系統(tǒng)時鐘的控制:合理使用系統(tǒng)時鐘,會在功耗方面帶來意想不到的效果。我們知道,CPU的系統(tǒng)時鐘與CPU的功耗成正比,時鐘越快,其功耗也越大。因此,對于一些具有多個系統(tǒng)時鐘的Microcontroller,軟件的設(shè)計時必須根據(jù)系統(tǒng)需求來選擇合理的CPU時鐘,例如某些帶有外部Memory的運動手表,在正常的運行下可以采用32768Hz作為其CPU時鐘,以獲得最低的整體功耗;而在訪問外部Memory時,由于外部Memory的訪問電流在幾個毫安甚至更高,而長時間的訪問勢必導(dǎo)致功耗的增加,因此為了有效地降低由于Memory訪問而導(dǎo)致的電流的損耗,則可以切換到1Mhz或更高的CPU時鐘下,以求在最短的時間里完成對Memory的訪問。當然,在進行時鐘切換的時候必須進行全面的考慮,因為選擇較高的CPU時鐘,其MCU本身的功耗也會增加,因此我們必須要在各種因素下找到其平滑點。對于一個給定的系統(tǒng),由于電壓是固定的,而且電池的容量也是固定的(設(shè)位WBatt),因此系統(tǒng)的功耗可以用下式來進行表示:
WBatt = ∑Ik*Tk (k = 0......n)
其中,Ik為系統(tǒng)在不同的狀態(tài)或條件下的電流,而Tk則為系統(tǒng)在此狀態(tài)或條件下所維持的時間。
從上式可以看出,若要獲得最低的功耗,要求Ik*Tk必須最小,對于一些模式來講,時間有時是不可控制的,比如待機模式,此時只有更小的電流才能獲得最地的功耗,而反應(yīng)在芯片上就是一款芯片的Power Down Current;相反,對于電流是固定的情況,則必須讓系統(tǒng)盡可能短地停留在該狀態(tài)下。
c) IO口的控制:IO口的控制主要集中在上拉、下拉電阻的選擇,待機狀態(tài)下的電平輸入輸出設(shè)置等。對于IO口的控制,必須記住一個原則:任何情況下,都必須盡可能保證在IO口上不存在電流的流動。電流即意味著能量的損耗,因此在軟件設(shè)計是必須根據(jù)實際的情況來合理配置IO口的狀態(tài)和其輸入輸出電平;
d) MCU工作模式的使用:對于大多數(shù)低功耗MCU,均存在多種工作模式,一般包括如下幾個運行模式:
i. 正常運行模式:CPU和Clock均在工作,此時MCU處于最大功耗狀態(tài);
ii. 停機模式:CPU停止工作,但系統(tǒng)時鐘仍在工作,此時MCU處于較低的功耗狀態(tài);
iii. 掉電模式:CPU和系統(tǒng)時鐘均停止工作,此時MCU處于最低功耗狀態(tài);
e) 外圍功能模塊或電路模塊的管理:大多數(shù)系統(tǒng)的外圍功能模塊都是處于一種低頻度使用狀態(tài),而且有時其功能的開啟是有條件的,因而合理的使用和調(diào)度外圍模塊也是降低功耗的重要方法。例如在含有傳感器的系統(tǒng)中,可以根據(jù)傳感器數(shù)據(jù)增量的變化來提高或降低其開啟的頻率,就以環(huán)境溫度的檢測為例,由于環(huán)境的溫度變化是非常緩慢的一個過程,應(yīng)此對其的檢測可以以一種相對較長的時間間隔來進行,入一分鐘或若干分鐘,若在某一次檢測出現(xiàn)有別于常規(guī)的溫度變化時,為了保證數(shù)據(jù)的可靠性,則可以在短時間內(nèi)對其進行若干次的重復(fù)測量,以確認其溫度的變化是否時正常的還是由于其他的干擾所導(dǎo)致。
總之,低功耗的設(shè)計并非是一蹴而就的事情,需要綜合考慮各種可能的因素、條件和狀態(tài),需要對各種細節(jié)進行認真的斟鑿和分析,對各種可能的方案和方法進行計算和分析,才可能取得較為滿意的效果。
評論