珠海天威技術開發有限公司 林東寧 張 強
微控制器的嵌入式低功耗應用
珠海天威技術開發有限公司 林東寧 張 強
微控制器Micro Controller Unit(簡寫MCU),也叫單片機,在現場實時數據采集及自動控制系統中發揮重要的作用,提高了相關行業的生產效率。在工業4.0的發展趨勢下,嵌入式系統的低功耗設計要求越來越高,需要在系統設計過程中,注重微控制器的有效使用,降低嵌入式系統能耗的同時擴大其實際的服務范圍,優化系統的服務功能。本文將對微控制器的嵌入式低功耗應用進行必要地探討。
微控制器;嵌入式系統;低功耗;單片機;服務功能
隨著嵌入式系統應用范圍的不斷擴大,其中電池供電的穩定性及有效性越來越受到重視,需要技術人員能夠結合專業技術手段及相關器件性能的同時,加強嵌入式系統低功耗的優化設計,延長系統運行中電池的使用壽命,降低系統的運行成本,為應用范圍的擴大打下堅實的基礎。實現這樣的發展目標,需要注重微控制器的合理運用,結合單片機的功能特性,實現嵌入式系統低功耗設計,促使微控制器作用的充分發揮。
嵌入式系統低功耗設計的要求,首先要對微控制器的體系結構進行必要地優化,確保微控制器在實際的應用中能夠達到預期的低功耗效果。構建這種微控制器的要點主要包括:(1)構建完善的指令體系,優化嵌入式系統的硬件設計及軟件設計,包含的運算指令可以在嵌入式系統運行中實現對存儲器的直接訪問,保持代碼密度的良好性;(2)嵌入式低功耗微控制器中為了保持高效的解碼效率及控制電路工作的良好性,應確保指令體系中所有指令的有效性、規整性和兼容性,實現系統的低功耗設計,充分發揮微控制器的實際作用;(3)注重數據空間獨立編址、哈佛結構的合理運用,簡化微控制器作用下控制電路結構,將整體的電路規??刂圃诤侠淼姆秶鷥?,不斷提高相關數據的吞吐量。
(一)硬件設計中選擇較為簡單的CPU內核
微控制器在嵌入式系統低功耗應用中實際作用的充分發揮,需要保證CPU內核使用過程中的良好性,保證系統資源充足性的同時提高系統的運行效率。現階段以單片機為核心的嵌入式系統服務范圍不斷擴大,其中的功耗問題也越來越突出。因此,嵌入式系統低功耗目標的實現,需要在硬件設計中盡量選擇較為簡單的CPU內核:8位機夠用的,就不必要選擇16位甚至32位的微控制器。一個集成度高、功能強的CPU,由于片內MOS管多,總漏電電流大,即使進入休眠模式,漏電流仍不可忽略。而簡單內核的CPU不僅功耗低,成本也低,將系統運行中的能耗控制在合理的范圍內,保持系統構建成本的經濟性。
(二)注重低壓供電系統及存儲器能耗控制
嵌入式系統運行中,采取必要的技術措施降低單片機能耗及存儲器能耗,有利于優化系統的服務功能,增強微控制器的實際應用效果。實現這樣的發展目標,需要從這些方面入手:(1)隨著半導體光刻技術的發展,微控制器的工藝已經由0.5um逐步降低到0.35um、0.18um甚至90nm,工作電壓由5V降到3.3V,當前1.8V的也非常普遍。低電壓供電系統,能有效降低功耗;(2)注重低電壓單片機的有效選擇,實現嵌入式系統低功耗設計目標,提高系統運行中電能的利用效率;(3)結合類似于門控技術的分頁訪問及塊尋址技術,選擇可靠的微控制器,確保嵌入式系統中的存儲器能耗可以控制在一定的范圍內,降低系統運行中的能源消耗率。
(三)選擇有效的休眠模式及帶低功耗模式
不同的休眠模式與微控制單元的工作狀態密切相關,進而會影響嵌入式系統運行的能耗。因此,需要選擇合理的休眠模式,促使嵌入式系統的能耗可以控制在合理的范圍內。要達到這樣的設計需求,應加強主時鐘切換及同步電路選擇,確保系統系統運行中可以實現對低時鐘頻率的有效選擇,保持嵌入式系統正常工作的同時充分發揮微控制器的實際作用,降低系統能耗。例如,Microchip的納瓦XLP技術,可以讓微處理器分別工作在“運行”、“打盹”、“空閑”、“休眠”和“深度休眠”模式,其中“深度休眠”模式功耗低于50nA。同時應減少I/O模塊數量,將系統允許的喚醒方式控制在一定的范圍內,促使這些喚醒方式作用下的系統能耗能夠保持在使用最少的工作模式中。
(四)選擇最佳的時鐘方案,加強時鐘網絡的綜合管理
結合嵌入式系統的組成結構,可知時鐘的有效選擇與系統能耗有著較強的關聯性。因此,為了實現嵌入式低功耗微控制器的合理運用,需要從這些方面入手:(1)選擇頻率較低的系統總線,結合單片機工作過程的總電流能耗組成部分,將其中的運行電流及漏電流控制在合理的范圍內,促使開關電流作用下的電流損耗可以達到最少,降低嵌入式系統能耗;(2)選擇可靠的時鐘方案。時鐘方案選擇的過程中應重點考慮鎖相環、外部晶振、內部晶振的使用狀況。例如,TI的MSP430系列單片機的時鐘模塊主要包括四個振蕩源,分別是:(a)LFXT1CLK:外部低頻時鐘源,通常接一個32.768KHz的低頻時鐘晶體(b)XT2CLK:外部高頻時鐘源,通常接400K~16M晶振;(c)DCOCLK:片內可數字控制的振蕩器DCOCLK,在軟件的調節下該時鐘的輸出范圍為0.6MHz到26MHz。(d)VLOCLK:片內超低功耗12KHz的內部振蕩器。以上振蕩源可根據應用需求,接入三個時鐘系統:主時鐘MCLK 、輔助時鐘ACLK、子系統時鐘SMCLK。通過時鐘網絡的綜合管理,實現嵌入式系統的低功耗目標。
(五)注重程序的優化和合理編寫
(1)使用“中斷”功能代替查詢,能有效減少CPU的運行,甚至可進入休眠模式等待中斷觸發。(2)使用“宏”代替子程序,雖然一定程度增加了程序空間代碼量,但能免去子程序調用時對堆棧的壓入與彈出,有效降低功耗。(3)利用“查表”代替運算,降低CPU的運算工作量,不但能加快處理速度,同時可以節省電流消耗;(4)注重I/O模塊間歇方式的合理運用,促使驅動程序運行過程中可以利用I/O程序的控制作用,不使用的I/O要關閉或上拉,降低系統功耗。
微控制器常用的外接RC振蕩電路,由于電阻值R1和電容值C1是固定的,充放電時間也就固定,工作頻率不能調整,也就無法切換工作時的功耗狀態。專利200620060165.9 提供了一種巧妙的設計方案(圖1)。通過增加晶體管Q1和R2,與R1組成電阻的并聯電路,穩壓二極管D1和 R3控制Q1的基極。當外部電源供電緩慢上升時或變低時,即供電電壓低于穩壓二極管D1的擊穿電壓和晶體管Q1的基極與發射極的電壓之和時,穩壓二極管D1工作在反向狀態,晶體管Q1工作在截止狀態,此時,僅振蕩電阻R1、振蕩電容C1與MCU2的內部振蕩電路一起產生工作頻率,阻值較大產生的工作頻率較小,使MCU自動切換到低速低功耗狀態;當外部電源上升到較高電壓時,高于穩壓二極管D1的擊穿電壓和晶體管Q1的基極與發射極的電壓之和時,穩壓二極管D1反向擊穿,晶體管Q1工作在導通狀態,此時,振蕩電阻R1、振蕩電阻R2、振蕩電容Cl與MCU2的內部振蕩電路一起產生工作頻率,由于振蕩電阻R1與振蕩電阻R2并聯阻值較小,從而使得產生的工作頻率較高,并且使MCU自動切換到高速高功耗狀態。
利用晶體管Q1、限流電阻R3、穩壓二極管D1等構件的作用,實現對振蕩電路作用下工作頻率的變化:當系統供電電壓高時,穩壓二極管被反向擊穿,晶體管導通,振蕩電路產生的工作頻率提高,MCU切換到高速工作狀態;當系統供電電壓變低時,晶體管截止,頻率變低,將MCU切換到低功耗狀態,加強了對功耗的有效控制。