單片機系統(tǒng)的低功耗設(shè)計策略_第1頁
單片機系統(tǒng)的低功耗設(shè)計策略_第2頁
單片機系統(tǒng)的低功耗設(shè)計策略_第3頁
單片機系統(tǒng)的低功耗設(shè)計策略_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、單片機系統(tǒng)的低功耗設(shè)計策略摘要:嵌入式系統(tǒng)的低功耗設(shè)計需要全面分析各方面因素,統(tǒng)籌規(guī)劃。在設(shè)計之初,各個因素往往是相互制約、相互影響的,一個降低系統(tǒng)功耗的措施有時會帶來其他方面的“負效應(yīng)”。因此,降低系統(tǒng)整體功耗,需要仔細分析和計算。本文從硬件和應(yīng)用軟件設(shè)計兩個方面,闡述一個以單片機為核心的嵌入式系統(tǒng)低功耗設(shè)計時所需考慮的一些問題。關(guān)鍵詞:低功耗設(shè)計 硬件設(shè)計 應(yīng)用軟件設(shè)計 低功耗模式在嵌入式應(yīng)用中,系統(tǒng)的功耗越來越受到人們的重視,這一點對于需要電池供電的便攜式系統(tǒng)尤其明顯。降低系統(tǒng)功耗,延長電池的壽命,就是降低系統(tǒng)的運行成本。對于以單片機為核心的嵌入式應(yīng)用,系統(tǒng)功耗的最小化需要從軟、硬件設(shè)計

2、兩方面入手。隨著越來越多的嵌入式應(yīng)用使用了實時操作系統(tǒng),如何在操作系統(tǒng)層面上降低系統(tǒng)功耗也成為一個值得關(guān)注的問題。限于篇幅,本文僅從硬件設(shè)計和應(yīng)用軟件設(shè)計兩個方面討論。1  硬件設(shè)計選用具有低功耗特性的單片機可以大大降低系統(tǒng)功耗??梢詮墓╇婋妷?、單片機內(nèi)部結(jié)構(gòu)設(shè)計、系統(tǒng)時鐘設(shè)計和低功耗模式等幾方面考察一款單片機的低功耗特性。1.1  選用盡量簡單的CPU內(nèi)核在選擇CPU內(nèi)核時切忌一味追求性能。8位機夠用,就沒有必要選用16位機,選擇的原則應(yīng)該是“夠用就好”?,F(xiàn)在單片機的運行速度越來越快,但性能的提升往往帶來功耗的增加。一個復雜的CPU集成度高、功能強,但片內(nèi)晶體管多,總漏電

3、流大,即使進入STOP狀態(tài),漏電流也變得不可忽視;而簡單的CPU內(nèi)核不僅功耗低,成本也低。1.2  選擇低電壓供電的系統(tǒng)降低單片機的供電電壓可以有效地降低其功耗。當前,單片機從與TTL兼容的5 V供電降低到3.3 V、3 V、2 V乃至1.8 V供電。供電電壓降下來,要歸功于半導體工藝的發(fā)展。從原來的3 m工藝到現(xiàn)在的0.25、0.18、0.13 m工藝, CMOS電路的門限電平閾值不斷降低。低電壓供電可以大大降低系統(tǒng)的工作電流,但是由于晶體管的尺寸不斷減小,管子的漏電流有增大的趨勢,這也是對降低功耗不利的一個方面。目前,單片機系統(tǒng)的電源電壓仍以5 V為主,而過去5年中,3 V供電的

4、單片機系統(tǒng)數(shù)量增加了1倍,2 V供電的系統(tǒng)也在不斷增加。再過五年,低電壓供電的單片機數(shù)量可能會超過5 V電壓供電的單片機。如此看來,供電電壓降低將是未來單片機發(fā)展的一個重要趨勢。1.3  選擇帶有低功耗模式的系統(tǒng)低功耗模式指的是系統(tǒng)的等待和停止模式。處于這類模式下的單片機功耗將大大小于運行模式下的功耗。過去傳統(tǒng)的單片機,在運行模式下有wait和stop兩條指令,可以使單片機進入等待或停止狀態(tài),以達到省電的目的。等待模式下,CPU停止工作,但系統(tǒng)時鐘并不停止,單片機的外圍I/O模塊也不停止工作;系統(tǒng)功耗一般降低有限,相當于工作模式的50%70%。停止模式下,系統(tǒng)時鐘也將停止,由外部事件

