超聲波液位計測量方式研究與探討 二十三
4.2系統(tǒng)軟件設(shè)計
系統(tǒng)整個軟件采用模塊化結(jié)構(gòu)設(shè)計,將各功能模塊設(shè)計成獨立的編程調(diào)試程序塊,這樣不僅有利于功能的擴展,而且便于調(diào)試和連接,更有利于程序的移植和修改。
系統(tǒng)軟件從功能上分為主程序和中斷子程序,主程序完成系統(tǒng)初始化后進入掉電模式,任何其它處理任務(wù)均看作為中斷事件,將單片機從休眠狀態(tài)喚醒,然后完成計算和數(shù)值存儲,執(zhí)行之后再次進入掉電模式。
對于整個主程序和復(fù)雜的中斷處理程序,又劃分為若干模塊進行程序的模塊化設(shè)計,其中包括初始化模塊、電壓監(jiān)控模塊、測量模塊、計算模塊、參數(shù)處理模塊、顯示模塊及通訊模塊等。
4.2.1系統(tǒng)主程序
系統(tǒng)主程序主要完成一些內(nèi)部模塊和寄存器的設(shè)置、數(shù)值計算及存儲功能,其余時間處于休眠狀態(tài),等待測量、通訊等程序的中斷喚醒。這樣單片機大部分時間都處于休眠狀態(tài),可大大降低功耗。
系統(tǒng)開始工作后,單片機首先執(zhí)行上電復(fù)位操作,然后進行系統(tǒng)初始化。初始化完成后首先查詢電壓是否正常,若電壓不足,則發(fā)出低壓報警,提醒為充電電池充電或轉(zhuǎn)為交流電源供電;隨后查詢是否有鍵按下,若有按鍵則進入?yún)?shù)設(shè)置子程序,對工業(yè)現(xiàn)場環(huán)境參數(shù)進行重置,需要鍵入的參數(shù)包括探頭與容器底部的距離、兩探頭之間的距離等:接著查詢是否有上位機通訊,若有則進入通訊子程序,向上位機傳送所測液位數(shù)據(jù);在超聲波液位計長時間連續(xù)測量時,如果液位變化不太快,在不影響測量要求的情況下,為了節(jié)能,設(shè)定每隔4s測量一次,也可根據(jù)實際測量中液位變化情況合理設(shè)置測量時間間隔。測量完成后,將測量結(jié)果顯示輸出。
4.2.2測量子程序
測量子程序是整個軟件的核心,它控制超聲波的發(fā)射和接收電路的啟動以及液位數(shù)據(jù)的計算等。由于本設(shè)計中,有兩個回波信號,所以采用單片機雙定時器中斷計時。系統(tǒng)進入測量子程序后,控制單片機首先發(fā)出一組40kHz的方波,同時啟動定時器TO和T1工作,并延時lms后打開接收電路,當(dāng)接收電路有信號輸入時,對輸入信號進行處理,判斷信號的真?zhèn)危粜盘枮檎妫瑒t停止定時器TO,根據(jù)擋板回波時問計算實際超聲波聲速;在再次有回波中斷后,停止定時器T1,根據(jù)液面回波時間和超聲波實際聲速計算液位高度。
擋板的反射回波到達接收探頭后,給單片機一個外部中斷信號,停止定時器,據(jù)此計算出實際聲速V;液面反射回波到達接收探頭后,單片機停止定時器T1,計算出實際液位高度h,并采用測量5次求平均值的方法進一步減小測量誤差。最后將計算出的液位高度值輸出顯示。另外,計算出的液位高度值,如果低于/等于最低液位或高于/等于最高液位,則發(fā)出報警。
與溫度補償法相比,此方法利用軟件功能簡化硬件電路,更加簡單方便,是新型儀表的發(fā)展趨勢。由于發(fā)射超聲波后有1ms的延時,所以以聲速為340m/s計算,測量盲區(qū)為34cm,因此擋板與探頭之間的距離應(yīng)大于34cm。
從抗干擾的角度,接收電路并不是在超聲發(fā)射一開始就打開的,而是根據(jù)超聲回波預(yù)期最早和最晚到達時間設(shè)置一個接收范圍門。首先,根據(jù)聲路長度來估算一個脈沖最早和最晚可能到達的時刻,在最早時間的0.6倍處打開接收電路,這樣一方面可以防止發(fā)射超聲直接耦合到接收換能器中,另一方面可以排除開關(guān)動作帶來的干擾;然后通過設(shè)置軟件延時,在最晚到達時間1.5倍處關(guān)閉接收電路。
在本設(shè)計中,由于有擋板的存在,使得聲路最短長度受到限制。
詳情請瀏覽公司網(wǎng)站的產(chǎn)品中心 http://www.ladynoble.net/ 超聲波液位計