基于51單片機的低功耗設計
引 言
在控制終端系統設計中,當系統要求整體功耗偏低時(shí),C8051F系列單片機是一個(gè)最佳的選擇。它們擁有靈活的時(shí)鐘硬件,使系統能夠方便地在高效運作模式與低功耗模式問(wèn)進(jìn)行轉換,智能的電源管理模式能夠在正常工作及待機狀態(tài)自由切換,從而降低整個(gè)系統的能量損耗;當工作頻率低于10kHz時(shí),時(shí)鐘丟失檢測器(MCD)能夠引發(fā)系統產(chǎn)生復位,確保系統工作的安全可靠。
1 C8051F各部分組件的功耗
當一個(gè)系統對功耗要求嚴格時(shí),可以在硬件電路建立前首先粗略計算一下整個(gè)系統所需的功耗。由于C8051F系列單片機為數?;旌蟂OC系統,能夠實(shí)現整個(gè)設計的大部分功能,因此整個(gè)設計系統的功耗將主要集中在C805IF系列單片機的能量消耗上。
整個(gè)單片機系統的功耗應該由4部分組成:振蕩器功耗、數字設備功耗、模擬外設功耗及I/O端口功耗。振蕩器功耗包括內部振蕩器的功耗以及外部振蕩器功耗。數字設備能量消耗主要由CPU的工作模式、工作電壓及系統時(shí)鐘頻率決定。溫度與數字外圍設備對數字設備的功耗影響很小。模擬外圍設備功耗主要包含ADC、電壓基準VREF、溫度傳感器、偏壓發(fā)生器及內部振蕩器。比較器也有少量的能量損耗。
1.1 振蕩器功耗分析
外部振蕩器具有很高的可配置性,為系統設計者提供了多種選擇。時(shí)基信號可以從外部CMOS電平時(shí)鐘源、晶振或陶瓷諧振器、RC組合電路或外部電容獲得,每一種方法都有各自的優(yōu)勢。由于振蕩器可以靈巧地在各種方式中轉換,因此可以通過(guò)改變振蕩器來(lái)降低功耗。對外部振蕩器來(lái)說(shuō),外部CMOS時(shí)鐘、電容和RC網(wǎng)絡(luò )都能夠提供較低的振蕩頻率。
(1)外部CMOS時(shí)鐘
當工作于外部振蕩器CMOS時(shí)鐘模式時(shí),外部振蕩器驅動(dòng)被關(guān)閉.電路功耗電流微小可以近似忽略。XTAL2輸出的時(shí)基信號可以用作CPU、計時(shí)器、PCA或其他外圍設備的時(shí)鐘源。注意,即使在某一端口應用了高頻信號,功耗仍只有少量的增加。
(2)外部晶振
外部晶振提供了最精確的時(shí)間基準,但隨之而來(lái)的功耗在同一頻率下也更高。外部晶振依賴(lài)于晶振頻率和振蕩器驅動(dòng)電路(XFCN)。
(3)外部電容C模式
外部電容模式通過(guò)將一個(gè)電容連接到XTAL2為系統提供低功耗時(shí)鐘。這是精度最差的一種時(shí)基方式,但同時(shí)也是最靈活的一種方式。只用1個(gè)電容元件就可以提供8種不同的工作頻率.最高頻率幾乎可達最低頻率的3000倍??梢酝ㄟ^(guò)改變在OSCXCN寄存器中的XFCN位改變其振蕩的頻率,并直接影響其輸出的電流。外部電容方式下的時(shí)基精度主要由電容的誤差和流過(guò)XTAL2的內部電流源的精度決定。
(4)外部振蕩RC模式
RC模式與電容模式十分相似,區別在于外部電容方式下電容的充電電流由接到XTAL2的內部可編程電流源提供,并且在RC模式下充放電電路除了包含電容外還要通過(guò)一個(gè)外部電阻器。RC模式振蕩電路的平均功耗由通過(guò)電阻器的平均電流所決定。電阻器上的壓降成指數倍大小,其波形可以簡(jiǎn)化為三角波來(lái)估計平均值。
通常,設計者可以通過(guò)合理地選擇時(shí)鐘源達到降低功耗的目的。內部振蕩器消耗數字電源電流的典型值為200μA,用于驅動(dòng)外部振蕩器的電流是變化的。對于一個(gè)外部振蕩源(如晶振),驅動(dòng)電流(由模擬電源提供)用軟件通過(guò)配置外部振蕩器控制寄存器OSCXCN的XFCN位來(lái)設置。在驅動(dòng)電流較大時(shí)用戶(hù)町以使用內部振蕩器以降低功耗。
1.2 數字設備的功耗分析
數字設備的能量淌耗主要是由CPU電流的大小來(lái)衡量的。CPU的電源模式是決定CPU電流大小、工作電壓及系統時(shí)鐘頻率的關(guān)鍵因素。通常,溫度和數字外圍設備對數字設備的功耗只有很小的影響。
(1)OPU電源管理模式
CPU有3種操作模式:正常狀態(tài),空閑狀態(tài)與停止狀態(tài)。通常,空閑狀態(tài)的平均電流值受控于內部振蕩器。正常模式時(shí)的電流值減去空閑模式時(shí)的電流值即為CPU正常運行的工作電流值。當寫(xiě)l到IDLE位時(shí),CPU結束指令周期進(jìn)入低功耗模式,直到被中斷或復位喚醒。在空閑模式下,所有的模擬與數字外圍設備,存儲器與內部寄存器都保持原來(lái)的值不變。被喚醒后,CPU開(kāi)始從設置空閑方式選擇位指令的下一條指令開(kāi)始執行。當寫(xiě)1到STOP位時(shí),CPU進(jìn)入停機模式。設置停機模式后,當前指令被執行完畢,內部振蕩器及所有的數字外圍設備全部停止工作。模擬外設(如比較器與外部振蕩器)保留其當前的狀態(tài)。在停止狀態(tài),MCU消耗最少的電流。
[next]
(2)OPU工作電壓、頻率及溫度對功耗的影響
工作電壓:CPU的工作電流會(huì )隨著(zhù)供電電壓的升高而增大。這種關(guān)系存在于任意一種工作頻率下,尤其在高頻運行時(shí)表現得更為明顯。理論上供電電壓最小可達到2.7 V,但由于電壓調整本身有±10%的誤差率,因此系統通常供電電壓不會(huì )低于3V。
溫度:溫度對系統的功耗無(wú)影響。
工作頻率:CPU工作頻率對系統功耗有主要影響。在CMOS數字邏輯器件中,功耗與系統時(shí)鐘SYSCLK頻率成正比:
功耗=CV2f
式中:C是CMOS的負載電容;V是電源電壓;f是SYSCLK的頻率。
因此,為了降低功耗,設計者必須知道給定系統所需的最高SYSCLK頻率和精度。某些設計口可能需要其系統時(shí)鐘頻率在全部工作時(shí)間內保持不變。在這種情況下,設計者將選擇滿(mǎn)足要求的最低頻率.并采用消耗最低功率的振蕩器配置。
l.3 數字外圍設備與I/0接口的功耗分析
數字外圍設備(計數器、UART、PCA、SPl)的損耗占系統總功耗的比例很小。舉個(gè)例子,當C8051F單片機工作在3.06MHz(內部振蕩器8分頻),3 V電壓時(shí),沒(méi)有一個(gè)數字外圍設備端口的工作電流超過(guò)700μA;而在啟動(dòng)計數器作為UARTO數據傳輸時(shí)鐘后,系統的工作電流會(huì )增加18μA。這里,計數器與UART的功率損耗主要由其時(shí)鐘頻率及工作電壓來(lái)決定。利用交叉開(kāi)關(guān)配置通用I/O口為推挽模式,也能夠影響功耗的大小。在上述例子中,如果利用交叉開(kāi)關(guān)將UARTO的TX端分配到P0.4口,則配置端口為推挽模式將令系統的工作電流再增加82μA。輸出引腳的功耗由連接在該引腳的外部電路頻率決定。
1.4 模擬外圍設備的功耗
模擬外圍設備功耗是ADC、溫度傳感器、內部偏置電壓產(chǎn)生器及內部振蕩器的功耗和。通常,只要ADC、內部振蕩器或溫度傳感器被激活,內部偏置電壓產(chǎn)生器就會(huì )自動(dòng)被使能,ADC在轉換期間的工作電流比ADC沒(méi)有轉換時(shí)的工作電流大30%~50%。SAR轉換時(shí)鐘頻率與采樣頻率也影響了功耗的大小。由于增加SAR轉換時(shí)鐘頻率或降低采樣率會(huì )縮短每次A/D轉換的時(shí)間,使系統在轉換間隙有更多的時(shí)間處于空閑狀態(tài),因此會(huì )大大降低系統功耗。
2 降低功耗的幾點(diǎn)考慮
要降低系統的平均功耗,需要從兩個(gè)方面考慮:首先是適當調整在所有時(shí)間一直影響系統工作的參數。通常工作電壓是重點(diǎn)考慮的參數。工作電壓決定了系統是否能夠處于正常運作狀態(tài),它可以由電壓調整器或一個(gè)電池來(lái)提供。對于一個(gè)節能系統,工作電壓應該被最小化,以節約能量。第二點(diǎn)就是構建合理的固件結構降低以功耗。要為系統設計兩個(gè)工作模式:一個(gè)為高效的運作模式;另一個(gè)則是以降低功耗為日地的睡眠模式。兩個(gè)模式的設計標準不同,但應盡量讓系統在大部分時(shí)間內處于睡眠模式,以降低系統的總功耗。下面詳細討論這兩個(gè)方面的設計。
2.1 降低工作電壓、減小工作電流
工作電壓對系統的總功耗起著(zhù)舉足輕重的作用。對于節能系統.應該盡量在保證系統安全可靠的前提下采用最低的工作電壓。通常電壓調整器會(huì )有土10%的誤差率,因此在設計工作電壓時(shí),最低的工作電壓應該為3V,此時(shí)電壓調整器的輸出電壓在2.7V與3.3V之間。也可以選擇用電池。在這里推薦使用鋰電池,鋰錳二氧化氮電池能夠無(wú)須任何調節地輸出穩定的2.85V電壓,并且該電池能夠直接連接到設備的電源引腳。無(wú)須擔心電池耗盡時(shí)會(huì )對系統工作有不良的影響,因為在C8051F系列單片機中,片上電源監控器能夠確保在電池耗盡后系統自動(dòng)復位。
由于工作電壓通常是恒定的,因此經(jīng)常通過(guò)減小平均電流來(lái)降低系統的總功耗。平均工作電流是系統在單位時(shí)間內消耗的電荷量。對一個(gè)系統來(lái)說(shuō),其總的運行時(shí)間應該被分為兩個(gè)部分——高效工作期與低功耗體眠期,如圖l所示。高效工作期的工作電流偏大,而休眠期的電流非常小。平均工作電流是系統在這兩部分時(shí)問(wèn)的總電荷量與時(shí)問(wèn)相除所得的平均值。因此,如果想減小平均電流值,唯有通過(guò)兩種方法解決——縮短高效工作期的時(shí)間或減小高效工作期的峰值電流。設計者應該盡量從這兩方面著(zhù)手設計系統,以達到降低總功耗的目的。
2.2 設計一個(gè)低功耗的休眠模式
可以通過(guò)設計低功耗休眠模式,令系統在非工作期一直處于低消耗狀態(tài),從而達到減小整個(gè)系統工作電流的目的。休眠模式可以通過(guò)將電源管理模式設定為空閑或停機狀態(tài)來(lái)實(shí)現。通常會(huì )設定空閑模式,因為該模式更容易被恢復。需要注意的是,在休眠模式下應該關(guān)閉所有不需要的外圍設備,并配置體眠模式的時(shí)鐘為外部振蕩器。因為外部振蕩器能夠禁止內部振蕩器的振蕩,并能以非常低的時(shí)鐘基準進(jìn)行振蕩。這里有兩個(gè)可選的振蕩器:36.728kHz晶振與單電容模式外部振蕩器。
外部電容模式振蕩器消耗的功耗比晶振低,但沒(méi)有晶振精確。其優(yōu)勢在于能夠使鐘控外圍設備(如定時(shí)器)的頻率低度低于10kHz。同時(shí)由于其組成只包含1個(gè)電容,相比于晶振的2個(gè)裝載電容及1個(gè)電阻器結構,能夠節省PCB板的空間。若在沒(méi)計中使用了高頻晶振,則可將裝載電容連接到XTAL2引腳,作為外部振蕩器使用,并可在C模式下為休眠模式提供一個(gè)較低頻率的時(shí)鐘。
2.3 設計一個(gè)高效運作模式
高效運作模式的設計應該以盡可能縮短完成作業(yè)所需時(shí)間為標準,使得系統能夠盡快地恢復到休眠模式。模式的設計包括調整工作電流的峰值以及時(shí)鐘頻率,以減小高效工作期問(wèn)的總電荷量。通常在高效工作模式下使用內部振蕩器,更有益于系統總功耗的降低。
下面以ADC采樣為例,比較、分析兩種設計中系統功耗的消耗率情況。
片上溫度傳感器以10Hz速率采樣,系統的外部晶振連接到XTAL1與XTAL2之間。定時(shí)器2每100ms溢出產(chǎn)生一個(gè)中斷,將系統從空閑模式喚醒。當系統被激活后,系統捕捉ADC采樣數據,然后重新返回空閑模式,直到下一個(gè)中斷發(fā)生。
由于該系統是電池供電,因此系統應盡量減少每次A/D采樣所消耗的電荷。由于電荷量是一段時(shí)間內電流的總量,因此可以通過(guò)縮短采樣時(shí)間或減小采樣時(shí)的峰值電流來(lái)節約能量。也就是說(shuō),在捕捉ADC采樣數據時(shí),系統可以選擇轉換到3MHz的內部振蕩器,在短時(shí)間內使用大的電流;或是用外部32kHz晶振作為系統振蕩器,使單片機在長(cháng)時(shí)間內使用較小的電流值。
根據以上分析,進(jìn)行了兩種設計。一種設計是在采樣時(shí)一直采用外部32.768kHz晶振作為系統時(shí)鐘基準;另一種設計是在采樣時(shí)將振蕩器轉換到內部振蕩器,以縮短A/D轉換的時(shí)間。兩個(gè)系統在不采樣時(shí)都處于同樣的空閑模式。
第1個(gè)系統從空閉模式被喚醒后,系統直接啟動(dòng)了ADC設備開(kāi)始采樣。系統沒(méi)有轉換到內部振蕩器,而是仍采用原來(lái)的32kHz晶振作為系統的時(shí)鐘基準。A/D轉換結束后,系統讀取采樣值,關(guān)閉ADC并重新進(jìn)入空閑模式。為了捕捉采樣數據,系統在峰值工作電流O.65mA上持續了1.5ms。第2個(gè)系統從空閑模式被喚醒時(shí),系統啟動(dòng)內部振蕩器與ADC,轉換系統時(shí)鐘基準為內部振蕩器8分頻模式,并開(kāi)始ADC轉換。轉換完成后,讀ADC數據,而后停止ADC及內部振蕩器并令CPU回到空閑模式。為了捕捉ADC采樣數據,系統在峰值工作電流2.2 mA上持續了400μs。利用公式:
計算可得,第1種設計系統的平均電流為15μA;而第2種設計系統的平均工作電流為14μA。在3V鋰電池供電的情況下.第1種設計電池的壽命為4000h;而第2種設計電池的壽命為42000h。
從這個(gè)例子可以看出,在系統高效工作時(shí)提高系統的叫鐘頻率能夠減小系統的平均工作電流,從而降低系統的總功耗。
51單片機相關(guān)文章:51單片機教程
評論