用于便攜式設備的低功耗MCU系統(tǒng)設計方法及應用
發(fā)布時間:2008/6/5 0:00:00 訪問次數(shù):336
1、便攜式設備對處理器提出的挑戰(zhàn)
隨著電子便攜式設備在全球的風行,人們對電子便攜式設備的要求也越來越高,希望產(chǎn)品有更多的功能,如手機攝像機自動對焦與手機閃信與計步器;希望產(chǎn)品功耗更低,如無線設備、手持pos機和家庭醫(yī)療產(chǎn)品;希望產(chǎn)品體積更小,如運動手表;希望產(chǎn)品的保密性好;處理能力強,如便攜式儀器和高精度運動控制;希望價格更低和開發(fā)周期短。
然而困惑的是,很多的便攜式設備往往會同時要有上面的多個要求,然而現(xiàn)實中很難做到:同時滿足高速處理、低功耗和價格?arm高速,但是功耗而價格高;同時滿足高速處理和小封裝?希望封裝面積小到3×3mm,又要不犧牲速度;同時滿足小封裝和soc?需要adc、spi和12個i/o,而尺寸,最好小于5×5mm;開發(fā)周期,arm性能完全合適,但arm往往需要操作系統(tǒng)支持,開發(fā)周期長,而市場機遇稍縱即逝。
為此,本文將從為電子便攜式設備開發(fā)解決上述這些難題出發(fā),對如何設計一個低功耗的單片機系統(tǒng)與方法和mcu在低功耗方面的優(yōu)勢進行分析,并小尺寸系列單片機的應用為例作出介紹。
2、如何設計一個低功耗的單片機系統(tǒng)
問題提出:單片機系統(tǒng)的功耗是否只是由單片機的功耗決定?回答是,以單片機為核心構成的系統(tǒng),其系統(tǒng)的總能耗是由單片機能耗及其外圍電路能耗共同構成。為了降低整個系統(tǒng)的功耗,除了要降低單片機自身的運行功耗外,還要降低外圍電路的功耗。
2.1如何設計低功耗單片機系統(tǒng)?
要設計一個低功耗的單片機系統(tǒng),需要從硬件和軟件兩方面入手。
2.11硬件設計
*選用盡量簡單的cpu內(nèi)核。在選擇cpu內(nèi)核時切忌一味追求性能。選擇的原則應 該是“夠用就好”。8位機夠用,就沒有必要選用16位機。一般來說,單片機的運行速度越快,功耗也越大。一個復雜的cpu集成度高、功能強,但片內(nèi)晶體管多,總漏電流大,即使進入stop狀態(tài),漏電流也變得不可忽視;而簡單的cpu內(nèi)核不僅功耗低,成本也低。
*選用低電壓供電的系統(tǒng)。低電壓供電可以大大降低系統(tǒng)的工作電流。目前單片機從與ttl兼容的5v供電降低到3.3v、3v、2v乃至1.8v供電,降低單片機的供電電壓可以有效降低其功耗。供電電壓降低也是未來單片機發(fā)展的一個重要趨勢。
*選擇帶有低功耗模式的系統(tǒng)。低功耗模式指的是系統(tǒng)的idel(閑置)、stop(停止)和suspen(暫停)模式。處于這類模式下的單片機功耗將大大小于運行模式下的功耗。
*選擇合適的時鐘方案。時鐘的選擇對于系統(tǒng)功耗相當敏感,有兩方面的問題要注意:
其一、系統(tǒng)總線頻率應當盡量低。單片機內(nèi)部的總電流消耗分為:運行電流和漏電流。單片機集成度越高,環(huán)境溫度越高,漏電流也越大。單片機的運行電流幾乎和其時鐘頻率成正比。降低時鐘頻率,就可以有效降低單片機的功耗。
其二、關于時鐘方案。是否使用鎖相環(huán),使用內(nèi)部振蕩器還是外部振蕩器,F(xiàn)代單片機普遍使用鎖相環(huán)技術,使單片機的時鐘頻率可以由程序控制。單片機使用外部較低的振蕩器,通過軟件控制,系統(tǒng)時鐘可以在一個很寬的范圍內(nèi)調(diào)整,得到比較高的總線時鐘。使用鎖相環(huán)會帶來額外的功耗。單就時鐘方案來講,使用外部晶振且不使用鎖相環(huán)是功率消耗最小的一種。有的單片機帶有內(nèi)部時鐘,也可使用外部時鐘。這可以根據(jù)實際系統(tǒng)的需要使用雙時鐘:一個高速時鐘和一個低速時鐘。處理事件時使用高速時鐘,空閑時使用低速時鐘。這鐘雙時鐘系統(tǒng)可以有效地降低功耗。
2.12應用軟件設計
應用軟件設計對于一個低功耗系統(tǒng)的重要性常常被人們忽略。一個重要的原因是,軟件上的缺陷并不像硬件那樣容易發(fā)現(xiàn),同時也沒有一個嚴格的標準來判斷一個軟件的低功耗特性。盡管如此,設計者如果能盡量將應用的低功耗特性反映在軟件中,就可以避免那些“看不見”的功耗損失。
*用“中斷”代替“查詢”。在沒有要求低功耗的場合,程序使用中斷方式還是查詢方式并不重要。但在要求低功耗場合,這兩種方式相差甚遠。使用中斷方式,cpu可以什么都不做,甚至可以進入等待模式或停止模式;而查詢方式下,cpu必須不停地訪問i/0寄存器,這會帶來很多額外的功耗。
*用“宏”代替“子程序”。子程序調(diào)用的入棧出棧操作,要對ram進行兩次操作,會帶來更大的功耗。宏在編譯時展開,cpu按順序執(zhí)行指令。使用宏,會增加程序的代碼量,但對不在乎程序代碼量大的應用,使用宏無疑會降低系統(tǒng)的功耗。
*盡量減少cpu的運算量。減少cpu的運算工作量,可以有效地降低cpu的功耗。減少cpu運算的工作可以從很多方面入手:其一,用查表的方法替代實時的計算。其二,不可避免的實時計算,算到精度夠了就結束,避免“過度”的計算。其三,盡量使用短的數(shù)據(jù)類型,例如,盡量使用字符型的8位數(shù)據(jù)替代16位的整型數(shù)據(jù),盡量使用分數(shù)運算而避免浮點
1、便攜式設備對處理器提出的挑戰(zhàn)
隨著電子便攜式設備在全球的風行,人們對電子便攜式設備的要求也越來越高,希望產(chǎn)品有更多的功能,如手機攝像機自動對焦與手機閃信與計步器;希望產(chǎn)品功耗更低,如無線設備、手持pos機和家庭醫(yī)療產(chǎn)品;希望產(chǎn)品體積更小,如運動手表;希望產(chǎn)品的保密性好;處理能力強,如便攜式儀器和高精度運動控制;希望價格更低和開發(fā)周期短。
然而困惑的是,很多的便攜式設備往往會同時要有上面的多個要求,然而現(xiàn)實中很難做到:同時滿足高速處理、低功耗和價格?arm高速,但是功耗而價格高;同時滿足高速處理和小封裝?希望封裝面積小到3×3mm,又要不犧牲速度;同時滿足小封裝和soc?需要adc、spi和12個i/o,而尺寸,最好小于5×5mm;開發(fā)周期,arm性能完全合適,但arm往往需要操作系統(tǒng)支持,開發(fā)周期長,而市場機遇稍縱即逝。
為此,本文將從為電子便攜式設備開發(fā)解決上述這些難題出發(fā),對如何設計一個低功耗的單片機系統(tǒng)與方法和mcu在低功耗方面的優(yōu)勢進行分析,并小尺寸系列單片機的應用為例作出介紹。
2、如何設計一個低功耗的單片機系統(tǒng)
問題提出:單片機系統(tǒng)的功耗是否只是由單片機的功耗決定?回答是,以單片機為核心構成的系統(tǒng),其系統(tǒng)的總能耗是由單片機能耗及其外圍電路能耗共同構成。為了降低整個系統(tǒng)的功耗,除了要降低單片機自身的運行功耗外,還要降低外圍電路的功耗。
2.1如何設計低功耗單片機系統(tǒng)?
要設計一個低功耗的單片機系統(tǒng),需要從硬件和軟件兩方面入手。
2.11硬件設計
*選用盡量簡單的cpu內(nèi)核。在選擇cpu內(nèi)核時切忌一味追求性能。選擇的原則應 該是“夠用就好”。8位機夠用,就沒有必要選用16位機。一般來說,單片機的運行速度越快,功耗也越大。一個復雜的cpu集成度高、功能強,但片內(nèi)晶體管多,總漏電流大,即使進入stop狀態(tài),漏電流也變得不可忽視;而簡單的cpu內(nèi)核不僅功耗低,成本也低。
*選用低電壓供電的系統(tǒng)。低電壓供電可以大大降低系統(tǒng)的工作電流。目前單片機從與ttl兼容的5v供電降低到3.3v、3v、2v乃至1.8v供電,降低單片機的供電電壓可以有效降低其功耗。供電電壓降低也是未來單片機發(fā)展的一個重要趨勢。
*選擇帶有低功耗模式的系統(tǒng)。低功耗模式指的是系統(tǒng)的idel(閑置)、stop(停止)和suspen(暫停)模式。處于這類模式下的單片機功耗將大大小于運行模式下的功耗。
*選擇合適的時鐘方案。時鐘的選擇對于系統(tǒng)功耗相當敏感,有兩方面的問題要注意:
其一、系統(tǒng)總線頻率應當盡量低。單片機內(nèi)部的總電流消耗分為:運行電流和漏電流。單片機集成度越高,環(huán)境溫度越高,漏電流也越大。單片機的運行電流幾乎和其時鐘頻率成正比。降低時鐘頻率,就可以有效降低單片機的功耗。
其二、關于時鐘方案。是否使用鎖相環(huán),使用內(nèi)部振蕩器還是外部振蕩器。現(xiàn)代單片機普遍使用鎖相環(huán)技術,使單片機的時鐘頻率可以由程序控制。單片機使用外部較低的振蕩器,通過軟件控制,系統(tǒng)時鐘可以在一個很寬的范圍內(nèi)調(diào)整,得到比較高的總線時鐘。使用鎖相環(huán)會帶來額外的功耗。單就時鐘方案來講,使用外部晶振且不使用鎖相環(huán)是功率消耗最小的一種。有的單片機帶有內(nèi)部時鐘,也可使用外部時鐘。這可以根據(jù)實際系統(tǒng)的需要使用雙時鐘:一個高速時鐘和一個低速時鐘。處理事件時使用高速時鐘,空閑時使用低速時鐘。這鐘雙時鐘系統(tǒng)可以有效地降低功耗。
2.12應用軟件設計
應用軟件設計對于一個低功耗系統(tǒng)的重要性常常被人們忽略。一個重要的原因是,軟件上的缺陷并不像硬件那樣容易發(fā)現(xiàn),同時也沒有一個嚴格的標準來判斷一個軟件的低功耗特性。盡管如此,設計者如果能盡量將應用的低功耗特性反映在軟件中,就可以避免那些“看不見”的功耗損失。
*用“中斷”代替“查詢”。在沒有要求低功耗的場合,程序使用中斷方式還是查詢方式并不重要。但在要求低功耗場合,這兩種方式相差甚遠。使用中斷方式,cpu可以什么都不做,甚至可以進入等待模式或停止模式;而查詢方式下,cpu必須不停地訪問i/0寄存器,這會帶來很多額外的功耗。
*用“宏”代替“子程序”。子程序調(diào)用的入棧出棧操作,要對ram進行兩次操作,會帶來更大的功耗。宏在編譯時展開,cpu按順序執(zhí)行指令。使用宏,會增加程序的代碼量,但對不在乎程序代碼量大的應用,使用宏無疑會降低系統(tǒng)的功耗。
*盡量減少cpu的運算量。減少cpu的運算工作量,可以有效地降低cpu的功耗。減少cpu運算的工作可以從很多方面入手:其一,用查表的方法替代實時的計算。其二,不可避免的實時計算,算到精度夠了就結束,避免“過度”的計算。其三,盡量使用短的數(shù)據(jù)類型,例如,盡量使用字符型的8位數(shù)據(jù)替代16位的整型數(shù)據(jù),盡量使用分數(shù)運算而避免浮點