《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于單片機的低功耗高精度融雪測量儀的設計
基于單片機的低功耗高精度融雪測量儀的設計
來源:微型機與應用2012年第19期
張 建
(西安工程大學 電子信息學院,陜西 西安 710048)
摘要: 針對我國西北等地區(qū)因積雪融化而造成山洪,、滑坡,、泥石流等自然災害,設計一款融雪測量儀來實時監(jiān)測積雪的融化狀況,,并作出預警。在該設計中主要在單片機的選型,、工作模式的控制以及供電電源的控制模式來降低功耗,。經(jīng)過測試,該設備運行正常,、數(shù)據(jù)傳輸穩(wěn)定,,同時具有高精度、低功耗的特性,。對于監(jiān)測積雪的融化狀況是一種可行的設計方法,,而且具有一定的實用價值。
Abstract:
Key words :

摘  要: 針對我國西北等地區(qū)因積雪融化而造成山洪,、滑坡,、泥石流等自然災害,設計一款融雪測量儀來實時監(jiān)測積雪的融化狀況,,并作出預警,。在該設計中主要在單片機的選型、工作模式的控制以及供電電源的控制模式來降低功耗,。經(jīng)過測試,,該設備運行正常、數(shù)據(jù)傳輸穩(wěn)定,,同時具有高精度,、低功耗的特性,。對于監(jiān)測積雪的融化狀況是一種可行的設計方法,而且具有一定的實用價值,。
關鍵詞: 單片機,;低功耗;高精度,;數(shù)字濾波

 我國對于積雪的實時檢測技術(shù)還比較落后,,如通過利用衛(wèi)星來實時監(jiān)視積雪融化動態(tài),但在實際的運作中,,由于地面環(huán)境的復雜性存在比較大的誤差與缺陷[1],。早在1973年,MrClain等人指出雪的表面反射率可以作為雪深的指示因子[2],,但是由于地表土壤成分各不相同以及表面雜物不同,,其檢測效果也并不可觀。因此,,研制一套低功耗高精度的融雪測量儀是有必要的,,而且具有廣闊的應用前景。
1 總體設計方案
 本設計提出以超聲波傳感器進行積雪厚度的實時監(jiān)測,,采用“渡越時間檢測法”進行雪厚的測量,。其測量原理為:超聲波發(fā)射器垂直地向雪表面發(fā)射超聲波,同時采集板上微控制器內(nèi)部定時器開始計時,,碰到雪面反射回來,。當超聲波接收器接收到反射波時,定時器就立即停止計時,,根據(jù)定時值,,計算出發(fā)射點距雪表面的距離S。假設設備安裝高度為S0,,雪厚值為S0-S,。最終控制器對采集板進行召測,,對采集到的數(shù)據(jù)處理與分析,,并做出相應的預警功能。
2 低功耗的實現(xiàn)方案
 低功耗實現(xiàn)方案主要有:控制板的主控制器的選型以及工作模式的選擇,;控制AT89C2051單片機的工作模式和485通信狀態(tài)的控制以及設置合理的采樣周期,。
 (1)主控制器的選型及工作模式的選擇
 控制板的主控制器選擇MSP430F149,,這是一款16位超低功耗的混合信號處理器,。電源電壓采用1.8~3.6 V,在2.2 V,、1 MHz的時鐘條件下運行時,,電流僅有160 μA,。待機模式:1.6 μA。關閉模式(RAM保持):0.1 μA,。平時讓主控制器處于LPM3模式下,,CPU停止工作,主時鐘關閉,,子時鐘關閉,,內(nèi)部振蕩器關閉,輔導時鐘打開,,其功耗為2 μA,。同時,將TIMER_A的時鐘源選為ACLK,,當?shù)竭_定時時間時,,用#pragma vector=TIMERA1_VECTOR中斷CPU喚醒。具體程序?qū)崿F(xiàn)方法為:
Void Init_Timer_A()
{
    TACTL|=TASSEL_1+TACLR,;    //選擇時鐘源為ACLK
    TACTL|=MC1+TAIE,;  //使能定時器A中斷
}
_BIS_SR(LPM3_bits+GIE);      //Enter LPM3 interrupt
#pragma vector=TIMERA1_VECTOR //中斷服務函數(shù)
__interrupt void Timer_A(void)
{}
?。?)工作模式以及485狀態(tài)控制
 平時單片機處于“空閑方式”狀態(tài),,當有串口中斷喚醒的時候,CPU才開始采集數(shù)據(jù),。當采集完成后通過RS-485總線發(fā)送給控制板(注:RS-485平時處于接收狀態(tài),,需要發(fā)送時才使能發(fā)送端口,為了降低功耗),,執(zhí)行完成后單片機繼續(xù)“睡覺”,。程序?qū)崿F(xiàn)方法如下所示。
