周 彪
[摘要]設(shè)計一種基于AT89S51單片機(jī)的超聲波測距電路,實現(xiàn)超聲波點(diǎn)對點(diǎn)的測量,并采用DS18820測溫,減小溫度對超聲波傳播速度的影響。
[關(guān)鍵詞]單片機(jī)超聲波測距溫度補(bǔ)償
中圖分類號:TN98文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)0610013-01
一、引言
超生波技術(shù)是一門以物理、電子、機(jī)械及材料學(xué)為基礎(chǔ)的通用技術(shù)之一。它是通過超聲波產(chǎn)生、傳播及接收的物理過程而完成的。由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測量。
二、超聲波測距的基本原理
超聲波發(fā)生器在某一時刻發(fā)出超聲波信號,當(dāng)超聲波遇到被測物體后反射回來,測出超聲波信號從發(fā)射到接收到回波信號的時間,利用超聲波在介質(zhì)中的傳播速度,就可以計算出被測物體的距離:
d=v×t/2(1)
其中,d為被測物體到測距儀之間的距離,v為超聲波在介質(zhì)中的傳播速度,t為超聲波從發(fā)射到接收所用的時間。為了提高精度,需要考慮不同溫度下超聲波在空氣中傳播速度隨溫度變化的關(guān)系:
v=33114+0161T(2)
式中:T為實際溫度(℃),v為超聲波在介質(zhì)中的傳播速度(m/s)。
三、超聲波測距系統(tǒng)的設(shè)計
(一)整體方案設(shè)計。本文主要采用單片機(jī)控制技術(shù),實現(xiàn)精確的超聲波測距方案,整個系統(tǒng)由超聲波收發(fā)單元、波形校準(zhǔn)單元、溫度測量單元、顯示單元和控制單元5個單元組成。其中,超聲波收發(fā)單元主要實現(xiàn)超聲波的接發(fā)送和接收;信號處理單元主要實現(xiàn)去除干擾、波形整形、鎖相環(huán)等功能,便于實現(xiàn)準(zhǔn)確計時;溫度測量單元主要測量外界溫度,實現(xiàn)溫度補(bǔ)償:顯示單元實現(xiàn)測量數(shù)據(jù)的顯示:單片機(jī)為控制單元,完成指令發(fā)送,接收數(shù)據(jù),進(jìn)行計算等任務(wù)。
(二)單片機(jī)控制與顯示模塊。單片機(jī)選用AT89S51單片機(jī),ATMEL的AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且廉價的方案。它的外部引腳多,程序存儲容量大,同時也具有內(nèi)部
定時、計數(shù)和全雙工串口。AT89S51的最大計數(shù)分辨率為振蕩器頻率的1/12,對于12MHz晶振來說,距離不確定度約為1mm,因此滿足本設(shè)計要求。此單片機(jī)響應(yīng)快,壽命長,性能穩(wěn)定,功耗低,價格低廉。使用數(shù)碼管LG50118SR作為顯示部分,其功耗低,操作簡單,體積小。
(三)超聲波發(fā)射電路。超聲波發(fā)射器包括超聲波產(chǎn)生電路和超聲波發(fā)射控制電路兩部分,由功率放大電路和超聲波發(fā)射傳感器組成。超聲波探頭的型號選用CSB40T,利用軟件產(chǎn)生的超聲波信號,通過輸出引腳輸入至驅(qū)動器。經(jīng)驅(qū)動器驅(qū)動后推動探頭產(chǎn)生超聲波。通過空間向外傳播出去。
(四)超聲波接收部分。超聲波接收部分采用集成芯片CX20106A,這是一款紅外線檢波接收的專用芯片。內(nèi)部電路由前置放大器、自動偏置電平控制電路、限幅放大器、帶通濾波器、峰值檢波器和整形輸出電路組成??梢岳盟鳛槌暡z測電路。接收的回波信號先經(jīng)過前置放大器和限幅放大器,將信號調(diào)整到合適的幅值;再經(jīng)過帶通濾波器濾波得到有用信號,濾除干擾信號;最后由峰值檢波器和整形電路輸出到鎖相環(huán)路,實現(xiàn)準(zhǔn)確的計時。
(五)溫度測量部分。DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的12Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它來組成一個測溫系統(tǒng),具有線路簡單,將其數(shù)據(jù)線與單片機(jī)的P1.7相連,就可以實現(xiàn)溫度測量。測量的溫度精度可以達(dá)到0.1℃,測量的溫度的范圍在一20~+100℃。
四、系統(tǒng)的程序設(shè)計
在程序設(shè)計過程中一般有四個步驟:初始化命令:傳送ROM命令:傳送RAM命令;數(shù)據(jù)交換命令。在系統(tǒng)安裝及工作之前,應(yīng)將主機(jī)與DS18820掛接。其工作過程為:主機(jī)發(fā)出一個脈沖,待“0”電平大于480μs后,復(fù)位DS18820,在DS18820所發(fā)響應(yīng)脈沖由主機(jī)接收后,主機(jī)再發(fā)讀ROM命令代碼33H,然后發(fā)一個脈沖(15μs),并接著讀取DS18820序列號的一位。用同樣方法讀取序列號的56位。另外,由于DS18820單線通信功能是分時完成的,遵循嚴(yán)格的時隙概念,因此,系統(tǒng)對DS18820和各種操作必須按協(xié)議進(jìn)行,即初始化DS18820(發(fā)復(fù)位脈沖)一發(fā)ROM功能命令一發(fā)存儲器操作命令一處理數(shù)據(jù)。在正常測溫情況下,DSl8820的測溫分辨力為0.5℃。采用下述方法可獲得高分辨率的溫度測量結(jié)果:首先用DSISB20提供的讀暫存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實際溫度的整數(shù)部分Tz,然后再用BEH指令取計數(shù)器1的計數(shù)剩余值Cs和每度計數(shù)值CD??紤]到DS18B20測量溫度的整數(shù)部分以0.25和0.75℃為進(jìn)位界限的關(guān)系。
該系統(tǒng)的主程序處于鍵控循環(huán)工作方式,當(dāng)按下測量鍵時,主程序開始調(diào)用發(fā)射子程序、查詢接收子程序、定時子程序,并把測量結(jié)果用顯示子程序在數(shù)碼顯示器上顯示出來。
五、結(jié)論
應(yīng)用本系統(tǒng)15mm~5m內(nèi)的目標(biāo)做了多次測量,其最大誤差為1.5mm,且重復(fù)性好,可以用于實際使用??梢娀趩纹瑱C(jī)設(shè)計的超聲波測距系統(tǒng)具有結(jié)構(gòu)簡單、功耗低、易于操作、靈活性高的特點(diǎn)外,還具有操作方便、運(yùn)行可靠的優(yōu)點(diǎn),它有良好的人機(jī)界面,能方便地實時顯示測距數(shù)據(jù)。