苑潔,常太華
(華北電力大學(xué)控制與計(jì)算機(jī)工程學(xué)院,北京102206)
超聲波測距是一種典型的非接觸測量方式。超聲波在氣體、液體及固體中以不同速度傳播,定向性好、能量集中、傳輸過程中衰減較小、反射能力較強(qiáng)[1]。且超聲波測距系統(tǒng)結(jié)構(gòu)簡單、電路易實(shí)現(xiàn)、成本低、速度快,所以在工業(yè)自動(dòng)控制、建筑工程測量和機(jī)器人視覺識(shí)別等領(lǐng)域應(yīng)用非常廣泛。
超聲波測距一般采用渡越時(shí)間法[2-4]。超聲波測距的實(shí)質(zhì)是時(shí)間的測量,即:用超聲脈沖激勵(lì)超聲探頭向外發(fā)射超聲波,同時(shí)接收從被測物體反射回來的超聲波(簡稱回波),通過精確測量從發(fā)射超聲波至接收回波所經(jīng)歷的射程時(shí)間t(渡越時(shí)間),按下式計(jì)算超聲波探頭與被測物體之間的距離S,即
其中,c為空氣介質(zhì)中聲波的傳播速度。
在常溫下,超聲波的傳播速度為340 m/s,但其傳播速度c易受到空氣中溫度、濕度、壓強(qiáng)等因素的影響,其中溫度的影響最大。一般溫度每升高1℃,聲速增加約為0.6 m/s[5]。本文采用DS18B20數(shù)字溫度計(jì)來檢測現(xiàn)場溫度,用以實(shí)現(xiàn)波速的校準(zhǔn),因很多文獻(xiàn)對(duì)此都有說明,故本文不做深入介紹。
式中,T為環(huán)境溫度。
超聲波測距系統(tǒng)由STM32單片機(jī)、超聲波發(fā)射電路、接收電路、放大電路、比較整形電路、測溫電路等組成。系統(tǒng)以STM32單片機(jī)為核心,協(xié)調(diào)各部分電路工作。STM32單片機(jī)首先發(fā)出一系列頻率為40 kHz的方波,輸送給超聲波發(fā)射電路并激勵(lì)出超聲波。超聲波在空氣中傳播,遇障礙物返回,進(jìn)入超聲波接收器,然后經(jīng)過濾波、放大、整形,進(jìn)入單片機(jī)。系統(tǒng)框圖如圖1所示。
圖1 超聲波測距系統(tǒng)框圖Fig.1 Block diagram of ultrasonic distance measurement system
工作原理為:由STM32的高級(jí)定時(shí)器TIM1輸出兩路40 kHz、占空比為50%的互補(bǔ)的PWM信號(hào),經(jīng)過Max232升壓產(chǎn)生約18 Vpp來驅(qū)動(dòng)超聲波發(fā)射器T40-16,并激勵(lì)出超聲波,每次發(fā)射8個(gè)周期脈沖。電路通過三極管Q1來開、關(guān)Max232的電源,在開始發(fā)射前,打開Max232的電源,待電路穩(wěn)定后開始發(fā)射,并在發(fā)射結(jié)束后關(guān)斷Max232電源,這樣設(shè)計(jì)不僅降低了發(fā)射電路對(duì)接收電路的干擾,同時(shí)也降低了功耗。發(fā)射電路如圖2所示。
圖2 超聲波發(fā)射電路Fig.2 Transmitted circuit of ultrasonic sensors
超聲波發(fā)射器發(fā)出的超聲束角度是0°到360°,主要集中在0°到±60°,由于安裝殼的阻擋,超聲波不能直接發(fā)射到接收器上。但是因?yàn)槁暡▊鬏數(shù)奶匦裕暡〞?huì)出現(xiàn)未經(jīng)障礙物反射就直接回到接收探頭被檢測到,造成接收器認(rèn)為是實(shí)際發(fā)射收到的回波信號(hào),導(dǎo)致誤報(bào)。這種現(xiàn)象就是聲波的衍射現(xiàn)象,無法避免。
衍射信號(hào)的幅值隨著超聲波發(fā)射探頭和接收探頭之間距離的增大而減小,實(shí)際設(shè)計(jì)過程中不會(huì)將測距模塊設(shè)計(jì)的太大,因此超聲波收、發(fā)探頭之間的距離也較小,但是當(dāng)被測距離L比較小時(shí),反射信號(hào)的幅值相對(duì)于衍射信號(hào)大的多,所以設(shè)置合適的近距離比較器閾值,就可以完全屏蔽衍射波,而只有反射波才能通過。本文對(duì)遠(yuǎn)、近距離的測量采用不同閾值的比較器。近距離比較器測量2.5~50 cm的范圍,遠(yuǎn)距離比較器測50 cm~4 m的范圍。
回波信號(hào)由NE5532放大,經(jīng)比較器LMV331整形后進(jìn)入單片機(jī)?;夭ㄐ盘?hào)經(jīng)過一級(jí)放大后,一路經(jīng)過近距離比較器LMV331,比較整形后進(jìn)入單片機(jī)。另一路進(jìn)入增益可控可調(diào)的放大電路。其中,NE5532是一款雙運(yùn)放、高性能、低噪聲的運(yùn)算放大器,相比較大多數(shù)標(biāo)準(zhǔn)運(yùn)放,顯示出更好的噪聲性能,具有相當(dāng)高的小信號(hào)帶寬和電源帶寬。電路如下圖3所示。
圖3 放大和比較整形電路Fig.3 Amplifying and comparative plastic circuit
超聲波在空氣中傳播時(shí),聲強(qiáng)隨著傳播距離的增加而減小,這就是所說的聲衰減現(xiàn)象,造成衰減的原因是聲束本身的擴(kuò)散以及聲波的反射、散射等。由于回波信號(hào)的幅值隨著被測距離的增大而呈指數(shù)規(guī)律衰減,遠(yuǎn)距離目標(biāo)的回波信號(hào)幅度小,為了提高測距精度,必須對(duì)衰減的回波進(jìn)行增益補(bǔ)償[6]?;诖耍O(shè)計(jì)了時(shí)間增益補(bǔ)償電路。時(shí)間增益補(bǔ)償電路(TGC)通過電子可調(diào)電位器改變輸入電阻來實(shí)現(xiàn),如圖4所示。
圖4 時(shí)間增益補(bǔ)償電路Fig.4 Time-gain compensation circuit
其中,MAX5161是一種具有32級(jí)抽頭的數(shù)字電位器,端-端阻值為50 kΩ,具有3線串行接口,實(shí)現(xiàn)阻值的調(diào)節(jié)。事先把通過實(shí)驗(yàn)獲得的與一定距離對(duì)應(yīng)的放大增益換算成數(shù)字電位器的抽頭位置,并把這些位置參數(shù)固化到E2PROM中。在測量過程中,單片機(jī)通過查表方式獲得對(duì)應(yīng)的增益,然后通過串行設(shè)置對(duì)應(yīng)增益。利用單片機(jī)控制數(shù)字電位器,電路實(shí)現(xiàn)較簡單、增益控制范圍大且補(bǔ)償特性能根據(jù)需要進(jìn)行調(diào)整,充分利用了單片機(jī)的軟件資源。
系統(tǒng)以STM32單片機(jī)為核心,實(shí)現(xiàn)對(duì)各部分的控制和響應(yīng)。測距軟件的基本流程:首先使用美國DALAS公司生產(chǎn)的DS18B20數(shù)字溫度傳感器測量環(huán)境溫度,通過查找事先建立好的聲速-溫度對(duì)照表得到當(dāng)前聲速;開啟計(jì)數(shù)器計(jì)時(shí),同時(shí)通過STM32的PWM模塊產(chǎn)生8個(gè)周期40 KHz的脈沖方波和輸入捕捉模塊捕獲超聲波回波。待回波進(jìn)入接收電路,經(jīng)放大/整形等硬件處理后,進(jìn)入單片機(jī)。單片機(jī)捕捉到回波的觸發(fā)信號(hào),并記錄產(chǎn)生下降沿的時(shí)刻;經(jīng)過軟件濾波,和峰值時(shí)間檢測算法,得到峰值時(shí)刻作為回波到達(dá)的時(shí)刻,最后計(jì)算距離。軟件流程如圖5所示。
圖5 系統(tǒng)主程序流程圖Fig.5 Flow chart of the main program
STM32的高級(jí)定時(shí)器由一個(gè)16位的自動(dòng)裝載計(jì)數(shù)器組成,時(shí)鐘源頻率高達(dá)72 MHz,大大提高了時(shí)間測量的分辨率。高級(jí)定時(shí)器有4個(gè)獨(dú)立的通道,本文利用其互補(bǔ)的PWM來驅(qū)動(dòng)超聲波發(fā)射器,輸入捕獲通道來捕捉回波信號(hào),在開啟定時(shí)器的同一時(shí)刻也啟動(dòng)了PWM,這不僅消除了啟動(dòng)發(fā)射和啟動(dòng)計(jì)時(shí)之間的誤差,并且捕獲通道精準(zhǔn)的記錄了超聲波回波到達(dá)的時(shí)刻(比較器的下降沿)。待單片機(jī)進(jìn)入中斷后讀取該值,而非等到進(jìn)入中斷后才開始讀取當(dāng)前計(jì)時(shí)器的值。
回波信號(hào)處理常規(guī)的方法是采用具有固定閾值電平的比較器電路,將回波信號(hào)與某一固定閾值電平在比較器電路中進(jìn)行比較,比較器輸出的翻轉(zhuǎn)時(shí)間就是回波到達(dá)的時(shí)間,在使用了時(shí)間增益補(bǔ)償電路后,超聲波回波信號(hào)的幅值得到了相對(duì)的穩(wěn)定,但由于回波信號(hào)幅度仍存在一定程度的波動(dòng)及回波信號(hào)被展寬,造成了時(shí)間檢測產(chǎn)生一定的誤差,因而在設(shè)計(jì)中把回波幅度的峰值時(shí)間點(diǎn)作為回波到達(dá)的時(shí)間。傳統(tǒng)的峰值檢測方法大多通過硬件電路,包括包絡(luò)檢測電路、微分電路和過零檢測電路,設(shè)計(jì)較復(fù)雜,難實(shí)現(xiàn)。本文通過軟件方法來實(shí)現(xiàn)峰值檢測。
超聲波回波經(jīng)過比較器LMV331后,將產(chǎn)生頻率為40 kHz的方波,由于比較器閾值固定,回波信號(hào)的占空比將由小變大,達(dá)到一個(gè)最大值后再變小,而占空比最大處正對(duì)應(yīng)著峰值點(diǎn)所在的回波波形,th/2處對(duì)應(yīng)著峰值時(shí)刻點(diǎn),如圖6所示。STM32的PWM輸入模式啟用兩個(gè)輸入捕獲單元對(duì)應(yīng)同一個(gè)輸入信號(hào),分別捕獲信號(hào)的上升沿和下降沿,可以方便計(jì)算出回波信號(hào)的頻率和占空比。
為了驗(yàn)證系統(tǒng)的測量精度及盲區(qū),在實(shí)驗(yàn)室進(jìn)行了測距實(shí)驗(yàn),表1中的測量距離一欄取的是3次測量的平均值。測量結(jié)果如表1所示。
表1 超聲波測距數(shù)據(jù)及誤差Tab.1 Data and error of the system
由表1中數(shù)據(jù)可知:一方面,由于采用了峰值時(shí)間檢測技術(shù),使得系統(tǒng)的盲區(qū)很??;另一方面,在所測量程內(nèi),由于采用了時(shí)間增益補(bǔ)償技術(shù),使得測量誤差并沒有隨著距離的增大而增大。
系統(tǒng)采用高速單片機(jī)STM32做微處理器,利用其內(nèi)部高級(jí)定時(shí)器資源消除了測距系統(tǒng)啟動(dòng)發(fā)射和啟動(dòng)計(jì)時(shí)之間的偏差以及收到中斷到中斷響應(yīng)停止計(jì)時(shí)之間的滯后,提高了測距精度;采用時(shí)間增益補(bǔ)償(TGC)技術(shù),用單片機(jī)根據(jù)補(bǔ)償要求對(duì)放大器的放大增益進(jìn)行控制,使得不同距離的回波幅度保持基本不變;采用峰值時(shí)間檢測技術(shù),正確檢測每次回波信號(hào)的峰值時(shí)間點(diǎn),進(jìn)一步提高回波到達(dá)時(shí)間檢測的精度;采用雙比較器整形電路,在近距離測量時(shí),有效的屏蔽了衍射信號(hào),減小了測量盲區(qū)。本系統(tǒng)可以在需要測量盲區(qū)較小、測量精度較高的環(huán)境中使用,具有較大的推廣價(jià)值。
[1]韋穗林.數(shù)字式超聲波測距儀的研制[J].電子設(shè)計(jì)工程,2009,17(10):39-41.
WEI Sui-lin.Development of the digital ultrasonic rangefinder[J].Electronic Design Engineering,2009,17(10):39-41.
[2]趙連玉,趙小強(qiáng).超聲波測距系統(tǒng)中的溫度補(bǔ)償[J].組合機(jī)床與自動(dòng)化加工技術(shù),2008(12):62-64.
ZHAO Lian-yu,ZHAO Xiao-qiang.Compensation of temperature in ultrasonic ranging system[J].Modular Machine Tool&Automatic Manufacturing Technique,2008(12):62-64.
[3]劉光華,卜英勇,王紀(jì)嬋.基于單片機(jī)的高精度超聲波測距系統(tǒng)[J].儀表技術(shù)與傳感器,2007(2):66-68.
LIU Guang-hua,BU Ying-yong,WANG Ji-chan.Ultrasonic distance measure system with high precision based on single-chip microcomputer[J].Instrument Technique and Sensor,2007(2):66-68.
[4]張凱,王安敏.基于AT89C52單片機(jī)的超聲波測距系統(tǒng)[J].儀表技術(shù)與傳感器,2006(6):45-49.
ZHANG Kai,WANG An-min.Ultrasonic distance testing system based on AT89C52 Single-chip microcomputer[J].Instrument Technique and Sensor,2006(6):45-49.
[5]王文生,齊廣學(xué),溫淑慧.一種高精度超聲測距方法的研究[J].傳感技術(shù)學(xué)報(bào),2002(3):219-221.
WANG Wen-sheng,QI Guang-xue,WEN Shu-hui.Study of a new ultrasonic distance measurement method with high precision[J].Chinese Journal of Sensors and Actuators,2002(3):219-221.
[6]黃心漢,曾祥進(jìn),王敏.自動(dòng)增益電路在超聲波測距系統(tǒng)中的應(yīng)用研究[J].測控技術(shù),2005,24(7):69-71.
HUANG Xin-han,ZENG Xiang-jin,WANG Min.Application&research of auto-gain circuit in ultrasonic place measurement system[J].Measurement&Control Technology,2005,24(7):69-71.