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