我們已經(jīng)進入了這樣一個時代,即開始期望和要求電池供電設(shè)備實現(xiàn)更多的功能。我的第一臺PDA的電池僅工作了一天,而且如果還啟動了時間提示功能,那么電池能量將會很快耗盡。今天,在相同的條件下,我的PDA能夠工作一周。這兩款PDA用的都是相同容量的鋰離子電池,那么是什么使情況發(fā)生了改變呢?答案很簡單,電路硬件在改進,電源管理技術(shù)在提高。相比之下,電池技術(shù)的進步反而是次要的。
PDA是系統(tǒng)復(fù)雜性迅速增加的一個好例子,正如它們的命運顯示的那樣,盡管電池性能幾乎沒有什么進步,但對這類電池供應(yīng)用的要求卻在不斷增加。而要成功應(yīng)對這一功能不斷增加的挑戰(zhàn),固件或軟件工程師必須完全理解目前市場上的商業(yè)MCU處理內(nèi)核開發(fā)工具,同時硬件設(shè)計師理解今天市場上商用解決方案的效率。
![]() |
圖1:PIC18F1320的可編程能力允許對系統(tǒng)中的電源電壓進行控制,并控制MCU的系統(tǒng)時鐘和睡眠模式。 |
模擬和數(shù)字部分要協(xié)同努力
如果你能夠很好地理解MCU的硬件配置和手頭上的開發(fā)工具,那么你就能夠降低功耗,從而能夠再添加一些應(yīng)用功能。降低功耗的一個方向是控制嵌入式應(yīng)用的電源電壓幅度。你可能需要在程序執(zhí)行過程中的某些點上與真實模擬世界進行交互,如果的確有這個需要,你的設(shè)計中必須包含模擬電路。對模擬電源電壓的要求要高于對數(shù)字電源電壓的要求。要記住,模擬噪聲容限比數(shù)字的小得多,而且模擬噪聲水平不隨工作電壓的降低而減小。
例如,在5V工作電壓狀態(tài),12位AD轉(zhuǎn)換器能進行優(yōu)異可靠的轉(zhuǎn)換。同樣的12位AD轉(zhuǎn)換器,在2V工作電壓狀態(tài)下,不受噪聲影響位數(shù)的輸出會變少。這是因為,LSB(最低有效位)的位數(shù)變小了,而噪聲大小不變。這個問題的解決方案是,當(dāng)僅進行模擬操作時,采用更高的電源電壓;而當(dāng)僅進行數(shù)字操作時,切換為更低的電源電壓。
圖1展示了一個簡單的、基于MCU的電池供電系統(tǒng),是圍繞Microchip的PIC18F1320閃存MCU而設(shè)計的。PIC18F1320具有多種空閑模式以及雙時鐘啟動功能等特性,對低功耗設(shè)計很有幫助。
在硬件方面,為了追求更低功耗表現(xiàn),MCU的外部外設(shè)和內(nèi)部外設(shè)都在不斷發(fā)展。MCU的外部外設(shè)可通過降低芯片工作電壓及優(yōu)化電路設(shè)計來降低功耗。圖1所示的簡單例子,就整合了低功耗運放、AD轉(zhuǎn)換器以及可調(diào)穩(wěn)壓電荷泵。
圖1中,MCP6041型運放采用CMOS工藝制造,這種運放可以將工作電壓降的很低。MCP6041運放由Microchip制造,帶寬為14 kHz,電流為600 nA,供電電壓在1.4V至5.5V之間。降低的工作電壓與降低的靜態(tài)電流結(jié)合,為電池供電設(shè)備的電源管理提供了良好的解決方案。
集成了內(nèi)部或外部AD轉(zhuǎn)換器的MCU,轉(zhuǎn)換器的拓撲結(jié)構(gòu)比IC設(shè)計創(chuàng)新對MCU功耗的影響更大。例如,同Δ-∑AD轉(zhuǎn)換器相比,SAR(逐次逼近寄存器)A/D轉(zhuǎn)換器的轉(zhuǎn)換時間和消耗電流之比就低得多。在電池供電應(yīng)用中往往采用SAR模式的A/D轉(zhuǎn)換器,除非是需要分辨率和精度更高的應(yīng)用。
圖1的電源是可調(diào)的。5V電壓用于模擬處理相得益彰,2V電壓用在數(shù)字電路恰倒好處。圖1的可調(diào)節(jié)電源轉(zhuǎn)換器在低輸出電流、鋰離子電池供電(4.2V到2.8 V)情況下,具有很高的效率;谶@些原因,該設(shè)計采用了一款穩(wěn)壓可調(diào)的電荷泵式DC/DC轉(zhuǎn)換器(型號為MCP1252-ADJ)。
對不同的操作控制采用不同的工作電壓僅是低功耗設(shè)計工作的一半。如時刻將低功耗銘記于心,就會希望在維持MCU某些部分工作的同時,關(guān)斷其它部分。例如,你可以獨立運行MCU中的A/D、D/A轉(zhuǎn)換器或USART通信接口,這些部分僅需局部供電就可以正常工作。
對外接設(shè)備的能耗優(yōu)化同樣重要。此外,將MCU內(nèi)、外部的外設(shè)與MCU的編程能力結(jié)合考慮,會切實降低系統(tǒng)功耗。例如,在MCP1252-ADJ中,可以把一個新的電路切換到電阻反饋系統(tǒng)中,這樣MCU就能夠控制電壓。為了確保模擬電路的最佳工作條件,需要電荷泵輸出高電壓。而MCU的數(shù)字電路部分在較低的電壓下就能工作。如,PIC18F1320的輸出電壓為2V至5.5V。通過直接對比電荷泵的兩種輸出電壓就可計算節(jié)省的功率。如果把MCU外部外設(shè)的供電切斷,加在I/O端口上的供電電壓又比較低,這樣就可以進一步降低功耗。
控制時鐘
當(dāng)設(shè)計師試圖降低嵌入式系統(tǒng)電路的整體功耗時,常常忽略的一個問題就是:在MCU脫離睡眠模式時,如何對時鐘進行管理。
![]() |
圖2:有3個時鐘源的MCU。該系統(tǒng)有2個外接時鐘源(定時器1和主振蕩器),和1個內(nèi)部振蕩器。 |
如圖2所示,一個MCU可以有多個時鐘源,最明顯的是一個外部時鐘源。在此例中,可以將晶振、陶瓷諧振器、內(nèi)部控制器時鐘或一個時鐘發(fā)生器連接到適當(dāng)?shù)钠骷苣_。除了這些生成時鐘信號的部件外,MCU可整合前后分頻FLL(鎖頻環(huán))。前后分頻器對輸入時鐘進行分頻,F(xiàn)LL還可以倍頻輸入時鐘頻率。
在RTOS(實時操作系統(tǒng))中,當(dāng)系統(tǒng)短時喚醒后又進入長時間的睡眠狀態(tài),配備時鐘管理機制就顯得至關(guān)重要。如在喚醒時間小于1秒的系統(tǒng)中采用晶振或壓電陶瓷諧振器,從睡眠模式喚醒到開始執(zhí)行指令之間會有一段延時。MCU在此延時和啟動期間不會執(zhí)行指令,而應(yīng)用電路仍會消耗功率。
例如,圖3顯示了4 MHz晶振的典型啟動時間。在圖3中顯示該時間大約為450毫秒。假設(shè)該晶振是MCU連接的唯一時鐘源,分配的程序執(zhí)行時間是1秒,那么,實際的程序執(zhí)行時間將比預(yù)計的長45%。在時鐘啟動期間,電路在消耗電能,但又不執(zhí)行代碼。
在此類應(yīng)用中,選用內(nèi)時鐘來執(zhí)行程序更為明智。內(nèi)時鐘幾乎與電源同時啟動,對4MHz的內(nèi)時鐘而言,幾微秒的啟動時間是很正常的。圖4顯示了內(nèi)時鐘的啟動時間。
與圖3所示的4MHz晶振相比,圖4所示的內(nèi)時鐘啟動速度約有5萬倍的提高。從這個數(shù)據(jù)人們或許可以得出結(jié)論,針對此類應(yīng)用,內(nèi)時鐘是恰當(dāng)?shù)倪x擇。其實,內(nèi)時鐘的功耗與晶振功耗大體相當(dāng),只要不要求MCU運行諸如USART通信或定時一個精準(zhǔn)脈沖這類對時間有苛刻要求的操作,選用外時鐘源也是可行的。
可進行評測的第3個時鐘是壓電陶瓷諧振器。圖5顯示了諧振器的啟動時間。
有一個可供使用的時鐘系統(tǒng)優(yōu)于上述三種時鐘源的任一種,最好的做法是迅速確定電路是否需要精準(zhǔn)時鐘。如果MCU需要精準(zhǔn)時鐘,則啟動外接晶振或陶振;若非如此,則關(guān)斷。MCU從睡眠模式喚醒后,要迅速做出決定。如能將內(nèi)時鐘與外接晶振或陶振結(jié)合在一起,就能迅速做出這樣的決定。用兩個時鐘源替代單一時鐘源,能夠顯著降低功耗。
該技術(shù)被稱為“雙時鐘啟動策略”,也就是說在硬件/固件配置中,MCU使用了2個時鐘。在睡眠模式,2個時鐘全部關(guān)斷。喚醒時,內(nèi)時鐘啟動并迅速判定是否需要晶振。如需要晶振,內(nèi)時鐘仍將持續(xù)執(zhí)行程序直至晶振啟動。此時,MCU將時鐘源切換為晶振,并關(guān)斷內(nèi)時鐘。
從數(shù)字角度處理睡眠模式
低功率設(shè)計成功的關(guān)鍵在于有一個具有多種睡眠模式和時鐘模式的MCU。用戶可以通過使MCU進入休眠或空閑模式來降低系統(tǒng)功耗。在空閑模式,MCU關(guān)斷CPU,但允許10位A/D轉(zhuǎn)換器這樣的功能繼續(xù)工作,而睡眠模式則徹底關(guān)斷MCU。
當(dāng)MCU時鐘進行狀態(tài)切換時,MCU內(nèi)的不同邏輯門都會吸取電流。檢查MCU耗電時,應(yīng)首先檢查時鐘的功耗。通過對系統(tǒng)各種時鐘源進行比對,可以發(fā)現(xiàn),與同頻率的晶振、振蕩器或陶振相比,內(nèi)部振蕩器功耗最低。
某些MCU有3種基本的工作模式。第一種是完全工作模式,所有模塊都上電工作。第二種是空閑或等待模式,MCU外設(shè)工作,而MCU不工作。第三種,同時對低功耗的電池供電來說也是最重要的一種,就是睡眠或停止模式。睡眠模式下設(shè)備完全停止功耗。睡眠模式通常關(guān)斷系統(tǒng)時鐘,如果也一同切斷外部時鐘源,系統(tǒng)功耗會進一步降低。
以下是完善低功耗設(shè)計的一些建議。將不用的I/O管腳拉高或拉低;只要可能,盡量采用內(nèi)振蕩器,它們是低功耗的選擇;切斷所有不用的外設(shè),例如PWM(脈寬調(diào)制器)、ADC、USART等;在程序中盡量用查詢表代替CPU運算;檢查所有外圍器件的功耗,例如,計算電路全部外圍電阻的壓降;降低驅(qū)動串行EEPROM或外圍模擬器件等外設(shè)的I/O管腳驅(qū)動電平。點亮的LED功耗可能出乎你的意料,一只小小的LED能使你的低功耗設(shè)計努力前功盡棄?傊,一定要注意電流消耗。
本文小結(jié)
低功耗設(shè)計對電池供電的應(yīng)用來說至關(guān)重要。MCU的可編程性能對降低功耗大有裨益,通過調(diào)節(jié)電荷泵穩(wěn)壓源的輸出電壓可做到這點。其次關(guān)斷不使用的非關(guān)鍵外設(shè)。還有就是對時鐘系統(tǒng)進行控制,以得到最佳的性能/功耗比。集成電路制造商在不斷降低器件靜態(tài)電流和供電電源的同時,一直在努力改進這些外設(shè)器件的動態(tài)性能。而MCU制造商則通過為MCU增加諸如空閑和睡眠等模式來降低長時間工作時的平均功耗。將低功耗外設(shè)與MCU的各種降耗模式結(jié)合在一起,將為低功耗的電池供電設(shè)備提供更多的選擇。







