新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)設(shè)計中的低功耗技術(shù)

嵌入式系統(tǒng)設(shè)計中的低功耗技術(shù)

作者: 時間:2011-01-20 來源:網(wǎng)絡(luò) 收藏

摘要: 為了探討系統(tǒng)的低功耗技術(shù)降低系統(tǒng)的功率消耗, 文中從硬件和軟件兩個方面對系統(tǒng)設(shè)計的低功耗問題進行了分析和研究。

0 引言

隨著科學的發(fā)展和微電子技術(shù)的不斷創(chuàng)新,嵌入式系統(tǒng)的應(yīng)用越來越多, 并已廣泛滲透到各個領(lǐng)域。嵌入式系統(tǒng)是以應(yīng)用為中心, 以電子技術(shù)和計算機技術(shù)為基礎(chǔ), 軟硬件可剪裁, 能適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、穩(wěn)定性、成本、體積、功耗等多方面嚴格要求的專用計算機系統(tǒng)。

在嵌入式系統(tǒng)的設(shè)計中, 低功耗設(shè)計技術(shù)成為許多設(shè)計人員逐漸關(guān)注的問題, 其原因在于嵌入式系統(tǒng)已被越來越多的應(yīng)用在便攜式和移動性較強的產(chǎn)品中, 而這些產(chǎn)品往往要靠電池來供電。實際上, 這些年來, 有關(guān)電池的儲能密度并沒有得到大的進步。而對于便攜設(shè)備, 尤其是手持消費品而言, 如果單靠提高電池容量來提高續(xù)航能力, 似乎并不完全切合實際。因此, 為提高設(shè)備性能, 設(shè)計人員更需要從每一個細節(jié)考慮降低硬件系統(tǒng)本身的能耗。從而盡可能地延長電池的使用時間。事實上, 低功耗設(shè)計也已經(jīng)成為一個越來越迫切的問題, 因而應(yīng)該從硬件和軟件兩個方面來考慮嵌入式系統(tǒng)中的低功耗設(shè)計。

1 硬件的低功耗設(shè)計

1.1 硬件電路器件

由于現(xiàn)在絕大部分電路均采用集成電路CMOS工藝技術(shù), 這與以前的TTL工藝相比, 本身就已經(jīng)起到了降低電子元器件和整體系統(tǒng)功耗的作用, 因此, 應(yīng)該繼續(xù)多采用CMOS集成電路工藝技術(shù)。另外, 由于采用CMOS集成工藝技術(shù),其電路靜態(tài)功耗很小(可忽略不計), 而動態(tài)功耗較大, 因為動態(tài)功耗是指電路高低電平翻轉(zhuǎn)時產(chǎn)生的功耗, 在電路高低電平翻轉(zhuǎn)跳變沿期間, 電流很大, 存在較大功耗, 所以, 降低硬件電路功耗主要是降低電路動態(tài)功耗。動態(tài)功耗公式為:


其中, P代表CMOS芯片的動態(tài)功耗, C代表CMOS芯片的負載電容, V和f分別代表CMOS芯片的工作電壓和工作頻率。由公式可知, COMS硬件集成電路的功耗與工作電壓和工作頻率之間有密切的關(guān)系。因此, 使用CMOS系列電路時, 其不用的輸入端不要懸空, 因為懸空的輸入端可能存在感應(yīng)信號, 并可能造成高低電平的轉(zhuǎn)換。同時, 由于轉(zhuǎn)換器件的功耗很大, 故應(yīng)盡量采用輸出為高的原則。

1.2 低功耗外圍器件的選用

完成同樣的功能, 電路的實現(xiàn)形式有多種。例如, 盡可能地將嵌入式系統(tǒng)的內(nèi)部存儲器RAM轉(zhuǎn)換為外部的閃存FLASH, 因為在同樣條件下,讀內(nèi)部RAM比讀外部FLASH會帶來更大的功耗。也可以利用分立元件、小規(guī)模集成電路, 大規(guī)模集成電路甚至單片實現(xiàn)。通常使用的元器件數(shù)量越少, 系統(tǒng)的功耗越低。因此, 應(yīng)盡量使用集成度高的器件, 以減少電路中使用元件的個數(shù), 減少整機的功耗。

1.3 微處理器的選擇

嵌入式微處理器的功率消耗在嵌入式系統(tǒng)中占有相當大的部分, 所以, 選擇合適的處理器,對于嵌入式系統(tǒng)的整體功耗具有很大影響。微處理器的功耗主要分為兩部分: 內(nèi)核功耗Pcore和外部接口控制器功耗Pio, 總功耗等于兩者之和, 即P=Pcore+Pio。對于Pcore, 其關(guān)鍵在于供電電壓和時鐘頻率的高低; 而對于Pio, 除了各個專門I/O控制器的功耗外, 還有地址/數(shù)據(jù)總線寬度, 因為總線寬度越寬, 處理能力越大, 功耗也越大。所以降低功耗, 必需讓總線位數(shù)變窄。

