<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進

          一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進

          作者: 時間:2014-01-07 來源:網(wǎng)絡(luò) 收藏
          在現(xiàn)代工業(yè)生產(chǎn)過程中,利用超聲波進行近距離非接觸式測量越來越廣泛,例如液位的測量、煤層的測厚、機器人定位、輔助視覺系統(tǒng)、車輛的定位與導(dǎo)航、汽車防撞雷達、井深及管道長度測量等方面。根據(jù)超聲波縱向分辨力高、對色彩和光照度不敏感、抗電磁干擾能力強等特點,可以設(shè)計出精度較高的系統(tǒng),應(yīng)用于漫反射差和有毒等惡劣環(huán)境中。但傳統(tǒng)的儀由于采用固定閾值的比較器比較輸出,測量精度普遍較低[1]。本文從回波信號處理的角度出發(fā),分析了超聲波回波曲線的特性,利用的峰值檢測以確定回波到達時刻的方法,并介紹一種以89C52單片機為核心、具有自動增益控制和峰值包絡(luò)檢測、高精度的系統(tǒng)的硬件電路和軟件設(shè)計。

          1 回波信號包絡(luò)研究

          傳統(tǒng)的利用固定電平判斷回波到達時刻的超聲波測距方法存在較大誤差。針對這種誤差提出的可變閾值的超聲波測距方法,由于干擾信號的存在,超聲波測距主芯片會產(chǎn)生誤判回波時刻的到來,從而導(dǎo)致測量數(shù)據(jù)不準(zhǔn)確。

          超聲傳感器通過壓電晶片的逆效應(yīng)——電致伸縮,在空氣介質(zhì)中產(chǎn)生超聲波。測距所用超聲波一般都是以間斷的高壓單脈沖發(fā)射,每測距一次,需要發(fā)射、接收一次。所以在測距脈沖的發(fā)射過程中,傳感器晶片經(jīng)歷了起震、加強和衰減三種狀態(tài),并產(chǎn)生多個諧振周期的超聲波;接收過程中,傳感器晶片在多個諧振周期的超聲脈沖作用下,通過壓電效應(yīng)在晶片兩端產(chǎn)生起伏電壓。廈門大學(xué)的童峰等研究了單脈沖發(fā)射時超聲回波的起伏特性,并根據(jù)聲的發(fā)射、反射理論及應(yīng)用力——聲類比,推導(dǎo)出了理想條件下的測距曲線方程[2]。在此理論基礎(chǔ)上,通過大量實驗,每次發(fā)射1個脈沖寬度為時間?子的脈沖,來驗證這種超聲波回波起伏特性。圖1為通過放大、帶通濾波、AGC電路以后,用Tektronix數(shù)字存儲示波器存儲得到的回波波形。

          一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進
          可以驗證:超聲回波在脈寬時間處,電壓峰值達到最大,和童峰的理論分析基本吻合,這也為本文應(yīng)用在判斷回波到達時刻的處理方法提供了理論和事實依據(jù)。根據(jù)上述對超聲回波波形特性的分析,本文提出了一種確定回波到達時刻的思路:在接收電路中加入精密的絕對值轉(zhuǎn)換電路,把回波信號的負電壓翻轉(zhuǎn)為正電壓,然后通過檢波電路,對波形進行包絡(luò),接著輸入到微分電路,求出包絡(luò)曲線的峰值點,再通過過零檢測電路,向單片機發(fā)出外部中斷信號,停止計數(shù)器計時。單片機在發(fā)射完1個脈沖后,啟動內(nèi)部計數(shù)器計時到外部中斷觸發(fā)計數(shù)器停止計時,這段時間即為超聲波脈沖的渡越時間t。

          2 超聲波測距原理及系統(tǒng)組成

          超聲波測距是借助于超聲脈沖回波渡越時間法來實現(xiàn)的。設(shè)超聲波脈沖由傳感器發(fā)出到接收所經(jīng)歷的時間為t,超聲波在空氣中的傳播速度為c,則從傳感器到目標(biāo)物體的距離d可用下式求出:

          一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進
          從式(1)可知,只要知道超聲波在空氣中的傳播速度c,則測出傳播聲時t就可求出傳感器到目標(biāo)物體的距離d。本超聲波測距系統(tǒng)原理框圖如圖2所示。

          一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進
          該系統(tǒng)由ATMEL公司生產(chǎn)的AT89C52單片機、超聲波發(fā)射電路、發(fā)射接收轉(zhuǎn)換電路、接收前置放大電路、帶通濾波電路、自動增益控制(AGC)電路、絕對值變換電路、檢波電路、過零檢測電路、環(huán)境溫度采集電路、E2PROM存儲電路、顯示電路和超聲波傳感器組成。AT89C52單片機為整個系統(tǒng)的核心部件,協(xié)調(diào)各部分電路的工作。傳感器選用TCF40-16型式超聲波傳感器,諧振頻率為40kHz;單片機產(chǎn)生脈沖信號,經(jīng)三極管和變壓器放大后,通過發(fā)射接收轉(zhuǎn)換電路驅(qū)動超聲波傳感器;每次發(fā)射1個脈沖,當(dāng)脈沖發(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)硬件電路設(shè)計

          3.1 超聲波發(fā)射驅(qū)動及接收轉(zhuǎn)換電路

          本系統(tǒng)的發(fā)射驅(qū)動及接收轉(zhuǎn)換電路如圖3所示。

          一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進
          工作原理為:由AT89C52單片機產(chǎn)生40kHz的TTL脈沖信號通過P1.0輸出,再經(jīng)過三極管Q1和變壓器TR1進行功率放大,在變壓器副線圈上將電壓10倍放大,這時換能器上加載的正弦電壓幅值約為100V。在變壓器TR1原線圈上,串聯(lián)了限流電阻R2;變壓器TR1副線圈上,R3是與超聲波換能器進行阻抗匹配的電阻,在副線圈導(dǎo)通時,由于加在換能器上的電壓很大(100V),接地的兩個反向并聯(lián)的二極管對后面接收電路的前置放大電路輸入端進行鉗位,使其電壓最大不超過0.7V,以免前置放大電路的輸入端電壓因為過高而發(fā)生阻塞。

          超聲波在空氣中傳播,遇到目標(biāo)物體反射的回波信號加載到超聲波換能器上,換能器由于壓電效應(yīng)產(chǎn)生微弱電壓信號,輸出的這種回波信號是mV級的電壓信號。由于二極管的導(dǎo)通電壓為0.7V,回波信號不能經(jīng)過兩個反向并聯(lián)的IN4148和變壓器副線圈構(gòu)成回路,只能經(jīng)過電阻R4、電容C3送入前置放大電路的輸入端。

          3.2 自動增益控制(AGC)電路

          超聲波回波信號隨著被測距離的變化,其幅值變化也很大,必須經(jīng)過增益控制,以滿足整形電路的要求。實現(xiàn)增益隨時間呈指數(shù)變化的AGC電路有多種,本文設(shè)計了通過軟、硬件結(jié)合的AGC電路,它由可編程放大器AD620AN、數(shù)字電位器MAX5400結(jié)合單片機聯(lián)合實現(xiàn)。

          AD620AN是一種電阻可編程放大器,內(nèi)部由三運放組成,具有很高的精度和共模抑制比。增益范圍為1~1000,由管腳1、8之間的電阻調(diào)節(jié)。增益公式為:
          一種基于單片機設(shè)計的高精度超聲波測距系統(tǒng)的改進

          MAX5400是一種具有256抽頭的數(shù)字電位器,端-端阻值為,溫度系數(shù)小于5ppm/℃,并帶有SPI接口。在本文中管腳3、4、5與單片機相連,實現(xiàn)電阻阻值的變化,管腳1、8與AD620AN的1、8端相連,從而實現(xiàn)增益的調(diào)節(jié)。

          絕對值編碼器相關(guān)文章:絕對值編碼器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();