一種高精度超聲波測距系統(tǒng)的改進
在現(xiàn)代工業(yè)生產(chǎn)過程中,利用超聲波進行近距離非接觸式測量越來越廣泛,例如液位的測量、煤層的測厚、機器人定位、輔助視覺系統(tǒng)、車輛的定位與導航、汽車防撞雷達、井深及管道長度測量等方面。根據(jù)超聲波縱向分辨力高、對色彩和光照度不敏感、抗電磁干擾能力強等特點,可以設計出精度較高的超聲波測距系統(tǒng),應用于漫反射差和有毒等惡劣環(huán)境中。但傳統(tǒng)的超聲波測距儀由于采用固定閾值的比較器比較輸出,測量精度普遍較低[1]。本文從回波信號處理的角度出發(fā),分析了超聲波回波曲線的特性,利用回波包絡的峰值檢測以確定回波到達時刻的方法,并介紹一種以89C52單片機為核心、具有自動增益控制和峰值包絡檢測、高精度的收發(fā)一體式超聲波測距系統(tǒng)的硬件電路和軟件設計。
1 回波信號包絡研究
傳統(tǒng)的利用固定電平判斷回波到達時刻的超聲波測距方法存在較大誤差。針對這種誤差提出的可變閾值的超聲波測距方法,由于干擾信號的存在,超聲波測距主芯片會產(chǎn)生誤判回波時刻的到來,從而導致測量數(shù)據(jù)不準確。
超聲傳感器通過壓電晶片的逆效應——電致伸縮,在空氣介質(zhì)中產(chǎn)生超聲波。測距所用超聲波一般都是以間斷的高壓單脈沖發(fā)射,每測距一次,需要發(fā)射、接收一次。所以在測距脈沖的發(fā)射過程中,傳感器晶片經(jīng)歷了起震、加強和衰減三種狀態(tài),并產(chǎn)生多個諧振周期的超聲波;接收過程中,傳感器晶片在多個諧振周期的超聲脈沖作用下,通過壓電效應在晶片兩端產(chǎn)生起伏電壓。廈門大學的童峰等研究了單脈沖發(fā)射時超聲回波的起伏特性,并根據(jù)聲的發(fā)射、反射理論及應用力——聲類比,推導出了理想條件下的測距回波包絡曲線方程[2]。在此理論基礎上,通過大量實驗,每次發(fā)射1個脈沖寬度為時間?子的脈沖,來驗證這種超聲波回波起伏特性。圖1為通過放大、帶通濾波、AGC電路以后,用Tektronix數(shù)字存儲示波器存儲得到的回波波形。
可以驗證:超聲回波在脈寬時間處,電壓峰值達到最大,和童峰的理論分析基本吻合,這也為本文應用在判斷回波到達時刻的處理方法提供了理論和事實依據(jù)。根據(jù)上述對超聲回波波形特性的分析,本文提出了一種確定回波到達時刻的思路:在接收電路中加入精密的絕對值轉(zhuǎn)換電路,把回波信號的負電壓翻轉(zhuǎn)為正電壓,然后通過檢波電路,對波形進行包絡,接著輸入到微分電路,求出包絡曲線的峰值點,再通過過零檢測電路,向單片機發(fā)出外部中斷信號,停止計數(shù)器計時。單片機在發(fā)射完1個脈沖后,啟動內(nèi)部計數(shù)器計時到外部中斷觸發(fā)計數(shù)器停止計時,這段時間即為超聲波脈沖的渡越時間t。
2 超聲波測距原理及系統(tǒng)組成
超聲波測距是借助于超聲脈沖回波渡越時間法來實現(xiàn)的。設超聲波脈沖由傳感器發(fā)出到接收所經(jīng)歷的時間為t,超聲波在空氣中的傳播速度為c,則從傳感器到目標物體的距離d可用下式求出:
從式(1)可知,只要知道超聲波在空氣中的傳播速度c,則測出傳播聲時t就可求出傳感器到目標物體的距離d。本超聲波測距系統(tǒng)原理框圖如圖2所示。
該系統(tǒng)由ATMEL公司生產(chǎn)的AT89C52單片機、超聲波發(fā)射電路、發(fā)射接收轉(zhuǎn)換電路、接收前置放大電路、帶通濾波電路、自動增益控制(AGC)電路、絕對值變換電路、檢波電路、過零檢測電路、環(huán)境溫度采集電路、E2PROM存儲電路、顯示電路和超聲波傳感器組成。AT89C52單片機為整個系統(tǒng)的核心部件,協(xié)調(diào)各部分電路的工作。傳感器選用TCF40-16型收發(fā)一體式超聲波傳感器,諧振頻率為40kHz;單片機產(chǎn)生脈沖信號,經(jīng)三極管和變壓器放大后,通過發(fā)射接收轉(zhuǎn)換電路驅(qū)動超聲波傳感器;每次發(fā)射1個脈沖,當脈沖發(fā)射后,啟動計數(shù)器開始計數(shù);回波信號經(jīng)過發(fā)射驅(qū)動接收轉(zhuǎn)換電路、前置放大電路、帶通濾波電路、自動增益控制(AGC)電路、絕對值變換電路、檢波電路、過零檢測電路后輸入AT89C52單片機中,觸發(fā)外部中斷,單片機AT89C52停止計數(shù)器計數(shù)并計算出渡越時間t;環(huán)境溫度采集電路將現(xiàn)場溫度數(shù)據(jù)送到單片機中,通過計算來補償聲速,最后利用公式(1)計算出距離,并由顯示電路顯示出來。
3 系統(tǒng)硬件電路設計
3.1 超聲波發(fā)射驅(qū)動及接收轉(zhuǎn)換電路
本系統(tǒng)的發(fā)射驅(qū)動及接收轉(zhuǎn)換電路如圖3所示。
工作原理為:由AT89C52單片機產(chǎn)生40kHz的TTL脈沖信號通過P1.0輸出,再經(jīng)過三極管Q1和變壓器TR1進行功率放大,在變壓器副線圈上將電壓10倍放大,這時換能器上加載的正弦電壓幅值約為100V。在變壓器TR1原線圈上,串聯(lián)了限流電阻R2;變壓器TR1副線圈上,R3是與超聲波換能器進行阻抗匹配的電阻,在副線圈導通時,由于加在換能器上的電壓很大(100V),接地的兩個反向并聯(lián)的二極管對后面接收電路的前置放大電路輸入端進行鉗位,使其電壓最大不超過0.7V,以免前置放大電路的輸入端電壓因為過高而發(fā)生阻塞。
超聲波在空氣中傳播,遇到目標物體反射的回波信號加載到超聲波換能器上,換能器由于壓電效應產(chǎn)生微弱電壓信號,輸出的這種回波信號是mV級的電壓信號。由于二極管的導通電壓為0.7V,回波信號不能經(jīng)過兩個反向并聯(lián)的IN4148和變壓器副線圈構成回路,只能經(jīng)過電阻R4、電容C3送入前置放大電路的輸入端。
3.2 自動增益控制(AGC)電路
超聲波回波信號隨著被測距離的變化,其幅值變化也很大,必須經(jīng)過增益控制,以滿足整形電路的要求。實現(xiàn)增益隨時間呈指數(shù)變化的AGC電路有多種,本文設計了通過軟、硬件結合的AGC電路,它由可編程放大器AD620AN、數(shù)字電位器MAX5400結合單片機聯(lián)合實現(xiàn)。
AD620AN是一種電阻可編程放大器,內(nèi)部由三運放組成,具有很高的精度和共模抑制比。增益范圍為1~1000,由管腳1、8之間的電阻調(diào)節(jié)。增益公式為:
MAX5400是一種具有256抽頭的數(shù)字電位器,端-端阻值為,溫度系數(shù)小于5ppm/℃,并帶有SPI接口。在本文中管腳3、4、5與單片機相連,實現(xiàn)電阻阻值的變化,管腳1、8與AD620AN的1、8端相連,從而實現(xiàn)增益的調(diào)節(jié)。
事先通過實驗,在0~3米的距離內(nèi),每隔30厘米測量一次,把較為理想的放大倍數(shù)換算成數(shù)字電位器的抽頭位置,并把這些位置參數(shù)列表并固化到E2PROM中。單片機以計時器中斷的方式來設置增益,到了一定時刻就由內(nèi)部定時器產(chǎn)生一次中斷,中斷服務子程序通過查表方式獲得對應的增益,然后通過SPI接口設置對應增益。
3.3 溫度補償
超聲波在固體中傳播速度最快,在氣體中傳播速度最慢,而且聲速c與溫度有關[3]。如果環(huán)境溫度變化顯著,必須考慮溫度補償問題??諝庵新曀倥c溫度的關系可以表示為:
式中,T為環(huán)境攝氏溫度℃。
為了提高系統(tǒng)的測量精度,本文設計了溫度補償電路。系統(tǒng)采用數(shù)字溫度計DS1820采集溫度。DS1820是美國DALAS公司推出的單線串行數(shù)字溫度計,可直接與單片機連接,并且接線形式簡單[4],測量范圍為-55~+125℃,在-10~+85℃范圍內(nèi)測量精度為0.5℃。傳感器輸出的是用9位二進制編碼表示的溫度值。根據(jù)實際溫度的值,利用公式(3)可計算補償聲速。
3.4 絕對值變換和包絡電路
本系統(tǒng)的絕對值變換和包絡電路原理圖如圖4所示。
絕對值變換電路中,當輸入信號Vin為負時,D7導通,U13B為倒相放大器;Vin為正時,D8導通,U13A為非倒相放大器。無論輸入信號的電壓極性如何,其輸出總是正電壓,且幅值不變[5]。如前所述,回波信號經(jīng)過絕對值變換電路以后,負電壓被翻轉(zhuǎn)為正電壓,且頻率倍增,然后通過二極管D9、電容C56組成的檢波電路對新波形進行包絡。根據(jù)超聲波回波起伏特性,頻率倍增后包絡曲線更加平滑。在本電路中,檢波電路中的電容值要匹配合適,絕對值變換電路中集成運算放大器選用TL082。波形包絡原理如圖5所示。
3.5 微分電路和過零檢測
回波包絡信號通過微分電路,電壓峰值點處取導數(shù)為零,過零檢測電路在信號的過零點時刻發(fā)送脈沖信號給單片機外部中斷INT0,單片機停止計時,從而捕捉到回波信號到達時刻。包絡信號微分和過零檢測原理如圖6所示。
4 系統(tǒng)軟件設計
本測距系統(tǒng)軟件包括主程序、溫度采集子程序、發(fā)射子程序、計算子程序、數(shù)碼顯示子程序、外部中斷子程序和定時器中斷子程序。主程序完成初始化后調(diào)用發(fā)射子程序,由P1.0口發(fā)射1個脈沖,驅(qū)動超聲波傳感器發(fā)射超聲波,并關外部中斷,計數(shù)器T0、T1同時開始計時;為防止虛假回波的干擾,在延時一段時間后,開中斷,此時判斷計數(shù)器T1有否溢出中斷,單片機根據(jù)不同的時間,以查表的方式設置自動增益控制電路的增益;當有外部中斷信號時,單片機就停止T0的計時,計算出渡越時間t并存儲到E2PROM中;然后調(diào)用測溫子程序,采集超聲波測距時的環(huán)境溫度,并換算出準確的聲速c,存儲到E2PROM中;單片機再調(diào)用計算子程序,計算出傳感器到目標物體之間的距離,最后把測量結果存儲并通過數(shù)碼管電路顯示出來,完成一次測量。主程序流程如圖7。
本超聲波測距系統(tǒng)采用新的設計方法,并在實驗室環(huán)境中進行測量,測量精度較高。由于采用收發(fā)一體式的測距電路,換能器振子必須在余震消除后才能進行接收,因此該測距系統(tǒng)有很大的盲區(qū)。因為電路的延遲及包絡峰值點后移,導致測量計時有所增大,進而導致測量數(shù)據(jù)的偏大。本系統(tǒng)采用前置放大器、AGC電路、過零檢測等電路對接收信號進行處理,取得了良好的效果。在近距離測量范圍內(nèi),這種方法可以達到厘米級。
評論