1、便攜式設備對處理器提出的挑戰
隨著電子便攜式設備在全球的風行,人們對電子便攜式設備的要求也越來越高,希望產品有更多的功能,如手機攝像機自動對焦與手機閃信與計步器;希望產品功耗更低,如無線設備、手持POS機和家庭醫療產品;希望產品體積更小,如運動手表;希望產品的保密性好;處理能力強,如便攜式儀器和高精度運動控制;希望價格更低和開發周期短。
然而困惑的是,很多的便攜式設備往往會同時要有上面的多個要求,然而現實中很難做到:同時滿足高速處理、低功耗和價格?ARM高速,但是功耗而價格高;同時滿足高速處理和小封裝?希望封裝面積小到3×3mm,又要不犧牲速度;同時滿足小封裝和SOC?需要ADC、SPI和12個I/O,而尺寸,最好小于5×5mm;開發周期,ARM性能完全合適,但ARM往往需要操作系統支持,開發周期長,而市場機遇稍縱即逝。
為此,本文將從為電子便攜式設備開發解決上述這些難題出發,對如何設計一個低功耗的單片機系統與方法和MCU在低功耗方面的優勢進行分析,并小尺寸系列單片機的應用為例作出介紹。
2、如何設計一個低功耗的單片機系統
問題提出:單片機系統的功耗是否只是由單片機的功耗決定?回答是,以單片機為核心構成的系統,其系統的總能耗是由單片機能耗及其外圍電路能耗共同構成。為了降低整個系統的功耗,除了要降低單片機自身的運行功耗外,還要降低外圍電路的功耗。
2.1如何設計低功耗單片機系統?
要設計一個低功耗的單片機系統,需要從硬件和軟件兩方面入手。
2.11硬件設計
*選用盡量簡單的CPU內核。在選擇CPU內核時切忌一味追求性能。選擇的原則應 該是“夠用就好”。8位機夠用,就沒有必要選用16位機。一般來說,單片機的運行速度越快,功耗也越大。一個復雜的CPU集成度高、功能強,但片內晶體管多,總漏電流大,即使進入STOP狀態,漏電流也變得不可忽視;而簡單的CPU內核不僅功耗低,成本也低。
*選用低電壓供電的系統。低電壓供電可以大大降低系統的工作電流。目前單片機從與TTL兼容的5V供電降低到3.3V、3V、2V乃至1.8V供電,降低單片機的供電電壓可以有效降低其功耗。供電電壓降低也是未來單片機發展的一個重要趨勢。
*選擇帶有低功耗模式的系統。低功耗模式指的是系統的Idel(閑置)、Stop(停止)和Suspen(暫停)模式。處于這類模式下的單片機功耗將大大小于運行模式下的功耗。
*選擇合適的時鐘方案。時鐘的選擇對于系統功耗相當敏感,有兩方面的問題要注意:
其一、系統總線頻率應當盡量低。單片機內部的總電流消耗分為:運行電流和漏電流。單片機集成度越高,環境溫度越高,漏電流也越大。單片機的運行電流幾乎和其時鐘頻率成正比。降低時鐘頻率,就可以有效降低單片機的功耗。
其二、關于時鐘方案。是否使用鎖相環,使用內部振蕩器還是外部振蕩器。現代單片機普遍使用鎖相環技術,使單片機的時鐘頻率可以由程序控制。單片機使用外部較低的振蕩器,通過軟件控制,系統時鐘可以在一個很寬的范圍內調整,得到比較高的總線時鐘。使用鎖相環會帶來額外的功耗。單就時鐘方案來講,使用外部晶振且不使用鎖相環是功率消耗最小的一種。有的單片機帶有內部時鐘,也可使用外部時鐘。這可以根據實際系統的需要使用雙時鐘:一個高速時鐘和一個低速時鐘。處理事件時使用高速時鐘,空閑時使用低速時鐘。這鐘雙時鐘系統可以有效地降低功耗。
2.12應用軟件設計
應用軟件設計對于一個低功耗系統的重要性常常被人們忽略。一個重要的原因是,軟件上的缺陷并不像硬件那樣容易發現,同時也沒有一個嚴格的標準來判斷一個軟件的低功耗特性。盡管如此,設計者如果能盡量將應用的低功耗特性反映在軟件中,就可以避免那些“看不見”的功耗損失。
*用“中斷”代替“查詢”。在沒有要求低功耗的場合,程序使用中斷方式還是查詢方式并不重要。但在要求低功耗場合,這兩種方式相差甚遠。使用中斷方式,CPU可以什么都不做,甚至可以進入等待模式或停止模式;而查詢方式下,CPU必須不停地訪問I/0寄存器,這會帶來很多額外的功耗。
*用“宏”代替“子程序”。子程序調用的入棧出棧操作,要對RAM進行兩次操作,會帶來更大的功耗。宏在編譯時展開,CPU按順序執行指令。使用宏,會增加程序的代碼量,但對不在乎程序代碼量大的應用,使用宏無疑會降低系統的功耗。
*盡量減少CPU的運算量。減少CPU的運算工作量,可以有效地降低CPU的功耗。減少CPU運算的工作可以從很多方面入手:其一,用查表的方法替代實時的計算。其二,不可避免的實時計算,算到精度夠了就結束,避免“過度”的計算。其三,盡量使用短的數據類型,例如,盡量使用字符型的8位數據替代16位的整型數據,盡量使用分數運算而避免浮點數運算等。其四,讓I/O模塊間歇運行,即不用的I/O模塊或間歇使用的UO模塊要及時關掉,以節省電能;不用的I/O引腳要設置成輸出或設置成輸入,用上拉電阻拉高。
3、單片機(MCU)在低功耗方面的優勢。
當今面臨的問題是,使用者或市場均對單片機(MCU)低功耗有嚴酷的要求,那么將如何來設計MCU來滿足市場?應該說,當今眾多廠商的MCU均有在低功耗面的優勢,值此僅以Silabs MCU為例作分析說明MCU在低功耗方面的優勢。
*供電電壓低。MCU供電電壓為2.0~5.25V。供電電壓低可以有效降低整個單片機系統的功耗。
*有多種低功耗模式。MCU的低功耗模式有Idle模式和Stop模式。為了更進一步地降低MCU的功耗,提高市場競爭力,從2006年下半年己推出的MCU都將帶有Suspend模式。這種模式下的功耗為納安級。
*有多種時鐘方案供選擇。MCU內置振蕩器有高速震蕩模式和低速震蕩模式可供選擇。每種模式下的頻率又有多種選擇。而且還可以外接振蕩器。更重要的是,在MCU運行中,這些時鐘模式可以實時切換。這很方便客戶進行低功耗控制。例如:在處理數據時,系統運行在高速狀態;空閑時運行在低速狀態。
*高速實時的中斷響應。MCU響應中斷的時間非常快,一般只需要5個系統時鐘周期。中斷響應速度快,CPU花費在等待方面的時間少,這可以節省不少的等待功耗。
*靈活的I/O設置。MCU的I/0口資源豐富,配置靈活。有三種配置方式:漏極開路、推拉輸出和弱上拉方式。用戶可以根據實際需要通過相關寄存器的設置來禁止或使能這些方式。其中將端口配置成漏極開路方式是最省電的方式。另外,MCU片上沒有用到的其他外設可以通過軟件來關閉。總之,根據項目的要求,靈活運用MCU的各種低功耗特性,通過軟件的控制,就可以很好地實現低功耗的要求。
使用每MIPS功耗來衡量MCU的低功耗性能是相對比較準確。比如執行一個需要10K條指令的任務,甲MCU的工作電流為3mA,速度為10MIPS,則甲MCU需要工作lmS完成該任務,消耗3mA*1ms*Vcc,然后甲MCU就可以進入低功耗模式了。而乙MCU的工作電流為1mA,速度為2MIPS,則乙MCU需要工作5mS完成,這樣乙MCU完成該任務的消耗為1mA*5mS*Vcc。電流大但是速度快的MCU可能更省電!
4、MCU在低功耗方面的設計方法怎樣?
一般來說,MCU的運行的速度越高,供電電壓越高,功耗也就越高。要降低單片機系統的功耗,就要降低單片機系統的供電電壓,降低MCU運行的頻率。
舉例分析說明:客戶要做一個無線計時類產品,使用電池做供電電源,要求平均功耗不超過200uA。該產品是間歇工作的:當收到數據時激活,快速處理數據;當空閑時進入休眠狀態,來降低功耗,己有不少制造商可達150μA以滿蘭客戶要求。例如,C8051F333型MCU。
*正常模式,CPU從Flash取指令。
IDD(當Vdd=3.6v F=25MHz時)為10.7mA-11.7mA;IDD (當Vdd=3.0v F=25MHz時)為7.mA-8.3mA;IDD (當Vdd=3.6v F=1MHz時)為0.38mA;IDD (當Vdd=3.0v F=80Hz時)為31μA。
*Idel模式,CPU停止工作。
IDD(當Vdd=3.6v F=25MHz時)為4.mA-5.2mA;IDD (當Vdd=3.0v F=25MHz時)為3.8mA-4.1mA;IDD (當Vdd=3.6v F=1MHz時)為0.2mA;IDD (當Vdd=3.0v F=80Hz時)為16μA。
光看上面兩個模式的數據,肯定不行。因為要滿足系統的運行速度,又要滿足低功耗≥1MHZ的頻率,則功耗都要超過客戶的要求。而正確答案是:在不降低MCU運行速度(MCU處理數據時的運行頻率是24.5MHZ)的情況下,客戶使用C8051F333成功實現了低功耗的要求:比150μA還低, 真可謂魚和熊掌兼得。
4.2它是怎樣實現的?
見圖1所示。使用了內外兩種晶振。工作時使用內部高速晶振24.5MH2,空閑時切換到外部低速晶振32.768KH2,并且進入Idle模式。并且把沒有用到的外設全部關閉,就這么簡單。由此看出,功耗是一個系統的問題,單片機系統的功耗是由MCU和其外圍電路的功耗共同決定的,低功耗是無數個細節省出來的。
5、小尺寸單片機在便攜式設備中的應用
面對如今便攜式設備提出的挑戰單片機,如何應對挑戰?而用小尺寸單片機是在一種理想的舉措應對,值此以C8051F小尺寸單片機為例,分析其在便攜式設備中的應用。為此先介紹C8151F小尺寸單片機應用特征。
5.1C8051F小尺寸單片機應用特征
概括為:小封裝,低功耗, 寬電壓工作范圍(2.7V-3.6V), 高速、高集成度與高保密性。
5.2應用
以TFT屏背光管理、閃信應用為例說明。
5.21C8051F30X在彩色TFT屏背光中的應用
隨著便攜式電子設備的普及,人們對其彩色顯示屏的要求也越來越高,LED正在被逐步應用于LCD的背光。傳統的LED背光是采用白色LED作為背光源,有以下的缺點:一般背光需要多個白色LED,但白色LED有個體差異,一致性不好,容易導致彩色顯示屏色彩不均勻,失真等現象;白色LED容易老化,使彩色顯示屏的亮度降低。產品如果有這些問題,容易給消費者留下不好的印象,消弱產品的競爭力。
那應該如何去解決這些問題?而采用C8051F30X的彩色TFT屏背光方案就很好地解決了這些問題,其功能框圖(見圖2所示)如下:
*技術特征
背光采用紅、綠、藍三色LED,發出的光組成白光。因為每種顏色的LED采用串聯連接方式,所以使用了AMS高性能的LED Driver AS3691;通過Avago的CoIor Sensor芯片HDJD-S722-QR999,檢測R、G和B三色的亮度;C8051F30X根據HOJD-S722-QR999送過來的信號,產生相應的PWM來控制R、G和B三色的亮度,使白光的效果始終在最佳狀;同時C8051F30X通過一個 接口與主CPU通訊,接收主CPU對亮度調整的控制命令。
*對MCU的要求
屏的尺寸現在都很緊湊,同時厚度很薄,對MCU的尺寸要求很高,C8051F30X尺寸只有3×3mm,厚度只有0.9mm;要求具備PWM輸出,多路輸入的ADC和通訊接口;C8051F30X支持3個PWM輸出,多路復用的AD輸入,支持UART和 通訊接口,3×3mm的封裝上可以提供8個用戶I/O口。
*方案特點
很好地解決了傳統的白光LED個體差異問題,使彩色顯示屏的色彩始終處在均勻狀態;很好地解決了白光LED老化帶來的亮度降低問題;C8051F30X、AS3691和HDJD-S722-QR999封裝小,容易和TFT顯示屏做成一個模塊;C8051F30X有Idee和Stop兩種低功耗模式,特別是Stop模式,其功耗小于0.1uA。當系統進入Stop模式時,可以使外圍電路關閉,進入省電狀態,當需要顯示時,由主控制器喚醒。
5.22 C8051F313在手機閃信和計步器中的應用
隨著手機的普及,人們對手機的功能要求也越來越高。那些具有彰顯個性的手機越來越深受人們的喜愛,特別是年輕一族的喜愛;手機功能的增多,意味著手機體積的增大和功耗的增加,這與人們對手機小巧和待機時間長的要求又成了矛盾;要解決這些矛盾,手機設計者不得不追求元器件的小型化、低功耗和高性能;MCUC8051F313在手機閃信和計步器中的應用就是一個典型例子。圖3為C8051F313在手機閃信和計步器功能應用示意框圖。
*關于計步器
計步器原理:人在行走或者跑步的加速度與時間軸大致成為一個正弦波;利用加速度,可以計算走了多少步,還可根據步幅進而估算所走的距離。
計步器功能的實現:采用MCUC8051F313和MEMS IC加速度傳感器MAX6500;C8051F313采樣MAX6500兩路加速度傳感器的輸入,分析加速度,計算出走了多少步;根據步行者的步幅,還可以估算出所走的距離。
*關于手機閃信
手機閃信原理:利用手機上的閃燈,在光線較暗的環境下,通過快速左右搖動手機,利用人類視網膜延時現象,造成視覺殘像,從而形成連續的光影信號,令受信者視覺產生連續信息。
手機閃信功能的實現:采用MCUC8051F313和MEMSIC加速度傳感器MAX6500;C8051F313接收要顯示的信息,并驅動相應的LED;MAX6500檢測加速度在X軸和Y軸的分量變化(力的大小和方向),并送給C8051F313;C8051F313分析MAX6500檢測到的加速度信號,對要顯示的字符方向實現自動翻轉。
*手機閃信和計步器對MCU的要求
體積要求苛刻:手機對MCU提出的要求極其苛刻,要在盡可能小的尺寸上提供最多的1/0口;C8051F313在5×5mm的封裝上提供了25個I/O和模擬輸入16個I/O口用來驅動16個LED;2個模擬輸入用來采樣加速度傳感器輸出;1個標準2線的控制器用來與Baseband CPU進行通訊。
嚴格的低功耗設計:在STOP模式下功耗小于1μA;良好的I/O口設計確保待機時I/O對外阻抗很高,在兆歐級以上,有效切斷I/O口待機功耗。
完善的大批量生產要求:一旦生產,編程數量將非常巨大,具有完善的量產編程方案,快速的手持編程器,無需PC參與,無需操作員熟悉編程方法,具有boot程序,在手機開機時自動加載應用程序,通過C2編程接口進行編程。又具有良好的保密功能。
評論
查看更多