嵌入式系統(tǒng)低功耗設(shè)計(jì)研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引 言
經(jīng)過(guò)近幾年的快速發(fā)展,嵌入式系統(tǒng)(Embedded System)已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長(zhǎng)力的一個(gè)分支。隨著手機(jī)、PDA,GPS、機(jī)頂盒等新興產(chǎn)品的大量應(yīng)用,嵌入式系統(tǒng)的市場(chǎng)正在以每年30%的速度遞增(IDC預(yù)測(cè)),嵌入式系統(tǒng)的設(shè)計(jì)也成為軟硬件工程師越來(lái)越關(guān)心的話題。
在嵌入式系統(tǒng)設(shè)計(jì)中,低功耗設(shè)計(jì)(Low Power Design)是許多設(shè)計(jì)人員必須面對(duì)的問(wèn)題。其原因在于嵌入式系統(tǒng)被廣泛應(yīng)用于便攜式和移動(dòng)性較強(qiáng)的產(chǎn)品中,而這些產(chǎn)品不是一直都有充足的電源供應(yīng),往往是靠電池來(lái)供電的;而且大多數(shù)嵌入式設(shè)備都有體積和質(zhì)量的約束。另外,系統(tǒng)部件產(chǎn)生的熱量和功耗成比例,為解決散熱問(wèn)題而采取的冷卻措施進(jìn)一步增加了系統(tǒng)的功耗。為了得到最好的結(jié)果,降低系統(tǒng)的功耗具有下面的優(yōu)點(diǎn):
(1)電池驅(qū)動(dòng)的需要。在強(qiáng)調(diào)綠色環(huán)保時(shí)期,許多電子產(chǎn)品都采用電池供電。對(duì)于電池供電系統(tǒng),延長(zhǎng)電池壽命,降低用戶更換電池的周期,提高系統(tǒng)性能與降低系統(tǒng)開銷,甚至能起到保護(hù)環(huán)境的作用。
(2)安全的需要。在現(xiàn)場(chǎng)總線領(lǐng)域,本安問(wèn)題是一個(gè)重要話題。例如FF的本安設(shè)備,理論上每個(gè)網(wǎng)段可以容納32個(gè)設(shè)備,而實(shí)際應(yīng)用中考慮到目前的功耗水平,每個(gè)網(wǎng)段安裝10個(gè)比較合適。因此降低系統(tǒng)功耗是實(shí)現(xiàn)本安要求的一個(gè)重要途徑。
(3)解決電磁干擾。系統(tǒng)功耗越低,電磁輻射能量越小,對(duì)其他設(shè)備造成的干擾也越小。如果所有的電子產(chǎn)品都能設(shè)計(jì)成低功耗,那么電磁兼容性設(shè)計(jì)會(huì)變得容易。
(4)節(jié)能的需要。特別是對(duì)電池供電系統(tǒng),功耗與電壓的平方成正比即:P=V2/fC+Pstatic,因此節(jié)能更為重要。
1 功耗產(chǎn)生的原因
1.1 集成電路的功耗
目前的集成電路工藝主要有TTL和CMOS兩大類,無(wú)論哪種工藝。只要電路中有電流通過(guò).就會(huì)產(chǎn)生功耗。通常,集成電路的功耗主要有4個(gè):
(1)開關(guān)功耗。對(duì)電路中的電容充放電而形成,其表達(dá)式為:
式中:Vdd為電源電壓;C為被充放電的電容:α為活動(dòng)因子;f為開關(guān)頻率。
(2)靜態(tài)功耗和動(dòng)態(tài)功耗。當(dāng)電路的狀態(tài)沒(méi)有進(jìn)行翻轉(zhuǎn)(保持高電平或低電平)時(shí),電路的功耗屬于靜態(tài)功耗,其大小等于電路電壓與流過(guò)電流的乘積;動(dòng)態(tài)功耗是電路翻轉(zhuǎn)時(shí)產(chǎn)生的功耗,由于電路翻轉(zhuǎn)時(shí)存在跳變沿,在電路翻轉(zhuǎn)瞬間,電流比較大.存在較大的動(dòng)態(tài)功耗。目前大多數(shù)電路都采用CMOS工藝,靜態(tài)功耗很小,可以忽略。起主要作用的是動(dòng)態(tài)功耗,因此從降低動(dòng)態(tài)功耗人手來(lái)降低功耗。
(3)短路功耗。因開關(guān)時(shí)由電源到地形成的通路造成的,其表達(dá)式為:
式中:κ由工藝和電壓決定;W為晶體管寬度;τ為輸入信號(hào)上升/下降的時(shí)間;f為工作頻率。
(4)漏電功耗。由亞閾值電流和反向偏壓電流造成。目前大多數(shù)電路都采用CMOS工藝。故漏電功耗很小,可以忽略。
1.2 電阻的功耗和有源器件的功耗
通常為負(fù)載器件和寄生元件產(chǎn)生的功耗。有源開關(guān)器件在狀態(tài)轉(zhuǎn)換時(shí),電流和電壓比較大,將引起功率消耗。另外,CMOS電路中最大的功耗來(lái)自于內(nèi)部和外部的電容充放電產(chǎn)生的功耗。
2 硬件低功耗設(shè)計(jì)
2.1 選擇低功耗的器件
選擇低功耗的電子器件可以從根本上降低整個(gè)硬件系統(tǒng)的功耗。目前的半導(dǎo)體工藝主要有TTL工藝和CMOS工藝,CMOS工藝具有很低的功耗,在電路設(shè)計(jì)上盡量選用,使用CMOS系列電路時(shí),其不用的輸入端不要懸空,因?yàn)閼铱盏妮斎攵丝赡艽嬖诟袘?yīng)信號(hào),它將造成高低電平的轉(zhuǎn)換。轉(zhuǎn)換器件的功耗很大,盡量采用輸出為高的原則。
嵌入式處理器是嵌入式系統(tǒng)的硬件核心,消耗大量的功率,因此設(shè)計(jì)時(shí)選用低功耗的處理器;另外,選擇低功耗的通信收發(fā)器(對(duì)于通信應(yīng)用系統(tǒng))、低功耗的訪存部件、低功耗的外圍電路,目前許多通信收發(fā)器都設(shè)計(jì)成節(jié)省功耗方式,這樣的器件優(yōu)先采用。
2.2 選用低功耗的電路形式
完成同樣的功能,電路的實(shí)現(xiàn)形式有多種。例如,可以利用分立元件、小規(guī)模集成電路,大規(guī)模集成電路甚至單片實(shí)現(xiàn)。通常,使用的元器件數(shù)量越少,系統(tǒng)的功耗越低。因此,盡量使用集成度高的器件,以減少電路中使用元件的個(gè)數(shù),減少整機(jī)的功耗。
2.3 單電源、低電壓供電
一些模擬電路如運(yùn)算放大器等。供電方式有正負(fù)電源和單電源兩種。雙電源供電可以提供對(duì)地輸出的信號(hào)。高電源電壓的優(yōu)點(diǎn)是可以提供大的動(dòng)態(tài)范圍,缺點(diǎn)是功耗大。例如,低功耗集成運(yùn)算放大器LM324,單電源電壓工作范圍為5~30 V。當(dāng)電源電壓為15 V時(shí),功耗約為220 mw;當(dāng)電源電壓為10 V時(shí),功耗約為90 mw;當(dāng)電源電壓為5 V時(shí),功耗約為15 mw??梢?jiàn),低電壓供電對(duì)降低器件功耗的作用十分明顯。因此,處理小信號(hào)的電路可以降低供電電壓。
2.4 分區(qū)/分時(shí)供電技術(shù)
一個(gè)嵌入式系統(tǒng)的所有組成部分并非時(shí)刻在工作,基于此,可采用分時(shí)/分區(qū)的供電技術(shù)。原理是利用“開關(guān)”控制電源供電單元,在某一部分電路處于休眠狀態(tài)時(shí),關(guān)閉其供電電源,僅保留工作部分的電源。
2.5 I/O引腳供電
嵌入式處理器的輸出引腳在輸出高電平時(shí),可以提供約20 mA的電流,該引腳可以直接作為某些電路的供電電源使用,如圖2所示。處理器的引腳輸出高電平時(shí),外部器件工作;輸出低電平時(shí),外部器件停止工作。需要注意。該電路需滿足下列要求:外部器件的功耗較低,低于處理器I/O引腳的高電平輸出電流;外部器件的供電電壓范圍較寬。
2.6 電源管理單元設(shè)計(jì)
處理器全速工作時(shí),功耗最大;待機(jī)狀態(tài)時(shí),功耗比較小。常見(jiàn)的待機(jī)方式有兩種:空閑方式(Idle)和掉電方式(Shut Down)。其中,Idle方式可以通過(guò)中斷的發(fā)生退出,中斷可以由外部事件供給。掉電方式指的是處理器停止,連中斷也不響應(yīng),因此需要進(jìn)入復(fù)位才能退出掉電方式。
為了降低系統(tǒng)的功耗,一旦CPU處于“空轉(zhuǎn)”,可以使之進(jìn)入Idle狀態(tài),降低功耗;期間如果發(fā)生了外部事件,可以通過(guò)事件產(chǎn)生中斷信號(hào),使CPU進(jìn)入運(yùn)行狀態(tài)。對(duì)于Shut Down狀態(tài),只能用復(fù)位信號(hào)喚醒CPU。[!--empirenews.page--]
2.7 智能電源設(shè)計(jì)
既要保證系統(tǒng)具有良好的性能,又能兼顧功耗問(wèn)題,一個(gè)最好的辦法是采用智能電源。在系統(tǒng)中增加適當(dāng)?shù)闹悄茴A(yù)測(cè)、檢測(cè),根據(jù)需要對(duì)系統(tǒng)采取不同的供電方式,以求系統(tǒng)的功耗最低。許多膝上型電腦的電源管理采用智能電源,以筆記本電腦為例,在電源管理方面,Intel公司采取Speed Step技術(shù);AMD公司采取Power Now技術(shù);Transmeta公司采取Long Run技術(shù)。雖然這三種技術(shù)涉及到的具體內(nèi)容不同,但基本原理是一致的。以采用Speed Step技術(shù)的筆記本電腦為例,系統(tǒng)可以根據(jù)不同的使用環(huán)境對(duì)CPU的運(yùn)行速度進(jìn)行合理調(diào)整。如果系統(tǒng)使用外接電源,CPU將按照正常的主頻率及電壓運(yùn)行;當(dāng)檢測(cè)到系統(tǒng)為電池供電時(shí),軟件將自動(dòng)切換CPU的主頻率及電壓至較低狀態(tài)運(yùn)行。
2.8 降低處理器的時(shí)鐘頻率
處理器的功耗與時(shí)鐘頻率密切相關(guān)。以SAM-SUNG S3C2410x(32 b ARM 920T內(nèi)核)為例,它提供了四種工作模式:正常模式、空閑模式、休眠模式、關(guān)機(jī)模式.各種模式的功耗如表1所示。
由表1可見(jiàn),CPU在全速運(yùn)行的時(shí)候比在空閑或者休眠的時(shí)候消耗的功率大得多。省電的原則就是讓正常運(yùn)行模式遠(yuǎn)比空閑、休眠模式少占用時(shí)間。在類似PDA 的設(shè)備中,系統(tǒng)在全速運(yùn)行的時(shí)候遠(yuǎn)比空閑的時(shí)候少,所以可以通過(guò)設(shè)置,使CPU盡可能工作在空閑狀態(tài),然后通過(guò)相應(yīng)的中斷喚醒CPU,恢復(fù)到正常工作模式,處理響應(yīng)的事件,然后再進(jìn)入空閑模式。因此設(shè)計(jì)系統(tǒng)時(shí),如果處理能力許可,可盡量降低處理器的時(shí)鐘頻率。
另外,可以動(dòng)態(tài)改變處理器的時(shí)鐘,以降低系統(tǒng)的總功耗。CPU空閑時(shí),降低時(shí)鐘頻率;處于工作狀態(tài)時(shí),提高時(shí)鐘頻率以全速運(yùn)行處理事務(wù),實(shí)現(xiàn)這一技術(shù)的方法。通過(guò)將I/O引腳設(shè)定為輸出高電平,加入電阻R1,將增加時(shí)鐘頻率;將I/O引腳輸出低電平,去掉電阻R1,可降低時(shí)鐘頻率,以降低功耗。
2.9 降低持續(xù)工作電流
在一些系統(tǒng)中,盡量使系統(tǒng)在狀態(tài)轉(zhuǎn)換時(shí)消耗電流,在維持工作時(shí)期不消耗電流。例如。IC卡水表、煤氣表、靜態(tài)電能表等,在打開和關(guān)閉開關(guān)時(shí)給相應(yīng)的機(jī)構(gòu)上電,開關(guān)開和關(guān)狀態(tài)通過(guò)機(jī)械機(jī)構(gòu)或磁場(chǎng)機(jī)制保持開關(guān)的狀態(tài),而不通過(guò)電流保持,可以進(jìn)一步降低電能的消耗。
3 軟件低功耗設(shè)計(jì)
3.1 編譯低功耗優(yōu)化技術(shù)
編譯技術(shù)降低系統(tǒng)功耗是基于這樣的事實(shí):對(duì)于實(shí)現(xiàn)同樣的功能,不同的軟件算法,消耗的時(shí)間不同,使用的指令不同,因而消耗的功率也不同。對(duì)于使用高級(jí)語(yǔ)言,由于是面向問(wèn)題設(shè)計(jì)的,很難控制低功耗。但是,如果利用匯編語(yǔ)言開發(fā)系統(tǒng)(如對(duì)于小型的嵌入式系統(tǒng)開發(fā)),可以有意識(shí)地選擇消耗時(shí)間短的指令和設(shè)計(jì)消耗功率小的算法來(lái)降低系統(tǒng)的功耗。
3.2 硬件軟件化與軟件硬件化
通常的硬件電路一定消耗功率,基于此,可以減少系統(tǒng)的硬件電路,把數(shù)據(jù)處理功能用軟件實(shí)現(xiàn),如許多儀表中用到的對(duì)數(shù)放大電路、抗干擾電路,測(cè)量系統(tǒng)中用軟件濾波代替硬件濾波器等。
需要考慮,軟件處理需要時(shí)間,處理器也需要消耗功率,特別是在處理大量數(shù)據(jù)的時(shí)候,需要高性能的處理器,這可能會(huì)消耗大量的功率。因此,系統(tǒng)中某一功能用軟件實(shí)現(xiàn),還是用硬件實(shí)現(xiàn),需要綜合計(jì)算后進(jìn)行設(shè)計(jì)。
3.3 采用快速算法
數(shù)字信號(hào)處理中的運(yùn)算,采用如FFT和快速卷積等,可以大量節(jié)省運(yùn)算時(shí)間,從而減少功耗;在精度允許的情況下,使用簡(jiǎn)單函數(shù)代替復(fù)雜函數(shù)作近似,也是減少功耗的一種方法。
3.4 軟件設(shè)計(jì)采用中斷驅(qū)動(dòng)技術(shù)
整個(gè)系統(tǒng)軟件設(shè)計(jì)成處理多個(gè)事件,在系統(tǒng)上電初始化時(shí),主程序只進(jìn)行系統(tǒng)的初始化,包括寄存器、外部設(shè)備等,初始化完成后,進(jìn)入低功耗狀態(tài),然后CPU控制的設(shè)備都接到中斷輸入端上。當(dāng)外設(shè)發(fā)生了一個(gè)事件,產(chǎn)生中斷信號(hào),使CPU退出節(jié)電狀態(tài),進(jìn)入事件處理,事件處理完成后,繼續(xù)進(jìn)入節(jié)電狀態(tài)。
3.5 延時(shí)程序設(shè)計(jì)
延時(shí)程序的設(shè)計(jì)有兩種方法:軟件延時(shí)和硬件定時(shí)器延時(shí)。為了降低功耗,盡量使用硬件定時(shí)器延時(shí),一方面提高程序的效率,另一方面降低功耗。原因?yàn)椋捍蠖鄶?shù)嵌入式處理器在進(jìn)入待機(jī)模式時(shí),CPU停止工作,定時(shí)器可正常工作,定時(shí)器的功耗可以很低,所以處理器調(diào)用延時(shí)程序時(shí),進(jìn)入待機(jī)方式,定時(shí)器開始計(jì)時(shí),時(shí)間一到,則喚醒CPU。這樣一方面CPU停止工作,降低了功耗,另一方面提高了CPU的運(yùn)行效率。
4 結(jié) 語(yǔ)
嵌入式系統(tǒng)的設(shè)計(jì)涉及到軟件設(shè)計(jì)和硬件設(shè)計(jì)兩個(gè)方面,在實(shí)際系統(tǒng)應(yīng)用時(shí),低功耗的設(shè)計(jì)并非是一蹴而就的事情,需要綜合考慮各種可能的因素、條件和狀態(tài),需要對(duì)各種細(xì)節(jié)進(jìn)行認(rèn)真的斟酌和分析,需要對(duì)各種可能的方案和方法進(jìn)行計(jì)算和分析,這樣才可能取得較為滿意的效果,達(dá)到降低系統(tǒng)功耗的目的。