一種基于單片機的超聲波傳感器的研究與設計
現(xiàn)代工業(yè)正向著智能化、自動化的方向發(fā)展,測距技術作為工業(yè)生產(chǎn)的重要組成部分對穩(wěn)定度和精度的要求也日益嚴格。傳統(tǒng)測量手段由于受環(huán)境、工具和人為因素影響,已經(jīng)不能滿足現(xiàn)代工業(yè)測量的要求。超聲波測距作為一種非接觸式的測距方式,以其抗干擾能力強[1-2]、測量范圍廣、易于控制、測量精度高等優(yōu)點,已經(jīng)在工業(yè)測量領域得到廣泛應用。本系統(tǒng)設計應用于石油泥漿液位測量,設計測量范圍為50 cm~600 cm,設計測量精度為厘米級,特點在于系統(tǒng)采用溫度補償對測量數(shù)據(jù)進行修正,確保準確性。
1 工作原理及系統(tǒng)設計
1.1 超聲波測距原理
超聲波傳感器主要由雙壓電晶片振子、圓錐共振板和電極等部分構成。兩電極間加上一定的電壓時壓電晶片就會被壓縮產(chǎn)生機械形變,撤去電壓后壓電晶片恢復原狀。若在兩極間按照一定的頻率加上電壓,則壓電晶片也會保持一定的頻率振動。經(jīng)試驗測得此型號壓電晶片的固有頻率為38.4 kHz,則在兩極外加頻率為40 kHz的方波脈沖信號,此時壓電晶片產(chǎn)生共振,向外發(fā)射出超聲波。同理,沒有外加脈沖信號的超聲波傳感器在共振板接收到超聲波時也會產(chǎn)生共振,在兩極間產(chǎn)生電信號[3]。
1.2 系統(tǒng)原理設計
本系統(tǒng)硬件主要由超聲波發(fā)射、超聲波接收及放大、單片機控制與液晶顯示、溫度采集和補償?shù)炔糠纸M成,如圖1所示。當按下復位鍵啟動系統(tǒng)工作時,單片機向傳感器發(fā)射頭送出若干40 kHz的方波脈沖,同時啟動定時器對超聲波傳播時間進行計時。當接收頭收到反射回的超聲波(在有效測距范圍內(nèi))并經(jīng)放大濾波傳入單片機時,定時器停止計時。查表得到測距溫度下的聲速,按式(1)計算出測量距離,送液晶顯示。
s=Ct/2 (1)
式中s為測量距離,C為超聲波傳播速度,t為傳播時間。
2 系統(tǒng)電路設計
2.1 超聲波發(fā)射電路
由于系統(tǒng)工作環(huán)境比較惡劣,為保證測距的范圍和精度,需要保證傳感器發(fā)射頭的外加壓差足夠大。因此采用轉(zhuǎn)換范圍較大、工作穩(wěn)定的16位CMOS轉(zhuǎn)換器CD4049組成超聲波發(fā)射電路的主體(CD4049最大轉(zhuǎn)換電壓與探頭最大驅(qū)動電壓同為20 V)。超聲波發(fā)射電路如圖2所示[4]。
考慮到發(fā)射頭一般需要5個方波周期達到穩(wěn)定震蕩狀態(tài)的95%,經(jīng)1.5倍上升時間達穩(wěn)定震蕩狀態(tài)的99%[5]。為保證最大程度的觸發(fā),單片機每組產(chǎn)生12個帶寬為12 μs的方波經(jīng)調(diào)理電路傳到發(fā)射頭。
2.2 超聲波接收放大電路
超聲波在空氣中傳播的衰減程度隨傳播距離的增加而增大,所以反射回來被接收頭收到的信號非常微弱,不能直接送入后級電路處理,首先要經(jīng)過信號放大。超聲波接收放大電路如圖3所示[6]。
被接收頭收到的回波信號為正弦波信號,信號強度一般只有幾十毫伏。接收部分前置放大電路是由集成運放NE5532組成的自舉式同向交流放大電路。前兩級放大電路構成10 000倍的放大器,對正弦波信號進行足夠放大。后級采用集成LM311-8比較器對前級放大信號進行調(diào)理,通過IN-引腳引入一個標準電平,輸入包絡信號的電位高于標準電平則為1,低于標準電平則為0,將包絡信號轉(zhuǎn)變?yōu)閱纹瑱C可識別的中斷脈沖信號。當與單片機的中斷輸入端相連的LM311的第7管腳輸出一個低電平時,計數(shù)器立即停止計時并保存數(shù)據(jù)。
2.3 單片機控制和顯示電路
本系統(tǒng)的主控模塊是AT89S52單片機。該控制器具有8 KB的RAM內(nèi)存空間,在線編程與調(diào)試比較方便。單片機控制單元主要包括復位電路、液晶顯示電路、發(fā)射控制端、回波接收端幾部分。由于測量距離需要直觀顯示,且系統(tǒng)安裝于戶外功耗要盡可能低、體積盡可能小,因此采用易于與CMOS電路相匹配的128×64點陣式液晶顯示模塊。接口電路如圖4。
3 軟件設計及流程
3.1 軟件整體流程
系統(tǒng)軟件主要由主程序、初始化程序、發(fā)射子程序、中斷子程序、顯示子程序組成。軟件整體流程如圖5。
系統(tǒng)上電后首先初始化,設置定時器、計數(shù)器工作方式,打開總中斷,顯示端口清零等。為避免從發(fā)射頭發(fā)出的超聲波直接被接收頭作為回波接收,在調(diào)用定時器中斷子程序(發(fā)射方波)后設置0.2 ms的延時,然后打開外部中斷0接收回波[7]。系統(tǒng)采用晶振頻率為12 MHz,機器周期為1 μs,主程序檢測到回波接收成功后將計數(shù)器T0中的值T0按下式計算即可得測量距離(設20 ℃時聲速為340 m/s)[8]:
s=(CT0)/2=170T0/100 000 (2)
最后將所得數(shù)值以二進制數(shù)形式通過P0口直接傳入液晶顯示。
3.2 發(fā)射和中斷子程序
超聲波發(fā)射子程序的作用是通過P1.2口在定時器的設定時刻取反交替產(chǎn)生寬度為12 μs的高低電平輸出方波脈沖。定時器中斷程序[9]流程如圖6。外部中斷程序流程如圖7。
4 誤差分析及系統(tǒng)精度提高
在系統(tǒng)測試過程中發(fā)現(xiàn)對系統(tǒng)性能和測量精度影響較大的主要有測量盲區(qū)、回波時間的確定、控制器定時器偏差、溫度對速度的影響等幾方面。
4.1 測量盲區(qū)
造成測量盲區(qū)存在主要有兩方面因素:超聲波發(fā)射頭在發(fā)射出一串方波信號后經(jīng)過一段延時才打開外部中斷入口,防止方波信號直接進入接收頭作為回波引起中斷,產(chǎn)生誤測量,延時對應的距離即為盲區(qū);另一方面,在測量較近距離時,回波信號會與發(fā)射余波重疊造成尋峰失敗,同樣產(chǎn)生測量盲區(qū)。
對于第一種測量盲區(qū),經(jīng)試驗證明,在可承受范圍內(nèi)減小脈沖寬度、減少脈沖發(fā)射個數(shù),從而間接減小了延時時間,擴大測量范圍。但同時會由于脈沖個數(shù)的減少對測量上限造成影響。對第二種測量盲區(qū),主要做法是在回波接收電路中加入余振吸收電路,改變接收放大倍數(shù),適當延時,并利用部分未飽和余波等方式共同減小盲區(qū)[10]。
4.2 回波時間的確定
發(fā)射的方波信號由于強度所限,在經(jīng)過傳播和反射后,回波信號強度有所衰減,出現(xiàn)包絡現(xiàn)象,但其頻率與發(fā)射波相同,沒有變化。單片機確定接收到回波的時刻實際是一個高低電平的變化時刻,與回波頻率無關。而包絡信號不是優(yōu)質(zhì)的電平信號,直接輸入單片機會造成較大誤差。解決方案是接收電路中加入一個電平比較器,其輸出頻率也為40 kHz,輸出標準方波電平信號作為比對,在接收電路的放大器輸入(接收到)高于0.4 V的電平信號時,通過比較器的輸出電壓變?yōu)闃藴实?5 V電平輸入單片機,此時刻即為回波接收時刻[11]。
4.3 溫度補償
在常溫常壓下聲速可以認為是定值,但液位監(jiān)測的工作環(huán)境溫度變化較大。聲速與溫度的關系為[12-13]:
v=311.5+0.607t (3)
溫度變化范圍為-20℃~+40℃,則聲速會產(chǎn)生36 m/s的巨大變化,必須設置溫度對聲速的補償。
離線條件下計算出不同溫度下的聲速值并放存儲器存儲,18B20測得現(xiàn)場溫度傳入單片機后,查找對應溫度的聲速并以此作為校正值進行距離的計算??諝庵新曀俦磉_式可寫為:
由此可見經(jīng)過溫度補償后的精度達到厘米級,可以較好地達到測量要求。測量溫度為11.2℃時的實驗數(shù)據(jù)如表1。由表1可以看出測量上限為600 cm,下限為50 cm,有效測距范圍內(nèi)測量誤差小于±2 cm。
通過大量實現(xiàn)數(shù)據(jù)表明,本系統(tǒng)測量誤差小于±2 cm,滿足設計要求,并且符合工業(yè)標準。基于超聲波受粉塵、震動及電磁波等惡劣工業(yè)因素影響極小的特點,本系統(tǒng)還可廣泛用于工業(yè)測距、汽車行駛、金屬探傷等領域,具有較好的應用前景。
評論