5、中斷重新啟動時鐘系統(tǒng)時鐘,進而喚醒CPU繼續(xù)工作,CPU消耗電流可降到A級。在停止模式下,CPU本身實際上已經(jīng)不消耗什么電流,要想進一步減小系統(tǒng)功耗,就要盡量將單片機的各個I/O模塊關(guān)掉。隨著I/O模塊的逐個關(guān)閉,系統(tǒng)的功耗越來越小,進入停止模式的深度也越來越深。進入深度停止模式無異于關(guān)機,這時的單片機耗電可以小于20 nA。其中特別要提示的是,片內(nèi)RAM停止供電后,RAM中存儲的數(shù)據(jù)會丟失,也就是說,喚醒CPU后要重新對系統(tǒng)作初始化。因此在讓系統(tǒng)進入深度停止狀態(tài)前,要將重要系統(tǒng)參數(shù)保存在非易失性存儲器中,如EEPROM中。深度停止模式關(guān)掉了所有的I/O,可能的喚醒方式也很有限,一般只能是復位

6、或IRQ中斷等。保留的I/O模塊越多,系統(tǒng)允許的喚醒中斷源也就越多。單片機的功耗將根據(jù)保留喚醒方式的不同,降至1A至幾十A之間。例如,用戶可以保留外部鍵盤中斷,保留異步串行口(SCI)接收數(shù)據(jù)中斷等來喚醒CPU。保留的喚醒方式越多,系統(tǒng)耗電也就會多一些。其他可能的喚醒方式還有實時鐘喚醒、看門狗喚醒等。停機狀態(tài)較淺的情況下,外部晶振電路還是工作的。圖1以Freescale的HCS08單片機為例,給出不同運行模式下的系統(tǒng)功耗。HCS08是8位單片機,有多個系列,各系列I/O模塊數(shù)目有所不同,但低功耗模式下的電流消耗大致相同。圖1  HCS08單片機各模式下的耗電以R系列單片機為例:在室溫

7、(25)下,不包括I/O口的負載,以2 V供電,將可編程鎖相環(huán)時鐘設(shè)為16 MHz(總線時鐘8 MHz),典型電流值為2.6 mA,當溫度升高到85時,供電電流也升高到3.6 mA;而采用3 V供電,這一組數(shù)據(jù)升高至3.8 mA和4.8 mA。用2 V供電,直接使用外部晶振2 MHz(總線時鐘1 MHz)時,典型運行電流降至450 A。在等待狀態(tài)下,因時鐘并沒有停止,耗電情況和時鐘頻率有很大關(guān)系,節(jié)省的功耗有限;而進入輕度停止(stop3),以外部中斷喚醒,電流消耗在0. 5 A左右。在中度停止態(tài)(stop2),功耗可進一步降低。使用內(nèi)部1 kHz的時鐘,保持1個運行的時鐘,周期性喚醒CPU,

8、所增加的電流約為0.3 A。在深度停止態(tài)(stop1),RAM的數(shù)據(jù)也不再保留,只能通過外部復位重啟系統(tǒng),此時的電流消耗可降到20 nA。以上數(shù)據(jù)都是在室溫下測量所得。當環(huán)境溫度升高到85時,電流消耗可能增加35倍。1.4  選擇合適的時鐘方案時鐘的選擇對于系統(tǒng)功耗相當敏感,設(shè)計者需要注意兩個方面的問題:第一是系統(tǒng)總線頻率應(yīng)當盡量低。單片機內(nèi)部的總電流消耗可分為兩部分運行電流和漏電流。理想的CMOS開關(guān)電路,在保持輸出狀態(tài)不變時,是不消耗功率的。例如,典型的CMOS反相器電路,如圖2所示,當輸入端為零時,輸出端為1,P晶體管導通,N晶體管截止,沒有電流流過。而實際上,由于N晶體管存在

9、一定漏電流,且隨集成度提高,管基越薄,漏電流會加大。溫度升高,CMOS翻轉(zhuǎn)閾電壓會降低,而漏電流則隨環(huán)境溫度的增高變大。在單片機運行時,開關(guān)電路不斷由“1”變“0”、由“0”變“1”,消耗的功率是由單片機運行引起的,我們稱之為“運行電流”。如圖2所示,在兩只晶體管互相變換導通、截止狀態(tài)時,由于兩只管子的開關(guān)延遲時間不可能完全一致,在某一瞬間會有兩只管子同時導通的情況,此時電源到地之間會有一個瞬間較大的電流,這是單片機運行電流的主要來源??梢钥闯觯\行電流幾乎是和單片機的時鐘頻率成正比的,因此盡量降低系統(tǒng)時鐘的運行頻率可以有效地降低系統(tǒng)功耗。圖2  典型的CMOS反相器第二是時鐘方案,

