??? 摘??要: 設(shè)計(jì)了手持式檢波器" title="檢波器">檢波器測(cè)試儀,選取超低功耗" title="低功耗">低功耗的16位單片機(jī)MSP430系列為主控MCU,模擬部分硬件采用最新設(shè)計(jì)思路的低壓供電,軟件采用低功耗的智能處理策略,以實(shí)現(xiàn)超長(zhǎng)待機(jī)。?
??? 關(guān)鍵詞: 檢波器測(cè)試; MSP430; 超低功耗" title="超低功耗">超低功耗?
?
1 手持式檢波器測(cè)試儀的組成及功能
??? 本系統(tǒng)主控單片機(jī)為MSP430F149,結(jié)合外圍模塊實(shí)現(xiàn)檢波器測(cè)試的功能。主要的外圍模塊包括:鍵盤輸入模塊、激勵(lì)采集模塊、顯示模塊、外存儲(chǔ)器模塊、串口通信模塊、JTAG程序?qū)懩K和電源模塊等,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。??
?
?
??? 為了節(jié)省平面空間,鍵盤模塊和主板分離設(shè)計(jì),分層處理;激勵(lì)采集模塊所用芯片有單極性放大器LM124、74LS164、DA7524等;顯示模塊選取128×64液晶顯示器;外存儲(chǔ)器模塊選取AT45DB041B和AT24C512;串口通信模塊選取MAX232;預(yù)留JTAG編程口;電源設(shè)計(jì)成電池和變壓器直流電源兩種供電方式,使用方便。??
2 超低功耗的硬件實(shí)現(xiàn)途徑
??? 為了實(shí)現(xiàn)低功耗,在硬件設(shè)計(jì)上有以下幾點(diǎn)措施:選擇低功耗的單片機(jī);設(shè)計(jì)多種系統(tǒng)時(shí)鐘;使用盡量低的供電系統(tǒng)模塊;電路設(shè)計(jì)的數(shù)字部分使用低功耗的外圍芯片;電路設(shè)計(jì)的模擬部分盡量單極性供電??傊?從硬件實(shí)現(xiàn)低功耗要全局考慮,不要放過(guò)任何一個(gè)“耗電大戶”。??
2.1 選擇低功耗的MCU??
??? 本系統(tǒng)MCU選取美國(guó)德州儀器公司(TI)的MSP430F149,?該芯片具有如下特點(diǎn):1.8V~3.6V低電壓供電;具有高效16位精簡(jiǎn)指令結(jié)構(gòu),MSP430F149可以確保任務(wù)的快速執(zhí)行,大多數(shù)指令可以在一個(gè)時(shí)鐘周期內(nèi)完成,縮短了工作時(shí)間;6μs的快速啟動(dòng)時(shí)間可以延長(zhǎng)待機(jī)時(shí)間并使啟動(dòng)更加迅速,降低了電池的功耗;片內(nèi)資源極其豐富,包含時(shí)鐘模塊、端口、定時(shí)器系列、比較器、串行通信模塊、模數(shù)轉(zhuǎn)換部件、12位快速數(shù)模轉(zhuǎn)換部件、DMA控制器、硬件乘法器、60KB Flash存儲(chǔ)模塊、2KB RAM。與其他微控制器相比,帶 Flash的微控制器可以將功耗降低為原來(lái)的1/5,既縮小了線路板空間又降低了系統(tǒng)成本。在設(shè)計(jì)中可采用多種省電模式,進(jìn)一步降低功耗,應(yīng)用一節(jié)普通電池可工作10年左右[1]。??
2.2 選擇低功耗的外圍芯片??
??? 對(duì)于其他芯片的選取也以低功耗為原則,盡量選取工作電壓為3.3V的芯片,如外存儲(chǔ)器選取AT45DB041B、AT24C512及MC1413等。采集電路采用單極供電的集成放大器LM124,這將大大降低儀表的功耗。顯示器選擇帶中文字庫(kù)的128×64低功耗LCD,電源電壓為3V,內(nèi)置8 192個(gè)16×16點(diǎn)陣漢字和128個(gè)16×8點(diǎn)陣ASCII字符集,含有點(diǎn)陣圖形液晶顯示模塊,可用查表方式查詢顯示,速度快、功耗低。??
2.3 選擇合適的時(shí)鐘方案??
??? MSP430應(yīng)用系統(tǒng)電流消耗會(huì)影響CPU與外圍模塊對(duì)時(shí)鐘的要求,所以系統(tǒng)使用不同的時(shí)鐘信號(hào):ACLK、MCLK和SMCLK。這三種不同頻率的時(shí)鐘輸出給不同的模塊,從而可更合理地利用系統(tǒng)的電源,實(shí)現(xiàn)整個(gè)系統(tǒng)的超低功耗。??
??? MSP430可以選擇的振蕩器有:內(nèi)部時(shí)鐘發(fā)生器(DCO);外接晶體或陶瓷諧振器(LFXT1);外部時(shí)鐘信號(hào)源(XT2)。其中,將LFXT1作為ACLK,用于速度較低的UART等外圍模塊,以達(dá)到降低功耗的目的;將XT2作為MCLK信號(hào),并作為系統(tǒng)的主時(shí)鐘,同時(shí)在程序的運(yùn)行中,盡可能讓程序保持在休眠狀態(tài);將DCO作為SMCLK時(shí)鐘信號(hào),用于那些使用頻繁、對(duì)頻率精度要求又不太高的外圍模塊的時(shí)鐘信號(hào)[2]。??
2.4 改進(jìn)傳統(tǒng)的數(shù)據(jù)采集模塊的電路
??? 檢波器采集信號(hào)如圖2所示。由于采集的數(shù)據(jù)為如圖2(a)所示的正弦衰減波,其中D/A和A/D轉(zhuǎn)換需要放大電路,通常放大電路中采用雙極性供電,但考慮雙極性供電功耗太大,所以這里采用單極性供電,通過(guò)提升采集電壓的方法獲得正弦波,如圖2(b)所示。這里采用電壓提升法采集數(shù)據(jù)是可行的,因?yàn)殡m然激勵(lì)電壓能達(dá)到5V,但經(jīng)過(guò)檢波器后變成1.5V以下的雙極性電壓,如果讓MSP430進(jìn)行處理,必須經(jīng)過(guò)提升電路進(jìn)行轉(zhuǎn)換。??
?
?
??? 采用單極性供電和提升電路法后,就可以選擇單極性供電放大器LM124作為采集模塊的放大器。LM124有4對(duì)放大器正好可滿足檢波器測(cè)試的要求,如圖3所示。??
?
?
??? 根據(jù)加法電路可知:Uo=(1+Rf/R1)[(R22//R23)/(R22//R23+R21)U1.5+(R21//R23)/(R21//R23+R22)UR]=1.5+UR。當(dāng)UR在±1.5V之間變化時(shí),UO總為正值,這樣MSP430處理器就可處理采集信號(hào)了。??
??? 對(duì)D/A轉(zhuǎn)換后輸出激勵(lì)電壓可采用價(jià)格低廉的MAX7524,同樣采用單極性供電,工作于低功耗模式。MAX7524工作于“后向”電壓(低電壓)輸出模式的電路如圖4所示。??
?
?
??? 此電路中,D/A轉(zhuǎn)換電壓的范圍可用公式表示為:VOUT=0V~VOUT=2.5V(255/256)(1+R2/R3)≈5V。??
3 軟件實(shí)現(xiàn)策略??
3.1 超低功耗的時(shí)鐘調(diào)度策略??
??? MSP430工作模式通過(guò)模塊的智能化運(yùn)行管理和CPU的狀態(tài)組合以先進(jìn)方式支持超低功耗各種要求。為了充分利用CPU低功耗性能,可以讓CPU工作于突發(fā)狀態(tài)。在通常情況下,根據(jù)需要使用軟件將CPU設(shè)定到某一種低功耗工作模式下,在需要時(shí)使用中斷將CPU從休眠狀態(tài)中喚醒,完成工作之后又可以進(jìn)入相應(yīng)的休眠狀態(tài)。當(dāng)MSP430工作于LPM3時(shí),可以通過(guò)中斷事件轉(zhuǎn)換到活動(dòng)模式,根據(jù)運(yùn)行需要,又可以從活動(dòng)模式進(jìn)入相應(yīng)的低功耗方式:LPM0?LPM3?LPM4。超低功耗事件驅(qū)動(dòng)工作模式如圖5所示。??
?
?
??? 例如,在LPM3模式下,通過(guò)設(shè)置軟件控制位SCG1=1,SCG0=1,OscOff=0,CPUOff=1,可使得:CPU處于禁止?fàn)顟B(tài)、DCO被禁止、直流發(fā)生器被禁止、MCLK被禁止、SMCLK被禁止,只有ACLK活動(dòng),系統(tǒng)處于睡眠狀態(tài),這時(shí)供電電流只有0.7~0.9μA(活動(dòng)模式時(shí)為200~300μA)。??
3.2 超低功耗的程序設(shè)計(jì)策略??
??? (1)盡量用“中斷”代替“查詢”,因?yàn)镃PU在中斷之前可以什么都不做,進(jìn)入等待或停止模式;而在查詢方式下,CPU必須不停地訪問(wèn)I/O" title="I/O">I/O寄存器,這會(huì)帶來(lái)額外的功耗。??
??? (2)用“宏”代替“子程序" title="子程序">子程序”。讀RAM會(huì)比讀Flash帶來(lái)更大的功耗,所以軟件設(shè)計(jì)上盡量減少對(duì)子程序調(diào)用。因?yàn)镃PU進(jìn)入子程序時(shí),會(huì)首先將當(dāng)前CPU寄存器入棧(RAM),在離開時(shí),又將CPU寄存器彈出堆棧,所以至少有兩次對(duì)RAM的操作。這時(shí)可以用宏定義來(lái)代替子程序調(diào)用。宏定義在編譯時(shí)展開,CPU只是順序執(zhí)行指令,避免了調(diào)用子程序。所以只要程序Flash夠大,就用宏代替子程序。??
??? (3)盡量減少CPU的運(yùn)算量。大量的計(jì)算可使CPU耗能增加,所以盡量用查表指令來(lái)代替計(jì)算,減少運(yùn)算量。在精度允許的情況下,盡量使用短的數(shù)據(jù)類型,如用8位字符型數(shù)據(jù)替代16位整型數(shù)據(jù),盡量使用分?jǐn)?shù)運(yùn)算而避免用浮點(diǎn)運(yùn)算等。??
??? (4)讓I/O模塊間歇運(yùn)行。不用的I/O模塊或間歇使用的I/O模塊要及時(shí)關(guān)掉,RS-232驅(qū)動(dòng)需要相當(dāng)?shù)墓?可以用一個(gè)I/O控制將其關(guān)掉。不用的I/O可設(shè)置成輸入或輸出并用上拉電阻拉高,如果沒(méi)有初始化,會(huì)增大單片機(jī)的漏電流等。?
??? 總之,軟件實(shí)現(xiàn)低功耗要注意各個(gè)編程細(xì)節(jié),綜合以上兩大部分,設(shè)計(jì)出軟件的主程序流程圖如圖6所示。??
?
?
4 實(shí)際測(cè)試試驗(yàn)與分析??
4.1 測(cè)量應(yīng)用試驗(yàn)
??? 測(cè)試對(duì)象檢波器類型為sn4-10(1×1單只),生產(chǎn)廠家為西儀廠,理論值為: 所用直流激勵(lì)電壓1 539mV,頻率10Hz,阻尼0.255,靈敏度288mV/cm/s,失真度10‰,電阻383Ω,漏電20MΩ;用測(cè)試儀測(cè)得數(shù)據(jù)為:頻率9.88Hz(合格偏差<5%),阻尼0.263(合格偏差<5%),靈敏度284.03mV/cm/s(合格偏差<10%),失真度7.1‰(合格偏差<20‰),電阻371.0Ω(合格偏差<10%),漏電508MΩ(合格偏差>10MΩ),測(cè)試結(jié)論認(rèn)為此元件是合格元件。??
4.2 低功耗試驗(yàn)??
??? 檢波器測(cè)試儀使用六節(jié)1.5V/2 300mAh電池供電,可以連續(xù)測(cè)量1 000組以上;在不測(cè)量時(shí)處于休眠狀態(tài)幾乎沒(méi)有電力消耗。本系統(tǒng)不僅測(cè)試的檢波器功能完善,而且功耗很低,能很好地滿足市場(chǎng)的需求。
??? 本文介紹了一種實(shí)用的手持式檢波器測(cè)試系統(tǒng),體積小(只有手掌大小)、結(jié)構(gòu)緊湊、重量輕、功耗低、功能齊全,能適合野外作業(yè),有較高的商業(yè)推廣價(jià)值[3]。??
參考文獻(xiàn)??
[1] 沈建華,楊艷琴,翟曉曙.MSP430系列16位超低功耗單片機(jī)原理與應(yīng)用[M]. 北京:清華大學(xué)出版社,2004.??
[2] 利爾達(dá).MSP430F13X/F14X中文數(shù)據(jù)手冊(cè)[EB/OL].www.lierda.com, 2005.
[3] 李淑清,陶知非. 未來(lái)地震檢波器理論分析[J].物探裝備, 2003,13(3):152-156.