基于MSP430的極低功耗系統(tǒng)設(shè)計
摘要:MSP430是TI公司出品的一款強大的16位單片機,其顯著特點是具有極低的功耗。本文對構(gòu)造以MSP430為基礎(chǔ)極低功耗系統(tǒng)作為有益的探討,對于設(shè)計各種便攜式設(shè)備都具有較高的參考價值。
關(guān)鍵詞:極低功耗系統(tǒng) MSP430 低功耗管理
1 影響系統(tǒng)功耗的主要因素
對于一個數(shù)字系統(tǒng)而言,其功耗大致滿足以下公式:P=CV2f,其中C為系統(tǒng)的負載電容,V為電源電壓,f為系統(tǒng)工作頻率。由此可見,功耗與電源電壓的平方成正比,因此電源電壓對系統(tǒng)的功耗影響最大,其次是工作頻率,再就是負載電容。負載電容對設(shè)計人員而言,一般是不可控的,因此設(shè)計一個低功耗系統(tǒng),應(yīng)該考慮到不影響系統(tǒng)性能前提下,盡可能地降低電源的電壓和使用低頻率的時鐘。下面對TI公司新出MSP430來具體探討這個問題。
2 基于MSP430極低功耗系統(tǒng)的設(shè)計
MSP430具有工業(yè)級16位RISC,其I/O和CPU可以運行在不的時鐘下。CPU功耗可以通過開關(guān)狀態(tài)寄存器的控制位來控制:正常運行時電流160μA,備用時為0.1μA,功耗低, 為設(shè)計低功耗系統(tǒng)提供了有利的條件。
圖1是我們設(shè)計的以MSP430為CPU的“精密溫度測試儀”(下面簡稱測試儀)。該產(chǎn)品使用電池供電,體積小巧,攜帶方便。
(1)電源電壓
在使用時應(yīng)該盡可能地選擇最低的電源電壓。對于MSP430而言,可用的最低電壓是很低的,最低可達1.8V。我們使用TI公司推薦使用的3V。通常的電源只提供5V電壓,因此,需要將5V電壓由一個3V的穩(wěn)壓管降壓后給CPU供電,也可以直接鋰電池供電。3V不是標準的TTL電平,因此,在使用時需要用接口電路使CPU的非TTL標準電平能與TTL標準電平的器件連接。這些接口電路應(yīng)該也是低功耗的,否則會造成一方面使用低電壓降低了功耗,另一個方面使用額外的接口電路又增加了系統(tǒng)的功耗?;蛘咧苯邮褂弥С?V電壓的外圍芯片。
(2)時鐘頻率
從低功耗的角度看,需要較低的頻率,但是在實時應(yīng)用中為了快速響應(yīng)外部事件又需要有比較快的系統(tǒng)時鐘。這就需要系統(tǒng)具有兩個高低不同的頻率,在需要的時候可以在兩個頻率之間進行切換。為了保證切換迅速/時間延遲少,又要求低Q值振蕩器,同時切換時往往造成時鐘頻率的不穩(wěn)定,這對于要求頻率穩(wěn)定的系統(tǒng),如實時時鐘RTC而言又是不適合的。設(shè)計一個完全達到以上要求的時鐘系統(tǒng)是很困難的,MSP430采用了一種折衷辦法,即在CPU外使用一個較低的頻率為32 768Hz的鐘表晶體振蕩器生成輔助時鐘ACLK,能夠保證一些低頻率應(yīng)用場合的要求,對于一些低頻工作的外設(shè)而言可以直接作為信號源或時鐘,而無需增加額外的分頻電路;同時,在CPU內(nèi)部使用結(jié)合數(shù)字控制振蕩器DCO的FLL技術(shù),將ACLK倍頻升高,作為系統(tǒng)的主時鐘MCLK。它使得指令能夠在較低晶振下獲得高時鐘時的運行速度,能夠滿足高速實時的要求。低、高頻之間的切換只需6μs。對于149型號的芯片而言,更具有第三個頻率SMCLK可供外設(shè)使用,它可外接二個晶振,當設(shè)置DCOR=0時SMCLK使用DCOCLK,當DCOR=1時SMCLK使用第二個外晶振X2。X2的頻率一般比X1要高,這樣便又可以滿足高速外設(shè)的要求。
(3)低功耗軟件控制
MSP430的工作模式通過模塊的智能化運行管理和CPU的狀態(tài)組合以先進的方式支持超低功耗的各種要求。CPU內(nèi)狀態(tài)寄存器SR中的SCG1、SCG2、OscOff與功耗有關(guān).可由軟件組合成6種工作模式.
?、倩顒幽J健粒?/P>
正常的工作模式,這時CPU消耗的電能最大.
?、诘凸哪J剑啊蹋校停?/P>
CPUOff置位,CPU停止活動,但外圍模塊繼續(xù)工作,ACLK和MCLK信號保持活動,MCLK的鎖頻壞控制正常工作.有關(guān)控制位設(shè)置為:SCG1=0,SCG0=0,S
CG0=0,OscOff=0,CPUOff=1。
?、鄣凸哪J剑薄蹋校停?/P>
CPUOff置位,CPU停止活動,但外圍模塊繼續(xù)工作,MCLK的鎖頻環(huán)控制停止工作,ACLK與MCLK保持活動,有關(guān)控制位設(shè)置為:SCG1=0,SCG0=1,OscOff=0,CPUOff=1。
④低功耗模式2——LPM2
?。茫校眨蟜f置位,CPU停止活動,但外圍模塊繼續(xù)工作,MCLK的鎖頻環(huán)控制停止,ACLK活動,MCLK停止,有關(guān)控制位設(shè)置為:SCG1=1,SCG0=0,OscOff=0,CPUOff=1。
?、莸凸哪J剑场蹋停校?/P>
?。茫校眨蟜f置位,CPU停止活動,但外圍模塊繼續(xù)工作,MCLK的鎖頻環(huán)控制和MCLK停止工作,DCO的DC發(fā)生器關(guān)閉,但ACLK信號仍保持活動,有關(guān)控制位設(shè)置為:SCG1=1,SCG0=1,OscOff=0,CPUOff=1。
⑥低功耗模式4——LPM4
?。茫校眨蟜f置位,CPU停止活動,但外圍模塊繼續(xù)工作,MCLK的鎖頻環(huán)控制和MCLK停止工作,晶振停止,有關(guān)控制位設(shè)置為:SCG1=X,SCG0=X,OscOff=1,CPUOff=1。
不同工作模式對應(yīng)的典型電源消耗如圖2所示。
這些模式可以完成對晶振的關(guān)閉,FLL關(guān)閉,還能實現(xiàn)對外設(shè)功耗的控制,從而進一步降低系統(tǒng)的功耗。
為了充分利用CPU的低功耗功能,可以讓CPU工作于突發(fā)狀態(tài)。在通常情況下,根據(jù)需要使用軟件將CPU設(shè)定到某一種低功耗工作模式下,在需要時使用中斷將CPU從休眠狀態(tài)中喚醒,完成工作之后又進入休眠狀態(tài)。
MSP430的可編程中斷結(jié)構(gòu)可以組成靈活的片上和外部中斷體系,以適應(yīng)實時中斷驅(qū)動系統(tǒng)的需要。中斷可由處理機的運行狀態(tài)來啟動,如看門狗溢出、外部模塊發(fā)生的事件等。每個中斷源泉可以用中斷允許位單獨關(guān)閉,而狀態(tài)寄存器中的通用中斷允許位GIE可以禁止全部中斷。
當中斷請求發(fā)生并且相應(yīng)的中斷允許位和通用中斷允許位(GIE)置位時,中斷服務(wù)程序按下順序激活:
如果CPU處于活動狀態(tài)則完成當前執(zhí)行指令。如果處于省電狀態(tài),則終止低功耗模式→將指向下一條指令的PC值壓堆棧→將SR壓入堆?!绻趫?zhí)行上條指令時已有多個中斷請求發(fā)生,則選擇最高優(yōu)先級者→在單一中斷源標志中的中斷請求標志位自動復(fù)位,多中斷源標志仍保持置位以等待軟件服務(wù)→通用中斷允許位GIE復(fù)位,CPUOff位/OscOff位和SCG1位復(fù)位,SCG0不改變,FLL環(huán)路控制保持原有工作狀態(tài),狀態(tài)位VNZ和C復(fù)位→將相應(yīng)的中斷向量值裝入PC,程序從該地址繼續(xù)執(zhí)行中斷處理,中斷響應(yīng)從接受中斷請求開始到執(zhí)行相應(yīng)的中斷服務(wù)程序的首條指令,持續(xù)6個周期,中斷處理結(jié)束的最后指令為RETI→將SR從堆棧中彈出,被中斷的程序回到與中斷前完全相同的狀態(tài)→將PC機堆棧中彈出。因此它的中斷系統(tǒng)也配合極低功耗的要求,一個中斷事件可將系統(tǒng)從各種工作模式中喚醒,而RETI指令又使運行返回到事件發(fā)生前的工作模式,不需額外的指令。測試儀的主要工作就是測量并顯示溫度。系統(tǒng)啟動后首先進入低功耗的休眠模式,因為溫度的測試可以間隔一段時間測量一次,設(shè)定一個觸發(fā)周期,當周期的觸發(fā)脈沖到來時,CPU退出休眠,測量溫度并顯示,檢測完之后又自動回到休眠狀態(tài)。
(4)外設(shè)
MSP430系列微控制器的運行主要受控于存儲在特殊寄存器(SFR)中的信息,不同SFR中的位可以根據(jù)需要允許中斷或用來定義外圍模塊的工作模式,能夠作到部分或全部禁止外圍模塊的功能,被禁止的外圍模塊將停止它的功能以減少電源消耗。
例如,Basic Timer1可以根據(jù)需要對輸入時鐘源選擇MCLK、ACLK或ACLK/256之一,同時控制位包含HOLD,當HOLD=1時,可以禁止模塊的所有功能,并把功耗降低到最低只有漏電流。
串口是系統(tǒng)與外圍聯(lián)系的重要手段,可以利用MSP430對幀的敏感作為啟動條件。通常情況下都應(yīng)該從低功耗模式中被啟動,這就需要用到UART的中斷接收方式,有關(guān)代碼如下:
IFG2 .EQU 3 ;URXIFG和UTXIFG標志地址
UTCTL .EQU 71h ;USART控制寄存器
UTXIFG .EQU 0
URXSE .EQU 8
……
URX_INT BIT.B #URXIFG,&IFG2 ;檢查URXIFG信號以確定幀開始
JNE ST_COND
……
ST_COND BIC.B #URXSE,&UTCTL;清除URXS觸發(fā)器信號,消除中斷請求
BIS.B #URXSE,&UTCTL;準備用URXS觸發(fā)器檢查下一幀開始條件
當有多臺機進行通信時,還應(yīng)該充分利用線路空閑多處理機模式。使用此模式可以使處于多機通信的CPU在接收數(shù)據(jù)之前首先判斷地址,如果地址與自己軟件中設(shè)定的一款,則CPU被激活接收下面的數(shù)據(jù);如果不一致,則保持休眠狀態(tài)。這樣可以最大限度地降低UART所消耗的功率。
低功耗系統(tǒng)必須采用LCD,MSP430有些型號中已經(jīng)為我們集成了LCD驅(qū)動器,在使用時只有需要顯示時才打開LCD模塊,休眠狀態(tài)下控制LCD的控制方式與模式寄存器中的LCDM0=0,可以關(guān)閉LCD。LCDM1=1,高電壓驅(qū)動;LCDM1=0,LCDM1=1,驅(qū)動低電壓。盡可能選擇低電壓驅(qū)動。通過以上處理,LCD的功耗可以達到最少。
MSP430的A/D也具有微功耗的模式。當轉(zhuǎn)換結(jié)束時(EOC),中斷標志會自動設(shè)置進入中斷例程,通知處理機一次轉(zhuǎn)換已經(jīng)完成。這時CPU關(guān)閉A/D時鐘,A/D通道停止工作,直到下一次SOC位置位才開啟,因此,模/數(shù)的開啟是可以由CPU通過控制ACTL寄存器主動進行的。“測試儀”需要測量傳感器送來的電壓,使用A/D進行模/數(shù)轉(zhuǎn)換,可以通過鍵盤輸入或周期性觸發(fā)脈沖選擇開啟A/D轉(zhuǎn)換,完成后又自動關(guān)閉,以節(jié)省電流消耗。
此外在設(shè)計外設(shè)時還有一些常規(guī)原則:將不用的FETI輸入端連接到VSS;JTAG端口TMS、TCK和TDI不要連接到VSS;CMOS輸入端不能有浮空的節(jié)點,將所有輸入端接適當?shù)碾娖剑徊徽搶τ趦?nèi)核還是對于各外圍模塊,選擇盡可能低的運行頻率,如果不影響功能應(yīng)設(shè)計自動關(guān)機。
3 總結(jié)
綜上所述,MSP430以其卓越的性能和極低功耗的特點,使我們有很大的余地可以設(shè)計出高性能的微功耗系統(tǒng)。實踐證明:使用MSP430為核心構(gòu)成的便攜式系統(tǒng),其電池的使用壽命可以比基于一般CPU的系統(tǒng)延長3~5倍。可以預(yù)見,在不久的將來基于MSP430的微功耗便攜式系統(tǒng)將越來越多,這也正是我們討論的意義所在。
晶振相關(guān)文章:晶振原理 網(wǎng)線測試儀相關(guān)文章:網(wǎng)線測試儀原理
評論