要降低微處理器內(nèi)核的Pcore功耗, 就必須想法降低處理器的工作電壓和時鐘頻率, 其中降低微處理器的工作電壓是很有效的途徑, 也是未來發(fā)展的趨勢, 目前許多的嵌入式微處理器的工作電壓可降至2 V以下。并且高效率的處理器都提供有多種時鐘頻率和工作電壓的選擇, 以便于最大限度地節(jié)約功耗。此外, 在進行系統(tǒng)設(shè)計時,在工作電壓相差不大和系統(tǒng)處理能力許可的情況下, 還應(yīng)盡可能降低微處理器的時鐘頻率, 現(xiàn)以起到節(jié)能的作用。以SAMSUNG S3C2410 (32 位ARM 920T內(nèi)核) 為例, 它就提供了四種工作模式: 正常模式、空閑模式、休眠模式、關(guān)機模式。各種模式下的功耗如表1所列。

表1 不同工作模式的時鐘頻率與功耗對比表


由表1可知, CPU在全速運行的時候, 比在空閑或者休眠時消耗的功率大得多。省電的原則就是讓正常運行模式遠比空閑、休眠模式少占用時間。在類似PDA的設(shè)備中, 系統(tǒng)在全速運行時遠比空閑的時候少, 所以, 可以通過設(shè)置, 使CPU盡可能工作在空閑狀態(tài), 使用時再通過相應(yīng)的中斷喚醒CPU, 以恢復到正常工作模式來處理響應(yīng)的事件, 然后再進入空閑模式。因此, 設(shè)計系統(tǒng)時, 如果處理能力許可, 可盡量降低處理器的時鐘頻率。

也可以動態(tài)改變處理器的時鐘頻率以降低功耗, 比如可關(guān)閉不需要的外設(shè)控制器, 并在CPU空閑時降低時鐘頻率; 而在處于工作狀態(tài)時, 再提高時鐘頻率以加快運行速度。

1.4 多CPU系統(tǒng)

盡管現(xiàn)在已有各種可在不過多加重功耗負擔的前提下提高性能的技術(shù), 但用一個芯片來處理多種任務(wù), 已不是一個較好的選擇。一是因為這些功能對芯片處理功能的要求可能各不相同, 二是因為一個負擔著多任務(wù)的芯片需要很高的速度, 這樣, 降低功耗就變得很困難, 這就使得多CPU 系統(tǒng)(MPCore) 成為一個必然的趨勢。多CPU 系統(tǒng)的一個明顯的優(yōu)勢是可針對不同的任務(wù)處理需要, 用不同的CPU 來各盡其職, 以將自身的優(yōu)勢充分發(fā)揮, 從而給予系統(tǒng)最優(yōu)化的性能表現(xiàn)。另一個優(yōu)勢是對功耗的控制: 假如用單CPU來完成所有的功能, 則不可避免地需要一個很高的CPU 速度, 從而造成很高的功耗, 浪費很多能源。多CPU 系統(tǒng)可以根據(jù)不同的任務(wù)來合理地啟動、停止相應(yīng)的CPU 以完成任務(wù), 而在不需要的時候處于停歇狀態(tài), 從而最大限度地控制功耗。

1.5 分區(qū)/分時供電技術(shù)

對于一個嵌入式系統(tǒng)來說, 系統(tǒng)的工作量隨時都在改變, 不可能所有的組件任何時刻都在工作, 故可采用分區(qū)/分時供電技術(shù)來降低功耗,可利用開關(guān)控制電源供電單元, 在某一部分電路處于休眠狀態(tài)時, 關(guān)閉此部分電路的供電電源,僅對工作部分組件供電。其供電原理如圖1所示。


圖1 分區(qū)分時技術(shù)原理圖。

2 軟件的低功耗設(shè)計

2.1 優(yōu)化編譯器

