低功耗嵌入式實現(xiàn)的方方面面
任何一個嵌入式設計都是在對電源供電結構進行詳盡分析后才能完成的;同樣,對于恒定電源供電的有線系統(tǒng)也是如此。處理器和其周邊的硬件生態(tài)系統(tǒng)的消耗通常占電源的較大比例,因此,這就是所有的“重點”之所在。
本文引用地址:http://www.ex-cimer.com/article/91242.htm在深入討論之前,我們先按次序討論一下術語。“能量”與做功的總量有關,而“功率”是測量做功的速率(單位時間的能量)。電子學中,功耗= (系統(tǒng)元器件的電壓)ⅹ(流經(jīng)系統(tǒng)元器件的電流),能量=功率ⅹ時間。
因此,系統(tǒng)設計員通常關心總的能量消耗和峰值功耗。換句話說,使用的能量是從電池吸收的,但電池也需要提供足夠的瞬時能量以滿足峰值功率的要求。習慣上將集中討論功耗;然而,實際上也將論及系統(tǒng)中使用的能量和功率。
什么是“低功耗”
“低功耗”究竟指什么?從嵌入式觀點看,經(jīng)常將該術語同電池驅動移動設備聯(lián)系起來,但該術語實質上也是相對的。從功率尺度的最低端應用看,我們可以只簡單地討論手表電池的例子。然而,在另一個極端,為了避免額外的設計負擔和費用(如熱同步、風扇、調整器等),又需要構想使功耗最小的“插入式”系統(tǒng)。
畢竟現(xiàn)今的很多設計系統(tǒng),諸如從汽車收音機到“插件箱”中的儀器板卡,都是根據(jù)交到OEM(原設備供應商)的規(guī)格構建的系統(tǒng)。為了確保銷售商之間的一致,這些規(guī)格經(jīng)常描述了嚴格的功率預算分配。關鍵點是,為了關注降低功耗,系統(tǒng)不一定非要用電池供電,或者非要“移動”。
為了方便,可以將低功耗嵌入式系統(tǒng)分為三個不同類型:
第一類是在不使用時就關閉電源的系統(tǒng)。對于這類應用,系統(tǒng)運行時的低電流消耗駕馭著電池的壽命。這樣的應用實例包括便攜式媒體播放器、GPS設備和數(shù)碼相機,這些系統(tǒng)在工作狀態(tài)呈現(xiàn)出低功耗的特性,同時待機電流是“無關緊要”的,這是由于設備關閉時是不吸收電流的(如果使用了實時時鐘會有幾微安的電流)。通常根據(jù)不同的應用,處理器在有效工作狀態(tài)時的電流從幾十到幾百毫安。
第二類中,將開機或完全關閉的系統(tǒng)改進為開機或“待機模式”的系統(tǒng)。在待機狀態(tài),系統(tǒng)處于最低電流消耗狀態(tài),同時仍維持存儲區(qū)中的內容。對于這樣的系統(tǒng),有效電流和待機電流消耗都很重要,此時有效電流的消耗與第一種情況相同,而待機電流通常則從數(shù)百微安到幾毫安。這種類型的典型產(chǎn)品如VoIP移動電話和聲控設備。該類還包括這樣的情況,系統(tǒng)的某部分仍處于“監(jiān)控”狀態(tài),在轉換到全速處理狀態(tài)之前等待某事件的發(fā)生。
第三類由始終處于加電狀態(tài)的設備構成。這里,功率要求很可能在次毫安范圍內,這就直接限制了可實現(xiàn)的處理性能。此類的應用實例包括手表和一些便攜式或植入式醫(yī)療設備。
有很多方法可以調整系統(tǒng)的功耗指標,以滿足應用要求,包括:
·動態(tài)改變頻率和電壓;
·了解處理器內分離的供電范圍;
·分析代碼從而針對降低功耗做優(yōu)化;
·運用處理器的多種供電模式;
·從系統(tǒng)級關注功耗的產(chǎn)生。
本文將集中討論最后兩種方法,參考文獻部分列出了其他幾個主題的詳細說明。
電源供電模式
許多應用涉及相對于其處理的需求有明顯差別的工作模式??紤]一個用電池供電并帶有嵌入處理器的傳感器。處理器的外設可能采集周圍環(huán)境的參數(shù)。在該模式下,不要求有計算功率,處理器可能要求突發(fā)讀入遙測數(shù)據(jù)的數(shù)據(jù)包。當處理器讀取足夠數(shù)據(jù)并開始處理時,則進入“全速”工作模式,整個處理器就被喚醒,以最高的性能運行。當不需要傳感器數(shù)據(jù)也不需要處理時,可提供超低功耗模式。
處理器要從各種各樣的掉電模式中喚醒,需要接收某種類型的喚醒事件。外部事件可以是外部激勵,如標志引腳翻轉,或者內部處理器活動,如DMA傳輸完成或定時器滿等。
不同處理器上實現(xiàn)的確定電源供電模式有很大差別,但處理平臺之間通常也有一些共性,例如“全速”工作模式;“睡眠”模式,為了使系統(tǒng)快速恢復,即使處理器未使用的部分為省電處于無效,片上存儲器仍保持供電;以及“休眠”模式,此模式中,為了最大節(jié)省電源,片上存儲器也可以不供電。本文中,“待機模式”表示綜合的低功耗模式,這里的電流消耗和恢復到全速處理模式所需的時間需要進行折中[v1],也就是電流越低,恢復到全速工作的時間就越長。
為什么需要讓處理器定期進入或退出待機模式呢?其實很簡單,就是為了減少能量消耗和延長電池壽命。在許多待機模式中,由于處理器仍然被供電,處理器可保留其所有的內部狀態(tài)和存儲器內容,但大大地減少了電流的吸收。此外,處理器喚醒需要占用幾毫秒時間,但這也比傳統(tǒng)的處理器從冷啟動加載快得多。
休眠模式
“休眠”待機模式是特別有意思的,因為它通過完全關閉處理器內核電源,實現(xiàn)了最大的能量節(jié)省 (與“待機綜合”下的其他模式不同)。 當處理器內核的電源關閉后,不再維護處理器的內部狀態(tài),因此,任何保存在內部(存儲器內容、寄存器內容等)的關鍵信息,在關電前都必須提前寫入到非易失性存儲器設備中。然而,即使關閉了處理器內核電源,休眠方式仍為使SDRAM保持“活躍”狀態(tài)提供了措施。在進入休眠模式前,設置SDRAM進入自刷新模式,并在喚醒后可以重新控制它,處理器允許將系統(tǒng)狀態(tài)存儲在易失性DRAM中,而不是非易失性Flash存儲器中,這樣,處理器在喚醒后就可以更快速自舉,否則,處理器還需要從非易失性存儲器重新載入程序代碼。
充分利用電源供電模式
現(xiàn)在考慮另一個具有代表性的情況,此時有不同的處理器供電模式,在功耗方面也有很大的差別??紤]一臺帶有輸入緩沖區(qū)的便攜式MP3播放器,將音頻數(shù)據(jù)解碼到SDRAM中的輸出緩沖區(qū),然后將處理器置為待機模式,直到又需要新的數(shù)據(jù)為止。
由于MP3解碼處理要求低,在不需要處理的間隔,處理器可以進入休眠狀態(tài),比如,設備可能工作在“25%解碼,75%休眠”的情形,也就是說,此時處理器在這個25%的時間時,其內核吸收電流是30mA,而在75%的時間時,處理器內核的吸收電流僅有15mA。在解碼間隔,處理器盡可能快的在外部存儲器中構建解碼的樣本,一旦達到了緩沖區(qū)期望的大小,處理器就進入睡眠狀態(tài),直到需要更新數(shù)據(jù)緩沖區(qū)。
換句話說,如果通常進行連續(xù)流MP3解碼,即75MHz,則可選擇以300MHz對在待機模式過程中收集的緩沖區(qū)數(shù)進行解碼。這樣,處理器就在一個更高水平上運行,但其運行過程很短(在處理器又回到睡眠狀態(tài)前)。通過使睡眠時間最大化,就可以節(jié)省能量。這種方法只是對于像便攜式媒體播放器這樣的系統(tǒng)是有道理的,因為有時也需要視頻處理,否則,如果只是MP3解碼,就可使用更低性能(和低功耗)的處理器。
那如何管理處理器的喚醒速率呢?在本例中,音頻緩沖可以是雙緩沖,從DMA角度看,每個緩沖區(qū)就是一個音頻“線”,每個輸出線完成的中斷就標志處理器是時候用新數(shù)據(jù)填充剛為空的緩沖區(qū)了。在輸出緩沖區(qū)準備通過音頻口進行播放之前,處理器很容易產(chǎn)生所需要的解碼后的輸出緩沖區(qū)數(shù)據(jù),一旦處理器填滿了該緩沖區(qū),它又進入睡眠狀態(tài),然后不斷重復這一過程。
作為旁注,在上述例子,使用異步SRAM設備而不是SDRAM,更能節(jié)省成本和節(jié)省能量。當然,SRAM不能提供和SDRAM一樣的性能水平,但對于16bit或32bit訪問的音頻數(shù)據(jù), SRAM的性能就足夠了,這是因為采用DMA控制器并行訪問數(shù)據(jù),即使數(shù)據(jù)以低速SRAM速率出現(xiàn),也很容易保持持續(xù)給串行接口提供解碼數(shù)據(jù)。
由于有較大的程序代碼,或者需要提高解碼的性能,即使應用中需要SDRAM,在設計中同時使用SRAM和SDRAM也是有道理的。當然使用的材料成本費用將增加,在系統(tǒng)中巧妙地使用兩者也可以最大化地節(jié)省功率。要求最高性能的部分應用可使用SDRAM,且每當處理器進入睡眠后,即將SDRAM置為自刷新模式。在活躍處理期間,吸收的電流主要由處理器和SDRAM控制,這是因為基于mW/bit SRAM雖然不如SDRAM有效,但其尺寸大小通常比SDRAM小的多。
在低功耗應用中優(yōu)化功率消耗
利用系統(tǒng)級技術節(jié)省功耗與元器件級節(jié)省同樣重要,因為元器件經(jīng)常以共生的形式一起使用。當將處理器置為低功耗模式,許多不同的系統(tǒng)元器件都可以配置為用于喚醒處理器,比如,通過以太網(wǎng)、USB、實時時鐘或FLAG標志引腳上的觸發(fā)信號等都可以產(chǎn)生喚醒事件。
一個較好的系統(tǒng)級喚醒實例是通過串行口連接到處理器的外部WiFi芯片。 當處理器沒有活躍地運行時,可以將它置入低功耗狀態(tài),僅讓WiFi芯片運轉。在這種工作狀態(tài),WiFi芯片中的微控制器幾乎不消耗電流,因為它僅僅查找與分配的MAC地址相關的數(shù)據(jù)包,一旦接收數(shù)據(jù)包,WiFi芯片就向處理器發(fā)送一個信號,喚醒處理器并開始再工作。
實時時鐘
如果便攜式系統(tǒng)還承擔著維護日歷時間的任務,此時可用實時時鐘(RTC),從應用觀點(例如,將實際日期和時刻傳遞給用戶)和功耗的觀點看,這都很重要。多數(shù)RTC都允許設置鬧鐘,在未來任何時間點提供喚醒功能。 因此,系統(tǒng)在不活躍的周期可轉入到待機模式,在監(jiān)視、管理或者用戶通知任務等周期性間隔即可喚醒系統(tǒng)。
作為低功率系統(tǒng)中RTC是如何用的一個具體實例,讓我們假設對于GPS應用,需要每秒喚醒處理器獲得衛(wèi)星的位置,RTC(吸收20μA)設置為每秒喚醒處理器,處理器轉入其低功耗模式(消耗50μA)。當RTC鬧鐘響起時,處理器被喚醒,執(zhí)行算法,獲取衛(wèi)星座標,然后再回到睡眠狀態(tài)。因此,在這種應用中,僅有很低的“在線”占空比,主要工作時間僅需消耗70μA的電流。
無論是作為處理器的一部分,或作為連接到處理器的一個獨立芯片,RTC都需要一個獨立的電源域,當系統(tǒng)其他部分的電源關閉后它仍可以保持工作。RTC通常采用硬幣大小的微型電池供電工作,僅消耗微瓦級能量。由于擴展電池壽命十分重要,當系統(tǒng)連接使用了主電源,允許系統(tǒng)通過主電池(或線路電源)為RTC提供電源運行是明智的。當系統(tǒng)其他部分供電運行時,圖1說明了可用于節(jié)省RTC電池吸收電流的電路實例。
圖 1 RTC的主微型電池備用供給
輸入時鐘
處理器的輸入時鐘引腳提供必要的時鐘頻率、占空比和穩(wěn)定性,通過片上鎖相環(huán)(PLL)模塊倍乘后,可產(chǎn)生精確的內部時鐘。時鐘引腳連接外部晶體或晶體振蕩器,使用晶體通常很便宜,但使用的晶振通常進行了緩沖,還可以為系統(tǒng)中的其他部分提供可選的時鐘使用。例如,27MHz的晶振不僅可作為處理器時鐘輸入,還可以作為NTSC視頻編碼器或譯碼器的時鐘源。有時,處理器本身也基于晶體輸入時鐘,提供緩沖的時鐘輸出,這就可節(jié)省購買晶振的費用。
基本振蕩頻率越低,晶體的封裝就越大,然而,更高頻率的晶體成本又高,因為它們更易碎。因為基頻越高,里面的石英就越薄。權衡是否使用晶體的另一個因素還有EM(電磁干擾)。要控制晶體可能泄漏到濾波器或者運放通帶內的寄生諧波,從系統(tǒng)角度看避免某個頻率倍數(shù)也是十分重要的。
在某些處理器中,當處理器進入低功耗模式時,可編程停止輸入晶振放大器驅動,這可節(jié)省幾個mA的吸收電流,而這樣做的開銷來自于當處理器恢復正?;顒訒r,會增加開機時間(由于時鐘設置延遲)。
USB
如今許多便攜式設備都有USB連接方式,USB除了作為普遍使用的到PC機的連接方式外,它也為設備提供了一種公共的供電源。當設備連接到PC機時,它可使用主機作為源對其供電,這對于節(jié)省電池壽命有實際效果,同時也為嵌入式產(chǎn)品中的電池充電提供了一種方法。
USB供電的設備的供電屬性必須符合USB規(guī)范的預算,USB 1.1和USB 2.0協(xié)議限制每個設備的“總線供應”功率為2.5W(0.5A @ +5V),對于低功率設備如鍵盤或鼠標是足夠的。
USB標準也定義了支持更高電流的設備,但總功耗限制仍是2.5W,對于更高功率的設備,如打印機或顯示,標準的USB功率極限通常不夠,要求這些設備使用外部供電來滿足其功率需求。
從系統(tǒng)觀點看,當設備采用USB供電時,如果有一段時間沒有使用該設備,則該設備必須進入“掛起”狀態(tài),此時最大吸收電流是500uA。
可以采用各種各樣的設計方法設計系統(tǒng)來處理掛起模式,一種方法就是充分利用處理上的待機模式。當處理器進入待機模式時,可設置USB外設保持D+和D-引腳的狀態(tài),從該時刻開始,處理器都處于低功耗模式,直到USB引腳中的一個發(fā)生狀態(tài)改變。這種狀態(tài)的改變可觸發(fā)外部調節(jié)器供電,然后處理器就可以上電,恢復狀態(tài),并從其停止的地方重新開始執(zhí)行。
顯然,有很多因素影響嵌入式應用的設備級和系統(tǒng)級功耗屬性,通過對影響功率的關鍵因素的理解,對任何特定的應用,在減小功耗方面就能取得重大進展。
參考文獻:
[1] David Katz and Rick Gentile. Embedded Media Processing, Newnes: Boston, 2006
[2] Seliverstov T. EE-339: Using External Switching Regulators with Blackfin(r) Processors, Analog Devices, Inc. Revision 1.0. 【R/OL】. [2008-5-14]. http://www.analog.com/static/imported-files/application_notes/EE-339.pdf
[3] Katz D, Gentile R, Tarkoff J. EPC-33: Understanding all of your options in Low-Power Embedded Processing Designs, Embedded Power Conference Proceedings, September 2008 [C], San Jose
[4] Sondermeyer J, Beauchemin J, Desai H. EE-334: Using Blackfin(r) Processor Hibernate State for Low Standby Power. Analog Devices, Inc. Revision 1.0. [R/OL]. [2008-5-5]. http://www.analog.com/static/imported-files/application_notes/EE-334_Rev1.pdf
[5] Analog Devices, Inc, ADSP-BF52x Blackfin(r) Processor Hardware Reference, Volume 1, Chapter 16, Revision 0.31[R]. May 2008
[v1]技術翻譯錯誤
存儲器相關文章:存儲器原理
評論