引 言 電源管理(Power Management,PM)是電子系統中必不可少的技術。由于采用了先進的電源管理技術,移動電話、PDA等產品得到了廣泛的應用。如果不采用完善的電源管理技術,移動電話的通話時間可能不超過2 min。隨著人們對嵌入式手持終端設備功能水平要求的不斷提高,手持終端的功耗也在不斷增高。與之相矛盾的是,手持終端的尺寸卻在不斷縮小,工作時間也在不斷延長,使嵌入式手持終端電源系統管理面臨越來越大的壓力。如何設計出性能穩定、功耗低的電源管理系統已經成為嵌入式手持終端設備開發的難點之一。本文重點介紹基于微處理器S3C2440A的手持終端電源管理系統。 1 供電需求 手持終端的CPU采用三星公司的ARM920T內核處理器S3C2440A。S3C2440A是專門為各類手持終端而設計的高性能嵌入式微處理器,主頻可達400 MHz,具有外圍接口豐富、體積小、功耗低等特點。 S3C2440A有4種工作模式:正常模式、慢模式、空閑模式、睡眠模式。4種模式之間可以相互轉換,區別主要在于處理器工作頻率、工作電壓和設備組合的不同。本設計中主要針對正常模式和睡眠模式采用不同的電源管理策略。 1.1 正常模式下供電需求 在正常模式下,CPU以及外圍部件都需要供電。外圍部件主要包括Flash、SDRAM、GPRS、GPS、無線模塊、LCD、觸摸屏等部分。硬件結構如圖1所示。 ![]() CPU電壓分為2組:核心電壓為1.2 V;I/O引腳電壓為3.3 V。USB和GPS供電電壓為5 V。LCD的供電電路比較復雜,需要專用的驅動芯片為其供電。由于現在幾乎所有的手持終端都是彩屏,作為調節LCD背光亮度的LED也需專門的驅動電路。其余部分(如GPRS、無線模塊、音頻等)都為3.3 V。 1.2 休眠模式下供電需求 CPU 90%以上的時間處于休眠模式,休眠狀態下電源管理的好壞對于手持終端工作時間的長短起著決定性作用。圖2是手持終端在休眠模式下供電需求。 ![]() 休眠模式下,外部需要通過VDDalive端口為CPU內部能量控制模塊提供1.2 v/1.3 V電壓,為存儲器接口電源VDDMOP、ADC端口電源VDD_ADC、I/O端口電源VDDOP提供3.3 V電壓。實時時鐘需要在休眠模式和系統關機時依然對其供電。PWREN為控制信號,在CPU進入睡眠后,PWREN為低電平,可通過此引腳關閉睡眠模式下不使用的模塊。 2 電源管理策略 2.1 正常模式下電源管理策略 正常模式下的電源管理主要是通過控制外設控制器的開關來達到節約能量的目的。S3C2440A外設接口控制器豐富,但這些控制器不一定同時都用到。通過設置寄存器可以有選擇地關閉不需要的功能模塊,盡量將不使用的控制器關閉,盡可能節省功耗。因為如果不將其關閉,即使它們沒有處于工作狀態,仍然會消耗電流。 2.2 休眠模式下電源管理策略 休眠模式下,主要采用Time-out策略,如圖3所示。系統完成所有任務后,如果持續時間超過某一閾值(該時間間隔可由系統提供的計時模塊設定),電源管理模塊將系統轉換至休眠狀態,直到有新任務請求到達時再喚醒系統,則執行任務。通過這種方式達到降低系統設備功耗的目的。 ![]() 3 電源管理系統設計 3.1 硬件設計 嵌入式手持終端電源管理系統硬件設計必須同時滿足CPU正常模式和休眠模式的供電需求。 3.1.1 休眠模式下供電電路 休眠模式下供電電路如圖4所示。電池的電源經過Buck變換器后,輸出3.3 V供給I/O、VDDalive等端口;3.3 V經過LDO變換器輸出1.2 V,為休眠時CPU內部能量管理模塊供電。電池電壓經過LDO變換器輸出3.3 V,直接給實時時鐘RTC供電,只要手持終端電池電壓大于3.3 V,系統RTC就會工作。使用LDO變換器為RTC供電是因為輸入、輸出電壓差別不大,效率較高。但是,CPU的1.2 V電壓通過Buck變換器和LDO變換器得到,LDO的效率雖然不到50%,但比Buck變換器高。 ![]() 3.1.2 正常模式下供電電路 正常模式下供電電路如圖5所示。從圖中可看出,電路共包括3個子模塊:電池管理、電壓管理和負載管理。 ![]() 電池管理:主要由鋰離子充電電路和充電監控電路組成。外接直流電源通過充電電路為鋰離子充電電池充電,充電完畢后充電電路自動關閉充電。 電壓管理:所有在睡眠模式下不需要提供電源的模塊,其電源供應都必須通過休眠控制部分進行控制,在系統休眠時關閉各個不使用模塊的電源。所有在休眠模式下需要供電的模塊均不通過休眠控制,直接通過電池電壓變換后供電,或者通過主電源直接或間接變換得到。負載管理:在不使用模塊時,通過GPIO口關閉可降低功耗。 3.2 軟件設計 為了實現節能,電源管理系統必須通過軟件控制系統的功耗。 3.2.1 總體架構 電源管理系統軟件整體架構如圖6所示。 ![]() 電源管理軟件設計可分為:操作系統層和應用層。 (1)操作系統層 電源管理的功能執行層,它管理系統中的各個部件(包括處理器和所有外設),并對具體的電源管理動作進行封裝。操作系統層的電源管理有3方面內容。 ①處理器電源管理:執行由處理器完成的電源管理任務。包括以下3方面: ◆DVS。動態核電壓和頻率調整,以及系統總線的頻率調整。 ◆模式管理。系統運行模式管理,實現系統運行模式的切換,如休眠喚醒、空閑忙碌等功能。 ◆RTC。系統時鐘和RTC時鐘的維護等。 ②電池管理:監測電池電量,響應電池狀態的變化(充放電)。 ③設備電源管理:包括系統中的所有設備。在系統睡眠喚醒時,每一個設備都需要配合系統的動作進行休眠喚醒。如果設備在系統要休眠時處于忙碌狀態,它可以拒絕系統的休眠要求,從而阻止整個系統進入休眠。 (2)應用層 最上層,實現系統的電源管理策略。電源管理策略與操作系統層進行交互,從操作系統層獲得系統的狀態信息,根據系統狀態采取相應措施,并將自己的決定通知操作系統,調用相應功能接口執行電源管理。 為了降低策略實現的復雜度,增強策略調整的靈活性,電源管理策略主要在應用層,利用QTopia的事件管理和定時器功能來實現。電源管理應用程序位于系統的最上端,直接與用戶進行交互,用戶可以在這些應用程序中對電源管理策略進行配置。這些應用程序包括電池管理程序、背光調整程序、超時時間設定程序、開關機程序等。本文只介紹電池管理程序的實現。 3.2.2 電池管理程序實現 鋰離子電池檢測與充電保護電路芯片采用DS2760。CPU通過DS2760的DQ引腳讀取內部寄存器的數據,獲得電池的運行狀態,以便上層的應用程序對電池進行管理。底層驅動程序主要實現設備的注冊等功能。上層應用程序主要包括ds2760.c和Qtopia圖形界面程序light-and- power。ds2760.c主要完成電池電壓、電流的讀寫。例如讀電壓由函數Read_Voltage完成,代碼如下: ![]() light_and_power程序完成圖形界面的電源管理應用于。程序流程如圖7所示。 ![]() 4 系統功耗測試 系統功耗的高低代表系統運行時間和待機時間的長短,反映電源管理系統性能的高低。為了評估手持終端整體功耗以及各個主要模塊的功耗,需要對系統在不同負載情況下的電池輸出電流進行測量。表1是系統正常模式、在不同模塊配置下的鋰離子電池供電電流值實測數據。內部電池供電為負值。 ![]() 結論:正常情況下,如果所有模塊都開啟,手持終端整體功耗電流約為0.496 A,基本滿足設計的要求。LCD、GPS、GPRS三個部分約占總功耗的52.6%。 結 語 本文以實現功耗低、體積小、性能穩定的嵌入式手持終端電源管理系統為目標,設計了基于S3C2440A的嵌入式手持終端電源管理系統,對于其他嵌入式手持終端電源管理系統的設計具有一定的參考價值。 作者:通信指揮學院 蔡理金 王逢東 王麗潔 馬東堂 來源:《單片機與嵌入式系統應用》 2009(9) |