發布日期:2022-07-14 點擊率:33
低功耗是嵌入式電子產品必須具備的一個關鍵特性,在硬件技術飛速發展和日益完善的時候,已經很難有功耗方面的突破了。所以現在降低產品功耗主要是依靠軟件來處理,必須依靠軟件讓整個系統在各個時候電流達到最小。不管是操作系統、BIOS 控制程序還是外設驅動程序,這些程序將決定了最終產品的功耗水平,因此在開發時必須加以考慮。本論文將以智能電話為例,介紹一種通過軟件降低功耗的方法,可供嵌入式設計工程師們參考。實現省電降低功耗的方法有很多,本文不可能面面俱到,將主要介紹軟件程序如何控制物理層進行省電。
具體實現措施
系統描述及設計思想目前國內智能電話的數字多媒體解決方案一般通過基于ARM7 等內核的基帶嵌入式處理芯片外接多媒體處理芯片來實現。嵌入式處理器是硬件系統的核心,運行功耗占系統功耗的大部分。目前,嵌入式處理芯片一般采用RISC 體系結構,通過簡化指令設計、引入流水線技術、指令預取、大量寄存器操作和高速緩存等技術提高運行效率,并采用低電壓工作模式以降低運行功耗。嵌入式處理芯片一般為應用開發提供了三種工作模式:運行模式(Run)、空閑模式(Idle)和休眠模式(Standby)。
運行模式即正常工作模式,CPU全速運行;空閑模式時CPU是靜態的,但LCD刷新電路和晶振都工作。在不同運行模式下,處理器工作時功耗數值差別較大;以Cirrus Logic 公司EP7211(ARM7核)嵌入式處理器為例,開發手冊中寫到,在18MHz 工作頻率下,運行時消耗電流是20mA,空閑時消耗電流是6mA,而休眠時消耗電流300A。
本嵌入式產品系統(智能電話)中的基帶嵌入式處理器芯片將采用展訊的SC6600芯片平臺,多媒體芯片則采用廣達的QCP1880芯片平臺,音頻編解碼芯片采用Wolfson 8750芯片,LCD 采用HIMAX8309。作為手機產品,電池一般在800~1200mA時左右,待機要求80小時以上,這就要求系統在待機狀態時候的電流在10mA以下,關機后的電流在mA級以下。
SC6600 在睡眠 模式下一般有3~5mA 左右電流,QCP1880在睡眠模式下一般會有10mA左右電流,斷電后在200A左右,音頻部分在空閑模式大概有270A,在待機時SC6600 的3~5mA固有電流沒辦法省掉,所以QCP1880必須斷電。
低功耗設計的基本思想是:讓系統各個部分在需要的時候才處于工作狀態,其他時候處于各部分的省電狀態。大部分的嵌入式處理器都具有正常工作模式和省電工作模式,最常用的是空閑模式,此時處理器內核指令執行部分關閉,時鐘頻率降低,空閑模式比處理器執行指令時的功耗要小得多。空閑模式一個主要特點是其進入退出基本上不需要額外開銷,通常一個或幾個指令周期能完成。外設部分硬件一般也有省電處理設計,軟件主要是控制外設在沒有工作時處于省電狀態,甚至關掉整個外設,在需要時再掛上。
功能設計在大體上,本系統省電處理主要分為三塊: 基帶芯片(SC6600),普通外設(能很方便地在使用時打開,不用時關掉的設備,如LCD等),多媒體芯片(QCP18800)。基帶芯片(SC6600)的處理:由于很多中斷都能把處理器從空閑模式中喚醒,所以采用智能等待這種模式。讓處理器平常處于空閑模式,把隨機事件和實時要求比較高的都掛在中斷上,當事件發生處理器能很快被喚醒,處理這些事件。其他有規律的事件和實時性要求不高的用定時器去進行掃描。
這種等待機理應用很普遍,現今大多數PDA和智能電話都是由具有空閑模式功能的處理器和操作系統控制,處理器只有在有用戶操作或有任務處理時才處于正常工作狀態,其他時候都是處于空閑(SLEEP)狀態,這樣最大程度提高電源效率。例如,在用手機看電子書時,處理器處于空閑狀態,當用戶翻頁或其他操作(按鍵、觸屏等)時,處理器將被喚醒處理相應的操作,處理完又進入空閑狀態。
對于CPU的處理,后臺起一個線程監控系統CPU的使用情況,當CPU處于空閑狀態時,且系統其他模塊也允許CPU 睡眠的時候,CPU立刻進入睡眠模式。