10、也就是是否使用鎖相環(huán)、使用外部晶振還是內(nèi)部晶振等問題。新一代的單片機,如飛思卡爾的HCS08系列單片機,片內(nèi)帶有內(nèi)部晶振,可以直接作為時鐘源。使用片內(nèi)晶振的優(yōu)點是可以省掉片外晶振,降低系統(tǒng)的硬件成本;缺點是片內(nèi)晶振的精度不高(誤差一般在25%左右,即使校準之后也可能有2%的相對誤差),而且會增加系統(tǒng)的功耗。 現(xiàn)代單片機普遍采用鎖相環(huán)技術(shù),使單片機的時鐘頻率可由程序控制。鎖相環(huán)允許用戶在片外使用頻率較低的晶振,可以很大地減小板級噪聲;而且,由于時鐘頻率可由程序控制,系統(tǒng)時鐘可以在一個很寬的范圍內(nèi)調(diào)整,總線頻率往往能升得很高。但是,使用鎖相環(huán)也會帶來額外的功率消耗。單就時鐘方案來講,使用外部晶振且

11、不使用鎖相環(huán)是功率消耗最小的一種。2  應(yīng)用軟件方面的考慮之所以使用“應(yīng)用軟件”的說法,是為了區(qū)分于“系統(tǒng)軟件”或者“實時操作系統(tǒng)”。軟件對于一個低功耗系統(tǒng)的重要性常常被人們忽略。一個重要的原因是,軟件上的缺陷并不像硬件那樣容易發(fā)現(xiàn),同時也沒有一個嚴格的標準來判斷一個軟件的低功耗特性。盡管如此,設(shè)計者仍需盡量將應(yīng)用的低功耗特性反映在軟件中,以避免那些“看不見”的功耗損失。2.1  用“中斷”代替“查詢”一個程序使用中斷方式還是查詢方式對于一些簡單的應(yīng)用并不那么重要,但在其低功耗特性上卻相去甚遠。使用中斷方式,CPU可以什么都不做,甚至可以進入等待模式或停止模式;而查詢方式下

12、,CPU必須不停地訪問I/O寄存器,這會帶來很多額外的功耗。2.2  用“宏”代替“子程序”程序員必須清楚,讀RAM會比讀Flash帶來更大的功耗。正是因為如此,低功耗性能突出的ARM在CPU設(shè)計上僅允許一次子程序調(diào)用。因為CPU進入子程序時,會首先將當前CPU寄存器推入堆棧(RAM),在離開時又將CPU寄存器彈出堆棧,這樣至少帶來兩次對RAM的操作。因此,程序員可以考慮用宏定義來代替子程序調(diào)用。對于程序員,調(diào)用一個子程序還是一個宏在程序?qū)懛ㄉ喜]有什么不同,但宏會在編譯時展開,CPU只是順序執(zhí)行指令,避免了調(diào)用子程序。唯一的問題似乎是代碼量的增加。目前,單片機的片內(nèi)Flash越來越

13、大,對于一些不在乎程序代碼量大一些的應(yīng)用,這種做法無疑會降低系統(tǒng)的功耗。2.3  盡量減少CPU的運算量減少CPU運算的工作可以從很多方面入手:將一些運算的結(jié)果預先算好,放在Flash中,用查表的方法替代實時的計算,減少CPU的運算工作量,可以有效地降低CPU的功耗(很多單片機都有快速有效的查表指令和尋址方式,用以優(yōu)化查表算法);不可避免的實時計算,算到精度夠了就結(jié)束,避免“過度”的計算;盡量使用短的數(shù)據(jù)類型,例如,盡量使用字符型的8位數(shù)據(jù)替代16位的整型數(shù)據(jù),盡量使用分數(shù)運算而避免浮點數(shù)運算等。2.4  讓I/O模塊間歇運行不用的I/O模塊或間歇使用的I/O模塊要及時關(guān)掉,以節(jié)省電能。RS232的驅(qū)動需要相當?shù)墓β?,可以用單片機的一個I/O引腳來控制,在不需要通信時,將驅(qū)動關(guān)掉。不用的I/O引腳要設(shè)置成輸出或設(shè)置成輸入,用上拉電阻拉高。因為如果引腳沒有初始化,可能會增大單片機的漏電流。特別要注意有些簡單封裝的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論