Void Init_Uart()
{
    TMOD=0X21,;TH1=0XFD,;TL1=0XFD;TR1=1,;
       //波特率發(fā)生器的選擇
       REN=1,;  //使能接受
     SM0=0;SM1=1,;
     ES=1,; //打開串口中斷
 EA=1; //開總中斷
}
Void Init_485()
{
    CONTROL_485=0,;   //使485模塊處于接收狀態(tài),;
}
Void Serial() interrupt 4  //串口中斷服務函數(shù)
{}
Void Lower_Power()
{
    CONTROL_485=0; //使485處于接收狀態(tài)
    PCON=0X01,;//使單片機處于“空閑模式”
}
?。?)設置合理的采樣周期
 由于積雪的融化與溫度有關,,當溫度在冰點之下時,積雪不融化,。這時候就沒必要一直去采集積雪的融化狀況,,即采集頻率可以減小,對于降低功耗是一種有效的方法(根據(jù)實際情況可在軟件中設定值),。該設計中設定的采樣周期如表1所示,。


3 高精度的實現(xiàn)方案
 高精度的實現(xiàn)方案主要表現(xiàn)為:確定回波檢測方案,溫度補償,,對采集值進行數(shù)字濾波,,真實值與測量值之間做線性補償。
?。?)確定回波檢測方案
 能夠快速檢測到回波對于提高精度是一個關鍵點,。如果在程序中使用冗余或者復雜的程序后,勢必會增加定時器的計數(shù)值,,從而影響測距精度,。下面是該設計中使用的回波檢測程序。
C語言程序:
while(SUPERSONIC_IN&&(TF0==0))
{}
TR0=0,;     //關閉定時器0
反匯編分析:
290:   while(SUPERSONIC_IN&&(TF0==0))      
C:0x055B 30B703 JNB SUPERSONIC_IN(0xB0.7),,C:0561
C:0x055E308DFA JNB TF0(0x88.5),C:055B
      291:     {}
       292: 
       293:  TR0=0,; //關閉定時器0
C:0x0561 C28C CLR TR0(0x88.4)
 一條JNB bit,,rel匯編語句執(zhí)行時間為2個機器周期,一條CLR C匯編語句執(zhí)行時間為1個機器周期,,所以執(zhí)行一次上述回波檢測語句需要5個機器周期,,而該設計中使用的晶振為12 MHz,一個機器周期為1 μs,,因此需要5 μs,。由公式S=VT/2,S為距離,,V為波速,,T為渡越時間。假設此時的V為340 m/s,,得S=0.85 mm,,誤差在1 mm之內(nèi),,在設計允許范圍之內(nèi),。
 (2)溫度補償
 由于超聲波波速受到環(huán)境溫度的影響,,需要對波速進行溫度補償,,利用數(shù)字溫度傳感器采集環(huán)境溫度,,以便為做成高精度的采集系統(tǒng)做保障。表2列出幾種不同溫度下的超聲波波速[3],。

 根據(jù)上述表2中數(shù)據(jù),,可以得出溫度補償公式如式(1)所示:
 V=331.5+0.607×T       (1)
 其中V表示實際波速,T表示環(huán)境溫度,。程序算法如下所示:
float  Count_Supersonic_Speed
(UCHAR  real_temp)
{
   float V1,;
V1=real_temp/2+real_temp/10+331+1/2;
 return V1,;
}
?。?)對采集值進行數(shù)字濾波
 由于實際測量中會出現(xiàn)偶然脈沖干擾,使測得的數(shù)值偏差很大,,通過防脈沖干擾平均濾波法(Anti-Pulse Interference Average Filtering Method)踢除此干擾,,同時對剩余的數(shù)據(jù)取平均值。測試效果如表3所示,。
?。?)真實值與測量值之間做線性補償
 由于實際測量值與真實值之間會存在誤差,現(xiàn)在通過用一次函數(shù)Y=KX+B做線性補償算法來減少測量誤差,。在沒有加入補償之前如表4中的誤差1所示,。E2到E11中的數(shù)值是Y由式EN=(AN+1-AN)/(BN+1-BN),(N=2~11)得到,。F2到F22中的數(shù)據(jù)是對E2到E11中數(shù)據(jù)取平均值,。G2到G11中的數(shù)據(jù)由公式GN=AN-FNBN,(N=2~11),。HN(N=2~11)中的數(shù)據(jù)是對G2到G11取平均值得到,。計算出K=1.077 229 163,B=32.240 783 23,。Y=1.077 229 163X+32.240 783 23,,得到補償后的數(shù)據(jù)I2到I22。最終保證誤差在5‰左右,,如表4中的誤差2所示,。

 

 

 經(jīng)過測試,融雪測量儀的測量范圍為300 mm~2 000 mm,,測量精度控制在5‰之內(nèi),,且耗電量低。同時,,由于考慮到實際應用環(huán)境的復雜性,,對于元器件的選擇全都采用工業(yè)級產(chǎn)品,以保證設備的穩(wěn)定與可靠性。
參考文獻
[1] 毛煒峰,,張旭,,楊志華,等.衛(wèi)星遙感首次監(jiān)測到準噶爾盆地西北部的冬季融雪洪水[J].冰川凍土,,2010,,32(1):211-214.
[2] RAMSAYB H. The interactive multisensor snow and ice mapping system[J]. Hydrological Processes, 1998,,12:1537-1546.
[3] 翟國富,,劉茂愷.一種實時高精度的機器人用超聲波測距處理方法[J].應用聲學,1990(1):17-24.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。