嵌入式系統(tǒng)中的低功耗設計
經(jīng)過近幾年的快速發(fā)展,嵌入式系統(tǒng)(embedded system)已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長力的一個分支。隨著手機、pda、gps、機頂盒等新興產(chǎn)品的大量應用,嵌入式系統(tǒng)的市場正在以每年30%的速度遞增(idc預測),嵌入式系統(tǒng)的設計也成為軟硬件工程師越來越關心的話題?! ≡谇度胧较到y(tǒng)的設計中,低功耗設計(low-power design)是許多設計人員必須面對的問題,其原因在于嵌入式系統(tǒng)被廣泛應用于便攜式和移動性較強的產(chǎn)品中去,而這些產(chǎn)品不是一直都有充足的電源供應,往往是靠電池來供電,所以設計人員從每一個細節(jié)來考慮降低功率消耗,從而盡可能地延長電池使用時間。事實上,從全局來考慮低功耗設計已經(jīng)成為了一個越來越迫切的問題。 那么,我們應該從哪些方面來考慮低功耗設計呢?筆者認為應從以下幾方面綜合考慮: 處理器的選擇 接口驅動電路設計 動態(tài)電源管理 電源供給電路的選擇 下面我們分別進行討論: 一、處理器的選擇 我們對一個嵌入式系統(tǒng)的選型往往是從其cpu和操作系統(tǒng)(os)開始的,一旦這兩者選定,整個大的系統(tǒng)框架便選定了。我們在選擇一個cpu的時候,一般更注意其性能的優(yōu)劣(比如時鐘頻率等)及所提供的接口和功能的多少,往往忽視其功耗特性。但是因為cpu是嵌入式系統(tǒng)功率消耗的主要來源---對于手持設備來講,它幾乎占據(jù)了除顯示屏以外的整個系統(tǒng)功耗的一半以上(視系統(tǒng)具體情況而定),所以選擇合適的cpu對于最后的系統(tǒng)功耗大小有舉足輕重的影響?! ∫话愕那闆r下,我們是在cpu的性能(performance)和功耗(power consumption)方面進行比較和選擇。通常可以采用每執(zhí)行1m次指令所消耗的能量來進行衡量,即watt/mips。但是,這僅僅是一個參考指標,實際上各個cpu的體系結構相差很大,衡量性能的方式也不盡相同,所以,我們還應該進一步分析一些細節(jié)?! ∥覀儼裞pu的功率消耗分為兩大部分:內(nèi)核消耗功率pcore和外部接口控制器消耗功率pi/o,總的功率等于兩者之和,即p=pcore+pi/o。對于pcore,關鍵在于其供電電壓和時鐘頻率的高低;對于pi/o來講,除了留意各個專門i/o控制器的功耗外,還必須關注地址和數(shù)據(jù)總線寬度。下面對兩者分別進行討論: 1、cpu供電電壓和時鐘頻率 我們知道,在數(shù)字集成電路設計中,cmos電路的靜態(tài)功耗很低,與其動態(tài)功耗相比基本可以忽略不計,故暫不考慮。其動態(tài)功耗計算公式為: pd=ctv2f 式中,pd---cmos芯片的動態(tài)功耗 ct----cmos芯片的負載電容 v----cmos芯片的工作電壓 f-----cmos芯片的工作頻率 由上式可知,cmos電路中的功率消耗是與電路的開關頻率呈線性關系,與供電電壓呈二次平方關系。對于一顆cpu來講, vcore電壓越高,時鐘頻率越快,則功率消耗越大。所以,在能夠滿足功能正常的前提下,盡可能選擇低電壓工作的cpu能夠在總體功耗方面得到較好的效果。對于已經(jīng)選定的cpu來講,降低供電電壓和工作頻率,也是一條節(jié)省功率的可行之路?! ?、總線寬度 我們還經(jīng)常陷入一個誤區(qū),即:cpu外部總線寬度越寬越好。如果我們僅僅從數(shù)據(jù)傳輸速度上來講,也許這個觀點是對的,但如果在一個對功耗相當敏感的設計來說,這個觀點就不一定正確了?! ⊥瑯右霉絧d=ctv2f ,對于每一條線(地址等數(shù)據(jù)線)而言,都會面臨這樣的功率消耗,顯而易見,當總線寬度越寬的時候,功耗自然越大。每條線路的容性負載都不太一樣,但一般都在4~12pf之間。我們來看下面一個例子:一片1mbit flash通過8bit和16bit的總線與cpu相連,總線頻率為4mhz ,總線電壓為3.3v。我們可以得到以下結果: 由上可見,采用16-bit總線和采用8-bit總線會有3.7mw的功耗差異。當然,如果需要大量頻繁地存取數(shù)據(jù)的場合下,用8-bit總線不見得會經(jīng)濟,因為增加了讀寫周期。 另外,從上面的例子我們也可以看到:如果cpu采用內(nèi)置flash的方式,也可大大地降低系統(tǒng)功率消耗?! 《?、接口驅動電路的低功耗設計 接口電路的低功耗設計,往往是容易被大家所忽略的一個環(huán)節(jié),在這個環(huán)節(jié)里,我們除了考慮選用靜態(tài)電流較低的外圍芯片外,還應該考慮以下幾個因素: 上拉電阻/下拉電阻的選取 對懸空腳的處理 buffer的必要性 通常我們習慣隨意地確定一個上拉電阻值,而沒有經(jīng)過仔細地計算。現(xiàn)在我們來簡單計算一下,如果在一個3.3v的系統(tǒng)里用4.7kω為上拉電阻,當輸出為低的時候,每只腳上的電流消耗就為0.7ma,如果有10個這樣的信號腳時,就會有7ma電流消耗在這上面。所以我們應該在考慮在能夠正常驅動后級的情況下(即考慮ic的vih或vil),盡可