高精度超聲波測距系統(tǒng)的設(shè)計與實(shí)現(xiàn)
在工程實(shí)踐中,超聲波由于指向性強(qiáng)、能量消耗緩慢且在介質(zhì)中傳播的距離較遠(yuǎn),因而經(jīng)常用于距離的測量。它主要應(yīng)用于倒車?yán)走_(dá)、測距儀、物位測量儀、移動機(jī)器人的研制、建筑施工工地以及一些工業(yè)現(xiàn)場等,例如:距離、液位、井深、管道長度、流速等場合。利用超聲波檢測往往比較迅速、方便,且計算簡單、易于做到實(shí)時控制,在測量精度方面也能達(dá)到工業(yè)實(shí)用的要求,因此得到了廣泛的應(yīng)用。
超聲波測距的基本原理
超聲波發(fā)生器在某一時刻發(fā)出超聲波信號,遇到被測物體后反射回來,被超聲波接收器接收到。只要計算出超聲波信號從發(fā)射到接收到回波信號的時間,知道在介質(zhì)中的傳播速度,就可以計算出距被測物體的距離:
d=s/2=(vt)/2 (1)
其中d為被測物到測距儀之間的距離,s為超聲波往返通過的路程,v為超聲波在介質(zhì)中的傳播速度,t為超聲波從發(fā)射到接收所用的時間。為了提高精度,需要考慮不同溫度下超聲波在空氣中傳播速度隨溫度變化的關(guān)系:
v=331.4+0.61T (2)
式中,T為實(shí)際溫度(℃),v的單位為m/s。
壓電式超聲波傳感器的原理
目前,超聲波傳感器大致可以分為兩類:一類是用電氣方式產(chǎn)生的超聲波,一類是用機(jī)械方式產(chǎn)生的超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。在工程中,目前較為常用的是壓電式超聲波傳感器。
壓電式超聲波傳感器實(shí)際上是利用壓電晶體的諧振來工作的。壓電式超聲波發(fā)生器的內(nèi)部有兩個壓電晶片和一個共振板。當(dāng)它的兩極外加脈沖信號,且其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波時,將壓迫壓電晶片作振動,將機(jī)械能轉(zhuǎn)換為電信號,這時即為超聲波接收器。
反射式超聲波測距儀的硬件電路設(shè)計
本系統(tǒng)硬件電路由單片機(jī)最小系統(tǒng)、溫度補(bǔ)償電路、超聲波發(fā)射電路、超聲波接收電路、顯示電路構(gòu)成,如圖1所示。
本超聲波測距儀的具體工作過程如下,在單片機(jī)產(chǎn)生復(fù)位信號后,由MC9S12DG128B產(chǎn)生一個控制信號,控制外圍電路產(chǎn)生40kHz的超聲波,經(jīng)整形放大后加到超聲波換能器發(fā)射出頻率為40kHz的超聲波。同時,計數(shù)MC9S12DG128B內(nèi)部的定時器,測量超聲波信號從發(fā)出到接收所花的時間,并把經(jīng)超聲波換能器R接收到的超聲波信號放大、濾波、整形,并作為接收信號來啟動定時器的輸入捕捉功能,完成一次超聲波測距的時間操作。同時,由溫度傳感器DS18B20測得當(dāng)前的環(huán)境溫度,讀入單片機(jī),然后經(jīng)其處理,在液晶顯示屏上顯示相應(yīng)的測量值以及當(dāng)前溫度。
微控制器MC9S12DG128B
MC9S12DG128B是飛思卡爾公司推出的S12控制器中的一款16位微控制器。其集成度高,片內(nèi)資源豐富,接口模塊包括SPI、SCI、I2C、A/D、PWM等,在FLASH存儲控制及加密方面有較強(qiáng)的功能。
MC9S12DG128B微控制器采用增強(qiáng)型16位S12 CPU,片內(nèi)總線時鐘頻率最高可達(dá)25MHz;片內(nèi)資源包括8kB RAM、128kB FLASH、2kB EEPROM、SCI、SPI及PWM串行接口模塊;PWM模塊可設(shè)置成4路8位或2路16位,可寬范圍選擇時鐘頻率;它還提供2個8路10位精度A/D轉(zhuǎn)換器、控制器局域網(wǎng)CAN和增強(qiáng)型捕捉定時器,并支持背景調(diào)試模式(BDM)。
超聲波的發(fā)射電路
超聲波發(fā)射電路一般由超聲波反射器T、40kHz的超音頻振蕩器、驅(qū)動(或激勵)電路等組成,本設(shè)計利用門電路產(chǎn)生40kHz的超聲波,組成的超聲波發(fā)射電路見圖2。
圖中,與非門74LS00和LM386組成超聲波發(fā)射電路,用74LS00構(gòu)成多諧振蕩器,通過調(diào)節(jié)20k的電位器,可產(chǎn)生超聲波發(fā)射的40kHz信號,其中U3A為驅(qū)動器,電路振蕩頻率f≈1/2.2RC,單片機(jī)的控制信號由U2A輸入。為增大超聲波的發(fā)射頻率,本設(shè)計利用了單運(yùn)放LM386,發(fā)射距離可達(dá)4m。
超聲波的接收電路
超聲波接收電路如圖3所示。接收頭采用與發(fā)射頭配對的超聲波接收器R,將超聲波調(diào)制脈沖變?yōu)榻蛔冸妷盒盘?。為了進(jìn)行信號的整形,在設(shè)計中的CMOS電平的6非門芯片CD4069,可以減少電路的復(fù)雜程度,提高電路的帶負(fù)載能力。整形后的信號由C1耦合給帶有鎖定環(huán)的音頻譯碼集成塊LM567的輸入端3腳,當(dāng)輸入信號的幅度落在其中心頻率上時,LM567的邏輯輸出端8腳由高電平躍變?yōu)榈碗娖健?/P>
DS18B20溫度補(bǔ)償電路
根據(jù)上文中式(2)可知,溫度對聲速的影響較大,若不進(jìn)行補(bǔ)償,將會帶來測量誤差,為了提高系統(tǒng)的測量精度,設(shè)計了溫度補(bǔ)償電路。系統(tǒng)采用數(shù)字溫度傳感器DS18B20來采集溫度,DS18B20是美國DALLAS公司生產(chǎn)的1-wire總線串行數(shù)字溫度傳感器,它具有微型化、低功耗、抗干擾能力強(qiáng)、易于與微處理器接口等優(yōu)點(diǎn),適合于各種溫度測控系統(tǒng)。它的測量溫度范圍為-55℃~+125℃,精度可達(dá)0.0675℃,最大轉(zhuǎn)換時間為200ms。
數(shù)字式溫度傳感器和模擬溫度傳感器最大的區(qū)別是:將溫度信號直接轉(zhuǎn)化成數(shù)字信號,然后通過串行通信的方式輸出。因此掌握DS18B20的通信協(xié)議是使用該器件的關(guān)鍵。該協(xié)議定義了幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖時隙;寫“0”、讀“1”時隙,讀“0”、讀“1”時隙。初始化后,傳感器輸出兩個字節(jié)的溫度,進(jìn)行數(shù)據(jù)處理后得到實(shí)際溫度的值,利用式(2)可計算補(bǔ)償聲速。
液晶顯示電路
字符點(diǎn)陣系列模塊是一類專門用于顯示字母、數(shù)字、符號等的點(diǎn)陣型顯示模塊。分4位和8位數(shù)據(jù)傳輸方式。它提供5×7點(diǎn)陣+光標(biāo)和5×10點(diǎn)陣+光標(biāo)的顯示模式。提供顯示數(shù)據(jù)緩沖區(qū)DDRAM、字符發(fā)生器CGROM和字符發(fā)生器CGRAM,可以使用CGRAM來存儲自己定義的最多8個5×8點(diǎn)陣的圖形字符的字模數(shù)據(jù)。它提供了豐富的指令設(shè)置:清顯示,光標(biāo)回原點(diǎn),顯示開/關(guān),光標(biāo)開/關(guān),顯示字符閃爍,光標(biāo)移位,顯示移位等。提供內(nèi)部上電自動復(fù)位電路,當(dāng)外加電源電壓超過+4.5V時,自動對模塊進(jìn)行初始化操作,將模塊設(shè)置為默認(rèn)的顯示工作狀態(tài)。OCM2X16顯示兩行字符,每行可以顯示16個字符。本設(shè)計采用OCM2X16,顯示兩行字符,一行顯示當(dāng)前的環(huán)境溫度,一行顯示所測距離。
系統(tǒng)軟件設(shè)計
系統(tǒng)軟件包括主程序、溫度采集子程序、定時器計時子程序、計算子程序、液晶顯示子程序等。主程序包括初始化和各個子程序的調(diào)用,最后把測量結(jié)果用液晶顯示屏顯示出來(見圖4)。
結(jié)論
本系統(tǒng)采用飛思卡爾單片機(jī)MC9S12DG128B做主控制器,可靠性好,抗干擾和電磁兼容性強(qiáng),內(nèi)部資源較豐富,軟件的工作量大大降低,而且支持背景調(diào)試(BDM)方式,編程更加方便,靈活。
在本設(shè)計中,通過外部硬件電路來產(chǎn)生40kHz的超聲波信號,因而相對于由單片機(jī)產(chǎn)生的40kHz超聲波信號而言,更加接近超聲波傳感器的共振頻率,因而使超聲波傳感器的輸出最大,可以有效地提高測量距離,測量距離在0.3m~4m內(nèi)。
本設(shè)計采用數(shù)字式溫度傳感器實(shí)現(xiàn)對單片機(jī)超聲波測距系統(tǒng)的溫度測量和補(bǔ)償,對聲速進(jìn)行補(bǔ)償,對引起測量誤差的因素進(jìn)行修正處理,提高了系統(tǒng)的測量精度及靈敏度,使探測精度不超過1cm,從而達(dá)到了很好的效果。