許燕
(陜西國防工業職業技術學院,西安 710300)
隨著電子科學技術的發展,在人們的生產生活領域,基于單片機系統設計的電子產品被廣泛應用,同時對單片機系統的能耗功率設計提出了更高的要求,單片機低功耗設計越來越受到人們關注,單片機低功耗設計符合社會節能要求,可以大幅度提高電子產品的使用壽命,大大提高產品競爭力。由此看出,單片機的低功耗設計不但具有很好的經濟效益,而且具有較大的社會效益。
(1)CPU內核簡單為宜原則
在單片機系統設計中,CPU的選擇不能一味的追求性能。8位機就夠用,一定要遵循夠用就好的原則。隨著科技的發展,當前的單片機運行速度越來越快,但是性能的不斷提升一定會帶來能量的消耗。相對復雜的CPU集成度也一定高,由于片內晶體管多,總漏電流會加大,所以當設備處于stop狀態的時候,也會產生漏電現象,所以CPU的選擇,簡單實用就好,不但可以降低功耗而且可以降低成本。
(2)電壓系統“夠用就好”原則
降低單片機供電電壓能夠很好的降低使用功率,目前,單片機的供電電壓已經從原來的5V降至1.8V。低電壓供電可以有效的降低系統工作電流,但是由于晶體管的尺寸在不斷減小,這也是降低功耗非常不利的一方面。所以選擇低電壓系統時一定要慎重。系統中的其他電子元件在低電壓的情況下要確保正常工作。通過這種途徑可以很大程度上解決系統的低功耗問題。
(3)選擇低功耗電路原則
單片機低功耗系統的設計,要選擇在低功耗的情況下,保持高效率的電路,目前低功耗系統使用的大多是HCMOS集成電路,可以將很多集成電路共同聯結在一個封裝內。這樣可以減少總線電容,從而容納更多的信號。除此之外,降低晶振頻率也能有效的降低整機電流,但是晶振頻率降低有時會影響系統的運行速度,會受到外部電路時序、計數器測量頻率、串行通訊頻率等的限制,所以在晶振頻率值選擇時,一定要考慮到系統信息處理的工作速度。
在單片機低功耗系統設計中,要合理的運用掉電、睡眠以及中斷,進一步實現電子產品的低功耗運行,睡眠模式與掉電模式可以通過CPU與系統的關斷來達到降低功耗的目的。集中功率消耗較大的任務,降低功耗時間,采用快速進入掉電或睡眠狀態,避免系統無謂的等待。在確保系統正常運行的前提下降低采集速度、總線速度。
對于單片機本質低功耗設計主要體現在對元器件的選擇和電路設計兩個方面。元器件的選擇要遵循頻率宜慢不宜快、系統宜靜不宜動、電壓宜低不宜高的原則,實現硬件系統的節能化。關于元器件節能控制的主要方法為:控制電源電壓、時鐘控制以及靜態控制。在電路的設計過程中,要采用低功耗的喚醒電路設計,選擇集成度高的電子芯片來替代單一功能集成度低的電子芯片,在降低供電電壓的同時要加強電路的屏蔽與抗干擾能力設計。
3.1.1 選擇適當的振蕩方式
目前比較常用的振蕩器有晶體震蕩器、諧振器與RC振蕩器,3種振蕩器的喚醒時間各不相同,該設計選用晶體振蕩器,晶體振蕩器的喚醒時間在8.5 ms左右,單片機在工作的過程中,如果喚醒的時間過長,就會形成一個預工作階段,這時處理器就會消耗電能,但是程序還沒有運行,所以導致電能消耗損失。為了進一步節約能耗,在晶體振蕩器的回路中串上一個小電阻RS,如圖1所示。

