引言
超聲波測距主要應(yīng)用于非接觸測量領(lǐng)域。目前測距專用超聲波系統(tǒng)由于成本高等的原因,在一些中小規(guī)模的應(yīng)用領(lǐng)域中難以廣泛應(yīng)用。隨著汽車智能化的發(fā)展,需要研制出能夠以更高的精度測距的新式傳感器,且成本低廉。但是以往的超聲波傳感器由于高精度的要求,結(jié)構(gòu)復(fù)雜,且不能夠根據(jù)不同的環(huán)境自動調(diào)節(jié),成本高,適應(yīng)性差。本文介紹一種以AT89C2051 單片機(jī)為核心的低成本、高精度的數(shù)字顯示超聲波測距儀的研制。由于這種超聲波傳感器可以測試周圍環(huán)境溫度并可自我調(diào)節(jié),性價比要好于現(xiàn)有的一些同類產(chǎn)品。這種傳感器能夠在0℃~ 40℃的溫度范圍內(nèi),測距范圍為0.1m~0.3m,精度為1mm,因此能夠應(yīng)用于一些特殊的場合,如自助式停車,智能懸架和車前燈調(diào)節(jié)等。
測距系統(tǒng)的硬件設(shè)計
超聲波測距系統(tǒng)工作原理如圖1。本系統(tǒng)由AT89C2051 單片機(jī)、超聲波發(fā)射、接收放大電路、環(huán)境溫度采集電路及顯示電路組成。AT89C205l單片機(jī)是整個系統(tǒng)的核心部件,協(xié)調(diào)各部件的工作。單片機(jī)控制的振蕩源產(chǎn)生40kHz 的頻率信號來驅(qū)動超聲波傳感器,每次發(fā)射包含l0 個脈沖,當(dāng)?shù)谝粋€超聲波脈沖發(fā)射后,計數(shù)器開始計數(shù),在檢測到第一個回波脈沖的瞬間,計數(shù)器停止計數(shù),這樣就能夠得到從發(fā)射到接收的時間△t;溫度采集電路也將現(xiàn)場環(huán)境溫度數(shù)據(jù)采集送到單片機(jī)中,提供計算距離時對超聲波傳播速度的修正。最終單片機(jī)利用公式計算出被測距離,由顯示器顯示出來。單片機(jī)的串行口 RXD、TXD 分別與顯示電路的RXD 和TXD 相連,構(gòu)成串行靜態(tài)顯示電路;定時/記數(shù)器T0,與V/F 轉(zhuǎn)換器的輸出端相連,實現(xiàn)頻率采集功能;P1.7 與CMOS 多諧振蕩器的控制端相連,通過軟件使P1.7 口輸出高或低電平,從而控制超聲波的發(fā)射;P1.6 通過一個開關(guān)二極管IN4l48 與比較器LM324的基準(zhǔn)電壓產(chǎn)生電路控制端連接,發(fā)射超聲波時置P1.6 為“1”,輸出的電平可以抑制比較器的翻轉(zhuǎn),從而能有效地抑制發(fā)射器發(fā)射的超聲波直接輻射到接收器而導(dǎo)致錯誤的檢測;發(fā)射結(jié)束后,P1.6 置為“0”,此時通過掃描與比較器輸出端連接的P1.2 121,根據(jù)P1.2 口的輸入狀態(tài)判斷是否接收到回波。
超聲波發(fā)射及驅(qū)動電路由CD4011組成的RC振蕩器產(chǎn)生,溫度傳感器采用AD590。
檢測法及補(bǔ)償原理
超聲波測距通過下列公式計算:
式中,Tf —超聲波傳播時間;
Vs—空氣中的聲速;
k—系數(shù),近似為0.5。
超聲波脈沖由一個壓電式傳感器發(fā)出,它的地面反射波由另一個壓電式傳感器接收。這兩個壓電式傳感器緊密地并排在一起組成了探測頭。由k 引起的誤差通過一個校準(zhǔn)器的校準(zhǔn)后可以忽略不計。Tf 和Vs 可以認(rèn)為是不相關(guān)的,所以被測距離的標(biāo)準(zhǔn)誤差u(D)可以從下列公式得到:
這里u(Vs)和u(Tf)是聲速和傳播時間的系統(tǒng)誤差。空氣中的聲速受到溫度θ和濕度h 的影響,即:
因此,式(2)變?yōu)椋?/p>
如果濕度在10%RH~90%RH 內(nèi)變化,它對聲速的影響在20℃時為0.15%左右。在0.3m 的范圍內(nèi)導(dǎo)致的系統(tǒng)誤差僅為0.3mm 左右,所以沒有必要安裝濕度傳感器。
空氣中的聲速可以根據(jù)下式得到:
其中:T—絕對溫度。
聲速在330m/s 到360m/s 范圍內(nèi)變化時應(yīng)考慮到0℃到40℃范圍內(nèi)的溫度變化。在測距中必須考慮到這種影響,因此需要一個溫度傳感器。如果應(yīng)用于汽車上,另一個影響測距精度的因素是車速,這種影響隨著超聲波傳播距離的增加而增加。如果最大車速相當(dāng)于聲速的10%,則測量相對誤差可由下式估算:
對于車速在33m/s(約120km/h),在0℃時(Vs=330m/s)誤差約為0.5%,因此一般也可以忽略這一因素帶來得誤差。
智能化實現(xiàn)
本傳感器在電路上可分為兩大部分,其一為時間測量(見圖2),其二為溫度傳感器與誤差的自動補(bǔ)償(見圖3)。其中圖2 輸出的Ni 即為圖3 輸入的Ni。
時間測量
時間測量中采用的超聲波信號周期為25μs,卻需要一個相當(dāng)于在20°C 時約9mm 波長的超聲波信號源。為了確保精度,需要一個波長檢測器。超聲波信號源由一個信號發(fā)生器和一個過零檢測器的電路組成。任意信號發(fā)生器由一個可存放任意波形的16Kbyte EPROM,一個用來掃描EPROM的16 位計數(shù)器和一個DAC 組成。過零檢測器由臨界值檢測器組成。檢測器的臨界值是接收到的信號峰值的一部分,使檢測器可以根據(jù)參考零電位比較接收到的信號。這就使得在信號區(qū)的信號能最大范圍地被檢測到,從而使噪聲干擾最小。
存儲在EPROM 中的激勵信號必須設(shè)計成可以接收那些低到足以防止第一個臨界值接收器干擾不同周期的回聲。這些特殊的信號由一個約束最優(yōu)化程序處理,這種程序主要是為了使回波的能量最小從而把回波的峰值限定位一個固定值。最合適的允許接收由固定振幅的最低回波Y(f)的驅(qū)動信號X(f)可以由解下列方程得到:
最優(yōu)的結(jié)果主要取決于被選回聲的振幅,回聲越低,振幅越低,那么被一個有關(guān)的噪聲振幅干擾的可能性也越低。在任何條件下使用最好的信號取決于噪聲的實際量。傳感器還有一個簡單的噪聲測量系統(tǒng)。該系統(tǒng)可以通過在無回波階段監(jiān)測輸入信號來估計實際噪聲。這個噪聲測量系統(tǒng)的輸出可以在低、中、高噪聲條件下轉(zhuǎn)換。
另外,回波的振幅主要取決于地面的反射性和距離。這些影響可以由接收電路中的一個自動增益控制放大器來使其最小化。因此回聲振幅可以保持在一個固定值。這就用到了第一個檢測器中的固定臨界值。越零檢測器的輸出可以用來驅(qū)動一個緩沖器(可以在回聲到達(dá)的時間內(nèi)鎖存計數(shù)器輸出)。如果一個新的回波未被檢測到,則緩沖器的輸出不被更新。這就避免了無意義的測量。被緩沖的值是根據(jù)傳播時間和一個已知的固定值Na(該值由它在EPROM 中的存儲方式及第一個檢測器的臨界值水平?jīng)Q定)來定。系統(tǒng)時鐘為8MHz,因此周期為125ns,當(dāng)一個距離超過1m,最大的測量時間約8ms。一個 50Hz 的多諧波振蕩器每20ms 提供計數(shù)器一個讀數(shù)。
溫度傳感器與誤差的自動補(bǔ)償
空氣溫度由一個溫度傳感器檢測并經(jīng)電路處理得出。它裝在探頭中,誤差不超過1℃。誤差的自動補(bǔ)償可以由圖2 所示的簡單模擬電路得出。V 與所測距離成正比。
軟件設(shè)計思想
由于超聲發(fā)射傳感器與超聲接收傳感器相隔很近,當(dāng)發(fā)射超聲波時,接收傳感器會收到很強(qiáng)的干擾信號。為防止系統(tǒng)的誤測,在軟件上采用延遲接收技術(shù),以此提高系統(tǒng)的抗干擾能力。當(dāng)起始鍵按下,即發(fā)送發(fā)射超聲波的指令,控制系統(tǒng)開始執(zhí)行程序,完成對溫度的采集;發(fā)送、接收超聲波的時間間隔的測量;最后通過數(shù)值處理程序計算出被測距離,送顯示器顯示。本系統(tǒng)軟件采用模塊化設(shè)計,由主程序、測距子程序、測溫子程序、顯示子程序等主要模塊組成。主程序框圖如圖4所示。
測試結(jié)果
本系統(tǒng)應(yīng)用于非接觸式測距。對相距0.1m~0.3m的兩物體、環(huán)境溫度從0℃ ~40℃之間變化時,進(jìn)行了實際測試,由于系統(tǒng)增加了溫度修正系統(tǒng)及軟件補(bǔ)償技術(shù),大大提高系統(tǒng)的測量準(zhǔn)確度。實際測試證明,經(jīng)修正后該系統(tǒng)的測量準(zhǔn)確度可達(dá)到±0.01m。
結(jié)束語
本文提出的基于單片機(jī)的超聲波測距系統(tǒng),具有成本低、精度高、誤差小、顯示直觀、電路簡單以及抗干擾性好等優(yōu)點(diǎn),能夠滿足一些中小規(guī)模系統(tǒng)的測量要求。尤其能夠應(yīng)用于一些特殊的場合,如自助式停車,智能懸架和車前燈調(diào)節(jié)等。