在嵌入式系統(tǒng)設(shè)計中, 軟件起著引導硬件活動的主導作用, 也對系統(tǒng)的能量消耗有很大的影響。過去幾年的研究主要是針對硬件部分, 而現(xiàn)在, 研究設(shè)計人員則更注重通過優(yōu)化軟件部分來降低系統(tǒng)功耗。要想對軟件進行優(yōu)化, 必須選擇正確的編譯方法, 以降低程序執(zhí)行的功耗。編譯器的作用就是將由高級語言編寫的程序(如C/C++等), 翻譯成能夠在目標機上執(zhí)行的程序。同時, 也使得程序的可讀性和可維護性得到保證,提高了軟件開發(fā)的效率。另外, 將程序移植到新的目標機上, 也只要用相應(yīng)的編譯器對程序進行重新編譯即可, 而不必重新編寫程序。但是, 在某些情況下, 這樣會影響程序的執(zhí)行性能。編譯器的有效性以及它所生成的代碼效率, 可以與匯編語言代碼相比較得出。事實上, 在一個程序中, 每一條指令都將激活微處理器中的某些硬件部件, 因此, 正確選擇指令可以降低處理器的功耗。通過優(yōu)化編譯器可以進行有效的軟件低功率化, 從而生成效率更高的代碼, 以降低嵌入式設(shè)備的功耗。

2.2 采用軟件代替硬件電路

一般的硬件電路都存在功耗, 所以, 可以把具有數(shù)據(jù)運算處理功能的硬件電路用軟件來實現(xiàn), 例如濾波電路, 指數(shù)、對數(shù)運算電路、抗干擾電路等。但是, 任何事情都不是絕對的, 部分硬件電路到底能否通過軟件來實現(xiàn), 此外, 還要考慮處理大量的軟件數(shù)據(jù), 需要提高處理器的性能和功耗等, 同時要考慮這是否合算。

2.3 中斷驅(qū)動技術(shù)設(shè)計

把整個嵌入式系統(tǒng)軟件設(shè)計成多個事件來處理, 而在系統(tǒng)上電初始化時, 主程序只進行系統(tǒng)的初始化(包括寄存器、外部設(shè)備等), 初始化完成后, 進入低功耗狀態(tài), 然后把CPU控制的設(shè)備都接到中斷輸入端上。當外設(shè)發(fā)生了一個事件,即產(chǎn)生中斷信號, 使CPU退出節(jié)電狀態(tài)而進入事件處理, 事件處理完成后, 繼續(xù)進入節(jié)電狀態(tài)。

在嵌入式程序設(shè)計時, 一個程序到底使用中斷方式還是查詢方式, 對于一些簡單的應(yīng)用并不那么重要, 但在其低功耗特性上卻相去甚遠。使用中斷方式, 微控制器可以什么都不做, 甚至可以進入等待模式或停止模式; 而在查詢方式下, 微控制器必須不停地訪問寄存器, 這會帶來很多額外的功耗, 所以, 用軟件進行設(shè)計時, 除非系統(tǒng)本身已要求采用查詢方式, 否則應(yīng)盡可能采用中斷方式進行編程。

2.4 定時器延時程序的采用

當軟件設(shè)計中需要用到延時程序時, 設(shè)計人員應(yīng)多使用定時器延時方法來進行設(shè)計。這是因為, 通常嵌入式處理器進入待機模式后, CPU會停止工作, 而定時器可以正常工作, 由于定時器的功耗很低, 故當處理器調(diào)用延時程序后, 嵌入式系統(tǒng)便可進入待機模式, 此時定時器可以繼續(xù)工作, 定時時間一旦結(jié)束, 即可喚醒CPU重新進入工作, 這樣不但降低了CPU功耗, 還提高了CPU的工作效率。而如果采用查詢方式, 則CPU會不斷地對系統(tǒng)進行查詢, 由于CPU時刻工作,這樣不但效率低下, 同時處理器功耗也很大。

2.5 算法優(yōu)化

優(yōu)化算法多出現(xiàn)在嵌入式中, 采用大量現(xiàn)成的公式和計算方法, 可以節(jié)省系統(tǒng)內(nèi)部運算的時間, 減少功耗; 另外, 在嵌入式系統(tǒng)允許的誤差情況下, 也可以近似用比較簡單的函數(shù)來取代復雜函數(shù)進行運算, 從而減少功率消耗。

3 結(jié)束語

嵌入式系統(tǒng)的設(shè)計涉及到硬件設(shè)計和軟件設(shè)計兩個方面, 在實際系統(tǒng)應(yīng)用時, 低功耗的設(shè)計并非是單方面的因素, 需要綜合考慮各種可能的原因、條件和狀態(tài), 應(yīng)把硬件設(shè)計和軟件設(shè)計綜合起來進行考慮, 并對細節(jié)進行認真的分析, 同時對多種可能的方案和方法進行計算和總結(jié), 這樣才可能取得較為滿意的效果, 最終達到降低系統(tǒng)功耗的目的。

本文引用地址:http://butianyuan.cn/article/151065.htm
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

c++相關(guān)文章:c++教程




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

評論


相關(guān)推薦

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

關(guān)閉