摘 要: 設計了一種基于FPGA的超聲波測距模塊。在時序和信號處理方面,采用Cyclone II系列EP2C5T144C8芯片,通過設計時序發(fā)生器、高速計數(shù)、回波識別和可變門檻控制等邏輯電路模塊可快速有序地對信號進行處理。在聲速方面,加入了溫度補償模塊,避免使用固定的聲速值所引入的偏差,從而提高系統(tǒng)精度。該系統(tǒng)具有可靠性高、集成度高和響應速度快等特點,實驗表明,在距障礙物600 mm~3 600 mm時,相對誤差在0.3%以內(nèi),測量精度得到很大提高。
關鍵詞: 超聲波測距;FPGA;溫度補償;DS18B20;回波識別
超聲波測距是一種非接觸式測量技術,具有定向性好以及對色彩、光照度、外界光線和電磁場不敏感的優(yōu)點,當被測物處于黑暗、有灰塵或煙霧、強電磁干擾及有毒等惡劣的環(huán)境時,超聲波有很強的適應性。因此超聲波傳感器廣泛用于工業(yè)測量、安全預警、車輛避障、自動導航以及現(xiàn)場機器人等相關領域。
目前絕大多數(shù)超聲波測距系統(tǒng)都是以單片機作為信號發(fā)生和控制器,其測量精度嚴重受限于單片機的晶振頻率(1.2 MHz~24 MHz),往往難以令人滿意。而且用單片機控制的測距系統(tǒng)需要輔助設計較多的由分立元件組成的外部模擬電路,故其抗干擾性能也相對較差。FPGA作為一種高密度可編程器件,其內(nèi)部可以集成較大規(guī)模的邏輯單元,適用于時序、組合等各種邏輯電路應用場合,具有運行速度快(100 MHz以上)、內(nèi)部資源豐富等特點[2],為開發(fā)高精確度的超聲測距系統(tǒng)提供了新的設計方案。
為此,本文設計了一種基于FPGA的超聲波測距系統(tǒng),有效提升了系統(tǒng)整體性能。
1 超聲波測距原理
目前,超聲波傳感器的種類有很多,一般采用壓電式超聲波傳感器。超聲波測距原理如圖1所示。超聲波信號由超聲波發(fā)射探頭發(fā)出的同時,計數(shù)器開始計數(shù),超聲波在傳輸過程中遇到障礙物會反射回來(稱為回波),在超聲波接收探頭收到回波的同時,計數(shù)器停止計數(shù)。由速度和時間即可得到障礙物與測距裝置之間的距離:
S≈L=V×t/2(1)
其中,S為障礙物與測距裝置之間的距離,V為超聲波的傳播速度,t為計數(shù)器測得時間。
2 測距系統(tǒng)與硬件電路
本超聲波測距系統(tǒng)整體結(jié)構(gòu)如圖2所示,包括發(fā)射模塊、接收模塊、顯示模塊、溫度補償模塊和FPGA設計模塊等。
CX20106A的2引腳與GND之間連接RC串聯(lián)網(wǎng)絡,改變它們的數(shù)值便能改變芯片內(nèi)部前置放大器的增益和頻率特性。增大電阻R或是減小電容C,都將使負反饋量增大,放大倍數(shù)下降;反之則放大倍數(shù)增大。這樣便可以調(diào)節(jié)超聲波接收探頭R的接收靈敏度。但電容的改變會影響頻率特性。
CX20106A的5引腳與電源端VCC接入一個電阻,用來設置其內(nèi)部帶通濾波器的中心頻率f0。當R6阻值越大時,濾波器的中心頻率越低。
CX20106A的7引腳的輸出方式為集電極開路,因此該引腳必須接上一個上拉電阻到電源端,沒有接收到超聲波回波信號時,該端輸出為高電平,當有回波信號進入時,該引腳則會跳變?yōu)榈碗娖健?br />
3 FPGA邏輯電路設計
在測距系統(tǒng)中,F(xiàn)PGA設計主要的功能模塊有:時序發(fā)生電路模塊、回波識別模塊、檢波模塊、可變門檻控制模塊、高速計數(shù)器模塊、溫度補償計算模塊、距離計算模塊、顯示控制模塊和一些輔助模塊。在此,F(xiàn)PGA主要完成了產(chǎn)生超聲波驅(qū)動信號、檢波、計時、溫度補償計算、距離計算和抗干擾等任務。
時序發(fā)生器是FPGA和整個系統(tǒng)按照設定的時序正常工作的基礎。主要為FPGA、超聲波驅(qū)動控制信號、接收使能信號和高速計數(shù)器等提供精確的時序與控制。在時序發(fā)生器的基礎上,通過將全局時鐘信號進行分頻處理,得到符合驅(qū)動信號頻率的方波脈沖。
檢波器接收電壓比較器的輸出信號進行高速處理,并對回波到達時間精確鎖定,同時高速計數(shù)器會停止計數(shù)。
高速計數(shù)器主要通過記錄計數(shù)脈沖的個數(shù)來計算渡越時間。在驅(qū)動超聲波信號發(fā)出時,高速計數(shù)器開始計數(shù),信號經(jīng)功率放大再由發(fā)射探頭發(fā)出超聲波,遇到障礙物后返回,回波經(jīng)電壓比較器和檢波器后,由檢波器向高速計數(shù)器發(fā)出信號,高速計數(shù)器停止計數(shù)。由于高速計數(shù)器的計數(shù)頻率即為驅(qū)動超聲波信號的頻率,因此可以計算出渡越時間t=n/f,其中n為計數(shù)脈沖的個數(shù),f為驅(qū)動超聲波信號的頻率。
門檻控制是指設定一個電壓門檻,在回波幅值高于此門檻的時候才有效??勺冮T檻控制模塊主要是為了接收回波并降低干擾。障礙物的遠近不同,回波的強度亦有所不同,所以應當設置可變的門檻值。當障礙物較遠時,采用低的門檻值;反之,采用較高的門檻值。絕大多數(shù)干擾信號的幅值較低,采用較高門檻就有較好的魯棒性,能有效降低外界的干擾。由于被測距離多分布于中等范圍,因此,在大部分時間內(nèi)可以采用較高門檻值,有效避開干擾信號。
依據(jù)信號的強度來區(qū)分回波和干擾,而回波識別模塊是依據(jù)信號的持續(xù)時間和周期個數(shù)區(qū)分回波和干擾。由于超聲波發(fā)生器振子存在余振,余振波也會成為一種干擾,但余振和一般的干擾信號至多只有1~2個周期,而真實回波持續(xù)時間長一般會超過10個周期。所以設計回波模塊時,如果周期超過一定數(shù)目,則認為是真實回波,否則忽略對該信號的接收。這樣能進一步減小干擾。
4 實驗結(jié)果分析及總結(jié)
為驗證超聲波測距模塊的測量精度,在室內(nèi)(溫度為18.6℃)進行了實際測量實驗,其中測量距離由鋼質(zhì)卷尺多次測量求平均值所得。數(shù)據(jù)如表1所示。
從表1可以看出,距障礙物過近或較遠時,測量精度下降。因為太近時接收和發(fā)射等電路的時延影響相對變大,而且發(fā)射信號必須有一個上升時間,當障礙物距離太近時系統(tǒng)不能及時處理回波信號[6],所以測量誤差明顯增加。障礙物距離太遠時,回波信號微弱,混有大量的噪聲,對門檻判定造成很大的挑戰(zhàn)。分析表1中數(shù)據(jù)可知,在障礙物距離測距裝置600 mm~3 600 mm時,可以達到較高精度,相對誤差范圍保持在0.3%以內(nèi),穩(wěn)定性也較高,可以滿足絕大多數(shù)實驗的需求。
表1中超聲波所測數(shù)據(jù)均大于尺測距離,而不是在尺測距離上下波動,原因可能是某部分電路存在極小的延時,導致高速計數(shù)器計時時間比實際時間長。下一步可以考慮在分析大量測試數(shù)據(jù)后,在測試結(jié)果上再在加上一定的修正量,減小電路延時引入的偏差,進一步提高系統(tǒng)精度。
如需獲得更高的精度,可以提高超聲波頻率,但這是以犧牲測量范圍為代價的;同理,使用更低的超聲波頻率可使測距范圍增大,但測量精度會下降。可依據(jù)實際情況來選擇超聲波頻率。
總體來看,本文提出的基于FPGA的超聲波測距系統(tǒng)很好地利用了超聲波檢測技術優(yōu)點,充分發(fā)揮了FPGA的優(yōu)勢,采用多種措施來提高超聲波測距精度,具有良好的抗干擾性和穩(wěn)定性,且測量盲區(qū)小、精度高,滿足了大多數(shù)實驗對障礙物測量的需要。若要求測量不同方向的障礙物,只需設計為多傳感系統(tǒng)即可,具有實際應用價值。
參考文獻
[1] 吳超.基于FPGA的超聲波測距系統(tǒng)[D].武漢:武漢理工大學,2009.
[2] 潘松,黃繼業(yè),陳龍.EDA技術與Verilog HDL[M].北京:清華大學出版社,2010.
[3] 英勇,王紀嬋,趙海鳴,等.基于單片機的高精度超聲波測距系統(tǒng)[J].儀表技術與傳感器,2007(3):66-68.
[4] 王紅云,姚志敏,王竹林,等.超聲波測距系統(tǒng)設計[J].儀表技術,2010(11):47-49.
[5] 童亮.基于CAN總線的智能超聲波測距系統(tǒng)[J].儀表技術與傳感器,2007(12):34-36.
[6] 唐穎,張凡,郭勇.移動機器人的超聲波測距傳感器設計[J].傳感技術學報,2010(11):1646-1649.
[7] KOVACHEV D M, GEORGIEVA N E. A mathematical modeling and FPGA-based digital receiver in a continuous wave Doppler radar[C]. 27th International Spring Seminar on Electronics Technology: Meeting of Challenges of Electronics Technology Progress, 2004(2):221-225.