圖1 晶體振蕩器電路圖
晶體的驅動功率為:P=U2/Re。其中U:芯片向晶體提供的電壓。Re:晶體的等效電阻。當振蕩器回路中串入一個電阻之后,可以加到晶體的等效電阻。這樣一來,可以有效的降低晶體的功率消耗,而且可以穩定晶體的振蕩頻率,延長晶體的使用壽命。
3.1.2 處理I/O管腳
在單片機低功耗系統的設計中,I/O管腳的處理尤為重要。設置為輸出的管腳可以驅動20-25 mA的電流,所以要對每一個輸出管腳進行優化,為了達到節能的效果,可以禁止內部上拉,使外部較大的電阻做上位,這種做法可以做到在休眠狀態下節約能量,在受干擾的環境下,會由于內部鎖存器的頻繁翻轉,而增加電流的消耗。所以,沒有用的管腳,都可以設置為輸出,不能只是簡單的不接,一旦外界出現干擾信號就極易成為反復振蕩的輸入信號,造成不必要的功耗。
3.1.3 選擇合適的MCU以及待機模式
低功耗的MCU對于降低單片機的功耗具有十分重要的作用,一定要根據單片機系統被應用的具體場合,從多種待機工作模式中選取最恰當的模式,最大可能的使MCU處于低功耗狀態。MCU的工作頻率不同時,工作耗電的差異也會很大,另外,低電壓供電可以使系統的供電電流大大下降,降低單片機的供電電壓可以有效降低功耗。所以選擇合適的MCU以及系統電壓,對于降低功耗具有積極意義。
3.2.1 采取“中斷”方式降低功耗
系統在運行的過程中,程序的中斷方式不同,對于應用系統功耗的大小有很大區別,在“中斷”的形式下,系統處理器可以處于空閑狀態,而如果在查詢的形式下,CPU對于I/O寄存器就會不停的訪問,產生額外的功耗。
3.2.2 間歇式運行I/O模塊
I/O模塊在間歇式運行時一定要注意關閉電源,目前單片機應用系統所采用的驅動一般功率較大,所以要通過一個I/O引腳來進行掌控,當系統無需通信時,及時的關閉驅動。對于簡單封裝或沒有引出的單片機,要注意I/O引腳的初始化。
3.2.3 降低CPU的運算量
在實際操作中,關于減少CPU的運算量的方法有很多,可以將運行算好的結果提前植入到Flash當中,在使用時可以通過查詢的方式來替代運算,從而減少CPU運算量。許多單片機已經具備快速尋址方式與查表指令,對一些難以避免的計算非常有效。增加分數運算或減少浮點數運算的使用,盡可能使用一些短的數據類型。
3.2.4 選擇低功耗模式系統
低功耗模式主要指系統的等待或停止模式。這種模式下單片機的功率會遠小于運行時功率,在等待模式下,CPU會停止工作,但是單片機的外圍I/O模塊不會停止工作,系統的功耗降低也有限,如圖2所示。

圖2 HCS08單片機系統功能
以Freescale的HCS08單片機為例,給出不同運行模式下的系統功耗。HCS08是8位單片機,有多個系列,各系列I/O模塊數目有所不同,但低功耗模式下的電流消耗大致相同。
因此在讓系統進入深度停止狀態前,要將重要系統參數保存在非易失性存儲器中,如EEPROM中。深度停止模式關掉了所有的I/O,可能的喚醒方式也很有限,一般只能是復位或IRQ中斷等。保留的I/O模塊越多,系統允許的喚醒中斷源也就越多。單片機的功耗將根據保留喚醒方式的不同,降至1 μA至幾十μA之間。
低功耗系統產品的設計,是一項綜合規劃的內容,需要
涉及的內容有很多,單片機低功耗硬件系統設計,如圖3所示。

圖3 低功耗系統硬件設計
單片機的系統時鐘采用外接R1、C1阻容振蕩方式,不但能夠節約成本,也可以減少喚醒單片機的能耗。日期、小時、分鐘、秒等均采用定時器來完成,TMR1即便在單片機處于睡眠的狀態下,也能精確計時,喚醒單片機。適應晶體XTL采用32 768 HZ的低頻晶體,在晶體回路中加入電阻R5,進一步降低功耗。
系統芯片運用5 V電源供電,掉電情況下采用2.4 V鋰電池,R6為限流電阻。單片機能夠通過該電阻對電池充電。在外部電源掉電時,電池BT1可以經電阻R6和I/O口輸入端對二極管向單片機供電進行保護。DI主要防止電池BT1向其他芯片放電。掉電時間較短的情況下,可以用膽電容來替代電池。
輸入口I1、I2、I3都接有上位電阻,上位電阻接到輸出端口上。輸出口O2接有二極管D2,二極管主要防止掉電后消耗較多電能。當O2口輸出低電平時,二極管導通,三極管被截止。當輸出高電平時,二極管截止,電源通過R7向三極管提供偏流,三極管飽和之后,繼電器線圈通電,常開融點閉合。
在當今社會的發展中,低功耗的單片機應用已經成為單片機系統設計的主要發展方向,加強與推廣單片機低功耗設計的研究具有重要的現實意義。在以后的研究與設計中,通過對硬件系統及軟件系統的設計與創新,單片機應用系統在不遠的將來將會創造出更大的經濟效益與社會效益。