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