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