一種基于單片機的高精度超聲波多路同步測距系統(tǒng)設(shè)計
0 引言
超聲波測距作為一種非接觸性的檢測方法,因其結(jié)構(gòu)簡單緊湊、可靠性高、價格低廉、實時性強等優(yōu)點,近年來已經(jīng)得到了廣泛應(yīng)用,如液位測量,修路過程中路面平整檢測,汽車倒車雷達,機器人輔助視覺識別系統(tǒng)等。但因超聲波在空氣中傳播時受到諸如環(huán)境溫度、濕度、風速等影響,傳統(tǒng)的超聲波測距系統(tǒng)精度普遍較低。文獻[4]采用了在系統(tǒng)中增加硬件溫度補償模塊僅在一定程度上可以避免因環(huán)境溫度變化帶來的測量誤差。文獻[5,6]中采用小波等處理算法,也并不能彌補系統(tǒng)本質(zhì)上的缺陷。因此,研究了一種控制精度高,適用范圍寬的高精度多路同步超聲波測距系統(tǒng)。
1 超聲波測距工作原理與結(jié)構(gòu)
1.1 工作原理
諧振頻率高于20 kHz的聲波被稱為超聲波。超聲波測距的基本工作原理是:發(fā)射探頭發(fā)出超聲波,在介質(zhì)中傳播遇到障礙物反射后再通過介質(zhì)返回到接收探頭,測出超聲波從發(fā)射到接收所需的時間,然后根據(jù)介質(zhì)中的聲速,利用公式S=0.5ct就能算得從探頭到障礙物的距離,式中:S為所測的距離,c為超聲波在介質(zhì)中的傳播速度.£為超聲波從發(fā)到收所經(jīng)過的時間。
1.2 超聲波測距系統(tǒng)的一般結(jié)構(gòu)
一般情況下,超聲波測距系統(tǒng)的基本結(jié)構(gòu)如圖1所示。
系統(tǒng)常采用頻率為40 kHz的方波信號由單片機內(nèi)部產(chǎn)生。為了避免溫度對聲波傳播速度的影響,都采用溫度補償以適應(yīng)在不同環(huán)境下正常工作的需求。時間的精確測量可由單片機內(nèi)部單獨的計數(shù)器完成,也可由外部的計時電路完成。
2 多路同步超聲波測距系統(tǒng)
系統(tǒng)由單片機、FPGA模塊、6對收發(fā)同體的超聲波換能器、功率放大電路、回波高增益放大電路、帶通濾波電路以及比較整形電路等組成。系統(tǒng)組成框圖如圖2。
本系統(tǒng)中。單片機系統(tǒng)與FPGA系統(tǒng)是測距儀的核心部件,用來協(xié)調(diào)各部分元件工作。單片機控制器單元主要是啟動超聲波發(fā)射與計時計數(shù)器開始計數(shù)的同步以及接收到回波后對其計時計數(shù)器的值進行處理等運算。FPGA單元主要用來產(chǎn)生超聲波的發(fā)射脈沖頻率125 kHz與計時計數(shù)器的頻率(>170 kHz),通過微控制器MCU來啟動超聲波的發(fā)射,F(xiàn)PGA發(fā)射一定數(shù)量(這里選擇8至10)的脈沖串之后,停止發(fā)射同時啟動計時計數(shù)器計數(shù),超聲波途經(jīng)障礙物返回。當超聲波換能器接收到回波信號之后,將其信號送入FPGA內(nèi)部,用來控制計時計數(shù)器的停止,將所得的計數(shù)值送入單片機。第一路到第五路超聲波換能器用于測量距離,測量距離的五路超聲波換能器按等間距分別安裝在測距儀的固定板上,系統(tǒng)采用收發(fā)同體的探頭,其波束角很小,有效的保證了各探頭到被測物體的垂直測量距離。第六路超聲波換能器安裝在測距儀的左側(cè),在測距儀的右側(cè)安裝一塊標準檔板,較準確的測量當時環(huán)境下的聲速,用于溫度補償??刂苹蝻@示模塊用于調(diào)整平衡或輸出顯示測量距離的目的。
2.1 發(fā)射電路
發(fā)射電路如圖3(a)所示。發(fā)射電路將接收到的方波脈沖信號送入乙類推挽放大電路,用其輸出信號驅(qū)動CMOS管,接著將其脈沖信號加到高頻脈沖變壓器進行功率放大,使幅值增加到100多伏,最后將放大的脈沖方波信號加到超聲波換能器上產(chǎn)生頻率為125 kHz的超聲波并將其發(fā)射出去。
2.2 接收電路
接收電路由OP37構(gòu)成的兩級運放電路,TL082構(gòu)成的二階帶通濾波電路以及LM393構(gòu)成的比較電路三部分組成。因本系統(tǒng)頻率較高,回波信號非常弱,為毫伏級,因此設(shè)計成兩級放大電路,第一級放大100倍,第二級放大50倍,共放大5 000倍左右。
另外考慮到本系統(tǒng)要適應(yīng)各種復(fù)雜的工作環(huán)境,因此設(shè)計了由TL082構(gòu)成的高精度帶通濾波電路,以供回波信號放大后進行進一步濾波,將濾波后的信號輸入到 LM393構(gòu)成的比較器反相輸入端,與基準電壓相比較,并且對其比較輸出電壓進行限幅,將其電壓接至D觸發(fā)器,比較器將經(jīng)過放大后的交流信號整形出方波信號,將其接至FPGA,啟動接收模塊計數(shù),達到脈沖串設(shè)定值時,關(guān)閉計時計數(shù)器停止計數(shù)。
2.3 FPGA內(nèi)部各組成模塊設(shè)計
FPGA主要實現(xiàn)125 kHz的超聲波的發(fā)射與接收以及六路超聲波從發(fā)射到接收之間時間的測量。其內(nèi)部結(jié)構(gòu)如圖4所示。
FPGA主要由發(fā)射模塊、順序執(zhí)行計數(shù)器、數(shù)據(jù)選擇器、計時計數(shù)器與接收模塊五部分組成。其中:發(fā)射模塊完成脈沖串的發(fā)射與計數(shù)器的啟動,主要由96分頻器、發(fā)射脈沖串計數(shù)器和發(fā)射脈沖串的控制器三部分組成。順序執(zhí)行計數(shù)器模塊主要由六與非門、計數(shù)器和非門組成。
所有的接收模塊接收完數(shù)據(jù)后,通過與非門及非門輸出高電平(FINISH端口),以觸發(fā)單片機使單片機處于接收數(shù)據(jù)狀態(tài),單片機發(fā)出信號使順序執(zhí)行計數(shù)器開始計數(shù),計數(shù)值每次加1,輸出端口便是相應(yīng)的計時計數(shù)器,單片機便從相應(yīng)的計時計數(shù)器中讀取計數(shù)值。數(shù)據(jù)選擇器與順序執(zhí)行計數(shù)器完成計數(shù)值數(shù)據(jù)的讀取。
計時計數(shù)器模塊主要完成測量脈沖發(fā)出去到接收到的時間間隔和脈沖的計數(shù),主要由啟動與關(guān)閉計數(shù)器控制、12分頻器、16位計時計數(shù)器、二選一數(shù)據(jù)選擇器及 8位數(shù)據(jù)鎖存器組成(見圖5)。接收模塊主要接收回波信號和關(guān)閉計數(shù)器,當接收模塊接收到信號以后,便啟動計數(shù),達到計數(shù)值,就輸出高電平,用來關(guān)閉計時計數(shù)器停止計數(shù)。為防止信號串擾,在信號發(fā)射時,CUAN端輸入高電平,對其信號進行屏蔽。
3 結(jié)果
經(jīng)過實驗室調(diào)試,本文給出的基于單片機與FPGA相結(jié)合的多路同步超聲波測距系統(tǒng)與其它系統(tǒng)具有如下優(yōu)勢:
(1)抗環(huán)境影響因素能力強。在工作環(huán)境中,對聲速影響的因素很多。如溫度、風力,濕度等,系統(tǒng)利用安裝標準校正板的方法能精確測量當時環(huán)境下的聲速,可以避免因各種環(huán)境因素的變化而造成的誤差。
(2)采用125 kHz的頻率,同時采用多路超聲波精確同步測距。保證了系統(tǒng)的測量精度。
(3)采用FPGA與AT89C51結(jié)合的方案,由FPGA來完成多路超聲波傳播時間的精確測量,AT89C51完成信號的啟動以及數(shù)據(jù)的處理。與常規(guī)系統(tǒng)相比,雖然增加了FP-GA硬件,但是系統(tǒng)也舍棄了一些系統(tǒng)所采用的溫度補償模塊,大大提高了系統(tǒng)的精度和系統(tǒng)的靈活性。